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

Reply via email to