# To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands
ifeq ("$(origin V)", "command line")
KBUILD_VERBOSE = $(V)
endif
ifndef KBUILD_VERBOSE
KBUILD_VERBOSE = 0
endif
ifeq ($(KBUILD_VERBOSE),1)
Q =
ifndef VERBOSE
VERBOSE = 1
endif
export VERBOSE
else
Q = @
endif
$(Q) 变量的本质就是 Makefile中的命令显示与否,命令前有@字符,则不显示命令本身而只显示命令的执行结果。
而 Q = @与否,是通过KBUILD_VERBOSE变量控制。
如果执行make menuconfig V=1,那么Q等于空,即显示命令本身且显示命令的执行结果;
如果执行make menuconfig,那么Q=@,即只显示命令的执行结果
Q变量可以协助调试分析问题。