1
1
ACLOCAL_AMFLAGS = -I build-aux/m4
2
2
3
3
lib_LTLIBRARIES = libsecp256k1.la
4
+ if USE_JNI
5
+ JNI_LIB = libsecp256k1_jni.la
6
+ noinst_LTLIBRARIES = $(JNI_LIB )
7
+ else
8
+ JNI_LIB =
9
+ endif
4
10
include_HEADERS = include/secp256k1.h
5
11
noinst_HEADERS =
6
12
noinst_HEADERS += src/scalar.h
7
13
noinst_HEADERS += src/scalar_4x64.h
8
14
noinst_HEADERS += src/scalar_8x32.h
15
+ noinst_HEADERS += src/scalar_low.h
9
16
noinst_HEADERS += src/scalar_impl.h
10
17
noinst_HEADERS += src/scalar_4x64_impl.h
11
18
noinst_HEADERS += src/scalar_8x32_impl.h
19
+ noinst_HEADERS += src/scalar_low_impl.h
12
20
noinst_HEADERS += src/group.h
13
21
noinst_HEADERS += src/group_impl.h
14
22
noinst_HEADERS += src/num_gmp.h
@@ -32,7 +40,10 @@ noinst_HEADERS += src/field_5x52_impl.h
32
40
noinst_HEADERS += src/field_5x52_int128_impl.h
33
41
noinst_HEADERS += src/field_5x52_asm_impl.h
34
42
noinst_HEADERS += src/java/org_bitcoin_NativeSecp256k1.h
43
+ noinst_HEADERS += src/java/org_bitcoin_Secp256k1Context.h
35
44
noinst_HEADERS += src/util.h
45
+ noinst_HEADERS += src/scratch.h
46
+ noinst_HEADERS += src/scratch_impl.h
36
47
noinst_HEADERS += src/testrand.h
37
48
noinst_HEADERS += src/testrand_impl.h
38
49
noinst_HEADERS += src/hash.h
@@ -45,33 +56,97 @@ noinst_HEADERS += contrib/lax_der_parsing.c
45
56
noinst_HEADERS += contrib/lax_der_privatekey_parsing.h
46
57
noinst_HEADERS += contrib/lax_der_privatekey_parsing.c
47
58
59
+ if USE_EXTERNAL_ASM
60
+ COMMON_LIB = libsecp256k1_common.la
61
+ noinst_LTLIBRARIES = $(COMMON_LIB )
62
+ else
63
+ COMMON_LIB =
64
+ endif
65
+
48
66
pkgconfigdir = $(libdir ) /pkgconfig
49
67
pkgconfig_DATA = libsecp256k1.pc
50
68
69
+ if USE_EXTERNAL_ASM
70
+ if USE_ASM_ARM
71
+ libsecp256k1_common_la_SOURCES = src/asm/field_10x26_arm.s
72
+ endif
73
+ endif
74
+
51
75
libsecp256k1_la_SOURCES = src/secp256k1.c
52
- libsecp256k1_la_CPPFLAGS = -I$(top_srcdir ) /include -I$(top_srcdir ) /src $(SECP_INCLUDES )
53
- libsecp256k1_la_LIBADD = $(SECP_LIBS )
76
+ libsecp256k1_la_CPPFLAGS = -DSECP256K1_BUILD - I$(top_srcdir ) /include -I$(top_srcdir ) /src $(SECP_INCLUDES )
77
+ libsecp256k1_la_LIBADD = $(JNI_LIB ) $( SECP_LIBS ) $( COMMON_LIB )
54
78
79
+ libsecp256k1_jni_la_SOURCES = src/java/org_bitcoin_NativeSecp256k1.c src/java/org_bitcoin_Secp256k1Context.c
80
+ libsecp256k1_jni_la_CPPFLAGS = -DSECP256K1_BUILD $(JNI_INCLUDES )
55
81
56
82
noinst_PROGRAMS =
57
83
if USE_BENCHMARK
58
- noinst_PROGRAMS += bench_verify bench_sign bench_internal
84
+ noinst_PROGRAMS += bench_verify bench_sign bench_internal bench_ecmult
59
85
bench_verify_SOURCES = src/bench_verify.c
60
- bench_verify_LDADD = libsecp256k1.la $(SECP_LIBS ) $(SECP_TEST_LIBS )
86
+ bench_verify_LDADD = libsecp256k1.la $(SECP_LIBS ) $(SECP_TEST_LIBS ) $( COMMON_LIB )
61
87
bench_sign_SOURCES = src/bench_sign.c
62
- bench_sign_LDADD = libsecp256k1.la $(SECP_LIBS ) $(SECP_TEST_LIBS )
88
+ bench_sign_LDADD = libsecp256k1.la $(SECP_LIBS ) $(SECP_TEST_LIBS ) $( COMMON_LIB )
63
89
bench_internal_SOURCES = src/bench_internal.c
64
- bench_internal_LDADD = $(SECP_LIBS )
65
- bench_internal_CPPFLAGS = $(SECP_INCLUDES )
90
+ bench_internal_LDADD = $(SECP_LIBS ) $(COMMON_LIB )
91
+ bench_internal_CPPFLAGS = -DSECP256K1_BUILD $(SECP_INCLUDES )
92
+ bench_ecmult_SOURCES = src/bench_ecmult.c
93
+ bench_ecmult_LDADD = $(SECP_LIBS ) $(COMMON_LIB )
94
+ bench_ecmult_CPPFLAGS = -DSECP256K1_BUILD $(SECP_INCLUDES )
66
95
endif
67
96
97
+ TESTS =
68
98
if USE_TESTS
69
99
noinst_PROGRAMS += tests
70
100
tests_SOURCES = src/tests.c
71
- tests_CPPFLAGS = -DVERIFY -I$(top_srcdir ) /src -I$(top_srcdir ) /include $(SECP_INCLUDES ) $(SECP_TEST_INCLUDES )
72
- tests_LDADD = $(SECP_LIBS ) $(SECP_TEST_LIBS )
101
+ tests_CPPFLAGS = -DSECP256K1_BUILD -I$(top_srcdir ) /src -I$(top_srcdir ) /include $(SECP_INCLUDES ) $(SECP_TEST_INCLUDES )
102
+ if !ENABLE_COVERAGE
103
+ tests_CPPFLAGS += -DVERIFY
104
+ endif
105
+ tests_LDADD = $(SECP_LIBS ) $(SECP_TEST_LIBS ) $(COMMON_LIB )
73
106
tests_LDFLAGS = -static
74
- TESTS = tests
107
+ TESTS += tests
108
+ endif
109
+
110
+ if USE_EXHAUSTIVE_TESTS
111
+ noinst_PROGRAMS += exhaustive_tests
112
+ exhaustive_tests_SOURCES = src/tests_exhaustive.c
113
+ exhaustive_tests_CPPFLAGS = -DSECP256K1_BUILD -I$(top_srcdir ) /src $(SECP_INCLUDES )
114
+ if !ENABLE_COVERAGE
115
+ exhaustive_tests_CPPFLAGS += -DVERIFY
116
+ endif
117
+ exhaustive_tests_LDADD = $(SECP_LIBS )
118
+ exhaustive_tests_LDFLAGS = -static
119
+ TESTS += exhaustive_tests
120
+ endif
121
+
122
+ JAVAROOT =src/java
123
+ JAVAORG =org/bitcoin
124
+ JAVA_GUAVA =$(srcdir ) /$(JAVAROOT ) /guava/guava-18.0.jar
125
+ CLASSPATH_ENV=CLASSPATH =$(JAVA_GUAVA )
126
+ JAVA_FILES = \
127
+ $(JAVAROOT ) /$(JAVAORG ) /NativeSecp256k1.java \
128
+ $(JAVAROOT ) /$(JAVAORG ) /NativeSecp256k1Test.java \
129
+ $(JAVAROOT ) /$(JAVAORG ) /NativeSecp256k1Util.java \
130
+ $(JAVAROOT ) /$(JAVAORG ) /Secp256k1Context.java
131
+
132
+ if USE_JNI
133
+
134
+ $(JAVA_GUAVA ) :
135
+ @echo Guava is missing. Fetch it via: \
136
+ wget https://search.maven.org/remotecontent? filepath=com/google/guava/guava/18.0/guava-18.0.jar -O $(@ )
137
+ @false
138
+
139
+ .stamp-java : $(JAVA_FILES )
140
+ @echo Compiling $^
141
+ $(AM_V_at )$(CLASSPATH_ENV ) javac $^
142
+ @touch $@
143
+
144
+ if USE_TESTS
145
+
146
+ check-java : libsecp256k1.la $(JAVA_GUAVA ) .stamp-java
147
+ $(AM_V_at ) java -Djava.library.path=" ./:./src:./src/.libs:.libs/" -cp " $( JAVA_GUAVA) :$( JAVAROOT) " $(JAVAORG ) /NativeSecp256k1Test
148
+
149
+ endif
75
150
endif
76
151
77
152
if USE_ECMULT_STATIC_PRECOMPUTATION
@@ -89,23 +164,20 @@ $(gen_context_BIN): $(gen_context_OBJECTS)
89
164
$(libsecp256k1_la_OBJECTS ) : src/ecmult_static_context.h
90
165
$(tests_OBJECTS ) : src/ecmult_static_context.h
91
166
$(bench_internal_OBJECTS ) : src/ecmult_static_context.h
167
+ $(bench_ecmult_OBJECTS ) : src/ecmult_static_context.h
92
168
93
169
src/ecmult_static_context.h : $(gen_context_BIN )
94
170
./$(gen_context_BIN )
95
171
96
- CLEANFILES = $(gen_context_BIN ) src/ecmult_static_context.h
172
+ CLEANFILES = $(gen_context_BIN ) src/ecmult_static_context.h $( JAVAROOT ) / $( JAVAORG ) /*.class .stamp-java
97
173
endif
98
174
99
- EXTRA_DIST = autogen.sh src/gen_context.c src/basic-config.h
175
+ EXTRA_DIST = autogen.sh src/gen_context.c src/basic-config.h $( JAVA_FILES )
100
176
101
177
if ENABLE_MODULE_ECDH
102
178
include src/modules/ecdh/Makefile.am.include
103
179
endif
104
180
105
- if ENABLE_MODULE_SCHNORR
106
- include src/modules/schnorr/Makefile.am.include
107
- endif
108
-
109
181
if ENABLE_MODULE_RECOVERY
110
182
include src/modules/recovery/Makefile.am.include
111
183
endif
0 commit comments