summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2011-01-10 11:52:20 +0000
committerDamien Lespiau <damien.lespiau@intel.com>2011-01-10 11:52:20 +0000
commit7224f6d32a733acba17d1685f73330a237673f2b (patch)
tree3ed132d9e6887fe34184de2f569e0b5466fd53f8 /build
parent285c3dc65cb2e1705389f07aa2b9f5c3357f798f (diff)
downloadclutter-gst-7224f6d32a733acba17d1685f73330a237673f2b.tar.gz
build: Introduce new targets to help making releases1.3.4
Copy what Clutter does and add two new Makefile targets (release-check and release-upload) that helps me making releases
Diffstat (limited to 'build')
-rw-r--r--build/autotools/Makefile.am.release85
1 files changed, 85 insertions, 0 deletions
diff --git a/build/autotools/Makefile.am.release b/build/autotools/Makefile.am.release
new file mode 100644
index 0000000..6cf9b09
--- /dev/null
+++ b/build/autotools/Makefile.am.release
@@ -0,0 +1,85 @@
+# To make real stable releases or devel snapshots, use either:
+# make release-check
+# or make release-publish
+
+TAR_OPTIONS = --owner=0 --group=0
+
+RELEASE_UPLOAD_HOST = clutter-project.org
+RELEASE_UPLOAD_USER = clutter
+RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_USER)@$(RELEASE_UPLOAD_HOST):upload-source
+
+RELEASE_URL_BASE = http://source.clutter-project.org/sources/clutter-gst
+RELEASE_URL = $(RELEASE_URL_BASE)/$(CLUTTER_GST_MAJOR_VERSION).$(CLUTTER_GST_MINOR_VERSION)
+
+RELEASE_ANNOUNCE_LIST = clutter-announce@clutter-project.org (Cc: gnome-announce-list@gnome.org)
+
+tar_file = $(distdir).tar.bz2
+sha256_file = $(distdir).sha256sum
+
+$(sha256_file): $(tar_file)
+ $(AM_V_GEN)sha256sum $^ > $@
+
+release-check: release-verify-even-micro release-verify-news
+ TAR_OPTIONS="$(TAR_OPTIONS)" $(MAKE) $(AM_MAKEFLAGS) distcheck
+
+release-verify-news:
+ @echo -n "Checking that the NEWS file has been updated..."
+ @if ! grep -q "$(CLUTTER_GST_VERSION)" $(top_srcdir)/NEWS; then \
+ (echo "Ouch." && \
+ echo "The version in the NEWS file does not match $(CLUTTER_GST_VERSION)." && \
+ echo "This probably means you haven't updated the NEWS file." && \
+ false); else :; fi
+ @echo "Good."
+
+release-verify-even-micro:
+ @echo -n "Checking that $(VERSION) has an even micro component..."
+ @test "$(CLUTTER_GST_MICRO_VERSION)" = "`echo $(CLUTTER_GST_MICRO_VERSION)/2*2 | bc`" \
+ || (echo "Ouch." && \
+ echo "The version micro component '$(CLUTTER_GST_MICRO_VERSION)' is not an even number." && \
+ echo "The version in configure.ac must be incremented before a new release." && \
+ false)
+ @echo "Good."
+
+release-upload: $(sha256_file)
+ @scp $(tar_file) $(RELEASE_UPLOAD_DIR)
+
+release-message: $(sha256_file)
+ @echo "Release URL: $(RELEASE_URL)/$(tar_file)"
+ @echo "Release checksum: $(RELEASE_URL)/$(sha256_file)"
+ @echo "Send an email to: $(RELEASE_ANNOUNCE_LIST)"
+ @echo " Subject: $(PACKAGE) $(CLUTTER_GST_VERSION) ($(CLUTTER_GST_RELEASE_STATUS))"
+ @echo "Contents:"
+ @echo "--- CUT HERE ---"
+ @echo "A new $(PACKAGE) $(CLUTTER_GST_RELEASE_STATUS) is now available at:"
+ @echo ""
+ @echo " $(RELEASE_URL)/$(tar_file)"
+ @echo ""
+ @echo "SHA256 Checksum:"
+ @echo ""
+ @cat $(top_builddir)/$(sha256_file)
+ @echo ""
+ @echo "Additionally, a git clone of the source tree:"
+ @echo ""
+ @echo " git clone git://git.clutter-project.org/clutter-gst"
+ @echo ""
+ @echo "will include a signed $(CLUTTER_GST_VERSION) tag which points to a commit named:"
+ @echo " `git cat-file tag $(CLUTTER_GST_VERSION) | grep ^object | sed -e 's,object ,,'`"
+ @echo ""
+ @echo "which can be verified with:"
+ @echo " git verify-tag $(CLUTTER_GST_VERSION)"
+ @echo ""
+ @echo "and can be checked out with a command such as:"
+ @echo " git checkout -b build $(CLUTTER_GST_VERSION)"
+ @echo ""
+ @echo "--- CUT HERE ---"
+
+release-publish: release-check
+ $(MAKE) $(AM_MAKEFLAGS) release-upload
+ $(MAKE) $(AM_MAKEFLAGS) release-message
+
+.PHONY: \
+ release-check \
+ release-message \
+ release-publish \
+ release-upload \
+ release-verify-even-micro