Hi, [Please retain the CC to [EMAIL PROTECTED] so that the Debian Bug Tracking system can record your input]
This was reported by a debian user manoj I was playing with some rule generating functions (using the eval function of GNU Make) and I hit a problem when inserting conditionals. Here is an example where make says there is an error: # Makefile begin define other-rule .PHONY: other-rule other-rule: @ echo other-rule endef define other-rule2 .PHONY: other-rule2 other-rule: @ echo other-rule2 endef define rule_test .PHONY: rule-test rule-test: other-rule ifeq ($$(strip $$(VAR)),) $$(eval $$(call other-rule)) else $$(eval $$(call other-rule2)) endif endef $(eval $(rule_test)) # Makefile end And then, running make with the above produces: % make Makefile:20: *** missing `endif'. Stop. I was actually working at school and there I had no problem (they are running Fedora Core release 2 (Tettnang)). When I uploaded my stuff here at home, I had a surprise when make reported the error above. So I fetched the sources codes of make for Debian (make 3.80-9) and the Red Hat (make-3.80-3.src.rpm) and then I looked at the patched code. In the Red Hat patch, they added something about conditionals when evaluating a buffer, so I added the same thing and now make works well with the example above.
make_3.80-9cond.diff.gz
Description: Compressed diff
-- Boys, you have ALL been selected to LEAVE th' PLANET in 15 minutes!! Manoj Srivastava <[EMAIL PROTECTED]> <http://www.golden-gryphon.com/> 1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C
_______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make