aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt9
-rw-r--r--crypto/CMakeLists.txt115
2 files changed, 115 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 710d8a9..8ab76ce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,7 +35,6 @@ endif()
35 35
36add_definitions(-DLIBRESSL_INTERNAL) 36add_definitions(-DLIBRESSL_INTERNAL)
37add_definitions(-DOPENSSL_NO_HW_PADLOCK) 37add_definitions(-DOPENSSL_NO_HW_PADLOCK)
38add_definitions(-DOPENSSL_NO_ASM)
39 38
40set(CMAKE_POSITION_INDEPENDENT_CODE true) 39set(CMAKE_POSITION_INDEPENDENT_CODE true)
41 40
@@ -161,6 +160,14 @@ if(HAVE_ERR_H)
161 add_definitions(-DHAVE_ERR_H) 160 add_definitions(-DHAVE_ERR_H)
162endif() 161endif()
163 162
163if("${CMAKE_C_COMPILER_ABI}" STREQUAL "ELF" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND ENABLE_ASM)
164 set(HOST_ASM_ELF_X86_64 true)
165endif()
166
167if(APPLE AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND ENABLE_ASM)
168 set(HOST_ASM_MACOSX_X86_64 true)
169endif()
170
164set(OPENSSL_LIBS ssl crypto) 171set(OPENSSL_LIBS ssl crypto)
165if(CMAKE_HOST_WIN32) 172if(CMAKE_HOST_WIN32)
166 set(OPENSSL_LIBS ${OPENSSL_LIBS} ws2_32) 173 set(OPENSSL_LIBS ${OPENSSL_LIBS} ws2_32)
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 0e44da7..ea84eb1 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -8,16 +8,107 @@ include_directories(
8 modes 8 modes
9) 9)
10 10
11if(HOST_ASM_ELF_X86_64)
12 set(
13 ASM_X86_64_ELF_SRC
14 aes/aes-elf-x86_64.s
15 aes/bsaes-elf-x86_64.s
16 aes/vpaes-elf-x86_64.s
17 aes/aesni-elf-x86_64.s
18 aes/aesni-sha1-elf-x86_64.s
19 bn/modexp512-elf-x86_64.s
20 bn/mont-elf-x86_64.s
21 bn/mont5-elf-x86_64.s
22 bn/gf2m-elf-x86_64.s
23 camellia/cmll-elf-x86_64.s
24 md5/md5-elf-x86_64.s
25 modes/ghash-elf-x86_64.s
26 rc4/rc4-elf-x86_64.s
27 rc4/rc4-md5-elf-x86_64.s
28 sha/sha1-elf-x86_64.s
29 sha/sha256-elf-x86_64.S
30 sha/sha512-elf-x86_64.S
31 whrlpool/wp-elf-x86_64.s
32 cpuid-elf-x86_64.S
33 )
34 add_definitions(-DAES_ASM)
35 add_definitions(-DBSAES_ASM)
36 add_definitions(-DVPAES_ASM)
37 add_definitions(-DOPENSSL_IA32_SSE2)
38 add_definitions(-DOPENSSL_BN_ASM_MONT)
39 add_definitions(-DOPENSSL_BN_ASM_MONT5)
40 add_definitions(-DOPENSSL_BN_ASM_GF2m)
41 add_definitions(-DMD5_ASM)
42 add_definitions(-DGHASH_ASM)
43 add_definitions(-DRSA_ASM)
44 add_definitions(-DSHA1_ASM)
45 add_definitions(-DSHA256_ASM)
46 add_definitions(-DSHA512_ASM)
47 add_definitions(-DWHIRLPOOL_ASM)
48 add_definitions(-DOPENSSL_CPUID_OBJ)
49 set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_ELF_SRC})
50 set_property(SOURCE ${ASM_X86_64_ELF_SRC} PROPERTY LANGUAGE C)
51endif()
52
53if(HOST_ASM_MACOSX_X86_64)
54 set(
55 ASM_X86_64_MACOSX_SRC
56 aes/aes-macosx-x86_64.s
57 aes/bsaes-macosx-x86_64.s
58 aes/vpaes-macosx-x86_64.s
59 aes/aesni-macosx-x86_64.s
60 aes/aesni-sha1-macosx-x86_64.s
61 bn/modexp512-macosx-x86_64.s
62 bn/mont-macosx-x86_64.s
63 bn/mont5-macosx-x86_64.s
64 bn/gf2m-macosx-x86_64.s
65 camellia/cmll-macosx-x86_64.s
66 md5/md5-macosx-x86_64.s
67 modes/ghash-macosx-x86_64.s
68 rc4/rc4-macosx-x86_64.s
69 rc4/rc4-md5-macosx-x86_64.s
70 sha/sha1-macosx-x86_64.s
71 sha/sha256-macosx-x86_64.S
72 sha/sha512-macosx-x86_64.S
73 whrlpool/wp-macosx-x86_64.s
74 cpuid-macosx-x86_64.S
75 )
76 add_definitions(-DAES_ASM)
77 add_definitions(-DBSAES_ASM)
78 add_definitions(-DVPAES_ASM)
79 add_definitions(-DOPENSSL_IA32_SSE2)
80 add_definitions(-DOPENSSL_BN_ASM_MONT)
81 add_definitions(-DOPENSSL_BN_ASM_MONT5)
82 add_definitions(-DOPENSSL_BN_ASM_GF2m)
83 add_definitions(-DMD5_ASM)
84 add_definitions(-DGHASH_ASM)
85 add_definitions(-DRSA_ASM)
86 add_definitions(-DSHA1_ASM)
87 add_definitions(-DSHA256_ASM)
88 add_definitions(-DSHA512_ASM)
89 add_definitions(-DWHIRLPOOL_ASM)
90 add_definitions(-DOPENSSL_CPUID_OBJ)
91 set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_MACOSX_SRC})
92 set_property(SOURCE ${ASM_X86_64_MACOSX_SRC} PROPERTY LANGUAGE C)
93endif()
94
95if((NOT HOST_ASM_ELF_X86_64) AND (NOT HOST_ASM_MACOSX_X86_64))
96 set(
97 CRYPTO_SRC
98 ${CRYPTO_SRC}
99 aes/aes_cbc.c
100 aes/aes_core.c
101 camellia/camellia.c
102 camellia/cmll_cbc.c
103 rc4/rc4_enc.c
104 rc4/rc4_skey.c
105 whrlpool/wp_block.c
106 )
107endif()
108
11set( 109set(
12 CRYPTO_SRC 110 CRYPTO_SRC
13 111 ${CRYPTO_SRC}
14 aes/aes_cbc.c
15 aes/aes_core.c
16 camellia/camellia.c
17 camellia/cmll_cbc.c
18 rc4/rc4_enc.c
19 rc4/rc4_skey.c
20 whrlpool/wp_block.c
21 cpt_err.c 112 cpt_err.c
22 cryptlib.c 113 cryptlib.c
23 cversion.c 114 cversion.c
@@ -637,6 +728,14 @@ if(NOT HAVE_TIMINGSAFE_MEMCMP)
637 set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c) 728 set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c)
638endif() 729endif()
639 730
731if(NOT ENABLE_ASM)
732 add_definitions(-DOPENSSL_NO_ASM)
733else()
734 if(CMAKE_HOST_WIN32)
735 add_definitions(-DOPENSSL_NO_ASM)
736 endif()
737endif()
738
640if (BUILD_SHARED) 739if (BUILD_SHARED)
641 add_library(crypto-objects OBJECT ${CRYPTO_SRC}) 740 add_library(crypto-objects OBJECT ${CRYPTO_SRC})
642 add_library(crypto STATIC $<TARGET_OBJECTS:crypto-objects>) 741 add_library(crypto STATIC $<TARGET_OBJECTS:crypto-objects>)