2014-06-05 15:24:48 -04:00
AM_CPPFLAGS = $(INCLUDES)
2014-06-04 17:13:03 -04:00
AM_LDFLAGS = $(PTHREAD_CFLAGS)
2013-09-08 23:02:28 -03:00
2014-06-06 10:57:28 -04:00
if USE_LIBSECP256K1
secp256k1/libsecp256k1.la: $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
@$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
endif
2013-05-27 19:55:01 -04:00
2014-06-04 17:13:03 -04:00
if EMBEDDED_LEVELDB
2014-06-05 14:22:54 -04:00
LEVELDB_CPPFLAGS += -I$(srcdir)/leveldb/include
LEVELDB_CPPFLAGS += -I$(srcdir)/leveldb/helpers/memenv
LIBLEVELDB += $(builddir)/leveldb/libleveldb.a
LIBMEMENV += $(builddir)/leveldb/libmemenv.a
2014-06-04 17:13:03 -04:00
# 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
2014-06-09 14:58:30 -04:00
BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config
2014-06-23 14:04:24 -04:00
BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS)
2014-06-05 15:24:48 -04:00
2014-06-06 10:57:28 -04:00
if USE_LIBSECP256K1
BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
endif
2014-06-19 09:10:04 -04:00
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
LIBBITCOINQT=qt/libbitcoinqt.a
2014-01-11 11:22:07 -03:00
noinst_LIBRARIES = \
libbitcoin_server.a \
libbitcoin_common.a \
2014-06-09 15:17:27 -04:00
libbitcoin_cli.a \
2014-06-19 09:10:04 -04:00
libbitcoin_util.a \
2014-06-09 15:17:27 -04:00
crypto/libbitcoin_crypto.a
2013-11-29 12:50:11 -03:00
if ENABLE_WALLET
2014-06-05 15:24:48 -04:00
BITCOIN_INCLUDES += $(BDB_CPPFLAGS)
2013-11-29 12:50:11 -03:00
noinst_LIBRARIES += libbitcoin_wallet.a
endif
2013-05-27 19:55:01 -04:00
2013-09-07 22:44:12 -04:00
bin_PROGRAMS =
2014-05-28 13:38:41 -04:00
TESTS =
2013-09-07 22:44:12 -04:00
if BUILD_BITCOIND
bin_PROGRAMS += bitcoind
endif
if BUILD_BITCOIN_CLI
bin_PROGRAMS += bitcoin-cli
endif
2013-05-27 19:55:01 -04:00
.PHONY: FORCE
# bitcoin core #
2014-01-11 11:22:07 -03:00
BITCOIN_CORE_H = \
addrman.h \
alert.h \
allocators.h \
2014-05-09 11:56:16 -04:00
base58.h \
2014-01-11 11:22:07 -03:00
bloom.h \
chainparams.h \
2014-06-19 09:10:04 -04:00
chainparamsbase.h \
2014-01-11 11:22:07 -03:00
checkpoints.h \
checkqueue.h \
clientversion.h \
coincontrol.h \
coins.h \
compat.h \
core.h \
crypter.h \
db.h \
hash.h \
init.h \
key.h \
keystore.h \
leveldbwrapper.h \
limitedmap.h \
main.h \
miner.h \
mruset.h \
netbase.h \
net.h \
noui.h \
2014-03-10 12:46:53 -03:00
pow.h \
2014-01-11 11:22:07 -03:00
protocol.h \
2013-11-20 10:18:57 -03:00
rpcclient.h \
rpcprotocol.h \
rpcserver.h \
2014-01-11 11:22:07 -03:00
script.h \
serialize.h \
sync.h \
threadsafety.h \
2014-06-19 09:08:37 -04:00
timedata.h \
2014-01-16 11:52:37 -03:00
tinyformat.h \
2014-01-11 11:22:07 -03:00
txdb.h \
txmempool.h \
ui_interface.h \
uint256.h \
util.h \
version.h \
walletdb.h \
2014-06-13 19:19:35 -04:00
wallet.h \
compat/sanity.h
2014-01-11 11:22:07 -03:00
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 \
2013-05-27 19:55:01 -04:00
json/json_spirit_writer_template.h
obj/build.h: FORCE
2014-06-05 14:22:54 -04:00
@$(MKDIR_P) $(builddir)/obj
2013-05-27 19:55:01 -04:00
@$(top_srcdir)/share/genbuild.sh $(abs_top_builddir)/src/obj/build.h \
$(abs_top_srcdir)
2014-06-19 09:10:04 -04:00
libbitcoin_util_a-version.$(OBJEXT): obj/build.h
2013-05-27 19:55:01 -04:00
2014-06-19 09:10:04 -04:00
# server: shared between bitcoind and bitcoin-qt
2014-06-05 15:24:48 -04:00
libbitcoin_server_a_CPPFLAGS = $(BITCOIN_INCLUDES)
2013-11-29 12:50:11 -03:00
libbitcoin_server_a_SOURCES = \
addrman.cpp \
alert.cpp \
2013-11-20 10:18:57 -03:00
bloom.cpp \
2013-11-29 12:50:11 -03:00
checkpoints.cpp \
init.cpp \
leveldbwrapper.cpp \
main.cpp \
2013-12-08 11:26:08 -03:00
miner.cpp \
2013-11-29 12:50:11 -03:00
net.cpp \
noui.cpp \
2014-03-10 12:46:53 -03:00
pow.cpp \
2013-11-29 12:50:11 -03:00
rpcblockchain.cpp \
2013-12-08 11:26:08 -03:00
rpcmining.cpp \
2013-12-13 12:01:22 -03:00
rpcmisc.cpp \
2013-11-29 12:50:11 -03:00
rpcnet.cpp \
rpcrawtransaction.cpp \
2014-03-25 07:34:28 -03:00
rpcserver.cpp \
2014-06-19 09:08:37 -04:00
timedata.cpp \
2013-11-29 12:50:11 -03:00
txdb.cpp \
txmempool.cpp \
$(JSON_H) \
$(BITCOIN_CORE_H)
2014-06-19 09:10:04 -04:00
# wallet: shared between bitcoind and bitcoin-qt, but only linked
# when wallet enabled
2014-06-05 15:24:48 -04:00
libbitcoin_wallet_a_CPPFLAGS = $(BITCOIN_INCLUDES)
2013-11-29 12:50:11 -03:00
libbitcoin_wallet_a_SOURCES = \
db.cpp \
2013-11-30 02:09:32 -03:00
crypter.cpp \
2013-11-29 12:50:11 -03:00
rpcdump.cpp \
rpcwallet.cpp \
wallet.cpp \
walletdb.cpp \
2013-11-27 11:41:12 -03:00
$(BITCOIN_CORE_H)
2014-06-19 09:10:04 -04:00
# crypto primitives library
2014-06-09 15:17:27 -04:00
crypto_libbitcoin_crypto_a_CPPFLAGS = $(BITCOIN_CONFIG_INCLUDES)
crypto_libbitcoin_crypto_a_SOURCES = \
crypto/sha1.cpp \
crypto/sha2.cpp \
crypto/ripemd160.cpp \
crypto/common.h \
crypto/sha2.h \
crypto/sha1.h \
crypto/ripemd160.h
2014-06-19 09:10:04 -04:00
# common: shared between bitcoind, and bitcoin-qt and non-server tools
2014-06-05 15:24:48 -04:00
libbitcoin_common_a_CPPFLAGS = $(BITCOIN_INCLUDES)
2013-11-27 11:41:12 -03:00
libbitcoin_common_a_SOURCES = \
allocators.cpp \
2014-06-25 04:03:00 -04:00
base58.cpp \
2013-11-27 11:41:12 -03:00
chainparams.cpp \
2014-06-25 04:03:00 -04:00
coins.cpp \
2013-11-27 11:41:12 -03:00
core.cpp \
hash.cpp \
key.cpp \
2014-06-25 04:03:00 -04:00
keystore.cpp \
2013-11-27 11:41:12 -03:00
netbase.cpp \
protocol.cpp \
script.cpp \
2014-06-19 09:10:04 -04:00
$(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 = \
chainparamsbase.cpp \
rpcprotocol.cpp \
2013-11-27 11:41:12 -03:00
sync.cpp \
2014-06-28 11:35:22 -04:00
uint256.cpp \
2013-11-27 11:41:12 -03:00
util.cpp \
version.cpp \
2014-06-13 19:19:35 -04:00
compat/glibc_sanity.cpp \
compat/glibcxx_sanity.cpp \
2013-05-27 19:55:01 -04:00
$(BITCOIN_CORE_H)
2014-03-27 20:58:41 -03:00
if GLIBC_BACK_COMPAT
2014-06-19 09:10:04 -04:00
libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp
libbitcoin_util_a_SOURCES += compat/glibcxx_compat.cpp
2014-03-27 20:58:41 -03:00
endif
2014-06-19 09:10:04 -04:00
# cli: shared between bitcoin-cli and bitcoin-qt
2013-11-27 11:41:12 -03:00
libbitcoin_cli_a_SOURCES = \
rpcclient.cpp \
$(BITCOIN_CORE_H)
2014-06-19 09:10:04 -04:00
nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
2013-05-27 19:55:01 -04:00
#
# bitcoind binary #
2014-01-11 11:22:07 -03:00
bitcoind_LDADD = \
2014-06-19 09:10:04 -04:00
$(LIBBITCOIN_SERVER) \
$(LIBBITCOIN_COMMON) \
$(LIBBITCOIN_UTIL) \
$(LIBBITCOIN_CRYPTO) \
2013-11-12 17:09:55 -03:00
$(LIBLEVELDB) \
$(LIBMEMENV)
2014-06-06 10:57:28 -04:00
if USE_LIBSECP256K1
bitcoind_LDADD += secp256k1/libsecp256k1.la
endif
2013-11-29 12:50:11 -03:00
if ENABLE_WALLET
bitcoind_LDADD += libbitcoin_wallet.a
endif
2013-05-27 19:55:01 -04:00
bitcoind_SOURCES = bitcoind.cpp
#
2013-09-18 16:53:29 -03:00
if TARGET_WINDOWS
2013-10-03 10:06:31 -03:00
bitcoind_SOURCES += bitcoind-res.rc
2013-09-18 16:53:29 -03:00
endif
2014-01-07 05:09:31 -03:00
bitcoind_LDADD += $(BOOST_LIBS) $(BDB_LIBS)
2014-06-05 15:24:48 -04:00
bitcoind_CPPFLAGS = $(BITCOIN_INCLUDES)
2013-09-07 15:43:25 -04:00
2013-10-11 18:09:59 -03:00
# bitcoin-cli binary #
2014-01-11 11:22:07 -03:00
bitcoin_cli_LDADD = \
2014-06-19 09:10:04 -04:00
$(LIBBITCOIN_CLI) \
$(LIBBITCOIN_COMMON) \
$(LIBBITCOIN_UTIL) \
$(LIBBITCOIN_CRYPTO) \
2014-01-11 11:22:07 -03:00
$(BOOST_LIBS)
2014-06-19 09:10:04 -04:00
bitcoin_cli_SOURCES = \
bitcoin-cli.cpp
2014-06-06 10:57:28 -04:00
if USE_LIBSECP256K1
bitcoin_cli_LDADD += secp256k1/libsecp256k1.la
endif
2014-06-05 15:24:48 -04:00
bitcoin_cli_CPPFLAGS = $(BITCOIN_INCLUDES)
2013-10-11 18:09:59 -03:00
#
if TARGET_WINDOWS
bitcoin_cli_SOURCES += bitcoin-cli-res.rc
endif
2013-05-27 19:55:01 -04:00
CLEANFILES = leveldb/libleveldb.a leveldb/libmemenv.a *.gcda *.gcno
DISTCLEANFILES = obj/build.h
2014-06-06 10:57:28 -04:00
EXTRA_DIST = leveldb secp256k1
2013-05-27 19:55:01 -04:00
clean-local:
-$(MAKE) -C leveldb clean
2014-06-06 10:57:28 -04:00
-$(MAKE) -C secp256k1 clean
2013-11-27 23:17:17 -03:00
rm -f leveldb/*/*.gcno leveldb/helpers/memenv/*.gcno
2014-06-09 14:58:30 -04:00
-rm -f config.h
2014-05-28 13:38:41 -04:00
2014-06-04 17:13:03 -04:00
.rc.o:
2014-06-05 14:17:50 -04:00
@test -f $(WINDRES)
$(AM_V_GEN) $(WINDRES) -i $< -o $@
2014-06-04 17:13:03 -04:00
.mm.o:
2014-06-05 14:17:50 -04:00
$(AM_V_CXX) $(OBJCXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
2014-06-04 17:13:03 -04:00
$(CPPFLAGS) $(AM_CXXFLAGS) $(QT_INCLUDES) $(CXXFLAGS) -c -o $@ $<
%.pb.cc %.pb.h: %.proto
2014-06-05 14:17:50 -04:00
@test -f $(PROTOC)
$(AM_V_GEN) $(PROTOC) --cpp_out=$(@D) --proto_path=$(abspath $(<D) $<)
2014-06-04 17:13:03 -04:00
2014-05-28 13:38:41 -04:00
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