summaryrefslogtreecommitdiffstats
path: root/mk/release.mk
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 06:53:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 06:53:20 +0000
commite5a812082ae033afb1eed82c0f2df3d0f6bdc93f (patch)
treea6716c9275b4b413f6c9194798b34b91affb3cc7 /mk/release.mk
parentInitial commit. (diff)
downloadpacemaker-e5a812082ae033afb1eed82c0f2df3d0f6bdc93f.tar.xz
pacemaker-e5a812082ae033afb1eed82c0f2df3d0f6bdc93f.zip
Adding upstream version 2.1.6.upstream/2.1.6
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mk/release.mk')
-rw-r--r--mk/release.mk87
1 files changed, 87 insertions, 0 deletions
diff --git a/mk/release.mk b/mk/release.mk
new file mode 100644
index 0000000..7d7259c
--- /dev/null
+++ b/mk/release.mk
@@ -0,0 +1,87 @@
+#
+# Copyright 2008-2022 the Pacemaker project contributors
+#
+# The version control history for this file may have further details.
+#
+# This source code is licensed under the GNU General Public License version 2
+# or later (GPLv2+) WITHOUT ANY WARRANTY.
+#
+
+# Define variables related to release version and such
+
+COMMIT ?= HEAD
+
+# TAG defaults to DIST when in a source distribution instead of a git checkout,
+# the tag name if COMMIT is tagged, and the full commit ID otherwise.
+TAG ?= $(shell \
+ T=$$(git describe --tags --exact-match '$(COMMIT)' 2>/dev/null); \
+ [ -n "$${T}" ] && echo "$${T}" \
+ || git log --pretty=format:%H -n 1 '$(COMMIT)' 2>/dev/null \
+ || echo DIST)
+
+# If DIRTY=anything is passed to make, generated versions will end in ".mod"
+# as long as there are uncommitted changes and COMMIT is not changed from the
+# default.
+DIRTY_EXT = $(shell [ -n "$(DIRTY)" ] \
+ && [ "$(COMMIT)" == "HEAD" ] \
+ && ! git diff-index --quiet HEAD -- 2>/dev/null \
+ && echo .mod)
+
+# These can be used in case statements to avoid make interpreting parentheses
+lparen = (
+rparen = )
+
+# This will be empty if not in a git checkout
+CHECKOUT = $(shell git rev-parse --git-dir 2>/dev/null)
+
+# VERSION is set by configure, but we allow some make targets to be run without
+# running configure first, so set a reasonable default in that case.
+VERSION ?= $(shell if [ -z "$(CHECKOUT)" ]; then \
+ echo 0.0.0; \
+ else \
+ git tag -l \
+ | sed -n -e 's/^\(Pacemaker-[0-9.]*\)$$/\1/p' \
+ | sort -Vr | head -n 1; \
+ fi)
+
+# What the git tag would be for configured VERSION (such as "Pacemaker-2.1.5")
+LAST_RELEASE ?= Pacemaker-$(VERSION)
+
+# What the git tag would be for the release after the configured VERSION
+# (LAST_RELEASE stripped of its -rc* suffix if present, or with minor-minor
+# version bumped if not; this should be manually overriden when bumping
+# the major or minor version)
+NEXT_RELEASE ?= $(shell case "$(LAST_RELEASE)" in \
+ *-rc*$(rparen) \
+ echo $(LAST_RELEASE) | sed s:-rc.*:: ;; \
+ *$(rparen) \
+ echo $(LAST_RELEASE) | awk -F. \
+ '/[0-9]+\./{$$3+=1;OFS=".";print $$1,$$2,$$3}' \
+ ;; \
+ esac)
+
+# We have two make targets for creating distributions:
+#
+# - "make dist" is automake's native functionality, based on the various
+# dist/nodist make variables; it always uses the current sources
+#
+# - "make export" is a custom target based on "git archive" and relevant
+# entries from .gitattributes; it defaults to current sources but can use any
+# git tag
+#
+# Both targets use the same name for the result, though they generate different
+# contents.
+#
+# The directory is named pacemaker-<version> when in a source distribution
+# instead of a git checkout, pacemaker-<version_part_of_tag> for tagged
+# commits, and pacemaker-<short_commit> otherwise.
+top_distdir = $(PACKAGE)-$(shell \
+ case $(TAG) in \
+ DIST$(rparen) \
+ [ -n "$(VERSION)" ] && echo "$(VERSION)" \
+ || echo DIST;; \
+ Pacemaker-*$(rparen) \
+ echo '$(TAG)' | cut -c11-;; \
+ *$(rparen) \
+ git log --pretty=format:%h -n 1 '$(TAG)';; \
+ esac)$(DIRTY_EXT)