Build and link libzerocash.
This commit is contained in:
parent
a897db652f
commit
e463edc122
19
configure.ac
19
configure.ac
|
@ -717,23 +717,7 @@ CPPFLAGS="-I$LIBSNARK_INCDIR $CPPFLAGS"
|
|||
AC_CHECK_HEADER([libsnark/gadgetlib1/gadget.hpp],,AC_MSG_ERROR(libsnark headers missing))
|
||||
AC_CHECK_LIB([snark],[main],LIBSNARK_LIBS=-lsnark, [AC_MSG_ERROR(libsnark missing)], [-lgmpxx])
|
||||
|
||||
# Abuse the ugly libsnark hack above further to get the libzerocash directory
|
||||
[LIBZEROCASH_INCDIR=$(echo "$LIBSNARK_INCDIR" | sed 's,libsnark$,libzerocash,')]
|
||||
if test -d "$LIBZEROCASH_INCDIR"; then
|
||||
echo "Found libzerocash include directory: $LIBZEROCASH_INCDIR"
|
||||
else
|
||||
AC_MSG_ERROR(libzerocash include directory not found)
|
||||
fi
|
||||
|
||||
CPPFLAGS="-I$LIBZEROCASH_INCDIR $CPPFLAGS"
|
||||
|
||||
# libzerocash depends on headers in ./src/, so for the following
|
||||
# AC_CHECK_HEADER, that has to be on the include path list.
|
||||
CPPFLAGS_TEMP="$CPPFLAGS"
|
||||
CPPFLAGS="-I ./src/ $CPPFLAGS"
|
||||
AC_CHECK_HEADER([libzerocash/libzerocash/Zerocash.h],,AC_MSG_ERROR(libzerocash headers missing))
|
||||
AC_CHECK_LIB([zerocash], [main],LIBZEROCASH_LIBS="-lzerocash -lsnark -lcryptopp -lgmp -lgmpxx -lboost_system-mt -lcrypto", [AC_MSG_ERROR(libzerocash missing)], [-lsnark -lcryptopp -lgmp -lgmpxx -lboost_system-mt -lcrypto])
|
||||
CPPFLAGS="$CPPFLAGS_TEMP"
|
||||
LIBZEROCASH_LIBS="-lsnark -lcryptopp -lgmp -lgmpxx -lboost_system-mt -lcrypto"
|
||||
|
||||
AC_CHECK_LIB([crypto],[RAND_egd],[],[
|
||||
AC_ARG_WITH([libressl],
|
||||
|
@ -782,6 +766,7 @@ if test x$build_bitcoin_libs = xyes; then
|
|||
AC_DEFINE(HAVE_CONSENSUS_LIB, 1, [Define this symbol if the consensus lib has been built])
|
||||
AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in])
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT($build_bitcoin_libs)
|
||||
|
||||
AC_LANG_POP
|
||||
|
|
|
@ -31,6 +31,7 @@ LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
|
|||
LIBBITCOIN_UNIVALUE=univalue/libbitcoin_univalue.a
|
||||
LIBBITCOINQT=qt/libbitcoinqt.a
|
||||
LIBSECP256K1=secp256k1/libsecp256k1.la
|
||||
LIBZEROCASH=libzerocash.a
|
||||
|
||||
$(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
|
||||
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
||||
|
@ -43,7 +44,8 @@ EXTRA_LIBRARIES = \
|
|||
libbitcoin_common.a \
|
||||
univalue/libbitcoin_univalue.a \
|
||||
libbitcoin_server.a \
|
||||
libbitcoin_cli.a
|
||||
libbitcoin_cli.a \
|
||||
libzerocash.a
|
||||
if ENABLE_WALLET
|
||||
BITCOIN_INCLUDES += $(BDB_CPPFLAGS)
|
||||
EXTRA_LIBRARIES += libbitcoin_wallet.a
|
||||
|
@ -67,6 +69,27 @@ if BUILD_BITCOIN_UTILS
|
|||
bin_PROGRAMS += zcash-cli bitcoin-tx
|
||||
endif
|
||||
|
||||
LIBZEROCASH_H = \
|
||||
zerocash/Address.h \
|
||||
zerocash/CoinCommitment.h \
|
||||
zerocash/Coin.h \
|
||||
zerocash/IncrementalMerkleTree.h \
|
||||
zerocash/MintTransaction.h \
|
||||
zerocash/PourInput.h \
|
||||
zerocash/PourOutput.h \
|
||||
zerocash/PourProver.h \
|
||||
zerocash/PourTransaction.h \
|
||||
zerocash/Zerocash.h \
|
||||
zerocash/ZerocashParams.h \
|
||||
zerocash/zerocash_pour_params.hpp \
|
||||
zerocash/utils/sha256.h \
|
||||
zerocash/utils/util.h
|
||||
|
||||
# zerocash/zerocash_pour_gadget.hpp
|
||||
# zerocash/zerocash_pour_gadget.tcc
|
||||
# zerocash/zerocash_pour_ppzksnark.hpp
|
||||
# zerocash/zerocash_pour_ppzksnark.tcc
|
||||
|
||||
.PHONY: FORCE
|
||||
# bitcoin core #
|
||||
BITCOIN_CORE_H = \
|
||||
|
@ -202,7 +225,8 @@ libbitcoin_server_a_SOURCES = \
|
|||
txmempool.cpp \
|
||||
validationinterface.cpp \
|
||||
$(JSON_H) \
|
||||
$(BITCOIN_CORE_H)
|
||||
$(BITCOIN_CORE_H) \
|
||||
$(LIBZEROCASH_H)
|
||||
|
||||
# wallet: shared between bitcoind and bitcoin-qt, but only linked
|
||||
# when wallet enabled
|
||||
|
@ -215,7 +239,8 @@ libbitcoin_wallet_a_SOURCES = \
|
|||
wallet/wallet.cpp \
|
||||
wallet/wallet_ismine.cpp \
|
||||
wallet/walletdb.cpp \
|
||||
$(BITCOIN_CORE_H)
|
||||
$(BITCOIN_CORE_H) \
|
||||
$(LIBZEROCASH_H)
|
||||
|
||||
# crypto primitives library
|
||||
crypto_libbitcoin_crypto_a_CPPFLAGS = $(BITCOIN_CONFIG_INCLUDES)
|
||||
|
@ -269,7 +294,8 @@ libbitcoin_common_a_SOURCES = \
|
|||
script/script_error.cpp \
|
||||
script/sign.cpp \
|
||||
script/standard.cpp \
|
||||
$(BITCOIN_CORE_H)
|
||||
$(BITCOIN_CORE_H) \
|
||||
$(LIBZEROCASH_H)
|
||||
|
||||
# util: shared between all executables.
|
||||
# This library *must* be included to make sure that the glibc
|
||||
|
@ -291,7 +317,8 @@ libbitcoin_util_a_SOURCES = \
|
|||
utilmoneystr.cpp \
|
||||
utilstrencodings.cpp \
|
||||
utiltime.cpp \
|
||||
$(BITCOIN_CORE_H)
|
||||
$(BITCOIN_CORE_H) \
|
||||
$(LIBZEROCASH_H)
|
||||
|
||||
if GLIBC_BACK_COMPAT
|
||||
libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp
|
||||
|
@ -301,7 +328,8 @@ endif
|
|||
libbitcoin_cli_a_CPPFLAGS = $(BITCOIN_INCLUDES)
|
||||
libbitcoin_cli_a_SOURCES = \
|
||||
rpcclient.cpp \
|
||||
$(BITCOIN_CORE_H)
|
||||
$(BITCOIN_CORE_H) \
|
||||
$(LIBZEROCASH_H)
|
||||
|
||||
nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
|
||||
#
|
||||
|
@ -321,6 +349,7 @@ zcashd_LDADD = \
|
|||
$(LIBBITCOIN_UNIVALUE) \
|
||||
$(LIBBITCOIN_UTIL) \
|
||||
$(LIBBITCOIN_CRYPTO) \
|
||||
$(LIBZEROCASH) \
|
||||
$(LIBLEVELDB) \
|
||||
$(LIBMEMENV) \
|
||||
$(LIBSECP256K1)
|
||||
|
@ -335,6 +364,7 @@ zcashd_LDADD += \
|
|||
$(SSL_LIBS) \
|
||||
$(CRYPTO_LIBS) \
|
||||
$(MINIUPNPC_LIBS) \
|
||||
$(LIBZEROCASH) \
|
||||
$(LIBZEROCASH_LIBS)
|
||||
#
|
||||
|
||||
|
@ -353,6 +383,7 @@ zcash_cli_LDADD = \
|
|||
$(BOOST_LIBS) \
|
||||
$(SSL_LIBS) \
|
||||
$(CRYPTO_LIBS) \
|
||||
$(LIBZEROCASH) \
|
||||
$(LIBZEROCASH_LIBS)
|
||||
#
|
||||
|
||||
|
@ -372,11 +403,31 @@ bitcoin_tx_LDADD = \
|
|||
$(LIBBITCOIN_UTIL) \
|
||||
$(LIBBITCOIN_CRYPTO) \
|
||||
$(LIBSECP256K1) \
|
||||
$(LIBZEROCASH) \
|
||||
$(LIBZEROCASH_LIBS)
|
||||
|
||||
bitcoin_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS)
|
||||
#
|
||||
|
||||
# zerocash protocol primitives #
|
||||
libzerocash_a_SOURCES = \
|
||||
zerocash/Address.cpp \
|
||||
zerocash/CoinCommitment.cpp \
|
||||
zerocash/Coin.cpp \
|
||||
zerocash/IncrementalMerkleTree.cpp \
|
||||
zerocash/MintTransaction.cpp \
|
||||
zerocash/PourInput.cpp \
|
||||
zerocash/PourOutput.cpp \
|
||||
zerocash/PourProver.cpp \
|
||||
zerocash/PourTransaction.cpp \
|
||||
zerocash/ZerocashParams.cpp \
|
||||
zerocash/utils/sha256.cpp \
|
||||
zerocash/utils/util.cpp
|
||||
|
||||
#libzerocash_a_LIBADD = $(LIBZEROCASH_LIBS)
|
||||
libzerocash_a_CPPFLAGS = -fPIC -DCURVE_ALT_BN128 -DBOOST_SPIRIT_THREADSAFE -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -std=c++11 -pipe -O2 -O0 -g -Wstack-protector -fstack-protector-all -fPIE -fvisibility=hidden -DSTATIC $(BITCOIN_INCLUDES)
|
||||
#libzerocash_a_CPPFLAGS = -std=c++11 -fPIC -I$(builddir)/obj -DCURVE_ALT_BN128 -DSTATIC $(BITCOIN_INCLUDES)
|
||||
|
||||
# bitcoinconsensus library #
|
||||
if BUILD_BITCOIN_LIBS
|
||||
include_HEADERS = script/bitcoinconsensus.h
|
||||
|
|
|
@ -88,7 +88,7 @@ endif
|
|||
test_test_bitcoin_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
|
||||
test_test_bitcoin_CPPFLAGS = $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS)
|
||||
test_test_bitcoin_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \
|
||||
$(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(LIBZEROCASH_LIBS)
|
||||
$(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(LIBZEROCASH) $(LIBZEROCASH_LIBS)
|
||||
if ENABLE_WALLET
|
||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
|
||||
endif
|
||||
|
|
Loading…
Reference in New Issue