From e396ca12f4d9e2620f3ba8d1f4252f0cce08ff55 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 10 Nov 2019 20:54:28 +0000 Subject: [PATCH] WIP --- build-aux/subdirmk-setup | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/build-aux/subdirmk-setup b/build-aux/subdirmk-setup index 616f653..0c451c8 100755 --- a/build-aux/subdirmk-setup +++ b/build-aux/subdirmk-setup @@ -49,12 +49,18 @@ sub close_any_output_file() { $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 () { @@ -64,13 +70,9 @@ 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 < 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; @@ -155,7 +163,7 @@ sub process_subtree ($$) { 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"); @@ -185,7 +193,7 @@ sub process_tree() { 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"; } } -- 2.30.2