cyassl: make CyaSSL/WolfSSL more configurable
[openwrt/openwrt.git] / package / libs / cyassl / Makefile
1 #
2 # Copyright (C) 2006-2016 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=wolfssl
11 PKG_VERSION:=3.9.6
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
15 PKG_SOURCE_URL:=https://www.wolfssl.com/
16 PKG_MD5SUM:=df435eacae4f2f1a92a241e80a2106d9
17
18 PKG_FIXUP:=libtool
19 PKG_INSTALL:=1
20 PKG_BUILD_PARALLEL:=1
21 PKG_LICENSE:=GPL-2.0+
22
23 include $(INCLUDE_DIR)/package.mk
24
25 define Package/libcyassl
26 SECTION:=libs
27 SUBMENU:=SSL
28 CATEGORY:=Libraries
29 TITLE:=CyaSSL library
30 URL:=http://www.wolfssl.com/
31 endef
32
33 define Package/libcyassl/description
34 CyaSSL is an SSL library optimized for small footprint, both on disk and for
35 memory use.
36 endef
37
38 define Package/libcyassl/config
39 source "$(SOURCE)/Config.in"
40 endef
41
42 TARGET_CFLAGS += $(FPIC)
43
44 CONFIGURE_ARGS += \
45 --enable-singlethreaded \
46 --enable-opensslextra \
47 --enable-sni \
48 --enable-stunnel \
49 --disable-examples
50
51 ifeq ($(CONFIG_IPV6),y)
52 CONFIGURE_ARGS += \
53 --enable-ipv6
54 endif
55
56 ifeq ($(CONFIG_CYASSL_HAS_AES_CCM),y)
57 CONFIGURE_ARGS += \
58 --enable-aesccm
59 endif
60
61 ifeq ($(CONFIG_CYASSL_HAS_AES_GCM),y)
62 CONFIGURE_ARGS += \
63 --enable-aesgcm
64 endif
65
66 ifeq ($(CONFIG_CYASSL_HAS_CHACHA),y)
67 CONFIGURE_ARGS += \
68 --enable-chacha
69 endif
70
71 ifeq ($(CONFIG_CYASSL_HAS_ECC),y)
72 CONFIGURE_ARGS += \
73 --enable-ecc \
74 --enable-supportedcurves
75 endif
76
77 ifeq ($(CONFIG_CYASSL_HAS_DH),y)
78 CONFIGURE_ARGS += \
79 --enable-dh
80 endif
81
82 ifeq ($(CONFIG_CYASSL_HAS_ARC4),n)
83 CONFIGURE_ARGS += \
84 --disable-arc4
85 endif
86
87 ifeq ($(CONFIG_CYASSL_HAS_DES3),y)
88 CONFIGURE_ARGS += \
89 --disable-des3
90 endif
91
92 ifeq ($(CONFIG_CYASSL_HAS_PSK),y)
93 CONFIGURE_ARGS += \
94 --enable-psk
95 endif
96
97 ifeq ($(CONFIG_CYASSL_HAS_DTLS),y)
98 CONFIGURE_ARGS += \
99 --enable-dtls
100 endif
101
102 ifeq ($(CONFIG_CYASSL_HAS_ECC25519),y)
103 CONFIGURE_ARGS += \
104 --enable-ecc25519
105 endif
106
107 ifeq ($(CONFIG_CYASSL_HAS_POLY1305),y)
108 CONFIGURE_ARGS += \
109 --enable-poly1305
110 endif
111
112 #ifneq ($(CONFIG_TARGET_x86),)
113 # CONFIGURE_ARGS += --enable-intelasm
114 #endif
115 #ifneq ($(CONFIG_TARGET_x86_64),)
116 # CONFIGURE_ARGS += --enable-intelasm
117 #endif
118
119 define Build/InstallDev
120 $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib/pkgconfig
121 $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
122
123 $(INSTALL_DIR) $(1)/usr/lib
124 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwolfssl.{so*,la} $(1)/usr/lib/
125 ln -s libwolfssl.so $(1)/usr/lib/libcyassl.so
126 ln -s libwolfssl.la $(1)/usr/lib/libcyassl.la
127
128 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig
129 endef
130
131 define Package/libcyassl/install
132 $(INSTALL_DIR) $(1)/usr/lib
133 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwolfssl.so* $(1)/usr/lib/
134 ln -s libwolfssl.so $(1)/usr/lib/libcyassl.so
135 endef
136
137 $(eval $(call BuildPackage,libcyassl))