about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-11-28 20:37:54 -0500
committerJune McEnroe <june@causal.agency>2020-11-28 20:37:54 -0500
commitd0ff7dc8ecef7e835ecb4beef707539489943dbd (patch)
tree00f71a435f7f97fdf28c05d42caba5538e708e50
parentAdd additional permission for linking with LibreSSL (diff)
downloadbubger-d0ff7dc8ecef7e835ecb4beef707539489943dbd.tar.gz
bubger-d0ff7dc8ecef7e835ecb4beef707539489943dbd.zip
Add configure script
-rw-r--r--Makefile24
-rwxr-xr-xconfigure42
2 files changed, 52 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 978af40..19f8e21 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,8 @@
-PREFIX = /usr/local
-SHAREDIR = ${PREFIX}/share
-MANDIR = ${SHAREDIR}/man
-LIBRESSL_PREFIX = /usr/local
+PREFIX ?= /usr/local
+MANDIR ?= ${SHAREDIR}/man
+DATADIR ?= ${PREFIX}/share
 
 CFLAGS += -std=c11 -Wall -Wextra -Wpedantic
-# XXX: avoid iconv.h from libiconv
-CFLAGS += -idirafter ${LIBRESSL_PREFIX}/include
-LDFLAGS += -L${LIBRESSL_PREFIX}/lib
 LDLIBS = -ltls
 
 -include config.mk
@@ -31,18 +27,18 @@ bubger: ${OBJS}
 
 ${OBJS}: archive.h imap.h
 
-tags: *.c *.h
-	ctags -w *.c *.h
+tags: *.[ch]
+	ctags -w *.[ch]
 
 clean:
 	rm -f bubger ${OBJS} tags
 
 install: bubger bubger.1 default.html
-	install -d ${PREFIX}/bin ${MANDIR}/man1 ${SHAREDIR}/bubger
+	install -d ${PREFIX}/bin ${MANDIR}/man1 ${DATADIR}/bubger
 	install bubger ${PREFIX}/bin
-	gzip -c bubger.1 > ${MANDIR}/man1/bubger.1.gz
-	install -m 644 default.html ${SHAREDIR}/bubger
+	install -m 644 bubger.1 ${MANDIR}/man1
+	install -m 644 default.html ${DATADIR}/bubger
 
 uninstall:
-	rm -f ${PREFIX}/bin/bubger ${MANDIR}/man1/bubger.1.gz
-	rm -fr ${SHAREDIR}/bubger
+	rm -f ${PREFIX}/bin/bubger ${MANDIR}/man1/bubger.1
+	rm -fr ${DATADIR}/bubger
diff --git a/configure b/configure
new file mode 100755
index 0000000..bd6d39d
--- /dev/null
+++ b/configure
@@ -0,0 +1,42 @@
+#!/bin/sh
+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:-}"
+}
+
+exec >config.mk
+
+for opt; do
+	case "${opt}" in
+		(--prefix=*) echo "PREFIX = ${opt#*=}" ;;
+		(--mandir=*) echo "MANDIR = ${opt#*=}" ;;
+		(--datadir=*) echo "DATADIR = ${opt#*=}" ;;
+		(*) echo "warning: unsupported option ${opt}" >&2 ;;
+	esac
+done
+
+case "$(uname)" in
+	(Darwin)
+		config libtls
+		ldlibs -liconv
+		;;
+	(*)
+		config libtls
+		;;
+esac