makefile指令

条件指令和引入指令

条件指令

用来控制make执行流程的条件具有多种形式,比如“是否已定义”或“是否等于”。
条件指令的基本语法:

if-condition
    text if the condition is true
else
    text if the condition is false
endif

其中的if-condition可以是:
ifdefvariable-name
ifndef variable-name
ifeq test
ifneq test
在进行ifdef/ifndef的测试时,不应该以$()扩住variable-nametest可以表示成:"a" "b"或者:(a,b)

条件处理指令可以用在宏定义和命令脚本中,还可以放在makefile的顶层。

在使用相等或者不等的条件判断时,经常发生“变量扩展后包含了非预期的空格”的情况,可以使用strip函数去除空格。

ifeq "$(strip $(OPTIONS))" "-d"
    COMPILATION_FLAGS += -DDEBUG
endif

include指令

一个makefile可以引入(include)其他文件。此功能常用来引入make头文件中所存放的共同的定义,或是用来自动产生依存的信息。
includeFILES
FILES可以是多个文件,可以使用shell通配符以及变量。

当make看到include指令时,会对文件名中的通配符和变量进行扩展,然后寻找所需的文件。如果文件存在,就将文件的内容添加到此处;如果某个文件不存在,make会发出警告并且继续读取其余的makefile文件。
当所有的读取动作完成之后,make会从规则数据库中找出任何可用来跟新引入文件的规则。如果找到了一个相应的规则,make就会先更新引入文件。如果任何一个引入文件被更新,make接着会清除它的内部数据库并且重新读进引入文件。
如果完成读取、更新和重新读取的过程之后,仍有include指令因为文件不存在而执行失败,那么make显示错误状态并终止。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值