summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-02-16 19:27:51 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-02-16 19:27:51 +0000
commitc86da889cc12794daaff158021beecb79a036406 (patch)
tree2d93aff1e81e16fee5e20ad6b2bdbccd65923ab0 /pkgs/os-specific
parentb07babb810fe80b956fd95d587219a943a0f7ebe (diff)
downloadnixpkgs-c86da889cc12794daaff158021beecb79a036406.tar
nixpkgs-c86da889cc12794daaff158021beecb79a036406.tar.gz
nixpkgs-c86da889cc12794daaff158021beecb79a036406.tar.bz2
nixpkgs-c86da889cc12794daaff158021beecb79a036406.tar.lz
nixpkgs-c86da889cc12794daaff158021beecb79a036406.tar.xz
nixpkgs-c86da889cc12794daaff158021beecb79a036406.tar.zst
nixpkgs-c86da889cc12794daaff158021beecb79a036406.zip
Made the kernel generate-config "build as modules as you can" an option.
Sepcifically, a nixpkgs "platform" option. So, for PC all remained the same
as it was.

svn path=/nixpkgs/trunk/; revision=20059
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/linux/kernel/builder.sh3
-rw-r--r--pkgs/os-specific/linux/kernel/generate-config.pl3
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix8
3 files changed, 11 insertions, 3 deletions
diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh
index a67877c9fd6..9c7f0ea4086 100644
--- a/pkgs/os-specific/linux/kernel/builder.sh
+++ b/pkgs/os-specific/linux/kernel/builder.sh
@@ -30,7 +30,8 @@ configurePhase() {
     # Create the config file.
     echo "generating kernel configuration..."
     echo "$kernelConfig" > kernel-config
-    DEBUG=1 ARCH=$arch KERNEL_CONFIG=kernel-config perl -w $generateConfig
+    DEBUG=1 ARCH=$arch KERNEL_CONFIG=kernel-config AUTO_MODULES=$autoModules \
+        perl -w $generateConfig
 }
 
 
diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl
index e8f7e6555d3..3db050c900c 100644
--- a/pkgs/os-specific/linux/kernel/generate-config.pl
+++ b/pkgs/os-specific/linux/kernel/generate-config.pl
@@ -13,6 +13,7 @@ use strict;
 use IPC::Open2;
 
 my $debug = $ENV{'DEBUG'};
+my $autoModules = $ENV{'AUTO_MODULES'};
     
 $SIG{PIPE} = 'IGNORE';
 
@@ -69,7 +70,7 @@ sub runConfig {
                 my $question = $1; my $name = $2; my $alts = $3;
                 my $answer = "";
                 # Build everything as a module if possible.
-                $answer = "m" if $alts =~ /\/m/;
+                $answer = "m" if $autoModules && $alts =~ /\/m/;
                 $answer = $answers{$name} if defined $answers{$name};
                 print STDERR "QUESTION: $question, NAME: $name, ALTS: $alts, ANSWER: $answer\n" if $debug;
                 print OUT "$answer\n";
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index f1981d261c6..42e12314a21 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -33,7 +33,12 @@
 
 , preConfigure ? ""
 , extraMeta ? {}
-, platform ? { name = "pc"; uboot = null; kernelBaseConfig = "defconfig"; }
+, platform ? {
+    name = "pc";
+    uboot = null;
+    kernelBaseConfig = "defconfig";
+    kernelAutoModules = true;
+  }
 , ...
 }:
 
@@ -64,6 +69,7 @@ stdenv.mkDerivation {
   generateConfig = ./generate-config.pl;
 
   inherit preConfigure src module_init_tools localVersion;
+  autoModules = platform.kernelAutoModules;
 
   patches = map (p: p.patch) kernelPatches;