makefile(五)使用条件判断

本文介绍了Makefile中条件表达式的使用方法,包括ifeq、ifneq、ifdef和ifndef四个条件关键字的具体语法和示例。通过实际案例展示了如何根据不同变量的值来控制Makefile的执行流程。

使用条件判断,可以让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

执行结果:

 

转载于:https://my.oschina.net/daowuming/blog/778639

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值