aboutsummaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorkinichiro <kinichiro.inoguchi@gmail.com>2016-04-08 15:09:07 +0900
committerkinichiro <kinichiro.inoguchi@gmail.com>2016-04-08 15:09:07 +0900
commite1f8a1e160be5cda14986e75a00b7d5f5ca87225 (patch)
treedb0d454b3c2890e13427cdcb767cc81cd9dc87f4 /crypto
parent8131b377bffdacb8789c78ef31160b3bf4ee054b (diff)
downloadportable-e1f8a1e160be5cda14986e75a00b7d5f5ca87225.tar.gz
portable-e1f8a1e160be5cda14986e75a00b7d5f5ca87225.tar.bz2
portable-e1f8a1e160be5cda14986e75a00b7d5f5ca87225.zip
modify cmake to build ASM
- add functionality compiling ASM with cmake - to enable ASM, `cmake -DENABLE_ASM=on ..`
Diffstat (limited to 'crypto')
-rw-r--r--crypto/CMakeLists.txt115
1 files changed, 107 insertions, 8 deletions
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>)