|
| 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 | +noinst_HEADERS = |
| 12 | +noinst_HEADERS += src/scalar.h |
| 13 | +noinst_HEADERS += src/scalar_4x64.h |
| 14 | +noinst_HEADERS += src/scalar_8x32.h |
| 15 | +noinst_HEADERS += src/scalar_low.h |
| 16 | +noinst_HEADERS += src/scalar_impl.h |
| 17 | +noinst_HEADERS += src/scalar_4x64_impl.h |
| 18 | +noinst_HEADERS += src/scalar_8x32_impl.h |
| 19 | +noinst_HEADERS += src/scalar_low_impl.h |
| 20 | +noinst_HEADERS += src/group.h |
| 21 | +noinst_HEADERS += src/group_impl.h |
| 22 | +noinst_HEADERS += src/num_gmp.h |
| 23 | +noinst_HEADERS += src/num_gmp_impl.h |
| 24 | +noinst_HEADERS += src/ecdsa.h |
| 25 | +noinst_HEADERS += src/ecdsa_impl.h |
| 26 | +noinst_HEADERS += src/eckey.h |
| 27 | +noinst_HEADERS += src/eckey_impl.h |
| 28 | +noinst_HEADERS += src/ecmult.h |
| 29 | +noinst_HEADERS += src/ecmult_impl.h |
| 30 | +noinst_HEADERS += src/ecmult_const.h |
| 31 | +noinst_HEADERS += src/ecmult_const_impl.h |
| 32 | +noinst_HEADERS += src/ecmult_gen.h |
| 33 | +noinst_HEADERS += src/ecmult_gen_impl.h |
| 34 | +noinst_HEADERS += src/num.h |
| 35 | +noinst_HEADERS += src/num_impl.h |
| 36 | +noinst_HEADERS += src/field_10x26.h |
| 37 | +noinst_HEADERS += src/field_10x26_impl.h |
| 38 | +noinst_HEADERS += src/field_5x52.h |
| 39 | +noinst_HEADERS += src/field_5x52_impl.h |
| 40 | +noinst_HEADERS += src/field_5x52_int128_impl.h |
| 41 | +noinst_HEADERS += src/field_5x52_asm_impl.h |
| 42 | +noinst_HEADERS += src/java/org_bitcoin_NativeSecp256k1.h |
| 43 | +noinst_HEADERS += src/java/org_bitcoin_Secp256k1Context.h |
| 44 | +noinst_HEADERS += src/util.h |
| 45 | +noinst_HEADERS += src/scratch.h |
| 46 | +noinst_HEADERS += src/scratch_impl.h |
| 47 | +noinst_HEADERS += src/testrand.h |
| 48 | +noinst_HEADERS += src/testrand_impl.h |
| 49 | +noinst_HEADERS += src/hash.h |
| 50 | +noinst_HEADERS += src/hash_impl.h |
| 51 | +noinst_HEADERS += src/field.h |
| 52 | +noinst_HEADERS += src/field_impl.h |
| 53 | +noinst_HEADERS += src/bench.h |
| 54 | +noinst_HEADERS += contrib/lax_der_parsing.h |
| 55 | +noinst_HEADERS += contrib/lax_der_parsing.c |
| 56 | +noinst_HEADERS += contrib/lax_der_privatekey_parsing.h |
| 57 | +noinst_HEADERS += contrib/lax_der_privatekey_parsing.c |
| 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 | + |
| 66 | +pkgconfigdir = $(libdir)/pkgconfig |
| 67 | +pkgconfig_DATA = libsecp256k1.pc |
| 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 | + |
| 75 | +libsecp256k1_la_SOURCES = src/secp256k1.c |
| 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) |
| 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) |
| 81 | + |
| 82 | +noinst_PROGRAMS = |
| 83 | +if USE_BENCHMARK |
| 84 | +noinst_PROGRAMS += bench_verify bench_sign bench_internal bench_ecmult |
| 85 | +bench_verify_SOURCES = src/bench_verify.c |
| 86 | +bench_verify_LDADD = libsecp256k1.la $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB) |
| 87 | +bench_sign_SOURCES = src/bench_sign.c |
| 88 | +bench_sign_LDADD = libsecp256k1.la $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB) |
| 89 | +bench_internal_SOURCES = src/bench_internal.c |
| 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) |
| 95 | +endif |
| 96 | + |
| 97 | +TESTS = |
| 98 | +if USE_TESTS |
| 99 | +noinst_PROGRAMS += tests |
| 100 | +tests_SOURCES = src/tests.c |
| 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) |
| 106 | +tests_LDFLAGS = -static |
| 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 |
| 150 | +endif |
| 151 | + |
| 152 | +if USE_ECMULT_STATIC_PRECOMPUTATION |
| 153 | +CPPFLAGS_FOR_BUILD +=-I$(top_srcdir) |
| 154 | +CFLAGS_FOR_BUILD += -Wall -Wextra -Wno-unused-function |
| 155 | + |
| 156 | +gen_context_OBJECTS = gen_context.o |
| 157 | +gen_context_BIN = gen_context$(BUILD_EXEEXT) |
| 158 | +gen_%.o: src/gen_%.c |
| 159 | + $(CC_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) -c $< -o $@ |
| 160 | + |
| 161 | +$(gen_context_BIN): $(gen_context_OBJECTS) |
| 162 | + $(CC_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 |
0 commit comments