8.轉換文字函式

ignorantshr發表於2019-01-06

本系列文章均翻譯自make官方文件:make Manual,github同步專案:question

不能被Automake所識別。

8.9 value

語法:$(value \*variable\*)
variable是變數的名字,而不是其引用。
使用變數的值,值不會被擴充套件。

FOO = $PATH

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

第一行輸出是ATH,以為*PmakeP*被擴充套件為make變數了;第二行輸出才是*PATH*環境變數的值。

note:當變數已經被擴充套件了,那麼該函式不會起作用。

8.9 eval

允許你定義一個新的非常量makefile構造:計算其它變數和函式的結果。

eval的引數被擴充套件,擴充套件的結果會被解析為makefile的語法。擴充套件結果可以定義新的make變數、目標、隱含或明確的規則、etc.

eval的結果總是空字串。

eval的引數實際上被擴充套件兩次;第一次的擴充套件結果將在解析為makefile語法的時候再次被擴充套件。
這意味著你需要提供額外的級別來使用$字元。

相關文章