summary refs log tree commit diff
path: root/bin/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'bin/Makefile')
-rw-r--r--bin/Makefile164
1 files changed, 70 insertions, 94 deletions
diff --git a/bin/Makefile b/bin/Makefile
index 749acaf7..8b5b84ea 100644
--- a/bin/Makefile
+++ b/bin/Makefile
@@ -1,93 +1,82 @@
 PREFIX = ~/.local
 MANDIR = ${PREFIX}/share/man
 
-CFLAGS += -Wall -Wextra -Wpedantic -Wno-gnu-case-range
-LDLIBS = -lm -lutil -lz
-
-CURL_PREFIX = /usr/local
-CFLAGS_curl = ${CFLAGS} -I${CURL_PREFIX}/include
-LDFLAGS_curl = ${LDFLAGS} -L${CURL_PREFIX}/lib
-LDLIBS_curl = ${LDLIBS} -lcurl
+LIBS_PREFIX = /usr/local
+CFLAGS += -I${LIBS_PREFIX}/include
+LDFLAGS += -L${LIBS_PREFIX}/lib
 
-LIBRESSL_PREFIX = /usr/local
-CFLAGS_tls = ${CFLAGS} -I${LIBRESSL_PREFIX}/include
-LDFLAGS_tls = ${LDFLAGS} -L${LIBRESSL_PREFIX}/lib
-LDLIBS_tls = ${LDLIBS} -ltls
+CFLAGS += -Wall -Wextra -Wpedantic -Wno-gnu-case-range
+LDLIBS_dtch = -lutil
+LDLIBS_glitch = -lz
+LDLIBS_hnel = -lutil
+LDLIBS_modem = -lutil
+LDLIBS_pngo = -lz
+LDLIBS_ptee = -lutil
+LDLIBS_relay = -ltls
+LDLIBS_scheme = -lm
+LDLIBS_title = -lcurl
 
 -include config.mk
 
-BINS_ANY += aes
-BINS_ANY += beef
-BINS_ANY += bit
-BINS_ANY += dtch
-BINS_ANY += edit
-BINS_ANY += glitch
-BINS_ANY += hi
-BINS_ANY += hnel
-BINS_ANY += modem
-BINS_ANY += order
-BINS_ANY += pbd
-BINS_ANY += pngo
-BINS_ANY += psf2png
-BINS_ANY += ptee
-BINS_ANY += scheme
-BINS_ANY += setopt
-BINS_ANY += shotty
-BINS_ANY += ttpre
-BINS_ANY += up
-BINS_ANY += when
-BINS_ANY += xx
-
-LINKS_ANY += open
-LINKS_ANY += pbcopy
-LINKS_ANY += pbpaste
+BINS += aes
+BINS += beef
+BINS += bit
+BINS += dtch
+BINS += edit
+BINS += glitch
+BINS += hi
+BINS += hnel
+BINS += modem
+BINS += open
+BINS += order
+BINS += pbcopy
+BINS += pbd
+BINS += pbpaste
+BINS += pngo
+BINS += psf2png
+BINS += ptee
+BINS += scheme
+BINS += setopt
+BINS += shotty
+BINS += title
+BINS += ttpre
+BINS += up
+BINS += when
+BINS += xx
 
 BINS_BSD += ever
-
 BINS_LINUX += bri
 BINS_LINUX += fbatt
 BINS_LINUX += fbclock
 BINS_LINUX += psfed
-
-BINS_CURL += title
-
 BINS_TLS += relay
 
-BINS = ${BINS_ANY} ${BINS_BSD} ${BINS_LINUX} ${BINS_CURL} ${BINS_TLS}
-MANS = ${BINS:%=man1/%.1}
-LINKS = ${LINKS_ANY}
-
-# Groups
+BINS_ALL = ${BINS} ${BINS_BSD} ${BINS_LINUX} ${BINS_TLS}
+MANS_ALL = ${BINS_ALL:%=man1/%.1}
 
-any: meta ${BINS_ANY} ${LINKS_ANY}
+any: meta ${BINS}
 
 bsd: meta ${BINS_BSD}
 
 linux: meta ${BINS_LINUX}
 
-curl: meta ${BINS_CURL}
-
 tls: meta ${BINS_TLS}
 
-meta: tags .gitignore
+meta: .gitignore tags
+
+.c:
+	${CC} ${CFLAGS} ${LDFLAGS} $< ${LDLIBS_$@} -o $@
 
-# Binaries
+.o:
+	${CC} ${LDFLAGS} $< ${LDLIBS_$@} -o $@
 
 hi: hi.c
-	${CC} ${CFLAGS} ${LDFLAGS} hi.c ${LDLIBS} -o $@
+	${CC} ${CFLAGS} ${LDFLAGS} hi.c ${LDLIBS_$@} -o $@
 	./hi -c
 
 open pbcopy pbpaste: pbd
 	ln -f pbd $@
 
-relay: relay.c
-	${CC} ${CFLAGS_tls} ${LDFLAGS_tls} $@.c ${LDLIBS_tls} -o $@
-
-title: title.c
-	${CC} ${CFLAGS_curl} ${LDFLAGS_curl} $@.c ${LDLIBS_curl} -o $@
-
-# Headers
-
 fbatt.o fbclock.o: scheme.h
 
 psf2png.o scheme.o: png.h
@@ -95,12 +84,30 @@ psf2png.o scheme.o: png.h
 scheme.h: scheme
 	./scheme -c > scheme.h
 
-.o:
-	${CC} ${LDFLAGS} $< ${LDLIBS} -o $@
+tags: *.h *.c
+	ctags -w *.h *.c
 
-# HTML
+IGNORE = *.o *.html ${BINS_ALL} scheme.h tags
 
-HTMLS = index.html ${BINS:%=%.html} png.html
+.gitignore: Makefile
+	echo config.mk '${IGNORE}' | tr ' ' '\n' | sort > .gitignore
+
+clean:
+	rm -f ${IGNORE}
+
+setuid: bri
+	chown root bri
+	chmod u+s bri
+
+link:
+	install -d ${PREFIX}/bin ${MANDIR}/man1
+	ln -fs ${BINS_ALL:%=${PWD}/%} ${PREFIX}/bin
+	ln -fs ${MANS_ALL:%=${PWD}/%} ${MANDIR}/man1
+
+unlink:
+	rm -f ${BINS_ALL:%=${PREFIX}/bin/%} ${MANS_ALL:%=${MANDIR}/%}
+
+HTMLS = index.html ${BINS_ALL:=.html} png.html
 WEBROOT = /usr/local/www/causal.agency
 
 html: ${HTMLS}
@@ -127,37 +134,6 @@ index.html: Makefile README.7
 		| sed -E 's,([a-z0-9-]+)[(][1-9][)],<a href="\1.html">&</a>,' \
 		> index.html
 
-# Meta
-
-scheme.png: scheme
-	./scheme -gt > scheme.png
-
-tags: *.h *.c
-	ctags -w *.h *.c
-
-IGNORE = '*.o' '*.html' scheme.h scheme.png tags ${BINS} ${LINKS}
-
-.gitignore: Makefile
-	echo config.mk ${IGNORE} | tr ' ' '\n' | sort > .gitignore
-
-clean:
-	rm -f ${IGNORE}
-
-# Install
-
-link:
-	install -d ${PREFIX}/bin ${MANDIR}/man1
-	ln -fs ${BINS:%=${PWD}/%} ${LINKS:%=${PWD}/%} ${PREFIX}/bin
-	ln -fs ${MANS:%=${PWD}/%} ${MANDIR}/man1
-
-unlink:
-	rm -f ${BINS:%=${PREFIX}/bin/%} ${LINKS:%=${PREFIX}/bin/%}
-	rm -f ${MANS:%=${MANDIR}/%}
-
 install-html: ${HTMLS}
 	install -d ${WEBROOT}/bin
 	install -C -m 644 ${HTMLS} ${WEBROOT}/bin
-
-setuid: bri
-	chown root bri
-	chmod u+s bri