Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 31 additions & 23 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,23 @@ env:
- FIELD=auto BIGNUM=auto SCALAR=auto ENDOMORPHISM=no STATICPRECOMPUTATION=yes ASM=no BUILD=check EXTRAFLAGS= HOST= ECDH=no RECOVERY=no EXPERIMENTAL=no JNI=no
- GUAVA_URL=https://search.maven.org/remotecontent?filepath=com/google/guava/guava/18.0/guava-18.0.jar GUAVA_JAR=src/java/guava/guava-18.0.jar
matrix:
- SCALAR=32bit RECOVERY=yes
- SCALAR=32bit FIELD=32bit ECDH=yes EXPERIMENTAL=yes
- SCALAR=64bit
- FIELD=64bit RECOVERY=yes
- FIELD=64bit ENDOMORPHISM=yes
- FIELD=64bit ENDOMORPHISM=yes ECDH=yes EXPERIMENTAL=yes
- FIELD=64bit ASM=x86_64
- FIELD=64bit ENDOMORPHISM=yes ASM=x86_64
- FIELD=32bit ENDOMORPHISM=yes
- BIGNUM=no
- BIGNUM=no ENDOMORPHISM=yes RECOVERY=yes EXPERIMENTAL=yes
- BIGNUM=no STATICPRECOMPUTATION=no
- BUILD=distcheck
- EXTRAFLAGS=CPPFLAGS=-DDETERMINISTIC
- EXTRAFLAGS=CFLAGS=-O0
- BUILD=check-java JNI=yes ECDH=yes EXPERIMENTAL=yes
# - SCALAR=32bit RECOVERY=yes
# - SCALAR=32bit FIELD=32bit ECDH=yes EXPERIMENTAL=yes
# - SCALAR=64bit
# - FIELD=64bit RECOVERY=yes
# - FIELD=64bit ENDOMORPHISM=yes
# - FIELD=64bit ENDOMORPHISM=yes ECDH=yes EXPERIMENTAL=yes
# - FIELD=64bit ASM=x86_64
# - FIELD=64bit ENDOMORPHISM=yes ASM=x86_64
# - FIELD=32bit ENDOMORPHISM=yes
# - BIGNUM=no
# - BIGNUM=no ENDOMORPHISM=yes RECOVERY=yes EXPERIMENTAL=yes
# - BIGNUM=no STATICPRECOMPUTATION=no
# - BUILD=distcheck
# - EXTRAFLAGS=CPPFLAGS=-DDETERMINISTIC
# - EXTRAFLAGS=CFLAGS=-O0
# - BUILD=check-java JNI=yes ECDH=yes EXPERIMENTAL=yes
- CMAKE=yes
matrix:
fast_finish: true
include:
Expand Down Expand Up @@ -59,11 +60,18 @@ matrix:
packages:
- gcc-multilib
- libgmp-dev:i386
before_install: mkdir -p `dirname $GUAVA_JAR`
install: if [ ! -f $GUAVA_JAR ]; then wget $GUAVA_URL -O $GUAVA_JAR; fi
before_script: ./autogen.sh
script:
- if [ -n "$HOST" ]; then export USE_HOST="--host=$HOST"; fi
- if [ "x$HOST" = "xi686-linux-gnu" ]; then export CC="$CC -m32"; fi
- ./configure --enable-experimental=$EXPERIMENTAL --enable-endomorphism=$ENDOMORPHISM --with-field=$FIELD --with-bignum=$BIGNUM --with-scalar=$SCALAR --enable-ecmult-static-precomputation=$STATICPRECOMPUTATION --enable-module-ecdh=$ECDH --enable-module-recovery=$RECOVERY --enable-jni=$JNI $EXTRAFLAGS $USE_HOST && make -j2 $BUILD
#before_install: mkdir -p `dirname $GUAVA_JAR`
#install: if [ ! -f $GUAVA_JAR ]; then wget $GUAVA_URL -O $GUAVA_JAR; fi
#before_script: if [ ! "$CMAKE" ]; ./autogen.sh; fi
#script:
# - if [ -n "$HOST" ]; then export USE_HOST="--host=$HOST"; fi
# - if [ "x$HOST" = "xi686-linux-gnu" ]; then export CC="$CC -m32"; fi
# - ./configure --enable-experimental=$EXPERIMENTAL --enable-endomorphism=$ENDOMORPHISM --with-field=$FIELD --with-bignum=$BIGNUM --with-scalar=$SCALAR --enable-ecmult-static-precomputation=$STATICPRECOMPUTATION --enable-module-ecdh=$ECDH --enable-module-recovery=$RECOVERY --enable-jni=$JNI $EXTRAFLAGS $USE_HOST && make -j2 $BUILD
os: linux

script: |
mkdir build
cd build
cmake ..
make

42 changes: 42 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
cmake_minimum_required(VERSION 3.5)

project(secp256k1 LANGUAGES C)

set(arch64bit OFF)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(arch64bit ON)
endif()

option(SECP256K1_USE_FIELD_5X52 "Use 5x52 field implementation instead of 10x26" ${arch64bit})

option(SECP256K1_USE_GMP "Use GMP library instead of built-in implementations" OFF)

add_subdirectory(src)


#target_include_directories(secp256k1 PUBLIC . ./src PRIVATE ${GMP_INCLUDE_DIR})
#target_compile_definitions(secp256k1
# PUBLIC -DUSE_NUM_NONE=1 -DUSE_FIELD_5X52=1 -DUSE_FIELD_INV_BUILTIN=1 -DUSE_SCALAR_4X64=1 -DUSE_SCALAR_INV_BUILTIN=1 -DHAVE___INT128=1 -DVERIFY=1
# PRIVATE -DENABLE_MODULE_ECDH -DENABLE_MODULE_RECOVERY -DENABLE_MODULE_SCHNORR
#)
#
#add_executable(tests src/tests.c)
#target_link_libraries(tests secp256k1)
#
#add_executable(bench_ecdh src/bench_ecdh.c)
#target_link_libraries(bench_ecdh secp256k1)
#
#add_executable(bench_internal src/bench_internal.c)
#target_link_libraries(bench_internal secp256k1)
#
#add_executable(bench_recover src/bench_recover.c)
#target_link_libraries(bench_recover secp256k1)
#
#add_executable(bench_schnorr_verify src/bench_schnorr_verify.c)
#target_link_libraries(bench_schnorr_verify secp256k1)
#
#add_executable(bench_sign src/bench_sign.c)
#target_link_libraries(bench_sign secp256k1)
#
#add_executable(bench_verify src/bench_verify.c)
#target_link_libraries(bench_verify secp256k1)
28 changes: 28 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
include(CheckTypeSize)

add_library(
secp256k1
secp256k1.c
)

target_include_directories(secp256k1 PRIVATE ${PROJECT_SOURCE_DIR})

check_type_size(__int128 have_int128 BUILTIN_TYPES_ONLY)
if(have_int128)
target_compile_definitions(secp256k1 PRIVATE HAVE___INT128 USE_SCALAR_4X64)
else()
target_compile_definitions(secp256k1 PRIVATE USE_SCALAR_8X32)
endif()


if(SECP256K1_USE_GMP)
target_compile_definitions(secp256k1 PRIVATE USE_NUM_GMP USE_FIELD_INV_NUM USE_SCALAR_INV_NUM)
else()
target_compile_definitions(secp256k1 PRIVATE USE_NUM_NONE USE_FIELD_INV_BUILTIN USE_SCALAR_INV_BUILTIN)
endif()

if(SECP256K1_USE_FIELD_5X52)
target_compile_definitions(secp256k1 PRIVATE USE_FIELD_5X52)
else()
target_compile_definitions(secp256k1 PRIVATE USE_FIELD_10X26)
endif()