makefile跟編程語言一樣,也支持條件判斷,方式大同小異,makefile條件判斷語句的語法如下:
雖然有集中形式,但是推薦使用第一種,其比較符合我們的編程習慣(尤其從事C/C++派系的工作人員),需要注意的是,ifxxx前邊不能爲tab鍵(因爲不是命令),()中也不允許有空格,否則會報錯,這裏ifxxx是泛指集中判斷類型,具體的如下:
可以支持 ifeq ... else ... endif這樣的條件分支判斷,下邊直接看makefile示例:
.PHONY : all
val1 := debug
val2 :=
all:
@echo "-----test ifeq------"
ifeq ($(val1), debug) #注意:條件判斷語句前不能爲tab,可以爲空格
@echo "val1 == debug"
else
@echo "val1 != debug"
endif
@echo "-----test ifdef------"
ifdef ($(val2))
@echo "define val2"
else
@echo "not define val2"
endif
執行 make all
/home/delphi>make all
-----test ifeq------
val1 == debug
-----test ifdef------
not define val2
/home/delphi>
makefile中的條件判斷比較簡單,就不做過多介紹了。
以上內容參考《狄泰軟件學院》操作系統篇之 - makefile專題