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