diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100755 index 0000000..1fd4ad2 --- /dev/null +++ b/configure @@ -0,0 +1,68 @@ +#!/bin/sh +set -eu + +: ${PKG_CONFIG:=pkg-config} + +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-sandman) echo 'BINS += sandman' ;; + (*) echo "warning: unsupported option ${opt}" >&2 ;; + esac +done + +case "$(uname)" in + (FreeBSD) + config libtls + defstr OPENSSL_BIN /usr/bin/openssl + ;; + (OpenBSD) + defstr OPENSSL_BIN /usr/bin/openssl + ;; + (Linux) + cflags -Wno-pedantic -D_GNU_SOURCE + config libtls ncursesw + defvar OPENSSL_BIN openssl exec_prefix /bin/openssl + echo 'OBJS += compat_readpassphrase.o' + ;; + (Darwin) + cflags -D__STDC_WANT_LIB_EXT1__=1 + cflags "-D'explicit_bzero(b,l)=memset_s((b),(l),0,(l))'" + config libtls ncursesw + defvar OPENSSL_BIN openssl exec_prefix /bin/openssl + ;; + (NetBSD) + cflags "-D'explicit_bzero(b,l)=explicit_memset((b),0,(l))'" + config libtls ncurses + echo 'LDADD.ncursesw = ${LDADD.ncurses}' + echo 'OBJS += compat_readpassphrase.o' + defstr OPENSSL_BIN /usr/bin/openssl + ;; + (*) + config libtls ncursesw + defvar OPENSSL_BIN openssl exec_prefix /bin/openssl + ;; +esac |