Lars Noschinski <[EMAIL PROTECTED]> writes: > I have the following directory structure: > > exercise01.tex > exercise01/a-drawing.fig > exercise01/another-figure.fig > exercise02.tex > exercise02/... > > So I want to compile the .tex files, which depend on the .fig files > converted to .eps before. > > My first try was a rule like the first one below (I know it is not > correct, but I think it is clear what I try to achieve): > > %.pdf: %.tex %/*.eps > ..... > > %.eps: %.fig > ..... > > This will obviously not work, and it seems also impossible to replace > "%/*.eps" like > > $(wildcard $@/*.eps) > > or > $(filter $@/%,$drawings) > > where $drawings is a list of all fig files in all subdirectories. > > So it looks to me like I would need to generate dependencies by using an > little shell script, but before I do this, I want to be sure that make > cannot do this for itself ;)
Make from CVS (and soon to be released 3.81) can do this but not current release (3.80). Meantime you can use $(call), $(eval) and target-specific variables to do the trick: # $1 - directory, e.g., exercise01, exercise02 # define set-eps-deps $1: eps := $(patsubst %.fix,%.eps,$(wildcard $1/*.fig)) endef exercises := exercise01.tex exercise02.tex ... $(for e,$(exercises),$(eval $(call set-eps-deps,$(basename $e)))) %.pdf: %.tex $(eps) ..... %.eps: %.fig ..... hth, -boris _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
