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