Browse Source

Build and link libzerocash.

pull/145/head
Sean Bowe 8 years ago
parent
commit
e463edc122
  1. 19
      configure.ac
  2. 63
      src/Makefile.am
  3. 2
      src/Makefile.test.include

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

63
src/Makefile.am

@ -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

2
src/Makefile.test.include

@ -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…
Cancel
Save