I have a makefile that builds a compiler, then compiles a number of test programs to instructions for Jasmin (assembler for the JVM), then assembles them by calling Jasmin. The makefile currently does something like this:
$(foreach f, $(tests), java Compile $f &&) echo "Compiled tests successfully" $(foreach f, $(wildcard *.j), jasmin $f &&) echo "Assembled tests successfully" The crucial problem here is with $(wildcard *.j), which apparently expands to an empty string unless the matching files are present in the directory before Make is invoked (not before that line is executed, as I expected). I can run make a 2nd time to get around the problem, but obviously this is not ideal. Is anyone out there a Make guru who can suggest a good way for me to get this behavior without ugly kludges (and without listing all the input and target files in the makefile)? I thought about doing this: $(foreach f, $(addsuffix .j,$(basename $(notdir $(tests)))), jasmin $f &&) echo "Compiled tests successfully" but unfortunately, the input files don't have the same basename as the output files, and often the names are unrelated. Thanks, Nate _______________________________________________ help-gnu-utils mailing list help-gnu-utils@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-utils