YESDIR = $(shell echo $(@:yes - %=%)| tr a-z A-Z)

时间:2016-01-11 19:21:15

标签: gnu-make

我在makefile中看到了这个命令。有人可以对这个命令做一些解释吗?特别是:$(@:yes-%=%)

1 个答案:

答案 0 :(得分:0)

这是Substitution Reference

  

替换引用用您指定的更改替换变量的值。它的格式为‘$(var:a=b)’(或‘${var:a=b}’),其含义是取变量 var 的值,最后替换每个 a 在该值中包含 b 的单词,并替换生成的字符串。

     

另一种类型的替换参考允许您使用patsubst函数的全部功能。它具有与上述相同的格式‘$(var:a=b)’,但现在 a 必须包含单个‘%’字符。这种情况相当于‘$(patsubst a,b,$(var))’。有关patsubst功能的说明,请参阅Functions for String Substitution and Analysis

因此,您的示例正在从yes-(当前目标)的值中删除前导$@