diff options
Diffstat (limited to '')
-rw-r--r-- | Makefile | 24 | ||||
-rwxr-xr-x | configure | 42 |
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 |