summary refs log tree commit diff
path: root/bin/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'bin/Makefile')
-rw-r--r--bin/Makefile153
1 files changed, 153 insertions, 0 deletions
diff --git a/bin/Makefile b/bin/Makefile
new file mode 100644
index 00000000..5691b0fc
--- /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
+LDLIBS.dtch = -lutil
+LDLIBS.fbclock = -lz
+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 += beef
+BINS += bibsort
+BINS += bit
+BINS += c
+BINS += dtch
+BINS += glitch
+BINS += hi
+BINS += hnel
+BINS += modem
+BINS += nudge
+BINS += order
+BINS += pbd
+BINS += pngo
+BINS += psf2png
+BINS += ptee
+BINS += scheme
+BINS += shotty
+BINS += title
+BINS += ttpre
+BINS += up
+BINS += when
+BINS += xx
+
+LINKS += open
+LINKS += pbcopy
+LINKS += pbpaste
+
+BINS_BSD += ever
+BINS_LINUX += bri
+BINS_LINUX += fbatt
+BINS_LINUX += fbclock
+BINS_LINUX += psfed
+BINS_TLS += relay
+
+BINS_ALL = ${BINS} ${BINS_BSD} ${BINS_LINUX} ${BINS_TLS}
+MANS_ALL = ${BINS_ALL:%=man1/%.1}
+
+any: meta ${BINS} ${LINKS}
+
+bsd: meta ${BINS_BSD}
+
+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 $@
+
+hi: hi.c
+	${CC} ${CFLAGS} ${LDFLAGS} hi.c ${LDLIBS.$@} -o $@
+	./hi -c
+
+open pbcopy pbpaste: pbd
+	ln -f pbd $@
+
+fbatt.o fbclock.o: scheme.h
+
+psf2png.o scheme.o: png.h
+
+scheme.h: scheme
+	./scheme -c > scheme.h
+
+tags: *.h *.c
+	ctags -w *.h *.c
+
+IGNORE = *.o *.html ${BINS_ALL} ${LINKS} scheme.h tags
+
+.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
+	ln -fs ${LINKS:%=${PWD}/%} ${PREFIX}/bin
+
+unlink:
+	rm -f ${BINS_ALL:%=${PREFIX}/bin/%}
+	rm -f ${MANS_ALL:%=${MANDIR}/%}
+	rm -f ${LINKS:%=${PREFIX}/bin/%}
+
+HTMLS = index.html ${BINS_ALL:=.html} png.html
+WEBROOT = /usr/local/www/causal.agency
+
+html: ${HTMLS}
+	@true
+
+${HTMLS}: html.sh scheme hi ttpre
+
+.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} > $@
+
+index.html: Makefile README.7
+	sh html.sh Makefile README.7 \
+		| sed -E 's,([a-z0-9-]+)[(][1-9][)],<a href="\1.html">&</a>,' \
+		> index.html
+
+install-html: ${HTMLS}
+	install -d ${WEBROOT}/bin
+	install -C -m 644 ${HTMLS} ${WEBROOT}/bin