## Process this file with automake to produce Makefile.in # Copyright (C) 2000-2012 Free Software Foundation, Inc. # # Author: Nikos Mavrogiannopoulos # # This file is part of GnuTLS. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. DISTCHECK_CONFIGURE_FLAGS = \ --enable-doc \ --enable-gtk-doc \ --disable-valgrind-tests \ --with-guile-site-dir='$$(datarootdir)/guile/site/$$(GUILE_EFFECTIVE_VERSION)' \ --with-guile-site-ccache-dir='$$(libdir)/guile/$$(GUILE_EFFECTIVE_VERSION)/site-ccache' \ --with-guile-extension-dir='$$(libdir)/guile/$$(GUILE_EFFECTIVE_VERSION)/extensions' \ AUTOGEN=false SUBDIRS = gl lib extra if ENABLE_DANE SUBDIRS += libdane endif SUBDIRS += po if ENABLE_TOOLS SUBDIRS += src/gl src else SUBDIRS += src/gl endif if ENABLE_TESTS SUBDIRS += tests fuzz endif if HAVE_GUILE SUBDIRS += guile endif if ENABLE_MANPAGES SUBDIRS += doc/manpages endif if ENABLE_DOC SUBDIRS += doc endif ACLOCAL_AMFLAGS = -I m4 -I src/libopts/m4 -I src/gl/m4 -I lib/unistring/m4 --install EXTRA_DIST = cfg.mk maint.mk CONTRIBUTING.md README.md LICENSE AUTHORS NEWS \ ChangeLog THANKS INSTALL.md RELEASES.md DISTCLEANFILES = AUTHORS AUTHORS: @echo -e "The authors list is autogenerated from the git history; sorted by number of commits\n" >AUTHORS @git shortlog -sen| cut -f 2 | sed 's/@/ at /g' >> AUTHORS @echo -e "\n\nThe translators list is autogenerated from po file history\n" >>AUTHORS @sed -n 's/.*Last-Translator: *\(.*\) *<.*/\1/p' po/*.po | sort -u >>AUTHORS pic-check: @echo "Checking for position dependent code" readelf -d $(builddir)/lib/.libs/libgnutls.so|grep TEXTREL; if test $$? = 0;then \ eu-findtextrel $(builddir)/lib/.libs/libgnutls.so; \ false; \ fi ABIDW_COMMON = --no-show-locs --no-corpus-path ABIGNORE_FILE = "$(top_srcdir)/devel/libgnutls.abignore" SYMBOLS_LAST_FILE = "$(top_srcdir)/devel/symbols.last" LIBGNUTLS_ABI_LAST_FILE = "$(top_srcdir)/devel/libgnutls-latest-$$(uname -m).abi" LIBDANE_ABI_LAST_FILE = "$(top_srcdir)/devel/libdane-latest-$$(uname -m).abi" abi-dump-versioned: lib/libgnutls.la libdane/libgnutls-dane.la @echo "**************************************************************************" @echo "Generating versioned ABI files of current gnutls and gnutls-dane libraries" @echo "**************************************************************************" @abidw lib/.libs/libgnutls.so $(ABIDW_COMMON) --suppressions $(ABIGNORE_FILE) --out-file "$(srcdir)/devel/libgnutls-$(VERSION)-$$(uname -m).abi" @abidw libdane/.libs/libgnutls-dane.so $(ABIDW_COMMON) --out-file "$(srcdir)/devel/libdane-$(VERSION)-$$(uname -m).abi" abi-dump-latest: lib/libgnutls.la libdane/libgnutls-dane.la @echo "****************************************************************" @echo "Generating ABI files of current gnutls and gnutls-dane libraries" @echo "****************************************************************" @abidw lib/.libs/libgnutls.so $(ABIDW_COMMON) --suppressions $(ABIGNORE_FILE) --out-file $(LIBGNUTLS_ABI_LAST_FILE) @abidw libdane/.libs/libgnutls-dane.so $(ABIDW_COMMON) --out-file $(LIBDANE_ABI_LAST_FILE) @rm -f "./devel/libgnutls-latest-$$(uname -m).tmp" @rm -f "./devel/libdane-latest-$$(uname -m).tmp" abi-check-latest: lib/libgnutls.la libdane/libgnutls-dane.la @echo "Checking whether the latest ABI dump matches" @abidiff --suppressions $(ABIGNORE_FILE) lib/.libs/libgnutls.so $(LIBGNUTLS_ABI_LAST_FILE) --hd2 "$(srcdir)/lib/includes/gnutls/" --hd2 $(builddir)/lib/includes/gnutls/ ; if test $$? != 0;then \ echo "*********************************************************"; \ echo "libgnutls ABI has changed; use 'make files-update' "; \ echo "and use 'git diff' to check correctness before committing"; \ echo "*********************************************************"; \ false; \ fi @abidiff libdane/.libs/libgnutls-dane.so $(LIBDANE_ABI_LAST_FILE) --hd2 "$(srcdir)/libdane/includes/gnutls/" --hd2 $(builddir)/lib/includes/gnutls/; if test $$? != 0;then \ echo "*********************************************************"; \ echo "libgnutls-dane ABI has changed; use 'make files-update' "; \ echo "and use 'git diff' to check correctness before committing"; \ echo "*********************************************************"; \ false; \ fi @echo "********************************" @echo "Current release matches ABI dump" @echo "********************************" ABICHECK_COMMON = --no-added-syms abi-check: lib/libgnutls.la libdane/libgnutls-dane.la @for file in $$(echo $(srcdir)/devel/libgnutls-*-$$(uname -m).abi);do \ echo "Comparing libgnutls with $$file"; \ abidiff $${file} lib/.libs/libgnutls.so $(ABICHECK_COMMON) --suppressions $(ABIGNORE_FILE) --hd2 "$(srcdir)/lib/includes/gnutls/" --hd2 $(builddir)/lib/includes/gnutls/; \ if test $$? != 0;then \ echo "****************************************************************************"; \ echo "ABI check failed; If intentional add suppression in devel/libgnutls.abignore"; \ echo "****************************************************************************"; \ exit 1; \ fi; \ done @for file in $$(echo $(srcdir)/devel/libdane-*-$$(uname -m).abi);do \ echo "Comparing libgnutls-dane with $$file"; \ abidiff $${file} libdane/.libs/libgnutls-dane.so $(ABICHECK_COMMON) --hd2 "$(srcdir)/libdane/includes/gnutls/" --hd2 $(builddir)/lib/includes/gnutls/; \ if test $$? != 0;then \ echo "**********************************************"; \ echo "ABI check failed; If intentional add a "; \ echo "libabigail suppression file for libgnutls-dane"; \ echo "**********************************************"; \ exit 1; \ fi; \ done @echo "********************" @echo "ABI checks completed" @echo "********************" symbol-check: lib/libgnutls.la @objdump -T $(builddir)/lib/.libs/libgnutls.so | grep -v ' \*UND\*' | awk '{print $$7 "@" $$6;}' | grep -v GNUTLS_FIPS140 | grep -v GNUTLS_PRIVATE | grep -v '^@' | sort -u >symbols.last.tmp @diff -u $(SYMBOLS_LAST_FILE) symbols.last.tmp >/dev/null 2>&1; if test $$? != 0;then \ diff -u $(SYMBOLS_LAST_FILE) symbols.last.tmp | grep -v '\-\-\-' >symbols.diff.tmp 2>&1; \ if grep -e '^-' symbols.diff.tmp;then \ echo "*******************************************"; \ echo "Symbols were removed from the library. "; \ echo "Check symbols.diff.tmp for more information"; \ echo "*******************************************"; \ false; \ else \ echo "*************************************************************"; \ echo "Symbols were added in the library; use 'make files-update' "; \ echo "and use 'git diff' to check correctness before committing "; \ echo "*************************************************************"; \ false; \ fi \ else \ test -f symbols.diff.tmp && cat symbols.diff.tmp; \ echo "**************************"; \ echo "No symbol changes detected"; \ echo "**************************"; \ fi rm -f symbols.last.tmp symbols.diff.tmp include $(top_srcdir)/aminclude_static.am clean-local: code-coverage-clean distclean-local: code-coverage-dist-clean local-code-coverage-output: code-coverage-capture cat GnuTLS-$(VERSION)-coverage/index.html|grep headerCovTableEntry|grep '%'|head -1|sed 's/^.*>\([0-9]\+\.[0-9]\+\s*%\)<.*$$/ coverage lines: \1/' || true libopts-check: @echo "*****************************************************************" @echo "Checking whether included libopts matches the system's. If the" @echo "check fails upgrade the included libopts." @echo "*****************************************************************" test "`autoopts-config libsrc|awk -F '-' '{print $$NF}'|sed 's/.tar.gz//'`" = "`cat $(srcdir)/src/libopts/autoopts/options.h |grep OPTIONS_VERSION_STRING|cut -d '"' -f 2|sed 's/:/./g'`" files-update: libopts-check abi-dump-latest $(MAKE) -C doc/ compare-makefile || mv doc/tmp-compare-makefile $(srcdir)/doc/Makefile.am $(MAKE) -C doc/manpages compare-makefile || mv doc/manpages/tmp-compare-makefile $(srcdir)/doc/manpages/Makefile.am $(MAKE) -C . symbol-check || mv symbols.last.tmp $(SYMBOLS_LAST_FILE) @echo "******************************************************************************************" @echo "updated auto-generated files; please use git diff to verify the correctness of the changes" @echo "******************************************************************************************" dist-hook: libopts-check $(PKG_CONFIG) --atleast-version=2.2.0 guile-2.2 if test -d "$(top_srcdir)/devel";then \ $(MAKE) -C $(top_srcdir) symbol-check && \ $(MAKE) -C $(top_srcdir) abi-check-latest; \ fi $(MAKE) -C doc/ compare-makefile $(MAKE) -C doc/ compare-exported $(MAKE) -C doc/manpages compare-makefile $(MAKE) ChangeLog mv ChangeLog $(distdir) touch -c $(distdir)/doc/*.html $(distdir)/doc/*.pdf $(distdir)/doc/*.info .PHONY: abi-check abi-dump-versioned abi-dump-latest pic-check symbol-check local-code-coverage-output files-update libopts-check AUTHORS