about summary refs log tree commit diff
path: root/Makefile
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-05-02 20:35:48 -0400
committerJune McEnroe <june@causal.agency>2021-05-02 20:35:48 -0400
commit8d27209e1872046eb1eba24a7ff85488f6c28ed4 (patch)
tree71194623fbc21cfa27054cc263e76a2da9f63c0f /Makefile
parentpalaver: Exit on getopt failure (diff)
downloadpounce-8d27209e1872046eb1eba24a7ff85488f6c28ed4.tar.gz
pounce-8d27209e1872046eb1eba24a7ff85488f6c28ed4.zip
Clean up Makefiles, configure scripts
Default MANDIR to ${PREFIX}/man since it turns out man-db includes
/usr/local/man by default. Add support for BINDIR. Separate libs
out into LDADD variables.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile61
1 files changed, 34 insertions, 27 deletions
diff --git a/Makefile b/Makefile
index 75b020d..39324d8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,53 +1,60 @@
 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.libtls = -ltls
 
 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}
+
+OBJS.calico += dispatch.o
+
+OBJS.pounce += bounce.o
+OBJS.pounce += cert.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 = ${OBJS.calico} ${OBJS.pounce}
 
 dev: tags all
 
 all: ${BINS}
 
-calico: dispatch.o
-	${CC} ${LDFLAGS} dispatch.o -o $@
+calico: ${OBJS.calico}
+
+pounce: ${OBJS.pounce}
 
-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 $@