Reviewers: Note that CTxMemPool now requires a non-defaulted
CTxMemPool::Options for its constructor. Meaning that there's no need to
worry about a stray CTxMemPool constructor somewhere defaulting to
something incorrect. All instances of CTxMemPool construction are
addressed here in this commit.
We set options for CTxMemPool and construct it in many different ways. A
good example can be seen in how we determine CTxMemPool's check_ratio in
AppInitMain(...).
1. We first set the default based on chainparams's
DefaultConsistencyChecks()
2. Then, we apply the ArgsManager option on top of that default
3. Finally, we clamp the result of that between 0 and 1 Million
With this patch, most CTxMemPool construction are along the lines of:
MemPoolOptions mempool_opts{...default overrides...};
ApplyArgsManOptions(argsman, mempool_opts);
...hard overrides...
CTxMemPool pool{mempool_opts};
This "compositional" style of building options means that we can omit
unnecessary/irrelevant steps wherever we want but also maintain full
customizability.
For example:
- For users of libbitcoinkernel, where we eventually want to remove
ArgsManager, they simply won't call (or even know about)
ApplyArgsManOptions.
- See src/init.cpp to see how the check_ratio CTxMemPool option works
after this change.
A MemPoolOptionsForTest helper was also added and used by tests/fuzz
tests where a local CTxMemPool needed to be created.
The change in src/test/fuzz/tx_pool.cpp seemingly changes behaviour by
applying ArgsManager options on top of the CTxMemPool::Options defaults.
However, in future commits where we introduce flags like -maxmempool,
the call to ApplyArgsManOptions is actually what preserves the existing
behaviour. Previously, although it wasn't obvious, our CTxMemPool would
consult gArgs for flags like -maxmempool when it needed it, so it
already relied on ArgsManager information. This patchset just laid bare
the obfuscatory perils of globals.
[META] As this patchset progresses, we will move more and more
CTxMemPool-relevant options into MemPoolOptions and add their
ArgsMan-related logic to ApplyArgsManOptions.
1076 lines
29 KiB
Makefile
1076 lines
29 KiB
Makefile
# Copyright (c) 2013-2016 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
# Pattern rule to print variables, e.g. make print-top_srcdir
|
|
print-%: FORCE
|
|
@echo '$*'='$($*)'
|
|
|
|
DIST_SUBDIRS = secp256k1
|
|
|
|
AM_LDFLAGS = $(LIBTOOL_LDFLAGS) $(HARDENED_LDFLAGS) $(GPROF_LDFLAGS) $(SANITIZER_LDFLAGS) $(LTO_LDFLAGS) $(CORE_LDFLAGS)
|
|
AM_CXXFLAGS = $(DEBUG_CXXFLAGS) $(HARDENED_CXXFLAGS) $(WARN_CXXFLAGS) $(NOWARN_CXXFLAGS) $(ERROR_CXXFLAGS) $(GPROF_CXXFLAGS) $(SANITIZER_CXXFLAGS) $(LTO_CXXFLAGS) $(CORE_CXXFLAGS)
|
|
AM_CPPFLAGS = $(DEBUG_CPPFLAGS) $(HARDENED_CPPFLAGS) $(CORE_CPPFLAGS)
|
|
AM_LIBTOOLFLAGS = --preserve-dup-deps
|
|
PTHREAD_FLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
|
|
EXTRA_LIBRARIES =
|
|
|
|
lib_LTLIBRARIES =
|
|
noinst_LTLIBRARIES =
|
|
|
|
bin_PROGRAMS =
|
|
noinst_PROGRAMS =
|
|
TESTS =
|
|
BENCHMARKS =
|
|
|
|
BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS)
|
|
|
|
LIBBITCOIN_NODE=libbitcoin_node.a
|
|
LIBBITCOIN_COMMON=libbitcoin_common.a
|
|
LIBBITCOIN_CONSENSUS=libbitcoin_consensus.a
|
|
LIBBITCOIN_CLI=libbitcoin_cli.a
|
|
LIBBITCOIN_UTIL=libbitcoin_util.a
|
|
LIBBITCOIN_CRYPTO_BASE=crypto/libbitcoin_crypto_base.la
|
|
LIBBITCOINQT=qt/libbitcoinqt.a
|
|
LIBSECP256K1=secp256k1/libsecp256k1.la
|
|
|
|
if ENABLE_ZMQ
|
|
LIBBITCOIN_ZMQ=libbitcoin_zmq.a
|
|
endif
|
|
if BUILD_BITCOIN_LIBS
|
|
LIBBITCOINCONSENSUS=libbitcoinconsensus.la
|
|
endif
|
|
if BUILD_BITCOIN_KERNEL_LIB
|
|
LIBBITCOINKERNEL=libbitcoinkernel.la
|
|
endif
|
|
if ENABLE_WALLET
|
|
LIBBITCOIN_WALLET=libbitcoin_wallet.a
|
|
LIBBITCOIN_WALLET_TOOL=libbitcoin_wallet_tool.a
|
|
endif
|
|
|
|
LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE)
|
|
if ENABLE_SSE41
|
|
LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.la
|
|
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE41)
|
|
endif
|
|
if ENABLE_AVX2
|
|
LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.la
|
|
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_AVX2)
|
|
endif
|
|
if ENABLE_X86_SHANI
|
|
LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libbitcoin_crypto_x86_shani.la
|
|
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_X86_SHANI)
|
|
endif
|
|
if ENABLE_ARM_SHANI
|
|
LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libbitcoin_crypto_arm_shani.la
|
|
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_ARM_SHANI)
|
|
endif
|
|
noinst_LTLIBRARIES += $(LIBBITCOIN_CRYPTO)
|
|
|
|
$(LIBSECP256K1): $(wildcard secp256k1/src/*.h) $(wildcard secp256k1/src/*.c) $(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_UTIL) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_NODE) \
|
|
$(LIBBITCOIN_CLI) \
|
|
$(LIBBITCOIN_IPC) \
|
|
$(LIBBITCOIN_WALLET) \
|
|
$(LIBBITCOIN_WALLET_TOOL) \
|
|
$(LIBBITCOIN_ZMQ)
|
|
|
|
if BUILD_BITCOIND
|
|
bin_PROGRAMS += bitcoind
|
|
endif
|
|
|
|
if BUILD_BITCOIN_NODE
|
|
bin_PROGRAMS += bitcoin-node
|
|
endif
|
|
|
|
if BUILD_BITCOIN_CLI
|
|
bin_PROGRAMS += bitcoin-cli
|
|
endif
|
|
|
|
if BUILD_BITCOIN_TX
|
|
bin_PROGRAMS += bitcoin-tx
|
|
endif
|
|
|
|
if ENABLE_WALLET
|
|
if BUILD_BITCOIN_WALLET
|
|
bin_PROGRAMS += bitcoin-wallet
|
|
endif
|
|
endif
|
|
|
|
if BUILD_BITCOIN_UTIL
|
|
bin_PROGRAMS += bitcoin-util
|
|
endif
|
|
|
|
if BUILD_BITCOIN_CHAINSTATE
|
|
bin_PROGRAMS += bitcoin-chainstate
|
|
endif
|
|
|
|
.PHONY: FORCE check-symbols check-security
|
|
# bitcoin core #
|
|
BITCOIN_CORE_H = \
|
|
addrdb.h \
|
|
addrman.h \
|
|
addrman_impl.h \
|
|
attributes.h \
|
|
banman.h \
|
|
base58.h \
|
|
bech32.h \
|
|
blockencodings.h \
|
|
blockfilter.h \
|
|
chain.h \
|
|
chainparams.h \
|
|
chainparamsbase.h \
|
|
chainparamsseeds.h \
|
|
checkqueue.h \
|
|
clientversion.h \
|
|
coins.h \
|
|
common/bloom.h \
|
|
compat.h \
|
|
compat/assumptions.h \
|
|
compat/byteswap.h \
|
|
compat/cpuid.h \
|
|
compat/endian.h \
|
|
compressor.h \
|
|
consensus/consensus.h \
|
|
consensus/tx_check.h \
|
|
consensus/tx_verify.h \
|
|
core_io.h \
|
|
core_memusage.h \
|
|
cuckoocache.h \
|
|
dbwrapper.h \
|
|
deploymentinfo.h \
|
|
deploymentstatus.h \
|
|
external_signer.h \
|
|
flatfile.h \
|
|
fs.h \
|
|
httprpc.h \
|
|
httpserver.h \
|
|
i2p.h \
|
|
index/base.h \
|
|
index/blockfilterindex.h \
|
|
index/coinstatsindex.h \
|
|
index/disktxpos.h \
|
|
index/txindex.h \
|
|
indirectmap.h \
|
|
init.h \
|
|
init/common.h \
|
|
interfaces/chain.h \
|
|
interfaces/echo.h \
|
|
interfaces/handler.h \
|
|
interfaces/init.h \
|
|
interfaces/ipc.h \
|
|
interfaces/node.h \
|
|
interfaces/wallet.h \
|
|
kernel/chainstatemanager_opts.h \
|
|
kernel/checks.h \
|
|
kernel/coinstats.h \
|
|
kernel/context.h \
|
|
kernel/mempool_options.h \
|
|
key.h \
|
|
key_io.h \
|
|
logging.h \
|
|
logging/timer.h \
|
|
mapport.h \
|
|
mempool_args.h \
|
|
memusage.h \
|
|
merkleblock.h \
|
|
net.h \
|
|
net_permissions.h \
|
|
net_processing.h \
|
|
net_types.h \
|
|
netaddress.h \
|
|
netbase.h \
|
|
netgroup.h \
|
|
netmessagemaker.h \
|
|
node/blockstorage.h \
|
|
node/caches.h \
|
|
node/chainstate.h \
|
|
node/coin.h \
|
|
node/context.h \
|
|
node/miner.h \
|
|
node/minisketchwrapper.h \
|
|
node/psbt.h \
|
|
node/transaction.h \
|
|
node/interface_ui.h \
|
|
node/utxo_snapshot.h \
|
|
noui.h \
|
|
outputtype.h \
|
|
policy/feerate.h \
|
|
policy/fees.h \
|
|
policy/packages.h \
|
|
policy/policy.h \
|
|
policy/rbf.h \
|
|
policy/settings.h \
|
|
pow.h \
|
|
protocol.h \
|
|
psbt.h \
|
|
random.h \
|
|
randomenv.h \
|
|
rest.h \
|
|
reverse_iterator.h \
|
|
rpc/blockchain.h \
|
|
rpc/client.h \
|
|
rpc/mempool.h \
|
|
rpc/mining.h \
|
|
rpc/protocol.h \
|
|
rpc/rawtransaction_util.h \
|
|
rpc/register.h \
|
|
rpc/request.h \
|
|
rpc/server.h \
|
|
rpc/server_util.h \
|
|
rpc/util.h \
|
|
scheduler.h \
|
|
script/descriptor.h \
|
|
script/keyorigin.h \
|
|
script/miniscript.h \
|
|
script/sigcache.h \
|
|
script/sign.h \
|
|
script/signingprovider.h \
|
|
script/standard.h \
|
|
shutdown.h \
|
|
signet.h \
|
|
streams.h \
|
|
support/allocators/secure.h \
|
|
support/allocators/zeroafterfree.h \
|
|
support/cleanse.h \
|
|
support/events.h \
|
|
support/lockedpool.h \
|
|
sync.h \
|
|
threadinterrupt.h \
|
|
threadsafety.h \
|
|
timedata.h \
|
|
torcontrol.h \
|
|
txdb.h \
|
|
txmempool.h \
|
|
txorphanage.h \
|
|
txrequest.h \
|
|
undo.h \
|
|
util/asmap.h \
|
|
util/bip32.h \
|
|
util/bytevectorhash.h \
|
|
util/check.h \
|
|
util/designator.h \
|
|
util/epochguard.h \
|
|
util/error.h \
|
|
util/fastrange.h \
|
|
util/fees.h \
|
|
util/getuniquepath.h \
|
|
util/golombrice.h \
|
|
util/hash_type.h \
|
|
util/hasher.h \
|
|
util/macros.h \
|
|
util/message.h \
|
|
util/moneystr.h \
|
|
util/overflow.h \
|
|
util/overloaded.h \
|
|
util/rbf.h \
|
|
util/readwritefile.h \
|
|
util/serfloat.h \
|
|
util/settings.h \
|
|
util/sock.h \
|
|
util/spanparsing.h \
|
|
util/string.h \
|
|
util/syscall_sandbox.h \
|
|
util/syserror.h \
|
|
util/system.h \
|
|
util/thread.h \
|
|
util/threadnames.h \
|
|
util/time.h \
|
|
util/tokenpipe.h \
|
|
util/trace.h \
|
|
util/translation.h \
|
|
util/types.h \
|
|
util/ui_change_type.h \
|
|
util/url.h \
|
|
util/vector.h \
|
|
validation.h \
|
|
validationinterface.h \
|
|
versionbits.h \
|
|
wallet/bdb.h \
|
|
wallet/coincontrol.h \
|
|
wallet/coinselection.h \
|
|
wallet/context.h \
|
|
wallet/crypter.h \
|
|
wallet/db.h \
|
|
wallet/dump.h \
|
|
wallet/external_signer_scriptpubkeyman.h \
|
|
wallet/feebumper.h \
|
|
wallet/fees.h \
|
|
wallet/ismine.h \
|
|
wallet/load.h \
|
|
wallet/receive.h \
|
|
wallet/rpc/util.h \
|
|
wallet/rpc/wallet.h \
|
|
wallet/salvage.h \
|
|
wallet/scriptpubkeyman.h \
|
|
wallet/spend.h \
|
|
wallet/sqlite.h \
|
|
wallet/transaction.h \
|
|
wallet/wallet.h \
|
|
wallet/walletdb.h \
|
|
wallet/wallettool.h \
|
|
wallet/walletutil.h \
|
|
walletinitinterface.h \
|
|
warnings.h \
|
|
zmq/zmqabstractnotifier.h \
|
|
zmq/zmqnotificationinterface.h \
|
|
zmq/zmqpublishnotifier.h \
|
|
zmq/zmqrpc.h \
|
|
zmq/zmqutil.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 bitcoind and bitcoin-qt
|
|
# Contains code accessing mempool and chain state that is meant to be separated
|
|
# from wallet and gui code (see node/README.md). Shared code should go in
|
|
# libbitcoin_common or libbitcoin_util libraries, instead.
|
|
libbitcoin_node_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(MINIUPNPC_CPPFLAGS) $(NATPMP_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS)
|
|
libbitcoin_node_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libbitcoin_node_a_SOURCES = \
|
|
addrdb.cpp \
|
|
addrman.cpp \
|
|
banman.cpp \
|
|
blockencodings.cpp \
|
|
blockfilter.cpp \
|
|
chain.cpp \
|
|
consensus/tx_verify.cpp \
|
|
dbwrapper.cpp \
|
|
deploymentstatus.cpp \
|
|
flatfile.cpp \
|
|
httprpc.cpp \
|
|
httpserver.cpp \
|
|
i2p.cpp \
|
|
index/base.cpp \
|
|
index/blockfilterindex.cpp \
|
|
index/coinstatsindex.cpp \
|
|
index/txindex.cpp \
|
|
init.cpp \
|
|
kernel/checks.cpp \
|
|
kernel/coinstats.cpp \
|
|
kernel/context.cpp \
|
|
mapport.cpp \
|
|
mempool_args.cpp \
|
|
net.cpp \
|
|
netgroup.cpp \
|
|
net_processing.cpp \
|
|
node/blockstorage.cpp \
|
|
node/caches.cpp \
|
|
node/chainstate.cpp \
|
|
node/coin.cpp \
|
|
node/context.cpp \
|
|
node/interfaces.cpp \
|
|
node/miner.cpp \
|
|
node/minisketchwrapper.cpp \
|
|
node/psbt.cpp \
|
|
node/transaction.cpp \
|
|
node/interface_ui.cpp \
|
|
noui.cpp \
|
|
policy/fees.cpp \
|
|
policy/packages.cpp \
|
|
policy/rbf.cpp \
|
|
policy/settings.cpp \
|
|
pow.cpp \
|
|
rest.cpp \
|
|
rpc/blockchain.cpp \
|
|
rpc/fees.cpp \
|
|
rpc/mempool.cpp \
|
|
rpc/mining.cpp \
|
|
rpc/node.cpp \
|
|
rpc/net.cpp \
|
|
rpc/output_script.cpp \
|
|
rpc/rawtransaction.cpp \
|
|
rpc/server.cpp \
|
|
rpc/server_util.cpp \
|
|
rpc/signmessage.cpp \
|
|
rpc/txoutproof.cpp \
|
|
script/sigcache.cpp \
|
|
shutdown.cpp \
|
|
signet.cpp \
|
|
timedata.cpp \
|
|
torcontrol.cpp \
|
|
txdb.cpp \
|
|
txmempool.cpp \
|
|
txorphanage.cpp \
|
|
txrequest.cpp \
|
|
validation.cpp \
|
|
validationinterface.cpp \
|
|
versionbits.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
if ENABLE_WALLET
|
|
libbitcoin_node_a_SOURCES += wallet/init.cpp
|
|
libbitcoin_node_a_CPPFLAGS += $(BDB_CPPFLAGS)
|
|
endif
|
|
if !ENABLE_WALLET
|
|
libbitcoin_node_a_SOURCES += dummywallet.cpp
|
|
endif
|
|
|
|
if ENABLE_ZMQ
|
|
libbitcoin_zmq_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(ZMQ_CFLAGS)
|
|
libbitcoin_zmq_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libbitcoin_zmq_a_SOURCES = \
|
|
zmq/zmqabstractnotifier.cpp \
|
|
zmq/zmqnotificationinterface.cpp \
|
|
zmq/zmqpublishnotifier.cpp \
|
|
zmq/zmqrpc.cpp \
|
|
zmq/zmqutil.cpp
|
|
endif
|
|
|
|
|
|
# wallet: shared between bitcoind and bitcoin-qt, but only linked
|
|
# when wallet enabled
|
|
libbitcoin_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BDB_CPPFLAGS) $(SQLITE_CFLAGS)
|
|
libbitcoin_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libbitcoin_wallet_a_SOURCES = \
|
|
wallet/coincontrol.cpp \
|
|
wallet/context.cpp \
|
|
wallet/crypter.cpp \
|
|
wallet/db.cpp \
|
|
wallet/dump.cpp \
|
|
wallet/external_signer_scriptpubkeyman.cpp \
|
|
wallet/feebumper.cpp \
|
|
wallet/fees.cpp \
|
|
wallet/interfaces.cpp \
|
|
wallet/load.cpp \
|
|
wallet/receive.cpp \
|
|
wallet/rpc/addresses.cpp \
|
|
wallet/rpc/backup.cpp \
|
|
wallet/rpc/coins.cpp \
|
|
wallet/rpc/encrypt.cpp \
|
|
wallet/rpc/spend.cpp \
|
|
wallet/rpc/signmessage.cpp \
|
|
wallet/rpc/transactions.cpp \
|
|
wallet/rpc/util.cpp \
|
|
wallet/rpc/wallet.cpp \
|
|
wallet/scriptpubkeyman.cpp \
|
|
wallet/spend.cpp \
|
|
wallet/transaction.cpp \
|
|
wallet/wallet.cpp \
|
|
wallet/walletdb.cpp \
|
|
wallet/walletutil.cpp \
|
|
wallet/coinselection.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
if USE_SQLITE
|
|
libbitcoin_wallet_a_SOURCES += wallet/sqlite.cpp
|
|
endif
|
|
if USE_BDB
|
|
libbitcoin_wallet_a_SOURCES += wallet/bdb.cpp wallet/salvage.cpp
|
|
endif
|
|
|
|
libbitcoin_wallet_tool_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libbitcoin_wallet_tool_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libbitcoin_wallet_tool_a_SOURCES = \
|
|
wallet/wallettool.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
# crypto primitives library
|
|
crypto_libbitcoin_crypto_base_la_CPPFLAGS = $(AM_CPPFLAGS)
|
|
|
|
# Specify -static in both CXXFLAGS and LDFLAGS so libtool will only build a
|
|
# static version of this library. We don't need a dynamic version, and a dynamic
|
|
# version can't be used on windows anyway because the library doesn't currently
|
|
# export DLL symbols.
|
|
crypto_libbitcoin_crypto_base_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
|
|
crypto_libbitcoin_crypto_base_la_LDFLAGS = $(AM_LDFLAGS) -static
|
|
|
|
crypto_libbitcoin_crypto_base_la_SOURCES = \
|
|
crypto/aes.cpp \
|
|
crypto/aes.h \
|
|
crypto/chacha_poly_aead.h \
|
|
crypto/chacha_poly_aead.cpp \
|
|
crypto/chacha20.h \
|
|
crypto/chacha20.cpp \
|
|
crypto/common.h \
|
|
crypto/hkdf_sha256_32.cpp \
|
|
crypto/hkdf_sha256_32.h \
|
|
crypto/hmac_sha256.cpp \
|
|
crypto/hmac_sha256.h \
|
|
crypto/hmac_sha512.cpp \
|
|
crypto/hmac_sha512.h \
|
|
crypto/poly1305.h \
|
|
crypto/poly1305.cpp \
|
|
crypto/muhash.h \
|
|
crypto/muhash.cpp \
|
|
crypto/ripemd160.cpp \
|
|
crypto/ripemd160.h \
|
|
crypto/sha1.cpp \
|
|
crypto/sha1.h \
|
|
crypto/sha256.cpp \
|
|
crypto/sha256.h \
|
|
crypto/sha3.cpp \
|
|
crypto/sha3.h \
|
|
crypto/sha512.cpp \
|
|
crypto/sha512.h \
|
|
crypto/siphash.cpp \
|
|
crypto/siphash.h
|
|
|
|
if USE_ASM
|
|
crypto_libbitcoin_crypto_base_la_SOURCES += crypto/sha256_sse4.cpp
|
|
endif
|
|
|
|
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
|
|
# CXXFLAGS above
|
|
crypto_libbitcoin_crypto_sse41_la_LDFLAGS = $(AM_LDFLAGS) -static
|
|
crypto_libbitcoin_crypto_sse41_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
|
|
crypto_libbitcoin_crypto_sse41_la_CPPFLAGS = $(AM_CPPFLAGS)
|
|
crypto_libbitcoin_crypto_sse41_la_CXXFLAGS += $(SSE41_CXXFLAGS)
|
|
crypto_libbitcoin_crypto_sse41_la_CPPFLAGS += -DENABLE_SSE41
|
|
crypto_libbitcoin_crypto_sse41_la_SOURCES = crypto/sha256_sse41.cpp
|
|
|
|
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
|
|
# CXXFLAGS above
|
|
crypto_libbitcoin_crypto_avx2_la_LDFLAGS = $(AM_LDFLAGS) -static
|
|
crypto_libbitcoin_crypto_avx2_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
|
|
crypto_libbitcoin_crypto_avx2_la_CPPFLAGS = $(AM_CPPFLAGS)
|
|
crypto_libbitcoin_crypto_avx2_la_CXXFLAGS += $(AVX2_CXXFLAGS)
|
|
crypto_libbitcoin_crypto_avx2_la_CPPFLAGS += -DENABLE_AVX2
|
|
crypto_libbitcoin_crypto_avx2_la_SOURCES = crypto/sha256_avx2.cpp
|
|
|
|
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
|
|
# CXXFLAGS above
|
|
crypto_libbitcoin_crypto_x86_shani_la_LDFLAGS = $(AM_LDFLAGS) -static
|
|
crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
|
|
crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS = $(AM_CPPFLAGS)
|
|
crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS += $(X86_SHANI_CXXFLAGS)
|
|
crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS += -DENABLE_X86_SHANI
|
|
crypto_libbitcoin_crypto_x86_shani_la_SOURCES = crypto/sha256_x86_shani.cpp
|
|
|
|
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
|
|
# CXXFLAGS above
|
|
crypto_libbitcoin_crypto_arm_shani_la_LDFLAGS = $(AM_LDFLAGS) -static
|
|
crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
|
|
crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS = $(AM_CPPFLAGS)
|
|
crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS += $(ARM_SHANI_CXXFLAGS)
|
|
crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS += -DENABLE_ARM_SHANI
|
|
crypto_libbitcoin_crypto_arm_shani_la_SOURCES = crypto/sha256_arm_shani.cpp
|
|
|
|
# consensus: shared between all executables that validate any consensus rules.
|
|
libbitcoin_consensus_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libbitcoin_consensus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libbitcoin_consensus_a_SOURCES = \
|
|
arith_uint256.cpp \
|
|
arith_uint256.h \
|
|
consensus/amount.h \
|
|
consensus/merkle.cpp \
|
|
consensus/merkle.h \
|
|
consensus/params.h \
|
|
consensus/tx_check.cpp \
|
|
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/bitcoinconsensus.cpp \
|
|
script/interpreter.cpp \
|
|
script/interpreter.h \
|
|
script/script.cpp \
|
|
script/script.h \
|
|
script/script_error.cpp \
|
|
script/script_error.h \
|
|
serialize.h \
|
|
span.h \
|
|
tinyformat.h \
|
|
uint256.cpp \
|
|
uint256.h \
|
|
util/strencodings.cpp \
|
|
util/strencodings.h \
|
|
version.h
|
|
|
|
# common: shared between bitcoind, and bitcoin-qt and non-server tools
|
|
libbitcoin_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libbitcoin_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libbitcoin_common_a_SOURCES = \
|
|
base58.cpp \
|
|
bech32.cpp \
|
|
chainparams.cpp \
|
|
coins.cpp \
|
|
common/bloom.cpp \
|
|
compressor.cpp \
|
|
core_read.cpp \
|
|
core_write.cpp \
|
|
deploymentinfo.cpp \
|
|
external_signer.cpp \
|
|
init/common.cpp \
|
|
key.cpp \
|
|
key_io.cpp \
|
|
merkleblock.cpp \
|
|
net_types.cpp \
|
|
netaddress.cpp \
|
|
netbase.cpp \
|
|
net_permissions.cpp \
|
|
outputtype.cpp \
|
|
policy/feerate.cpp \
|
|
policy/policy.cpp \
|
|
protocol.cpp \
|
|
psbt.cpp \
|
|
rpc/rawtransaction_util.cpp \
|
|
rpc/external_signer.cpp \
|
|
rpc/util.cpp \
|
|
scheduler.cpp \
|
|
script/descriptor.cpp \
|
|
script/miniscript.cpp \
|
|
script/sign.cpp \
|
|
script/signingprovider.cpp \
|
|
script/standard.cpp \
|
|
warnings.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
# util: shared between all executables.
|
|
libbitcoin_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libbitcoin_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libbitcoin_util_a_SOURCES = \
|
|
support/lockedpool.cpp \
|
|
chainparamsbase.cpp \
|
|
clientversion.cpp \
|
|
fs.cpp \
|
|
interfaces/echo.cpp \
|
|
interfaces/handler.cpp \
|
|
interfaces/init.cpp \
|
|
logging.cpp \
|
|
random.cpp \
|
|
randomenv.cpp \
|
|
rpc/request.cpp \
|
|
support/cleanse.cpp \
|
|
sync.cpp \
|
|
threadinterrupt.cpp \
|
|
util/asmap.cpp \
|
|
util/bip32.cpp \
|
|
util/bytevectorhash.cpp \
|
|
util/check.cpp \
|
|
util/error.cpp \
|
|
util/fees.cpp \
|
|
util/getuniquepath.cpp \
|
|
util/hasher.cpp \
|
|
util/sock.cpp \
|
|
util/syserror.cpp \
|
|
util/system.cpp \
|
|
util/message.cpp \
|
|
util/moneystr.cpp \
|
|
util/rbf.cpp \
|
|
util/readwritefile.cpp \
|
|
util/settings.cpp \
|
|
util/thread.cpp \
|
|
util/threadnames.cpp \
|
|
util/serfloat.cpp \
|
|
util/spanparsing.cpp \
|
|
util/strencodings.cpp \
|
|
util/string.cpp \
|
|
util/syscall_sandbox.cpp \
|
|
util/time.cpp \
|
|
util/tokenpipe.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
if USE_LIBEVENT
|
|
libbitcoin_util_a_SOURCES += util/url.cpp
|
|
endif
|
|
|
|
# cli: shared between bitcoin-cli and bitcoin-qt
|
|
libbitcoin_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libbitcoin_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
libbitcoin_cli_a_SOURCES = \
|
|
compat/stdin.h \
|
|
compat/stdin.cpp \
|
|
rpc/client.cpp \
|
|
$(BITCOIN_CORE_H)
|
|
|
|
nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
|
|
#
|
|
|
|
# bitcoind & bitcoin-node binaries #
|
|
bitcoin_daemon_sources = bitcoind.cpp
|
|
bitcoin_bin_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
bitcoin_bin_cxxflags = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
bitcoin_bin_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
|
|
|
if TARGET_WINDOWS
|
|
bitcoin_daemon_sources += bitcoind-res.rc
|
|
endif
|
|
|
|
bitcoin_bin_ldadd = \
|
|
$(LIBBITCOIN_WALLET) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_ZMQ) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBLEVELDB) \
|
|
$(LIBMEMENV) \
|
|
$(LIBSECP256K1)
|
|
|
|
bitcoin_bin_ldadd += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(SQLITE_LIBS)
|
|
|
|
bitcoind_SOURCES = $(bitcoin_daemon_sources) init/bitcoind.cpp
|
|
bitcoind_CPPFLAGS = $(bitcoin_bin_cppflags)
|
|
bitcoind_CXXFLAGS = $(bitcoin_bin_cxxflags)
|
|
bitcoind_LDFLAGS = $(bitcoin_bin_ldflags)
|
|
bitcoind_LDADD = $(LIBBITCOIN_NODE) $(bitcoin_bin_ldadd)
|
|
|
|
bitcoin_node_SOURCES = $(bitcoin_daemon_sources) init/bitcoin-node.cpp
|
|
bitcoin_node_CPPFLAGS = $(bitcoin_bin_cppflags)
|
|
bitcoin_node_CXXFLAGS = $(bitcoin_bin_cxxflags)
|
|
bitcoin_node_LDFLAGS = $(bitcoin_bin_ldflags)
|
|
bitcoin_node_LDADD = $(LIBBITCOIN_NODE) $(bitcoin_bin_ldadd) $(LIBBITCOIN_IPC) $(LIBMULTIPROCESS_LIBS)
|
|
|
|
# bitcoin-cli binary #
|
|
bitcoin_cli_SOURCES = bitcoin-cli.cpp
|
|
bitcoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS)
|
|
bitcoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
bitcoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
|
|
|
if TARGET_WINDOWS
|
|
bitcoin_cli_SOURCES += bitcoin-cli-res.rc
|
|
endif
|
|
|
|
bitcoin_cli_LDADD = \
|
|
$(LIBBITCOIN_CLI) \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_CRYPTO)
|
|
|
|
bitcoin_cli_LDADD += $(EVENT_LIBS)
|
|
#
|
|
|
|
# bitcoin-tx binary #
|
|
bitcoin_tx_SOURCES = bitcoin-tx.cpp
|
|
bitcoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
bitcoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
bitcoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
|
|
|
if TARGET_WINDOWS
|
|
bitcoin_tx_SOURCES += bitcoin-tx-res.rc
|
|
endif
|
|
|
|
bitcoin_tx_LDADD = \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBSECP256K1)
|
|
#
|
|
|
|
# bitcoin-wallet binary #
|
|
bitcoin_wallet_SOURCES = bitcoin-wallet.cpp
|
|
bitcoin_wallet_SOURCES += init/bitcoin-wallet.cpp
|
|
bitcoin_wallet_CPPFLAGS = $(bitcoin_bin_cppflags)
|
|
bitcoin_wallet_CXXFLAGS = $(bitcoin_bin_cxxflags)
|
|
bitcoin_wallet_LDFLAGS = $(bitcoin_bin_ldflags)
|
|
bitcoin_wallet_LDADD = \
|
|
$(LIBBITCOIN_WALLET_TOOL) \
|
|
$(LIBBITCOIN_WALLET) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBSECP256K1) \
|
|
$(BDB_LIBS) \
|
|
$(SQLITE_LIBS)
|
|
|
|
if TARGET_WINDOWS
|
|
bitcoin_wallet_SOURCES += bitcoin-wallet-res.rc
|
|
endif
|
|
#
|
|
|
|
# bitcoin-util binary #
|
|
bitcoin_util_SOURCES = bitcoin-util.cpp
|
|
bitcoin_util_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
bitcoin_util_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
bitcoin_util_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
|
|
|
if TARGET_WINDOWS
|
|
bitcoin_util_SOURCES += bitcoin-util-res.rc
|
|
endif
|
|
|
|
bitcoin_util_LDADD = \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBSECP256K1)
|
|
#
|
|
|
|
# bitcoin-chainstate binary #
|
|
bitcoin_chainstate_SOURCES = bitcoin-chainstate.cpp
|
|
bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
|
|
# $(LIBTOOL_APP_LDFLAGS) deliberately omitted here so that we can test linking
|
|
# bitcoin-chainstate against libbitcoinkernel as a shared or static library by
|
|
# setting --{en,dis}able-shared.
|
|
bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(PTHREAD_FLAGS)
|
|
bitcoin_chainstate_LDADD = $(LIBBITCOINKERNEL)
|
|
#
|
|
|
|
# bitcoinkernel library #
|
|
if BUILD_BITCOIN_KERNEL_LIB
|
|
lib_LTLIBRARIES += $(LIBBITCOINKERNEL)
|
|
|
|
libbitcoinkernel_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) $(PTHREAD_FLAGS)
|
|
libbitcoinkernel_la_LIBADD = $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1)
|
|
libbitcoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT)
|
|
|
|
# libbitcoinkernel requires default symbol visibility, explicitly specify that
|
|
# here so that things still work even when user configures with
|
|
# --enable-reduce-exports
|
|
#
|
|
# Note this is a quick hack that will be removed as we incrementally define what
|
|
# to export from the library.
|
|
libbitcoinkernel_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -fvisibility=default
|
|
|
|
# TODO: For now, Specify -static in both CXXFLAGS and LDFLAGS when building for
|
|
# windows targets so libtool will only build a static version of this
|
|
# library. There are unresolved problems when building dll's for mingw-w64
|
|
# and attempting to statically embed libstdc++, libpthread, etc.
|
|
if TARGET_WINDOWS
|
|
libbitcoinkernel_la_LDFLAGS += -static
|
|
libbitcoinkernel_la_CXXFLAGS += -static
|
|
endif
|
|
|
|
# TODO: libbitcoinkernel is a work in progress consensus engine library, as more
|
|
# and more modules are decoupled from the consensus engine, this list will
|
|
# shrink to only those which are absolutely necessary. For example, things
|
|
# like index/*.cpp will be removed.
|
|
libbitcoinkernel_la_SOURCES = \
|
|
kernel/bitcoinkernel.cpp \
|
|
arith_uint256.cpp \
|
|
chain.cpp \
|
|
chainparamsbase.cpp \
|
|
chainparams.cpp \
|
|
clientversion.cpp \
|
|
coins.cpp \
|
|
compressor.cpp \
|
|
consensus/merkle.cpp \
|
|
consensus/tx_check.cpp \
|
|
consensus/tx_verify.cpp \
|
|
core_read.cpp \
|
|
dbwrapper.cpp \
|
|
deploymentinfo.cpp \
|
|
deploymentstatus.cpp \
|
|
flatfile.cpp \
|
|
fs.cpp \
|
|
hash.cpp \
|
|
kernel/checks.cpp \
|
|
kernel/coinstats.cpp \
|
|
kernel/context.cpp \
|
|
key.cpp \
|
|
logging.cpp \
|
|
node/blockstorage.cpp \
|
|
node/chainstate.cpp \
|
|
node/interface_ui.cpp \
|
|
policy/feerate.cpp \
|
|
policy/fees.cpp \
|
|
policy/packages.cpp \
|
|
policy/policy.cpp \
|
|
policy/rbf.cpp \
|
|
policy/settings.cpp \
|
|
pow.cpp \
|
|
primitives/block.cpp \
|
|
primitives/transaction.cpp \
|
|
pubkey.cpp \
|
|
random.cpp \
|
|
randomenv.cpp \
|
|
scheduler.cpp \
|
|
script/interpreter.cpp \
|
|
script/script.cpp \
|
|
script/script_error.cpp \
|
|
script/sigcache.cpp \
|
|
script/standard.cpp \
|
|
shutdown.cpp \
|
|
signet.cpp \
|
|
support/cleanse.cpp \
|
|
support/lockedpool.cpp \
|
|
sync.cpp \
|
|
threadinterrupt.cpp \
|
|
txdb.cpp \
|
|
txmempool.cpp \
|
|
uint256.cpp \
|
|
util/bytevectorhash.cpp \
|
|
util/check.cpp \
|
|
util/getuniquepath.cpp \
|
|
util/hasher.cpp \
|
|
util/moneystr.cpp \
|
|
util/rbf.cpp \
|
|
util/serfloat.cpp \
|
|
util/settings.cpp \
|
|
util/strencodings.cpp \
|
|
util/string.cpp \
|
|
util/syscall_sandbox.cpp \
|
|
util/syserror.cpp \
|
|
util/system.cpp \
|
|
util/thread.cpp \
|
|
util/threadnames.cpp \
|
|
util/time.cpp \
|
|
util/tokenpipe.cpp \
|
|
validation.cpp \
|
|
validationinterface.cpp \
|
|
versionbits.cpp \
|
|
warnings.cpp
|
|
|
|
# Required for obj/build.h to be generated first.
|
|
# More details: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html
|
|
libbitcoinkernel_la-clientversion.l$(OBJEXT): obj/build.h
|
|
endif # BUILD_BITCOIN_KERNEL_LIB
|
|
#
|
|
|
|
# bitcoinconsensus library #
|
|
if BUILD_BITCOIN_LIBS
|
|
lib_LTLIBRARIES += $(LIBBITCOINCONSENSUS)
|
|
|
|
include_HEADERS = script/bitcoinconsensus.h
|
|
libbitcoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_la_SOURCES) $(libbitcoin_consensus_a_SOURCES)
|
|
|
|
libbitcoinconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS)
|
|
libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1)
|
|
libbitcoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL
|
|
libbitcoinconsensus_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 += crc32c/src/*.gcda crc32c/src/*.gcno
|
|
CLEANFILES += crypto/*.gcda crypto/*.gcno
|
|
CLEANFILES += index/*.gcda index/*.gcno
|
|
CLEANFILES += interfaces/*.gcda interfaces/*.gcno
|
|
CLEANFILES += node/*.gcda node/*.gcno
|
|
CLEANFILES += policy/*.gcda policy/*.gcno
|
|
CLEANFILES += primitives/*.gcda primitives/*.gcno
|
|
CLEANFILES += rpc/*.gcda rpc/*.gcno
|
|
CLEANFILES += script/*.gcda script/*.gcno
|
|
CLEANFILES += support/*.gcda support/*.gcno
|
|
CLEANFILES += univalue/*.gcda univalue/*.gcno
|
|
CLEANFILES += util/*.gcda util/*.gcno
|
|
CLEANFILES += wallet/*.gcda wallet/*.gcno
|
|
CLEANFILES += wallet/test/*.gcda wallet/test/*.gcno
|
|
CLEANFILES += zmq/*.gcda zmq/*.gcno
|
|
CLEANFILES += obj/build.h
|
|
|
|
EXTRA_DIST = $(CTAES_DIST)
|
|
|
|
|
|
config/bitcoin-config.h: config/stamp-h1
|
|
@$(MAKE) -C $(top_builddir) $(subdir)/$(@)
|
|
config/stamp-h1: $(top_srcdir)/$(subdir)/config/bitcoin-config.h.in $(top_builddir)/config.status
|
|
$(AM_V_at)$(MAKE) -C $(top_builddir) $(subdir)/$(@)
|
|
$(top_srcdir)/$(subdir)/config/bitcoin-config.h.in: $(am__configure_deps)
|
|
$(AM_V_at)$(MAKE) -C $(top_srcdir) $(subdir)/config/bitcoin-config.h.in
|
|
|
|
clean-local:
|
|
-$(MAKE) -C secp256k1 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 $@
|
|
|
|
check-symbols: $(bin_PROGRAMS)
|
|
@echo "Running symbol and dynamic library checks..."
|
|
$(AM_V_at) $(PYTHON) $(top_srcdir)/contrib/devtools/symbol-check.py $(bin_PROGRAMS)
|
|
|
|
check-security: $(bin_PROGRAMS)
|
|
if HARDEN
|
|
@echo "Checking binary security..."
|
|
$(AM_V_at) $(PYTHON) $(top_srcdir)/contrib/devtools/security-check.py $(bin_PROGRAMS)
|
|
endif
|
|
|
|
libbitcoin_ipc_mpgen_input = \
|
|
ipc/capnp/echo.capnp \
|
|
ipc/capnp/init.capnp
|
|
EXTRA_DIST += $(libbitcoin_ipc_mpgen_input)
|
|
%.capnp:
|
|
|
|
# Explicitly list dependencies on generated headers as described in
|
|
# https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually
|
|
ipc/capnp/libbitcoin_ipc_a-protocol.$(OBJEXT): $(libbitcoin_ipc_mpgen_input:=.h)
|
|
|
|
if BUILD_MULTIPROCESS
|
|
LIBBITCOIN_IPC=libbitcoin_ipc.a
|
|
libbitcoin_ipc_a_SOURCES = \
|
|
ipc/capnp/context.h \
|
|
ipc/capnp/init-types.h \
|
|
ipc/capnp/protocol.cpp \
|
|
ipc/capnp/protocol.h \
|
|
ipc/context.h \
|
|
ipc/exception.h \
|
|
ipc/interfaces.cpp \
|
|
ipc/process.cpp \
|
|
ipc/process.h \
|
|
ipc/protocol.h
|
|
libbitcoin_ipc_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
|
libbitcoin_ipc_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS)
|
|
|
|
include $(MPGEN_PREFIX)/include/mpgen.mk
|
|
libbitcoin_ipc_mpgen_output = \
|
|
$(libbitcoin_ipc_mpgen_input:=.c++) \
|
|
$(libbitcoin_ipc_mpgen_input:=.h) \
|
|
$(libbitcoin_ipc_mpgen_input:=.proxy-client.c++) \
|
|
$(libbitcoin_ipc_mpgen_input:=.proxy-server.c++) \
|
|
$(libbitcoin_ipc_mpgen_input:=.proxy-types.c++) \
|
|
$(libbitcoin_ipc_mpgen_input:=.proxy-types.h) \
|
|
$(libbitcoin_ipc_mpgen_input:=.proxy.h)
|
|
nodist_libbitcoin_ipc_a_SOURCES = $(libbitcoin_ipc_mpgen_output)
|
|
CLEANFILES += $(libbitcoin_ipc_mpgen_output)
|
|
endif
|
|
|
|
include Makefile.minisketch.include
|
|
|
|
include Makefile.crc32c.include
|
|
include Makefile.leveldb.include
|
|
|
|
include Makefile.test_util.include
|
|
include Makefile.test_fuzz.include
|
|
|
|
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
|
|
|
|
include Makefile.univalue.include
|