cyassl: make CyaSSL/WolfSSL more configurable
[oweals/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))