Because of using "-include", failure to (re)build auto.conf (with auto.conf.cmd produced as a secondary target) won't stop make from continuing the build. Arrange for it being possible to drop the - from Rules.mk, requiring that the include be skipped for tools-only targets. Note that relying on the inclusion in those cases wouldn't be correct anyway, as it might be a stale file (yet to be rebuilt) which would be included, while during initial build, the file would be absent altogether.
Fixes: 8d4c17a90b0a ("xen/build: silence make warnings about missing auto.conf*") Reported-by: Roger Pau Monné <roger....@citrix.com> Signed-off-by: Jan Beulich <jbeul...@suse.com> --- An alternative to the %.conf rule adjustment would be to remove the file only when the sub-make there failed. --- a/xen/Makefile +++ b/xen/Makefile @@ -375,6 +375,7 @@ $(KCONFIG_CONFIG): tools_fixdep # This exploits the 'multi-target pattern rule' trick. # The syncconfig should be executed only once to make all the targets. include/config/%.conf include/config/%.conf.cmd: $(KCONFIG_CONFIG) + $(Q)rm -f include/config/$*.conf $(Q)$(MAKE) $(build)=tools/kconfig syncconfig ifeq ($(CONFIG_DEBUG),y) --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -15,7 +15,9 @@ srcdir := $(srctree)/$(src) PHONY := __build __build: --include $(objtree)/include/config/auto.conf +ifneq ($(firstword $(subst /, ,$(obj))),tools) +include $(objtree)/include/config/auto.conf +endif include $(XEN_ROOT)/Config.mk include $(srctree)/scripts/Kbuild.include