aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2006-06-06 16:14:32 -0700
committerH. Peter Anvin <hpa@zytor.com>2006-06-06 16:14:32 -0700
commit84970485bca6842ed0ff41dabb4f74ee86def163 (patch)
treefcbab7b85e58333a613edf0483972b73ec5b9c58
parentcdbe83fa03bb5c2995de0aca75be42a457fe6ad4 (diff)
downloadklibc-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-xusr/dash/gendeps.pl39
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);
+