#!/usr/bin/perl5

if ($#ARGV < 0) {
	print "Usage:\n getdefines filename\n\n";
	exit 0;
}

open(INFILE, "<$ARGV[0]") || die "Cannot open input file: $!\n";

$def = `basename $ARGV[0]`;
$def =~ tr/.a-z/_A-Z/;
chop $def;
$def = "INCLUDED_" . $def;

print <<END;
#ifndef $def
#define $def

END

$defnest = -1;
while (<INFILE>) {
	if ($defnest==-1) {
		$defnest=1 if (/ifdef __KERNEL/);
		next;
	}
	$defnest++ if (/#ifdef/);
	$defnest-- if (/#endif/);
	last if ($defnest==0);

	if (/#define (\S+) (.*)/) {
		print "#define $1 $2\n"
	}
}

print "#endif\n\n";

close(INFILE);

