lib/ldns/ndmake.sh
$ cat ndmake.sh
#!/bin/sh -ue
NAME=ldns
VERSION=git
RELEASE=1
SOURCE="https://github.com/NLnetLabs/ldns"

build() {
	ver_major=$(sed -n 's/^m4_define(\[VERSION_MAJOR\],\[\([0-9][0-9]*\)\]).*/\1/p' configure.ac)
	ver_minor=$(sed -n 's/^m4_define(\[VERSION_MINOR\],\[\([0-9][0-9]*\)\]).*/\1/p' configure.ac)
	ver_micro=$(sed -n 's/^m4_define(\[VERSION_MICRO\],\[\([0-9][0-9]*\)\]).*/\1/p' configure.ac)
	[ -n "$ver_major" ] || die "failed to parse VERSION_MAJOR"
	[ -n "$ver_minor" ] || die "failed to parse VERSION_MINOR"
	[ -n "$ver_micro" ] || die "failed to parse VERSION_MICRO"
	ver="$ver_major.$ver_minor.$ver_micro"

	msg "configuring ldns with demiurge..."
	demiurge . || die "demiurge failed"
	[ ! -f .satan ] && echo "LDFLAGS=${LDFLAGS}" > .satan

	msg "generating ldns makefiles with satan..."
	satan gen -c \
		-DSHELL=/bin/sh \
		-Dlibtool=libtool \
		-DVERSION="$ver" \
		-DPACKAGE_VERSION="$ver" \
		-DDEF_PACKAGE_VERSION="\"$ver\"" \
		-DDEF_PACKAGE_STRING="\"ldns $ver\"" \
		-DDEF_VERSION="\"$ver\"" \
		-DDRILL=drill \
		-DINSTALL_DRILL=install-drill \
		-DUNINSTALL_DRILL=uninstall-drill \
		-DCLEAN_DRILL=clean-drill \
		-DLINT_DRILL=lint-drill \
		-DINSTALL_CONFIG=install-config \
		-DINSTALL_CONFIG_MANPAGE=install-config-manpage \
		-DUNINSTALL_CONFIG=uninstall-config \
		-DUNINSTALL_CONFIG_MANPAGE=uninstall-config-manpage \
		-DPYLDNS= \
		-DPYLDNSX= \
		-DPYLDNSINST= \
		-DPYLDNSUNINST= \
		-DPYLDNSXINST= \
		-DPYLDNSXUNINST= \
		-Dswig= \
		-DSWIGPY3= \
		-DDEF_HAVE_SWIG=0 \
		-DDEF_USE_SHA2=0 \
		-DDEF_USE_GOST=0 \
		-DDEF_USE_ECDSA=0 \
		-DDEF_USE_ED25519=0 \
		-DDEF_USE_ED448=0 \
		-DDEF_USE_DANE=0 \
		-DDEF_USE_DANE_VERIFY=0 \
		-DDEF_USE_DANE_TA_USAGE=0 \
		-Dldns_build_config_use_dane=0 \
		-Dldns_build_config_use_dane_verify=0 \
		-Dldns_build_config_use_dane_ta_usage=0 \
		-Dldns_build_config_use_ed25519=0 \
		-Dldns_build_config_use_ed448=0 \
		-Dldns_build_config_have_ssl=0 \
		-Dldns_build_config_have_inttypes_h=1 \
		-Dldns_build_config_have_socklen_t=1 \
		-DLIBSSL_CPPFLAGS= \
		-DLIBSSL_LDFLAGS= \
		-DLIBSSL_LIBS= \
		-DLIBSSL_SSL_LIBS= \
		-DCHECK_LIB= \
		-DDEF_HAVE_LIBPCAP=0 \
		PREFIX="$PREFIX" DESTDIR="$PKG" . || die "satan gen failed"

	msg "materializing missing ldns/config.h..."
	rm -f config.h ldns/config.h || die "failed to remove broken config.h links"
	install -m 644 "$PORTDIR/files/config.h" ldns/config.h || die "failed to install ldns/config.h"
	ln -sf ldns/config.h config.h || die "failed to symlink config.h"

	msg "building ldns..."
	make -j"$NPROC" INSTALL=install libtool='slibtool -all-static' LIBOBJS='compat/b64_pton.o compat/b64_ntop.o' || die "make failed"

	msg "installing ldns..."
	install -d "$PKG/$PREFIX/lib/pkgconfig" "$PKG/$PREFIX/bin" "$PKG/$PREFIX/share/man/man1" || die "failed to create install dirs"
	make -j1 INSTALL=install libtool='slibtool -all-static' LIBOBJS='compat/b64_pton.o compat/b64_ntop.o' DESTDIR="$PKG" install || die "make install failed"
}

. ${0%/*}/../../libsh/libdmake.sh