aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
authorThomas Weißschuh <thomas.weissschuh@linutronix.de>2026-03-05 13:04:07 +0100
committerNicolas Schier <nsc@kernel.org>2026-03-18 20:59:00 +0100
commitc9bb03ac2c66bc5aa81b51ea0792477524c2763a (patch)
treed995d467609144223c010adbf184a07ab4967ab2 /Makefile
parentdc3b90751d6ffa8865e09a81645a539b9de6d642 (diff)
downloadlinux-next-history-c9bb03ac2c66bc5aa81b51ea0792477524c2763a.tar.gz
kbuild: reduce output spam when building out of tree
The execution of $(call cmd,makefile) will print 'GEN Makefile' on each build, even if the Makefile is not effectively changed. Use a filechk command instead, so a message is only printed on changes. The Makefile is now created even if the build is aborted due to an unclean working tree. That should not make a difference in practice. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nathan Chancellor <nathan@kernel.org> Link: https://patch.msgid.link/20260305-kbuild-makefile-spam-v1-1-910f6cf218a1@linutronix.de Signed-off-by: Nicolas Schier <nsc@kernel.org>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile14
1 files changed, 9 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 6b8e9fca2752d..a8d8ed711f9b3 100644
--- a/Makefile
+++ b/Makefile
@@ -675,14 +675,19 @@ print_env_for_makefile = \
echo "export KBUILD_OUTPUT = $(CURDIR)"
endif
-quiet_cmd_makefile = GEN Makefile
- cmd_makefile = { \
+filechk_makefile = { \
echo "\# Automatically generated by $(abs_srctree)/Makefile: don't edit"; \
$(print_env_for_makefile); \
echo "include $(abs_srctree)/Makefile"; \
- } > Makefile
+ }
-outputmakefile:
+$(objtree)/Makefile: FORCE
+ $(call filechk,makefile)
+
+# Prevent $(srcroot)/Makefile from inhibiting the rule to run.
+PHONY += $(objtree)/Makefile
+
+outputmakefile: $(objtree)/Makefile
ifeq ($(KBUILD_EXTMOD),)
@if [ -f $(srctree)/.config -o \
-d $(srctree)/include/config -o \
@@ -703,7 +708,6 @@ else
fi
endif
$(Q)ln -fsn $(srcroot) source
- $(call cmd,makefile)
$(Q)test -e .gitignore || \
{ echo "# this is build directory, ignore it"; echo "*"; } > .gitignore
endif