nixpkgs/pkgs/development/tools/build-managers/bmake/setup-hook.sh
Alyssa Ross 4de8cbfb16 bmake.passthru.setupHook: set some defaults
These are all read from the environment by the default bmake
stdlib (e.g. <bsd.prog.mk>, <bsd.own.mk>).  Some of the default
values (like building cat pages instead of man pages, or stripping
binaries when installing) don't really make sense for Nixpkgs, so we
override them here for every build using bmake.

Eventually I'd like to unify the bmake setupHook and the NetBSD make
setupHook, but not today.
2021-06-09 12:44:43 +00:00

127 lines
3.2 KiB
Bash

addMakeFlags() {
export prefix="$out"
export MANDIR="${!outputMan}/share/man"
export MANTARGET=man
export BINOWN=
export STRIP_FLAG=
}
preConfigureHooks+=(addMakeFlags)
bmakeBuildPhase() {
runHook preBuild
local flagsArray=(
${enableParallelBuilding:+-j${NIX_BUILD_CORES}}
SHELL=$SHELL
$makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
$buildFlags ${buildFlagsArray+"${buildFlagsArray[@]}"}
)
echoCmd 'build flags' "${flagsArray[@]}"
bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
unset flagsArray
runHook postBuild
}
if [ -z "${dontUseBmakeBuild-}" -a -z "${buildPhase-}" ]; then
buildPhase=bmakeBuildPhase
fi
bmakeCheckPhase() {
runHook preCheck
if [ -z "${checkTarget:-}" ]; then
#TODO(@oxij): should flagsArray influence make -n?
if bmake -n ${makefile:+-f $makefile} check >/dev/null 2>&1; then
checkTarget=check
elif bmake -n ${makefile:+-f $makefile} test >/dev/null 2>&1; then
checkTarget=test
fi
fi
if [ -z "${checkTarget:-}" ]; then
echo "no test target found in bmake, doing nothing"
else
# shellcheck disable=SC2086
local flagsArray=(
${enableParallelChecking:+-j${NIX_BUILD_CORES}}
SHELL=$SHELL
# Old bash empty array hack
$makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
${checkFlags:-VERBOSE=y} ${checkFlagsArray+"${checkFlagsArray[@]}"}
${checkTarget}
)
echoCmd 'check flags' "${flagsArray[@]}"
bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
unset flagsArray
fi
runHook postCheck
}
if [ -z "${dontUseBmakeCheck-}" -a -z "${checkPhase-}" ]; then
checkPhase=bmakeCheckPhase
fi
bmakeInstallPhase() {
runHook preInstall
if [ -n "$prefix" ]; then
mkdir -p "$prefix"
fi
# shellcheck disable=SC2086
local flagsArray=(
SHELL=$SHELL
# Old bash empty array hack
$makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
$installFlags ${installFlagsArray+"${installFlagsArray[@]}"}
${installTargets:-install}
)
echoCmd 'install flags' "${flagsArray[@]}"
bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
unset flagsArray
runHook postInstall
}
if [ -z "${dontUseBmakeInstall-}" -a -z "${installPhase-}" ]; then
installPhase=bmakeInstallPhase
fi
bmakeDistPhase() {
runHook preDist
if [ -n "$prefix" ]; then
mkdir -p "$prefix"
fi
# Old bash empty array hack
# shellcheck disable=SC2086
local flagsArray=(
$distFlags ${distFlagsArray+"${distFlagsArray[@]}"} ${distTarget:-dist}
)
echo 'dist flags: %q' "${flagsArray[@]}"
bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
if [ "${dontCopyDist:-0}" != 1 ]; then
mkdir -p "$out/tarballs"
# Note: don't quote $tarballs, since we explicitly permit
# wildcards in there.
# shellcheck disable=SC2086
cp -pvd ${tarballs:-*.tar.gz} "$out/tarballs"
fi
runHook postDist
}
if [ -z "${dontUseBmakeDist-}" -a -z "${distPhase-}" ]; then
distPhase=bmakeDistPhase
fi