json: Limit recursion depth
[gpgme.git] / Makefile.am
index e47ace5..1772d69 100644 (file)
 # Public License for more details.
 #
 # 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/>.
+# License along with this program; if not, see <https://gnu.org/licenses/>.
+# SPDX-License-Identifier: LGPL-2.1-or-later
 
 ## 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 =
 
-EXTRA_DIST = autogen.sh autogen.rc gpgme.spec.in                       \
-             ChangeLog-2011 m4/ChangeLog-2011 contrib/ChangeLog-2011
+EXTRA_DIST = autogen.sh autogen.rc gpgme.spec.in  \
+             ChangeLog-2011 m4/ChangeLog-2011     \
+             conf/whatisthis VERSION
 
 
 if RUN_GPG_TESTS
@@ -35,13 +47,11 @@ endif
 
 SUBDIRS = src ${tests} doc lang
 
-# Fix the version of the spec file and create a file named VERSION
-# to be used for patch's Prereq: feature.
+# Fix the version of the spec file.
 dist-hook: gen-ChangeLog
        @set -e; \
        sed -e 's/@pkg_version@/$(PACKAGE_VERSION)/g' \
            $(top_srcdir)/gpgme.spec.in  > $(distdir)/gpgme.spec
-       echo "$(PACKAGE_VERSION)" > $(distdir)/VERSION
 
 distcheck-hook:
        set -e; ( \
@@ -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 interactively:" ;\
+        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 ' */' ;\
+         )