#!/usr/bin/perl

$| = 1;

sub writefile($@){
	my ($file, @lines) = @_;
	
	sleep(1);
	open(F, ">$file") || die "open >$file: $!";
	print F @lines;
	close(F);
}

# Cut out #include lines that don't contribute anything.
for($i=0; $i<@ARGV; $i++){
	$file = $ARGV[$i];
	if(!open(F, $file)){
		print STDERR "open $file: $!\n";
		next;
	}
	@lines = <F>;
	close(F);
	
	$obj = "$file.o";
	$obj =~ s/\.c\.o$/.o/;
	system("touch $file");

	if(system("make CC='gcc -Werror' $obj >/dev/null 2>\&1") != 0){
		print STDERR "make $obj failed: $rv\n";
		next;
	}

	system("cp $file =$file");
	for($j=@lines-1; $j>=0; $j--){
		if($lines[$j] =~ /^#include/){
			$old = $lines[$j];
			$lines[$j] = "/* CUT-H */\n";
			writefile($file, @lines);
			if(system("make CC='gcc -Werror' $obj >/dev/null 2>\&1") != 0){
				$lines[$j] = $old;
			}else{
				print STDERR "$file $old";
			}
		}
	}
	writefile($file, grep {!/CUT-H/} @lines);
	system("rm =$file");
}