From 63932910639585427b551e003c68bf34a7694d01 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Sun, 18 Apr 2021 21:45:52 -0400 Subject: Rearrange Makefile once more once more once more Well now I can add targets to ALL in config.mk so that's simpler. --- bin/Makefile | 192 ++++++++++++++++++++++++----------------------------------- bin/html.mk | 45 ++++++++++++++ 2 files changed, 122 insertions(+), 115 deletions(-) create mode 100644 bin/html.mk diff --git a/bin/Makefile b/bin/Makefile index bf92d208..cd7f7c68 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -1,27 +1,12 @@ -PREFIX = ~/.local -MANDIR = ${PREFIX}/share/man +PREFIX ?= ~/.local +MANDIR ?= ${PREFIX}/share/man -LIBS_PREFIX = /usr/local +LIBS_PREFIX ?= /usr/local CFLAGS += -I${LIBS_PREFIX}/include LDFLAGS += -L${LIBS_PREFIX}/lib CFLAGS += -Wall -Wextra -Wpedantic -Wno-gnu-case-range -LDLIBS.dtch = -lutil -LDLIBS.fbclock = -lz -LDLIBS.freecell = -lcurses -LDLIBS.glitch = -lz -LDLIBS.hnel = -lutil -LDLIBS.modem = -lutil -LDLIBS.pngo = -lz -LDLIBS.ptee = -lutil -LDLIBS.relay = -ltls -LDLIBS.scheme = -lm -LDLIBS.title = -lcurl -LDLIBS.typer = -ltls - --include config.mk - BINS += beef BINS += bibsort BINS += bit @@ -47,147 +32,124 @@ BINS += up BINS += when BINS += xx -BINS_BSD += ever -BINS_LINUX += bri -BINS_LINUX += fbatt -BINS_LINUX += fbclock -BINS_LINUX += psfed -BINS_TLS += relay -BINS_TLS += typer +BSD += ever GAMES += freecell -BINS_ALL = ${BINS} ${BINS_BSD} ${BINS_LINUX} ${BINS_TLS} ${GAMES} +LINUX += bri +LINUX += fbatt +LINUX += fbclock +LINUX += psfed -MANS = ${BINS:%=man1/%.1} -MANS_BSD = ${BINS_BSD:%=man1/%.1} -MANS_GAMES = ${GAMES:%=man6/%.6} -MANS_LINUX = ${BINS_LINUX:%=man1/%.1} -MANS_TLS = ${BINS_TLS:%=man1/%.1} -MANS_ALL = ${MANS} ${MANS_BSD} ${MANS_LINUX} ${MANS_TLS} ${MANS_GAMES} +TLS += relay +TLS += typer -any: meta ${BINS} +MANS = ${BINS:%=man1/%.1} +MANS.BSD = ${BSD:%=man1/%.1} +MANS.GAMES = ${GAMES:%=man6/%.6} +MANS.LINUX = ${LINUX:%=man1/%.1} +MANS.TLS = ${TLS:%=man1/%.1} -bsd: meta ${BINS_BSD} +LDLIBS.dtch = -lutil +LDLIBS.fbclock = -lz +LDLIBS.freecell = -lcurses +LDLIBS.glitch = -lz +LDLIBS.hnel = -lutil +LDLIBS.modem = -lutil +LDLIBS.pngo = -lz +LDLIBS.ptee = -lutil +LDLIBS.relay = -ltls +LDLIBS.scheme = -lm +LDLIBS.title = -lcurl +LDLIBS.typer = -ltls -games: meta ${GAMES} +ALL ?= meta any -linux: meta ${BINS_LINUX} +-include config.mk -tls: meta ${BINS_TLS} +all: ${ALL} meta: .gitignore tags -.SUFFIXES: .pl +any: ${BINS} -.c: - ${CC} ${CFLAGS} ${LDFLAGS} $< ${LDLIBS.$@} -o $@ +bsd: ${BSD} -.o: - ${CC} ${LDFLAGS} $< ${LDLIBS.$@} -o $@ +games: ${GAMES} -.pl: - cp -f $< $@ - chmod a+x $@ - -OBJS.hilex += c11.o -OBJS.hilex += hilex.o -OBJS.hilex += make.o -OBJS.hilex += mdoc.o -OBJS.hilex += sh.o +linux: ${LINUX} -hilex: ${OBJS.hilex} - ${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@ - -${OBJS.hilex}: hilex.h - -fbatt.o fbclock.o: scheme.h +tls: ${TLS} -psf2png.o scheme.o: png.h +IGNORE = *.o *.html +IGNORE += ${BINS} ${BSD} ${GAMES} ${LINUX} ${TLS} +IGNORE += scheme.h tags htmltags -scheme.h: scheme - ./scheme -c > scheme.h +.gitignore: Makefile + echo config.mk '${IGNORE}' | tr ' ' '\n' | sort > $@ tags: *.[chly] ctags -w *.[chly] -IGNORE = *.o *.html ${BINS_ALL} scheme.h tags htmltags - -.gitignore: Makefile - echo config.mk '${IGNORE}' | tr ' ' '\n' | sort > .gitignore - clean: rm -f ${IGNORE} -setuid: bri - chown root bri - chmod u+s bri +install: ${ALL:%=install-%} -install: ${BINS} ${MANS} +install-meta: install -d ${PREFIX}/bin ${MANDIR}/man1 + +install-any: install-meta ${BINS} ${MANS} install ${BINS} ${PREFIX}/bin install -m 644 ${MANS} ${MANDIR}/man1 -install-bsd: ${BINS_BSD} ${MANS_BSD} - install -d ${PREFIX}/bin ${MANDIR}/man1 - install ${BINS_BSD} ${PREFIX}/bin - install -m 644 ${MANS_BSD} ${MANDIR}/man1 +install-bsd: install-meta ${BSD} ${MANS.BSD} + install ${BSD} ${PREFIX}/bin + install -m 644 ${MANS.BSD} ${MANDIR}/man1 -install-games: ${GAMES} ${MANS_GAMES} - install -d ${PREFIX}/bin ${MANDIR}/man6 +install-games: install-meta ${GAMES} ${MANS.GAMES} install ${GAMES} ${PREFIX}/bin - install -m 644 ${MANS_GAMES} ${MANDIR}/man6 + install -m 644 ${MANS.GAMES} ${MANDIR}/man6 -install-linux: ${BINS_LINUX} ${MANS_BSD} - install -d ${PREFIX}/bin ${MANDIR}/man1 - install ${BINS_LINUX} ${PREFIX}/bin - install -m 644 ${MANS_LINUX} ${MANDIR}/man1 +install-linux: install-meta ${LINUX} ${MANS.LINUX} + install ${LINUX} ${PREFIX}/bin + install -m 644 ${MANS.LINUX} ${MANDIR}/man1 -install-tls: ${BINS_TLS} ${MANS_BSD} - install -d ${PREFIX}/bin ${MANDIR}/man1 - install ${BINS_TLS} ${PREFIX}/bin - install -m 644 ${MANS_TLS} ${MANDIR}/man1 +install-tls: install-meta ${TLS} ${MANS.TLS} + install ${TLS} ${PREFIX}/bin + install -m 644 ${MANS.TLS} ${MANDIR}/man1 uninstall: - rm -f ${BINS_ALL:%=${PREFIX}/bin/%} - rm -f ${MANS_ALL:%=${MANDIR}/%} - -HTMLS = index.html ${BINS_ALL:=.html} png.html -WEBROOT = /usr/local/www/causal.agency - -html: ${HTMLS} - @true + rm -f ${BINS:%=${PREFIX}/bin/%} ${MANS:%=${MANDIR}/%} + rm -f ${BSD:%=${PREFIX}/bin/%} ${MANS.BSD:%=${MANDIR}/%} + rm -f ${GAMES:%=${PREFIX}/bin/%} ${MANS.GAMES:%=${MANDIR}/%} + rm -f ${LINUX:%=${PREFIX}/bin/%} ${MANS.LINUX:%=${MANDIR}/%} + rm -f ${TLS:%=${PREFIX}/bin/%} ${MANS.TLS:%=${MANDIR}/%} -${HTMLS}: html.sh scheme hilex htagml htmltags +.SUFFIXES: .pl -htmltags: *.[chly] mtags Makefile *.sh - rm -f $@ - for f in *.[chly]; do ctags -aw -f $@ $$f; done - ./mtags -a -f $@ Makefile *.sh +.c: + ${CC} ${CFLAGS} ${LDFLAGS} $< ${LDLIBS.$@} -o $@ -.SUFFIXES: .html +.o: + ${CC} ${LDFLAGS} $< ${LDLIBS.$@} -o $@ -.c.html: - sh html.sh man1/${<:.c=.1} $< > $@ +.pl: + cp -f $< $@ + chmod a+x $@ -.h.html: - sh html.sh man3/${<:.h=.3} $< > $@ +OBJS.hilex = c11.o hilex.o make.o mdoc.o sh.o -.y.html: - sh html.sh man1/${<:.y=.1} $< > $@ +hilex: ${OBJS.hilex} + ${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@ -.sh.html: - sh html.sh man1/${<:.sh=.1} $< > $@ +${OBJS.hilex}: hilex.h -.pl.html: - sh html.sh man1/${<:.pl=.1} $< > $@ +fbatt.o fbclock.o: scheme.h -freecell.html: freecell.c man6/freecell.6 - sh html.sh man6/freecell.6 freecell.c > $@ +psf2png.o scheme.o: png.h -index.html: README.7 Makefile html.sh - sh html.sh README.7 Makefile html.sh > $@ +scheme.h: scheme + ./scheme -c > $@ -install-html: ${HTMLS} - install -d ${WEBROOT}/bin - install -C -m 644 ${HTMLS} ${WEBROOT}/bin +include html.mk diff --git a/bin/html.mk b/bin/html.mk new file mode 100644 index 00000000..15e5257a --- /dev/null +++ b/bin/html.mk @@ -0,0 +1,45 @@ +WEBROOT ?= /usr/local/www/causal.agency + +HTMLS = index.html png.html +HTMLS += ${BINS:=.html} +HTMLS += ${BSD:=.html} +HTMLS += ${GAMES:=.html} +HTMLS += ${LINUX:=.html} +HTMLS += ${TLS:=.html} + +html: ${HTMLS} + @true + +install-html: ${HTMLS} + install -d ${WEBROOT}/bin + install -C -m 644 ${HTMLS} ${WEBROOT}/bin + +${HTMLS}: html.sh scheme hilex htagml htmltags + +htmltags: *.[chly] mtags Makefile html.mk *.sh + rm -f $@ + for f in *.[chly]; do ctags -aw -f $@ $$f; done + ./mtags -a -f $@ Makefile html.mk *.sh + +index.html: README.7 Makefile html.mk html.sh + sh html.sh README.7 Makefile html.mk html.sh > $@ + +.SUFFIXES: .html + +.c.html: + sh html.sh man1/${<:.c=.1} $< > $@ + +.h.html: + sh html.sh man3/${<:.h=.3} $< > $@ + +.y.html: + sh html.sh man1/${<:.y=.1} $< > $@ + +.sh.html: + sh html.sh man1/${<:.sh=.1} $< > $@ + +.pl.html: + sh html.sh man1/${<:.pl=.1} $< > $@ + +freecell.html: freecell.c man6/freecell.6 + sh html.sh man6/freecell.6 freecell.c > $@ -- cgit 1.4.1