summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-07-14 13:59:30 +0000
committerRoy Marples <roy@marples.name>2009-07-14 13:59:30 +0000
commit5fff28a154f8d9a15afa695238a0412989335c1f (patch)
tree2ccce60710881b2e7c15fd045aca3f58b1df0e82 /Makefile
parent1e11fce587c1463e84899f2649ff40a83c9dbbe1 (diff)
downloaddhcpcd-5fff28a154f8d9a15afa695238a0412989335c1f.tar.xz
Replace the mk stubs with a autotools like configure script.
Split compat libc functions out into subdir.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile92
1 files changed, 72 insertions, 20 deletions
diff --git a/Makefile b/Makefile
index 43fc05e6..162cfb54 100644
--- a/Makefile
+++ b/Makefile
@@ -1,49 +1,101 @@
-# Makefile based on BSD make.
-# Our mk stubs also work with GNU make.
-# Copyright (c) 2008 Roy Marples <roy@marples.name>
+# dhcpcd Makefile
PROG= dhcpcd
SRCS= arp.c bind.c common.c control.c dhcp.c dhcpcd.c duid.c eloop.c
SRCS+= if-options.c if-pref.c ipv4ll.c net.c signals.c
SRCS+= configure.c
-SRCS+= ${SRC_IF} ${SRC_PF}
-LIBEXECDIR?= ${PREFIX}/libexec
+CFLAGS?= -O2
+CSTD?= c99
+CFLAGS+= -std=${CSTD}
+include config.mk
+
+OBJS+= ${SRCS:.c=.o}
+
SCRIPT= ${LIBEXECDIR}/dhcpcd-run-hooks
HOOKDIR= ${LIBEXECDIR}/dhcpcd-hooks
-BINDIR= ${PREFIX}/sbin
-DBDIR?= /var/db
-SYSCONFDIR?= ${PREFIX}/etc
-
-MAN= dhcpcd.conf.5 dhcpcd.8 dhcpcd-run-hooks.8
+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}
-CPPFLAGS+= -DDBDIR=\"${DBDIR}\"
-CPPFLAGS+= -DSCRIPT=\"${SCRIPT}\"
-CPPFLAGS+= -DSYSCONFDIR=\"${SYSCONFDIR}\"
-LDADD+= ${LIBRT}
+LDFLAGS+= -Wl,-rpath=${PREFIX}/${LIBNAME}
SUBDIRS= dhcpcd-hooks
-.SUFFIXES: .in
-
SED_DBDIR= -e 's:@DBDIR@:${DBDIR}:g'
SED_HOOKDIR= -e 's:@HOOKDIR@:${HOOKDIR}: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
+
+.SUFFIXES: .in
+
.in:
${SED} ${SED_DBDIR} ${SED_HOOKDIR} ${SED_SCRIPT} ${SED_SYS} $< > $@
-MK= mk
-include ${MK}/sys.mk
-include ${MK}/os.mk
-include ${MK}/prog.mk
+
+all: ${PROG} ${SCRIPTS} ${MAN5} ${MAN8}
+
+.c.o:
+ ${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
+
+.depend: ${SRCS}
+ ${CC} ${CPPFLAGS} -MM ${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}
+
+_maninstall: ${MAN5} ${MAN8}
+ ${INSTALL} -d ${DESTDIR}${MANDIR}5
+ ${INSTALL} -m ${MANMODE} ${MAN5} ${DESTDIR}${MANDIR}5
+ ${INSTALL} -d ${DESTDIR}${MANDIR}8
+ ${INSTALL} -m ${MANMODE} ${MAN8} ${DESTDIR}${MANDIR}8
+
+_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}
+
+dist:
+ git archive --prefix=${DISTPREFIX}/ ${GITREF} | bzip2 > ${DISTFILE}
+
+include Makefile.inc