makefile 静默编译

#########################################################################
# Allow for silent builds
ifeq (,$(findstring s,$(MAKEFLAGS)))
XECHO = echo
else
XECHO = :
endif

#########################################################################

这一段 主要是关于静默编译的内容

uboot允许静默编译,开启静默编译主要是通过判断  ifeq (,$(findstring s,$(MAKEFLAGS)))

使用方法:在编译时,使用make -s -会作为MAKEFLAGS传给Makefile.此时XECHO就会等于空,就不会打印出编译信息。

如果不想静默编译,就直接执行make 此时XECHO等于echo,打印编译信息。

 

详细解释:

findstring函数

函数调用语法:

$(<funciton> <arguments>)

或者

${<function> <arguments>}

 

$(findstring <find>, <in>)

功能:在字串<in>中查找<find>字串。

返回:如果找到,那么返回<find>,否则返回空字符串。

eg:   $(findstring s,$(MAKEFLAGS))

$(MAKEFLAGS)  ----  诸如‘-s’和‘-k’标志通过变量MAKEFLAGS自动传递给子make。该变量由make自动建立,并包含make收到的标志字母。所以,如果您是用‘make –ks’变量MAKEFLAGS就得到值‘ks’。

示例:$(findstring a,a b c) 

           $(findstring a,b c)

第一个函数返回“a”字符串,第二个返回“”字符串(空字符串)

 

这里MAKEFILES就是执行make命令时传递的参数,比如:make -s 中 -s就是MAKEFILES

执行make -s时, $(findstring s,$(MAKEFLAGS)) 传递 s

ifeq(,s) 为假 执行 else 。

 

参考:https://www.cnblogs.com/yr-linux/p/5361885.html

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值