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.
master
C. McEnroe 2021-05-04 12:09:46 -04:00
parent 94f79e889f
commit ff87d561bd
2 changed files with 25 additions and 22 deletions

View File

@ -1,12 +1,16 @@
PREFIX ?= /usr/local PREFIX ?= /usr/local
MANDIR ?= ${PREFIX}/share/man BINDIR ?= ${PREFIX}/bin
MANDIR ?= ${PREFIX}/man
CEXTS = gnu-case-range gnu-conditional-omitted-operand CEXTS = gnu-case-range gnu-conditional-omitted-operand
CFLAGS += -std=c11 -Wall -Wextra -Wpedantic ${CEXTS:%=-Wno-%} CFLAGS += -std=c11 -Wall -Wextra -Wpedantic ${CEXTS:%=-Wno-%}
LDLIBS = -lncursesw -ltls LDADD.libtls = -ltls
LDADD.ncursesw = -lncursesw
-include config.mk -include config.mk
LDLIBS = ${LDADD.libtls} ${LDADD.ncursesw}
OBJS += buffer.o OBJS += buffer.o
OBJS += chat.o OBJS += chat.o
OBJS += command.o OBJS += command.o
@ -30,30 +34,30 @@ catgirl: ${OBJS}
${OBJS}: chat.h ${OBJS}: chat.h
tags: *.h *.c tags: *.[ch]
ctags -w *.h *.c ctags -w *.[ch]
clean: clean:
rm -f tags catgirl ${OBJS} rm -f catgirl ${OBJS} tags
install: catgirl catgirl.1 install: catgirl catgirl.1
install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1 install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1
install catgirl ${DESTDIR}${PREFIX}/bin install catgirl ${DESTDIR}${BINDIR}
install -m 644 catgirl.1 ${DESTDIR}${MANDIR}/man1 install -m 644 catgirl.1 ${DESTDIR}${MANDIR}/man1
uninstall: 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 scripts/sandman: scripts/sandman.o
${CC} ${LDFLAGS} scripts/sandman.o -framework Cocoa -o $@ ${CC} ${LDFLAGS} scripts/sandman.o -framework Cocoa -o $@
install-sandman: scripts/sandman scripts/sandman.1 install-sandman: scripts/sandman scripts/sandman.1
install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1 install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1
install scripts/sandman ${DESTDIR}${PREFIX}/bin install scripts/sandman ${DESTDIR}${BINDIR}
install -m 644 scripts/sandman.1 ${DESTDIR}${MANDIR}/man1 install -m 644 scripts/sandman.1 ${DESTDIR}${MANDIR}/man1
uninstall-sandman: 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_USER = chat
CHROOT_GROUP = ${CHROOT_USER} CHROOT_GROUP = ${CHROOT_USER}

21
configure vendored
View File

@ -4,27 +4,28 @@ set -eu
cflags() { cflags() {
echo "CFLAGS += $*" echo "CFLAGS += $*"
} }
ldlibs() {
echo "LDLIBS ${o:-}= $*"
o=+
}
config() {
pkg-config --print-errors "$@"
cflags $(pkg-config --cflags "$@")
ldlibs $(pkg-config --libs "$@")
}
defstr() { defstr() {
cflags "-D'$1=\"$2\"'" cflags "-D'$1=\"$2\"'"
} }
defvar() { defvar() {
defstr "$1" "$(pkg-config --variable=$3 $2)${4:-}" 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 exec >config.mk
for opt; do for opt; do
case "${opt}" in case "${opt}" in
(--prefix=*) echo "PREFIX = ${opt#*=}" ;; (--prefix=*) echo "PREFIX = ${opt#*=}" ;;
(--bindir=*) echo "BINDIR = ${opt#*=}" ;;
(--mandir=*) echo "MANDIR = ${opt#*=}" ;; (--mandir=*) echo "MANDIR = ${opt#*=}" ;;
(*) echo "warning: unsupported option ${opt}" >&2 ;; (*) echo "warning: unsupported option ${opt}" >&2 ;;
esac esac
@ -32,12 +33,10 @@ done
case "$(uname)" in case "$(uname)" in
(FreeBSD) (FreeBSD)
ldlibs -lncursesw
config libtls config libtls
defstr OPENSSL_BIN /usr/bin/openssl defstr OPENSSL_BIN /usr/bin/openssl
;; ;;
(OpenBSD) (OpenBSD)
ldlibs -lncursesw -ltls
defstr OPENSSL_BIN /usr/bin/openssl defstr OPENSSL_BIN /usr/bin/openssl
;; ;;
(Linux) (Linux)