mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
build: submodule machinery now works also when no tag is reachable
The code in cfg.mk to detect when the git submodule was out of date worked most of the time, but not when checked out in a certain way. * cfg.mk: Extract submodule hash from command output and file, and compare only that, since the format of the full line may vary. Reported by Mike Burns, with some diagnosis by Daniel P Berrange.
This commit is contained in:
parent
0714b2ba4c
commit
8f84fef2eb
14
cfg.mk
14
cfg.mk
@ -242,9 +242,17 @@ prev_version_file = /dev/null
|
||||
|
||||
ifeq (0,$(MAKELEVEL))
|
||||
_curr_status = .git-module-status
|
||||
_update_required := \
|
||||
$(shell t=$$(git submodule status); \
|
||||
test "$$t" = "$$(cat $(_curr_status) 2>/dev/null)"; echo $$?)
|
||||
# The sed filter accommodates those who check out on a commit from which
|
||||
# no tag is reachable. In that case, git submodule status prints a "-"
|
||||
# in column 1 and does not print a "git describe"-style string after the
|
||||
# submodule name. Contrast these:
|
||||
# -b653eda3ac4864de205419d9f41eec267cb89eeb .gnulib
|
||||
# b653eda3ac4864de205419d9f41eec267cb89eeb .gnulib (v0.0-2286-gb653eda)
|
||||
_submodule_hash = sed 's/.//;s/ .*//'
|
||||
_update_required := $(shell \
|
||||
actual=$$(git submodule status | $(_submodule_hash)); \
|
||||
stamp="$$($(_submodule_hash) $(_curr_status) 2>/dev/null)"; \
|
||||
test "$$stamp" = "$$actual"; echo $$?)
|
||||
ifeq (1,$(_update_required))
|
||||
$(error gnulib update required; run ./autogen.sh first)
|
||||
endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user