2014-11-07 01:55:27 +13:00
|
|
|
ACLOCAL_AMFLAGS = -I build-aux/m4
|
2014-11-06 22:35:41 +13:00
|
|
|
|
2014-01-17 22:52:33 -05:00
|
|
|
lib_LTLIBRARIES = libsecp256k1.la
|
2014-12-16 22:23:17 -05:00
|
|
|
if USE_JNI
|
|
|
|
JNI_LIB = libsecp256k1_jni.la
|
|
|
|
noinst_LTLIBRARIES = $(JNI_LIB)
|
|
|
|
else
|
|
|
|
JNI_LIB =
|
|
|
|
endif
|
2014-01-17 22:52:33 -05:00
|
|
|
include_HEADERS = include/secp256k1.h
|
|
|
|
noinst_HEADERS =
|
2014-10-28 04:08:15 -07:00
|
|
|
noinst_HEADERS += src/scalar.h
|
2014-10-29 00:35:49 -07:00
|
|
|
noinst_HEADERS += src/scalar_4x64.h
|
|
|
|
noinst_HEADERS += src/scalar_8x32.h
|
2016-07-07 10:11:30 +00:00
|
|
|
noinst_HEADERS += src/scalar_low.h
|
2014-10-28 04:08:15 -07:00
|
|
|
noinst_HEADERS += src/scalar_impl.h
|
2014-10-29 00:35:49 -07:00
|
|
|
noinst_HEADERS += src/scalar_4x64_impl.h
|
|
|
|
noinst_HEADERS += src/scalar_8x32_impl.h
|
2016-07-07 10:11:30 +00:00
|
|
|
noinst_HEADERS += src/scalar_low_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/group.h
|
2014-03-07 01:11:01 +01:00
|
|
|
noinst_HEADERS += src/group_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/num_gmp.h
|
2014-03-07 01:11:01 +01:00
|
|
|
noinst_HEADERS += src/num_gmp_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/ecdsa.h
|
2014-03-07 01:11:01 +01:00
|
|
|
noinst_HEADERS += src/ecdsa_impl.h
|
2014-10-27 02:57:27 -07:00
|
|
|
noinst_HEADERS += src/eckey.h
|
|
|
|
noinst_HEADERS += src/eckey_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/ecmult.h
|
2014-03-07 01:11:01 +01:00
|
|
|
noinst_HEADERS += src/ecmult_impl.h
|
2015-05-13 17:31:47 -05:00
|
|
|
noinst_HEADERS += src/ecmult_const.h
|
|
|
|
noinst_HEADERS += src/ecmult_const_impl.h
|
2014-10-26 03:42:24 -07:00
|
|
|
noinst_HEADERS += src/ecmult_gen.h
|
|
|
|
noinst_HEADERS += src/ecmult_gen_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/num.h
|
2014-03-07 01:11:01 +01:00
|
|
|
noinst_HEADERS += src/num_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/field_10x26.h
|
2014-03-07 01:11:01 +01:00
|
|
|
noinst_HEADERS += src/field_10x26_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/field_5x52.h
|
2014-03-07 01:11:01 +01:00
|
|
|
noinst_HEADERS += src/field_5x52_impl.h
|
|
|
|
noinst_HEADERS += src/field_5x52_int128_impl.h
|
|
|
|
noinst_HEADERS += src/field_5x52_asm_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/java/org_bitcoin_NativeSecp256k1.h
|
2014-12-16 22:23:17 -05:00
|
|
|
noinst_HEADERS += src/java/org_bitcoin_Secp256k1Context.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/util.h
|
2014-11-12 15:59:26 -08:00
|
|
|
noinst_HEADERS += src/testrand.h
|
|
|
|
noinst_HEADERS += src/testrand_impl.h
|
2014-12-13 18:06:33 +01:00
|
|
|
noinst_HEADERS += src/hash.h
|
|
|
|
noinst_HEADERS += src/hash_impl.h
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_HEADERS += src/field.h
|
2014-03-07 01:11:01 +01:00
|
|
|
noinst_HEADERS += src/field_impl.h
|
2014-12-04 20:26:54 +01:00
|
|
|
noinst_HEADERS += src/bench.h
|
2015-10-14 17:43:20 +02:00
|
|
|
noinst_HEADERS += contrib/lax_der_parsing.h
|
2015-10-26 15:21:53 -05:00
|
|
|
noinst_HEADERS += contrib/lax_der_parsing.c
|
2015-10-21 04:02:30 +00:00
|
|
|
noinst_HEADERS += contrib/lax_der_privatekey_parsing.h
|
2015-10-26 15:21:53 -05:00
|
|
|
noinst_HEADERS += contrib/lax_der_privatekey_parsing.c
|
2014-01-17 22:52:33 -05:00
|
|
|
|
2014-12-24 12:12:37 +01:00
|
|
|
if USE_EXTERNAL_ASM
|
|
|
|
COMMON_LIB = libsecp256k1_common.la
|
|
|
|
noinst_LTLIBRARIES = $(COMMON_LIB)
|
|
|
|
else
|
|
|
|
COMMON_LIB =
|
|
|
|
endif
|
|
|
|
|
2014-05-20 20:59:11 -04:00
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
2014-05-07 06:10:08 +00:00
|
|
|
pkgconfig_DATA = libsecp256k1.pc
|
|
|
|
|
2014-12-24 12:12:37 +01:00
|
|
|
if USE_EXTERNAL_ASM
|
|
|
|
if USE_ASM_ARM
|
|
|
|
libsecp256k1_common_la_SOURCES = src/asm/field_10x26_arm.s
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2014-08-19 13:39:58 +02:00
|
|
|
libsecp256k1_la_SOURCES = src/secp256k1.c
|
2014-12-16 22:23:17 -05:00
|
|
|
libsecp256k1_la_CPPFLAGS = -DSECP256K1_BUILD -I$(top_srcdir)/include -I$(top_srcdir)/src $(SECP_INCLUDES)
|
2014-12-24 12:12:37 +01:00
|
|
|
libsecp256k1_la_LIBADD = $(JNI_LIB) $(SECP_LIBS) $(COMMON_LIB)
|
2014-10-26 09:40:55 +07:00
|
|
|
|
2014-12-16 22:23:17 -05:00
|
|
|
libsecp256k1_jni_la_SOURCES = src/java/org_bitcoin_NativeSecp256k1.c src/java/org_bitcoin_Secp256k1Context.c
|
|
|
|
libsecp256k1_jni_la_CPPFLAGS = -DSECP256K1_BUILD $(JNI_INCLUDES)
|
2014-08-19 13:39:58 +02:00
|
|
|
|
2014-01-17 22:52:33 -05:00
|
|
|
noinst_PROGRAMS =
|
|
|
|
if USE_BENCHMARK
|
2015-08-27 03:42:57 +02:00
|
|
|
noinst_PROGRAMS += bench_verify bench_sign bench_internal
|
2014-10-31 03:17:44 -07:00
|
|
|
bench_verify_SOURCES = src/bench_verify.c
|
2014-12-24 12:12:37 +01:00
|
|
|
bench_verify_LDADD = libsecp256k1.la $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB)
|
2014-10-31 08:23:34 -07:00
|
|
|
bench_sign_SOURCES = src/bench_sign.c
|
2014-12-24 12:12:37 +01:00
|
|
|
bench_sign_LDADD = libsecp256k1.la $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB)
|
2015-01-31 16:12:10 -04:00
|
|
|
bench_internal_SOURCES = src/bench_internal.c
|
2014-12-24 12:12:37 +01:00
|
|
|
bench_internal_LDADD = $(SECP_LIBS) $(COMMON_LIB)
|
2016-06-06 18:32:29 +00:00
|
|
|
bench_internal_CPPFLAGS = -DSECP256K1_BUILD $(SECP_INCLUDES)
|
2014-01-17 22:52:33 -05:00
|
|
|
endif
|
|
|
|
|
2015-09-17 18:54:52 -05:00
|
|
|
TESTS =
|
2014-01-17 22:52:33 -05:00
|
|
|
if USE_TESTS
|
|
|
|
noinst_PROGRAMS += tests
|
|
|
|
tests_SOURCES = src/tests.c
|
2016-11-26 20:34:15 +00:00
|
|
|
tests_CPPFLAGS = -DSECP256K1_BUILD -I$(top_srcdir)/src -I$(top_srcdir)/include $(SECP_INCLUDES) $(SECP_TEST_INCLUDES)
|
|
|
|
if !ENABLE_COVERAGE
|
|
|
|
tests_CPPFLAGS += -DVERIFY
|
|
|
|
endif
|
2014-12-24 12:12:37 +01:00
|
|
|
tests_LDADD = $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB)
|
2014-01-17 22:52:33 -05:00
|
|
|
tests_LDFLAGS = -static
|
2015-09-17 18:54:52 -05:00
|
|
|
TESTS += tests
|
|
|
|
endif
|
|
|
|
|
|
|
|
if USE_EXHAUSTIVE_TESTS
|
|
|
|
noinst_PROGRAMS += exhaustive_tests
|
|
|
|
exhaustive_tests_SOURCES = src/tests_exhaustive.c
|
2016-11-26 20:34:15 +00:00
|
|
|
exhaustive_tests_CPPFLAGS = -DSECP256K1_BUILD -I$(top_srcdir)/src $(SECP_INCLUDES)
|
|
|
|
if !ENABLE_COVERAGE
|
|
|
|
exhaustive_tests_CPPFLAGS += -DVERIFY
|
|
|
|
endif
|
2015-09-17 18:54:52 -05:00
|
|
|
exhaustive_tests_LDADD = $(SECP_LIBS)
|
|
|
|
exhaustive_tests_LDFLAGS = -static
|
|
|
|
TESTS += exhaustive_tests
|
2014-01-17 22:52:33 -05:00
|
|
|
endif
|
|
|
|
|
2014-12-16 22:23:17 -05:00
|
|
|
JAVAROOT=src/java
|
|
|
|
JAVAORG=org/bitcoin
|
|
|
|
JAVA_GUAVA=$(srcdir)/$(JAVAROOT)/guava/guava-18.0.jar
|
|
|
|
CLASSPATH_ENV=CLASSPATH=$(JAVA_GUAVA)
|
|
|
|
JAVA_FILES= \
|
|
|
|
$(JAVAROOT)/$(JAVAORG)/NativeSecp256k1.java \
|
|
|
|
$(JAVAROOT)/$(JAVAORG)/NativeSecp256k1Test.java \
|
|
|
|
$(JAVAROOT)/$(JAVAORG)/NativeSecp256k1Util.java \
|
|
|
|
$(JAVAROOT)/$(JAVAORG)/Secp256k1Context.java
|
|
|
|
|
|
|
|
if USE_JNI
|
|
|
|
|
|
|
|
$(JAVA_GUAVA):
|
|
|
|
@echo Guava is missing. Fetch it via: \
|
|
|
|
wget https://search.maven.org/remotecontent?filepath=com/google/guava/guava/18.0/guava-18.0.jar -O $(@)
|
|
|
|
@false
|
|
|
|
|
|
|
|
.stamp-java: $(JAVA_FILES)
|
|
|
|
@echo Compiling $^
|
|
|
|
$(AM_V_at)$(CLASSPATH_ENV) javac $^
|
|
|
|
@touch $@
|
|
|
|
|
|
|
|
if USE_TESTS
|
|
|
|
|
|
|
|
check-java: libsecp256k1.la $(JAVA_GUAVA) .stamp-java
|
|
|
|
$(AM_V_at)java -Djava.library.path="./:./src:./src/.libs:.libs/" -cp "$(JAVA_GUAVA):$(JAVAROOT)" $(JAVAORG)/NativeSecp256k1Test
|
|
|
|
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2015-05-19 17:32:35 -07:00
|
|
|
if USE_ECMULT_STATIC_PRECOMPUTATION
|
2015-11-16 16:40:12 -08:00
|
|
|
CPPFLAGS_FOR_BUILD +=-I$(top_srcdir)
|
2015-05-19 17:32:35 -07:00
|
|
|
CFLAGS_FOR_BUILD += -Wall -Wextra -Wno-unused-function
|
|
|
|
|
|
|
|
gen_context_OBJECTS = gen_context.o
|
2015-07-31 13:33:58 -04:00
|
|
|
gen_context_BIN = gen_context$(BUILD_EXEEXT)
|
2015-05-19 17:32:35 -07:00
|
|
|
gen_%.o: src/gen_%.c
|
|
|
|
$(CC_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) -c $< -o $@
|
|
|
|
|
2015-07-31 13:33:58 -04:00
|
|
|
$(gen_context_BIN): $(gen_context_OBJECTS)
|
2015-05-19 17:32:35 -07:00
|
|
|
$(CC_FOR_BUILD) $^ -o $@
|
|
|
|
|
2015-07-31 13:24:39 -04:00
|
|
|
$(libsecp256k1_la_OBJECTS): src/ecmult_static_context.h
|
|
|
|
$(tests_OBJECTS): src/ecmult_static_context.h
|
2015-08-31 22:36:31 -04:00
|
|
|
$(bench_internal_OBJECTS): src/ecmult_static_context.h
|
2015-05-19 17:32:35 -07:00
|
|
|
|
2015-07-31 13:33:58 -04:00
|
|
|
src/ecmult_static_context.h: $(gen_context_BIN)
|
|
|
|
./$(gen_context_BIN)
|
2015-07-16 00:05:32 +00:00
|
|
|
|
2014-12-16 22:23:17 -05:00
|
|
|
CLEANFILES = $(gen_context_BIN) src/ecmult_static_context.h $(JAVAROOT)/$(JAVAORG)/*.class .stamp-java
|
2015-05-19 17:32:35 -07:00
|
|
|
endif
|
|
|
|
|
2014-12-16 22:23:17 -05:00
|
|
|
EXTRA_DIST = autogen.sh src/gen_context.c src/basic-config.h $(JAVA_FILES)
|
2015-06-29 15:06:28 -05:00
|
|
|
|
|
|
|
if ENABLE_MODULE_ECDH
|
|
|
|
include src/modules/ecdh/Makefile.am.include
|
|
|
|
endif
|
2015-07-24 15:44:49 +02:00
|
|
|
|
2015-08-27 03:42:57 +02:00
|
|
|
if ENABLE_MODULE_RECOVERY
|
|
|
|
include src/modules/recovery/Makefile.am.include
|
|
|
|
endif
|