diff options
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+)/) { |