Imported Upstream version 2.3.1
[platform/upstream/gpg2.git] / Makefile.am
index bf12302..06a9a66 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
 
+# To include the wixlibs for building an MSI installer in a release use
+#   make release WITH_MSI=1
+
+# Location of the released tarball archives.  This is prefixed by
+# the variable RELEASE_ARCHIVE in ~/.gnupg-autogen.rc.  For example:
+# RELEASE_ARCHIVE=user@host:archive/tarballs
+RELEASE_ARCHIVE_SUFFIX  = gnupg/v2.3
+# The variable RELEASE_SIGNKEY in ~/.gnupg-autogen.rc is used
+# to specify the key for signing.  For example:
+# RELEASE_SIGNKEY=D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
+
+
+# Autoconf flags.
 ACLOCAL_AMFLAGS = -I m4
-DISTCHECK_CONFIGURE_FLAGS = --enable-symcryptrun --enable-g13 \
-  --enable-gpg2-is-gpg
+AM_DISTCHECK_DVI_TARGET = pdf
+AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gnupg-builddir-envvar \
+  --enable-all-tests --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                            \
@@ -41,6 +58,7 @@ EXTRA_DIST = build-aux/config.rpath build-aux/potomo autogen.sh autogen.rc \
              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/w32/wixlib.wxs                \
              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    \
@@ -79,26 +97,25 @@ dirmngr = dirmngr
 else
 dirmngr =
 endif
-if BUILD_TOOLS
-tools = tools
-else
-tools =
-endif
 if BUILD_DOC
 doc = doc
 else
 doc =
 endif
-
-if RUN_TESTS
+if DISABLE_TESTS
+tests =
+else
 tests = tests
+endif
+if BUILD_TPM2D
+tpm2d = tpm2d
 else
-tests =
+tpm2d =
 endif
 
-SUBDIRS = m4 common kbx \
+SUBDIRS = m4 common regexp kbx \
           ${gpg} ${sm} ${agent} ${scd} ${g13} ${dirmngr} \
-          ${tools} po ${doc} ${tests}
+          tools po ${doc} ${tests} ${tpm2d}
 
 dist_doc_DATA = README
 
@@ -107,7 +124,7 @@ dist-hook: gen-ChangeLog
 
 distcheck-hook:
        set -e; ( \
-       pref="#+macro: gnupg21_" ;\
+       pref="#+macro: gnupg24_" ;\
        reldate="$$(date -u +%Y-%m-%d)" ;\
         echo "$${pref}ver  $(PACKAGE_VERSION)"  ;\
         echo "$${pref}date $${reldate}" ;\
@@ -150,3 +167,98 @@ 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) */" ;\
+        [ -n "$(WITH_MSI)" ] && echo "/* (with MSI build support) */" ;\
+        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; \
+        $(AMTAR) xjf $(RELEASE_NAME).tar.bz2 ;\
+        target=w32-release ;\
+        [ -n "$(WITH_MSI)" ] && target=w32-msi-release ;\
+        $(MAKE) -f  $(RELEASE_NAME)/build-aux/speedo.mk $${target} ;\
+        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; \
+         x=$$(grep '^RELEASE_ARCHIVE=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
+          if [ -z "$$x" ]; then \
+             echo "error: RELEASE_ARCHIVE missing in ~/.gnupg-autogen.rc">&2; \
+             exit 2;\
+          fi;\
+          myarchive="$$x/$(RELEASE_ARCHIVE_SUFFIX)";\
+         x=$$(grep '^RELEASE_SIGNKEY=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
+          if [ -z "$$x" ]; then \
+             echo "error: RELEASE_SIGNKEY missing in ~/.gnupg-autogen.rc">&2; \
+             exit 2;\
+          fi;\
+         mysignkey="$$x";\
+         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" ;\
+          wixlibfile="$${release_w32_name}.wixlib";\
+         $(MAKE) -f $(RELEASE_NAME)/build-aux/speedo.mk w32-sign-installer ;\
+         echo "/* Signing the source tarball ..." ;\
+         gpg -sbu $$mysignkey $(RELEASE_NAME).tar.bz2 ;\
+         echo "/* Signing the W32 source tarball ..." ;\
+         gpg -sbu $$mysignkey $${release_w32_name}.tar.xz ;\
+         echo "/* Signing the W32 installer ..." ;\
+         gpg -sbu $$mysignkey $${release_w32_name}.exe ;\
+         cat $(RELEASE_NAME).swdb >swdb.snippet;\
+         echo '#+macro: gnupg24_branch  STABLE-BRANCH-2-4' >>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 archive ..." ;\
+         scp -p $${files1} $${files2} $$myarchive/ \
+           || echo "/* Error copying files to the archive - ignored */" ;\
+         if [ -e $${wixlibfile} ]; then\
+           scp -p $${wixlibfile} $$myarchive/ \
+             || echo "/* Error copying wixlib to the archive - ignored. */" ;\
+          fi ;\
+         echo '/*' ;\
+         echo ' * All done; for checksums see dist/swdb.snippet' ;\
+         echo ' */' ;\
+         )