Makefile:是否可以使用斜杠?

时间:2014-01-17 10:03:19

标签: makefile

我有这些文件:

 tests/prova.txt
 tests/mydir/prova.txt

在我的 Makefile 中,我有一个打印文件路径的目标(这只是一个例子):

checkf-%:
    echo tests/${@:checkf-%=%}.txt

如果我打电话

make checkf-prova

它有效! 但如果我打电话

make checkf-mydir/prova

我得到了

制作:制定目标没有规则

如何用%?中的斜杠调用目标?

1 个答案:

答案 0 :(得分:3)

词干(%符号)仅匹配有效的文件名字符,因此不会匹配带有/的s的字符串。话虽如此,模式规则会在尝试匹配之前删除目录名称,然后在运行配方时重新插入它们,所以:

p%.txt :
    @echo p\%.txt matches $@

可以使用:

~/tmp> make tests/prova.txt
p%.txt matches tests/prova.txt

(请注意,这是特定于模式规则.test / prova.txt与prova.txt目标不匹配,但会匹配p%.txt目标)。有关详细信息,请参阅http://www.gnu.org/software/make/manual/html_node/Pattern-Match.html#Pattern-Match