diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 89 |
1 files changed, 49 insertions, 40 deletions
diff --git a/Makefile b/Makefile index 597534e..c7c1ef7 100644 --- a/Makefile +++ b/Makefile @@ -1,61 +1,70 @@ -PREFIX = /usr/local -MANDIR = ${PREFIX}/share/man -ETCDIR = ${PREFIX}/etc +PREFIX ?= /usr/local +BINDIR ?= ${PREFIX}/bin +MANDIR ?= ${PREFIX}/man CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -LDLIBS = -lcrypt -lcrypto -ltls +LDADD.crypt = -lcrypt +LDADD.libcurl = -lcurl +LDADD.libtls = -ltls +LDADD.sqlite3 = -lsqlite3 BINS = calico pounce MANS = ${BINS:=.1} -RCS = ${BINS:%=rc.d/%} -DIRS = ${ETCDIR}/pounce /var/run/calico -include config.mk -OBJS += bounce.o -OBJS += client.o -OBJS += config.o -OBJS += local.o -OBJS += ring.o -OBJS += server.o -OBJS += state.o +LDLIBS.calico = +LDLIBS.pounce = ${LDADD.crypt} ${LDADD.libtls} +LDLIBS.pounce-notify = ${LDADD.libtls} +LDLIBS.pounce-palaver = ${LDADD.libcurl} ${LDADD.libtls} ${LDADD.sqlite3} + +OBJS.calico += dispatch.o + +OBJS.pounce += bounce.o +OBJS.pounce += client.o +OBJS.pounce += config.o +OBJS.pounce += local.o +OBJS.pounce += ring.o +OBJS.pounce += server.o +OBJS.pounce += state.o +OBJS.pounce += xdg.o + +OBJS.pounce-notify = notify.o +OBJS.pounce-palaver = palaver.o xdg.o + +OBJS += ${OBJS.calico} +OBJS += ${OBJS.pounce} +OBJS += ${OBJS.pounce-notify} +OBJS += ${OBJS.pounce-palaver} dev: tags all all: ${BINS} -calico: dispatch.o - ${CC} ${LDFLAGS} dispatch.o ${LDLIBS_calico} -o $@ - -pounce: ${OBJS} - ${CC} ${LDFLAGS} ${OBJS} ${LDLIBS} -o $@ +calico: ${OBJS.calico} +pounce: ${OBJS.pounce} +pounce-notify: ${OBJS.pounce-notify} +pounce-palaver: ${OBJS.pounce-palaver} -${OBJS}: bounce.h compat.h +${BINS}: + ${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@ -dispatch.o: compat.h +${OBJS.pounce}: bounce.h -tags: *.c *.h - ctags -w *.c *.h +tags: *.[ch] + ctags -w *.[ch] clean: - rm -f tags ${BINS} ${OBJS} dispatch.o + rm -f ${BINS} ${OBJS} tags -install: ${BINS} ${MANS} ${RCS} - install -d ${PREFIX}/bin ${MANDIR}/man1 - install ${BINS} ${PREFIX}/bin - install -m 644 ${MANS} ${MANDIR}/man1 - if [ -n '${RCS}' ]; then install -d ${ETCDIR}/rc.d; fi - if [ -n '${RCS}' ]; then install ${RCS} ${ETCDIR}/rc.d; fi - if [ -n '${DIRS}' ]; then install -d ${DIRS}; fi +install: ${BINS} ${MANS} + install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1 + install ${BINS} ${DESTDIR}${BINDIR} + install -m 644 ${MANS} ${DESTDIR}${MANDIR}/man1 uninstall: - rm -f ${BINS:%=${PREFIX}/bin/%} - rm -f ${MANS:%=${MANDIR}/man1/%} - if [ -n '${RCS}' ]; then rm -f ${RCS:%=${ETCDIR}/%}; fi - if [ -n '${DIRS}' ]; then rmdir ${DIRS}; fi - -localhost.crt: - printf "[dn]\nCN=localhost\n[req]\ndistinguished_name=dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth" \ - | openssl req -x509 -out localhost.crt -keyout localhost.key \ - -newkey rsa:2048 -nodes -sha256 \ - -subj '/CN=localhost' -extensions EXT -config /dev/fd/0 + rm -f ${BINS:%=${DESTDIR}${BINDIR}/%} + rm -f ${MANS:%=${DESTDIR}${MANDIR}/man1/%} + +localhost.pem: pounce + ./pounce -g $@ |