Remove libsnark from depends system and integrate it into build system.
This commit is contained in:
20
configure.ac
20
configure.ac
@@ -757,28 +757,12 @@ AC_CHECK_LIB([gmp],[[__gmpn_sub_n]],GMP_LIBS=-lgmp, [AC_MSG_ERROR(libgmp missing
|
|||||||
AC_CHECK_HEADER([gmpxx.h],,AC_MSG_ERROR(libgmpxx headers missing))
|
AC_CHECK_HEADER([gmpxx.h],,AC_MSG_ERROR(libgmpxx headers missing))
|
||||||
AC_CHECK_LIB([gmpxx],[main],GMPXX_LIBS=-lgmpxx, [AC_MSG_ERROR(libgmpxx missing)])
|
AC_CHECK_LIB([gmpxx],[main],GMPXX_LIBS=-lgmpxx, [AC_MSG_ERROR(libgmpxx missing)])
|
||||||
|
|
||||||
# libsnark header layout is broken unless cpp's -I is passed with the
|
|
||||||
# libsnark directory, so for now we use this hideous workaround:
|
|
||||||
echo 'Hunting for libsnark include directory...'
|
|
||||||
[LIBSNARK_INCDIR="$(echo "$CPPFLAGS" | sed 's,^.*-I\([^ ]*/include\).*$,\1/libsnark,')"]
|
|
||||||
if test -d "$LIBSNARK_INCDIR"; then
|
|
||||||
echo "Found libsnark include directory: $LIBSNARK_INCDIR"
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR(libsnark include directory not found)
|
|
||||||
fi
|
|
||||||
|
|
||||||
CPPFLAGS="-I$LIBSNARK_INCDIR $CPPFLAGS"
|
|
||||||
|
|
||||||
# Now check for libsnark compilability using traditional autoconf tests:
|
|
||||||
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])
|
|
||||||
|
|
||||||
RUST_LIBS=""
|
RUST_LIBS=""
|
||||||
if test x$enable_rust != xno; then
|
if test x$enable_rust != xno; then
|
||||||
RUST_LIBS="-lrustzcash"
|
RUST_LIBS="-lrustzcash"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LIBZCASH_LIBS="-lsnark -lgmp -lgmpxx -lboost_system-mt -lcrypto -lsodium -fopenmp $RUST_LIBS"
|
LIBZCASH_LIBS="-lgmp -lgmpxx -lboost_system-mt -lcrypto -lsodium -fopenmp $RUST_LIBS"
|
||||||
|
|
||||||
CXXFLAGS_TEMP="$CXXFLAGS"
|
CXXFLAGS_TEMP="$CXXFLAGS"
|
||||||
LIBS_TEMP="$LIBS"
|
LIBS_TEMP="$LIBS"
|
||||||
@@ -944,7 +928,7 @@ unset PKG_CONFIG_LIBDIR
|
|||||||
PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
|
PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
|
||||||
|
|
||||||
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
|
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
|
||||||
AC_CONFIG_SUBDIRS([src/secp256k1 src/univalue])
|
AC_CONFIG_SUBDIRS([src/secp256k1 src/snark src/univalue])
|
||||||
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
package=libsnark
|
|
||||||
$(package)_version=0.1
|
|
||||||
$(package)_download_path=https://github.com/zcash/$(package)/archive/
|
|
||||||
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
|
|
||||||
$(package)_download_file=$($(package)_git_commit).tar.gz
|
|
||||||
$(package)_sha256_hash=dad153fe46e2e1f33557a195cbe7d69aed8b19ed9befc08ddcb8c6d3c025941f
|
|
||||||
$(package)_git_commit=9ada3f84ab484c57b2247c2f41091fd6a0916573
|
|
||||||
|
|
||||||
$(package)_dependencies=libgmp libsodium
|
|
||||||
|
|
||||||
define $(package)_build_cmds
|
|
||||||
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64"
|
|
||||||
endef
|
|
||||||
|
|
||||||
define $(package)_stage_cmds
|
|
||||||
$(MAKE) install STATIC=1 DEPINST=$(host_prefix) PREFIX=$($(package)_staging_dir)$(host_prefix) CURVE=ALT_BN128 NO_SUPERCOP=1
|
|
||||||
endef
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
rust_packages := rust librustzcash
|
rust_packages := rust librustzcash
|
||||||
proton_packages := proton
|
proton_packages := proton
|
||||||
zcash_packages := libsnark libgmp libsodium
|
zcash_packages := libgmp libsodium
|
||||||
packages := boost openssl libevent zeromq $(zcash_packages) googletest googlemock
|
packages := boost openssl libevent zeromq $(zcash_packages) googletest googlemock
|
||||||
native_packages := native_ccache
|
native_packages := native_ccache
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
DIST_SUBDIRS = secp256k1 univalue
|
DIST_SUBDIRS = secp256k1 snark univalue
|
||||||
AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS)
|
AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS)
|
||||||
|
|
||||||
|
|
||||||
@@ -21,6 +21,8 @@ BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config
|
|||||||
BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
|
BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
|
||||||
|
|
||||||
BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
|
BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
|
||||||
|
BITCOIN_INCLUDES += -I$(srcdir)/snark/build/include
|
||||||
|
BITCOIN_INCLUDES += -I$(srcdir)/snark/build/include/libsnark
|
||||||
BITCOIN_INCLUDES += -I$(srcdir)/univalue/include
|
BITCOIN_INCLUDES += -I$(srcdir)/univalue/include
|
||||||
|
|
||||||
LIBBITCOIN_SERVER=libbitcoin_server.a
|
LIBBITCOIN_SERVER=libbitcoin_server.a
|
||||||
@@ -30,12 +32,18 @@ LIBBITCOIN_CLI=libbitcoin_cli.a
|
|||||||
LIBBITCOIN_UTIL=libbitcoin_util.a
|
LIBBITCOIN_UTIL=libbitcoin_util.a
|
||||||
LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
|
LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
|
||||||
LIBSECP256K1=secp256k1/libsecp256k1.la
|
LIBSECP256K1=secp256k1/libsecp256k1.la
|
||||||
|
LIBSNARK=snark/build/lib/libsnark.a
|
||||||
LIBUNIVALUE=univalue/libunivalue.la
|
LIBUNIVALUE=univalue/libunivalue.la
|
||||||
LIBZCASH=libzcash.a
|
LIBZCASH=libzcash.a
|
||||||
|
|
||||||
$(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
|
# libsnark is added as a dependency here solely to ensure it is built early, so
|
||||||
|
# that its header files are collated for use in later build steps.
|
||||||
|
$(LIBSECP256K1): $(LIBSNARK) $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
|
||||||
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
||||||
|
|
||||||
|
$(LIBSNARK): $(wildcard snark/src/*)
|
||||||
|
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C snark/ install PREFIX=$(srcdir)/build DEPINST=$(prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64"
|
||||||
|
|
||||||
$(LIBUNIVALUE): $(wildcard univalue/lib/*)
|
$(LIBUNIVALUE): $(wildcard univalue/lib/*)
|
||||||
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue/
|
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue/
|
||||||
|
|
||||||
@@ -394,6 +402,7 @@ zcashd_LDADD = \
|
|||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBZCASH) \
|
$(LIBZCASH) \
|
||||||
|
$(LIBSNARK) \
|
||||||
$(LIBLEVELDB) \
|
$(LIBLEVELDB) \
|
||||||
$(LIBMEMENV) \
|
$(LIBMEMENV) \
|
||||||
$(LIBSECP256K1)
|
$(LIBSECP256K1)
|
||||||
@@ -413,7 +422,6 @@ zcashd_LDADD += \
|
|||||||
$(CRYPTO_LIBS) \
|
$(CRYPTO_LIBS) \
|
||||||
$(EVENT_PTHREADS_LIBS) \
|
$(EVENT_PTHREADS_LIBS) \
|
||||||
$(EVENT_LIBS) \
|
$(EVENT_LIBS) \
|
||||||
$(LIBZCASH) \
|
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBZCASH_LIBS)
|
$(LIBZCASH_LIBS)
|
||||||
|
|
||||||
@@ -439,6 +447,7 @@ zcash_cli_LDADD = \
|
|||||||
$(CRYPTO_LIBS) \
|
$(CRYPTO_LIBS) \
|
||||||
$(EVENT_LIBS) \
|
$(EVENT_LIBS) \
|
||||||
$(LIBZCASH) \
|
$(LIBZCASH) \
|
||||||
|
$(LIBSNARK) \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBZCASH_LIBS)
|
$(LIBZCASH_LIBS)
|
||||||
#
|
#
|
||||||
@@ -459,6 +468,7 @@ zcash_tx_LDADD = \
|
|||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
$(LIBSECP256K1) \
|
$(LIBSECP256K1) \
|
||||||
$(LIBZCASH) \
|
$(LIBZCASH) \
|
||||||
|
$(LIBSNARK) \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBZCASH_LIBS)
|
$(LIBZCASH_LIBS)
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ if ENABLE_WALLET
|
|||||||
zcash_gtest_LDADD += $(LIBBITCOIN_WALLET)
|
zcash_gtest_LDADD += $(LIBBITCOIN_WALLET)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
zcash_gtest_LDADD += $(LIBZCASH_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(LIBZCASH) $(LIBZCASH_LIBS)
|
zcash_gtest_LDADD += $(LIBZCASH_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(LIBZCASH) $(LIBSNARK) $(LIBZCASH_LIBS)
|
||||||
|
|
||||||
if ENABLE_PROTON
|
if ENABLE_PROTON
|
||||||
zcash_gtest_LDADD += $(LIBBITCOIN_PROTON) $(PROTON_LIBS)
|
zcash_gtest_LDADD += $(LIBBITCOIN_PROTON) $(PROTON_LIBS)
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ if ENABLE_WALLET
|
|||||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
|
test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test_test_bitcoin_LDADD += $(LIBZCASH_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(LIBZCASH) $(LIBZCASH_LIBS)
|
test_test_bitcoin_LDADD += $(LIBZCASH_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(LIBZCASH) $(LIBSNARK) $(LIBZCASH_LIBS)
|
||||||
test_test_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static
|
test_test_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static
|
||||||
|
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
|
|||||||
@@ -7,15 +7,18 @@ zcash_GenerateParams_SOURCES = zcash/GenerateParams.cpp
|
|||||||
zcash_GenerateParams_LDADD = \
|
zcash_GenerateParams_LDADD = \
|
||||||
$(BOOST_LIBS) \
|
$(BOOST_LIBS) \
|
||||||
$(LIBZCASH) \
|
$(LIBZCASH) \
|
||||||
|
$(LIBSNARK) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBZCASH_LIBS)
|
$(LIBZCASH_LIBS)
|
||||||
|
|
||||||
# tool for profiling the creation of joinsplits
|
# tool for profiling the creation of joinsplits
|
||||||
zcash_CreateJoinSplit_SOURCES = zcash/CreateJoinSplit.cpp
|
zcash_CreateJoinSplit_SOURCES = zcash/CreateJoinSplit.cpp
|
||||||
|
zcash_CreateJoinSplit_CPPFLAGS = $(BITCOIN_INCLUDES)
|
||||||
zcash_CreateJoinSplit_LDADD = \
|
zcash_CreateJoinSplit_LDADD = \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
$(LIBZCASH) \
|
$(LIBZCASH) \
|
||||||
|
$(LIBSNARK) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(BOOST_LIBS) \
|
$(BOOST_LIBS) \
|
||||||
|
|||||||
Reference in New Issue
Block a user