diff mbox series

[10/11] Makefile: Abstract out "identify the pkgversion" code

Message ID 20190201145035.22739-11-peter.maydell@linaro.org
State Superseded
Headers show
Series Enable build and install of our rST docs | expand

Commit Message

Peter Maydell Feb. 1, 2019, 2:50 p.m. UTC
Abstract out the "identify the pkgversion" code from the
rule for creating qemu-version.h, so it sets makefile
variables for QEMU_PKGVERSION and QEMU_FULL_VERSION.
(We will want to use these when building the Sphinx docs.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 Makefile | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

-- 
2.20.1

Comments

Alex Bennée Feb. 1, 2019, 4:59 p.m. UTC | #1
Peter Maydell <peter.maydell@linaro.org> writes:

> Abstract out the "identify the pkgversion" code from the

> rule for creating qemu-version.h, so it sets makefile

> variables for QEMU_PKGVERSION and QEMU_FULL_VERSION.

> (We will want to use these when building the Sphinx docs.)

>

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


> ---

>  Makefile | 33 ++++++++++++++++-----------------

>  1 file changed, 16 insertions(+), 17 deletions(-)

>

> diff --git a/Makefile b/Makefile

> index d519fadee39..2d19d28a271 100644

> --- a/Makefile

> +++ b/Makefile

> @@ -87,6 +87,20 @@ endif

>

>  include $(SRC_PATH)/rules.mak

>

> +# Create QEMU_PKGVERSION and FULL_VERSION strings

> +# If PKGVERSION is set, use that; otherwise get version and -dirty status from git

> +QEMU_PKGVERSION := $(if $(PKGVERSION),$(PKGVERSION),$(shell \

> +  cd $(SRC_PATH); \

> +  if test -d .git; then \

> +    git describe --match 'v*' 2>/dev/null | tr -d '\n'; \

> +    if ! git diff-index --quiet HEAD &>/dev/null; then \

> +      echo "-dirty"; \

> +    fi; \

> +  fi))

> +

> +# Either "version (pkgversion)", or just "version" if pkgversion not set

> +FULL_VERSION := $(if $(QEMU_PKGVERSION),$(VERSION) ($(QEMU_PKGVERSION)),$(VERSION))

> +

>  GENERATED_FILES = qemu-version.h config-host.h qemu-options.def

>

>  #see Makefile.objs for the definition of QAPI_MODULES

> @@ -391,23 +405,8 @@ all: $(DOCS) sphinxdocs $(TOOLS) $(HELPERS-y) recurse-all modules

>

>  qemu-version.h: FORCE

>  	$(call quiet-command, \

> -		(cd $(SRC_PATH); \

> -		if test -n "$(PKGVERSION)"; then \

> -			pkgvers="$(PKGVERSION)"; \

> -		else \

> -			if test -d .git; then \

> -				pkgvers=$$(git describe --match 'v*' 2>/dev/null | tr -d '\n');\

> -				if ! git diff-index --quiet HEAD &>/dev/null; then \

> -					pkgvers="$${pkgvers}-dirty"; \

> -				fi; \

> -			fi; \

> -		fi; \

> -		printf "#define QEMU_PKGVERSION \"$${pkgvers}\"\n"; \

> -		if test -n "$${pkgvers}"; then \

> -			printf '#define QEMU_FULL_VERSION QEMU_VERSION " (" QEMU_PKGVERSION ")"\n'; \

> -		else \

> -			printf '#define QEMU_FULL_VERSION QEMU_VERSION\n'; \

> -		fi; \

> +                (printf '#define QEMU_PKGVERSION "$(QEMU_PKGVERSION)"\n'; \

> +		printf '#define QEMU_FULL_VERSION "$(FULL_VERSION)"\n'; \

>  		) > $@.tmp)

>  	$(call quiet-command, if ! cmp -s $@ $@.tmp; then \

>  	  mv $@.tmp $@; \



--
Alex Bennée
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index d519fadee39..2d19d28a271 100644
--- a/Makefile
+++ b/Makefile
@@ -87,6 +87,20 @@  endif
 
 include $(SRC_PATH)/rules.mak
 
+# Create QEMU_PKGVERSION and FULL_VERSION strings
+# If PKGVERSION is set, use that; otherwise get version and -dirty status from git
+QEMU_PKGVERSION := $(if $(PKGVERSION),$(PKGVERSION),$(shell \
+  cd $(SRC_PATH); \
+  if test -d .git; then \
+    git describe --match 'v*' 2>/dev/null | tr -d '\n'; \
+    if ! git diff-index --quiet HEAD &>/dev/null; then \
+      echo "-dirty"; \
+    fi; \
+  fi))
+
+# Either "version (pkgversion)", or just "version" if pkgversion not set
+FULL_VERSION := $(if $(QEMU_PKGVERSION),$(VERSION) ($(QEMU_PKGVERSION)),$(VERSION))
+
 GENERATED_FILES = qemu-version.h config-host.h qemu-options.def
 
 #see Makefile.objs for the definition of QAPI_MODULES
@@ -391,23 +405,8 @@  all: $(DOCS) sphinxdocs $(TOOLS) $(HELPERS-y) recurse-all modules
 
 qemu-version.h: FORCE
 	$(call quiet-command, \
-		(cd $(SRC_PATH); \
-		if test -n "$(PKGVERSION)"; then \
-			pkgvers="$(PKGVERSION)"; \
-		else \
-			if test -d .git; then \
-				pkgvers=$$(git describe --match 'v*' 2>/dev/null | tr -d '\n');\
-				if ! git diff-index --quiet HEAD &>/dev/null; then \
-					pkgvers="$${pkgvers}-dirty"; \
-				fi; \
-			fi; \
-		fi; \
-		printf "#define QEMU_PKGVERSION \"$${pkgvers}\"\n"; \
-		if test -n "$${pkgvers}"; then \
-			printf '#define QEMU_FULL_VERSION QEMU_VERSION " (" QEMU_PKGVERSION ")"\n'; \
-		else \
-			printf '#define QEMU_FULL_VERSION QEMU_VERSION\n'; \
-		fi; \
+                (printf '#define QEMU_PKGVERSION "$(QEMU_PKGVERSION)"\n'; \
+		printf '#define QEMU_FULL_VERSION "$(FULL_VERSION)"\n'; \
 		) > $@.tmp)
 	$(call quiet-command, if ! cmp -s $@ $@.tmp; then \
 	  mv $@.tmp $@; \