From d5e28debaf8ced7d0a2176fe32677c0a4cfac3d9 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Fri, 31 Jan 2020 01:05:48 -0500 Subject: Reorganize the Makefile for the umpteenth time Broke out LDLIBS for each bin, and made everything more uniform. --- bin/.gitignore | 1 - bin/Makefile | 164 ++++++++++++++++++++++++--------------------------------- 2 files changed, 70 insertions(+), 95 deletions(-) (limited to 'bin') diff --git a/bin/.gitignore b/bin/.gitignore index 78e94de3..a476740d 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -26,7 +26,6 @@ ptee relay scheme scheme.h -scheme.png setopt shotty tags 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][)],&,' \ > 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 -- cgit 1.4.1