makefile(五)使用条件判断

原创
2016/10/31 16:04
阅读数 3.7K

使用条件判断,可以让make工具根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值、比较变量及常量。

一、条件表达式

语法如下:

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

或者

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

其中,<conditional-directive>表示条件关键字。条件关键字有4个,下面分别介绍:

1. ifeq

ifeq关键字表示如果相等则执行,格式如下:

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

该关键字比较arg1和arg2的值是否相等,如果相同,则表达式为真。

2.ifneq

ifneq关键字表示如果不相等则执行,格式如上。

3.ifdef

ifdef关键字表示如果值非空则执行,格式如下:

ifdef <variable-name>

ifdef关键字判断<variable-name>的值。如果非空则表达式为真,ifdef只是测试一个变量是否有值,并不会把变量扩展到当前位置。

4.ifndef

ifndef关键字表示如果值为空则执行,其格式如下:

ifndef <variable-name>

 

下面演示条件表达式:

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

执行结果:

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部