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 に答える