Make file 函式
Makefile中有很多函式,這裡逐步歸類:
1. if函式
函式原型: $(if <condition>,<then part>,<else part>)
函式說明:condition是判斷條件,如果condition返回非空字串,那就執行<then part>部分,如果condition返回空字串,那就執行<else part>部分。
函式返回:返回<then part> 或者<else part>的執行結果
舉例:$(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT)
首先判斷$(KBUILD_VERBOSE:1=)的結果,如果KBUILD_VERBOSE=1,則將KBUILD_VERBOSE替換為空字串,那執行結果就為空字串,那整個if的返回結果也為空字串
如果KBUILD_VERBOSE為非1,那KBUILD_VERBOSE為非空,那if的判斷條件為非空,那if的返回結果為else part部分,這裡為@
2. origin函式
函式原型:$(origin <var>)
函式說明:<var>是變數名字,用於判斷這個變數來自於哪裡,
函式返回:1. <var>沒有被定義,則返回"undefined"
2.<var>是使用make命令帶進來的引數,則返回 "command line"
3.<var>如果是系統環境變數,則返回"environment"
4.<var>如果是"override"字元重定義的,則返回"override"
5.<var>是命令列中的自動化變數,則返回"automatic",比如$(origin @)