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