f1b868f098
- With nodes coming and going on the network, the network could come to different opinions about who should get paid next in line due to some nodes being flagged as failing a PoSe check. This will have to be fixed by introducing a blockchain based PoSe system, but that's out of the scope of this release. To fix the issues in the interrim, I'm removing PoSe checks for the time being.
475 lines
11 KiB
Makefile
475 lines
11 KiB
Makefile
DIST_SUBDIRS = secp256k1
|
|
AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS)
|
|
|
|
|
|
if EMBEDDED_LEVELDB
|
|
LEVELDB_CPPFLAGS += -I$(srcdir)/leveldb/include
|
|
LEVELDB_CPPFLAGS += -I$(srcdir)/leveldb/helpers/memenv
|
|
LIBLEVELDB += $(builddir)/leveldb/libleveldb.a
|
|
LIBMEMENV += $(builddir)/leveldb/libmemenv.a
|
|
|
|
# NOTE: This dependency is not strictly necessary, but without it make may try to build both in parallel, which breaks the LevelDB build system in a race
|
|
$(LIBLEVELDB): $(LIBMEMENV)
|
|
|
|
$(LIBLEVELDB) $(LIBMEMENV):
|
|
@echo "Building LevelDB ..." && $(MAKE) -C $(@D) $(@F) CXX="$(CXX)" \
|
|
CC="$(CC)" PLATFORM=$(TARGET_OS) AR="$(AR)" $(LEVELDB_TARGET_FLAGS) \
|
|
OPT="$(CXXFLAGS) $(CPPFLAGS)"
|
|
endif
|
|
|
|
BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config
|
|
BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
|
|
|
|
BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
|
|
|
|
LIBBITCOIN_SERVER=libbitcoin_server.a
|
|
LIBBITCOIN_WALLET=libbitcoin_wallet.a
|
|
LIBBITCOIN_COMMON=libbitcoin_common.a
|
|
LIBBITCOIN_CLI=libbitcoin_cli.a
|
|
LIBBITCOIN_UTIL=libbitcoin_util.a
|
|
LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
|
|
LIBBITCOIN_UNIVALUE=univalue/libbitcoin_univalue.a
|
|
LIBBITCOINQT=qt/libbitcoinqt.a
|
|
LIBSECP256K1=secp256k1/libsecp256k1.la
|
|
|
|
$(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
|
|
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
|
|
|
# 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:
|
|
EXTRA_LIBRARIES = \
|
|
crypto/libbitcoin_crypto.a \
|
|
libbitcoin_util.a \
|
|
libbitcoin_common.a \
|
|
univalue/libbitcoin_univalue.a \
|
|
libbitcoin_server.a \
|
|
libbitcoin_cli.a
|
|
if ENABLE_WALLET
|
|
BITCOIN_INCLUDES += $(BDB_CPPFLAGS)
|
|
EXTRA_LIBRARIES += libbitcoin_wallet.a
|
|
endif
|
|
|
|
if BUILD_BITCOIN_LIBS
|
|
lib_LTLIBRARIES = libbitcoinconsensus.la
|
|
LIBBITCOIN_CONSENSUS=libbitcoinconsensus.la
|
|
else
|
|
LIBBITCOIN_CONSENSUS=
|
|
endif
|
|
|
|
bin_PROGRAMS =
|
|
TESTS =
|
|
|
|
if BUILD_BITCOIND
|
|
bin_PROGRAMS += dashd
|
|
endif
|
|
|
|
if BUILD_BITCOIN_UTILS
|
|
bin_PROGRAMS += dash-cli dash-tx
|
|
endif
|
|
|
|
.PHONY: FORCE
|
|
# dash core #
|
|
BITCOIN_CORE_H = \
|
|
activemasternode.h \
|
|
addrman.h \
|
|
alert.h \
|
|
allocators.h \
|
|
amount.h \
|
|
base58.h \
|
|
bloom.h \
|
|
chain.h \
|
|
chainparams.h \
|
|
chainparamsbase.h \
|
|
chainparamsseeds.h \
|
|
checkpoints.h \
|
|
checkqueue.h \
|
|
clientversion.h \
|
|
coincontrol.h \
|
|
coins.h \
|
|
compat.h \
|
|
compressor.h \
|
|
primitives/block.h \
|
|
primitives/transaction.h \
|
|
core_io.h \
|
|
coinbase-payee.h \
|
|
crypter.h \
|
|
darksend.h \
|
|
darksend-relay.h \
|
|
db.h \
|
|
eccryptoverify.h \
|
|
ecwrapper.h \
|
|
hash.h \
|
|
init.h \
|
|
instantx.h \
|
|
key.h \
|
|
keepass.h \
|
|
keystore.h \
|
|
leveldbwrapper.h \
|
|
limitedmap.h \
|
|
main.h \
|
|
masternode.h \
|
|
masternode-payments.h \
|
|
masternode-budget.h \
|
|
masternodeman.h \
|
|
masternodeconfig.h \
|
|
merkleblock.h \
|
|
miner.h \
|
|
mruset.h \
|
|
netbase.h \
|
|
net.h \
|
|
noui.h \
|
|
pow.h \
|
|
protocol.h \
|
|
pubkey.h \
|
|
random.h \
|
|
rpcclient.h \
|
|
rpcprotocol.h \
|
|
rpcserver.h \
|
|
script/interpreter.h \
|
|
script/script.h \
|
|
script/sigcache.h \
|
|
script/sign.h \
|
|
script/standard.h \
|
|
script/script_error.h \
|
|
serialize.h \
|
|
spork.h \
|
|
streams.h \
|
|
sync.h \
|
|
threadsafety.h \
|
|
timedata.h \
|
|
tinyformat.h \
|
|
txdb.h \
|
|
txmempool.h \
|
|
ui_interface.h \
|
|
uint256.h \
|
|
undo.h \
|
|
util.h \
|
|
utilstrencodings.h \
|
|
utilmoneystr.h \
|
|
utiltime.h \
|
|
version.h \
|
|
wallet.h \
|
|
wallet_ismine.h \
|
|
walletdb.h \
|
|
compat/sanity.h
|
|
|
|
JSON_H = \
|
|
json/json_spirit.h \
|
|
json/json_spirit_error_position.h \
|
|
json/json_spirit_reader.h \
|
|
json/json_spirit_reader_template.h \
|
|
json/json_spirit_stream_reader.h \
|
|
json/json_spirit_utils.h \
|
|
json/json_spirit_value.h \
|
|
json/json_spirit_writer.h \
|
|
json/json_spirit_writer_template.h
|
|
|
|
obj/build.h: FORCE
|
|
@$(MKDIR_P) $(builddir)/obj
|
|
@$(top_srcdir)/share/genbuild.sh $(abs_top_builddir)/src/obj/build.h \
|
|
$(abs_top_srcdir)
|
|
libbitcoin_util_a-clientversion.$(OBJEXT): obj/build.h
|
|
|
|
# server: shared between dashd and dash-qt
|
|
libbitcoin_server_a_CPPFLAGS = $(BITCOIN_INCLUDES) $(MINIUPNPC_CPPFLAGS)
|
|
libbitcoin_server_a_SOURCES = \
|
|
activemasternode.cpp \
|
|
addrman.cpp \
|
|
alert.cpp \
|
|
bloom.cpp \
|
|
coinbase-payee.cpp \
|
|
chain.cpp \
|
|
checkpoints.cpp \
|
|
init.cpp \
|
|
leveldbwrapper.cpp \
|
|
main.cpp \
|
|
merkleblock.cpp \
|
|
miner.cpp \
|
|
net.cpp \
|
|
noui.cpp \
|
|
pow.cpp \
|
|
rest.cpp \
|
|
rpcblockchain.cpp \
|
|
rpcmasternode.cpp \
|
|
rpcmasternode-budget.cpp \
|
|
rpcmining.cpp \
|
|
rpcmisc.cpp \
|
|
rpcnet.cpp \
|
|
rpcrawtransaction.cpp \
|
|
rpcserver.cpp \
|
|
script/sigcache.cpp \
|
|
timedata.cpp \
|
|
txdb.cpp \
|
|
txmempool.cpp \
|
|
$(JSON_H) \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
# wallet: shared between dashd and dash-qt, but only linked
|
|
# when wallet enabled
|
|
libbitcoin_wallet_a_CPPFLAGS = $(BITCOIN_INCLUDES)
|
|
libbitcoin_wallet_a_SOURCES = \
|
|
activemasternode.cpp \
|
|
db.cpp \
|
|
crypter.cpp \
|
|
rpcdump.cpp \
|
|
rpcwallet.cpp \
|
|
wallet.cpp \
|
|
wallet_ismine.cpp \
|
|
walletdb.cpp \
|
|
keepass.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
# crypto primitives library
|
|
crypto_libbitcoin_crypto_a_CFLAGS = -fPIC
|
|
crypto_libbitcoin_crypto_a_CPPFLAGS = $(BITCOIN_CONFIG_INCLUDES)
|
|
crypto_libbitcoin_crypto_a_SOURCES = \
|
|
crypto/sha1.cpp \
|
|
crypto/sha256.cpp \
|
|
crypto/sha512.cpp \
|
|
crypto/hmac_sha256.cpp \
|
|
crypto/rfc6979_hmac_sha256.cpp \
|
|
crypto/hmac_sha512.cpp \
|
|
crypto/ripemd160.cpp \
|
|
crypto/aes_helper.c \
|
|
crypto/blake.c \
|
|
crypto/bmw.c \
|
|
crypto/cubehash.c \
|
|
crypto/echo.c \
|
|
crypto/groestl.c \
|
|
crypto/jh.c \
|
|
crypto/keccak.c \
|
|
crypto/luffa.c \
|
|
crypto/shavite.c \
|
|
crypto/simd.c \
|
|
crypto/skein.c \
|
|
crypto/common.h \
|
|
crypto/sha256.h \
|
|
crypto/sha512.h \
|
|
crypto/hmac_sha256.h \
|
|
crypto/rfc6979_hmac_sha256.h \
|
|
crypto/hmac_sha512.h \
|
|
crypto/sha1.h \
|
|
crypto/ripemd160.h \
|
|
crypto/sph_blake.h \
|
|
crypto/sph_bmw.h \
|
|
crypto/sph_cubehash.h \
|
|
crypto/sph_echo.h \
|
|
crypto/sph_groestl.h \
|
|
crypto/sph_jh.h \
|
|
crypto/sph_keccak.h \
|
|
crypto/sph_luffa.h \
|
|
crypto/sph_shavite.h \
|
|
crypto/sph_simd.h \
|
|
crypto/sph_skein.h \
|
|
crypto/sph_types.h
|
|
|
|
# univalue JSON library
|
|
univalue_libbitcoin_univalue_a_SOURCES = \
|
|
univalue/univalue.cpp \
|
|
univalue/univalue_read.cpp \
|
|
univalue/univalue_write.cpp \
|
|
univalue/univalue_escapes.h \
|
|
univalue/univalue.h
|
|
|
|
# common: shared between dashd, and dash-qt and non-server tools
|
|
libbitcoin_common_a_CPPFLAGS = $(BITCOIN_INCLUDES)
|
|
libbitcoin_common_a_SOURCES = \
|
|
activemasternode.cpp \
|
|
allocators.cpp \
|
|
amount.cpp \
|
|
base58.cpp \
|
|
coinbase-payee.cpp \
|
|
chainparams.cpp \
|
|
darksend.cpp \
|
|
darksend-relay.cpp \
|
|
masternode.cpp \
|
|
masternode-budget.cpp \
|
|
masternode-payments.cpp \
|
|
masternodeman.cpp \
|
|
masternodeconfig.cpp \
|
|
instantx.cpp \
|
|
coins.cpp \
|
|
compressor.cpp \
|
|
primitives/block.cpp \
|
|
primitives/transaction.cpp \
|
|
core_read.cpp \
|
|
core_write.cpp \
|
|
eccryptoverify.cpp \
|
|
ecwrapper.cpp \
|
|
hash.cpp \
|
|
key.cpp \
|
|
keystore.cpp \
|
|
netbase.cpp \
|
|
protocol.cpp \
|
|
pubkey.cpp \
|
|
script/interpreter.cpp \
|
|
script/script.cpp \
|
|
script/sign.cpp \
|
|
script/standard.cpp \
|
|
script/script_error.cpp \
|
|
spork.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
# util: shared between all executables.
|
|
# This library *must* be included to make sure that the glibc
|
|
# backward-compatibility objects and their sanity checks are linked.
|
|
libbitcoin_util_a_CPPFLAGS = $(BITCOIN_INCLUDES)
|
|
libbitcoin_util_a_SOURCES = \
|
|
allocators.cpp \
|
|
compat/strnlen.cpp \
|
|
compat/glibc_sanity.cpp \
|
|
compat/glibcxx_sanity.cpp \
|
|
chainparamsbase.cpp \
|
|
clientversion.cpp \
|
|
random.cpp \
|
|
rpcprotocol.cpp \
|
|
sync.cpp \
|
|
uint256.cpp \
|
|
util.cpp \
|
|
utilstrencodings.cpp \
|
|
utilmoneystr.cpp \
|
|
utiltime.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
if GLIBC_BACK_COMPAT
|
|
libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp
|
|
libbitcoin_util_a_SOURCES += compat/glibcxx_compat.cpp
|
|
endif
|
|
|
|
# cli: shared between dash-cli and dash-qt
|
|
libbitcoin_cli_a_CPPFLAGS = $(BITCOIN_INCLUDES)
|
|
libbitcoin_cli_a_SOURCES = \
|
|
rpcclient.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
|
|
#
|
|
|
|
# bitcoind binary #
|
|
dashd_LDADD = \
|
|
$(LIBBITCOIN_SERVER) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_UNIVALUE) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBLEVELDB) \
|
|
$(LIBMEMENV) \
|
|
$(LIBSECP256K1)
|
|
|
|
if ENABLE_WALLET
|
|
dashd_LDADD += libbitcoin_wallet.a
|
|
endif
|
|
dashd_SOURCES = dashd.cpp
|
|
#
|
|
|
|
if TARGET_WINDOWS
|
|
dashd_SOURCES += dashd-res.rc
|
|
endif
|
|
|
|
dashd_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS)
|
|
dashd_CPPFLAGS = $(BITCOIN_INCLUDES)
|
|
dashd_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
|
|
|
# dash-cli binary #
|
|
dash_cli_LDADD = \
|
|
$(LIBBITCOIN_CLI) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(BOOST_LIBS) \
|
|
$(SSL_LIBS) \
|
|
$(CRYPTO_LIBS)
|
|
|
|
dash_cli_SOURCES = \
|
|
dash-cli.cpp
|
|
|
|
dash_cli_CPPFLAGS = $(BITCOIN_INCLUDES)
|
|
#
|
|
|
|
# dash-tx binary #
|
|
dash_tx_LDADD = \
|
|
$(LIBBITCOIN_UNIVALUE) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBSECP256K1) \
|
|
$(BOOST_LIBS) \
|
|
$(CRYPTO_LIBS)
|
|
|
|
dash_tx_SOURCES = dash-tx.cpp
|
|
dash_tx_CPPFLAGS = $(BITCOIN_INCLUDES)
|
|
#
|
|
dash_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
|
|
|
if TARGET_WINDOWS
|
|
dash_cli_SOURCES += dash-cli-res.rc
|
|
endif
|
|
dash_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
|
|
|
if BUILD_BITCOIN_LIBS
|
|
include_HEADERS = script/bitcoinconsensus.h
|
|
libbitcoinconsensus_la_SOURCES = \
|
|
allocators.cpp \
|
|
primitives/transaction.cpp \
|
|
crypto/hmac_sha512.cpp \
|
|
crypto/sha1.cpp \
|
|
crypto/sha256.cpp \
|
|
crypto/sha512.cpp \
|
|
crypto/ripemd160.cpp \
|
|
eccryptoverify.cpp \
|
|
ecwrapper.cpp \
|
|
hash.cpp \
|
|
pubkey.cpp \
|
|
script/script.cpp \
|
|
script/interpreter.cpp \
|
|
script/bitcoinconsensus.cpp \
|
|
uint256.cpp \
|
|
utilstrencodings.cpp
|
|
|
|
if GLIBC_BACK_COMPAT
|
|
libbitcoinconsensus_la_SOURCES += compat/glibc_compat.cpp
|
|
libbitcoinconsensus_la_SOURCES += compat/glibcxx_compat.cpp
|
|
endif
|
|
|
|
libbitcoinconsensus_la_LDFLAGS = -no-undefined $(RELDFLAGS)
|
|
libbitcoinconsensus_la_LIBADD = $(CRYPTO_LIBS) $(BOOST_LIBS)
|
|
libbitcoinconsensus_la_CPPFLAGS = $(CRYPTO_CFLAGS) -I$(builddir)/obj -DBUILD_BITCOIN_INTERNAL
|
|
if USE_LIBSECP256K1
|
|
libbitcoinconsensus_la_LIBADD += secp256k1/libsecp256k1.la
|
|
endif
|
|
endif
|
|
|
|
CLEANFILES = leveldb/libleveldb.a leveldb/libmemenv.a *.gcda *.gcno
|
|
|
|
DISTCLEANFILES = obj/build.h
|
|
|
|
EXTRA_DIST = leveldb
|
|
|
|
clean-local:
|
|
-$(MAKE) -C leveldb clean
|
|
-$(MAKE) -C secp256k1 clean
|
|
rm -f leveldb/*/*.gcno leveldb/helpers/memenv/*.gcno
|
|
-rm -f config.h
|
|
|
|
.rc.o:
|
|
@test -f $(WINDRES)
|
|
$(AM_V_GEN) $(WINDRES) -DWINDRES_PREPROC -i $< -o $@
|
|
|
|
.mm.o:
|
|
$(AM_V_CXX) $(OBJCXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|
$(CPPFLAGS) $(AM_CXXFLAGS) $(QT_INCLUDES) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
%.pb.cc %.pb.h: %.proto
|
|
@test -f $(PROTOC)
|
|
$(AM_V_GEN) $(PROTOC) --cpp_out=$(@D) --proto_path=$(abspath $(<D) $<)
|
|
|
|
if ENABLE_TESTS
|
|
include Makefile.test.include
|
|
endif
|
|
|
|
if ENABLE_QT
|
|
include Makefile.qt.include
|
|
endif
|
|
|
|
if ENABLE_QT_TESTS
|
|
include Makefile.qttest.include
|
|
endif
|