813163b1793242a661f5809c544dcd289f7b491c
[librecmc/librecmc.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.8
12 PKG_RELEASE:=1
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:=fe9e3b15c3375943bdfebbbb20dd6b4f1147b3b5d926248bd835d73247407430
18
19 PKG_BUILD_PARALLEL:=1
20 PKG_LICENSE:=GPL-2.0+
21 PKG_CPE_ID:=cpe:/a:arm:mbed_tls
22
23 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
24
25 PKG_CONFIG_DEPENDS:=CONFIG_LIBMBEDTLS_DEBUG_C
26
27 include $(INCLUDE_DIR)/package.mk
28 include $(INCLUDE_DIR)/cmake.mk
29
30 define Package/mbedtls/Default
31   TITLE:=Embedded SSL
32   URL:=https://tls.mbed.org
33 endef
34
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.
38 endef
39
40 define Package/libmbedtls
41 $(call Package/mbedtls/Default)
42   SECTION:=libs
43   CATEGORY:=Libraries
44   SUBMENU:=SSL
45   TITLE+= (library)
46   ABI_VERSION:=12
47 endef
48
49 define Package/libmbedtls/config
50 config LIBMBEDTLS_DEBUG_C
51         depends on PACKAGE_libmbedtls
52         bool "Enable debug functions"
53         default n
54         help
55          This option enables mbedtls library's debug functions.
56
57          It increases the uncompressed libmbedtls binary size
58          by around 60 KiB (for an ARMv5 platform).
59
60          Usually, you don't need this, so don't select this if you're unsure.
61 endef
62
63 define Package/mbedtls-util
64 $(call Package/mbedtls/Default)
65   SECTION:=utils
66   CATEGORY:=Utilities
67   TITLE+= (utilities)
68   DEPENDS:=+libmbedtls
69 endef
70
71 define Package/libmbedtls/description
72 $(call Package/mbedtls/Default/description)
73 This package contains the mbedtls library.
74 endef
75
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)
80 endef
81
82 PKG_INSTALL:=1
83
84 TARGET_CFLAGS += -ffunction-sections -fdata-sections
85 TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
86
87 CMAKE_OPTIONS += \
88         -DUSE_SHARED_MBEDTLS_LIBRARY:Bool=ON \
89         -DENABLE_TESTING:Bool=OFF \
90         -DENABLE_PROGRAMS:Bool=ON
91
92 define Build/Configure
93         $(Build/Configure/Default)
94
95         awk 'BEGIN { rc = 1 } \
96              /#define MBEDTLS_DEBUG_C/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_DEBUG_C),,// )#define MBEDTLS_DEBUG_C"; rc = 0 } \
97              { print } \
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
101 endef
102
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/
109 endef
110
111 define Package/libmbedtls/install
112         $(INSTALL_DIR) $(1)/usr/lib
113         $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so.* $(1)/usr/lib/
114 endef
115
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/
120 endef
121
122 $(eval $(call BuildPackage,libmbedtls))
123 $(eval $(call BuildPackage,mbedtls-util))