[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH resend] configure: actually disable 'git_update' mode with --disa
From: |
Dan Streetman |
Subject: |
[PATCH resend] configure: actually disable 'git_update' mode with --disable-git-update |
Date: |
Sun, 13 Sep 2020 14:57:08 -0400 |
The --disable-git-update configure param sets git_update=no, but
some later checks only look for the .git dir. This changes the
--enable-git-update to set git_update=yes but also fail if it
does not find a .git dir. Then all the later checks for the .git
dir can just be changed to a check for $git_update = "yes".
Also update the Makefile to skip the 'git_update' checks if it has
been disabled.
This is needed because downstream packagers, e.g. Debian, Ubuntu, etc,
also keep the source code in git, but do not want to enable the
'git_update' mode; with the current code, that's not possible even
if the downstream package specifies --disable-git-update.
Signed-off-by: Dan Streetman <ddstreet@canonical.com>
---
Resend; this was sent twice before:
https://lists.nongnu.org/archive/html/qemu-trivial/2020-07/msg00180.html
https://lists.nongnu.org/archive/html/qemu-devel/2020-07/msg08243.html
Makefile | 15 +++++++++------
configure | 23 ++++++++++++++---------
2 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/Makefile b/Makefile
index 2ed19310cf7..712aaf8b53b 100644
--- a/Makefile
+++ b/Makefile
@@ -38,6 +38,8 @@ git-submodule-update:
.PHONY: git-submodule-update
+# If --disable-git-update specified, skip these git checks
+ifneq (no,$(GIT_UPDATE))
git_module_status := $(shell \
cd '$(SRC_PATH)' && \
GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \
@@ -45,7 +47,12 @@ git_module_status := $(shell \
)
ifeq (1,$(git_module_status))
-ifeq (no,$(GIT_UPDATE))
+ifeq (yes,$(GIT_UPDATE))
+git-submodule-update:
+ $(call quiet-command, \
+ (cd $(SRC_PATH) && GIT="$(GIT)" ./scripts/git-submodule.sh update
$(GIT_SUBMODULES)), \
+ "GIT","$(GIT_SUBMODULES)")
+else
git-submodule-update:
$(call quiet-command, \
echo && \
@@ -54,11 +61,7 @@ git-submodule-update:
echo "from the source directory checkout $(SRC_PATH)" && \
echo && \
exit 1)
-else
-git-submodule-update:
- $(call quiet-command, \
- (cd $(SRC_PATH) && GIT="$(GIT)" ./scripts/git-submodule.sh update
$(GIT_SUBMODULES)), \
- "GIT","$(GIT_SUBMODULES)")
+endif
endif
endif
diff --git a/configure b/configure
index 4231d56bcc0..2e0e2adc587 100755
--- a/configure
+++ b/configure
@@ -346,7 +346,7 @@ then
git_submodules="$git_submodules tests/fp/berkeley-testfloat-3"
git_submodules="$git_submodules tests/fp/berkeley-softfloat-3"
else
- git_update=no
+ git_update=""
git_submodules=""
if ! test -f "$source_path/ui/keycodemapdb/README"
@@ -1577,7 +1577,12 @@ for opt do
;;
--with-git=*) git="$optarg"
;;
- --enable-git-update) git_update=yes
+ --enable-git-update)
+ git_update=yes
+ if test ! -e "$source_path/.git"; then
+ echo "ERROR: cannot --enable-git-update without .git"
+ exit 1
+ fi
;;
--disable-git-update) git_update=no
;;
@@ -1974,7 +1979,7 @@ python="$python -B"
if test -z "$meson"; then
if test "$explicit_python" = no && has meson && version_ge "$(meson
--version)" 0.55.1; then
meson=meson
- elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then
+ elif test $git_update = 'yes' ; then
meson=git
elif test -e "${source_path}/meson/meson.py" ; then
meson=internal
@@ -2052,7 +2057,7 @@ fi
# Consult white-list to determine whether to enable werror
# by default. Only enable by default for git builds
if test -z "$werror" ; then
- if test -e "$source_path/.git" && \
+ if test "$git_update" = "yes" && \
{ test "$linux" = "yes" || test "$mingw32" = "yes"; }; then
werror="yes"
else
@@ -4175,10 +4180,10 @@ EOF
fdt=system
else
# have GIT checkout, so activate dtc submodule
- if test -e "${source_path}/.git" ; then
+ if test "$git_update" = "yes" ; then
git_submodules="${git_submodules} dtc"
fi
- if test -d "${source_path}/dtc/libfdt" || test -e "${source_path}/.git"
; then
+ if test -d "${source_path}/dtc/libfdt" || test "$git_update" = "yes" ;
then
fdt=git
mkdir -p dtc
fdt_cflags="-I${source_path}/dtc/libfdt"
@@ -5126,7 +5131,7 @@ case "$capstone" in
"" | yes)
if $pkg_config capstone; then
capstone=system
- elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then
+ elif test "$git_update" = "yes" ; then
capstone=git
elif test -e "${source_path}/capstone/Makefile" ; then
capstone=internal
@@ -6126,7 +6131,7 @@ case "$slirp" in
"" | yes)
if $pkg_config slirp; then
slirp=system
- elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then
+ elif test "$git_update" = "yes" ; then
slirp=git
elif test -e "${source_path}/slirp/Makefile" ; then
slirp=internal
@@ -6460,7 +6465,7 @@ if test "$cpu" = "s390x" ; then
roms="$roms s390-ccw"
# SLOF is required for building the s390-ccw firmware on s390x,
# since it is using the libnet code from SLOF for network booting.
- if test -e "${source_path}/.git" ; then
+ if test "$git_update" = "yes" ; then
git_submodules="${git_submodules} roms/SLOF"
fi
fi
--
2.25.1
- [PATCH resend] configure: actually disable 'git_update' mode with --disable-git-update,
Dan Streetman <=