條件判斷語句
條件語句可以根據(jù)一個(gè)變量的值來控制make執(zhí)行或者忽略makefile的特定部分撞芍。條件語句可以是兩個(gè)不同變量来屠、或者變量和常量值的比較嘁灯。
注意:條件語句只能用于控制make實(shí)際執(zhí)行的makefile文件部分,它不能控制規(guī)則的shell命令執(zhí)行過程滥壕。
條件判斷語句的關(guān)鍵字如下
關(guān)鍵字 | 功能 |
---|---|
ifeq |
判斷兩個(gè)參數(shù)是否相同蒿偎,相同為true 朽们,不相同為false
|
ifneq |
判斷兩個(gè)參數(shù)是否不相同,不相同為true 诉位,相同為false
|
ifdef |
判斷變量是否賦值骑脱,如果賦值為true ,沒賦值為false
|
ifndef |
判斷變量是否賦值不从,如果沒賦值為true 惜姐,賦值為false
|
舉個(gè)例子來說明條件判斷語句的用法
madpenguin := boy
richard := boy
var :=
test :
ifeq ($(madpenguin),$(richard))
@echo "madpenguin == richard"
else
@echo "madpenguin != richard"
endif
ifdef var
@echo "var is defined"
else
@echo "var is not defined"
endif
.PHONY : test
運(yùn)行的結(jié)果如下
madpenguin == richard
var is not defined
ifneq
和ifndef
的判斷條件和上面的例子對(duì)應(yīng)的判斷條件相反,用法類似椿息,就不再單獨(dú)舉例子了歹袁。
需要注意的是,條件判斷語句類似于C語言里面的宏寝优,預(yù)處理階段有效条舔,執(zhí)行階段無效。