diff options
author | H. Peter Anvin <hpa@zytor.com> | 2006-06-06 16:14:32 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2006-06-06 16:14:32 -0700 |
commit | 84970485bca6842ed0ff41dabb4f74ee86def163 (patch) | |
tree | fcbab7b85e58333a613edf0483972b73ec5b9c58 | |
parent | cdbe83fa03bb5c2995de0aca75be42a457fe6ad4 (diff) | |
download | klibc-84970485bca6842ed0ff41dabb4f74ee86def163.tar.gz |
[klibc] dash: script to generate auto-generated file dependenciesklibc-1.3.31
Quick script to generate dependencies on auto-generated header files.
This needs to be properly integrated into the Kbuild framework; for
now, it's just a maintainer tool.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rwxr-xr-x | usr/dash/gendeps.pl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/usr/dash/gendeps.pl b/usr/dash/gendeps.pl new file mode 100755 index 0000000000000..04a596be2c85b --- /dev/null +++ b/usr/dash/gendeps.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl +# +# Generate dependencies for *generated* header files. Generated +# header files have to use #include "foo.h" syntax. +# + +($src, $obj, @build_headers) = @ARGV; +%build_headers = map { $_ => 1 } @build_headers; + +open(GENDEPS, '>', "$obj/.gendeps") + or die "$0: Cannot create $obj/.gendeps: $!\n"; + +opendir(DIR, $src) or die "$0: Cannot opendir $src: $!\n"; +while ( defined($file = readdir(DIR)) ) { + if ( $file =~ /^(.*)\.c$/ ) { + $basename = $1; + @hdrs = (); + open(FILE, '<', "$src/$file") + or die "$0: Cannot open $src/$file: $!\n"; + while ( defined($line = <FILE>) ) { + if ( $line =~ /^\s*\#\s*include\s+\"(.*)\"/ ) { + $header = $1; + + if ( $build_headers{$header} ) { + push(@hdrs, "\$(src)/$header"); + } + } + } + close(FILE); + + if (scalar(@hdrs)) { + print GENDEPS "\$(obj)/$basename.o: ", join(' ', @hdrs), "\n"; + } + } +} + +closedir(DIR); +close(GENDEPS); + |