#!/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
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:
+.PHONY: FORCE-ALWAYS-RUN
END
}
s{(?<=[ \t])(?=\S)(?!\\\s*$)}{$prefix}g;
o $_;
$_ = $after;
+ } elsif (s{^\#}{}) {
+ $_ = '';
} elsif (s{^![ \t]+}{}) {
o $_;
$_ = '';
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 $_ ";
}
print O "\n";
}
-
+
return @targets;
}