Blame Makefile.am

Packit 549fdc
## Process this file with automake to produce Makefile.in
Packit 549fdc
# Copyright (C) 2000-2012 Free Software Foundation, Inc.
Packit 549fdc
#
Packit 549fdc
# Author: Nikos Mavrogiannopoulos
Packit 549fdc
#
Packit 549fdc
# This file is part of GnuTLS.
Packit 549fdc
#
Packit 549fdc
# This file is free software; you can redistribute it and/or modify it
Packit 549fdc
# under the terms of the GNU General Public License as published by
Packit 549fdc
# the Free Software Foundation; either version 3 of the License, or
Packit 549fdc
# (at your option) any later version.
Packit 549fdc
#
Packit 549fdc
# This file is distributed in the hope that it will be useful, but
Packit 549fdc
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 549fdc
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 549fdc
# General Public License for more details.
Packit 549fdc
#
Packit 549fdc
# You should have received a copy of the GNU General Public License
Packit 549fdc
# along with this file; if not, write to the Free Software Foundation,
Packit 549fdc
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Packit 549fdc
Packit 549fdc
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --disable-valgrind-tests
Packit 549fdc
Packit 549fdc
SUBDIRS = gl lib extra
Packit 549fdc
Packit 549fdc
if ENABLE_DANE
Packit 549fdc
SUBDIRS += libdane
Packit 549fdc
endif
Packit 549fdc
Packit 549fdc
SUBDIRS += po
Packit 549fdc
if ENABLE_TOOLS
Packit 549fdc
SUBDIRS += src/gl src
Packit 549fdc
else
Packit 549fdc
SUBDIRS += src/gl
Packit 549fdc
endif
Packit 549fdc
Packit 549fdc
if ENABLE_TESTS
Packit 549fdc
SUBDIRS += tests fuzz
Packit 549fdc
endif
Packit 549fdc
Packit 549fdc
if HAVE_GUILE
Packit 549fdc
SUBDIRS += guile
Packit 549fdc
endif
Packit 549fdc
Packit 549fdc
if ENABLE_MANPAGES
Packit 549fdc
SUBDIRS += doc/manpages
Packit 549fdc
endif
Packit 549fdc
Packit 549fdc
if ENABLE_DOC
Packit 549fdc
SUBDIRS += doc
Packit 549fdc
endif
Packit 549fdc
Packit 549fdc
ACLOCAL_AMFLAGS = -I m4 -I gl/m4 -I src/libopts/m4 -I src/gl/m4 -I lib/unistring/m4
Packit 549fdc
Packit 549fdc
EXTRA_DIST = cfg.mk maint.mk CONTRIBUTING.md README.md LICENSE AUTHORS NEWS \
Packit 549fdc
	ChangeLog THANKS INSTALL.md
Packit 549fdc
Packit 549fdc
TMPFILE="abi-temp.xml"
Packit 549fdc
Packit 549fdc
pic-check:
Packit 549fdc
	@echo "Checking for position dependent code"
Packit 549fdc
	readelf -d $(builddir)/lib/.libs/libgnutls.so|grep TEXTREL; if test $$? = 0;then \
Packit 549fdc
	eu-findtextrel $(builddir)/lib/.libs/libgnutls.so; \
Packit 549fdc
	false; \
Packit 549fdc
	fi
Packit 549fdc
Packit 549fdc
abi-dump:
Packit 549fdc
	@abi-dumper lib/.libs/libgnutls.so -lver $(VERSION) -o "./devel/ABI-$(VERSION)-$$(uname -m).dump" -public-headers lib/includes/gnutls/
Packit 549fdc
	@echo "*******************************************************************************"
Packit 549fdc
	@echo "You need to modify Makefile.am abi-check rule if you need to check this release"
Packit 549fdc
	@echo "*******************************************************************************"
Packit 549fdc
Packit 549fdc
abi-check:
Packit 549fdc
	@rm -f $(TMPFILE)
Packit 549fdc
	@echo "Checking libgnutls ABI"
Packit 549fdc
	@echo "<version>$(VERSION)</version>" >$(TMPFILE)
Packit 549fdc
	@echo "<headers>$(srcdir)/lib/includes/gnutls" >>$(TMPFILE)
Packit 549fdc
	@echo "$(builddir)/lib/includes/gnutls</headers>" >>$(TMPFILE)
Packit 549fdc
	@echo "<libs>$(builddir)/lib/.libs</libs>" >>$(TMPFILE)
Packit 549fdc
	for i in 3.4.0 3.4.17 3.5.8 3.6.0;do \
Packit 549fdc
	test ! -f "$(srcdir)/devel/ABI-$$i-$$(uname -m).dump" || \
Packit 549fdc
		abi-compliance-checker -abi -lib gnutls -old "$(srcdir)/devel/ABI-$$i-$$(uname -m).dump" -new $(TMPFILE) -skip-symbols $(srcdir)/devel/abi-unchecked-symbols; \
Packit 549fdc
	done
Packit 549fdc
	@echo "Checking libgnutls-dane ABI"
Packit 549fdc
	@echo "<version>$(VERSION)</version>" >$(TMPFILE)
Packit 549fdc
	@echo "<headers>$(srcdir)/libdane/includes/gnutls" >>$(TMPFILE)
Packit 549fdc
	@echo "$(srcdir)/lib/includes/gnutls" >>$(TMPFILE)
Packit 549fdc
	@echo "$(builddir)/lib/includes/gnutls</headers>" >>$(TMPFILE)
Packit 549fdc
	@echo "<libs>$(builddir)/libdane/.libs</libs>" >>$(TMPFILE)
Packit 549fdc
	test ! -f "$(srcdir)/devel/ABI-dane-$$(uname -m).dump" || abi-compliance-checker -abi -lib gnutls-dane -old "$(srcdir)/devel/ABI-dane-$$(uname -m).dump" -new $(TMPFILE)
Packit 549fdc
	@rm -f $(TMPFILE)
Packit 549fdc
Packit 549fdc
symbol-check:
Packit 549fdc
	@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
Packit 549fdc
	@diff -u symbols.last symbols.last.tmp >/dev/null 2>&1; if test $$? != 0;then \
Packit 549fdc
		diff -u symbols.last symbols.last.tmp | grep -v '\-\-\-' >symbols.diff.tmp 2>&1; \
Packit 549fdc
		if grep -e '^-' symbols.diff.tmp;then \
Packit 549fdc
			echo "*******************************************"; \
Packit 549fdc
			echo "Symbols were removed from the library."; \
Packit 549fdc
			echo "Check symbols.diff.tmp for more information"; \
Packit 549fdc
			echo "*******************************************"; \
Packit 549fdc
			false; \
Packit 549fdc
		else \
Packit 549fdc
			echo "*************************************************************"; \
Packit 549fdc
			echo "Symbols were added in the library; check symbols.diff.tmp for"; \
Packit 549fdc
			echo "correctness; then use 'make files-update'"; \
Packit 549fdc
			echo "*************************************************************"; \
Packit 549fdc
			false; \
Packit 549fdc
		fi \
Packit 549fdc
	else \
Packit 549fdc
		test -f symbols.diff.tmp && cat symbols.diff.tmp; \
Packit 549fdc
		echo "**************************"; \
Packit 549fdc
		echo "No symbol changes detected"; \
Packit 549fdc
		echo "**************************"; \
Packit 549fdc
	fi
Packit 549fdc
	rm -f symbols.last.tmp symbols.diff.tmp
Packit 549fdc
Packit 549fdc
@CODE_COVERAGE_RULES@
Packit 549fdc
Packit 549fdc
local-code-coverage-output: code-coverage-capture
Packit 549fdc
	cat GnuTLS-$(VERSION)-coverage/index.html|grep headerCovTableEntry|grep '%'|head -1|sed 's/^.*>\([0-9]\+\.[0-9]\+\s*%\)<.*$$/ coverage lines: \1/' || true
Packit 549fdc
Packit 549fdc
libopts-check:
Packit 549fdc
	@echo "*****************************************************************"
Packit 549fdc
	@echo "Checking whether included libopts matches the system's. If the"
Packit 549fdc
	@echo "check fails upgrade the included libopts."
Packit 549fdc
	@echo "*****************************************************************"
Packit 549fdc
	test "`autoopts-config libsrc|cut -d '-' -f 2|sed 's/.tar.gz//'`" = "`cat src/libopts/autoopts/options.h |grep OPTIONS_VERSION_STRING|cut -d '"' -f 2|sed 's/:/./g'`"
Packit 549fdc
Packit 549fdc
files-update: libopts-check
Packit 549fdc
	make -C doc/ compare-makefile || mv doc/tmp-compare-makefile doc/Makefile.am
Packit 549fdc
	make -C doc/manpages compare-makefile || mv doc/manpages/tmp-compare-makefile doc/manpages/Makefile.am
Packit 549fdc
	make -C . symbol-check || mv symbols.last.tmp symbols.last
Packit 549fdc
	@echo "******************************************************************************************"
Packit 549fdc
	@echo "updating autogen files in src/"
Packit 549fdc
	@echo "******************************************************************************************"
Packit 549fdc
	cd $(srcdir)/src/ && for i in *-args.c *-args.h;do \
Packit 549fdc
		test -h $$i || cp $$i $$i.bak; \
Packit 549fdc
	done
Packit 549fdc
	@echo "******************************************************************************************"
Packit 549fdc
	@echo "updated auto-generated files; please use git diff to verify the correctness of the changes"
Packit 549fdc
	@echo "******************************************************************************************"
Packit 549fdc
Packit 549fdc
dist-hook: libopts-check symbol-check abi-check
Packit 549fdc
	make -C doc/ compare-makefile
Packit 549fdc
	make -C doc/ compare-exported
Packit 549fdc
	make -C doc/manpages compare-makefile
Packit 549fdc
	rm -f ChangeLog
Packit 549fdc
	make ChangeLog
Packit 549fdc
	cp -f ChangeLog $(distdir)/
Packit 549fdc
	$(SED) 's/\@VERSION\@/$(VERSION)/g' -i $(distdir)/src/args-std.def
Packit 549fdc
	$(SED) 's/\@YEAR\@/$(YEAR)/g' -i $(distdir)/src/args-std.def
Packit 549fdc
	$(SED) 's/\@PACKAGE_BUGREPORT\@/$(PACKAGE_BUGREPORT)/g' -i $(distdir)/src/args-std.def
Packit 549fdc
	cd $(distdir)/src/ && for i in *.def;do \
Packit 549fdc
		if test x"$$i" = x"args-std.def";then  continue; fi; \
Packit 549fdc
		autogen $$i; \
Packit 549fdc
		cp $$i $$i.tmp; \
Packit 549fdc
		$(SED) -i 's/@subheading \(.*\)/@*\n@var{\1}\n@*/' $$i.tmp; \
Packit 549fdc
		autogen -Tagman-cmd.tpl $$i.tmp; \
Packit 549fdc
		rm -f $$i.tmp; \
Packit 549fdc
		mv -f *.1 ../doc/manpages/; \
Packit 549fdc
	done
Packit 549fdc
	cd $(distdir)/src/ && for i in *-args.c *-args.h;do \
Packit 549fdc
		mv $$i $$i.bak; \
Packit 549fdc
	done
Packit 549fdc
	touch $(distdir)/doc/*.html $(distdir)/doc/*.pdf $(distdir)/doc/*.info
Packit 549fdc
Packit 549fdc
.PHONY: abi-check abi-dump pic-check symbol-check local-code-coverage-output files-update libopts-check