common: New function percent_data_escape.
[gnupg.git] / Makefile.am
index 466c011..680fe1b 100644 (file)
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
-ACLOCAL_AMFLAGS = -I m4 -I gl/m4
-DISTCHECK_CONFIGURE_FLAGS = --enable-symcryptrun --enable-mailto --enable-gpgtar
+# 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/gnupg/v2.2
+
+# The key used to sign the released sources.  Adjust as needed.
+RELEASE_SIGNING_KEY  = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
+
+
+# Autoconf flags.
+ACLOCAL_AMFLAGS = -I m4
+AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gnupg-builddir-envvar \
+  --enable-all-tests --enable-symcryptrun --enable-g13 \
+  --enable-gpgtar --enable-wks-tools --disable-ntbtls
 
 GITLOG_TO_CHANGELOG=gitlog-to-changelog
 
 EXTRA_DIST = build-aux/config.rpath build-aux/potomo autogen.sh autogen.rc \
-            ChangeLog-2011 po/ChangeLog-2011 build-aux/ChangeLog-2011 \
-            VERSION README.GIT build-aux/gitlog-to-changelog \
+            ChangeLog-2011 po/ChangeLog-2011 build-aux/ChangeLog-2011     \
+            VERSION README.GIT build-aux/gitlog-to-changelog              \
+            COPYING.GPL2 COPYING.LGPL21 COPYING.LGPL3      \
+             COPYING.CC0 COPYING.other                      \
             build-aux/git-log-fix build-aux/git-log-footer \
             build-aux/getswdb.sh                           \
             build-aux/speedo.mk                            \
@@ -38,20 +53,16 @@ EXTRA_DIST = build-aux/config.rpath build-aux/potomo autogen.sh autogen.rc \
              build-aux/speedo/w32/gdk-pixbuf-loaders.cache  \
              build-aux/speedo/w32/exdll.h                  \
              build-aux/speedo/w32/README.txt               \
+             build-aux/speedo/w32/gnupg-logo-150x57.bmp            \
+             build-aux/speedo/w32/gnupg-logo-164x314.bmp    \
              build-aux/speedo/patches/atk-1.32.0.patch     \
              build-aux/speedo/patches/libiconv-1.14.patch   \
-             build-aux/speedo/patches/pango-1.29.4.patch
+             build-aux/speedo/patches/pango-1.29.4.patch    \
+             build-aux/speedo/patches/sqlite.patch
 
 
 DISTCLEANFILES = g10defs.h
 
-if BUILD_GPGSM
-kbx = kbx
-else
-kbx =
-endif
-
-
 if BUILD_GPG
 gpg = g10
 else
@@ -82,32 +93,36 @@ dirmngr = dirmngr
 else
 dirmngr =
 endif
-if BUILD_TOOLS
-tools = tools
-else
-tools =
-endif
 if BUILD_DOC
 doc = doc
 else
 doc =
 endif
 
-if RUN_TESTS
-tests = tests
-else
-tests =
-endif
-
-SUBDIRS = m4 gl common ${kbx} \
+SUBDIRS = m4 common kbx \
           ${gpg} ${sm} ${agent} ${scd} ${g13} ${dirmngr} \
-          ${tools} po ${doc} ${tests}
+          tools po ${doc} tests
 
 dist_doc_DATA = README
 
 
 dist-hook: gen-ChangeLog
 
+distcheck-hook:
+       set -e; ( \
+       pref="#+macro: gnupg22_" ;\
+       reldate="$$(date -u +%Y-%m-%d)" ;\
+        echo "$${pref}ver  $(PACKAGE_VERSION)"  ;\
+        echo "$${pref}date $${reldate}" ;\
+        list='$(DIST_ARCHIVES)'; for i in $$list; do \
+         case "$$i" in *.tar.bz2) \
+            echo "$${pref}size $$(wc -c <$$i|awk '{print int($$1/1024)}')k" ;\
+           echo "$${pref}sha1 $$(sha1sum <$$i|cut -d' ' -f1)" ;\
+           echo "$${pref}sha2 $$(sha256sum <$$i|cut -d' ' -f1)" ;;\
+         esac;\
+       done ) | tee $(distdir).swdb
+
+
 if HAVE_W32_SYSTEM
 install-data-hook:
        set -e; \
@@ -125,7 +140,7 @@ endif
 gen_start_date = 2011-12-01T06:00:00
 .PHONY: gen-ChangeLog
 gen-ChangeLog:
-       if test -d $(top_srcdir)/.git; then                             \
+       if test -e $(top_srcdir)/.git; then                             \
          (cd $(top_srcdir) &&                                          \
            $(GITLOG_TO_CHANGELOG) --append-dot --tear-off              \
            --amend=build-aux/git-log-fix                               \
@@ -138,3 +153,77 @@ gen-ChangeLog:
 
 stowinstall:
        $(MAKE) $(AM_MAKEFLAGS) install prefix=/usr/local/stow/gnupg
+
+TESTS_ENVIRONMENT = \
+       LC_ALL=C \
+       EXEEXT=$(EXEEXT) \
+       PATH=$(abs_top_builddir)/tests/gpgscm:$(PATH) \
+       abs_top_srcdir=$(abs_top_srcdir) \
+       objdir=$(abs_top_builddir) \
+       GPGSCM_PATH=$(abs_top_srcdir)/tests/gpgscm
+
+.PHONY: check-all release sign-release
+check-all:
+       $(TESTS_ENVIRONMENT) \
+         $(abs_top_builddir)/tests/gpgscm/gpgscm \
+         $(abs_srcdir)/tests/run-tests.scm $(TESTFLAGS) $(TESTS)
+
+# Names of to help the release target.
+RELEASE_NAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
+RELEASE_W32_STEM_NAME = $(PACKAGE_TARNAME)-w32-$(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; \
+        $(TAR) xjf $(RELEASE_NAME).tar.bz2 ;\
+        $(MAKE) -f  $(RELEASE_NAME)/build-aux/speedo.mk w32-release ;\
+        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; \
+         release_w32_name="$(RELEASE_W32_STEM_NAME)_$$(date -u +%Y%m%d)" ;\
+         files1="$(RELEASE_NAME).tar.bz2 \
+                  $${release_w32_name}.tar.xz \
+                  $${release_w32_name}.exe" ;\
+         files2="$(RELEASE_NAME).tar.bz2.sig \
+                 $(RELEASE_NAME).swdb \
+                 $(RELEASE_NAME).buildlog \
+                 $${release_w32_name}.tar.xz.sig \
+                 $${release_w32_name}.exe.sig    \
+                 $${release_w32_name}.exe.swdb" ;\
+         $(MAKE) -f $(RELEASE_NAME)/build-aux/speedo.mk w32-sign-installer ;\
+         echo "/* Signing the source tarball ..." ;\
+         gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.bz2 ;\
+         echo "/* Signing the W32 source tarball ..." ;\
+         gpg -sbu $(RELEASE_SIGNING_KEY) $${release_w32_name}.tar.xz ;\
+         echo "/* Signing the W32 installer ..." ;\
+         gpg -sbu $(RELEASE_SIGNING_KEY) $${release_w32_name}.exe ;\
+         cat $(RELEASE_NAME).swdb >swdb.snippet;\
+         echo '#+macro: gnupg22_branch  STABLE-BRANCH-2-2' >>swdb.snippet;\
+         cat  $${release_w32_name}.exe.swdb >>swdb.snippet;\
+         echo >>swdb.snippet ;\
+         sha1sum $${files1} >>swdb.snippet ;\
+          cat "../$(RELEASE_NAME).buildlog" swdb.snippet \
+               | gzip >$(RELEASE_NAME).buildlog ;\
+          echo "Release created - copying it to the local archive ..." ;\
+         scp -p $${files1} $${files2} $(RELEASE_ARCHIVE_DIR)/ || true;\
+         echo '/*' ;\
+         echo ' * All done; for checksums see dist/swdb.snippet' ;\
+         echo ' */' ;\
+         )