b18f8cb77c
* Sort evo/* source files in Makefile.am * Keep track of proRegTxHash in CConnman::masternodeQuorumNodes map We will later need the proRegTxHash * Fix serialization of std::tuple with const rvalue elements Having serialization and deserialization in the same specialized template results in compilation failures due to the "if(for_read)" branch. * Implement MNAUTH message This allows masternodes to authenticate themself. * Protect fresh incoming connections for a second from eviction Give fresh connections some time to do the VERSION/VERACK handshake and an optional MNAUTH when it's a masternode. When an MNAUTH happened, the incoming connection is then forever protected against eviction. If a timeout of 1 second occurs or the first message after VERACK is not MNAUTH, the node is not protected anymore and becomes eligable for eviction. * Avoid connecting to masternodes if an incoming connection is from the same one Now that incoming connections from MNs authenticate them self, we can avoid connecting to the same MNs through intra-quorum connections. * Apply review suggestions
691 lines
17 KiB
Makefile
691 lines
17 KiB
Makefile
# Copyright (c) 2013-2016 The Bitcoin Core developers
|
|
# Copyright (c) 2014-2018 The Dash Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
DIST_SUBDIRS = secp256k1 univalue
|
|
|
|
AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS) $(HARDENED_LDFLAGS)
|
|
AM_CXXFLAGS = $(HARDENED_CXXFLAGS) $(ERROR_CXXFLAGS)
|
|
AM_CPPFLAGS = $(HARDENED_CPPFLAGS)
|
|
EXTRA_LIBRARIES =
|
|
|
|
if ENABLE_STACKTRACES
|
|
if STACKTRACE_WRAPPED_CXX_ABI
|
|
# Wrap internal C++ ABI's so that we can attach stacktraces to exceptions
|
|
LDFLAGS_WRAP_EXCEPTIONS = -Wl,-wrap,__cxa_allocate_exception -Wl,-wrap,__cxa_free_exception
|
|
if TARGET_WINDOWS
|
|
LDFLAGS_WRAP_EXCEPTIONS += -Wl,-wrap,_assert -Wl,-wrap,_wassert
|
|
else
|
|
LDFLAGS_WRAP_EXCEPTIONS += -Wl,-wrap,__assert_fail
|
|
endif
|
|
endif
|
|
|
|
if RDYNAMIC_SUPPORTED
|
|
# This gives better stacktraces
|
|
AM_CXXFLAGS += -rdynamic
|
|
endif
|
|
|
|
if TARGET_WINDOWS
|
|
BACKTRACE_LIB = -ldbghelp -lbacktrace
|
|
else
|
|
BACKTRACE_LIB = -lbacktrace
|
|
endif
|
|
endif
|
|
|
|
if EMBEDDED_UNIVALUE
|
|
LIBUNIVALUE = univalue/libunivalue.la
|
|
|
|
$(LIBUNIVALUE): $(wildcard univalue/lib/*) $(wildcard univalue/include/*)
|
|
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
|
else
|
|
LIBUNIVALUE = $(UNIVALUE_LIBS)
|
|
endif
|
|
|
|
BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config
|
|
BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
|
|
|
|
BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
|
|
BITCOIN_INCLUDES += $(UNIVALUE_CFLAGS)
|
|
|
|
BLS_LIBS=-lchiabls -lgmp
|
|
|
|
LIBBITCOIN_SERVER=libdash_server.a
|
|
LIBBITCOIN_COMMON=libdash_common.a
|
|
LIBBITCOIN_CONSENSUS=libdash_consensus.a
|
|
LIBBITCOIN_CLI=libdash_cli.a
|
|
LIBBITCOIN_UTIL=libdash_util.a
|
|
LIBBITCOIN_CRYPTO=crypto/libdash_crypto.a
|
|
LIBBITCOINQT=qt/libdashqt.a
|
|
LIBSECP256K1=secp256k1/libsecp256k1.la
|
|
|
|
if ENABLE_ZMQ
|
|
LIBBITCOIN_ZMQ=libdash_zmq.a
|
|
endif
|
|
if BUILD_BITCOIN_LIBS
|
|
LIBBITCOINCONSENSUS=libdashconsensus.la
|
|
endif
|
|
if ENABLE_WALLET
|
|
LIBBITCOIN_WALLET=libdash_wallet.a
|
|
endif
|
|
|
|
$(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 += \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_SERVER) \
|
|
$(LIBBITCOIN_CLI) \
|
|
$(LIBBITCOIN_WALLET) \
|
|
$(LIBBITCOIN_ZMQ)
|
|
|
|
lib_LTLIBRARIES = $(LIBBITCOINCONSENSUS)
|
|
|
|
bin_PROGRAMS =
|
|
TESTS =
|
|
BENCHMARKS =
|
|
|
|
if BUILD_BITCOIND
|
|
bin_PROGRAMS += dashd
|
|
endif
|
|
|
|
if BUILD_BITCOIN_UTILS
|
|
bin_PROGRAMS += dash-cli dash-tx
|
|
endif
|
|
|
|
.PHONY: FORCE check-symbols check-security
|
|
# dash core #
|
|
BITCOIN_CORE_H = \
|
|
addrdb.h \
|
|
activemasternode.h \
|
|
addressindex.h \
|
|
spentindex.h \
|
|
addrman.h \
|
|
alert.h \
|
|
base58.h \
|
|
batchedlogger.h \
|
|
bip39.h \
|
|
bip39_english.h \
|
|
blockencodings.h \
|
|
bloom.h \
|
|
cachemap.h \
|
|
cachemultimap.h \
|
|
chain.h \
|
|
chainparams.h \
|
|
chainparamsbase.h \
|
|
chainparamsseeds.h \
|
|
checkpoints.h \
|
|
checkqueue.h \
|
|
clientversion.h \
|
|
coins.h \
|
|
compat.h \
|
|
compat/byteswap.h \
|
|
compat/endian.h \
|
|
compat/sanity.h \
|
|
compressor.h \
|
|
consensus/consensus.h \
|
|
core_io.h \
|
|
core_memusage.h \
|
|
cuckoocache.h \
|
|
ctpl.h \
|
|
cxxtimer.hpp \
|
|
evo/cbtx.h \
|
|
evo/deterministicmns.h \
|
|
evo/evodb.h \
|
|
evo/mnauth.h \
|
|
evo/providertx.h \
|
|
evo/simplifiedmns.h \
|
|
evo/specialtx.h \
|
|
privatesend.h \
|
|
privatesend-client.h \
|
|
privatesend-server.h \
|
|
privatesend-util.h \
|
|
dsnotificationinterface.h \
|
|
governance.h \
|
|
governance-classes.h \
|
|
governance-exceptions.h \
|
|
governance-object.h \
|
|
governance-validators.h \
|
|
governance-vote.h \
|
|
governance-votedb.h \
|
|
flat-database.h \
|
|
hdchain.h \
|
|
httprpc.h \
|
|
httpserver.h \
|
|
indirectmap.h \
|
|
init.h \
|
|
instantx.h \
|
|
key.h \
|
|
keepass.h \
|
|
keystore.h \
|
|
dbwrapper.h \
|
|
limitedmap.h \
|
|
llmq/quorums.h \
|
|
llmq/quorums_blockprocessor.h \
|
|
llmq/quorums_commitment.h \
|
|
llmq/quorums_chainlocks.h \
|
|
llmq/quorums_debug.h \
|
|
llmq/quorums_dkgsessionhandler.h \
|
|
llmq/quorums_dkgsessionmgr.h \
|
|
llmq/quorums_dkgsession.h \
|
|
llmq/quorums_init.h \
|
|
llmq/quorums_instantsend.h \
|
|
llmq/quorums_signing.h \
|
|
llmq/quorums_signing_shares.h \
|
|
llmq/quorums_utils.h \
|
|
masternode-meta.h \
|
|
masternode-payments.h \
|
|
masternode-sync.h \
|
|
masternode-utils.h \
|
|
memusage.h \
|
|
merkleblock.h \
|
|
messagesigner.h \
|
|
miner.h \
|
|
net.h \
|
|
net_processing.h \
|
|
netaddress.h \
|
|
netbase.h \
|
|
netfulfilledman.h \
|
|
netmessagemaker.h \
|
|
noui.h \
|
|
policy/fees.h \
|
|
policy/policy.h \
|
|
pow.h \
|
|
protocol.h \
|
|
random.h \
|
|
reverselock.h \
|
|
rpc/client.h \
|
|
rpc/protocol.h \
|
|
rpc/server.h \
|
|
rpc/register.h \
|
|
saltedhasher.h \
|
|
scheduler.h \
|
|
script/sigcache.h \
|
|
script/sign.h \
|
|
script/standard.h \
|
|
script/ismine.h \
|
|
spork.h \
|
|
stacktraces.h \
|
|
streams.h \
|
|
support/allocators/mt_pooled_secure.h \
|
|
support/allocators/pooled_secure.h \
|
|
support/allocators/secure.h \
|
|
support/allocators/zeroafterfree.h \
|
|
support/cleanse.h \
|
|
support/events.h \
|
|
support/lockedpool.h \
|
|
sync.h \
|
|
threadsafety.h \
|
|
threadinterrupt.h \
|
|
timedata.h \
|
|
torcontrol.h \
|
|
txdb.h \
|
|
txmempool.h \
|
|
ui_interface.h \
|
|
undo.h \
|
|
unordered_lru_cache.h \
|
|
util.h \
|
|
utilmoneystr.h \
|
|
utiltime.h \
|
|
validation.h \
|
|
validationinterface.h \
|
|
versionbits.h \
|
|
wallet/coincontrol.h \
|
|
wallet/crypter.h \
|
|
wallet/db.h \
|
|
wallet/rpcwallet.h \
|
|
wallet/wallet.h \
|
|
wallet/walletdb.h \
|
|
warnings.h \
|
|
zmq/zmqabstractnotifier.h \
|
|
zmq/zmqconfig.h\
|
|
zmq/zmqnotificationinterface.h \
|
|
zmq/zmqpublishnotifier.h
|
|
|
|
|
|
obj/build.h: FORCE
|
|
@$(MKDIR_P) $(builddir)/obj
|
|
@$(top_srcdir)/share/genbuild.sh $(abs_top_builddir)/src/obj/build.h \
|
|
$(abs_top_srcdir)
|
|
libdash_util_a-clientversion.$(OBJEXT): obj/build.h
|
|
|
|
# server: shared between dashd and dash-qt
|
|
libdash_server_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(MINIUPNPC_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS)
|
|
libdash_server_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libdash_server_a_SOURCES = \
|
|
activemasternode.cpp \
|
|
addrman.cpp \
|
|
addrdb.cpp \
|
|
alert.cpp \
|
|
batchedlogger.cpp \
|
|
bloom.cpp \
|
|
blockencodings.cpp \
|
|
chain.cpp \
|
|
checkpoints.cpp \
|
|
dsnotificationinterface.cpp \
|
|
evo/cbtx.cpp \
|
|
evo/deterministicmns.cpp \
|
|
evo/evodb.cpp \
|
|
evo/mnauth.cpp \
|
|
evo/providertx.cpp \
|
|
evo/simplifiedmns.cpp \
|
|
evo/specialtx.cpp \
|
|
httprpc.cpp \
|
|
httpserver.cpp \
|
|
init.cpp \
|
|
instantx.cpp \
|
|
dbwrapper.cpp \
|
|
governance.cpp \
|
|
governance-classes.cpp \
|
|
governance-object.cpp \
|
|
governance-validators.cpp \
|
|
governance-vote.cpp \
|
|
governance-votedb.cpp \
|
|
llmq/quorums.cpp \
|
|
llmq/quorums_blockprocessor.cpp \
|
|
llmq/quorums_commitment.cpp \
|
|
llmq/quorums_chainlocks.cpp \
|
|
llmq/quorums_debug.cpp \
|
|
llmq/quorums_dkgsessionhandler.cpp \
|
|
llmq/quorums_dkgsessionmgr.cpp \
|
|
llmq/quorums_dkgsession.cpp \
|
|
llmq/quorums_init.cpp \
|
|
llmq/quorums_instantsend.cpp \
|
|
llmq/quorums_signing.cpp \
|
|
llmq/quorums_signing_shares.cpp \
|
|
llmq/quorums_utils.cpp \
|
|
masternode-meta.cpp \
|
|
masternode-payments.cpp \
|
|
masternode-sync.cpp \
|
|
masternode-utils.cpp \
|
|
merkleblock.cpp \
|
|
messagesigner.cpp \
|
|
miner.cpp \
|
|
net.cpp \
|
|
netfulfilledman.cpp \
|
|
net_processing.cpp \
|
|
noui.cpp \
|
|
policy/fees.cpp \
|
|
policy/policy.cpp \
|
|
pow.cpp \
|
|
privatesend.cpp \
|
|
privatesend-server.cpp \
|
|
rest.cpp \
|
|
rpc/blockchain.cpp \
|
|
rpc/masternode.cpp \
|
|
rpc/governance.cpp \
|
|
rpc/mining.cpp \
|
|
rpc/misc.cpp \
|
|
rpc/net.cpp \
|
|
rpc/rawtransaction.cpp \
|
|
rpc/rpcevo.cpp \
|
|
rpc/rpcquorums.cpp \
|
|
rpc/server.cpp \
|
|
script/sigcache.cpp \
|
|
script/ismine.cpp \
|
|
sendalert.cpp \
|
|
spork.cpp \
|
|
timedata.cpp \
|
|
torcontrol.cpp \
|
|
txdb.cpp \
|
|
txmempool.cpp \
|
|
ui_interface.cpp \
|
|
validation.cpp \
|
|
validationinterface.cpp \
|
|
versionbits.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
if ENABLE_ZMQ
|
|
libdash_zmq_a_CPPFLAGS = $(BITCOIN_INCLUDES) $(ZMQ_CFLAGS)
|
|
libdash_zmq_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libdash_zmq_a_SOURCES = \
|
|
zmq/zmqabstractnotifier.cpp \
|
|
zmq/zmqnotificationinterface.cpp \
|
|
zmq/zmqpublishnotifier.cpp
|
|
endif
|
|
|
|
|
|
# wallet: shared between dashd and dash-qt, but only linked
|
|
# when wallet enabled
|
|
libdash_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libdash_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libdash_wallet_a_SOURCES = \
|
|
keepass.cpp \
|
|
privatesend-client.cpp \
|
|
privatesend-util.cpp \
|
|
wallet/crypter.cpp \
|
|
wallet/db.cpp \
|
|
wallet/rpcdump.cpp \
|
|
wallet/rpcwallet.cpp \
|
|
wallet/wallet.cpp \
|
|
wallet/walletdb.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
# crypto primitives library
|
|
crypto_libdash_crypto_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_CONFIG_INCLUDES) $(PIC_FLAGS)
|
|
crypto_libdash_crypto_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(PIC_FLAGS)
|
|
crypto_libdash_crypto_a_SOURCES = \
|
|
crypto/aes.cpp \
|
|
crypto/aes.h \
|
|
crypto/common.h \
|
|
crypto/hmac_sha256.cpp \
|
|
crypto/hmac_sha256.h \
|
|
crypto/hmac_sha512.cpp \
|
|
crypto/hmac_sha512.h \
|
|
crypto/ripemd160.cpp \
|
|
crypto/aes_helper.c \
|
|
crypto/ripemd160.h \
|
|
crypto/sha1.cpp \
|
|
crypto/sha1.h \
|
|
crypto/sha256.cpp \
|
|
crypto/sha256.h \
|
|
crypto/sha512.cpp \
|
|
crypto/sha512.h
|
|
|
|
# x11
|
|
crypto_libdash_crypto_a_SOURCES += \
|
|
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/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
|
|
|
|
# consensus: shared between all executables that validate any consensus rules.
|
|
libdash_consensus_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libdash_consensus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libdash_consensus_a_SOURCES = \
|
|
amount.h \
|
|
arith_uint256.cpp \
|
|
arith_uint256.h \
|
|
bls/bls.cpp \
|
|
bls/bls.h \
|
|
consensus/merkle.cpp \
|
|
consensus/merkle.h \
|
|
consensus/params.h \
|
|
consensus/validation.h \
|
|
hash.cpp \
|
|
hash.h \
|
|
prevector.h \
|
|
primitives/block.cpp \
|
|
primitives/block.h \
|
|
primitives/transaction.cpp \
|
|
primitives/transaction.h \
|
|
pubkey.cpp \
|
|
pubkey.h \
|
|
script/dashconsensus.cpp \
|
|
script/interpreter.cpp \
|
|
script/interpreter.h \
|
|
script/script.cpp \
|
|
script/script.h \
|
|
script/script_error.cpp \
|
|
script/script_error.h \
|
|
serialize.h \
|
|
streams.h \
|
|
tinyformat.h \
|
|
uint256.cpp \
|
|
uint256.h \
|
|
utilstrencodings.cpp \
|
|
utilstrencodings.h \
|
|
version.h
|
|
|
|
# common: shared between dashd, and dash-qt and non-server tools
|
|
libdash_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libdash_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libdash_common_a_SOURCES = \
|
|
amount.cpp \
|
|
base58.cpp \
|
|
bip39.cpp \
|
|
chainparams.cpp \
|
|
coins.cpp \
|
|
compressor.cpp \
|
|
core_read.cpp \
|
|
core_write.cpp \
|
|
hdchain.cpp \
|
|
key.cpp \
|
|
keystore.cpp \
|
|
netaddress.cpp \
|
|
netbase.cpp \
|
|
protocol.cpp \
|
|
saltedhasher.cpp \
|
|
scheduler.cpp \
|
|
script/sign.cpp \
|
|
script/standard.cpp \
|
|
warnings.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.
|
|
libdash_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libdash_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libdash_util_a_SOURCES = \
|
|
bls/bls_batchverifier.h \
|
|
bls/bls_ies.cpp \
|
|
bls/bls_ies.h \
|
|
bls/bls_worker.cpp \
|
|
bls/bls_worker.h \
|
|
support/lockedpool.cpp \
|
|
chainparamsbase.cpp \
|
|
clientversion.cpp \
|
|
compat/glibc_sanity.cpp \
|
|
compat/glibcxx_sanity.cpp \
|
|
compat/strnlen.cpp \
|
|
random.cpp \
|
|
rpc/protocol.cpp \
|
|
stacktraces.cpp \
|
|
support/cleanse.cpp \
|
|
sync.cpp \
|
|
threadinterrupt.cpp \
|
|
util.cpp \
|
|
utilmoneystr.cpp \
|
|
utilstrencodings.cpp \
|
|
utiltime.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
if GLIBC_BACK_COMPAT
|
|
libdash_util_a_SOURCES += compat/glibc_compat.cpp
|
|
AM_LDFLAGS += -Wl,--wrap=log2f -Wl,--wrap=__divmoddi4
|
|
endif
|
|
|
|
# cli: shared between dash-cli and dash-qt
|
|
libdash_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libdash_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libdash_cli_a_SOURCES = \
|
|
rpc/client.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
nodist_libdash_util_a_SOURCES = $(srcdir)/obj/build.h
|
|
#
|
|
|
|
# dashd binary #
|
|
dashd_SOURCES = dashd.cpp
|
|
dashd_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
dashd_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
dashd_LDFLAGS = $(LDFLAGS_WRAP_EXCEPTIONS) $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
|
|
|
if TARGET_WINDOWS
|
|
dashd_SOURCES += dashd-res.rc
|
|
endif
|
|
|
|
dashd_LDADD = \
|
|
$(LIBBITCOIN_SERVER) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_WALLET) \
|
|
$(LIBBITCOIN_ZMQ) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBLEVELDB) \
|
|
$(LIBMEMENV) \
|
|
$(LIBSECP256K1)
|
|
|
|
dashd_LDADD += $(BACKTRACE_LIB) $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(BLS_LIBS)
|
|
|
|
# dash-cli binary #
|
|
dash_cli_SOURCES = dash-cli.cpp
|
|
dash_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS)
|
|
dash_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
dash_cli_LDFLAGS = $(LDFLAGS_WRAP_EXCEPTIONS) $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
|
|
|
if TARGET_WINDOWS
|
|
dash_cli_SOURCES += dash-cli-res.rc
|
|
endif
|
|
|
|
dash_cli_LDADD = \
|
|
$(LIBBITCOIN_CLI) \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_CRYPTO)
|
|
dash_cli_LDADD += $(BACKTRACE_LIB) $(BOOST_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(EVENT_LIBS) $(BLS_LIBS)
|
|
#
|
|
|
|
# dash-tx binary #
|
|
dash_tx_SOURCES = dash-tx.cpp
|
|
dash_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
dash_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
dash_tx_LDFLAGS = $(LDFLAGS_WRAP_EXCEPTIONS) $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
|
|
|
if TARGET_WINDOWS
|
|
dash_tx_SOURCES += dash-tx-res.rc
|
|
endif
|
|
|
|
dash_tx_LDADD = \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBSECP256K1)
|
|
|
|
dash_tx_LDADD += $(BACKTRACE_LIB) $(BOOST_LIBS) $(CRYPTO_LIBS) $(BLS_LIBS)
|
|
#
|
|
|
|
# dashconsensus library #
|
|
if BUILD_BITCOIN_LIBS
|
|
include_HEADERS = script/dashconsensus.h
|
|
libdashconsensus_la_SOURCES = $(crypto_libdash_crypto_a_SOURCES) $(libdash_consensus_a_SOURCES)
|
|
|
|
if GLIBC_BACK_COMPAT
|
|
libdashconsensus_la_SOURCES += compat/glibc_compat.cpp
|
|
endif
|
|
|
|
libdashconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS)
|
|
libdashconsensus_la_LIBADD = $(LIBSECP256K1) $(BLS_LIBS)
|
|
libdashconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL
|
|
libdashconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
|
|
endif
|
|
#
|
|
|
|
CTAES_DIST = crypto/ctaes/bench.c
|
|
CTAES_DIST += crypto/ctaes/ctaes.c
|
|
CTAES_DIST += crypto/ctaes/ctaes.h
|
|
CTAES_DIST += crypto/ctaes/README.md
|
|
CTAES_DIST += crypto/ctaes/test.c
|
|
|
|
CLEANFILES = $(EXTRA_LIBRARIES)
|
|
|
|
CLEANFILES += *.gcda *.gcno
|
|
CLEANFILES += compat/*.gcda compat/*.gcno
|
|
CLEANFILES += consensus/*.gcda consensus/*.gcno
|
|
CLEANFILES += crypto/*.gcda crypto/*.gcno
|
|
CLEANFILES += policy/*.gcda policy/*.gcno
|
|
CLEANFILES += primitives/*.gcda primitives/*.gcno
|
|
CLEANFILES += script/*.gcda script/*.gcno
|
|
CLEANFILES += support/*.gcda support/*.gcno
|
|
CLEANFILES += univalue/*.gcda univalue/*.gcno
|
|
CLEANFILES += wallet/*.gcda wallet/*.gcno
|
|
CLEANFILES += wallet/test/*.gcda wallet/test/*.gcno
|
|
CLEANFILES += zmq/*.gcda zmq/*.gcno
|
|
|
|
IMMER_DIST = immer
|
|
|
|
DISTCLEANFILES = obj/build.h
|
|
|
|
EXTRA_DIST = $(CTAES_DIST)
|
|
EXTRA_DIST += $(IMMER_DIST)
|
|
|
|
|
|
config/dash-config.h: config/stamp-h1
|
|
@$(MAKE) -C $(top_builddir) $(subdir)/$(@)
|
|
config/stamp-h1: $(top_srcdir)/$(subdir)/config/dash-config.h.in $(top_builddir)/config.status
|
|
$(AM_V_at)$(MAKE) -C $(top_builddir) $(subdir)/$(@)
|
|
$(top_srcdir)/$(subdir)/config/dash-config.h.in: $(am__configure_deps)
|
|
$(AM_V_at)$(MAKE) -C $(top_srcdir) $(subdir)/config/dash-config.h.in
|
|
|
|
clean-local:
|
|
-$(MAKE) -C secp256k1 clean
|
|
-$(MAKE) -C univalue clean
|
|
-rm -f leveldb/*/*.gcda leveldb/*/*.gcno leveldb/helpers/memenv/*.gcda leveldb/helpers/memenv/*.gcno
|
|
-rm -f config.h
|
|
-rm -rf test/__pycache__
|
|
|
|
.rc.o:
|
|
@test -f $(WINDRES)
|
|
## FIXME: How to get the appropriate modulename_CPPFLAGS in here?
|
|
$(AM_V_GEN) $(WINDRES) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) -DWINDRES_PREPROC -i $< -o $@
|
|
|
|
.mm.o:
|
|
$(AM_V_CXX) $(OBJCXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|
$(CPPFLAGS) $(AM_CXXFLAGS) $(QT_INCLUDES) $(AM_CXXFLAGS) $(PIE_FLAGS) $(CXXFLAGS) -c -o $@ $<
|
|
|
|
check-symbols: $(bin_PROGRAMS)
|
|
if GLIBC_BACK_COMPAT
|
|
@echo "Checking glibc back compat..."
|
|
$(AM_V_at) READELF=$(READELF) CPPFILT=$(CPPFILT) $(top_srcdir)/contrib/devtools/symbol-check.py < $(bin_PROGRAMS)
|
|
endif
|
|
|
|
check-security: $(bin_PROGRAMS)
|
|
if HARDEN
|
|
@echo "Checking binary security..."
|
|
$(AM_V_at) READELF=$(READELF) OBJDUMP=$(OBJDUMP) $(top_srcdir)/contrib/devtools/security-check.py < $(bin_PROGRAMS)
|
|
endif
|
|
|
|
%.pb.cc %.pb.h: %.proto
|
|
@test -f $(PROTOC)
|
|
$(AM_V_GEN) $(PROTOC) --cpp_out=$(@D) --proto_path=$(<D) $<
|
|
|
|
if EMBEDDED_LEVELDB
|
|
include Makefile.leveldb.include
|
|
endif
|
|
|
|
if ENABLE_TESTS
|
|
include Makefile.test.include
|
|
endif
|
|
|
|
if ENABLE_BENCH
|
|
include Makefile.bench.include
|
|
endif
|
|
|
|
if ENABLE_QT
|
|
include Makefile.qt.include
|
|
endif
|
|
|
|
if ENABLE_QT_TESTS
|
|
include Makefile.qttest.include
|
|
endif
|