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语法的时候再次被扩展。 这意味着你需要提供额外的级别来使用$字符。