PREFIX = ~/.local MANDIR = ${PREFIX}/share/man 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 BINS += c BINS += dtch BINS += glitch BINS += hilex BINS += hnel BINS += htagml BINS += modem BINS += mtags BINS += nudge BINS += order BINS += pbd BINS += pngo BINS += psf2png BINS += ptee BINS += scheme BINS += shotty BINS += sup BINS += title 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 GAMES += freecell BINS_ALL = ${BINS} ${BINS_BSD} ${BINS_LINUX} ${BINS_TLS} ${GAMES} 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} any: meta ${BINS} bsd: meta ${BINS_BSD} games: meta ${GAMES} linux: meta ${BINS_LINUX} tls: meta ${BINS_TLS} meta: .gitignore tags .SUFFIXES: .pl .c: ${CC} ${CFLAGS} ${LDFLAGS} $< ${LDLIBS.$@} -o $@ .o: ${CC} ${LDFLAGS} $< ${LDLIBS.$@} -o $@ .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 hilex: ${OBJS.hilex} ${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@ ${OBJS.hilex}: hilex.h fbatt.o fbclock.o: scheme.h psf2png.o scheme.o: png.h scheme.h: scheme ./scheme -c > scheme.h 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: ${BINS} ${MANS} install -d ${PREFIX}/bin ${MANDIR}/man1 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-games: ${GAMES} ${MANS_GAMES} install -d ${PREFIX}/bin ${MANDIR}/man6 install ${GAMES} ${PREFIX}/bin 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-tls: ${BINS_TLS} ${MANS_BSD} install -d ${PREFIX}/bin ${MANDIR}/man1 install ${BINS_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 ${HTMLS}: html.sh scheme hilex htagml htmltags htmltags: *.[chly] mtags Makefile *.sh rm -f $@ for f in *.[chly]; do ctags -aw -f $@ $$f; done ./mtags -a -f $@ Makefile *.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 > $@ index.html: README.7 Makefile html.sh sh html.sh README.7 Makefile html.sh > $@ install-html: ${HTMLS} install -d ${WEBROOT}/bin install -C -m 644 ${HTMLS} ${WEBROOT}/bin