8.转换文本函数
不能被Automake所识别。
8.9 value¶
语法:$(value \*variable\*)
。
variable是变量的名字,而不是其引用。
使用变量的值,值不会被扩展。
FOO = $PATH
all:
@echo $(FOO)
@echo $(value FOO)
第一行输出是ATH,以为$P被扩展为make变量了;第二行输出才是$PATH环境变量的值。
note:当变量已经被扩展了,那么该函数不会起作用。
8.9 eval¶
允许你定义一个新的非常量makefile构造:计算其它变量和函数的结果。
eval的参数被扩展,扩展的结果会被解析为makefile的语法。扩展结果可以定义新的make变量、目标、隐含或明确的规则、etc.
eval的结果总是空字符串。
eval的参数实际上被扩展两次;第一次的扩展结果将在解析为makefile语法的时候再次被扩展。
这意味着你需要提供额外的级别来使用$
字符。