From 82c231d17e5177ff2f6cba02ed5f3c9388f13f3b Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 9 Mar 2020 02:10:06 -0400 Subject: netbsd: Generalize builder to any-bsd setup hook Do this to get ready for other BSDs. --- pkgs/os-specific/bsd/netbsd/builder.sh | 123 ----------------------- pkgs/os-specific/bsd/netbsd/default.nix | 172 ++++++++++++++++++++------------ pkgs/os-specific/bsd/setup-hook.sh | 120 ++++++++++++++++++++++ 3 files changed, 230 insertions(+), 185 deletions(-) delete mode 100644 pkgs/os-specific/bsd/netbsd/builder.sh create mode 100644 pkgs/os-specific/bsd/setup-hook.sh (limited to 'pkgs/os-specific/bsd') diff --git a/pkgs/os-specific/bsd/netbsd/builder.sh b/pkgs/os-specific/bsd/netbsd/builder.sh deleted file mode 100644 index 332e5c2098f..00000000000 --- a/pkgs/os-specific/bsd/netbsd/builder.sh +++ /dev/null @@ -1,123 +0,0 @@ -source $stdenv/setup - -# NetBSD makefiles should be able to detect this -# but without they end up using gcc on Darwin stdenv -addMakeFlags() { - export setOutputFlags= - - export LIBCRT0= - export LIBCRTI= - export LIBCRTEND= - export LIBCRTBEGIN= - export LIBC= - export LIBUTIL= - export LIBSSL= - export LIBCRYPTO= - export LIBCRYPT= - export LIBCURSES= - export LIBTERMINFO= - export LIBM= - export LIBL= - - export _GCC_CRTBEGIN= - export _GCC_CRTBEGINS= - export _GCC_CRTEND= - export _GCC_CRTENDS= - export _GCC_LIBGCCDIR= - export _GCC_CRTI= - export _GCC_CRTN= - export _GCC_CRTDIR= - - # Definitions passed to share/mk/*.mk. Should be pretty simple - - # eventually maybe move it to a configure script. - export DESTDIR= - export USETOOLS=never - export NOCLANGERROR=yes - export NOGCCERROR=yes - export LEX=flex - export MKUNPRIVED=yes - export EXTERNAL_TOOLCHAIN=yes - - export INSTALL_FILE="install -U -c" - export INSTALL_DIR="xinstall -U -d" - export INSTALL_LINK="install -U -l h" - export INSTALL_SYMLINK="install -U -l s" - - makeFlags="MACHINE=$MACHINE $makeFlags" - makeFlags="MACHINE_ARCH=$MACHINE_ARCH $makeFlags" - makeFlags="AR=$AR $makeFlags" - makeFlags="CC=$CC $makeFlags" - makeFlags="CPP=$CPP $makeFlags" - makeFlags="CXX=$CXX $makeFlags" - makeFlags="LD=$LD $makeFlags" - makeFlags="STRIP=$STRIP $makeFlags" - - makeFlags="BINDIR=${!outputBin}/bin $makeFlags" - makeFlags="LIBDIR=${!outputLib}/lib $makeFlags" - makeFlags="SHLIBDIR=${!outputLib}/lib $makeFlags" - makeFlags="MANDIR=${!outputMan}/share/man $makeFlags" - makeFlags="INFODIR=${!outputInfo}/share/info $makeFlags" - makeFlags="DOCDIR=${!outputDoc}/share/doc $makeFlags" - makeFlags="LOCALEDIR=${!outputLib}/share/locale $makeFlags" - - # Parallel building. Needs the space. - makeFlags="-j $NIX_BUILD_CORES $makeFlags" -} - -setNetBSDSourceDir() { - # merge together all extra paths - # there should be a better way to do this - sourceRoot=$PWD/$sourceRoot - export NETBSDSRCDIR=$sourceRoot - export BSDSRCDIR=$NETBSDSRCDIR - export _SRC_TOP_=$NETBSDSRCDIR - chmod -R u+w $sourceRoot - for path in $extraPaths; do - cd $path - find . -type d -exec mkdir -p $sourceRoot/\{} \; - find . -type f -exec cp -pr \{} $sourceRoot/\{} \; - chmod -R u+w $sourceRoot - done - - cd $sourceRoot - if [ -d "$NETBSD_PATH" ] - then sourceRoot=$sourceRoot/$NETBSD_PATH - fi -} - -includesPhase() { - if [ -z "${skipIncludesPhase:-}" ]; then - - local flagsArray=( - $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"} - DESTDIR=${!outputInclude} includes - ) - - echoCmd 'includes flags' "${flagsArray[@]}" - make ${makefile:+-f $makefile} "${flagsArray[@]}" - - moveUsrDir - - fi -} - -moveUsrDir() { - if [ -d $prefix ]; then - # Remove lingering /usr references - if [ -d $prefix/usr ]; then - pushd $prefix/usr - find . -type d -exec mkdir -p $out/\{} \; - find . \( -type f -o -type l \) -exec mv \{} $out/\{} \; - popd - fi - - find $prefix -type d -empty -delete - fi -} - -postUnpackHooks+=(setNetBSDSourceDir) -preConfigureHooks+=(addMakeFlags) -preInstallHooks+=(includesPhase) -fixupOutputHooks+=(moveUsrDir) - -genericBuild diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix index 783e16f4b4f..20c445dc9dd 100644 --- a/pkgs/os-specific/bsd/netbsd/default.nix +++ b/pkgs/os-specific/bsd/netbsd/default.nix @@ -1,5 +1,9 @@ -{ stdenv, stdenvNoCC, fetchcvs, lib, groff, mandoc, zlib, byacc, flex -, makeSetupHook, writeText, buildPackages, splicePackages, symlinkJoin }: +{ stdenv, lib, stdenvNoCC +, buildPackages, splicePackages +, bsdSetupHook, makeSetupHook, fetchcvs, groff, mandoc, byacc, flex +, zlib +, writeText, symlinkJoin +}: let fetchNetBSD = path: version: sha256: fetchcvs { @@ -30,7 +34,10 @@ let extraPaths = [ ]; - nativeBuildInputs = [ makeMinimal install tsort lorder mandoc groff statHook ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal install tsort lorder mandoc groff statHook + ]; buildInputs = [ compat ]; # depsBuildBuild = [ buildPackages.stdenv.cc ]; @@ -56,9 +63,7 @@ let LD = "${stdenv'.cc.targetPrefix or ""}ld"; STRIP = "${stdenv'.cc.targetPrefix or ""}strip"; - NETBSD_PATH = attrs.path; - - builder = ./builder.sh; + BSD_PATH = attrs.path; meta = with lib; { maintainers = with maintainers; [ matthewbauer qyliss ]; @@ -85,7 +90,7 @@ let version = "8.0"; buildInputs = []; - nativeBuildInputs = []; + nativeBuildInputs = [ bsdSetupHook ]; skipIncludesPhase = true; @@ -106,7 +111,7 @@ let install -D nbmake $out/bin/nbmake ln -s $out/bin/nbmake $out/bin/make mkdir -p $out/share - cp -r $NETBSDSRCDIR/share/mk $out/share/mk + cp -r $BSDSRCDIR/share/mk $out/share/mk runHook postInstall ''; @@ -124,7 +129,10 @@ let ]; # override defaults to prevent infinite recursion - nativeBuildInputs = [ makeMinimal ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + ]; buildInputs = [ zlib ]; # the build system re-runs `./configure` with `HOST_CC` (which is their @@ -148,24 +156,24 @@ let # why aren't these installed by netbsd? install -D compat_defs.h $out/include/compat_defs.h - install -D $NETBSDSRCDIR/include/cdbw.h $out/include/cdbw.h - install -D $NETBSDSRCDIR/sys/sys/cdbr.h $out/include/cdbr.h - install -D $NETBSDSRCDIR/sys/sys/featuretest.h \ + install -D $BSDSRCDIR/include/cdbw.h $out/include/cdbw.h + install -D $BSDSRCDIR/sys/sys/cdbr.h $out/include/cdbr.h + install -D $BSDSRCDIR/sys/sys/featuretest.h \ $out/include/sys/featuretest.h - install -D $NETBSDSRCDIR/sys/sys/md5.h $out/include/md5.h - install -D $NETBSDSRCDIR/sys/sys/rmd160.h $out/include/rmd160.h - install -D $NETBSDSRCDIR/sys/sys/sha1.h $out/include/sha1.h - install -D $NETBSDSRCDIR/sys/sys/sha2.h $out/include/sha2.h - install -D $NETBSDSRCDIR/sys/sys/queue.h $out/include/sys/queue.h - install -D $NETBSDSRCDIR/include/vis.h $out/include/vis.h - install -D $NETBSDSRCDIR/include/db.h $out/include/db.h - install -D $NETBSDSRCDIR/include/netconfig.h $out/include/netconfig.h - install -D $NETBSDSRCDIR/include/rpc/types.h $out/include/rpc/types.h - install -D $NETBSDSRCDIR/include/utmpx.h $out/include/utmpx.h - install -D $NETBSDSRCDIR/include/tzfile.h $out/include/tzfile.h - install -D $NETBSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h - install -D $NETBSDSRCDIR/include/nl_types.h $out/include/nl_types.h - install -D $NETBSDSRCDIR/include/stringlist.h $out/include/stringlist.h + install -D $BSDSRCDIR/sys/sys/md5.h $out/include/md5.h + install -D $BSDSRCDIR/sys/sys/rmd160.h $out/include/rmd160.h + install -D $BSDSRCDIR/sys/sys/sha1.h $out/include/sha1.h + install -D $BSDSRCDIR/sys/sys/sha2.h $out/include/sha2.h + install -D $BSDSRCDIR/sys/sys/queue.h $out/include/sys/queue.h + install -D $BSDSRCDIR/include/vis.h $out/include/vis.h + install -D $BSDSRCDIR/include/db.h $out/include/db.h + install -D $BSDSRCDIR/include/netconfig.h $out/include/netconfig.h + install -D $BSDSRCDIR/include/rpc/types.h $out/include/rpc/types.h + install -D $BSDSRCDIR/include/utmpx.h $out/include/utmpx.h + install -D $BSDSRCDIR/include/tzfile.h $out/include/tzfile.h + install -D $BSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h + install -D $BSDSRCDIR/include/nl_types.h $out/include/nl_types.h + install -D $BSDSRCDIR/include/stringlist.h $out/include/stringlist.h '' + lib.optionalString stdenv.isDarwin '' mkdir -p $out/include/ssp touch $out/include/ssp/ssp.h @@ -194,7 +202,11 @@ let version = "8.0"; sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj"; extraPaths = [ mtree.src make.src ]; - nativeBuildInputs = [ makeMinimal mandoc groff ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + mandoc groff + ]; skipIncludesPhase = true; buildInputs = [ compat fts ]; installPhase = '' @@ -214,7 +226,9 @@ let path = "include/fts.h"; sha256 = "01d4fpxvz1pgzfk5xznz5dcm0x0gdzwcsfm1h3d0xc9kc6hj2q77"; version = "8.0"; - nativeBuildInputs = [ ]; + nativeBuildInputs = [ + bsdSetupHook + ]; propagatedBuildInputs = [ compat ]; extraPaths = [ (fetchNetBSD "lib/libc/gen/fts.c" "8.0" "1a8hmf26242nmv05ipn3ircxb0jqmmi66rh78kkyi9vjwkfl3qn7") @@ -248,7 +262,11 @@ let path = "usr.bin/stat"; version = "8.0"; sha256 = "0z4r96id2r4cfy443rw2s1n52n186xm0lqvs8s3qjf4314z7r7yh"; - nativeBuildInputs = [ makeMinimal install mandoc groff ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + install mandoc groff + ]; }; # stat isn't in POSIX, and NetBSD stat supports a completely @@ -266,14 +284,22 @@ let path = "usr.bin/tsort"; version = "8.0"; sha256 = "1dqvf9gin29nnq3c4byxc7lfd062pg7m84843zdy6n0z63hnnwiq"; - nativeBuildInputs = [ makeMinimal install mandoc groff ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + install mandoc groff + ]; }; lorder = mkDerivation { path = "usr.bin/lorder"; version = "8.0"; sha256 = "0rjf9blihhm0n699vr2bg88m4yjhkbxh6fxliaay3wxkgnydjwn2"; - nativeBuildInputs = [ makeMinimal install mandoc groff ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + install mandoc groff + ]; }; ## ## END BOOTSTRAPPING @@ -290,17 +316,17 @@ let # make needs this to pick up our sys make files export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\"" - substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \ + substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \ --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB=' - substituteInPlace $NETBSDSRCDIR/share/mk/bsd.kinc.mk \ + substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \ --replace /bin/rm rm '' + lib.optionalString stdenv.isDarwin '' - substituteInPlace $NETBSDSRCDIR/share/mk/bsd.sys.mk \ + substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \ --replace '-Wl,--fatal-warnings' "" \ --replace '-Wl,--warn-shared-textrel' "" ''; postInstall = '' - make -C $NETBSDSRCDIR/share/mk FILESDIR=$out/share/mk install + make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install ''; extraPaths = [ (fetchNetBSD "share/mk" "8.0" "033q4w3rmvwznz6m7fn9xcf13chyhwwl8ijj3a9mrn80fkwm55qs") @@ -371,7 +397,11 @@ let sha256 = "092y7db7k4kh2jq8qc55126r5qqvlb8lq8mhmy5ipbi36hwb4zrz"; HOSTPROG = "tic"; buildInputs = [ compat ]; - nativeBuildInputs = [ makeMinimal install mandoc groff nbperf ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + install mandoc groff nbperf + ]; makeFlags = [ "TOOLDIR=$(out)" ]; extraPaths = [ libterminfo.src @@ -399,8 +429,11 @@ let version = "8.0"; sha256 = "0piyn8lgdqxwz9wkgc2plzp2xpj93fs4xncri8l0jfas9rv5j2m5"; NIX_CFLAGS_COMPILE = [ "-DMAKE_BOOTSTRAP" ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal install mandoc byacc flex + ]; buildInputs = [ compat ]; - nativeBuildInputs = [ makeMinimal install mandoc byacc flex ]; extraPaths = [ cksum.src ]; }; ## @@ -414,7 +447,11 @@ let path = "include"; version = "8.0"; sha256 = "128m77k16i7frvk8kifhmxzk7a37m7z1s0bbmja3ywga6sx6v6sq"; - nativeBuildInputs = [ makeMinimal install mandoc groff nbperf rpcgen ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + install mandoc groff nbperf rpcgen + ]; extraPaths = [ common.src ]; headersOnly = true; noCC = true; @@ -438,6 +475,7 @@ let propagatedBuildInputs = [ include ]; nativeBuildInputs = [ + bsdSetupHook makeMinimal install tsort lorder statHook uudecode config genassym ]; @@ -517,7 +555,7 @@ let --replace '#include ' 'void use_env(bool);' ''; postInstall = '' - make -C $NETBSDSRCDIR/share/terminfo BINDIR=$out/share install + make -C $BSDSRCDIR/share/terminfo BINDIR=$out/share install ''; extraPaths = [ (fetchNetBSD "share/terminfo" "8.0" "18db0fk1dw691vk6lsm6dksm4cf08g8kdm0gc4052ysdagg2m6sm") @@ -620,8 +658,12 @@ let version = "8.0"; sha256 = "0630lbvz6v4ic13bfg8ccwfhqkgcv76bfdw9f36rfsnwfgpxqsmq"; meta.platforms = lib.platforms.netbsd; - nativeBuildInputs = [ makeMinimal install mandoc groff flex - byacc genassym gencat lorder tsort statHook ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + install mandoc groff flex + byacc genassym gencat lorder tsort statHook + ]; extraPaths = [ sys.src ld_elf_so.src ]; }; @@ -644,12 +686,18 @@ let sha256 = "0lgbc58qgn8kwm3l011x1ml1kgcf7jsgq7hbf0hxhlbvxq5bljl3"; USE_FORT = "yes"; MKPROFILE = "no"; - extraPaths = [ common.src i18n_module.src sys.src - ld_elf_so.src libpthread.src libm.src libresolv.src - librpcsvc.src libutil.src librt.src libcrypt.src ]; + extraPaths = [ + common.src i18n_module.src sys.src + ld_elf_so.src libpthread.src libm.src libresolv.src + librpcsvc.src libutil.src librt.src libcrypt.src + ]; + nativeBuildInputs = [ + bsdSetupHook + makeMinimal + install mandoc groff flex + byacc genassym gencat lorder tsort statHook rpcgen + ]; buildInputs = [ buildPackages.netbsd.headers csu ]; - nativeBuildInputs = [ makeMinimal install mandoc groff flex - byacc genassym gencat lorder tsort statHook rpcgen ]; NIX_CFLAGS_COMPILE = "-B${csu}/lib"; meta.platforms = lib.platforms.netbsd; SHLIBINSTALLDIR = "$(out)/lib"; @@ -670,29 +718,29 @@ let NIX_CFLAGS_COMPILE+=" -I$out/include" NIX_LDFLAGS+=" -L$out/lib" - make -C $NETBSDSRCDIR/lib/libpthread $makeFlags - make -C $NETBSDSRCDIR/lib/libpthread $makeFlags install + make -C $BSDSRCDIR/lib/libpthread $makeFlags + make -C $BSDSRCDIR/lib/libpthread $makeFlags install - make -C $NETBSDSRCDIR/lib/libm $makeFlags - make -C $NETBSDSRCDIR/lib/libm $makeFlags install + make -C $BSDSRCDIR/lib/libm $makeFlags + make -C $BSDSRCDIR/lib/libm $makeFlags install - make -C $NETBSDSRCDIR/lib/libresolv $makeFlags - make -C $NETBSDSRCDIR/lib/libresolv $makeFlags install + make -C $BSDSRCDIR/lib/libresolv $makeFlags + make -C $BSDSRCDIR/lib/libresolv $makeFlags install - make -C $NETBSDSRCDIR/lib/librpcsvc $makeFlags - make -C $NETBSDSRCDIR/lib/librpcsvc $makeFlags install + make -C $BSDSRCDIR/lib/librpcsvc $makeFlags + make -C $BSDSRCDIR/lib/librpcsvc $makeFlags install - make -C $NETBSDSRCDIR/lib/i18n_module $makeFlags - make -C $NETBSDSRCDIR/lib/i18n_module $makeFlags install + make -C $BSDSRCDIR/lib/i18n_module $makeFlags + make -C $BSDSRCDIR/lib/i18n_module $makeFlags install - make -C $NETBSDSRCDIR/lib/libutil $makeFlags - make -C $NETBSDSRCDIR/lib/libutil $makeFlags install + make -C $BSDSRCDIR/lib/libutil $makeFlags + make -C $BSDSRCDIR/lib/libutil $makeFlags install - make -C $NETBSDSRCDIR/lib/librt $makeFlags - make -C $NETBSDSRCDIR/lib/librt $makeFlags install + make -C $BSDSRCDIR/lib/librt $makeFlags + make -C $BSDSRCDIR/lib/librt $makeFlags install - make -C $NETBSDSRCDIR/lib/libcrypt $makeFlags - make -C $NETBSDSRCDIR/lib/libcrypt $makeFlags install + make -C $BSDSRCDIR/lib/libcrypt $makeFlags + make -C $BSDSRCDIR/lib/libcrypt $makeFlags install ''; postPatch = '' sed -i 's,/usr\(/include/sys/syscall.h\),${buildPackages.netbsd.headers}\1,g' \ diff --git a/pkgs/os-specific/bsd/setup-hook.sh b/pkgs/os-specific/bsd/setup-hook.sh new file mode 100644 index 00000000000..45babc38d7a --- /dev/null +++ b/pkgs/os-specific/bsd/setup-hook.sh @@ -0,0 +1,120 @@ +# BSD makefiles should be able to detect this +# but without they end up using gcc on Darwin stdenv +addMakeFlags() { + export setOutputFlags= + + export LIBCRT0= + export LIBCRTI= + export LIBCRTEND= + export LIBCRTBEGIN= + export LIBC= + export LIBUTIL= + export LIBSSL= + export LIBCRYPTO= + export LIBCRYPT= + export LIBCURSES= + export LIBTERMINFO= + export LIBM= + export LIBL= + + export _GCC_CRTBEGIN= + export _GCC_CRTBEGINS= + export _GCC_CRTEND= + export _GCC_CRTENDS= + export _GCC_LIBGCCDIR= + export _GCC_CRTI= + export _GCC_CRTN= + export _GCC_CRTDIR= + + # Definitions passed to share/mk/*.mk. Should be pretty simple - + # eventually maybe move it to a configure script. + export DESTDIR= + export USETOOLS=never + export NOCLANGERROR=yes + export NOGCCERROR=yes + export LEX=flex + export MKUNPRIVED=yes + export EXTERNAL_TOOLCHAIN=yes + + export INSTALL_FILE="install -U -c" + export INSTALL_DIR="xinstall -U -d" + export INSTALL_LINK="install -U -l h" + export INSTALL_SYMLINK="install -U -l s" + + makeFlags="MACHINE=$MACHINE $makeFlags" + makeFlags="MACHINE_ARCH=$MACHINE_ARCH $makeFlags" + makeFlags="AR=$AR $makeFlags" + makeFlags="CC=$CC $makeFlags" + makeFlags="CPP=$CPP $makeFlags" + makeFlags="CXX=$CXX $makeFlags" + makeFlags="LD=$LD $makeFlags" + makeFlags="STRIP=$STRIP $makeFlags" + + makeFlags="BINDIR=${!outputBin}/bin $makeFlags" + makeFlags="LIBDIR=${!outputLib}/lib $makeFlags" + makeFlags="SHLIBDIR=${!outputLib}/lib $makeFlags" + makeFlags="MANDIR=${!outputMan}/share/man $makeFlags" + makeFlags="INFODIR=${!outputInfo}/share/info $makeFlags" + makeFlags="DOCDIR=${!outputDoc}/share/doc $makeFlags" + makeFlags="LOCALEDIR=${!outputLib}/share/locale $makeFlags" + + # Parallel building. Needs the space. + makeFlags="-j $NIX_BUILD_CORES $makeFlags" +} + +setBSDSourceDir() { + # merge together all extra paths + # there should be a better way to do this + sourceRoot=$PWD/$sourceRoot + export BSDSRCDIR=$sourceRoot + export _SRC_TOP_=$BSDSRCDIR + chmod -R u+w $sourceRoot + for path in $extraPaths; do + cd $path + find . -type d -exec mkdir -p $sourceRoot/\{} \; + find . -type f -exec cp -pr \{} $sourceRoot/\{} \; + chmod -R u+w $sourceRoot + done + + cd $sourceRoot + if [ -d "$BSD_PATH" ] + then sourceRoot=$sourceRoot/$BSD_PATH + fi +} + +includesPhase() { + if [ -z "${skipIncludesPhase:-}" ]; then + runHook preIncludes + + local flagsArray=( + $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"} + DESTDIR=${!outputInclude} includes + ) + + echoCmd 'includes flags' "${flagsArray[@]}" + make ${makefile:+-f $makefile} "${flagsArray[@]}" + + moveUsrDir + + runHook postIncludes + fi +} + +moveUsrDir() { + if [ -d $prefix ]; then + # Remove lingering /usr references + if [ -d $prefix/usr ]; then + pushd $prefix/usr + find . -type d -exec mkdir -p $out/\{} \; + find . \( -type f -o -type l \) -exec mv \{} $out/\{} \; + popd + fi + + find $prefix -type d -empty -delete + fi +} + +postUnpackHooks+=(setBSDSourceDir) +preConfigureHooks+=(addMakeFlags) +preInstallHooks+=(includesPhase) +fixupOutputHooks+=(moveUsrDir) -- cgit 1.4.1