summary refs log tree commit diff stats
path: root/scripts/git-submodule.sh
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2017-10-26 13:52:26 +0100
committerDaniel P. Berrange <berrange@redhat.com>2017-11-06 11:04:36 +0000
commitf62bbee55d503f639ee9498878ebf42ff4f4299a (patch)
tree37ea5d7fc9a77b72ed03ce19b1cdd69be9a5aec3 /scripts/git-submodule.sh
parent96089f6d0e88446a16725f2152d252be34f1ad50 (diff)
downloadfocaccia-qemu-f62bbee55d503f639ee9498878ebf42ff4f4299a.tar.gz
focaccia-qemu-f62bbee55d503f639ee9498878ebf42ff4f4299a.zip
build: allow automatic git submodule updates to be disabled
Some people building QEMU use VPATH builds where the source directory is on a
read-only volume. In such a case 'scripts/git-submodules.sh update' will always
fail and users are required to run it manually themselves on their original
writable source directory.

While this is already supported, it is nice to give users a command line flag
to configure to permanently disable automatic submodule updates, as it means
they won't get hard to diagnose failures from git-submodules.sh at an arbitrary
later date.

This patch thus introduces a flag '--disable-git-update' which will prevent
'make' from ever running 'scripts/git-submodules.sh update'. It will still run
the 'status' command to determine if a submodule update is needed, but when it
does this it'll simply stop and print a message instructing the developer what
todo. eg

$ ./configure  --target-list=x86_64-softmmu --disable-git-update
...snip...

$ make
  GEN     config-host.h
  GEN     trace/generated-tcg-tracers.h
  GEN     trace/generated-helpers-wrappers.h
  GEN     trace/generated-helpers.h
  GEN     trace/generated-helpers.c
  GEN     module_block.h

GIT submodule checkout is out of date. Please run
  scripts/git-submodule.sh update ui/keycodemapdb
from the source directory checkout /home/berrange/src/virt/qemu

make: *** [Makefile:31: git-submodule-update] Error 1

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'scripts/git-submodule.sh')
-rwxr-xr-xscripts/git-submodule.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh
index 21909ea413..63ace6fc55 100755
--- a/scripts/git-submodule.sh
+++ b/scripts/git-submodule.sh
@@ -21,6 +21,15 @@ error() {
     echo
     echo " $ ./configure --with-git='tsocks git'"
     echo
+    echo "Alternatively you may disable automatic GIT submodule checkout"
+    echo "with:"
+    echo
+    echo " $ ./configure --disable-git-update'"
+    echo
+    echo "and then manually update submodules prior to running make, with:"
+    echo
+    echo " $ scripts/git-sbumodule.sh update $modules"
+    echo
     exit 1
 }