build: Fix GCRYPT_HWF_MODULES.
[libgcrypt.git] / Makefile.am
index f1dbd09..7fa4fa4 100644 (file)
 # GNU Lesser General Public License for more details.
 #
 # You should have received a copy of the GNU Lesser General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+# License along with this program; if not, see <http://www.gnu.org/licenses/>.
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+# 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 tagged and pushed.
+# Adjust as needed.
+RELEASE_ARCHIVE_DIR  = wk@vigenere:tarballs/libgcrypt/v1.9
+# The key used to sign the released sources.  Adjust as needed.
+RELEASE_SIGNING_KEY  = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
+
 
 ACLOCAL_AMFLAGS = -I m4
-AUTOMAKE_OPTIONS = dist-bzip2
-DISTCHECK_CONFIGURE_FLAGS = --disable-random-daemon \
-  --enable-ciphers=arcfour:blowfish:cast5:des:aes:twofish:serpent:rfc2268:seed:camellia
+DISTCHECK_CONFIGURE_FLAGS = --disable-random-daemon --enable-doc \
+                            --enable-random=auto
 
 # (A suitable gitlog-to-changelog script can be found in GnuPG master.)
 GITLOG_TO_CHANGELOG=gitlog-to-changelog
 
+if BUILD_DOC
+doc = doc
+else
+doc =
+endif
+
+
 DIST_SUBDIRS = m4 compat mpi cipher random src doc tests
-SUBDIRS =         compat mpi cipher random src doc tests
-EXTRA_DIST = autogen.sh README.GIT                                     \
-             ChangeLog-2011 scripts/ChangeLog-2011 doc/ChangeLog-2011  \
-             m4/ChangeLog-2011 cipher/ChangeLog-2011 src/ChangeLog-2011 \
+SUBDIRS =         compat mpi cipher random src $(doc) tests
+
+EXTRA_DIST = autogen.sh autogen.rc README.GIT LICENSES                    \
+             ChangeLog-2011 build-aux/ChangeLog-2011 doc/ChangeLog-2011    \
+             m4/ChangeLog-2011 cipher/ChangeLog-2011 src/ChangeLog-2011    \
              random/ChangeLog-2011 tests/ChangeLog-2011 mpi/ChangeLog-2011 \
-             scripts/git-log-footer scripts/git-log-fix
+             build-aux/git-log-footer build-aux/git-log-fix VERSION
 
 DISTCLEANFILES =
 
 
-# Add all the files listed in "distfiles" files to the distribution,
-# apply version number s to some files and create a VERSION file which
-# we need for the Prereq: patch file trick.
+# Add all the files listed in "distfiles" files to the distribution
 dist-hook: gen-ChangeLog
        @set -e; \
         for file in `cd $(top_srcdir); \
@@ -49,19 +63,32 @@ dist-hook: gen-ChangeLog
                || cp -p $(top_srcdir)/$$dir/$$i $(distdir)/$$dir/$$i; \
            done ; \
        done
-       @set -e; \
-       echo "$(VERSION)" > $(distdir)/VERSION
+
+distcheck-hook:
+       set -e; ( \
+       pref="#+macro: $$(echo $(PACKAGE_NAME)|tr '-' '_')_" ;\
+       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
+
 
 
 gen_start_date = 2011-12-01T14: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=scripts/git-log-fix                                 \
+           --amend=build-aux/git-log-fix                               \
            --since=$(gen_start_date) ) > $(distdir)/cl-t;              \
-          cat $(top_srcdir)/scripts/git-log-footer >> $(distdir)/cl-t;  \
+          cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\
          rm -f $(distdir)/ChangeLog;                                   \
          mv $(distdir)/cl-t $(distdir)/ChangeLog;                      \
        fi
@@ -70,3 +97,50 @@ gen-ChangeLog:
 
 stowinstall:
        $(MAKE) $(AM_MAKEFLAGS) install prefix=/usr/local/stow/libgcrypt
+
+# 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 ' */' ;\
+         )