From: Masahiro Yamada Date: Fri, 20 Jul 2018 07:46:32 +0000 (+0900) Subject: kbuild: use 'include' directive to load auto.conf from top Makefile X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=0a16d2e8cb7e6310debc208d42ff725361ae1911;p=openwrt%2Fstaging%2Fblogic.git kbuild: use 'include' directive to load auto.conf from top Makefile When you build targets that require the kernel configuration, dot-config is set to 1, then the top-level Makefile includes auto.conf. However, Make considers its inclusion is optional because the '-include' directive is used here. If a necessary configuration file is missing for the external module building, the following error message is displayed: ERROR: Kernel configuration is invalid. include/generated/autoconf.h or include/config/auto.conf are missing. Run 'make oldconfig && make prepare' on kernel src to fix it. However, Make still continues building; /bin/false let the creation of 'include/config/auto.config' fail, but Make can ignore the error since it is included by the '-include' directive. I guess the reason of using '-include' directive was to suppress the warning when you build the kernel from a pristine source tree: Makefile:605: include/config/auto.conf: No such file or directory The previous commit made sure include/config/auto.conf exists after the 'make *config' stage. Now, we can use the 'include' directive without showing the warning. Signed-off-by: Masahiro Yamada --- diff --git a/Makefile b/Makefile index a89d8a0d3ee1..6a222e21ca6d 100644 --- a/Makefile +++ b/Makefile @@ -584,7 +584,7 @@ virt-y := virt/ endif # KBUILD_EXTMOD ifeq ($(dot-config),1) --include include/config/auto.conf +include include/config/auto.conf endif # The all: target is the default when no target is given on the