2 # Copyright (C) 2011-2015 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.gz
16 PKG_SOURCE_URL:=https://codeload.github.com/ARMmbed/mbedtls/tar.gz/v$(PKG_VERSION)?
17 PKG_HASH:=fc17ff7d8c11d08f23ae2800a18269408ad2c24ea6bb8b9363e41a01c2425697
21 PKG_CPE_ID:=cpe:/a:arm:mbed_tls
23 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
25 PKG_CONFIG_DEPENDS:=CONFIG_LIBMBEDTLS_DEBUG_C
27 include $(INCLUDE_DIR)/package.mk
28 include $(INCLUDE_DIR)/cmake.mk
30 define Package/mbedtls/Default
32 URL:=https://tls.mbed.org
35 define Package/mbedtls/Default/description
36 The aim of the mbedtls project is to provide a quality, open-source
37 cryptographic library written in C and targeted at embedded systems.
40 define Package/libmbedtls
41 $(call Package/mbedtls/Default)
49 define Package/libmbedtls/config
50 config LIBMBEDTLS_DEBUG_C
51 depends on PACKAGE_libmbedtls
52 bool "Enable debug functions"
55 This option enables mbedtls library's debug functions.
57 It increases the uncompressed libmbedtls binary size
58 by around 60 KiB (for an ARMv5 platform).
60 Usually, you don't need this, so don't select this if you're unsure.
63 define Package/mbedtls-util
64 $(call Package/mbedtls/Default)
71 define Package/libmbedtls/description
72 $(call Package/mbedtls/Default/description)
73 This package contains the mbedtls library.
76 define Package/mbedtls-util/description
77 $(call Package/mbedtls/Default/description)
78 This package contains mbedtls helper programs for private key and
79 CSR generation (gen_key, cert_req)
84 TARGET_CFLAGS += -ffunction-sections -fdata-sections
85 TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
88 -DUSE_SHARED_MBEDTLS_LIBRARY:Bool=ON \
89 -DENABLE_TESTING:Bool=OFF \
90 -DENABLE_PROGRAMS:Bool=ON
92 define Build/Configure
93 $(Build/Configure/Default)
95 awk 'BEGIN { rc = 1 } \
96 /#define MBEDTLS_DEBUG_C/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_DEBUG_C),,// )#define MBEDTLS_DEBUG_C"; rc = 0 } \
98 END { exit(rc) }' $(PKG_BUILD_DIR)/include/mbedtls/config.h \
99 >$(PKG_BUILD_DIR)/include/mbedtls/config.h.new && \
100 mv $(PKG_BUILD_DIR)/include/mbedtls/config.h.new $(PKG_BUILD_DIR)/include/mbedtls/config.h
103 define Build/InstallDev
104 $(INSTALL_DIR) $(1)/usr/include
105 $(CP) $(PKG_INSTALL_DIR)/usr/include/mbedtls $(1)/usr/include/
106 $(INSTALL_DIR) $(1)/usr/lib
107 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/
108 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.a $(1)/usr/lib/
111 define Package/libmbedtls/install
112 $(INSTALL_DIR) $(1)/usr/lib
113 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so.* $(1)/usr/lib/
116 define Package/mbedtls-util/install
117 $(INSTALL_DIR) $(1)/usr/bin
118 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gen_key $(1)/usr/bin/
119 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cert_req $(1)/usr/bin/
122 $(eval $(call BuildPackage,libmbedtls))
123 $(eval $(call BuildPackage,mbedtls-util))