From e1f8a1e160be5cda14986e75a00b7d5f5ca87225 Mon Sep 17 00:00:00 2001 From: kinichiro Date: Fri, 8 Apr 2016 15:09:07 +0900 Subject: modify cmake to build ASM - add functionality compiling ASM with cmake - to enable ASM, `cmake -DENABLE_ASM=on ..` --- crypto/CMakeLists.txt | 115 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 107 insertions(+), 8 deletions(-) (limited to 'crypto') 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( 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( 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 + ${CRYPTO_SRC} cpt_err.c cryptlib.c cversion.c @@ -637,6 +728,14 @@ if(NOT HAVE_TIMINGSAFE_MEMCMP) set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c) 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) add_library(crypto-objects OBJECT ${CRYPTO_SRC}) add_library(crypto STATIC $) -- cgit v1.2.3-55-g6feb