Citeren "Paul D. Smith" <[EMAIL PROTECTED]>:
> %% [EMAIL PROTECTED] writes:
>
> d> Citeren Mike Gibson <[EMAIL PROTECTED]>:
>
> >> > What should I do to expand the % in the wildcard function?
>
> >> Like Paul said, you can't. But there is a way to do it. Use
> >> $(eval ...) from version 3.80 and above.
>
> d> Thank you all for your replies. I tried this:
>
> d> define genalldocs
> d> xsl/alldocs_$(1).xsl: genalldocs.php $(wildcard $(DOCS)/$(1)/*.xml)
> d> ${PHP} php/genalldocs.php $(CURDIR)/$(DOCS)/$(1)/ >$@
>
> d> endef
>
> d> $(call genalldocs,l)
> d> $(call genalldocs,k)
> d> $(call genalldocs,a)
>
> Well, this can't work because you are not using $(eval ...)... As Mike
> said you have to use $(eval ...). You also have to escape some things.
>
> I would do something like this instead:
>
> xsl/alldocs_%.xsl: php/genalldocs.php
> ${PHP} $< $(CURDIR)/$(DOCS)/$*/ > $@
>
> xsl/alldocs_l.xsl: $(wildcard $(DOCS)/l/*.xml)
> xsl/alldocs_k.xsl: $(wildcard $(DOCS)/k/*.xml)
> xsl/alldocs_a.xsl: $(wildcard $(DOCS)/a/*.xml)
>
> Then you don't even need eval. If you really want to do this in a loop
> or something then you _would_ need eval:
>
> xsl/alldocs_%.xsl: php/genalldocs.php
> ${PHP} $< $(CURDIR)/$(DOCS)/$*/ > $@
>
> define genalldocs
> xsl/alldocs_$(1).xsl: genalldocs.php $$(wildcard $(DOCS)/$(1)/*.xml)
> endef
>
> DOCDIRS = l k a
>
> $(foreach D,$(DOCDIRS),$(eval $(call genalldocs,$(D))))
>
Thank you for your patience with a make-newbie which should have read your
mails and the manual (especially 8.8 about the eval function) better. There
are a lot of things that became clear to me now and I have make doing what I
want now.
With kindly regards,
Douwe.
_______________________________________________
Help-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/help-make