summary refs log tree commit diff
path: root/bin/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'bin/Makefile')
-rw-r--r--bin/Makefile167
1 files changed, 167 insertions, 0 deletions
diff --git a/bin/Makefile b/bin/Makefile
new file mode 100644
index 00000000..52d470f6
--- /dev/null
+++ b/bin/Makefile
@@ -0,0 +1,167 @@
+GFX = cocoa
+LIBRESSL_PREFIX = /usr/local
+
+PREFIX = ~/.local
+MANDIR = $(PREFIX)/share/man
+
+CFLAGS += -Wall -Wextra -Wpedantic
+LDLIBS = -ledit -lm -lutil -lz
+
+CFLAGS_tls = $(CFLAGS) -I$(LIBRESSL_PREFIX)/include
+LDFLAGS_tls = $(LDFLAGS) -L$(LIBRESSL_PREFIX)/lib
+LDLIBS_tls = $(LDLIBS) -ltls
+
+LDLIBS_cocoa = $(LDLIBS) -framework Cocoa
+LDLIBS_fb = $(LDLIBS)
+LDLIBS_x11 = $(LDLIBS) -lX11
+
+-include config.mk
+
+BINS += aes
+BINS += bit
+BINS += dtch
+BINS += glitch
+BINS += hi
+BINS += hnel
+BINS += modem
+BINS += order
+BINS += pbd
+BINS += pngo
+BINS += psf2png
+BINS += ptee
+BINS += scheme
+BINS += setopt
+BINS += shotty
+BINS += ttpre
+BINS += up
+BINS += wake
+BINS += xx
+
+LINKS += atch
+LINKS += open
+LINKS += pbcopy
+LINKS += pbpaste
+
+BINS_BSD += beef
+BINS_BSD += wat
+
+BINS_GFX += brot
+BINS_GFX += gfxx
+
+BINS_LINUX += bri
+BINS_LINUX += fbatt
+BINS_LINUX += fbclock
+BINS_LINUX += psfed
+
+BINS_TLS += relay
+
+BINS_ALL = $(BINS) $(BINS_BSD) $(BINS_GFX) $(BINS_LINUX) $(BINS_TLS)
+MAN1_ALL = $(BINS_ALL:%=man1/%.1)
+
+any: .gitignore tags $(BINS) $(LINKS)
+
+bsd: $(BINS_BSD)
+
+gfx: $(BINS_GFX)
+
+linux: $(BINS_LINUX)
+
+tls: $(BINS_TLS)
+
+.o:
+	$(CC) $(LDFLAGS) $< $(LDLIBS) -o $@
+
+scheme.h: scheme
+	./scheme -c > scheme.h
+
+brot.o gfxx.o gfx-cocoa.o gfx-fb.o gfx-x11.o: gfx.h
+
+fbatt.o fbclock.o: scheme.h
+
+gfxx.o psf2png.o scheme.o: png.h
+
+GFX_OBJ = gfx-$(GFX).o
+
+brot: brot.o $(GFX_OBJ)
+	$(CC) $(LDFLAGS) $@.o $(GFX_OBJ) $(LDLIBS_$(GFX)) -o $@
+
+gfxx: gfxx.o $(GFX_OBJ)
+	$(CC) $(LDFLAGS) $@.o $(GFX_OBJ) $(LDLIBS_$(GFX)) -o $@
+
+hi: hi.c
+	$(CC) $(CFLAGS) $(LDFLAGS) hi.c $(LDLIBS) -o $@
+	./hi -c
+
+relay: relay.c
+	$(CC) $(CFLAGS_tls) $(LDFLAGS_tls) relay.c $(LDLIBS_tls) -o $@
+
+atch: dtch
+	ln -f dtch atch
+
+open pbcopy pbpaste: pbd
+	ln -f pbd $@
+
+tags: *.h *.c
+	ctags -w *.h *.c
+
+scheme.png: scheme
+	./scheme -gt > scheme.png
+
+IGNORE = '*.o' '*.html' config.mk tags scheme.h scheme.png $(BINS_ALL) $(LINKS)
+
+.gitignore: Makefile
+	echo $(IGNORE) | tr ' ' '\n' | sort > .gitignore
+
+HTMLS = $(BINS_ALL:%=%.html)
+HTMLS += Makefile.html
+HTMLS += gfx-fb.html
+HTMLS += gfx-x11.html
+HTMLS += gfx.html
+HTMLS += html.html
+HTMLS += png.html
+WEBROOT = /usr/local/www/causal.agency
+
+html: $(HTMLS)
+	@true
+
+$(HTMLS): ttpre hi html.sh
+
+.SUFFIXES: .html
+
+.c.html:
+	sh html.sh $< man1/$(<:.c=.1) > $@
+
+.y.html:
+	sh html.sh $< man1/$(<:.y=.1) > $@
+
+.sh.html:
+	sh html.sh $< man1/$(<:.sh=.1) > $@
+
+.h.html:
+	sh html.sh $< > $@
+
+Makefile.html: Makefile bin.7
+	sh html.sh Makefile bin.7 > Makefile.html
+
+clean:
+	rm -f $(BINS_ALL) $(LINKS) tags scheme.h scheme.png *.o *.html
+
+README: bin.7
+	mandoc bin.7 | col -bx > README
+
+setuid: bri
+	chown root bri
+	chmod u+s bri
+
+link:
+	install -d $(PREFIX)/bin $(MANDIR)/man1
+	ln -fs $(BINS_ALL:%=$(PWD)/%) $(LINKS:%=$(PWD)/%) $(PREFIX)/bin
+	ln -fs $(MAN1_ALL:%=$(PWD)/%) $(MANDIR)/man1
+
+unlink:
+	rm -f $(BINS_ALL:%=$(PREFIX)/bin/%) $(LINKS:%=$(PREFIX)/bin/%)
+	rm -f $(MAN1_ALL:%=$(MANDIR)/%)
+
+install-html: $(HTMLS)
+	install -d $(WEBROOT)/bin
+	install -C -m 644 $(HTMLS) $(WEBROOT)/bin