From ff87d561bd545c715dbe6beb813724a28535e7f4 Mon Sep 17 00:00:00 2001 From: C. McEnroe Date: Tue, 4 May 2021 12:09:46 -0400 Subject: 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. --- Makefile | 26 +++++++++++++++----------- configure | 21 ++++++++++----------- 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) -- cgit 1.4.1-2-gfad0