Well diagnosed and thanks for your report. This is, however, a known problem. It was fixed in the CVS version in 2002 under:
http://savannah.gnu.org/bugs/?func=detailitem&item_id=1516 make-3.81beta3 contains the fix for this and many other problems. I'm using it in production. http://lists.gnu.org/archive/html/make-w32/2005-06/msg00017.html ------------------------------------- Martin's Outlook, BlueArc Engineering -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Evan Bigall Sent: Sunday, September 25, 2005 10:47 To: bug-make@gnu.org Subject: Bug with new $(eval ) function Consider this makefile (also attached to get the whitespace correct): list = a b c d #ifeq (foo,foo) .PHONY : all all : $(list) define template .PHONY : $(1) $(1) : echo $(1) endef $(foreach l,$(list),$(eval $(call template,$(l)))) #endif With the "ifeq" commented out, this makefile works. If you uncomment the ifeq it breaks with: ~/evan.bigall-linux-all/tools/linux/make-3.80/bin/make -n all Makefile:16: *** missing `endif'. Stop. /Evan _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make