2

我有一个变量,其中包含不同目录中的先决条件列表,每个目录都由相对路径指定。例如:

HTML_FILES := ../foo1/bar1.html ../foo1/bar2.html ../foo2/bar3.html foo3/bar4.html

(请注意,此变量实际上是生成的,因此事先不知道完整的文件夹列表。)

对于其中的每一个,我想在当前目录中生成一个目标文件,例如bar1.xml, bar2.xml, bar3.xml, bar4.xml.

我怎样才能编写一个与之匹配的规则?这和我来的时候一样近。似乎有什么神奇的东西代替了??????可能会成功。

build: $(XML_FILES)
$(XML_FILES): %.xml : ??????/%.html
        perl $(HTML_TO_XML) $<
4

1 回答 1

5

使用vpath.

vpath %.html $(dir $(HTML_FILES))

现在可以使用如下简单的模式规则:

$(XML_FILES): %.xml : %.html
    perl $(HTML_TO_XML) $<

这应该足以让事情正常进行,但是我不确定如果在不同的目录中有一些具有相同名称的文件(例如../foo1/bar.html../foo2/bar.html.

于 2012-01-03T19:15:25.380 回答