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

执行结果:

相关文章
相关标签/搜索