This produces significantly better error messages:
[some error from actual makefiles]
make[1]: Leaving directory '/home/ian/wherever'
Makefile:6: recipe for target 'run-main.mk' failed
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
my $cd = $depth ? join('/', ('..',) x $depth) : '.';
o <<END;
default: all
my $cd = $depth ? join('/', ('..',) x $depth) : '.';
o <<END;
default: all
-\$(MAKECMDGOALS) all: FORCE-ALWAYS-RUN
+\$(MAKECMDGOALS) all: run-main.mk
-Makefile FORCE-ALWAYS-RUN:
\$(MAKE) -C $cd -f main.mk \$(addprefix ${dir_prefix},\$(or \$(MAKECMDGOALS),all))
.SUFFIXES:
\$(MAKE) -C $cd -f main.mk \$(addprefix ${dir_prefix},\$(or \$(MAKECMDGOALS),all))
.SUFFIXES:
-.PHONY: FORCE-ALWAYS-RUN