makefile(五)使用條件判斷

使用條件判斷,可讓make工具根據運行時的不一樣狀況選擇不一樣的執行分支。條件表達式能夠是比較變量的值、比較變量及常量。工具

1、條件表達式

語法以下:測試

<conditional-directive>
<text-if-true>
endif

或者

<conditional-directive>
<text-if-true>
else
<text-if-flase>
endif

其中,<conditional-directive>表示條件關鍵字。條件關鍵字有4個,下面分別介紹:spa

1. ifeq

ifeq關鍵字表示若是相等則執行,格式以下:code

ifeq (<arg1>, <arg2>)
ifeq '<arg1>' '<arg2>'
ifeq "<arg1>" "<arg2>"

該關鍵字比較arg1和arg2的值是否相等,若是相同,則表達式爲真。it

2.ifneq

ifneq關鍵字表示若是不相等則執行,格式如上。io

3.ifdef

ifdef關鍵字表示若是值非空則執行,格式以下:class

ifdef <variable-name>

ifdef關鍵字判斷<variable-name>的值。若是非空則表達式爲真,ifdef只是測試一個變量是否有值,並不會把變量擴展到當前位置。變量

4.ifndef

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

執行結果:

相關文章
相關標籤/搜索