%% [EMAIL PROTECTED] writes: hpvl> %process/gen.out : $(addprefix %, $(wildcard cmd/*.tcl)) hpvl> commands...
As I mentioned before, all variables and functions in target and prerequisite lists (for all types of rules) are expanded _FIRST_, and only once, as the makefile is read in. Patterns are evaluated later, while make is attempting to find rules to satisfy a target build requirement. Information on when variables and functions are expanded is available in the GNU make manual section "How 'make' Reads A Makefile". So, in the above example $(wildcard cmd/*.tcl) is expanded immediately, then the prefix "%" is appended to the results of that expansion. hpvl> What I would achieve is to have the wildcard command done for hpvl> each value of %. So for each value of % the dependency could be hpvl> different. Does someone know how I can do that? This is not easy at all. You will have to have a different explicit rule for each possible target. So, you will have to either write them out by hand or find a way to automatically generate them. There are two ways to do the latter: the "old" way, which works with almost any version of GNU make, is to write a rule that generates a makefile fragment containing the targets you want, then include that fragment. GNU make has a special feature where it tries to remake every included makefile and, if it succeeds, it will re-exec itself to read that new makefile. The "new" way is to use the $(eval ...) function, which is only available in GNU make 3.80, and in that version has some bugs that require patching (or using the latest source from CVS). -- ------------------------------------------------------------------------------- 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
