8.转换文本函数

本系列文章均翻译自make官方文档:make Manual,github同步项目:question

不能被Automake所识别。

8.9 value

语法:$(value \*variable\*)
variable是变量的名字,而不是其引用。
使用变量的值,值不会被扩展。

FOO = $PATH

all:
        @echo $(FOO)
        @echo $(value FOO)

第一行输出是ATH,以为* P ∗ 被 扩 展 为 m a k e 变 量 了 ; 第 二 行 输 出 才 是 ∗ P*被扩展为make变量了;第二行输出才是* PmakePATH*环境变量的值。

note:当变量已经被扩展了,那么该函数不会起作用。

8.9 eval

允许你定义一个新的非常量makefile构造:计算其它变量和函数的结果。

eval的参数被扩展,扩展的结果会被解析为makefile的语法。扩展结果可以定义新的make变量、目标、隐含或明确的规则、etc.

eval的结果总是空字符串。

eval的参数实际上被扩展两次;第一次的扩展结果将在解析为makefile语法的时候再次被扩展。
这意味着你需要提供额外的级别来使用$字符。

你可能感兴趣的:(make)