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.

Attachment: 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

Reply via email to