使用條件判斷,可讓make工具根據運行時的不一樣狀況選擇不一樣的執行分支。條件表達式能夠是比較變量的值、比較變量及常量。工具
語法以下:測試
<conditional-directive> <text-if-true> endif 或者 <conditional-directive> <text-if-true> else <text-if-flase> endif
其中,<conditional-directive>表示條件關鍵字。條件關鍵字有4個,下面分別介紹:spa
ifeq關鍵字表示若是相等則執行,格式以下:code
ifeq (<arg1>, <arg2>) ifeq '<arg1>' '<arg2>' ifeq "<arg1>" "<arg2>"
該關鍵字比較arg1和arg2的值是否相等,若是相同,則表達式爲真。it
ifneq關鍵字表示若是不相等則執行,格式如上。io
ifdef關鍵字表示若是值非空則執行,格式以下:class
ifdef <variable-name>
ifdef關鍵字判斷<variable-name>的值。若是非空則表達式爲真,ifdef只是測試一個變量是否有值,並不會把變量擴展到當前位置。變量
ifndef關鍵字表示若是值爲空則執行,其格式以下:擴展
ifndef <variable-name>
下面演示條件表達式:file
var1 = #這裏是一個空值 var2 = hello all : ifdef $var1 #判斷var1是否認義 echo "var1 is defined" else echo "var1 is undefined" endif ifeq ($(var1) , $(var2)) #判斷var1和var2的值 echo "they are equal" else echo "they are not equal" endif .PHONY : all
執行結果: