core/eiwd/ndmake.sh
$ cat ndmake.sh
#!/bin/sh -ue
NAME=eiwd
VERSION=git
RELEASE=1
SOURCE="https://github.com/illiliti/eiwd.git
	eiwd-hell.patch
	iwd.sv::sv"
BUILD_STYLE=hell
BUILD_OPT="-DCOND_MAINTAINER_MODE=0 -DCOND_EXTERNAL_ELL=0 -DCOND_LIBEDIT=0 \
	-DCOND_DBUS_POLICY=0 -DCOND_SYSTEMD_SERVICE=0 -DCOND_MANUAL_PAGES=0 \
	-DCOND_DAEMON=1 -DCOND_OFONO=0 -DCOND_CLIENT=0 -DCOND_MONITOR=0 \
	-DCOND_WIRED=0 -DCOND_TOOLS=0 -DCOND_HWSIM=0 -DCOND_DBUS=0 \
	-DCOND_RUN_RST2MAN=0 -DCOND_GCOV=0 \
	-DDEF_HAVE_EXPLICIT_BZERO=1 -DDEF_HAVE_REALLOCARRAY=1 \
	-DDEF_DAEMON_STORAGEDIR=\"/var/lib/iwd\" -DDEF_DAEMON_CONFIGDIR=\"/etc/iwd\" \
	-DDEF_WIRED_STORAGEDIR=\"/var/lib/ead\" -DUNDEF_HAVE_BACKTRACE=1 \
	-DLIBEXECDIR=/bin -DCHECK_PKG= -DEXTRA_PKG= \
	-DLDFLAGS=\"$LDFLAGS\""
LN_S="ln -s"

build() {
	msg "cloning ell..."
	rm -rf ell/
	git clone --depth=1 https://git.kernel.org/pub/scm/libs/ell/ell.git ell \
		|| die "ell clone failed"
	ln -sf ../ell/ell/test-private.h ell/test-private.h
	( cd ell && for f in ell/*; do
		[ -f "$f" ] || continue
		ln -sf "$f" "$(basename "$f")"
	done )

	msg "generating with demiurge..."
	has_cmd demiurge && demiurge . || msg "warning: demiurge not found"

	msg "generating with satan..."
	satan gen ${BUILD_OPT} -DLN_S="$LN_S" PREFIX="$PREFIX" DESTDIR="$PKG" . \
		|| die "satan gen failed"

	msg "building eiwd..."
	if has_cmd samu; then
		samu || die "samu build failed"
		DESTDIR="$PKG" samu install || die "samu install failed"
	else
		ninja || die "ninja build failed"
		DESTDIR="$PKG" ninja install || die "ninja install failed"
	fi
}
. ${0%/*}/../../libsh/libdmake.sh