diff options
Diffstat (limited to 'bin/Makefile')
-rw-r--r-- | bin/Makefile | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/bin/Makefile b/bin/Makefile new file mode 100644 index 00000000..14ad94eb --- /dev/null +++ b/bin/Makefile @@ -0,0 +1,153 @@ +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 + +BINS += beef +BINS += bibsort +BINS += bit +BINS += c +BINS += dtch +BINS += glitch +BINS += hilex +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 + +BSD += ever + +GAMES += freecell + +LINUX += bri +LINUX += fbatt +LINUX += fbclock +LINUX += psfed + +TLS += relay +TLS += typer + +MANS = ${BINS:%=man1/%.1} +MANS.BSD = ${BSD:%=man1/%.1} +MANS.GAMES = ${GAMES:%=man6/%.6} +MANS.LINUX = ${LINUX:%=man1/%.1} +MANS.TLS = ${TLS:%=man1/%.1} + +LDLIBS.dtch = -lutil +LDLIBS.fbclock = -lz +LDLIBS.freecell = -lcurses +LDLIBS.glitch = -lz +LDLIBS.modem = -lutil +LDLIBS.pngo = -lz +LDLIBS.ptee = -lutil +LDLIBS.relay = -ltls +LDLIBS.scheme = -lm +LDLIBS.title = -lcurl +LDLIBS.typer = -ltls + +ALL ?= meta any + +-include config.mk + +all: ${ALL} + +meta: .gitignore tags + +any: ${BINS} + +bsd: ${BSD} + +games: ${GAMES} + +linux: ${LINUX} + +tls: ${TLS} + +IGNORE = *.o *.html +IGNORE += ${BINS} ${BSD} ${GAMES} ${LINUX} ${TLS} +IGNORE += scheme.h tags htmltags + +.gitignore: Makefile + echo config.mk '${IGNORE}' | tr ' ' '\n' | sort > $@ + +tags: *.[chly] + ctags -w *.[chly] + +clean: + rm -f ${IGNORE} + +install: ${ALL:%=install-%} + +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: install-meta ${BSD} ${MANS.BSD} + install ${BSD} ${PREFIX}/bin + install -m 644 ${MANS.BSD} ${MANDIR}/man1 + +install-games: install-meta ${GAMES} ${MANS.GAMES} + install ${GAMES} ${PREFIX}/bin + install -m 644 ${MANS.GAMES} ${MANDIR}/man6 + +install-linux: install-meta ${LINUX} ${MANS.LINUX} + install ${LINUX} ${PREFIX}/bin + install -m 644 ${MANS.LINUX} ${MANDIR}/man1 + +install-tls: install-meta ${TLS} ${MANS.TLS} + install ${TLS} ${PREFIX}/bin + install -m 644 ${MANS.TLS} ${MANDIR}/man1 + +uninstall: + 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}/%} + +.SUFFIXES: .pl + +.c: + ${CC} ${CFLAGS} ${LDFLAGS} $< ${LDLIBS.$@} -o $@ + +.o: + ${CC} ${LDFLAGS} $< ${LDLIBS.$@} -o $@ + +.pl: + cp -f $< $@ + chmod a+x $@ + +OBJS.hilex = c11.o hilex.o make.o mdoc.o 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 > $@ + +include html.mk |