summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-05-04 12:09:46 -0400
committerJune McEnroe <june@causal.agency>2021-05-04 12:13:50 -0400
commitff87d561bd545c715dbe6beb813724a28535e7f4 (patch)
treee67589c55806edb9e8e42af4895b3358a6e54e47
parentReset formatting after realnames (diff)
downloadcatgirl-ff87d561bd545c715dbe6beb813724a28535e7f4.tar.gz
catgirl-ff87d561bd545c715dbe6beb813724a28535e7f4.zip
Add support for BINDIR, fix default MANDIR, use LDADD vars
I avoided defaulting MANDIR to /usr/local/man because I thought it
didn't work on GNU/Linux and users would be confused, but it turns
out man-db's default configuration includes both /usr/local/man and
/usr/man, so ${PREFIX}/man is a sensical default.
-rw-r--r--Makefile26
-rwxr-xr-xconfigure21
2 files changed, 25 insertions, 22 deletions
diff --git a/Makefile b/Makefile
index 5caa3ba..b285e8c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,16 @@
 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
+LDADD.libtls = -ltls
+LDADD.ncursesw = -lncursesw
 
 -include config.mk
 
+LDLIBS = ${LDADD.libtls} ${LDADD.ncursesw}
+
 OBJS += buffer.o
 OBJS += chat.o
 OBJS += command.o
@@ -30,30 +34,30 @@ catgirl: ${OBJS}
 
 ${OBJS}: chat.h
 
-tags: *.h *.c
-	ctags -w *.h *.c
+tags: *.[ch]
+	ctags -w *.[ch]
 
 clean:
-	rm -f tags catgirl ${OBJS}
+	rm -f catgirl ${OBJS} tags
 
 install: catgirl catgirl.1
-	install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1
-	install catgirl ${DESTDIR}${PREFIX}/bin
+	install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1
+	install catgirl ${DESTDIR}${BINDIR}
 	install -m 644 catgirl.1 ${DESTDIR}${MANDIR}/man1
 
 uninstall:
-	rm -f ${DESTDIR}${PREFIX}/bin/catgirl ${DESTDIR}${MANDIR}/man1/catgirl.1
+	rm -f ${DESTDIR}${BINDIR}/catgirl ${DESTDIR}${MANDIR}/man1/catgirl.1
 
 scripts/sandman: scripts/sandman.o
 	${CC} ${LDFLAGS} scripts/sandman.o -framework Cocoa -o $@
 
 install-sandman: scripts/sandman scripts/sandman.1
-	install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1
-	install scripts/sandman ${DESTDIR}${PREFIX}/bin
+	install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1
+	install scripts/sandman ${DESTDIR}${BINDIR}
 	install -m 644 scripts/sandman.1 ${DESTDIR}${MANDIR}/man1
 
 uninstall-sandman:
-	rm -f ${DESTDIR}${PREFIX}/bin/sandman ${DESTDIR}${MANDIR}/man1/sandman.1
+	rm -f ${DESTDIR}${BINDIR}/sandman ${DESTDIR}${MANDIR}/man1/sandman.1
 
 CHROOT_USER = chat
 CHROOT_GROUP = ${CHROOT_USER}
diff --git a/configure b/configure
index 02bf093..4199980 100755
--- a/configure
+++ b/configure
@@ -4,27 +4,28 @@ set -eu
 cflags() {
 	echo "CFLAGS += $*"
 }
-ldlibs() {
-	echo "LDLIBS ${o:-}= $*"
-	o=+
-}
-config() {
-	pkg-config --print-errors "$@"
-	cflags $(pkg-config --cflags "$@")
-	ldlibs $(pkg-config --libs "$@")
-}
 defstr() {
 	cflags "-D'$1=\"$2\"'"
 }
 defvar() {
 	defstr "$1" "$(pkg-config --variable=$3 $2)${4:-}"
 }
+ldadd() {
+	lib=$1; shift
+	echo "LDADD.${lib} = $*"
+}
+config() {
+	pkg-config --print-errors "$@"
+	cflags $(pkg-config --cflags "$@")
+	for lib; do ldadd $lib $(pkg-config --libs $lib); done
+}
 
 exec >config.mk
 
 for opt; do
 	case "${opt}" in
 		(--prefix=*) echo "PREFIX = ${opt#*=}" ;;
+		(--bindir=*) echo "BINDIR = ${opt#*=}" ;;
 		(--mandir=*) echo "MANDIR = ${opt#*=}" ;;
 		(*) echo "warning: unsupported option ${opt}" >&2 ;;
 	esac
@@ -32,12 +33,10 @@ done
 
 case "$(uname)" in
 	(FreeBSD)
-		ldlibs -lncursesw
 		config libtls
 		defstr OPENSSL_BIN /usr/bin/openssl
 		;;
 	(OpenBSD)
-		ldlibs -lncursesw -ltls
 		defstr OPENSSL_BIN /usr/bin/openssl
 		;;
 	(Linux)
/tr> 2021-09-22Remove default faviconJune McEnroe I hate these things and also this one sucks. 2021-09-21Use Z_FILTERED strategyJune McEnroe 2021-09-21Recalculate various lengths only as neededJune McEnroe This actually speeds things up quite a bit, saving roughly a second on a big PNG screenshot. Almost all the remaining time is spent in deflate. 2021-09-21Rewrite pngo, add explicit optionsJune McEnroe Interesting to see how my code habits have changed. 2021-09-16Fix /* **/ comment matchingJune McEnroe 2021-09-15Remove typer, add downgrade to READMEJune McEnroe 2021-09-15Set bot mode on downgradeJune McEnroe 2021-09-15Enter capsicum in downgradeJune McEnroe 2021-09-15Factor out common parts of downgrade messagesJune McEnroe Also bump the message cap to 1024 because that is ostensibly useful for replying to older messages. 2021-09-14Add downgrade IRC botJune McEnroe 2021-09-14Sort by title if authors matchJune McEnroe There are probably better things to sort by but title definitely always exists. 2021-09-13Swap-remove tags as they're foundJune McEnroe This makes it even faster. From ~1s on a sqlite3.c amalgamation to ~0.85s. 2021-09-12Replace htagml regex with strncmpJune McEnroe Since ctags only ever produces regular expressions of the form /^re$/ or /^re/ with no other special characters, instead unescape the pattern and simply use strncmp. Running on a sqlite3.c amalgamation, the regex version takes ~37s while the strncmp version takes ~1s, producing identical output. Big win! 2021-09-11Also defer printing comment for lone close-parensJune McEnroe 2021-09-10Publish "git-comment"June McEnroe 2021-09-10Add git comment --pretty optionJune McEnroe 2021-09-08Defer printing comment if line is blank or closing braceJune McEnroe This fixes badly indented comments. 2021-09-08Up default min-repeat to 30 linesJune McEnroe 2021-09-08Handle dirty lines in git-commentJune McEnroe 2021-09-08Document and install git-commentJune McEnroe 2021-09-08Add repeat and all options to git-commentJune McEnroe 2021-09-08Add group threshold to git-commentJune McEnroe