#!/usr/bin/perl -w


open(IN, "$ARGV[0]");

print "# This Makefile is autogenerated.  Edit Makefile.in instead.\n";
while($_=<IN>){
	if(m/select\(([\w_]+) ([\w_. ]+)\)/){
		print "obj-\$($1) += $2\n";
	}elsif(m/expsyms\(([\w_. ]+)\)/){
		print "export-objs += $1\n";
	}elsif(m/objlink\(([\w_.]+) ([\w_. ]+)\)/){
		print "$1-objs += $2\n";
		push @later,"$1";
	}elsif(m/link_subdirs\(([\w_.]+)\)/){
		print "subdir-m += $1\n";
	}elsif(m/ifsel\(([\w_]+)\)/){
		print "ifneq (\$($1),)\n";
	}elsif(m/endif/){
		print "endif\n";
	}elsif(m/^$/){
	}elsif(m/^#/){
	}else{
		print "ack! $_";
	}
}

#print "\n";
#print "M_OBJS  := \$(sort \$(filter-out \$(export-objs), \$(obj-m)))\n";
#print "MX_OBJS := \$(sort \$(filter     \$(export-objs), \$(obj-m)))\n";
#print "SUB_DIRS := \$(subdirs-m)\n";
#print "ALL_SUB_DIRS := \$(SUB_DIRS)\n";
#print "MOD_SUB_DIRS := \$(SUB_DIRS)\n";
print "\n";
print "include \$(TOPDIR)/Rules.make\n";
print "\n";

@later = sort @later;

$last="";
foreach $s (@later){
	if($s ne $last){
		print "$s: \$($s-objs)\n";
		print "\t\$(LD) -r -o \$@ \$($s-objs)\n";
	}
	$last=$s;
}

