# GnuTLS GNUTLS_VERSION := 3.6.16 GNUTLS_URL := https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-$(GNUTLS_VERSION).tar.xz ifdef BUILD_NETWORK ifndef HAVE_DARWIN_OS PKGS += gnutls endif endif ifeq ($(call need_pkg,"gnutls >= 3.3.6"),) PKGS_FOUND += gnutls endif $(TARBALLS)/gnutls-$(GNUTLS_VERSION).tar.xz: $(call download_pkg,$(GNUTLS_URL),gnutls) .sum-gnutls: gnutls-$(GNUTLS_VERSION).tar.xz gnutls: gnutls-$(GNUTLS_VERSION).tar.xz .sum-gnutls $(UNPACK) $(APPLY) $(SRC)/gnutls/gnutls-fix-mangling.patch # backport gnulib patch $(APPLY) $(SRC)/gnutls/0001-Don-t-assume-that-UNICODE-is-not-defined.patch # fix forbidden UWP call which can't be upstreamed as they won't # differentiate for winstore, only _WIN32_WINNT $(APPLY) $(SRC)/gnutls/0001-fcntl-do-not-call-GetHandleInformation-in-Winstore-a.patch # forbidden RtlSecureZeroMemory call in winstore builds $(APPLY) $(SRC)/gnutls/0001-explicit_bzero-Do-not-call-SecureZeroMemory-on-UWP-b.patch # Don't use functions available starting with windows vista $(APPLY) $(SRC)/gnutls/0001-stat-fstat-Fix-when-compiling-for-versions-older-tha.patch # disable the dllimport in static linking (pkg-config --static doesn't handle Cflags.private) cd $(UNPACK_DIR) && sed -i.orig -e s/"_SYM_EXPORT __declspec(dllimport)"/"_SYM_EXPORT"/g lib/includes/gnutls/gnutls.h.in # fix i686 UWP builds as they were using CertEnumCRLsInStore via invalid LoadLibrary $(APPLY) $(SRC)/gnutls/0001-fix-mingw64-detection.patch $(call pkg_static,"lib/gnutls.pc.in") # fix AArch64 builds for Apple OS by removing unsupported compiler flag (gnutls#1347, gnutls#1317) ifdef HAVE_DARWIN_OS $(APPLY) $(SRC)/gnutls/gnutls-fix-aarch64-compilation-appleos.patch endif $(APPLY) $(SRC)/gnutls/0001-windows-Avoid-Wint-conversion-errors.patch $(UPDATE_AUTOCONFIG) $(MOVE) GNUTLS_CONF := \ --disable-gtk-doc \ --without-p11-kit \ --disable-cxx \ --disable-srp-authentication \ --disable-anon-authentication \ --disable-openssl-compatibility \ --disable-guile \ --disable-nls \ --without-libintl-prefix \ --disable-doc \ --disable-tools \ --disable-tests \ --with-included-libtasn1 \ --with-included-unistring \ $(HOSTCONF) GNUTLS_ENV := $(HOSTVARS) DEPS_gnutls = nettle $(DEPS_nettle) ifdef HAVE_ANDROID GNUTLS_ENV += gl_cv_header_working_stdint_h=yes endif ifdef HAVE_WINSTORE ifeq ($(ARCH),x86_64) GNUTLS_CONF += --disable-hardware-acceleration endif endif ifdef HAVE_WIN32 GNUTLS_CONF += --without-idn ifeq ($(ARCH),aarch64) # Gnutls' aarch64 assembly unconditionally uses ELF specific directives GNUTLS_CONF += --disable-hardware-acceleration endif endif .gnutls: gnutls cd $< && $(GNUTLS_ENV) ./configure $(GNUTLS_CONF) cd $< && $(MAKE) -C gl install cd $< && $(MAKE) -C lib install touch $@