I am having trouble understanding why the following macro 'rule2' is not evaluating the way I expect.
Is this a bug? In what order are nested $(call ...) statements evaluated?
Thanks for any insights.

# makefile
# this works
define hello1
echo hello $(1)
endef

# this doesn't work
define hello2
echo hello $(call word,$(1))
endef

define word
$(1)
endef

define rule1
rule1:
@$$(call hello1,$(1))
endef

define rule2
rule2:
@$$(call hello2,$(1))
endef

$(eval $(call rule1,world))

$(eval $(call rule2,world))
# eof

[greg@p3 junk]$ make rule1
hello world
[greg@p3 junk]$ make rule2
Makefile:22: *** Insufficient number of arguments (1) to function `word'. Stop.

- Greg Keraunen



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

Reply via email to