diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Makefile | 61 | ||||
-rw-r--r-- | README.7 | 5 | ||||
-rwxr-xr-x | configure | 24 | ||||
-rw-r--r-- | extra/notify/Makefile | 12 | ||||
-rwxr-xr-x | extra/notify/configure | 20 | ||||
-rw-r--r-- | extra/palaver/Makefile | 14 | ||||
-rwxr-xr-x | extra/palaver/configure | 20 |
8 files changed, 83 insertions, 76 deletions
diff --git a/.gitignore b/.gitignore index c66cc95..882cf40 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ *.o calico config.mk -localhost.crt -localhost.key +localhost.pem pounce tags diff --git a/Makefile b/Makefile index 75b020d..39324d8 100644 --- a/Makefile +++ b/Makefile @@ -1,53 +1,60 @@ PREFIX ?= /usr/local -MANDIR ?= ${PREFIX}/share/man +BINDIR ?= ${PREFIX}/bin +MANDIR ?= ${PREFIX}/man CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -LDLIBS = -lcrypt -ltls +LDADD.crypt = -lcrypt +LDADD.libtls = -ltls BINS = calico pounce MANS = ${BINS:=.1} -include config.mk -OBJS += bounce.o -OBJS += cert.o -OBJS += client.o -OBJS += config.o -OBJS += local.o -OBJS += ring.o -OBJS += server.o -OBJS += state.o -OBJS += xdg.o +LDLIBS.calico = +LDLIBS.pounce = ${LDADD.crypt} ${LDADD.libtls} + +OBJS.calico += dispatch.o + +OBJS.pounce += bounce.o +OBJS.pounce += cert.o +OBJS.pounce += client.o +OBJS.pounce += config.o +OBJS.pounce += local.o +OBJS.pounce += ring.o +OBJS.pounce += server.o +OBJS.pounce += state.o +OBJS.pounce += xdg.o + +OBJS = ${OBJS.calico} ${OBJS.pounce} dev: tags all all: ${BINS} -calico: dispatch.o - ${CC} ${LDFLAGS} dispatch.o -o $@ +calico: ${OBJS.calico} + +pounce: ${OBJS.pounce} -pounce: ${OBJS} - ${CC} ${LDFLAGS} ${OBJS} ${LDLIBS} -o $@ +${BINS}: + ${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@ -${OBJS}: bounce.h +${OBJS.pounce}: bounce.h -tags: *.c *.h - ctags -w *.c *.h +tags: *.[ch] + ctags -w *.[ch] clean: - rm -f tags ${BINS} ${OBJS} dispatch.o + rm -f ${BINS} ${OBJS} tags install: ${BINS} ${MANS} - install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1 - install ${BINS} ${DESTDIR}${PREFIX}/bin + install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1 + install ${BINS} ${DESTDIR}${BINDIR} install -m 644 ${MANS} ${DESTDIR}${MANDIR}/man1 uninstall: - rm -f ${BINS:%=${DESTDIR}${PREFIX}/bin/%} + rm -f ${BINS:%=${DESTDIR}${BINDIR}/%} rm -f ${MANS:%=${DESTDIR}${MANDIR}/man1/%} -localhost.crt: - printf "[dn]\nCN=localhost\n[req]\ndistinguished_name=dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth" \ - | openssl req -x509 -out localhost.crt -keyout localhost.key \ - -newkey rsa:2048 -nodes -sha256 \ - -subj '/CN=localhost' -extensions EXT -config /dev/fd/0 +localhost.pem: pounce + ./pounce -g $@ diff --git a/README.7 b/README.7 index 821a763..13fcd98 100644 --- a/README.7 +++ b/README.7 @@ -1,4 +1,4 @@ -.Dd April 30, 2021 +.Dd May 2, 2021 .Dt README 7 .Os "Causal Agency" . @@ -71,9 +71,6 @@ and .Xr unveil 2 . Linux and macOS are also supported. -On BSD systems, -configure with -.Fl \-mandir=/usr/local/man . .Bd -literal -offset indent \&./configure make all diff --git a/configure b/configure index 4384104..a39e76e 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,18 +33,16 @@ done case "$(uname)" in (FreeBSD) - ldlibs -lcrypt config libtls defstr OPENSSL_BIN /usr/bin/openssl defstr CERTBOT_PATH /usr/local/etc/letsencrypt ;; (OpenBSD) - ldlibs -ltls + ldadd crypt '' defstr OPENSSL_BIN /usr/bin/openssl ;; (Linux) cflags -D_GNU_SOURCE - ldlibs -lcrypt config libtls defvar OPENSSL_BIN openssl exec_prefix /bin/openssl ;; @@ -54,7 +53,6 @@ case "$(uname)" in defvar OPENSSL_BIN openssl exec_prefix /bin/openssl ;; (*) - ldlibs -lcrypt config libtls defvar OPENSSL_BIN openssl exec_prefix /bin/openssl ;; diff --git a/extra/notify/Makefile b/extra/notify/Makefile index b82094f..5e8ed93 100644 --- a/extra/notify/Makefile +++ b/extra/notify/Makefile @@ -1,11 +1,13 @@ PREFIX ?= /usr/local -MANDIR ?= ${PREFIX}/share/man +BINDIR ?= ${PREFIX}/bin +MANDIR ?= ${PREFIX}/man CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -LDLIBS = -ltls +LDADD.libtls = -ltls -include config.mk +LDLIBS = ${LDADD.libtls} OBJS = notify.o all: pounce-notify @@ -17,10 +19,10 @@ clean: rm -f ${OBJS} pounce-notify install: pounce-notify pounce-notify.1 - install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1 - install pounce-notify ${DESTDIR}${PREFIX}/bin + install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1 + install pounce-notify ${DESTDIR}${BINDIR} install -m 644 pounce-notify.1 ${DESTDIR}${MANDIR}/man1 uninstall: - rm -f ${DESTDIR}${PREFIX}/bin/pounce-notify + rm -f ${DESTDIR}${BINDIR}/pounce-notify rm -f ${DESTDIR}${MANDIR}/man1/pounce-notify.1 diff --git a/extra/notify/configure b/extra/notify/configure index 5a4ec45..e180aa5 100755 --- a/extra/notify/configure +++ b/extra/notify/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,7 +33,6 @@ done case "$(uname)" in (OpenBSD) - ldlibs -ltls ;; (Linux) cflags -D_GNU_SOURCE diff --git a/extra/palaver/Makefile b/extra/palaver/Makefile index 457e592..fbf10df 100644 --- a/extra/palaver/Makefile +++ b/extra/palaver/Makefile @@ -1,11 +1,15 @@ PREFIX ?= /usr/local -MANDIR ?= ${PREFIX}/share/man +BINDIR ?= ${PREFIX}/bin +MANDIR ?= ${PREFIX}/man CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -LDLIBS = -lcurl -lsqlite3 -ltls +LDADD.libcurl = -lcurl +LDADD.libtls = -ltls +LDADD.sqlite3 = -lsqlite3 -include config.mk +LDLIBS = ${LDADD.libcurl} ${LDADD.libtls} ${LDADD.sqlite3} OBJS = notify.o all: pounce-palaver @@ -17,10 +21,10 @@ clean: rm -f ${OBJS} pounce-palaver install: pounce-palaver pounce-palaver.1 - install -d ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANDIR}/man1 - install pounce-palaver ${DESTDIR}${PREFIX}/bin + install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1 + install pounce-palaver ${DESTDIR}${BINDIR} install -m 644 pounce-palaver.1 ${DESTDIR}${MANDIR}/man1 uninstall: - rm -f ${DESTDIR}${PREFIX}/bin/pounce-palaver + rm -f ${DESTDIR}${BINDIR}/pounce-palaver rm -f ${DESTDIR}${MANDIR}/man1/pounce-palaver.1 diff --git a/extra/palaver/configure b/extra/palaver/configure index 65c82fe..bce92be 100755 --- a/extra/palaver/configure +++ b/extra/palaver/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,7 +33,6 @@ done case "$(uname)" in (OpenBSD) - ldlibs -ltls config libcurl sqlite3 ;; (Linux) |