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. Signed-off-by: Daniel P. Berrange <berra...@redhat.com> --- NB this is on top of https://lists.gnu.org/archive/html/qemu-devel/2017-11/msg00449.html Makefile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index a92d7b8e14..0496c5057a 100644 --- a/Makefile +++ b/Makefile @@ -18,12 +18,11 @@ git-submodule-update: .PHONY: git-submodule-update -ifeq (0,$(MAKELEVEL)) - git_module_status := $(shell \ - cd '$(SRC_PATH)' && \ - GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \ - echo $$?; \ - ) +git_module_status := $(shell \ + cd '$(SRC_PATH)' && \ + GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \ + echo $$?; \ +) ifeq (1,$(git_module_status)) ifeq (no,$(GIT_UPDATE)) @@ -42,7 +41,6 @@ git-submodule-update: "GIT","$(GIT_SUBMODULES)") endif endif -endif .git-submodule-status: git-submodule-update config-host.mak -- 2.13.6