1. 程式人生 > >Make file 函式

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 @)