2 # Copyright (C) 2005-2016 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR)/rules.mk
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
16 PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5
17 PKG_HASH:=0924dec90c37c05f49fec966eba3672dab4d336d879e5c06e06e13325cbfec25
18 #PKG_FIXUP:=autoreconf gettext-version
19 PKG_MAINTAINER:=Nikos Mavrogiannopoulos <nmav@gnutls.org>
20 PKG_LICENSE:=LGPLv2.1+
23 PKG_LIBTOOL_PATHS:=. lib
24 PKG_CHECK_FORMAT_SECURITY:=0
26 PKG_CONFIG_DEPENDS:= \
29 CONFIG_GNUTLS_CRYPTODEV \
30 CONFIG_GNUTLS_DTLS_SRTP \
31 CONFIG_GNUTLS_EXT_LIBTASN1 \
32 CONFIG_GNUTLS_HEARTBEAT \
34 CONFIG_GNUTLS_OPENPGP \
35 CONFIG_GNUTLS_PKCS11 \
39 CONFIG_LIBNETTLE_MINI \
41 include $(INCLUDE_DIR)/package.mk
44 define Package/gnutls/Default
49 URL:=http://www.gnutls.org/
52 define Package/gnutls/Default/description
53 GnuTLS is a secure communications library implementing the SSL, TLS
54 and DTLS protocols and technologies around them. It provides a simple
55 C language application programming interface (API) to access the secure
56 communications protocols as well as APIs to parse and write X.509, PKCS12,
57 OpenPGP and other required structures. It is aimed to be portable and
58 efficient with focus on security and interoperability.
62 define Package/certtool
63 $(call Package/gnutls/Default)
67 TITLE+= (certool utility)
71 define Package/certtool/description
72 $(call Package/gnutls/Default/description)
73 This package contains the GnuTLS certtool utility.
77 define Package/gnutls-utils
78 $(call Package/gnutls/Default)
86 define Package/gnutls-utils/description
87 $(call Package/gnutls/Default/description)
88 This package contains the GnuTLS gnutls-cli, gnutls-serv, psktool,
89 and srptool utilities.
92 define Package/libgnutls/config
93 source "$(SOURCE)/Config.in"
96 define Package/libgnutls
97 $(call Package/gnutls/Default)
99 DEPENDS+= +libnettle +!LIBNETTLE_MINI:libgmp +GNUTLS_EXT_LIBTASN1:libtasn1 +GNUTLS_PKCS11:p11-kit +GNUTLS_CRYPTODEV:kmod-cryptodev
102 define Package/libgnutls/description
103 $(call Package/gnutls/Default/description)
104 This package contains the GnuTLS shared library, needed by other programs.
113 --with-included-unistring \
118 --enable-local-libopts \
121 --with-default-trust-store-dir=/etc/ssl/certs/ \
123 --with-librt-prefix="$(LIBRT_ROOT_DIR)/"
125 ifneq ($(CONFIG_GNUTLS_EXT_LIBTASN1),y)
126 CONFIGURE_ARGS += --with-included-libtasn1
129 ifneq ($(CONFIG_GNUTLS_PKCS11),y)
130 CONFIGURE_ARGS += --without-p11-kit
133 ifeq ($(CONFIG_LIBNETTLE_MINI),y)
134 CONFIGURE_ARGS += --with-nettle-mini
137 ifneq ($(CONFIG_GNUTLS_DTLS_SRTP),y)
138 CONFIGURE_ARGS += --disable-dtls-srtp-support
141 ifneq ($(CONFIG_GNUTLS_ALPN),y)
142 CONFIGURE_ARGS += --disable-alpn-support
145 ifneq ($(CONFIG_GNUTLS_HEARTBEAT),y)
146 CONFIGURE_ARGS += --disable-heartbeat-support
149 ifneq ($(CONFIG_GNUTLS_SRP),y)
150 CONFIGURE_ARGS += --disable-srp-authentication
153 ifneq ($(CONFIG_GNUTLS_PSK),y)
154 CONFIGURE_ARGS += --disable-psk-authentication
157 ifneq ($(CONFIG_GNUTLS_OPENPGP),y)
158 CONFIGURE_ARGS += --disable-openpgp-authentication
161 ifneq ($(CONFIG_GNUTLS_ANON),y)
162 CONFIGURE_ARGS += --disable-anon-authentication
165 ifneq ($(CONFIG_GNUTLS_OCSP),y)
166 CONFIGURE_ARGS += --disable-ocsp
169 ifneq ($(CONFIG_GNUTLS_TPM),y)
170 CONFIGURE_ARGS += --without-tpm
173 ifeq ($(CONFIG_GNUTLS_CRYPTODEV),y)
174 CONFIGURE_ARGS += --enable-cryptodev
177 TARGET_CFLAGS += $(FPIC)
179 define Build/InstallDev
180 $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib/pkgconfig
182 $(PKG_INSTALL_DIR)/usr/lib/libgnutls.so* \
185 $(PKG_INSTALL_DIR)/usr/include/gnutls \
188 $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/gnutls.pc \
189 $(1)/usr/lib/pkgconfig/
193 define Package/certtool/conffiles
194 /etc/gnutls/certtool.cfg
197 define Package/certtool/install
198 $(INSTALL_DIR) $(1)/etc/gnutls
199 $(INSTALL_CONF) $(PKG_BUILD_DIR)/doc/certtool.cfg $(1)/etc/gnutls/
200 $(INSTALL_DIR) $(1)/usr/bin
201 $(CP) $(PKG_INSTALL_DIR)/usr/bin/certtool $(1)/usr/bin/
205 define Package/gnutls-utils/install
206 $(INSTALL_DIR) $(1)/usr/bin
207 ifeq ($(CONFIG_GNUTLS_OCSP),y)
208 ifeq ($(CONFIG_GNUTLS_ANON),y)
210 $(PKG_INSTALL_DIR)/usr/bin/gnutls-{cli,serv} \
214 $(PKG_INSTALL_DIR)/usr/bin/ocsptool \
217 ifeq ($(CONFIG_GNUTLS_SRP),y)
219 $(PKG_INSTALL_DIR)/usr/bin/srptool \
222 ifeq ($(CONFIG_GNUTLS_PSK),y)
224 $(PKG_INSTALL_DIR)/usr/bin/psktool \
227 ifeq ($(CONFIG_GNUTLS_PKCS11),y)
229 $(PKG_INSTALL_DIR)/usr/bin/p11tool \
232 ifeq ($(CONFIG_GNUTLS_TPM),y)
234 $(PKG_INSTALL_DIR)/usr/bin/tpmtool \
240 define Package/libgnutls/install
241 $(INSTALL_DIR) $(1)/usr/lib
242 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnutls.so.* $(1)/usr/lib/
246 $(eval $(call BuildPackage,certtool))
247 $(eval $(call BuildPackage,gnutls-utils))
248 $(eval $(call BuildPackage,libgnutls))