diff options
author | Martin Baulig <mabaul@microsoft.com> | 2018-10-09 19:39:21 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-09 19:39:21 +0300 |
commit | 134e5e64b336574ab07dd8912724378594b7680c (patch) | |
tree | e0b9cc5dd6e3311fa5297df25375eaa2ac949d55 /crypto | |
parent | 8f8db5fac5bf94a82114bd1dc04912fc160f362a (diff) | |
parent | 8201e5607cc52f6fdc0cb2c1b596c360bdaf5bd9 (diff) |
Merge pull request #13 from lateralusX/lateralusX/fix-no-asm-support
Reduce build dependencies when building with OPENSSL_NO_ASM.
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/CMakeLists.txt | 104 |
1 files changed, 55 insertions, 49 deletions
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 94e47ea1..f034e9e5 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -1,59 +1,65 @@ include_directories(../include) -if(APPLE) - if (${ARCH} STREQUAL "x86") - set(PERLASM_FLAGS "-fPIC -DOPENSSL_IA32_SSE2") - endif() - set(PERLASM_STYLE macosx) - set(ASM_EXT S) - enable_language(ASM) -elseif(UNIX) - if (${ARCH} STREQUAL "aarch64") - # The "armx" Perl scripts look for "64" in the style argument - # in order to decide whether to generate 32- or 64-bit asm. - set(PERLASM_STYLE linux64) - elseif (${ARCH} STREQUAL "arm") - set(PERLASM_STYLE linux32) - elseif (${ARCH} STREQUAL "x86") - set(PERLASM_FLAGS "-fPIC -DOPENSSL_IA32_SSE2") - set(PERLASM_STYLE elf) - else() - set(PERLASM_STYLE elf) - endif() - set(ASM_EXT S) - enable_language(ASM) - set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack") -else() - if (CMAKE_CL_64) - message("Using nasm") - set(PERLASM_STYLE nasm) +if(NOT OPENSSL_NO_ASM) + if(APPLE) + if (${ARCH} STREQUAL "x86") + set(PERLASM_FLAGS "-fPIC -DOPENSSL_IA32_SSE2") + endif() + set(PERLASM_STYLE macosx) + set(ASM_EXT S) + enable_language(ASM) + elseif(UNIX) + if (${ARCH} STREQUAL "aarch64") + # The "armx" Perl scripts look for "64" in the style argument + # in order to decide whether to generate 32- or 64-bit asm. + set(PERLASM_STYLE linux64) + elseif (${ARCH} STREQUAL "arm") + set(PERLASM_STYLE linux32) + elseif (${ARCH} STREQUAL "x86") + set(PERLASM_FLAGS "-fPIC -DOPENSSL_IA32_SSE2") + set(PERLASM_STYLE elf) + else() + set(PERLASM_STYLE elf) + endif() + set(ASM_EXT S) + enable_language(ASM) + set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack") else() - message("Using win32n") - set(PERLASM_STYLE win32n) - set(PERLASM_FLAGS "-DOPENSSL_IA32_SSE2") + if (CMAKE_CL_64) + message("Using nasm") + set(PERLASM_STYLE nasm) + else() + message("Using win32n") + set(PERLASM_STYLE win32n) + set(PERLASM_FLAGS "-DOPENSSL_IA32_SSE2") + endif() + + # On Windows, we use the NASM output, specifically built with Yasm. + set(ASM_EXT asm) + enable_language(ASM_NASM) endif() - # On Windows, we use the NASM output, specifically built with Yasm. - set(ASM_EXT asm) - enable_language(ASM_NASM) + function(perlasm dest src) + add_custom_command( + OUTPUT ${dest} + COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${src} ${PERLASM_STYLE} ${PERLASM_FLAGS} ${ARGN} > ${dest} + DEPENDS + ${src} + ${PROJECT_SOURCE_DIR}/crypto/perlasm/arm-xlate.pl + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86_64-xlate.pl + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86asm.pl + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86gas.pl + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86masm.pl + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86nasm.pl + WORKING_DIRECTORY . + ) + endfunction() +else() + function(perlasm dest src) + # Disabled since OPENSSL_NO_ASM has been defined. + endfunction() endif() -function(perlasm dest src) - add_custom_command( - OUTPUT ${dest} - COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${src} ${PERLASM_STYLE} ${PERLASM_FLAGS} ${ARGN} > ${dest} - DEPENDS - ${src} - ${PROJECT_SOURCE_DIR}/crypto/perlasm/arm-xlate.pl - ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86_64-xlate.pl - ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86asm.pl - ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86gas.pl - ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86masm.pl - ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86nasm.pl - WORKING_DIRECTORY . - ) -endfunction() - # Level 0.1 - depends on nothing outside this set. add_subdirectory(stack) add_subdirectory(lhash) |