OLD | NEW |
1 # dhcpcd Makefile | 1 # dhcpcd Makefile |
2 | 2 |
3 PROG= dhcpcd | 3 PROG= dhcpcd |
4 SRCS= arp.c bind.c common.c control.c dhcp.c dhcpcd.c duid.c eloop.c | 4 SRCS= arp.c bind.c common.c control.c dhcp.c dhcpcd.c duid.c eloop.c |
| 5 SRCS+= dbus-dict.c dhcpcd-dbus.c |
5 SRCS+= if-options.c if-pref.c ipv4ll.c net.c signals.c | 6 SRCS+= if-options.c if-pref.c ipv4ll.c net.c signals.c |
6 SRCS+= configure.c | |
7 | 7 |
8 CFLAGS?= -O2 | 8 CFLAGS?= -O2 |
9 CSTD?= c99 | 9 CSTD?= c99 |
10 CFLAGS+= -std=${CSTD} | 10 CFLAGS+= -std=${CSTD} |
11 include config.mk | 11 include config.mk |
12 | 12 |
| 13 FILES+= dhcpcd.conf dhcpcd-dbus.conf |
| 14 |
| 15 _DBUSCFLAGS_SH= pkg-config --cflags dbus-1 |
| 16 _DBUSCFLAGS!= ${_DBUSCFLAGS_SH} |
| 17 DBUSCFLAGS= ${_DBUSCFLAGS}$(shell ${_DBUSCFLAGS_SH}) |
| 18 |
| 19 _DBUSLIBS_SH= pkg-config --libs dbus-1 |
| 20 _DBUSLIBS!= ${_DBUSLIBS_SH} |
| 21 DBUSLIBS= ${_DBUSLIBS}$(shell ${_DBUSLIBS_SH}) |
| 22 |
| 23 DBUSDIR= ${SYSCONFDIR}/dbus-1/system.d |
| 24 |
| 25 # Linux needs librt |
| 26 _LIBRT_SH= [ "$$(uname -s)" = "Linux" ] && echo "-lrt" || echo "" |
| 27 _LIBRT!= ${_LIBRT_SH} |
| 28 LIBRT?= ${_LIBRT}$(shell ${_LIBRT_SH}) |
| 29 |
| 30 # Chrome OS crash reporting |
| 31 LIBCRASH?= -lcrash |
| 32 |
| 33 CFLAGS+= ${DBUSCFLAGS} |
| 34 LDADD+= ${DBUSLIBS} ${LIBRT} ${LIBCRASH} |
| 35 |
13 OBJS+= ${SRCS:.c=.o} ${COMPAT_SRCS:.c=.o} | 36 OBJS+= ${SRCS:.c=.o} ${COMPAT_SRCS:.c=.o} |
14 | 37 |
15 SCRIPT= ${LIBEXECDIR}/dhcpcd-run-hooks | |
16 HOOKDIR= ${LIBEXECDIR}/dhcpcd-hooks | |
17 | |
18 MAN5= dhcpcd.conf.5 | |
19 MAN8= dhcpcd.8 dhcpcd-run-hooks.8 | |
20 CLEANFILES= dhcpcd.conf.5 dhcpcd.8 dhcpcd-run-hooks.8 | |
21 | |
22 SCRIPTS= dhcpcd-run-hooks | |
23 SCRIPTSDIR= ${LIBEXECDIR} | |
24 CLEANFILES+= dhcpcd-run-hooks | |
25 CLEANFILES+= .depend | 38 CLEANFILES+= .depend |
26 | 39 |
27 FILES= dhcpcd.conf | |
28 FILESDIR= ${SYSCONFDIR} | |
29 | |
30 LDFLAGS+= -Wl,-rpath=${LIBDIR} | 40 LDFLAGS+= -Wl,-rpath=${LIBDIR} |
31 | 41 |
32 SUBDIRS= dhcpcd-hooks | |
33 | |
34 SED_DBDIR= -e 's:@DBDIR@:${DBDIR}:g' | |
35 SED_HOOKDIR= -e 's:@HOOKDIR@:${HOOKDIR}:g' | |
36 SED_SCRIPT= -e 's:@SCRIPT@:${SCRIPT}:g' | |
37 SED_SYS= -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' | 42 SED_SYS= -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' |
38 | 43 |
39 _DEPEND_SH= test -e .depend && echo ".depend" || echo "" | 44 _DEPEND_SH= test -e .depend && echo ".depend" || echo "" |
40 _DEPEND!= ${_DEPEND_SH} | 45 _DEPEND!= ${_DEPEND_SH} |
41 DEPEND= ${_DEPEND}$(shell ${_DEPEND_SH}) | 46 DEPEND= ${_DEPEND}$(shell ${_DEPEND_SH}) |
42 | 47 |
43 _VERSION_SH= sed -n 's/\#define VERSION[[:space:]]*"\(.*\)".*/\1/p' defs.h | 48 _VERSION_SH= sed -n 's/\#define VERSION[[:space:]]*"\(.*\)".*/\1/p' defs.h |
44 _VERSION!= ${_VERSION_SH} | 49 _VERSION!= ${_VERSION_SH} |
45 VERSION= ${_VERSION}$(shell ${_VERSION_SH}) | 50 VERSION= ${_VERSION}$(shell ${_VERSION_SH}) |
46 | 51 |
47 GITREF?= HEAD | 52 GITREF?= HEAD |
48 DISTPREFIX?= ${PROG}-${VERSION} | 53 DISTPREFIX?= ${PROG}-${VERSION} |
49 DISTFILE?= ${DISTPREFIX}.tar.bz2 | 54 DISTFILE?= ${DISTPREFIX}.tar.bz2 |
50 | 55 |
51 CLEANFILES+= *.tar.bz2 | 56 CLEANFILES+= *.tar.bz2 |
52 | 57 |
53 .PHONY: import import-bsd | 58 .PHONY: import import-bsd |
54 | 59 |
55 .SUFFIXES: .in | 60 .SUFFIXES: .in |
56 | 61 |
57 .in: | 62 .in: |
58 » ${SED} ${SED_DBDIR} ${SED_HOOKDIR} ${SED_SCRIPT} ${SED_SYS} $< > $@ | 63 » ${SED} ${SED_SYS} $< > $@ |
59 | 64 |
60 all: config.h ${PROG} ${SCRIPTS} ${MAN5} ${MAN8} | 65 all: config.h ${PROG} ${FILES} |
61 | 66 |
62 .c.o: | 67 .c.o: |
63 ${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@ | 68 ${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@ |
64 | 69 |
65 .depend: ${SRCS} ${COMPAT_SRCS} | 70 .depend: ${SRCS} ${COMPAT_SRCS} |
66 ${CC} ${CPPFLAGS} -MM ${SRCS} ${COMPAT_SRCS} > .depend | 71 ${CC} ${CPPFLAGS} -MM ${SRCS} ${COMPAT_SRCS} > .depend |
67 | 72 |
68 depend: .depend | 73 depend: .depend |
69 | 74 |
70 ${PROG}: ${DEPEND} ${OBJS} | 75 ${PROG}: ${DEPEND} ${OBJS} |
71 ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD} | 76 ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD} |
72 | 77 |
73 _proginstall: ${PROG} | 78 _proginstall: ${PROG} |
74 ${INSTALL} -d ${DESTDIR}${SBINDIR} | 79 ${INSTALL} -d ${DESTDIR}${SBINDIR} |
75 ${INSTALL} -m ${BINMODE} ${PROG} ${DESTDIR}${SBINDIR} | 80 ${INSTALL} -m ${BINMODE} ${PROG} ${DESTDIR}${SBINDIR} |
76 ${INSTALL} -d ${DESTDIR}${DBDIR} | |
77 | |
78 _scriptsinstall: ${SCRIPTS} | |
79 ${INSTALL} -d ${DESTDIR}${SCRIPTSDIR} | |
80 ${INSTALL} -m ${BINMODE} ${SCRIPTS} ${DESTDIR}${SCRIPTSDIR} | |
81 | |
82 _maninstall: ${MAN5} ${MAN8} | |
83 ${INSTALL} -d ${DESTDIR}${MANDIR}/man5 | |
84 ${INSTALL} -m ${MANMODE} ${MAN5} ${DESTDIR}${MANDIR}/man5 | |
85 ${INSTALL} -d ${DESTDIR}${MANDIR}/man8 | |
86 ${INSTALL} -m ${MANMODE} ${MAN8} ${DESTDIR}${MANDIR}/man8 | |
87 | 81 |
88 _confinstall: | 82 _confinstall: |
| 83 # dhcpcd config file |
89 ${INSTALL} -d ${DESTDIR}${SYSCONFDIR} | 84 ${INSTALL} -d ${DESTDIR}${SYSCONFDIR} |
90 » test -e ${DESTDIR}${SYSCONFDIR}/dhcpcd.conf || \ | 85 » ${INSTALL} -m ${CONFMODE} dhcpcd.conf ${DESTDIR}${SYSCONFDIR} |
91 » » ${INSTALL} -m ${CONFMODE} dhcpcd.conf ${DESTDIR}${SYSCONFDIR} | 86 » # dhcpcd d-bus registration file (note file rename) |
| 87 » ${INSTALL} -d ${DESTDIR}${DBUSDIR} |
| 88 » ${INSTALL} -m ${CONFMODE} dhcpcd-dbus.conf \ |
| 89 » » ${DESTDIR}${DBUSDIR}/dhcpcd.conf |
92 | 90 |
93 install: _proginstall _scriptsinstall _maninstall _confinstall | 91 install: _proginstall _confinstall |
94 for x in ${SUBDIRS}; do cd $$x; ${MAKE} $@; cd ..; done | 92 for x in ${SUBDIRS}; do cd $$x; ${MAKE} $@; cd ..; done |
95 | 93 |
96 clean: | 94 clean: |
97 rm -f ${OBJS} ${PROG} ${PROG}.core ${CLEANFILES} | 95 rm -f ${OBJS} ${PROG} ${PROG}.core ${CLEANFILES} |
98 | 96 |
99 dist: | 97 dist: |
100 git archive --prefix=${DISTPREFIX}/ ${GITREF} | bzip2 > ${DISTFILE} | 98 git archive --prefix=${DISTPREFIX}/ ${GITREF} | bzip2 > ${DISTFILE} |
101 | 99 |
102 import: | 100 import: |
103 rm -rf /tmp/${DISTPREFIX} | 101 rm -rf /tmp/${DISTPREFIX} |
104 ${INSTALL} -d /tmp/${DISTPREFIX} | 102 ${INSTALL} -d /tmp/${DISTPREFIX} |
105 cp ${SRCS} dhcpcd.conf *.in /tmp/${DISTPREFIX} | 103 cp ${SRCS} dhcpcd.conf *.in /tmp/${DISTPREFIX} |
106 cp $$(${CC} ${CPPFLAGS} -MM ${SRCS} | \ | 104 cp $$(${CC} ${CPPFLAGS} -MM ${SRCS} | \ |
107 sed -e 's/^.*c //g' -e 's/\\//g' | \ | 105 sed -e 's/^.*c //g' -e 's/\\//g' | \ |
108 tr ' ' '\n' | \ | 106 tr ' ' '\n' | \ |
109 sed -e '/^compat\//d' | \ | 107 sed -e '/^compat\//d' | \ |
110 sort -u) /tmp/${DISTPREFIX} | 108 sort -u) /tmp/${DISTPREFIX} |
111 if test -n "${COMPAT_SRCS}"; then \ | 109 if test -n "${COMPAT_SRCS}"; then \ |
112 ${INSTALL} -d /tmp/${DISTPREFIX}/compat; \ | 110 ${INSTALL} -d /tmp/${DISTPREFIX}/compat; \ |
113 cp ${COMPAT_SRCS} /tmp/${DISTPREFIX}/compat; \ | 111 cp ${COMPAT_SRCS} /tmp/${DISTPREFIX}/compat; \ |
114 cp $$(${CC} ${CPPFLAGS} -MM ${COMPAT_SRCS} | \ | 112 cp $$(${CC} ${CPPFLAGS} -MM ${COMPAT_SRCS} | \ |
115 sed -e 's/^.*c //g' -e 's/\\//g' | \ | 113 sed -e 's/^.*c //g' -e 's/\\//g' | \ |
116 tr ' ' '\n' | \ | 114 tr ' ' '\n' | \ |
117 sort -u) /tmp/${DISTPREFIX}/compat; \ | 115 sort -u) /tmp/${DISTPREFIX}/compat; \ |
118 fi; | 116 fi; |
119 cd dhcpcd-hooks; ${MAKE} DISTPREFIX=${DISTPREFIX} $@ | 117 cd dhcpcd-hooks; ${MAKE} DISTPREFIX=${DISTPREFIX} $@ |
120 | 118 |
121 include Makefile.inc | 119 include Makefile.inc |
OLD | NEW |