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
This commit is contained in:
Lluís Batlle i Rossell 2010-02-16 19:27:51 +00:00
parent b07babb810
commit c86da889cc
4 changed files with 15 additions and 3 deletions

View file

@ -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
}

View file

@ -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";

View file

@ -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;

View file

@ -5,6 +5,8 @@ with pkgs;
name = "pc";
uboot = null;
kernelBaseConfig = "defconfig";
# Build whatever possible as a module, if not stated in the extra config.
kernelAutoModules = true;
kernelExtraConfig =
''
# Virtualisation (KVM, Xen...).
@ -23,6 +25,7 @@ with pkgs;
name = "sheevaplug";
kernelBaseConfig = "kirkwood_defconfig";
kernelArch = "arm";
kernelAutoModules = false;
kernelExtraConfig =
''
BLK_DEV_RAM y
@ -51,6 +54,7 @@ with pkgs;
name = "versatileARM";
kernelBaseConfig = "versatile_defconfig";
kernelArch = "arm";
kernelAutoModules = false;
uboot = null;
};
}