makefile 的ifeq,filter,strip 简单用法

CSDN 不支持Makefile 代码。

Makefile 例子

ifneq (,$(filter $(region), global eea ru in id tr tw jp))
ifneq (,$(filter $(region), tw))
PRODUCT_NAME := product_global
else
PRODUCT_NAME := product_$(region)
endif
endif

判断两个变量,通常是字符串是否相等。

ifeq( 变量1, 变量2)

判断是否不相等。

ifneq( 变量1, 变量2)

filter

$(filter PATTERN…,TEXT)
函数名称:过滤函数—filter。
函数功能:过滤掉字串“TEXT”中所有不符合模式“PATTERN”的单词,保留所有符合此模式的单词。可以使用多个模式。模式中一般需要包含模式字符“%”。存在多个模式时,模式表达式之间使用空格分割。
说白了,简单理解就是。TEXT中有符合模式的就返回对应字符串,否则就返回空。

返回值:空格分割的“TEXT”字串中所有符合模式“PATTERN”的字串。
函数说明:“filter”函数可以用来去除一个变量中的某些字符串,我们下边的例子中
就是用到了此函数。
示例:

sources := foo.c bar.c baz.s ugh.h 
foo: $(sources) 
cc $(filter %.c %.s,$(sources)) -o foo 

使用“$(filter %.c %.s,$(sources))”的返回值给 cc 来编译生成目标“foo”,函数返回
值为“foo.c bar.c baz.s”,去除掉了.h后缀文件。

$(strip )

strip 去空字符语句,去掉字串中开头和结尾的空字符(空字符包括空格、[Tab]等不可显示字符)

ifeq (1, $(strip $(MY_BUILD)))

唯一的不好就是嵌套一堆空格,读起来真难受。也不方便理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值