diff options
author | Andrew Cady <d@jerkface.net> | 2020-05-30 12:37:44 -0400 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2020-05-30 13:02:22 -0400 |
commit | 6d9dfd28cd3190570e2a3e4d6c057c55191df995 (patch) | |
tree | 948e4f6d067ab9077bac7f96a32e649dff8f6505 | |
parent | 54c0b33461aa51e3064490d5faaa6600deaa3a22 (diff) |
control.sh: support sbin and libexec dirs
All of the other GNU autoconf variables could be supported in the same
way, eventually.
-rw-r--r-- | Makefile | 23 | ||||
-rwxr-xr-x | src/control.sh | 4 |
2 files changed, 23 insertions, 4 deletions
@@ -3,8 +3,16 @@ | |||
3 | prefix ?= /usr/local | 3 | prefix ?= /usr/local |
4 | exec_prefix ?= $(prefix) | 4 | exec_prefix ?= $(prefix) |
5 | bindir ?= $(exec_prefix)/bin | 5 | bindir ?= $(exec_prefix)/bin |
6 | sbindir ?= $(exec_prefix)/sbin | ||
7 | libexecdir ?= $(exec_prefix)/libexec | ||
8 | export prefix exec_prefix bindir sbindir libexecdir | ||
9 | |||
6 | bin_PROGRAMS := $(wildcard bin/*) | 10 | bin_PROGRAMS := $(wildcard bin/*) |
7 | export prefix exec_prefix bindir bin_PROGRAMS | 11 | sbin_PROGRAMS := $(wildcard sbin/*) |
12 | libexec_PROGRAMS := $(wildcard libexec/*) | ||
13 | |||
14 | PROGRAMS = $(bin_PROGRAMS) $(sbin_PROGRAMS) $(libexec_PROGRAMS) | ||
15 | export PROGRAMS bin_PROGRAMS sbin_PROGRAMS libexec_PROGRAMS | ||
8 | 16 | ||
9 | include src/control.mk | 17 | include src/control.mk |
10 | 18 | ||
@@ -12,7 +20,16 @@ DD_USER = dyndns | |||
12 | DD_GROUP = dyndns | 20 | DD_GROUP = dyndns |
13 | 21 | ||
14 | 22 | ||
23 | define install_programs | ||
24 | $(if $($(1)_PROGRAMS),install -t $($(1)dir) $($(1)_PROGRAMS),@: skip install $1 (no files)) | ||
25 | |||
26 | endef | ||
27 | |||
28 | all_programs = bin sbin libexec | ||
15 | 29 | ||
30 | define install_all_programs | ||
31 | $(foreach x,$(all_programs),$(call install_programs,$(x))) | ||
32 | endef | ||
16 | 33 | ||
17 | .PHONY: all install clean | 34 | .PHONY: all install clean |
18 | 35 | ||
@@ -20,11 +37,11 @@ all: control | |||
20 | 37 | ||
21 | clean: clean-equivs | 38 | clean: clean-equivs |
22 | 39 | ||
23 | install: equivs-stamp $(bin_PROGRAMS) | 40 | install: equivs-stamp $(PROGRAMS) |
24 | ifneq ($(shell id -u),0) | 41 | ifneq ($(shell id -u),0) |
25 | @sudo $(MAKE) MAKEFLAGS=$(MAKEFLAGS) $@ | 42 | @sudo $(MAKE) MAKEFLAGS=$(MAKEFLAGS) $@ |
26 | else | 43 | else |
27 | install $(bin_PROGRAMS) $(bindir)/ | 44 | $(call install_all_programs) |
28 | getent passwd $(DD_USER) || useradd --system --create-home $(DD_USER) | 45 | getent passwd $(DD_USER) || useradd --system --create-home $(DD_USER) |
29 | @chown -v root:$(DD_GROUP) /etc/powerdns | 46 | @chown -v root:$(DD_GROUP) /etc/powerdns |
30 | @chown -v pdns:$(DD_GROUP) /etc/powerdns/powerdns.sqlite3 | 47 | @chown -v pdns:$(DD_GROUP) /etc/powerdns/powerdns.sqlite3 |
diff --git a/src/control.sh b/src/control.sh index ea5fa97..3491955 100755 --- a/src/control.sh +++ b/src/control.sh | |||
@@ -13,10 +13,12 @@ Origin: ${ORIGIN} | |||
13 | Maintainer: ${MAINTAINER} | 13 | Maintainer: ${MAINTAINER} |
14 | END | 14 | END |
15 | 15 | ||
16 | # See https://www.gnu.org/prep/standards/html_node/Directory-Variables.html | ||
17 | |||
16 | if [ "$exec_prefix" ] | 18 | if [ "$exec_prefix" ] |
17 | then | 19 | then |
18 | set -- | 20 | set -- |
19 | for f in bin/* | 21 | for f in bin/* sbin/* libexec/* |
20 | do | 22 | do |
21 | if [ -f "$f" ] | 23 | if [ -f "$f" ] |
22 | then set -- "$@" "$f ${exec_prefix}" | 24 | then set -- "$@" "$f ${exec_prefix}" |