diff --git a/src/secp256k1/CMakeLists.txt b/src/secp256k1/CMakeLists.txt --- a/src/secp256k1/CMakeLists.txt +++ b/src/secp256k1/CMakeLists.txt @@ -67,14 +67,19 @@ endif() # We check if amd64 asm is supported. -check_c_source_compiles(" - #include - int main() { - uint64_t a = 11, tmp; - __asm__ __volatile__(\"movq \$0x100000000,%1; mulq %%rsi\" : \"+a\"(a) : \"S\"(tmp) : \"cc\", \"%rdx\"); - return 0; - } -" USE_ASM_X86_64) +option(SECP256K1_USE_ASM "Use assembly if available" ON) +if($SECP256K1_USE_ASM) + check_c_source_compiles(" + #include + int main() { + uint64_t a = 11, tmp; + __asm__ __volatile__(\"movq \$0x100000000,%1; mulq %%rsi\" : \"+a\"(a) : \"S\"(tmp) : \"cc\", \"%rdx\"); + return 0; + } + " USE_ASM_X86_64) +else() + set(USE_ASM_X86_64 0) +endif() # We make sure __int128 is defined include(CheckTypeSize) diff --git a/src/secp256k1/travis/build_autotools.sh b/src/secp256k1/travis/build_autotools.sh --- a/src/secp256k1/travis/build_autotools.sh +++ b/src/secp256k1/travis/build_autotools.sh @@ -22,6 +22,7 @@ --enable-endomorphism=$ENDOMORPHISM \ --with-field=$FIELD \ --with-bignum=$BIGNUM \ + --with-asm=$ASM \ --with-scalar=$SCALAR \ --enable-ecmult-static-precomputation=$STATICPRECOMPUTATION \ --enable-module-ecdh=$ECDH \ diff --git a/src/secp256k1/travis/build_cmake.sh b/src/secp256k1/travis/build_cmake.sh --- a/src/secp256k1/travis/build_cmake.sh +++ b/src/secp256k1/travis/build_cmake.sh @@ -24,7 +24,7 @@ -DSECP256K1_ENABLE_JNI=$JNI \ -DSECP256K1_ENABLE_ENDOMORPHISM=$ENDOMORPHISM \ -DSECP256K1_ENABLE_BIGNUM=$BIGNUM \ - -DUSE_ASM_X86_64=$ASM \ + -DSECP256K1_USE_ASM=$ASM \ -DUSE_FIELD=$FIELD \ -DUSE_SCALAR=$SCALAR \ $CMAKE_EXTRA_FLAGS