60 lines
1.2 KiB
Bash
Executable File
60 lines
1.2 KiB
Bash
Executable File
#!/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#*=}" ;;
|
|
(*) 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
|
|
;;
|
|
(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
|
|
;;
|
|
(*)
|
|
config libtls ncursesw
|
|
defvar OPENSSL_BIN openssl exec_prefix /bin/openssl
|
|
;;
|
|
esac
|