build: remove use of MAKELEVEL optimization in submodule handling

The Makefile attempts to optimize the handling of submodules by using MAKELEVEL
to only check the submodule status when running from the top level make
invokation. This causes problems for people who are using a makefile of their
own to in turn invoke QEMU's makefile, as MAKELEVEL is already set to 1 (or
more) when QEMU's makefile runs.

This optimization should not really be needed, since the git-submodule.sh
script is already used to detect if a submodule update is required. This by
removing the MAKELEVEL check, we at most add an extra 'git-submodule.sh status'
call to each make level, the overhead of which is lost in noise of building
QEMU.

Reviewed-by: Greg Kurz <groug@kaod.org>
Tested-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2017-11-06 11:08:14 +00:00
parent 49ad3cfa67
commit c4b01c7c51

View File

@ -18,12 +18,11 @@ git-submodule-update:
.PHONY: git-submodule-update .PHONY: git-submodule-update
ifeq (0,$(MAKELEVEL)) git_module_status := $(shell \
git_module_status := $(shell \ cd '$(SRC_PATH)' && \
cd '$(SRC_PATH)' && \ GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \
GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \ echo $$?; \
echo $$?; \ )
)
ifeq (1,$(git_module_status)) ifeq (1,$(git_module_status))
ifeq (no,$(GIT_UPDATE)) ifeq (no,$(GIT_UPDATE))
@ -42,7 +41,6 @@ git-submodule-update:
"GIT","$(GIT_SUBMODULES)") "GIT","$(GIT_SUBMODULES)")
endif endif
endif endif
endif
.git-submodule-status: git-submodule-update config-host.mak .git-submodule-status: git-submodule-update config-host.mak