summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2018-04-30 08:24:12 +0200
committerWerner Koch <wk@gnupg.org>2018-04-30 08:24:12 +0200
commitd1d4c4f8eb9830bfb671054e1558342106ba9d8d (patch)
tree77de330ba92c6b24725c41eaa31a9c5502ea2893 /Makefile.am
parent4f45f3e0bb404b4a9787cb55ca154c6f60c1437b (diff)
downloadlibgpg-error-d1d4c4f8eb9830bfb671054e1558342106ba9d8d.tar.gz
build: More release creation automation.
* Makefile.am: Add release and sign-release targets. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am60
1 files changed, 59 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index 56145f7..b602c7f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,6 +16,16 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, see <https://www.gnu.org/licenses/>.
+# Location of the released tarball archives. Note that this is an
+# internal archive and before uploading this to the public server,
+# manual tests should be run and the git release tat set and pushed.
+# Adjust as needed.
+RELEASE_ARCHIVE_DIR = wk@vigenere:tarballs/libgpg-error/
+
+# The key used to sign the released sources. Adjust as needed.
+RELEASE_SIGNING_KEY = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
+
+# Autoconf flags
ACLOCAL_AMFLAGS = -I m4
DISTCHECK_CONFIGURE_FLAGS = --enable-doc
@@ -75,7 +85,7 @@ distcheck-hook:
gen_start_date = 2011-12-01T00:00:00
-.PHONY: gen-ChangeLog
+.PHONY: gen-ChangeLog release sign-release
gen-ChangeLog:
set -e; \
if test -d $(top_srcdir)/.git; then \
@@ -103,3 +113,51 @@ endif
stowinstall:
$(MAKE) $(AM_MAKEFLAGS) install prefix=/usr/local/stow/libgpg-error
+
+
+# Macro to help the release target.
+RELEASE_NAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
+
+release:
+ +(set -e;\
+ if [ "$(abs_top_builddir)" = "$(abs_top_srcdir)" ]; then \
+ echo "error: build directory must not be the source directory" >&2;\
+ exit 2;\
+ fi ;\
+ echo "/* Build started at $$(date -uIseconds) */" ;\
+ cd $(top_srcdir); \
+ ./autogen.sh --force; \
+ cd $(abs_top_builddir); \
+ rm -rf dist; mkdir dist ; cd dist ; \
+ $(abs_top_srcdir)/configure --enable-maintainer-mode; \
+ $(MAKE) distcheck; \
+ echo "/* Build finished at $$(date -uIseconds) */" ;\
+ echo "/*" ;\
+ echo " * Please run the final step interactivly:" ;\
+ echo " * make sign-release" ;\
+ echo " */" ;\
+ ) 2>&1 | tee "$(RELEASE_NAME).buildlog"
+
+sign-release:
+ +(set -e; \
+ cd dist; \
+ files1="$(RELEASE_NAME).tar.bz2 \
+ $(RELEASE_NAME).tar.gz" ; \
+ files2="$(RELEASE_NAME).tar.bz2.sig \
+ $(RELEASE_NAME).tar.gz.sig \
+ $(RELEASE_NAME).swdb \
+ $(RELEASE_NAME).buildlog" ;\
+ echo "/* Signing the source tarball ..." ;\
+ gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.bz2 ;\
+ gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.gz ;\
+ cat $(RELEASE_NAME).swdb >swdb.snippet;\
+ echo >>swdb.snippet ;\
+ sha1sum $${files1} >>swdb.snippet ;\
+ cat "../$(RELEASE_NAME).buildlog" swdb.snippet \
+ | gzip >$(RELEASE_NAME).buildlog ;\
+ echo "Copying to local archive ..." ;\
+ scp -p $${files1} $${files2} $(RELEASE_ARCHIVE_DIR)/ || true;\
+ echo '/*' ;\
+ echo ' * All done; for checksums see dist/swdb.snippet' ;\
+ echo ' */' ;\
+ )