#!/bin/sh set -eu 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 (FreeBSD) config libtls defstr OPENSSL_BIN /usr/bin/openssl ;; (OpenBSD) ldadd crypt '' defstr OPENSSL_BIN /usr/bin/openssl ;; (Linux) 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