# Deal with colliding definitions from tcsh etc.
VENDOR=
#########################################################################
# Allow for silent builds
ifeq (,$(findstring s,$(MAKEFLAGS)))
XECHO = echo
else
XECHO = :
endif
首先我发现在比较新的uboot,比如uboot2010等版本的makefile文件中增加了这段内容,这段主要起到什么作用呢?
另外分析(findstring s,$(MAKEFLAGS))) 在$(MAKEFLAGS) 环境变量中找到s字符串,如果没有找到XECHO = echo ,这段的真实含义到底做什么呢?
MAKEFLAGS这个变量最初如何赋值呢?
11 个解决方案
#1
控制编译时的信息显示
MAKEFLAGS在makefile的前边会有吧
MAKEFLAGS在makefile的前边会有吧
#2
如果在MAKEFLAGS中找到s那么就是静默编译,否则打印编译信息。
在Linux顶层Makefile中,在version下面的第一条就是给MAKEFLAGS赋值的,可以去看看!UBOOT的是一个意思!
还有以.slient开始的标号也是静默编译的!
在Linux顶层Makefile中,在version下面的第一条就是给MAKEFLAGS赋值的,可以去看看!UBOOT的是一个意思!
还有以.slient开始的标号也是静默编译的!
#3
请问什么是静默编译? 为什么有这个? 怎么实现静默编译?
#4
就是编译过程中不打印东西
这几条语句的作用是控制是否在编译是打印日志
如果在MAKEFLAGS里找到s 则不打印
这几条语句的作用是控制是否在编译是打印日志
如果在MAKEFLAGS里找到s 则不打印
#5
看看MAKEFLAGS是什么,怀疑与日志功能相关
#6
XECHO = echo 的时候是静默编译,echo不是显示信息吗,那么这个变量在后面如何实现静默编译呢?而为什么XECHO = :就是打印信息呢? 而为什么不是空呢? 两点代表什么意思?
#7
在 linux shell 里面,冒号后面的命令不执行。
所以在非静默编译的时候 XECHO = echo
在静默编译的时候 XECHO = :
所以在非静默编译的时候 XECHO = echo
在静默编译的时候 XECHO = :
#8
学习了
#9
同学习 ,
#10
冒号后面的命令不执行? 不会不执行吧? 静默编译不是仅仅不打印信息而已吗?
#11
: 和 # 是一个道理的。
echo 没有了不就不打印?
echo 没有了不就不打印?
#1
控制编译时的信息显示
MAKEFLAGS在makefile的前边会有吧
MAKEFLAGS在makefile的前边会有吧
#2
如果在MAKEFLAGS中找到s那么就是静默编译,否则打印编译信息。
在Linux顶层Makefile中,在version下面的第一条就是给MAKEFLAGS赋值的,可以去看看!UBOOT的是一个意思!
还有以.slient开始的标号也是静默编译的!
在Linux顶层Makefile中,在version下面的第一条就是给MAKEFLAGS赋值的,可以去看看!UBOOT的是一个意思!
还有以.slient开始的标号也是静默编译的!
#3
请问什么是静默编译? 为什么有这个? 怎么实现静默编译?
#4
就是编译过程中不打印东西
这几条语句的作用是控制是否在编译是打印日志
如果在MAKEFLAGS里找到s 则不打印
这几条语句的作用是控制是否在编译是打印日志
如果在MAKEFLAGS里找到s 则不打印
#5
看看MAKEFLAGS是什么,怀疑与日志功能相关
#6
XECHO = echo 的时候是静默编译,echo不是显示信息吗,那么这个变量在后面如何实现静默编译呢?而为什么XECHO = :就是打印信息呢? 而为什么不是空呢? 两点代表什么意思?
#7
在 linux shell 里面,冒号后面的命令不执行。
所以在非静默编译的时候 XECHO = echo
在静默编译的时候 XECHO = :
所以在非静默编译的时候 XECHO = echo
在静默编译的时候 XECHO = :
#8
学习了
#9
同学习 ,
#10
冒号后面的命令不执行? 不会不执行吧? 静默编译不是仅仅不打印信息而已吗?
#11
: 和 # 是一个道理的。
echo 没有了不就不打印?
echo 没有了不就不打印?