mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-12 19:20:42 +02:00
Merge branch 'sys_libsecp256k1' into restore_libconsensus-28+knots
This commit is contained in:
commit
b442c5db16
28
configure.ac
28
configure.ac
@ -1141,6 +1141,32 @@ if test "$enable_fuzz_binary" = "yes"; then
|
||||
]])])
|
||||
fi
|
||||
|
||||
dnl Check for libsecp256k1, only if explicitly requested
|
||||
AC_ARG_WITH([system-libsecp256k1],
|
||||
[AS_HELP_STRING([--with-system-libsecp256k1],
|
||||
[Build with system libsecp256k1 (default is no; DANGEROUS; NOT SUPPORTED)])],
|
||||
[system_libsecp256k1=$withval],
|
||||
[system_libsecp256k1=no]
|
||||
)
|
||||
if test x$system_libsecp256k1 != xno; then
|
||||
PKG_CHECK_MODULES([libsecp256k1],[libsecp256k1],,[true])
|
||||
TEMP_CFLAGS="$CFLAGS"
|
||||
TEMP_LIBS="$LIBS"
|
||||
CFLAGS="$libsecp256k1_CFLAGS $CFLAGS"
|
||||
LIBS="$libsecp256k1_LIBS $LIBS"
|
||||
AC_CHECK_FUNCS([secp256k1_selftest],[],[
|
||||
AC_MSG_ERROR([libsecp256k1 is too old or broken (must be at least v0.2.0 or newer)])
|
||||
])
|
||||
CFLAGS="$TEMP_CFLAGS"
|
||||
LIBS="$TEMP_LIBS"
|
||||
else
|
||||
libsecp256k1_CFLAGS='-I$(srcdir)/secp256k1/include'
|
||||
libsecp256k1_LIBS='secp256k1/libsecp256k1.la'
|
||||
fi
|
||||
AM_CONDITIONAL([EMBEDDED_LIBSECP256K1],[test x$system_libsecp256k1 = xno])
|
||||
AC_SUBST(libsecp256k1_CFLAGS)
|
||||
AC_SUBST(libsecp256k1_LIBS)
|
||||
|
||||
if test "$enable_wallet" != "no"; then
|
||||
dnl Check for libdb_cxx only if wallet enabled
|
||||
if test "$use_bdb" != "no"; then
|
||||
@ -1693,8 +1719,10 @@ CPPFLAGS="$CPPFLAGS_TEMP"
|
||||
if test -n "$use_sanitizers"; then
|
||||
export SECP_CFLAGS="$SECP_CFLAGS $SANITIZER_CFLAGS"
|
||||
fi
|
||||
if test x$system_libsecp256k1 = xno; then
|
||||
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --disable-module-ecdh"
|
||||
AC_CONFIG_SUBDIRS([src/secp256k1])
|
||||
fi
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
|
@ -25,7 +25,7 @@ check_PROGRAMS =
|
||||
TESTS =
|
||||
BENCHMARKS =
|
||||
|
||||
BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT)
|
||||
BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) $(libsecp256k1_CFLAGS) -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT)
|
||||
|
||||
LIBBITCOIN_NODE=libbitcoin_node.a
|
||||
LIBBITCOIN_COMMON=libbitcoin_common.a
|
||||
@ -34,7 +34,11 @@ LIBBITCOIN_CLI=libbitcoin_cli.a
|
||||
LIBBITCOIN_UTIL=libbitcoin_util.a
|
||||
LIBBITCOIN_CRYPTO_BASE=crypto/libbitcoin_crypto_base.la
|
||||
LIBBITCOINQT=qt/libbitcoinqt.a
|
||||
if EMBEDDED_LIBSECP256K1
|
||||
LIBSECP256K1=secp256k1/libsecp256k1.la
|
||||
else
|
||||
LIBSECP256K1=$(libsecp256k1_LIBS)
|
||||
endif
|
||||
|
||||
if ENABLE_ZMQ
|
||||
LIBBITCOIN_ZMQ=libbitcoin_zmq.a
|
||||
@ -66,8 +70,10 @@ LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_ARM_SHANI)
|
||||
endif
|
||||
noinst_LTLIBRARIES += $(LIBBITCOIN_CRYPTO)
|
||||
|
||||
if EMBEDDED_LIBSECP256K1
|
||||
$(LIBSECP256K1): $(wildcard secp256k1/src/*.h) $(wildcard secp256k1/src/*.c) $(wildcard secp256k1/include/*)
|
||||
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
||||
endif
|
||||
|
||||
# Make is not made aware of per-object dependencies to avoid limiting building parallelization
|
||||
# But to build the less dependent modules first, we manually select their order here:
|
||||
@ -910,7 +916,7 @@ lib_LTLIBRARIES += $(LIBBITCOINKERNEL)
|
||||
|
||||
libbitcoinkernel_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) $(PTHREAD_FLAGS)
|
||||
libbitcoinkernel_la_LIBADD = $(LIBBITCOIN_CRYPTO) $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1)
|
||||
libbitcoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS)
|
||||
libbitcoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj $(libsecp256k1_CFLAGS) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS)
|
||||
|
||||
# libbitcoinkernel requires default symbol visibility, explicitly specify that
|
||||
# here so that things still work even when user configures with
|
||||
|
@ -449,7 +449,9 @@ if ENABLE_BENCH
|
||||
$(BENCH_BINARY) -sanity-check -priority-level=high
|
||||
endif
|
||||
endif
|
||||
if EMBEDDED_LIBSECP256K1
|
||||
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
|
||||
endif
|
||||
|
||||
if ENABLE_TESTS
|
||||
UNIVALUE_TESTS = univalue/test/object univalue/test/unitester
|
||||
|
Loading…
Reference in New Issue
Block a user