mirror of
https://github.com/rsmarples/dhcpcd.git
synced 2024-11-27 12:03:45 +08:00
8e7d8c37a4
Install dhcpcd-embedded.conf to LIBEXECDIR which is read before dhcpcd.conf. The idea is that this dhcpcd-embedded.conf is maintained only by me to support RFC DHCP/DHCPv6 options that require known embedded or ncapsulated options which are not easily added to our option structures in dhcp.c and dhcp6.c. Eventually we may move the whole structure here so that a smaller binary is produced and the definitions are easier to maintain.
199 lines
5.2 KiB
Makefile
199 lines
5.2 KiB
Makefile
# dhcpcd Makefile
|
|
|
|
PROG= dhcpcd
|
|
SRCS= common.c control.c dhcpcd.c duid.c eloop.c
|
|
SRCS+= if-options.c if-pref.c net.c script.c
|
|
SRCS+= dhcp-common.c
|
|
|
|
CFLAGS?= -O2
|
|
CSTD?= c99
|
|
MKDIRS=
|
|
include config.mk
|
|
CFLAGS+= -std=${CSTD}
|
|
|
|
OBJS+= ${SRCS:.c=.o} ${COMPAT_SRCS:.c=.o}
|
|
|
|
SCRIPT= ${LIBEXECDIR}/dhcpcd-run-hooks
|
|
HOOKDIR= ${LIBEXECDIR}/dhcpcd-hooks
|
|
|
|
MAN5= dhcpcd.conf.5
|
|
MAN8= dhcpcd.8 dhcpcd-run-hooks.8
|
|
CLEANFILES= dhcpcd.conf.5 dhcpcd.8 dhcpcd-run-hooks.8
|
|
|
|
SCRIPTS= dhcpcd-run-hooks
|
|
SCRIPTSDIR= ${LIBEXECDIR}
|
|
CLEANFILES+= dhcpcd-run-hooks
|
|
CLEANFILES+= .depend
|
|
|
|
FILES= dhcpcd.conf
|
|
FILESDIR= ${SYSCONFDIR}
|
|
|
|
SUBDIRS= dhcpcd-hooks ${MKDIRS}
|
|
|
|
SED_RUNDIR= -e 's:@RUNDIR@:${RUNDIR}:g'
|
|
SED_DBDIR= -e 's:@DBDIR@:${DBDIR}:g'
|
|
SED_LIBDIR= -e 's:@LIBDIR@:${LIBDIR}:g'
|
|
SED_HOOKDIR= -e 's:@HOOKDIR@:${HOOKDIR}:g'
|
|
SED_SERVICEEXISTS= -e 's:@SERVICEEXISTS@:${SERVICEEXISTS}:g'
|
|
SED_SERVICECMD= -e 's:@SERVICECMD@:${SERVICECMD}:g'
|
|
SED_SERVICESTATUS= -e 's:@SERVICESTATUS@:${SERVICESTATUS}:g'
|
|
SED_SCRIPT= -e 's:@SCRIPT@:${SCRIPT}:g'
|
|
SED_SYS= -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g'
|
|
|
|
_DEPEND_SH= test -e .depend && echo ".depend" || echo ""
|
|
_DEPEND!= ${_DEPEND_SH}
|
|
DEPEND= ${_DEPEND}$(shell ${_DEPEND_SH})
|
|
|
|
_VERSION_SH= sed -n 's/\#define VERSION[[:space:]]*"\(.*\)".*/\1/p' defs.h
|
|
_VERSION!= ${_VERSION_SH}
|
|
VERSION= ${_VERSION}$(shell ${_VERSION_SH})
|
|
|
|
GITREF?= HEAD
|
|
DISTPREFIX?= ${PROG}-${VERSION}
|
|
DISTFILE?= ${DISTPREFIX}.tar.bz2
|
|
|
|
CLEANFILES+= *.tar.bz2
|
|
|
|
.PHONY: import import-bsd dev
|
|
|
|
.SUFFIXES: .in
|
|
|
|
.in:
|
|
${SED} ${SED_RUNDIR} ${SED_DBDIR} ${SED_LIBDIR} ${SED_HOOKDIR} \
|
|
${SED_SYS} ${SED_SCRIPT} \
|
|
${SED_SERVICEEXISTS} ${SED_SERVICECMD} ${SED_SERVICESTATUS} \
|
|
$< > $@
|
|
|
|
all: config.h ${PROG} ${SCRIPTS} ${MAN5} ${MAN8}
|
|
for x in ${SUBDIRS}; do cd $$x; ${MAKE} $@; cd ..; done
|
|
|
|
dev:
|
|
cd dev && ${MAKE}
|
|
|
|
.c.o:
|
|
${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
|
|
|
|
.depend: ${SRCS} ${COMPAT_SRCS}
|
|
${CC} ${CPPFLAGS} -MM ${SRCS} ${COMPAT_SRCS} > .depend
|
|
|
|
depend: .depend
|
|
|
|
${PROG}: ${DEPEND} ${OBJS}
|
|
${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD}
|
|
|
|
_proginstall: ${PROG}
|
|
${INSTALL} -d ${DESTDIR}${SBINDIR}
|
|
${INSTALL} -m ${BINMODE} ${PROG} ${DESTDIR}${SBINDIR}
|
|
${INSTALL} -d ${DESTDIR}${DBDIR}
|
|
|
|
_scriptsinstall: ${SCRIPTS}
|
|
${INSTALL} -d ${DESTDIR}${SCRIPTSDIR}
|
|
${INSTALL} -m ${BINMODE} ${SCRIPTS} ${DESTDIR}${SCRIPTSDIR}
|
|
${INSTALL} -m ${CONFMODE} dhcpcd-embedded.conf ${DESTDIR}${SCRIPTSDIR}
|
|
|
|
proginstall: _proginstall _scriptsinstall
|
|
for x in ${SUBDIRS}; do cd $$x; ${MAKE} $@; cd ..; done
|
|
|
|
_maninstall: ${MAN5} ${MAN8}
|
|
${INSTALL} -d ${DESTDIR}${MANDIR}/man5
|
|
${INSTALL} -m ${MANMODE} ${MAN5} ${DESTDIR}${MANDIR}/man5
|
|
${INSTALL} -d ${DESTDIR}${MANDIR}/man8
|
|
${INSTALL} -m ${MANMODE} ${MAN8} ${DESTDIR}${MANDIR}/man8
|
|
|
|
_confinstall:
|
|
${INSTALL} -d ${DESTDIR}${SYSCONFDIR}
|
|
test -e ${DESTDIR}${SYSCONFDIR}/dhcpcd.conf || \
|
|
${INSTALL} -m ${CONFMODE} dhcpcd.conf ${DESTDIR}${SYSCONFDIR}
|
|
|
|
install: _proginstall _scriptsinstall _maninstall _confinstall
|
|
for x in ${SUBDIRS}; do cd $$x; ${MAKE} $@; cd ..; done
|
|
|
|
clean:
|
|
rm -f ${OBJS} ${PROG} ${PROG}.core ${CLEANFILES}
|
|
for x in ${SUBDIRS}; do cd $$x; ${MAKE} $@; cd ..; done
|
|
|
|
distclean: clean
|
|
rm -f .depend config.h config.mk
|
|
|
|
dist:
|
|
git archive --prefix=${DISTPREFIX}/ ${GITREF} | bzip2 > ${DISTFILE}
|
|
|
|
import:
|
|
rm -rf /tmp/${DISTPREFIX}
|
|
${INSTALL} -d /tmp/${DISTPREFIX}
|
|
cp ${SRCS} dhcpcd.conf *.in /tmp/${DISTPREFIX}
|
|
cp $$(${CC} ${CPPFLAGS} -MM ${SRCS} | \
|
|
sed -e 's/^.*\.c //g' -e 's/.*\.c$$//g' -e 's/\\//g' | \
|
|
tr ' ' '\n' | \
|
|
sed -e '/^compat\//d' | \
|
|
sort -u) /tmp/${DISTPREFIX}
|
|
if test -n "${COMPAT_SRCS}"; then \
|
|
${INSTALL} -d /tmp/${DISTPREFIX}/compat; \
|
|
cp ${COMPAT_SRCS} /tmp/${DISTPREFIX}/compat; \
|
|
cp $$(${CC} ${CPPFLAGS} -MM ${COMPAT_SRCS} | \
|
|
sed -e 's/^.*c //g' -e 's/.*\.c$$//g' -e 's/\\//g' | \
|
|
tr ' ' '\n' | \
|
|
sort -u) /tmp/${DISTPREFIX}/compat; \
|
|
fi;
|
|
if test -n "${IMPORT_RCSID}"; then \
|
|
for x in \
|
|
/tmp/${DISTPREFIX}/*.c \
|
|
/tmp/${DISTPREFIX}/compat/*.c \
|
|
; do \
|
|
if test -e "$$x"; then \
|
|
printf "${IMPORT_RCSID}\n\n" >"$$x".new; \
|
|
cat "$$x" >>"$$x".new; \
|
|
mv "$$x".new "$$x"; \
|
|
fi; \
|
|
done; \
|
|
fi;
|
|
if test -n "${IMPORT_HID}"; then \
|
|
for x in \
|
|
/tmp/${DISTPREFIX}/*.h \
|
|
/tmp/${DISTPREFIX}/compat/*.h \
|
|
; do \
|
|
if test -e "$$x"; then \
|
|
printf "${IMPORT_HID}\n\n" >"$$x".new; \
|
|
cat "$$x" >>"$$x".new; \
|
|
mv "$$x".new "$$x"; \
|
|
fi; \
|
|
done; \
|
|
fi;
|
|
if test -n "${IMPORT_MANID}"; then \
|
|
for x in \
|
|
/tmp/${DISTPREFIX}/dhcpcd.8.in \
|
|
/tmp/${DISTPREFIX}/dhcpcd-run-hooks.8.in \
|
|
/tmp/${DISTPREFIX}/dhcpcd.conf.5.in \
|
|
; do \
|
|
if test -e "$$x"; then \
|
|
printf "${IMPORT_MANID}\n" >"$$x".new; \
|
|
cat "$$x" >>"$$x".new; \
|
|
mv "$$x".new "$$x"; \
|
|
fi; \
|
|
done; \
|
|
fi;
|
|
if test -n "${IMPORT_SHID}"; then \
|
|
for x in \
|
|
/tmp/${DISTPREFIX}/dhcpcd-run-hooks.in \
|
|
/tmp/${DISTPREFIX}/dhcpcd.conf \
|
|
; do \
|
|
if test -e "$$x"; then \
|
|
if test "$$(sed -ne 1p $$x)" = "#!/bin/sh" \
|
|
; then \
|
|
echo "#!/bin/sh" > "$$x".new; \
|
|
printf "${IMPORT_SHID}\n" >>"$$x".new; \
|
|
echo "" >>"$$x".new; \
|
|
sed 1d "$$x" >>"$$x".new; \
|
|
else \
|
|
printf "${IMPORT_SHID}\n" >>"$$x".new; \
|
|
echo "" >>"$$x".new; \
|
|
cat "$$x" >>"$$x".new; \
|
|
fi; \
|
|
mv "$$x".new "$$x"; \
|
|
fi; \
|
|
done; \
|
|
fi;
|
|
cd dhcpcd-hooks; ${MAKE} DISTPREFIX=${DISTPREFIX} $@
|
|
|
|
include Makefile.inc
|