You need to escape the $< as $$<. I think you should try to find a way to do what you want without using more than one depth of $(call ...)
This is the order of evaluation: $(foreach tget,$(TARGET_SYS),$(call FileExpander,$(tget),$(TARGET_SRC_C),CVarTargetBuild)) That evaluates FileExpander: define FileExpander $(foreach tfile,$(2),$(eval $(call $(3),$(tfile),$(1)))) endef With $3=CVarTargetBuild, you get: $(foreach tfile,$(2),$(eval $(call CVarTargetBuild,$(tfile),$(1)))) The $(call CVarTargetBuild,...) here will _expand_ the variable CVarTargetBuild. That expansion will resolve all variable references, not just the $(1), etc. variables. During that expansion, $< is expanded into the empty string (since that variable only has a value when the command script is run. So, the value you send to $(eval ...) as a result of the call doesn't have $< in it, it just has the empty string. Replace it with $$< and you should be OK. -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Help-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/help-make
