bcm53xx: refresh kernel config
[openwrt/openwrt.git] / package / libs / mbedtls / Makefile
1 #
2 # Copyright (C) 2011-2015 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:=mbedtls
11 PKG_VERSION:=2.16.12
12 PKG_RELEASE:=$(AUTORELEASE)
13 PKG_USE_MIPS16:=0
14
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
16 PKG_SOURCE_URL:=https://codeload.github.com/ARMmbed/mbedtls/tar.gz/v$(PKG_VERSION)?
17 PKG_HASH:=294871ab1864a65d0b74325e9219d5bcd6e91c34a3c59270c357bb9ae4d5c393
18
19 PKG_BUILD_PARALLEL:=1
20 PKG_LICENSE:=GPL-2.0-or-later
21 PKG_LICENSE_FILES:=gpl-2.0.txt
22 PKG_CPE_ID:=cpe:/a:arm:mbed_tls
23
24 PKG_CONFIG_DEPENDS := \
25 CONFIG_LIBMBEDTLS_DEBUG_C \
26 CONFIG_LIBMBEDTLS_HKDF_C
27
28 include $(INCLUDE_DIR)/package.mk
29 include $(INCLUDE_DIR)/cmake.mk
30
31 define Package/mbedtls/Default
32 TITLE:=Embedded SSL
33 URL:=https://tls.mbed.org
34 endef
35
36 define Package/mbedtls/Default/description
37 The aim of the mbedtls project is to provide a quality, open-source
38 cryptographic library written in C and targeted at embedded systems.
39 endef
40
41 define Package/libmbedtls
42 $(call Package/mbedtls/Default)
43 SECTION:=libs
44 CATEGORY:=Libraries
45 SUBMENU:=SSL
46 TITLE+= (library)
47 ABI_VERSION:=12
48 endef
49
50 define Package/libmbedtls/config
51 config LIBMBEDTLS_DEBUG_C
52 depends on PACKAGE_libmbedtls
53 bool "Enable debug functions"
54 default n
55 help
56 This option enables mbedtls library's debug functions.
57
58 It increases the uncompressed libmbedtls binary size
59 by around 60 KiB (for an ARMv5 platform).
60
61 Usually, you don't need this, so don't select this if you're unsure.
62
63 config LIBMBEDTLS_HKDF_C
64 depends on PACKAGE_libmbedtls
65 bool "Enable the HKDF algorithm (RFC 5869)"
66 default n
67 help
68 This option adds support for the Hashed Message Authentication Code
69 (HMAC)-based key derivation function (HKDF).
70 endef
71
72 define Package/mbedtls-util
73 $(call Package/mbedtls/Default)
74 SECTION:=utils
75 CATEGORY:=Utilities
76 TITLE+= (utilities)
77 DEPENDS:=+libmbedtls
78 endef
79
80 define Package/libmbedtls/description
81 $(call Package/mbedtls/Default/description)
82 This package contains the mbedtls library.
83 endef
84
85 define Package/mbedtls-util/description
86 $(call Package/mbedtls/Default/description)
87 This package contains mbedtls helper programs for private key and
88 CSR generation (gen_key, cert_req)
89 endef
90
91 PKG_INSTALL:=1
92
93 TARGET_CFLAGS += -ffunction-sections -fdata-sections
94 TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
95
96 CMAKE_OPTIONS += \
97 -DUSE_SHARED_MBEDTLS_LIBRARY:Bool=ON \
98 -DENABLE_TESTING:Bool=OFF \
99 -DENABLE_PROGRAMS:Bool=ON
100
101 define Build/Configure
102 $(Build/Configure/Default)
103
104 awk 'BEGIN { rc = 1 } \
105 /#define MBEDTLS_DEBUG_C/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_DEBUG_C),,// )#define MBEDTLS_DEBUG_C"; rc = 0 } \
106 { print } \
107 END { exit(rc) }' $(PKG_BUILD_DIR)/include/mbedtls/config.h \
108 >$(PKG_BUILD_DIR)/include/mbedtls/config.h.new && \
109 mv $(PKG_BUILD_DIR)/include/mbedtls/config.h.new $(PKG_BUILD_DIR)/include/mbedtls/config.h
110
111 awk 'BEGIN { rc = 1 } \
112 /#define MBEDTLS_HKDF_C/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_HKDF_C),,// )#define MBEDTLS_HKDF_C"; rc = 0 } \
113 { print } \
114 END { exit(rc) }' $(PKG_BUILD_DIR)/include/mbedtls/config.h \
115 >$(PKG_BUILD_DIR)/include/mbedtls/config.h.new && \
116 mv $(PKG_BUILD_DIR)/include/mbedtls/config.h.new $(PKG_BUILD_DIR)/include/mbedtls/config.h
117 endef
118
119 define Build/InstallDev
120 $(INSTALL_DIR) $(1)/usr/include
121 $(CP) $(PKG_INSTALL_DIR)/usr/include/mbedtls $(1)/usr/include/
122 $(INSTALL_DIR) $(1)/usr/lib
123 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/
124 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.a $(1)/usr/lib/
125 endef
126
127 define Package/libmbedtls/install
128 $(INSTALL_DIR) $(1)/usr/lib
129 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so.* $(1)/usr/lib/
130 endef
131
132 define Package/mbedtls-util/install
133 $(INSTALL_DIR) $(1)/usr/bin
134 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gen_key $(1)/usr/bin/
135 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cert_req $(1)/usr/bin/
136 endef
137
138 $(eval $(call BuildPackage,libmbedtls))
139 $(eval $(call BuildPackage,mbedtls-util))