aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/streamline_config.pl
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-04-30 14:39:48 -0400
committerSteven Rostedt <rostedt@goodmis.org>2009-08-18 22:02:00 -0400
commitcdfc47950a531199a553cebab0ac481aa7062948 (patch)
tree23a1dfc287c61144ef3a7fcf83980a8fa50831f6 /scripts/kconfig/streamline_config.pl
parentde481560eb0bd9d940b90311eba85711e4b1150b (diff)
kconfig: search for a config to base the local(mod|yes)config on
Instead of using the .config in the local directory. This patch changes streamline_config.pl to search various locations for a config. Here's the list and order of search: /proc/config.gz /boot/vmlinuz-`uname -r` vmlinux # local to the directory /lib/modules/`uname -r`/kernel/kernel/configs.ko kernel/configs.ko kernel/configs.o .config Once it finds a file that contains a config (it checks if the binary objects have configs first) it then uses it to create the .config with minimum modules needed. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'scripts/kconfig/streamline_config.pl')
-rw-r--r--scripts/kconfig/streamline_config.pl63
1 files changed, 62 insertions, 1 deletions
diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl
index 233464185a92..9fa3f81b1ed9 100644
--- a/scripts/kconfig/streamline_config.pl
+++ b/scripts/kconfig/streamline_config.pl
@@ -45,7 +45,68 @@
45my $config = ".config"; 45my $config = ".config";
46my $linuxpath = "."; 46my $linuxpath = ".";
47 47
48open(CIN,$config) || die "Can't open current config file: $config"; 48my $uname = `uname -r`;
49chomp $uname;
50
51my @searchconfigs = (
52 {
53 "file" => "/proc/config.gz",
54 "exec" => "zcat",
55 },
56 {
57 "file" => "/boot/vmlinuz-$uname",
58 "exec" => "scripts/extract-ikconfig",
59 "test" => "scripts/extract-ikconfig",
60 },
61 {
62 "file" => "vmlinux",
63 "exec" => "scripts/extract-ikconfig",
64 "test" => "scripts/extract-ikconfig",
65 },
66 {
67 "file" => "/lib/modules/$uname/kernel/kernel/configs.ko",
68 "exec" => "scripts/extract-ikconfig",
69 "test" => "scripts/extract-ikconfig",
70 },
71 {
72 "file" => "kernel/configs.ko",
73 "exec" => "scripts/extract-ikconfig",
74 "test" => "scripts/extract-ikconfig",
75 },
76 {
77 "file" => "kernel/configs.o",
78 "exec" => "scripts/extract-ikconfig",
79 "test" => "scripts/extract-ikconfig",
80 },
81 {
82 "file" => ".config",
83 "exec" => "cat",
84 },
85);
86
87sub find_config {
88 foreach my $conf (@searchconfigs) {
89 my $file = $conf->{"file"};
90
91 next if ( ! -f "$file");
92
93 if (defined($conf->{"test"})) {
94 `$conf->{"test"} $conf->{"file"} 2>/dev/null`;
95 next if ($?);
96 }
97
98 my $exec = $conf->{"exec"};
99
100 print STDERR "using config: '$file'\n";
101
102 open(CIN, "$exec $file |") || die "Failed to run $exec $file";
103 return;
104 }
105 die "No config file found";
106}
107
108find_config;
109
49my @makefiles = `find $linuxpath -name Makefile`; 110my @makefiles = `find $linuxpath -name Makefile`;
50my %depends; 111my %depends;
51my %selects; 112my %selects;