xref: /freebsd/contrib/openresolv/Makefile (revision cb0e3a5fba5fe48607db8c1042bfe6a1164e0db7)
1PKG=		openresolv
2
3# Nasty hack so that make clean works without configure being run
4_CONFIG_MK!=	test -e config.mk && echo config.mk || echo config-null.mk
5CONFIG_MK?=	${_CONFIG_MK}
6include		${CONFIG_MK}
7
8DIST!=		if test -d .git; then echo "dist-git"; \
9		else echo "dist-inst"; fi
10
11SBINDIR?=	/sbin
12SYSCONFDIR?=	/etc
13LIBEXECDIR?=	/libexec/resolvconf
14VARDIR?=	/var/run/resolvconf
15
16ECHO?=		echo
17INSTALL?=	install
18SED?=		sed
19
20VERSION!=	${SED} -n 's/OPENRESOLV_VERSION="\(.*\)".*/\1/p' resolvconf.in
21
22BINMODE?=	0755
23DOCMODE?=	0644
24MANMODE?=	0444
25
26RESOLVCONF=		resolvconf resolvconf.8 resolvconf.conf.5
27SUBSCRIBERS=		libc dnsmasq named pdnsd pdns_recursor unbound
28SUBSCRIBERS+=		systemd-resolved resolvectl
29LIBC_SUBSCRIBERS=	avahi-daemon mdnsd
30TARGET=		${RESOLVCONF} ${SUBSCRIBERS} ${LIBC_SUBSCRIBERS}
31SRCS=		${TARGET:C,$,.in,} # pmake
32SRCS:=		${TARGET:=.in} # gmake
33
34SED_SBINDIR=		-e 's:@SBINDIR@:${SBINDIR}:g'
35SED_SYSCONFDIR=		-e 's:@SYSCONFDIR@:${SYSCONFDIR}:g'
36SED_LIBEXECDIR=		-e 's:@LIBEXECDIR@:${LIBEXECDIR}:g'
37SED_VARDIR=		-e 's:@VARDIR@:${VARDIR}:g'
38SED_RCDIR=		-e 's:@RCDIR@:${RCDIR}:g'
39SED_RESTARTCMD=		-e 's:@RESTARTCMD@:${RESTARTCMD}:g'
40SED_RCDIR=		-e 's:@RCDIR@:${RCDIR}:g'
41SED_STATUSARG=		-e 's:@STATUSARG@:${STATUSARG}:g'
42
43DISTPREFIX?=	${PKG}-${VERSION}
44DISTFILE?=	${DISTPREFIX}.tar.xz
45DISTINFO=	${DISTFILE}.distinfo
46DISTINFOMD=	${DISTINFO}.md
47DISTSIGN=	${DISTFILE}.asc
48SHA256?=	sha256
49PGP?=		gpg2
50
51GITREF?=	HEAD
52
53.SUFFIXES: .in
54
55all: ${TARGET}
56
57.in: Makefile ${CONFIG_MK}
58	${SED}	${SED_SBINDIR} ${SED_SYSCONFDIR} ${SED_LIBEXECDIR} \
59		${SED_VARDIR} \
60		${SED_RCDIR} ${SED_RESTARTCMD} ${SED_RCDIR} ${SED_STATUSARG} \
61		$< > $@
62
63clean:
64	rm -f ${TARGET}
65
66distclean: clean
67	rm -f config.mk ${DISTFILE} ${DISTINFO} ${DISTINFOMD} ${DISTSIGN}
68
69installdirs:
70
71proginstall: ${TARGET}
72	${INSTALL} -d ${DESTDIR}${SBINDIR}
73	${INSTALL} -m ${BINMODE} resolvconf ${DESTDIR}${SBINDIR}
74	${INSTALL} -d ${DESTDIR}${SYSCONFDIR}
75	test -e ${DESTDIR}${SYSCONFDIR}/resolvconf.conf || \
76	${INSTALL} -m ${DOCMODE} resolvconf.conf ${DESTDIR}${SYSCONFDIR}
77	${INSTALL} -d ${DESTDIR}${LIBEXECDIR}
78	${INSTALL} -m ${DOCMODE} ${SUBSCRIBERS} ${DESTDIR}${LIBEXECDIR}
79	${INSTALL} -d ${DESTDIR}${LIBEXECDIR}/libc.d
80	${INSTALL} -m ${DOCMODE} ${LIBC_SUBSCRIBERS} \
81		${DESTDIR}${LIBEXECDIR}/libc.d
82
83maninstall:
84	${INSTALL} -d ${DESTDIR}${MANDIR}/man8
85	${INSTALL} -m ${MANMODE} resolvconf.8 ${DESTDIR}${MANDIR}/man8
86	${INSTALL} -d ${DESTDIR}${MANDIR}/man5
87	${INSTALL} -m ${MANMODE} resolvconf.conf.5 ${DESTDIR}${MANDIR}/man5
88
89install: proginstall maninstall
90
91dist-git:
92	git archive --prefix=${DISTPREFIX}/ ${GITREF} | xz >${DISTFILE}
93
94dist-inst:
95	mkdir /tmp/${DISTPREFIX}
96	cp -RPp * /tmp/${DISTPREFIX}
97	(cd /tmp/${DISTPREFIX}; make clean)
98	tar -cvJpf ${DISTFILE} -C /tmp ${DISTPREFIX}
99	rm -rf /tmp/${DISTPREFIX}
100
101dist: ${DIST}
102
103distinfo: dist
104	rm -f ${DISTINFO} ${DISTSIGN}
105	${SHA256} ${DISTFILE} >${DISTINFO}
106	wc -c <${DISTFILE} \
107		| xargs printf 'Size   (${DISTFILE}) = %s\n' >>${DISTINFO}
108	${PGP} --sign --armour --detach ${DISTFILE}
109	chmod 644 ${DISTSIGN}
110	ls -l ${DISTFILE} ${DISTINFO} ${DISTSIGN}
111
112${DISTINFOMD}: ${DISTINFO}
113	echo '```' >${DISTINFOMD}
114	cat ${DISTINFO} >>${DISTINFOMD}
115	echo '```' >>${DISTINFOMD}
116
117release: distinfo ${DISTINFOMD}
118	gh release create v${VERSION} \
119		--title "openresolv ${VERSION}" --draft --generate-notes \
120		--notes-file ${DISTINFOMD} \
121		${DISTFILE} ${DISTSIGN}
122
123import: dist
124	rm -rf /tmp/${DISTPREFIX}
125	${INSTALL} -d /tmp/${DISTPREFIX}
126	tar xvJpf ${DISTFILE} -C /tmp
127
128_import-src:
129	rm -rf ${DESTDIR}/*
130	${INSTALL} -d ${DESTDIR}
131	cp LICENSE README.md ${SRCS} resolvconf.conf ${DESTDIR};
132	cp resolvconf.8.in resolvconf.conf.5.in ${DESTDIR};
133	@${ECHO}
134	@${ECHO} "============================================================="
135	@${ECHO} "openresolv-${VERSION} imported to ${DESTDIR}"
136
137import-src:
138	${MAKE} _import-src DESTDIR=`if [ -n "${DESTDIR}" ]; then echo "${DESTDIR}"; else echo /tmp/${DISTPREFIX}; fi`
139