1################################################################################
2#
3# cryptopp
4#
5################################################################################
6
7CRYPTOPP_VERSION = 8.9.0
8CRYPTOPP_SOURCE = cryptopp$(subst .,,$(CRYPTOPP_VERSION)).zip
9CRYPTOPP_SITE = https://cryptopp.com
10CRYPTOPP_LICENSE = BSL-1.0, BSD-3-Clause (CRYPTOGAMS), Public domain (ChaCha SSE2 and AVX)
11CRYPTOPP_LICENSE_FILES = License.txt
12CRYPTOPP_CPE_ID_VENDOR = cryptopp
13CRYPTOPP_CPE_ID_PRODUCT = crypto\+\+
14CRYPTOPP_INSTALL_STAGING = YES
15
16define HOST_CRYPTOPP_EXTRACT_CMDS
17	$(UNZIP) $(HOST_CRYPTOPP_DL_DIR)/$(CRYPTOPP_SOURCE) -d $(@D)
18endef
19
20HOST_CRYPTOPP_CXXFLAGS = $(HOST_CFLAGS) -fPIC
21
22# _mm256_broadcastsi128_si256 has been added only in gcc 4.9
23ifneq ($(BR2_HOST_GCC_AT_LEAST_4_9),y)
24HOST_CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_AVX2
25endif
26
27HOST_CRYPTOPP_MAKE_OPTS = \
28	$(HOST_CONFIGURE_OPTS) \
29	CXXFLAGS="$(HOST_CRYPTOPP_CXXFLAGS)"
30
31define HOST_CRYPTOPP_BUILD_CMDS
32	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) $(HOST_CRYPTOPP_MAKE_OPTS) shared
33endef
34
35define HOST_CRYPTOPP_INSTALL_CMDS
36	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) PREFIX=$(HOST_DIR) install-lib
37endef
38
39define CRYPTOPP_EXTRACT_CMDS
40	$(UNZIP) $(CRYPTOPP_DL_DIR)/$(CRYPTOPP_SOURCE) -d $(@D)
41endef
42
43CRYPTOPP_CXXFLAGS = $(TARGET_CXXFLAGS) -fPIC
44
45# _mm256_broadcastsi128_si256 has been added only in gcc 4.9
46ifneq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_9),y)
47CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_AVX2
48endif
49
50ifneq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
51CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ALTIVEC
52endif
53
54ifneq ($(BR2_ARM_CPU_HAS_NEON),y)
55CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_NEON
56endif
57
58CRYPTOPP_MAKE_OPTS = \
59	$(TARGET_CONFIGURE_OPTS) \
60	CXXFLAGS="$(CRYPTOPP_CXXFLAGS)"
61
62define CRYPTOPP_BUILD_CMDS
63	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(CRYPTOPP_MAKE_OPTS) \
64		PREFIX=/usr shared libcryptopp.pc
65endef
66
67define CRYPTOPP_INSTALL_TARGET_CMDS
68	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PREFIX=/usr DESTDIR=$(TARGET_DIR) \
69		LDCONFIG=/bin/true install-lib
70endef
71
72define CRYPTOPP_INSTALL_STAGING_CMDS
73	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) PREFIX=/usr DESTDIR=$(STAGING_DIR) \
74		LDCONFIG=/bin/true install-lib
75endef
76
77$(eval $(generic-package))
78$(eval $(host-generic-package))
79