本系列文章均翻譯自make官方文檔:make Manual,github同步項目:question
不能被Automake所識別。
8.9 value
語法:$(value \*variable\*)
。
variable是變量的名字,而不是其引用。
使用變量的值,值不會被擴展。
FOO = $PATH
all:
@echo $(FOO)
@echo $(value FOO)
第一行輸出是ATH,以爲*PATH*環境變量的值。
note:當變量已經被擴展了,那麼該函數不會起作用。
8.9 eval
允許你定義一個新的非常量makefile構造:計算其它變量和函數的結果。
eval的參數被擴展,擴展的結果會被解析爲makefile的語法。擴展結果可以定義新的make變量、目標、隱含或明確的規則、etc.
eval的結果總是空字符串。
eval的參數實際上被擴展兩次;第一次的擴展結果將在解析爲makefile語法的時候再次被擴展。
這意味着你需要提供額外的級別來使用$
字符。