#!/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);

