diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 98 |
1 files changed, 46 insertions, 52 deletions
diff --git a/Makefile b/Makefile index 08e90ab..66fb408 100644 --- a/Makefile +++ b/Makefile @@ -1,93 +1,87 @@ PREFIX ?= /usr/local -MANDIR ?= ${PREFIX}/share/man +BINDIR ?= ${PREFIX}/bin +MANDIR ?= ${PREFIX}/man CEXTS = gnu-case-range gnu-conditional-omitted-operand -CFLAGS += -std=c11 -Wall -Wextra -Wpedantic ${CEXTS:%=-Wno-%} -LDLIBS = -lncursesw -ltls +CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -Wmissing-prototypes +CFLAGS += ${CEXTS:%=-Wno-%} +LDADD.libtls = -ltls +LDADD.ncursesw = -lncursesw + +BINS = catgirl +MANS = ${BINS:=.1} -include config.mk +LDLIBS = ${LDADD.libtls} ${LDADD.ncursesw} +LDLIBS.sandman = -framework Cocoa + +OBJS += buffer.o OBJS += chat.o OBJS += command.o OBJS += complete.o OBJS += config.o OBJS += edit.o +OBJS += filter.o OBJS += handle.o -OBJS += ignore.o +OBJS += input.o OBJS += irc.o OBJS += log.o OBJS += ui.o OBJS += url.o +OBJS += window.o OBJS += xdg.o -dev: tags all +OBJS.sandman = sandman.o + +TESTS += edit.t -all: catgirl +dev: tags all check + +all: ${BINS} catgirl: ${OBJS} ${CC} ${LDFLAGS} ${OBJS} ${LDLIBS} -o $@ ${OBJS}: chat.h -tags: *.h *.c - ctags -w *.h *.c +edit.o edit.t input.o: edit.h -clean: - rm -f tags catgirl ${OBJS} +sandman: ${OBJS.sandman} + ${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@ -install: catgirl catgirl.1 - install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1 - install catgirl ${DESTDIR}${PREFIX}/bin - install -m 644 catgirl.1 ${DESTDIR}${MANDIR}/man1 +check: ${TESTS} -uninstall: - rm -f ${DESTDIR}${PREFIX}/bin/catgirl ${DESTDIR}${MANDIR}/man1/catgirl.1 +.SUFFIXES: .t + +.c.t: + ${CC} ${CFLAGS} -DTEST ${LDFLAGS} $< ${LDLIBS} -o $@ + ./$@ || rm $@ -scripts/sandman: scripts/sandman.o - ${CC} ${LDFLAGS} scripts/sandman.o -framework Cocoa -o $@ +tags: *.[ch] + ctags -w *.[ch] -install-sandman: scripts/sandman scripts/sandman.1 - install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1 - install scripts/sandman ${DESTDIR}${PREFIX}/bin - install -m 644 scripts/sandman.1 ${DESTDIR}${MANDIR}/man1 +clean: + rm -f ${BINS} ${OBJS} ${OBJS.sandman} ${TESTS} tags -uninstall-sandman: - rm -f ${DESTDIR}${PREFIX}/bin/sandman ${DESTDIR}${MANDIR}/man1/sandman.1 +install: ${BINS} ${MANS} + install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1 + install ${BINS} ${DESTDIR}${BINDIR} + install -m 644 ${MANS} ${DESTDIR}${MANDIR}/man1 + +uninstall: + 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 - install -d -o root -g wheel \ - root \ - root/bin \ - root/etc \ - root/home \ - root/lib \ - root/libexec \ - root/usr/bin \ - root/usr/local/etc/ssl \ - root/usr/share/man \ - root/usr/share/misc - install -d -o ${CHROOT_USER} -g ${CHROOT_GROUP} \ - root/home/${CHROOT_USER} \ - root/home/${CHROOT_USER}/.local/share - cp -fp /libexec/ld-elf.so.1 root/libexec - ldd -f '%p\n' catgirl /usr/bin/mandoc /usr/bin/less \ - | sort -u | xargs -t -J % cp -fp % root/lib - chflags noschg root/libexec/* root/lib/* - cp -fp /etc/hosts /etc/resolv.conf root/etc - cp -fp /usr/local/etc/ssl/cert.pem root/usr/local/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 DESTDIR=root PREFIX=/usr - install scripts/chroot-prompt.sh root/usr/bin/catgirl-prompt - install scripts/chroot-man.sh root/usr/bin/man - tar -c -f chroot.tar -C root bin etc home lib libexec usr +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-chroot: rm -fr chroot.tar root |