about summary refs log tree commit diff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile71
1 files changed, 44 insertions, 27 deletions
diff --git a/Makefile b/Makefile
index 75b020d..c7c1ef7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,53 +1,70 @@
 PREFIX ?= /usr/local
-MANDIR ?= ${PREFIX}/share/man
+BINDIR ?= ${PREFIX}/bin
+MANDIR ?= ${PREFIX}/man
 
 CFLAGS += -std=c11 -Wall -Wextra -Wpedantic
-LDLIBS = -lcrypt -ltls
+LDADD.crypt = -lcrypt
+LDADD.libcurl = -lcurl
+LDADD.libtls = -ltls
+LDADD.sqlite3 = -lsqlite3
 
 BINS = calico pounce
 MANS = ${BINS:=.1}
 
 -include config.mk
 
-OBJS += bounce.o
-OBJS += cert.o
-OBJS += client.o
-OBJS += config.o
-OBJS += local.o
-OBJS += ring.o
-OBJS += server.o
-OBJS += state.o
-OBJS += xdg.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 -o $@
+calico: ${OBJS.calico}
+pounce: ${OBJS.pounce}
+pounce-notify: ${OBJS.pounce-notify}
+pounce-palaver: ${OBJS.pounce-palaver}
 
-pounce: ${OBJS}
-	${CC} ${LDFLAGS} ${OBJS} ${LDLIBS} -o $@
+${BINS}:
+	${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@
 
-${OBJS}: bounce.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}
-	install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1
-	install ${BINS} ${DESTDIR}${PREFIX}/bin
+	install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1
+	install ${BINS} ${DESTDIR}${BINDIR}
 	install -m 644 ${MANS} ${DESTDIR}${MANDIR}/man1
 
 uninstall:
-	rm -f ${BINS:%=${DESTDIR}${PREFIX}/bin/%}
+	rm -f ${BINS:%=${DESTDIR}${BINDIR}/%}
 	rm -f ${MANS:%=${DESTDIR}${MANDIR}/man1/%}
 
-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
+localhost.pem: pounce
+	./pounce -g $@