diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 116 |
1 files changed, 52 insertions, 64 deletions
diff --git a/Makefile b/Makefile index 8519d59..66fb408 100644 --- a/Makefile +++ b/Makefile @@ -1,99 +1,87 @@ -PREFIX = ~/.local -MANDIR = ${PREFIX}/share/man -CHROOT_USER = chat -CHROOT_GROUP = ${CHROOT_USER} -LIBRESSL_PREFIX = /usr/local +PREFIX ?= /usr/local +BINDIR ?= ${PREFIX}/bin +MANDIR ?= ${PREFIX}/man -CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -CFLAGS += -I${LIBRESSL_PREFIX}/include -LDFLAGS += -L${LIBRESSL_PREFIX}/lib -LDLIBS = -lcursesw -ltls +CEXTS = gnu-case-range gnu-conditional-omitted-operand +CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -Wmissing-prototypes +CFLAGS += ${CEXTS:%=-Wno-%} +LDADD.libtls = -ltls +LDADD.ncursesw = -lncursesw BINS = catgirl -MANS = catgirl.1 +MANS = ${BINS:=.1} -include config.mk +LDLIBS = ${LDADD.libtls} ${LDADD.ncursesw} +LDLIBS.sandman = -framework Cocoa + +OBJS += buffer.o OBJS += chat.o -OBJS += color.o +OBJS += command.o +OBJS += complete.o +OBJS += config.o OBJS += edit.o -OBJS += event.o -OBJS += format.o +OBJS += filter.o OBJS += handle.o OBJS += input.o OBJS += irc.o OBJS += log.o -OBJS += pls.o -OBJS += tab.o -OBJS += tag.o -OBJS += term.o OBJS += ui.o OBJS += url.o +OBJS += window.o +OBJS += xdg.o + +OBJS.sandman = sandman.o -TESTS += format.t -TESTS += pls.t -TESTS += term.t +TESTS += edit.t -all: tags ${BINS} test +dev: tags all check + +all: ${BINS} catgirl: ${OBJS} ${CC} ${LDFLAGS} ${OBJS} ${LDLIBS} -o $@ ${OBJS}: chat.h -test: ${TESTS} - set -e; ${TESTS:%=./%;} +edit.o edit.t input.o: edit.h + +sandman: ${OBJS.sandman} + ${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@ + +check: ${TESTS} .SUFFIXES: .t .c.t: ${CC} ${CFLAGS} -DTEST ${LDFLAGS} $< ${LDLIBS} -o $@ + ./$@ || rm $@ -tags: *.c *.h - ctags -w *.c *.h +tags: *.[ch] + ctags -w *.[ch] + +clean: + rm -f ${BINS} ${OBJS} ${OBJS.sandman} ${TESTS} tags install: ${BINS} ${MANS} - install -d ${PREFIX}/bin ${MANDIR}/man1 - install ${BINS} ${PREFIX}/bin - install -m 644 ${MANS} ${MANDIR}/man1 + install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1 + install ${BINS} ${DESTDIR}${BINDIR} + install -m 644 ${MANS} ${DESTDIR}${MANDIR}/man1 uninstall: - rm -f ${BINS:%=${PREFIX}/bin/%} - rm -f ${MANS:%=${MANDIR}/man1/%} - -chroot.tar: catgirl catgirl.1 man.sh - install -d -o root -g wheel \ - root \ - root/bin \ - root/etc/ssl \ - root/home \ - root/lib \ - root/libexec \ - root/usr/bin \ - root/usr/share/man \ - root/usr/share/misc - install -d -o ${CHROOT_USER} -g ${CHROOT_GROUP} root/home/${CHROOT_USER} - cp -fp /libexec/ld-elf.so.1 root/libexec - cp -fp \ - /lib/libc.so.7 \ - /lib/libncursesw.so.8 \ - /lib/libthr.so.3 \ - /lib/libz.so.6 \ - /usr/local/lib/libcrypto.so.45 \ - /usr/local/lib/libssl.so.47 \ - /usr/local/lib/libtls.so.19 \ - root/lib - cp -fp /etc/hosts /etc/resolv.conf root/etc - cp -fp /etc/ssl/cert.pem root/etc/ssl - cp -af /usr/share/locale root/usr/share - cp -fp /usr/share/misc/termcap.db root/usr/share/misc - cp -fp /rescue/sh /usr/bin/mandoc /usr/bin/less root/bin - ${MAKE} install PREFIX=root/usr - install man.sh root/usr/bin/man - tar -c -f chroot.tar -C root bin etc home lib libexec usr + rm -f ${BINS:%=${DESTDIR}${BINDIR}/%} + rm -f ${MANS:%=${DESTDIR}${MANDIR}/man1/%} + +CHROOT_USER = chat +CHROOT_GROUP = ${CHROOT_USER} + +chroot.tar: catgirl catgirl.1 scripts/chroot-prompt.sh scripts/chroot-man.sh +chroot.tar: scripts/build-chroot.sh + sh scripts/build-chroot.sh ${CHROOT_USER} ${CHROOT_GROUP} install-chroot: chroot.tar - tar -x -f chroot.tar -C /home/${CHROOT_USER} + tar -px -f chroot.tar -C /home/${CHROOT_USER} -clean: - rm -fr ${BINS} ${OBJS} ${TESTS} tags root chroot.tar +clean-chroot: + rm -fr chroot.tar root |