summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2020-05-30 12:37:44 -0400
committerAndrew Cady <d@jerkface.net>2020-05-30 13:02:22 -0400
commit6d9dfd28cd3190570e2a3e4d6c057c55191df995 (patch)
tree948e4f6d067ab9077bac7f96a32e649dff8f6505
parent54c0b33461aa51e3064490d5faaa6600deaa3a22 (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--Makefile23
-rwxr-xr-xsrc/control.sh4
2 files changed, 23 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 43b72aa..d3f6cfd 100644
--- a/Makefile
+++ b/Makefile
@@ -3,8 +3,16 @@
3prefix ?= /usr/local 3prefix ?= /usr/local
4exec_prefix ?= $(prefix) 4exec_prefix ?= $(prefix)
5bindir ?= $(exec_prefix)/bin 5bindir ?= $(exec_prefix)/bin
6sbindir ?= $(exec_prefix)/sbin
7libexecdir ?= $(exec_prefix)/libexec
8export prefix exec_prefix bindir sbindir libexecdir
9
6bin_PROGRAMS := $(wildcard bin/*) 10bin_PROGRAMS := $(wildcard bin/*)
7export prefix exec_prefix bindir bin_PROGRAMS 11sbin_PROGRAMS := $(wildcard sbin/*)
12libexec_PROGRAMS := $(wildcard libexec/*)
13
14PROGRAMS = $(bin_PROGRAMS) $(sbin_PROGRAMS) $(libexec_PROGRAMS)
15export PROGRAMS bin_PROGRAMS sbin_PROGRAMS libexec_PROGRAMS
8 16
9include src/control.mk 17include src/control.mk
10 18
@@ -12,7 +20,16 @@ DD_USER = dyndns
12DD_GROUP = dyndns 20DD_GROUP = dyndns
13 21
14 22
23define install_programs
24 $(if $($(1)_PROGRAMS),install -t $($(1)dir) $($(1)_PROGRAMS),@: skip install $1 (no files))
25
26endef
27
28all_programs = bin sbin libexec
15 29
30define install_all_programs
31 $(foreach x,$(all_programs),$(call install_programs,$(x)))
32endef
16 33
17.PHONY: all install clean 34.PHONY: all install clean
18 35
@@ -20,11 +37,11 @@ all: control
20 37
21clean: clean-equivs 38clean: clean-equivs
22 39
23install: equivs-stamp $(bin_PROGRAMS) 40install: equivs-stamp $(PROGRAMS)
24ifneq ($(shell id -u),0) 41ifneq ($(shell id -u),0)
25 @sudo $(MAKE) MAKEFLAGS=$(MAKEFLAGS) $@ 42 @sudo $(MAKE) MAKEFLAGS=$(MAKEFLAGS) $@
26else 43else
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}
13Maintainer: ${MAINTAINER} 13Maintainer: ${MAINTAINER}
14END 14END
15 15
16# See https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
17
16if [ "$exec_prefix" ] 18if [ "$exec_prefix" ]
17then 19then
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}"