# dhcpcd Makefile PROG= dhcpcd SRCS= common.c control.c dhcpcd.c duid.c eloop.c SRCS+= if.c if-options.c SRCS+= dhcp-common.c PKG_CONFIG ?= pkg-config CFLAGS?= -O2 MKDIRS= TOP?= . include ${TOP}/iconfig.mk CSTD?= c99 CFLAGS+= -std=${CSTD} SRCS+= ${DHCPCD_SRCS} SRCS+= auth.c CPPFLAGS+= -I./crypt CRYPT_SRCS= crypt/hmac_md5.c ${MD5_SRC} ${SHA256_SRC} OBJS+= ${SRCS:.c=.o} ${COMPAT_SRCS:.c=.o} ${CRYPT_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 FILES= dhcpcd.conf ifeq ($(DBUS_SUPPORT),yes) FILES+= dbus/dhcpcd-dbus.conf _DBUSCFLAGS_SH= $(PKG_CONFIG) --cflags dbus-1 _DBUSCFLAGS!= ${_DBUSCFLAGS_SH} DBUSCFLAGS= ${_DBUSCFLAGS}$(shell ${_DBUSCFLAGS_SH}) _DBUSLIBS_SH= $(PKG_CONFIG) --libs dbus-1 _DBUSLIBS!= ${_DBUSLIBS_SH} DBUSLIBS= ${_DBUSLIBS}$(shell ${_DBUSLIBS_SH}) DBUSDIR= ${SYSCONFDIR}/dbus-1/system.d CFLAGS+= ${DBUSCFLAGS} LDADD+= ${DBUSLIBS} endif # Linux needs librt _LIBRT_SH= [ "$$(uname -s)" = "Linux" ] && echo "-lrt" || echo "" _LIBRT!= ${_LIBRT_SH} LIBRT?= ${_LIBRT} $(shell ${_LIBRT_SH}) LDADD+= ${LIBRT} SCRIPTSDIR= ${LIBEXECDIR} CLEANFILES+= dhcpcd-run-hooks FILESDIR= ${SYSCONFDIR} SUBDIRS= ${MKDIRS} ifeq ($(HOOK_SUPPORT),yes) SUBDIRS+= dhcpcd-hooks endif 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!= test -e .depend && echo ".depend" || echo "" VERSION!= sed -n 's/\#define VERSION[[:space:]]*"\(.*\)".*/\1/p' defs.h FOSSILID?= current DISTPREFIX?= ${PROG}-${VERSION} DISTFILEGZ?= ${DISTPREFIX}.tar.gz DISTFILE?= ${DISTPREFIX}.tar.bz2 HOST_SH?= /bin/sh CLEANFILES+= *.tar.bz2 .PHONY: import import-bsd dev test .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} ${FILES} for x in ${SUBDIRS}; do cd $$x; ${MAKE} $@; cd ..; done dev: cd dev && ${MAKE} .c.o: ${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@ CLEANFILES+= dhcpcd-embedded.h dhcpcd-embedded.c dhcpcd-embedded.h: genembedh dhcpcd-definitions.conf dhcpcd-embedded.h.in ${HOST_SH} ${.ALLSRC} $^ > $@ dhcpcd-embedded.c: genembedc dhcpcd-definitions.conf ${HOST_SH} ${.ALLSRC} $^ > $@ if-options.c: dhcpcd-embedded.h .depend: ${SRCS} ${COMPAT_SRCS} ${CRYPT_SRCS} ${CC} ${CPPFLAGS} -MM ${SRCS} ${COMPAT_SRCS} ${CRYPT_SRCS} > .depend depend: .depend ${PROG}: ${DEPEND} ${OBJS} ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD} test: cd $@; ${MAKE} $@; ./$@ _embeddedinstall: dhcpcd-definitions.conf ${INSTALL} -d ${DESTDIR}${SCRIPTSDIR} ${INSTALL} -m ${CONFMODE} dhcpcd-definitions.conf ${DESTDIR}${SCRIPTSDIR} _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} proginstall: _proginstall ${SCRIPTSINSTALL} ${EMBEDDEDINSTALL} 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 _dbusinstall: dbus/dhcpcd-dbus.conf ${INSTALL} -d ${DESTDIR}${DBUSDIR} ${INSTALL} -m ${CONFMODE} dbus/dhcpcd-dbus.conf \ ${DESTDIR}${DBUSDIR}/dhcpcd.conf _confinstall: ${DBUSINSTALL} ${INSTALL} -d ${DESTDIR}${SYSCONFDIR} test -e ${DESTDIR}${SYSCONFDIR}/dhcpcd.conf || \ ${INSTALL} -m ${CONFMODE} dhcpcd.conf ${DESTDIR}${SYSCONFDIR} install: proginstall _confinstall clean: rm -f ${OBJS} ${PROG} ${PROG}.core ${CLEANFILES} for x in ${SUBDIRS} test; do cd $$x; ${MAKE} $@; cd ..; done distclean: clean rm -f .depend config.h config.mk config.log dist: fossil tarball --name ${DISTPREFIX} ${FOSSILID} ${DISTFILEGZ} gunzip -c ${DISTFILEGZ} | bzip2 >${DISTFILE} rm ${DISTFILEGZ} snapshot: rm -rf /tmp/${DISTPREFIX} ${INSTALL} -d /tmp/${DISTPREFIX} cp -RPp * /tmp/${DISTPREFIX} cd /tmp/${DISTPREFIX} && ${MAKE} distclean cd /tmp && tar -cvjpf ${DISTFILE} ${DISTPREFIX} mv /tmp/${DISTFILE} . ls -l ${DISTFILE} import: ${SRCS} rm -rf /tmp/${DISTPREFIX} ${INSTALL} -d /tmp/${DISTPREFIX} cp ${SRCS} dhcpcd.conf dhcpcd-definitions.conf *.in /tmp/${DISTPREFIX} cp $$(${CC} ${CPPFLAGS} -DDEPGEN -MM ${SRCS} | \ sed -e 's/^.*\.c //g' -e 's/.*\.c$$//g' -e 's/\\//g' | \ tr ' ' '\n' | \ sed -e '/^compat\//d' | \ sed -e '/^crypt\//d' | \ sort -u) /tmp/${DISTPREFIX}; \ if test -n "${CRYPT_SRCS}"; then \ ${INSTALL} -d /tmp/${DISTPREFIX}/crypt; \ cp ${CRYPT_SRCS} /tmp/${DISTPREFIX}/crypt; \ cp $$(${CC} ${CPPFLAGS} -DDEPGEN -MM ${CRYPT_SRCS} | \ sed -e 's/^.*c //g' -e 's/.*\.c$$//g' -e 's/\\//g' | \ tr ' ' '\n' | sed -e '/\/\.\.\//d' | \ sort -u) /tmp/${DISTPREFIX}/crypt; \ fi; if test -n "${COMPAT_SRCS}"; then \ ${INSTALL} -d /tmp/${DISTPREFIX}/compat; \ cp ${COMPAT_SRCS} /tmp/${DISTPREFIX}/compat; \ cp $$(${CC} ${CPPFLAGS} -DDEPGEN -MM ${COMPAT_SRCS} | \ sed -e 's/^.*c //g' -e 's/.*\.c$$//g' -e 's/\\//g' | \ tr ' ' '\n' | \ sort -u) /tmp/${DISTPREFIX}/compat; \ fi; cd dhcpcd-hooks; ${MAKE} DISTPREFIX=${DISTPREFIX} $@ include Makefile.inc