diff options
author | Shea Levy <shea@shealevy.com> | 2012-07-29 03:49:52 -0400 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2012-07-29 03:49:52 -0400 |
commit | 48b5e8eee7e1b86ca06417875627f032d5107ee4 (patch) | |
tree | fac619d8fbaceb1dc244b0bcb1d4a3ed615a8f60 /pkgs/os-specific/linux/kernel/manual-config.nix | |
parent | e42a6c5f464b7f77a60ffbbcf0cdaed739d553eb (diff) | |
download | nixlib-48b5e8eee7e1b86ca06417875627f032d5107ee4.tar nixlib-48b5e8eee7e1b86ca06417875627f032d5107ee4.tar.gz nixlib-48b5e8eee7e1b86ca06417875627f032d5107ee4.tar.bz2 nixlib-48b5e8eee7e1b86ca06417875627f032d5107ee4.tar.lz nixlib-48b5e8eee7e1b86ca06417875627f032d5107ee4.tar.xz nixlib-48b5e8eee7e1b86ca06417875627f032d5107ee4.tar.zst nixlib-48b5e8eee7e1b86ca06417875627f032d5107ee4.zip |
linux/kernel/manual-config: Build in a separate directory and move the build and source trees into $out
Diffstat (limited to 'pkgs/os-specific/linux/kernel/manual-config.nix')
-rw-r--r-- | pkgs/os-specific/linux/kernel/manual-config.nix | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 651f9b14e778..b4dbb786016c 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -41,6 +41,9 @@ let features = readFeatures config; + commonMakeFlags = [ + "O=../build" + ]; in stdenv.mkDerivation ({ @@ -54,8 +57,8 @@ stdenv.mkDerivation ({ inherit patches src; - postPatch = '' - for mf in $(find -name Makefile); do + prePatch = '' + for mf in $(find -name Makefile -o -name Makefile.include); do echo "stripping FHS paths in \`$mf'..." sed -i "$mf" -e 's|/usr/bin/||g ; s|/bin/||g' done @@ -63,9 +66,11 @@ stdenv.mkDerivation ({ configurePhase = '' runHook preConfigure - ln -sv ${config} .config - make oldconfig - rm .config.old + mkdir ../build + make $makeFlags "''${makeFlagsArray[@]}" mrproper + ln -sv ${config} ../build/.config + make $makeFlags "''${makeFlagsArray[@]}" oldconfig + rm ../build/.config.old runHook postConfigure ''; @@ -76,14 +81,18 @@ stdenv.mkDerivation ({ installPhase = '' runHook preInstall mkdir $out - mv -v System.map $out + mv -v ../build/System.map $out # !!! Assumes x86 - mv -v arch/x86/boot/bzImage $out - mv -v vmlinux $out + mv -v ../build/arch/x86/boot/bzImage $out + mv -v ../build/vmlinux $out runHook postInstall ''; + + makeFlags = commonMakeFlags; } // optionalAttrs features.modular { - makeFlags = [ "MODLIB=\"$(out)/lib/modules/${modDirVersion}\"" ]; + makeFlags = commonMakeFlags ++ [ + "MODLIB=\"$(out)/lib/modules/${modDirVersion}\"" + ]; INSTALL_MOD_STRIP = "1"; @@ -92,7 +101,7 @@ stdenv.mkDerivation ({ $installFlags "''${installFlagsArray[@]}" rm -f $out/lib/modules/${modDirVersion}/{build,source} cd .. - mv $sourceRoot $out/lib/modules/${modDirVersion}/build - ln -sv $out/lib/modules/${modDirVersion}/{build,source} + mv $sourceRoot $out/lib/modules/${modDirVersion}/source + mv build $out/lib/modules/${modDirVersion}/build ''; }) |