# Allow for silent builds
ifeq (,$(findstring s,$(MAKEFLAGS)))
XECHO = echo
else
XECHO = :
endif
首先看下findstring函数的用法
$(findstring <find>,<in>)
名称:查找字符串函数——findstring。
功能:在字串<in>中查找<find>字串。
返回:如果找到,那么返回<find>,否则返回空字符串。
示例:
$(findstring a,a b c)
$(findstring a,b c)
第一个函数返回“a”字符串,第二个返回“”字符串(空字符串)
MAKEFLAGS就是执行make命令时传递的参数,比如:make -s中的-s就是MAKEFLAGS
所以当我们想静默编译时,就用make -s编译,此时XECHO就会等于空,就不会打印出编译信息;
如果不想静默编译时,就直接执行make,此时XECHO就等于echo,就会打印出编译信息。