GNU Make手册阅读笔记(6)-- 第七章

第七章  Makefile条件执行

1.      条件判断的基本语法

一个简单的不包含“ else ”分支的条件判断语句的语法格式为:

CONDITIONAL-DIRECTIVE

TEXT-IF-TRUE

endif

包含“ else ”的复杂一点的语法格式为:

CONDITIONAL-DIRECTIVE

TEXT-IF-TRUE

else

TEXT-IF-FALSE

endif

1)      关键字“ ifeq

ifeq (ARG1, ARG2)

2)       关键字“ ifneq

ifneq (ARG1, ARG2)

3)       关键字“ ifdef

ifdef VARIABLE-NAME

    如果变量“ VAEIABLE_NAME ”的值非空(在 Makefile 中没有定义的变量的值为空),那么表达式为真 。否则,表达式为假。

对于“ ifdef ”需要说明的是: ifdef 只是测试一个变量是否有值,不会对变量进行替换展开来判断变量的值是否为空。对于变量“ VARIABLE-NAME ”,除了“ VARIABLE-NAME= ”这种情况以外,使用其它方式对它的定义都会使“ ifdef ”返回真。就是说,即使我们通过其它方式(比如,定义它的值引用了其它的变量)给它赋了一个空值,“ ifdef ”也会返回真。我们来看一个例子

1

bar =

foo = $(bar)

ifdef foo

frobozz = yes

else

frobozz = no

endif

2

foo =

ifdef foo

frobozz = yes

else

frobozz = no

endif

1 中的结果是:“ frobozz = yes ”;而例 2 的结果是:“ frobozz = no ”。其原因就是在例 1 中,变量“ foo ”的定义是“ foo = $(bar) ”。虽然变量“ bar ”的值为空,但是“ ifdef ”判断的结果是真。

4)       关键字“ ifndef

ifndef VARIABLE-NAME

 

命令行前的“ + ”的意思是告诉 make ,即使 make 使用了“ -t ”参数,“ + ”之后的命令都需要被执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值