Is the following a bug?

pc-043:~/tmp/foo$ cat Makefile
declare = $(eval all:: ; : $1)
$(call declare, A)
foo: $(call declare, B) ; $(call declare, C)
   : $(call declare, D) ; $(call declare, E)
pc-043:~/tmp/foo$ gmake
:  A
:  B
pc-043:~/tmp/foo$ 

Intuitively I'd expect make to run ": D" too.

It's not as it life and death depends on this, anyway - I only
discovered this effect while looking trying to understand the
source. It is caused by rules without targets being ignored at the
"case w_dcolon:" switch label in eval() in read.c - without expanding
the dependency list. Back when expansion wasn't supposed to have side
effects this must have been a sound optimization.

-- 
Henning Makholm                "De kan rejse hid og did i verden nok så flot
                                 Og er helt fortrolig med alverdens militær"


_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make

Reply via email to