diff options
Diffstat (limited to 'bin/Makefile')
-rw-r--r-- | bin/Makefile | 167 |
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 |