$writing_output = undef;
}
+sub o {
+ die unless defined $writing_output;
+ print O @_ or die "error writing $writing_output.tmp: $!\n";
+}
+
sub start_output_file ($) {
close_any_output_file();
($writing_output) = @_;
- die if $output_files{$writing_output}++;
+ die "$writing_output ?" if $output_files{$writing_output}++;
my $tmp = "$writing_output.tmp";
open O, ">", $tmp or die "create $tmp: $!\n";
+ o "# autogenerated - do not edit\n";
}
sub install_output_files () {
}
}
-sub o {
- die unless defined $writing_output;
- print O @_ or die "error writing $writing_output.tmp: $!\n";
-}
-
sub write_makefile ($$) {
my ($dir_prefix,$depth) = @_;
+ print STDERR "write_makefile @_\n";
start_output_file("${dir_prefix}Makefile");
my $cd = $depth ? join('/', ('..',) x $depth) : '.';
o <<END;
my ($dir_prefix, $dir_suffix, $dir_name,
$var_prefix, $targets) = @_;
+ use Data::Dumper;
+ print STDERR "filter @_\n";
+
my $in = "${srcdir}/${dir_prefix}Subdir.mk.in";
open I, '<', $in or die "open $in: $!\n";
my $caps_re = qr{[A-Z][0-9_A-Z]*(?=\W)};
sub process_subtree ($$) {
# => list of descendants (in form SUBDIR/)
# recursive, children first
- my ($node, $path);
+ my ($node, $path) = @_;
+
+ use Data::Dumper;
+ print STDERR Dumper(\@_);
my $dir_prefix = join '', map { "$_/" } @$path;
my $dir_suffix = join '', map { "/$_" } @$path;
my @childpath = (@$path, $child->[0]);
push @child_subdirs, join '/', @childpath;
$targets{$_}++ foreach
- process_subtree($child, [ ]);
+ process_subtree($child, \@childpath);
}
start_output_file("${dir_prefix}Subdir.mk.tmp");
start_output_file("subdirs.mk");
o "include Subdir.mk\n";
foreach my $subdir (@subdirs) {
- o "include $subdir/Subdir.mk";
+ o "include $subdir/Subdir.mk\n";
}
}