modify cmake to build ASM
- add functionality compiling ASM with cmake - to enable ASM, `cmake -DENABLE_ASM=on ..`
This commit is contained in:
parent
8131b377bf
commit
e1f8a1e160
@ -35,7 +35,6 @@ endif()
|
|||||||
|
|
||||||
add_definitions(-DLIBRESSL_INTERNAL)
|
add_definitions(-DLIBRESSL_INTERNAL)
|
||||||
add_definitions(-DOPENSSL_NO_HW_PADLOCK)
|
add_definitions(-DOPENSSL_NO_HW_PADLOCK)
|
||||||
add_definitions(-DOPENSSL_NO_ASM)
|
|
||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE true)
|
set(CMAKE_POSITION_INDEPENDENT_CODE true)
|
||||||
|
|
||||||
@ -161,6 +160,14 @@ if(HAVE_ERR_H)
|
|||||||
add_definitions(-DHAVE_ERR_H)
|
add_definitions(-DHAVE_ERR_H)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if("${CMAKE_C_COMPILER_ABI}" STREQUAL "ELF" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND ENABLE_ASM)
|
||||||
|
set(HOST_ASM_ELF_X86_64 true)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(APPLE AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND ENABLE_ASM)
|
||||||
|
set(HOST_ASM_MACOSX_X86_64 true)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(OPENSSL_LIBS ssl crypto)
|
set(OPENSSL_LIBS ssl crypto)
|
||||||
if(CMAKE_HOST_WIN32)
|
if(CMAKE_HOST_WIN32)
|
||||||
set(OPENSSL_LIBS ${OPENSSL_LIBS} ws2_32)
|
set(OPENSSL_LIBS ${OPENSSL_LIBS} ws2_32)
|
||||||
|
@ -8,16 +8,107 @@ include_directories(
|
|||||||
modes
|
modes
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(HOST_ASM_ELF_X86_64)
|
||||||
|
set(
|
||||||
|
ASM_X86_64_ELF_SRC
|
||||||
|
aes/aes-elf-x86_64.s
|
||||||
|
aes/bsaes-elf-x86_64.s
|
||||||
|
aes/vpaes-elf-x86_64.s
|
||||||
|
aes/aesni-elf-x86_64.s
|
||||||
|
aes/aesni-sha1-elf-x86_64.s
|
||||||
|
bn/modexp512-elf-x86_64.s
|
||||||
|
bn/mont-elf-x86_64.s
|
||||||
|
bn/mont5-elf-x86_64.s
|
||||||
|
bn/gf2m-elf-x86_64.s
|
||||||
|
camellia/cmll-elf-x86_64.s
|
||||||
|
md5/md5-elf-x86_64.s
|
||||||
|
modes/ghash-elf-x86_64.s
|
||||||
|
rc4/rc4-elf-x86_64.s
|
||||||
|
rc4/rc4-md5-elf-x86_64.s
|
||||||
|
sha/sha1-elf-x86_64.s
|
||||||
|
sha/sha256-elf-x86_64.S
|
||||||
|
sha/sha512-elf-x86_64.S
|
||||||
|
whrlpool/wp-elf-x86_64.s
|
||||||
|
cpuid-elf-x86_64.S
|
||||||
|
)
|
||||||
|
add_definitions(-DAES_ASM)
|
||||||
|
add_definitions(-DBSAES_ASM)
|
||||||
|
add_definitions(-DVPAES_ASM)
|
||||||
|
add_definitions(-DOPENSSL_IA32_SSE2)
|
||||||
|
add_definitions(-DOPENSSL_BN_ASM_MONT)
|
||||||
|
add_definitions(-DOPENSSL_BN_ASM_MONT5)
|
||||||
|
add_definitions(-DOPENSSL_BN_ASM_GF2m)
|
||||||
|
add_definitions(-DMD5_ASM)
|
||||||
|
add_definitions(-DGHASH_ASM)
|
||||||
|
add_definitions(-DRSA_ASM)
|
||||||
|
add_definitions(-DSHA1_ASM)
|
||||||
|
add_definitions(-DSHA256_ASM)
|
||||||
|
add_definitions(-DSHA512_ASM)
|
||||||
|
add_definitions(-DWHIRLPOOL_ASM)
|
||||||
|
add_definitions(-DOPENSSL_CPUID_OBJ)
|
||||||
|
set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_ELF_SRC})
|
||||||
|
set_property(SOURCE ${ASM_X86_64_ELF_SRC} PROPERTY LANGUAGE C)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(HOST_ASM_MACOSX_X86_64)
|
||||||
|
set(
|
||||||
|
ASM_X86_64_MACOSX_SRC
|
||||||
|
aes/aes-macosx-x86_64.s
|
||||||
|
aes/bsaes-macosx-x86_64.s
|
||||||
|
aes/vpaes-macosx-x86_64.s
|
||||||
|
aes/aesni-macosx-x86_64.s
|
||||||
|
aes/aesni-sha1-macosx-x86_64.s
|
||||||
|
bn/modexp512-macosx-x86_64.s
|
||||||
|
bn/mont-macosx-x86_64.s
|
||||||
|
bn/mont5-macosx-x86_64.s
|
||||||
|
bn/gf2m-macosx-x86_64.s
|
||||||
|
camellia/cmll-macosx-x86_64.s
|
||||||
|
md5/md5-macosx-x86_64.s
|
||||||
|
modes/ghash-macosx-x86_64.s
|
||||||
|
rc4/rc4-macosx-x86_64.s
|
||||||
|
rc4/rc4-md5-macosx-x86_64.s
|
||||||
|
sha/sha1-macosx-x86_64.s
|
||||||
|
sha/sha256-macosx-x86_64.S
|
||||||
|
sha/sha512-macosx-x86_64.S
|
||||||
|
whrlpool/wp-macosx-x86_64.s
|
||||||
|
cpuid-macosx-x86_64.S
|
||||||
|
)
|
||||||
|
add_definitions(-DAES_ASM)
|
||||||
|
add_definitions(-DBSAES_ASM)
|
||||||
|
add_definitions(-DVPAES_ASM)
|
||||||
|
add_definitions(-DOPENSSL_IA32_SSE2)
|
||||||
|
add_definitions(-DOPENSSL_BN_ASM_MONT)
|
||||||
|
add_definitions(-DOPENSSL_BN_ASM_MONT5)
|
||||||
|
add_definitions(-DOPENSSL_BN_ASM_GF2m)
|
||||||
|
add_definitions(-DMD5_ASM)
|
||||||
|
add_definitions(-DGHASH_ASM)
|
||||||
|
add_definitions(-DRSA_ASM)
|
||||||
|
add_definitions(-DSHA1_ASM)
|
||||||
|
add_definitions(-DSHA256_ASM)
|
||||||
|
add_definitions(-DSHA512_ASM)
|
||||||
|
add_definitions(-DWHIRLPOOL_ASM)
|
||||||
|
add_definitions(-DOPENSSL_CPUID_OBJ)
|
||||||
|
set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_MACOSX_SRC})
|
||||||
|
set_property(SOURCE ${ASM_X86_64_MACOSX_SRC} PROPERTY LANGUAGE C)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if((NOT HOST_ASM_ELF_X86_64) AND (NOT HOST_ASM_MACOSX_X86_64))
|
||||||
|
set(
|
||||||
|
CRYPTO_SRC
|
||||||
|
${CRYPTO_SRC}
|
||||||
|
aes/aes_cbc.c
|
||||||
|
aes/aes_core.c
|
||||||
|
camellia/camellia.c
|
||||||
|
camellia/cmll_cbc.c
|
||||||
|
rc4/rc4_enc.c
|
||||||
|
rc4/rc4_skey.c
|
||||||
|
whrlpool/wp_block.c
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(
|
set(
|
||||||
CRYPTO_SRC
|
CRYPTO_SRC
|
||||||
|
${CRYPTO_SRC}
|
||||||
aes/aes_cbc.c
|
|
||||||
aes/aes_core.c
|
|
||||||
camellia/camellia.c
|
|
||||||
camellia/cmll_cbc.c
|
|
||||||
rc4/rc4_enc.c
|
|
||||||
rc4/rc4_skey.c
|
|
||||||
whrlpool/wp_block.c
|
|
||||||
cpt_err.c
|
cpt_err.c
|
||||||
cryptlib.c
|
cryptlib.c
|
||||||
cversion.c
|
cversion.c
|
||||||
@ -637,6 +728,14 @@ if(NOT HAVE_TIMINGSAFE_MEMCMP)
|
|||||||
set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c)
|
set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT ENABLE_ASM)
|
||||||
|
add_definitions(-DOPENSSL_NO_ASM)
|
||||||
|
else()
|
||||||
|
if(CMAKE_HOST_WIN32)
|
||||||
|
add_definitions(-DOPENSSL_NO_ASM)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if (BUILD_SHARED)
|
if (BUILD_SHARED)
|
||||||
add_library(crypto-objects OBJECT ${CRYPTO_SRC})
|
add_library(crypto-objects OBJECT ${CRYPTO_SRC})
|
||||||
add_library(crypto STATIC $<TARGET_OBJECTS:crypto-objects>)
|
add_library(crypto STATIC $<TARGET_OBJECTS:crypto-objects>)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user