diff options
author | Steven Rostedt <srostedt@redhat.com> | 2010-02-02 21:51:27 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2010-02-02 21:58:00 -0500 |
commit | 615f0833aa4c4aa944ceb78895bbffa8bd1884df (patch) | |
tree | 3704d95e3049290c2efaff829d7ac2c77c97a681 /scripts/kconfig/streamline_config.pl | |
parent | 88f66ea98d7ae6a8b6a34e38b1b4fa51abc1c9ca (diff) |
kconfig: Add LSMOD=file to override the lsmod for localmodconfig
Doing the following:
make LSMOD=file localmodconfig
Will make the streamline-config code use the given file instead of
lsmod. If the file is an executable, it will execute it, otherwise
it will read it as text.
make LSMOD=/my/local/path/lsmod localmodconfig
The above will execute the lsmod in /my/local/path instead of the
lsmods that may be located elsewhere.
make LSMOD=embedded_board_lsmod localmodconfig
The above will read the "embedded_board_lsmod" as a text file. This
is useful if you are doing a cross compile and need to run the
config against modules that exist on an embedded device.
Note, if the LSMOD= file does is not a path, it will add the
path to the object directory. That is, the above example will look
for "embedded_board_lsmod" in the directory that the binary will
be built in (the O=dir directory).
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
On branch config/linus
Diffstat (limited to 'scripts/kconfig/streamline_config.pl')
-rw-r--r-- | scripts/kconfig/streamline_config.pl | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl index d7f7db73e587..afbd54ac1d83 100644 --- a/scripts/kconfig/streamline_config.pl +++ b/scripts/kconfig/streamline_config.pl | |||
@@ -113,6 +113,7 @@ find_config; | |||
113 | # Get the build source and top level Kconfig file (passed in) | 113 | # Get the build source and top level Kconfig file (passed in) |
114 | my $ksource = $ARGV[0]; | 114 | my $ksource = $ARGV[0]; |
115 | my $kconfig = $ARGV[1]; | 115 | my $kconfig = $ARGV[1]; |
116 | my $lsmod_file = $ARGV[2]; | ||
116 | 117 | ||
117 | my @makefiles = `find $ksource -name Makefile`; | 118 | my @makefiles = `find $ksource -name Makefile`; |
118 | my %depends; | 119 | my %depends; |
@@ -263,21 +264,36 @@ foreach my $makefile (@makefiles) { | |||
263 | 264 | ||
264 | my %modules; | 265 | my %modules; |
265 | 266 | ||
266 | # see what modules are loaded on this system | 267 | if (defined($lsmod_file)) { |
267 | my $lsmod; | 268 | if ( ! -f $lsmod_file) { |
268 | 269 | die "$lsmod_file not found"; | |
269 | foreach $dir ( ("/sbin", "/bin", "/usr/sbin", "/usr/bin") ) { | 270 | } |
270 | if ( -x "$dir/lsmod" ) { | 271 | if ( -x $lsmod_file) { |
271 | $lsmod = "$dir/lsmod"; | 272 | # the file is executable, run it |
272 | last; | 273 | open(LIN, "$lsmod_file|"); |
274 | } else { | ||
275 | # Just read the contents | ||
276 | open(LIN, "$lsmod_file"); | ||
273 | } | 277 | } |
278 | } else { | ||
279 | |||
280 | # see what modules are loaded on this system | ||
281 | my $lsmod; | ||
282 | |||
283 | foreach $dir ( ("/sbin", "/bin", "/usr/sbin", "/usr/bin") ) { | ||
284 | if ( -x "$dir/lsmod" ) { | ||
285 | $lsmod = "$dir/lsmod"; | ||
286 | last; | ||
287 | } | ||
274 | } | 288 | } |
275 | if (!defined($lsmod)) { | 289 | if (!defined($lsmod)) { |
276 | # try just the path | 290 | # try just the path |
277 | $lsmod = "lsmod"; | 291 | $lsmod = "lsmod"; |
292 | } | ||
293 | |||
294 | open(LIN,"$lsmod|") || die "Can not call lsmod with $lsmod"; | ||
278 | } | 295 | } |
279 | 296 | ||
280 | open(LIN,"$lsmod|") || die "Can not call lsmod with $lsmod"; | ||
281 | while (<LIN>) { | 297 | while (<LIN>) { |
282 | next if (/^Module/); # Skip the first line. | 298 | next if (/^Module/); # Skip the first line. |
283 | if (/^(\S+)/) { | 299 | if (/^(\S+)/) { |