概述
ifeq (,$(filter $(strip $(AAA)), BBB CCC))
do something
else
do nothing
endif
ifeq语句
ifeq : 判断语句,用于比较两个参数是否相等,相等则该语句通过。
如果a和b相等,则do something
ifeq (a, b)
# do something
endif
filter语句
filter: 过滤语句,过滤掉不符合指定的模式的内容,仅保留符合指定的模式的内容。
VAR := 1 2 3 4 5
指定的模式为 1 2 3,多个模式之间用空格区分
$(filter 1 2 3 , $(VAR))
结果是:
1 2 3
3)
strip 去空字符语句,去掉字串中开头和结尾的空字符(空字符包括空格、[Tab]等不可显示字符)。
VAR = 1 2 3
$(strip $(VAR))
结果是:
1 2 3
总结:
看完这三个语句的说明,我们再来看最开始的
ifeq (,$(filter $(strip $(AAA)), BBB CCC))
do something
else
do nothing
endif
第一种情况:
当AAA 中有 BBB 或者 CCC 的时候:
AAA= BBB DDD
$(strip $(AAA)= BBB DDD
上面就可以写为
ifeq (,$(filter BBB DDD, BBB CCC))
do something
else
do nothing
endif
$(filter BBB DDD, BBB CCC) = BBB
上面就可以写为
ifeq (,BBB)
do something
else
do nothing
endif
所以结果为do nothing。
第二种情况:
当AAA 中没有 BBB 或者 CCC 的时候:
AAA= EEE
$(strip $(AAA)= EEE
上面就可以写为
ifeq (,$(filter EEE, BBB CCC))
do something
else
do nothing
endif
$(filter EEE, BBB CCC) = NULL
上面就可以写为
ifeq (,NULL)
do something
else
do nothing
endif
所以结果为do something。
最后
以上就是傲娇冬日为你收集整理的makefile 的ifeq,filter,strip 简单使用。的全部内容,希望文章能够帮你解决makefile 的ifeq,filter,strip 简单使用。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复