chiark / gitweb /
subdirmk/regen.mk.in: Trim `$(srcdir)/' prefix from output makefile names
[subdirmk.git] / subdirmk / generate
index 3b40ad0796304f18d66a005f7d2e347526a863aa..fbf07d4664fc6c46a7382679a2fc6affae8b90a5 100755 (executable)
@@ -1,10 +1,14 @@
 #!/usr/bin/perl -w
 #
+# subdirmk - &-filter (makefile generation program)
+#  Copyright 2019 Ian Jackson
+# SPDX-License-Identifier: LGPL-2.0-or-later
+#
 # $(srcdir)/subdirmk/generate [--srcdir=SRCDIR] [--] SUBDIR...
 #
 # generates in each subdirectory       from in each subdirectory
 #     Subdir.mk.tmp                        Subdir.sd.mk
-#     Makefile
+#     Makefile                          and included files
 # and in toplevel                      and in toplevel
 #     main.mk.tmp                          Perdir.sd.mk
 
@@ -95,11 +99,10 @@ sub write_makefile ($$) {
     my $cd = $depth ? join('/', ('..',) x $depth) : '.';
     o <<END;
 default: all
-       \@: \$@
 %:     FORCE-ALWAYS-RUN
-       \$(MAKE) -C $cd -f main.mk ${dir_prefix}\$@
+       \@:
 Makefile FORCE-ALWAYS-RUN:
-       \@: \$@
+       \$(MAKE) -C $cd -f main.mk \$(addprefix ${dir_prefix},\$(or \$(MAKECMDGOALS),all))
 .SUFFIXES:
 END
 }
@@ -178,7 +181,7 @@ sub process_input_mk ($$$$$$$$) {
                my $subf = "$srcdir/$2";
                process_input_mk($dir_prefix, $dir_suffix, $dir_name,
                                 $var_prefix, $targets,
-                                $subf, $esclitr, $subf);
+                                $subf, $esclitr, $1);
                o "\n";
            } else {
                die "unknown directive $_ ";