假設我有一組源文件:makefile中通配符擴展的目標
src/foo/file.abc
src/foo/otherfile.abc
,我希望做一些操作(爲簡單起見,我們只能說副本),導致在幾個不同的地方的目標文件夾:
dest/bar/file.xyz
dest/bar/otherfile.xyz
dest/baz/file.xyz
dest/baz/otherfile.xyz
dest/something/file.xyz
dest/something/otherfile.xyz
如何在Makefile中表達該依賴關係,以便更新先決條件文件會導致配方重新創建目標?
GNU Make manual說「在目標和先決條件中自動執行make
通配符擴展」。通過走出去,我希望
dest/*/%.xyz : src/foo/%.abc
install -d $< [email protected]
工作,但它失敗:
$ make -f test.mk dest/bar/file.xyz
make: *** No rule to make target `dest/bar/file.xyz'. Stop.
我誤解的目標通配符擴展?有什麼更好的方式來實現我所追求的?
環境: GNU讓3.82.90
32位Cygwin的
這將工作,除了它是我真正關心的依賴檢查。如果更新了'src/foo/file.abc',則需要重新創建所有'dest/*/file.xyz'。 – etheranger 2014-10-27 05:45:28