diff --git a/CMakeLists.txt b/CMakeLists.txt index af287a4..a0b0599 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -289,7 +289,7 @@ if(ENABLE_ASM) endif() elseif(APPLE AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") set(HOST_ASM_MACOSX_X86_64 true) - elseif(MSVC AND "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "AMD64") + elseif(MSVC AND "${CMAKE_GENERATOR}" MATCHES "Win64") # XXX Disabled for now, CMake's MASM support seems to either never # build supply ASM or build it with the C compiler in a mode where it # does not parse correctly. It might be easier to get NASM support working. diff --git a/appveyor.yml b/appveyor.yml index 790db86..8ac2045 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -34,7 +34,7 @@ before_build: - bash autogen.sh - mkdir build - cd build - - cmake .. -G "%GENERATOR%" -DBUILD_SHARED_LIBS=%SHARED_LIBS% + - cmake .. -G "%GENERATOR%" -DBUILD_SHARED_LIBS=%SHARED_LIBS% -DCMAKE_INSTALL_PREFIX=../local build_script: - cmake --build . --config %CONFIG% diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index e1b9287..4c902ad 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -920,7 +920,11 @@ endif() if(NOT ENABLE_ASM) add_definitions(-DOPENSSL_NO_ASM) else() - if(WIN32) + if(MSVC) + if(NOT "${CMAKE_GENERATOR}" MATCHES "Win64") + add_definitions(-DOPENSSL_NO_ASM) + endif() + elseif(WIN32) add_definitions(-DOPENSSL_NO_ASM) endif() endif() diff --git a/update.sh b/update.sh index 99a293a..d1fe017 100755 --- a/update.sh +++ b/update.sh @@ -168,7 +168,12 @@ gen_asm_stdout() { #endif EOF if [ $1 = "masm" ]; then - cpp -I./crypto $3.tmp > $3 + cpp -I./crypto $3.tmp \ + | sed -e 's/^#/;/' \ + | sed -e 's/|/OR/g' \ + | sed -e 's/~/NOT/g' \ + | sed -e 's/1 << \([0-9]*\)/1 SHL \1/g' \ + > $3 else $MV $3.tmp $3 fi @@ -181,7 +186,12 @@ gen_asm() { #endif EOF if [ $1 = "masm" ]; then - cpp -I./crypto $3.tmp > $3 + cpp -I./crypto $3.tmp \ + | sed -e 's/^#/;/' \ + | sed -e 's/|/OR/g' \ + | sed -e 's/~/NOT/g' \ + | sed -e 's/1 << \([0-9]*\)/1 SHL \1/g' \ + > $3 else $MV $3.tmp $3 fi