diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 85 |
1 files changed, 52 insertions, 33 deletions
diff --git a/configure b/configure index b75a2d3..29587a2 100755 --- a/configure +++ b/configure @@ -1,45 +1,64 @@ #!/bin/sh set -eu -base='-lcrypt' -libs='libcrypto libtls' +cflags() { + echo "CFLAGS += $*" +} +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#*=}" ;; + (--enable-notify) echo 'BINS += pounce-notify' ;; + (--enable-palaver) + echo 'BINS += pounce-palaver' + config libcurl sqlite3 + ;; + (*) echo "warning: unsupported option ${opt}" >&2 ;; + esac +done + case "$(uname)" in - (Darwin) - base='' - ;; (FreeBSD) - if ! pkg info -e libressl; then - echo 'LibreSSL required' >&2 - exit 1 - fi - prefix=$(pkg query '%p' libressl) - cat <<-EOF - MANDIR = \${PREFIX}/man - CFLAGS += -I${prefix}/include - CFLAGS += -D'OPENSSL_BIN="${prefix}/bin/openssl"' - LDFLAGS += -L${prefix}/lib - EOF - exit + config libtls + defstr OPENSSL_BIN /usr/bin/openssl + ;; + (OpenBSD) + ldadd crypt '' + defstr OPENSSL_BIN /usr/bin/openssl ;; (Linux) - cat <<-EOF - CFLAGS += -D_GNU_SOURCE - CFLAGS += -D'CERTBOT_PATH="/etc/letsencrypt"' - LDLIBS_calico = \${LDLIBS} - RCS = - DIRS = - EOF + cflags -D_GNU_SOURCE + config libtls + defvar OPENSSL_BIN openssl exec_prefix /bin/openssl + ;; + (Darwin) + cflags -D__STDC_WANT_LIB_EXT1__=1 + cflags "-D'explicit_bzero(b,l)=memset_s((b),(l),0,(l))'" + ldadd crypt '' + config libtls + defvar OPENSSL_BIN openssl exec_prefix /bin/openssl + ;; + (*) + config libtls + defvar OPENSSL_BIN openssl exec_prefix /bin/openssl ;; esac - -pkg-config --print-errors $libs - -cat <<EOF -CFLAGS += $(pkg-config --cflags $libs) -CFLAGS += -D'OPENSSL_BIN="$(pkg-config --variable=prefix openssl)/bin/openssl"' -LDFLAGS += $(pkg-config --libs-only-L $libs) -LDLIBS = $base $(pkg-config --libs-only-l $libs) -EOF |