summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rw-r--r--rabbitmq-components.mk16
2 files changed, 16 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index eb8ab29b06..430d9657c2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,6 @@
PROJECT = rabbit
PROJECT_DESCRIPTION = RabbitMQ
PROJECT_VERSION = $(RABBITMQ_VERSION)
-ifeq ($(PROJECT_VERSION),)
-PROJECT_VERSION := $(shell (git describe --dirty --abbrev=7 --tags --always --first-parent 2>/dev/null || echo rabbitmq_v0_0_0) | sed -e 's/rabbitmq_v//' -e 's/_/./g' -e 's/-/+/' -e 's/-/./g')
-endif
PROJECT_MOD = rabbit
PROJECT_REGISTERED = rabbit_amqqueue_sup \
rabbit_direct_client_sup \
diff --git a/rabbitmq-components.mk b/rabbitmq-components.mk
index ff2b1963ed..75cf180b31 100644
--- a/rabbitmq-components.mk
+++ b/rabbitmq-components.mk
@@ -5,6 +5,22 @@ ifeq ($(.DEFAULT_GOAL),)
.DEFAULT_GOAL = all
endif
+# PROJECT_VERSION defaults to:
+# 1. the version stored in `git-revisions.txt`, if it exists;
+# 2. a version based on git-describe(1).
+
+ifeq ($(PROJECT_VERSION),)
+PROJECT_VERSION := $(shell \
+if test -f git-revisions.txt; then \
+ head -n1 git-revisions.txt | \
+ awk '{print $$$(words $(PROJECT_DESCRIPTION) version);}'; \
+else \
+ (git describe --dirty --abbrev=7 --tags --always --first-parent \
+ 2>/dev/null || echo rabbitmq_v0_0_0) | \
+ sed -e 's/rabbitmq_v//' -e 's/_/./g' -e 's/-/+/' -e 's/-/./g'; \
+fi)
+endif
+
# --------------------------------------------------------------------
# RabbitMQ components.
# --------------------------------------------------------------------