diff options
| author | Werner Koch <[email protected]> | 2018-04-20 08:13:25 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2018-04-20 08:13:25 +0000 | 
| commit | d11bec5ef5e576dab52c1dc7d87758e4f9bf3583 (patch) | |
| tree | 42330a1a50ea7dea2e77208107070ab4737a9b22 | |
| parent | doc: Suggest the use of strconcat for recipient strings. (diff) | |
| download | gpgme-d11bec5ef5e576dab52c1dc7d87758e4f9bf3583.tar.gz gpgme-d11bec5ef5e576dab52c1dc7d87758e4f9bf3583.zip  | |
build: More release creation automation.
* Makefile.am: Add release and sign-release targets.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
| -rw-r--r-- | Makefile.am | 59 | 
1 files changed, 58 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index e47ace50..2dc02e7e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,6 +19,16 @@  ## Process this file with automake to produce Makefile.in +# 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/gpgme/ + +# The key used to sign the released sources.  Adjust as needed. +RELEASE_SIGNING_KEY  = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6 + +# Autoconf flags  ACLOCAL_AMFLAGS = -I m4  DISTCHECK_CONFIGURE_FLAGS = @@ -57,9 +67,9 @@ distcheck-hook:  	  esac;\  	done ) | tee $(distdir).swdb +.PHONY: gen-ChangeLog release sign-release  gen_start_date = 2011-12-01T00:00:00 -.PHONY: gen-ChangeLog  gen-ChangeLog:  	if test -d $(top_srcdir)/.git; then				\  	  (cd $(top_srcdir) &&                      			\ @@ -70,3 +80,50 @@ gen-ChangeLog:  	  rm -f $(distdir)/ChangeLog;					\  	  mv $(distdir)/cl-t $(distdir)/ChangeLog;			\  	fi + + +# 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 TESTFLAGS=--parallel; \ +	 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" ;\ +	  files2="$(RELEASE_NAME).tar.bz2.sig \ +		  $(RELEASE_NAME).swdb \ +		  $(RELEASE_NAME).buildlog" ;\ +	  echo "/* Signing the source tarball ..." ;\ +	  gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.bz2 ;\ +	  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 "Uploading documentation ..." ;\ +	  $(MAKE) -C doc online; \ +	  echo '/*' ;\ +	  echo ' * All done; for checksums see dist/swdb.snippet' ;\ +	  echo ' */' ;\ +         )  | 
