Makefile的條件執行
-
條件語句中使用到了三個關鍵字:”ifeq”、“else”、“endif”,其中:
“ifeq”表示條件語句的開始,並指定了一個比較條件(相等)。之後是用圓括號括包圍的、使用逗號“,”分割的兩個參數,和關鍵字“ifeq”用空格分開。參數中的變量引用在進行變量值比較時被展開。“ifeq”之後就是當條件滿足make 需要執行的,條件不滿足時忽略。
“else”之後就是當條件不滿足時的執行部分。不是所有的條件語句都需要此部分。
“endif”表示一個條件語句的結束,任何一個條件表達式都必須以“endif”結束。 -
一個簡單的不包含“else”分支的條件判斷語句的語法格式爲:
CONDITIONAL-DIRECTIVE
TEXT-IF-TRUE
endif
表達式中“TEXT-IF-TRUE”可以是若幹任何文本行,當條件爲真時它就將被make作爲需要執行的一部分。當條件爲假時,不作爲需要執行的一部分。
ifeq
,判斷參數是否相等;ifneq
,判斷參數是否不相等;ifdef
,用來判斷一個變量是否已經定義;ifdef
只是測試一個變量是否有值,不會對變量進行替換展開來判斷變量的值是否爲空。ifndef
,關鍵字“ifndef”實現的功能和“ifdef”相反;