Follow-up Comment #4, bug #51974 (project make): I can't dispute Anonymous's advice, which was what I first thought of too, but I don't think it's clearly documented, neither in the GNU make manual nor in this vein of bugs, how makefile fragments like these are being parsed. Perhaps this example will help explain what was going on in the other cases:
mad@shuttle:~/tmp/make-51972$ cat case-6.make define MACRO A: B hello endef $(MACRO) mad@shuttle:~/tmp/make-51972$ (The pointlessness of $(call) with no arguments is documented.) Look away now if you want to guess the behavior on "make -f case-6.make". mad@shuttle:~/tmp/make-51972$ make -f case-6.make make: *** No rule to make target 'B hello', needed by 'A'. Stop. mad@shuttle:~/tmp/make-51972$ The result of the variable expansion clearly is being parsed as makefile syntax, in that it has defined a rule (one without a recipe), but the line breaks aren't being treated how they would be in a makefile fragment. Is that reasonable? I'll buy it. But is it obvious? _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?51974> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make