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_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])
|
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_LIBS="-lsnark -lcryptopp -lgmp -lgmpxx -lboost_system-mt -lcrypto"
|
||||||
[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"
|
|
||||||
|
|
||||||
AC_CHECK_LIB([crypto],[RAND_egd],[],[
|
AC_CHECK_LIB([crypto],[RAND_egd],[],[
|
||||||
AC_ARG_WITH([libressl],
|
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_DEFINE(HAVE_CONSENSUS_LIB, 1, [Define this symbol if the consensus lib has been built])
|
||||||
AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in])
|
AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_MSG_RESULT($build_bitcoin_libs)
|
AC_MSG_RESULT($build_bitcoin_libs)
|
||||||
|
|
||||||
AC_LANG_POP
|
AC_LANG_POP
|
||||||
|
|
|
@ -31,6 +31,7 @@ LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
|
||||||
LIBBITCOIN_UNIVALUE=univalue/libbitcoin_univalue.a
|
LIBBITCOIN_UNIVALUE=univalue/libbitcoin_univalue.a
|
||||||
LIBBITCOINQT=qt/libbitcoinqt.a
|
LIBBITCOINQT=qt/libbitcoinqt.a
|
||||||
LIBSECP256K1=secp256k1/libsecp256k1.la
|
LIBSECP256K1=secp256k1/libsecp256k1.la
|
||||||
|
LIBZEROCASH=libzerocash.a
|
||||||
|
|
||||||
$(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
|
$(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
|
||||||
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
||||||
|
@ -43,7 +44,8 @@ EXTRA_LIBRARIES = \
|
||||||
libbitcoin_common.a \
|
libbitcoin_common.a \
|
||||||
univalue/libbitcoin_univalue.a \
|
univalue/libbitcoin_univalue.a \
|
||||||
libbitcoin_server.a \
|
libbitcoin_server.a \
|
||||||
libbitcoin_cli.a
|
libbitcoin_cli.a \
|
||||||
|
libzerocash.a
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
BITCOIN_INCLUDES += $(BDB_CPPFLAGS)
|
BITCOIN_INCLUDES += $(BDB_CPPFLAGS)
|
||||||
EXTRA_LIBRARIES += libbitcoin_wallet.a
|
EXTRA_LIBRARIES += libbitcoin_wallet.a
|
||||||
|
@ -67,6 +69,27 @@ if BUILD_BITCOIN_UTILS
|
||||||
bin_PROGRAMS += zcash-cli bitcoin-tx
|
bin_PROGRAMS += zcash-cli bitcoin-tx
|
||||||
endif
|
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
|
.PHONY: FORCE
|
||||||
# bitcoin core #
|
# bitcoin core #
|
||||||
BITCOIN_CORE_H = \
|
BITCOIN_CORE_H = \
|
||||||
|
@ -202,7 +225,8 @@ libbitcoin_server_a_SOURCES = \
|
||||||
txmempool.cpp \
|
txmempool.cpp \
|
||||||
validationinterface.cpp \
|
validationinterface.cpp \
|
||||||
$(JSON_H) \
|
$(JSON_H) \
|
||||||
$(BITCOIN_CORE_H)
|
$(BITCOIN_CORE_H) \
|
||||||
|
$(LIBZEROCASH_H)
|
||||||
|
|
||||||
# wallet: shared between bitcoind and bitcoin-qt, but only linked
|
# wallet: shared between bitcoind and bitcoin-qt, but only linked
|
||||||
# when wallet enabled
|
# when wallet enabled
|
||||||
|
@ -215,7 +239,8 @@ libbitcoin_wallet_a_SOURCES = \
|
||||||
wallet/wallet.cpp \
|
wallet/wallet.cpp \
|
||||||
wallet/wallet_ismine.cpp \
|
wallet/wallet_ismine.cpp \
|
||||||
wallet/walletdb.cpp \
|
wallet/walletdb.cpp \
|
||||||
$(BITCOIN_CORE_H)
|
$(BITCOIN_CORE_H) \
|
||||||
|
$(LIBZEROCASH_H)
|
||||||
|
|
||||||
# crypto primitives library
|
# crypto primitives library
|
||||||
crypto_libbitcoin_crypto_a_CPPFLAGS = $(BITCOIN_CONFIG_INCLUDES)
|
crypto_libbitcoin_crypto_a_CPPFLAGS = $(BITCOIN_CONFIG_INCLUDES)
|
||||||
|
@ -269,7 +294,8 @@ libbitcoin_common_a_SOURCES = \
|
||||||
script/script_error.cpp \
|
script/script_error.cpp \
|
||||||
script/sign.cpp \
|
script/sign.cpp \
|
||||||
script/standard.cpp \
|
script/standard.cpp \
|
||||||
$(BITCOIN_CORE_H)
|
$(BITCOIN_CORE_H) \
|
||||||
|
$(LIBZEROCASH_H)
|
||||||
|
|
||||||
# util: shared between all executables.
|
# util: shared between all executables.
|
||||||
# This library *must* be included to make sure that the glibc
|
# This library *must* be included to make sure that the glibc
|
||||||
|
@ -291,7 +317,8 @@ libbitcoin_util_a_SOURCES = \
|
||||||
utilmoneystr.cpp \
|
utilmoneystr.cpp \
|
||||||
utilstrencodings.cpp \
|
utilstrencodings.cpp \
|
||||||
utiltime.cpp \
|
utiltime.cpp \
|
||||||
$(BITCOIN_CORE_H)
|
$(BITCOIN_CORE_H) \
|
||||||
|
$(LIBZEROCASH_H)
|
||||||
|
|
||||||
if GLIBC_BACK_COMPAT
|
if GLIBC_BACK_COMPAT
|
||||||
libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp
|
libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp
|
||||||
|
@ -301,7 +328,8 @@ endif
|
||||||
libbitcoin_cli_a_CPPFLAGS = $(BITCOIN_INCLUDES)
|
libbitcoin_cli_a_CPPFLAGS = $(BITCOIN_INCLUDES)
|
||||||
libbitcoin_cli_a_SOURCES = \
|
libbitcoin_cli_a_SOURCES = \
|
||||||
rpcclient.cpp \
|
rpcclient.cpp \
|
||||||
$(BITCOIN_CORE_H)
|
$(BITCOIN_CORE_H) \
|
||||||
|
$(LIBZEROCASH_H)
|
||||||
|
|
||||||
nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
|
nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
|
||||||
#
|
#
|
||||||
|
@ -321,6 +349,7 @@ zcashd_LDADD = \
|
||||||
$(LIBBITCOIN_UNIVALUE) \
|
$(LIBBITCOIN_UNIVALUE) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
|
$(LIBZEROCASH) \
|
||||||
$(LIBLEVELDB) \
|
$(LIBLEVELDB) \
|
||||||
$(LIBMEMENV) \
|
$(LIBMEMENV) \
|
||||||
$(LIBSECP256K1)
|
$(LIBSECP256K1)
|
||||||
|
@ -335,6 +364,7 @@ zcashd_LDADD += \
|
||||||
$(SSL_LIBS) \
|
$(SSL_LIBS) \
|
||||||
$(CRYPTO_LIBS) \
|
$(CRYPTO_LIBS) \
|
||||||
$(MINIUPNPC_LIBS) \
|
$(MINIUPNPC_LIBS) \
|
||||||
|
$(LIBZEROCASH) \
|
||||||
$(LIBZEROCASH_LIBS)
|
$(LIBZEROCASH_LIBS)
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -353,6 +383,7 @@ zcash_cli_LDADD = \
|
||||||
$(BOOST_LIBS) \
|
$(BOOST_LIBS) \
|
||||||
$(SSL_LIBS) \
|
$(SSL_LIBS) \
|
||||||
$(CRYPTO_LIBS) \
|
$(CRYPTO_LIBS) \
|
||||||
|
$(LIBZEROCASH) \
|
||||||
$(LIBZEROCASH_LIBS)
|
$(LIBZEROCASH_LIBS)
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -372,11 +403,31 @@ bitcoin_tx_LDADD = \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBSECP256K1) \
|
$(LIBSECP256K1) \
|
||||||
|
$(LIBZEROCASH) \
|
||||||
$(LIBZEROCASH_LIBS)
|
$(LIBZEROCASH_LIBS)
|
||||||
|
|
||||||
bitcoin_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_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 #
|
# bitcoinconsensus library #
|
||||||
if BUILD_BITCOIN_LIBS
|
if BUILD_BITCOIN_LIBS
|
||||||
include_HEADERS = script/bitcoinconsensus.h
|
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_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
|
||||||
test_test_bitcoin_CPPFLAGS = $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS)
|
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) \
|
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
|
if ENABLE_WALLET
|
||||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
|
test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in New Issue