2014-07-08 21:53:53 +02:00
AM_LDFLAGS = $( PTHREAD_CFLAGS) $( LIBTOOL_LDFLAGS)
2013-09-09 04:02:28 +02:00
2014-06-06 16:57:28 +02:00
i f U S E _ L I B S E C P 2 5 6 K 1
secp256k1/libsecp256k1.la : $( wildcard secp 256k 1/src /*) $( wildcard secp 256k 1/include /*)
@$( MAKE) $( AM_MAKEFLAGS) -C $( @D) $( @F)
e n d i f
2013-05-28 01:55:01 +02:00
2014-06-04 23:13:03 +02:00
i f E M B E D D E D _ L E V E L D B
2014-06-05 20:22:54 +02: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 23:13:03 +02: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) "
e n d i f
2014-06-09 20:58:30 +02:00
BITCOIN_CONFIG_INCLUDES = -I$( builddir) /config
2014-08-07 17:16:07 +02:00
BITCOIN_INCLUDES = -I$( builddir) -I$( builddir) /obj $( BOOST_CPPFLAGS) $( LEVELDB_CPPFLAGS) $( CRYPTO_CFLAGS) $( SSL_CFLAGS)
2014-06-05 21:24:48 +02:00
2014-06-06 16:57:28 +02:00
i f U S E _ L I B S E C P 2 5 6 K 1
BITCOIN_INCLUDES += -I$( srcdir) /secp256k1/include
e n d i f
2014-06-19 15:10:04 +02: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
2014-07-29 17:12:44 +02:00
LIBBITCOIN_UNIVALUE = univalue/libbitcoin_univalue.a
2014-06-19 15:10:04 +02:00
LIBBITCOINQT = qt/libbitcoinqt.a
2014-01-11 15:22:07 +01:00
noinst_LIBRARIES = \
libbitcoin_server.a \
libbitcoin_common.a \
2014-06-09 21:17:27 +02:00
libbitcoin_cli.a \
2014-06-19 15:10:04 +02:00
libbitcoin_util.a \
2014-07-29 17:12:44 +02:00
univalue/libbitcoin_univalue.a \
2014-06-09 21:17:27 +02:00
crypto/libbitcoin_crypto.a
2013-11-29 16:50:11 +01:00
i f E N A B L E _ W A L L E T
2014-06-05 21:24:48 +02:00
BITCOIN_INCLUDES += $( BDB_CPPFLAGS)
2013-11-29 16:50:11 +01:00
noinst_LIBRARIES += libbitcoin_wallet.a
e n d i f
2013-05-28 01:55:01 +02:00
2013-09-08 04:44:12 +02:00
bin_PROGRAMS =
2014-05-28 19:38:41 +02:00
TESTS =
2013-09-08 04:44:12 +02:00
i f B U I L D _ B I T C O I N D
bin_PROGRAMS += bitcoind
e n d i f
2014-08-16 06:48:24 +02:00
i f B U I L D _ B I T C O I N _ U T I L S
bin_PROGRAMS += bitcoin-cli bitcoin-tx
2013-09-08 04:44:12 +02:00
e n d i f
2013-05-28 01:55:01 +02:00
.PHONY : FORCE
# bitcoin core #
2014-01-11 15:22:07 +01:00
BITCOIN_CORE_H = \
addrman.h \
alert.h \
allocators.h \
2014-05-09 17:56:16 +02:00
base58.h \
2014-01-11 15:22:07 +01:00
bloom.h \
chainparams.h \
2014-06-19 15:10:04 +02:00
chainparamsbase.h \
2014-07-24 13:52:57 +02:00
chainparamsseeds.h \
2014-01-11 15:22:07 +01:00
checkpoints.h \
checkqueue.h \
clientversion.h \
coincontrol.h \
coins.h \
compat.h \
core.h \
2014-06-24 05:10:24 +02:00
core_io.h \
2014-01-11 15:22:07 +01:00
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 16:46:53 +01:00
pow.h \
2014-01-11 15:22:07 +01:00
protocol.h \
2014-06-26 14:41:53 +02:00
random.h \
2013-11-20 14:18:57 +01:00
rpcclient.h \
rpcprotocol.h \
rpcserver.h \
2014-01-11 15:22:07 +01:00
script.h \
serialize.h \
sync.h \
threadsafety.h \
2014-06-19 15:08:37 +02:00
timedata.h \
2014-01-16 15:52:37 +01:00
tinyformat.h \
2014-01-11 15:22:07 +01:00
txdb.h \
txmempool.h \
ui_interface.h \
uint256.h \
util.h \
version.h \
walletdb.h \
2014-06-14 01:19:35 +02:00
wallet.h \
compat/sanity.h
2014-01-11 15:22:07 +01: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-28 01:55:01 +02:00
json/json_spirit_writer_template.h
obj/build.h : FORCE
2014-06-05 20:22:54 +02:00
@$( MKDIR_P) $( builddir) /obj
2013-05-28 01:55:01 +02:00
@$( top_srcdir) /share/genbuild.sh $( abs_top_builddir) /src/obj/build.h \
$( abs_top_srcdir)
2014-06-19 15:10:04 +02:00
libbitcoin_util_a-version.$(OBJEXT) : obj /build .h
2013-05-28 01:55:01 +02:00
2014-06-19 15:10:04 +02:00
# server: shared between bitcoind and bitcoin-qt
2014-06-05 21:24:48 +02:00
libbitcoin_server_a_CPPFLAGS = $( BITCOIN_INCLUDES)
2013-11-29 16:50:11 +01:00
libbitcoin_server_a_SOURCES = \
addrman.cpp \
alert.cpp \
2013-11-20 14:18:57 +01:00
bloom.cpp \
2013-11-29 16:50:11 +01:00
checkpoints.cpp \
init.cpp \
leveldbwrapper.cpp \
main.cpp \
2013-12-08 15:26:08 +01:00
miner.cpp \
2013-11-29 16:50:11 +01:00
net.cpp \
noui.cpp \
2014-03-10 16:46:53 +01:00
pow.cpp \
2013-11-29 16:50:11 +01:00
rpcblockchain.cpp \
2013-12-08 15:26:08 +01:00
rpcmining.cpp \
2013-12-13 16:01:22 +01:00
rpcmisc.cpp \
2013-11-29 16:50:11 +01:00
rpcnet.cpp \
rpcrawtransaction.cpp \
2014-03-25 11:34:28 +01:00
rpcserver.cpp \
2014-06-19 15:08:37 +02:00
timedata.cpp \
2013-11-29 16:50:11 +01:00
txdb.cpp \
txmempool.cpp \
$( JSON_H) \
$( BITCOIN_CORE_H)
2014-06-19 15:10:04 +02:00
# wallet: shared between bitcoind and bitcoin-qt, but only linked
# when wallet enabled
2014-06-05 21:24:48 +02:00
libbitcoin_wallet_a_CPPFLAGS = $( BITCOIN_INCLUDES)
2013-11-29 16:50:11 +01:00
libbitcoin_wallet_a_SOURCES = \
db.cpp \
2013-11-30 06:09:32 +01:00
crypter.cpp \
2013-11-29 16:50:11 +01:00
rpcdump.cpp \
rpcwallet.cpp \
wallet.cpp \
walletdb.cpp \
2013-11-27 15:41:12 +01:00
$( BITCOIN_CORE_H)
2014-06-19 15:10:04 +02:00
# crypto primitives library
2014-06-09 21:17:27 +02: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-07-29 17:12:44 +02:00
# univalue JSON library
univalue_libbitcoin_univalue_a_SOURCES = \
univalue/univalue.cpp \
univalue/univalue_read.cpp \
univalue/univalue_write.cpp \
univalue/univalue.h
2014-06-19 15:10:04 +02:00
# common: shared between bitcoind, and bitcoin-qt and non-server tools
2014-06-05 21:24:48 +02:00
libbitcoin_common_a_CPPFLAGS = $( BITCOIN_INCLUDES)
2013-11-27 15:41:12 +01:00
libbitcoin_common_a_SOURCES = \
allocators.cpp \
2014-06-25 10:03:00 +02:00
base58.cpp \
2013-11-27 15:41:12 +01:00
chainparams.cpp \
2014-06-25 10:03:00 +02:00
coins.cpp \
2013-11-27 15:41:12 +01:00
core.cpp \
2014-06-24 05:10:24 +02:00
core_read.cpp \
core_write.cpp \
2013-11-27 15:41:12 +01:00
hash.cpp \
key.cpp \
2014-06-25 10:03:00 +02:00
keystore.cpp \
2013-11-27 15:41:12 +01:00
netbase.cpp \
protocol.cpp \
script.cpp \
2014-06-19 15:10:04 +02: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 = \
2014-06-26 14:41:53 +02:00
compat/glibc_sanity.cpp \
compat/glibcxx_sanity.cpp \
2014-06-19 15:10:04 +02:00
chainparamsbase.cpp \
2014-06-26 14:41:53 +02:00
random.cpp \
2014-06-19 15:10:04 +02:00
rpcprotocol.cpp \
2013-11-27 15:41:12 +01:00
sync.cpp \
2014-06-28 17:35:22 +02:00
uint256.cpp \
2013-11-27 15:41:12 +01:00
util.cpp \
version.cpp \
2013-05-28 01:55:01 +02:00
$( BITCOIN_CORE_H)
2014-03-28 00:58:41 +01:00
i f G L I B C _ B A C K _ C O M P A T
2014-06-19 15:10:04 +02:00
libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp
libbitcoin_util_a_SOURCES += compat/glibcxx_compat.cpp
2014-03-28 00:58:41 +01:00
e n d i f
2014-06-19 15:10:04 +02:00
# cli: shared between bitcoin-cli and bitcoin-qt
2014-08-16 00:56:28 +02:00
libbitcoin_cli_a_CPPFLAGS = $( BITCOIN_INCLUDES)
2013-11-27 15:41:12 +01:00
libbitcoin_cli_a_SOURCES = \
rpcclient.cpp \
$( BITCOIN_CORE_H)
2014-06-19 15:10:04 +02:00
nodist_libbitcoin_util_a_SOURCES = $( srcdir) /obj/build.h
2013-05-28 01:55:01 +02:00
#
# bitcoind binary #
2014-01-11 15:22:07 +01:00
bitcoind_LDADD = \
2014-06-19 15:10:04 +02:00
$( LIBBITCOIN_SERVER) \
$( LIBBITCOIN_COMMON) \
2014-07-29 17:12:44 +02:00
$( LIBBITCOIN_UNIVALUE) \
2014-06-19 15:10:04 +02:00
$( LIBBITCOIN_UTIL) \
$( LIBBITCOIN_CRYPTO) \
2013-11-12 21:09:55 +01:00
$( LIBLEVELDB) \
$( LIBMEMENV)
2014-06-06 16:57:28 +02:00
i f U S E _ L I B S E C P 2 5 6 K 1
bitcoind_LDADD += secp256k1/libsecp256k1.la
e n d i f
2013-11-29 16:50:11 +01:00
i f E N A B L E _ W A L L E T
bitcoind_LDADD += libbitcoin_wallet.a
e n d i f
2013-05-28 01:55:01 +02:00
bitcoind_SOURCES = bitcoind.cpp
#
2013-09-18 21:53:29 +02:00
i f T A R G E T _ W I N D O W S
2013-10-03 15:06:31 +02:00
bitcoind_SOURCES += bitcoind-res.rc
2013-09-18 21:53:29 +02:00
e n d i f
2014-08-07 17:16:07 +02:00
bitcoind_LDADD += $( BOOST_LIBS) $( BDB_LIBS) $( SSL_LIBS) $( CRYPTO_LIBS)
2014-06-05 21:24:48 +02:00
bitcoind_CPPFLAGS = $( BITCOIN_INCLUDES)
2013-09-07 21:43:25 +02:00
2013-10-11 23:09:59 +02:00
# bitcoin-cli binary #
2014-01-11 15:22:07 +01:00
bitcoin_cli_LDADD = \
2014-06-19 15:10:04 +02:00
$( LIBBITCOIN_CLI) \
$( LIBBITCOIN_COMMON) \
$( LIBBITCOIN_UTIL) \
$( LIBBITCOIN_CRYPTO) \
2014-08-07 17:16:07 +02:00
$( BOOST_LIBS) \
$( SSL_LIBS) \
$( CRYPTO_LIBS)
2014-06-19 15:10:04 +02:00
bitcoin_cli_SOURCES = \
bitcoin-cli.cpp
2014-06-06 16:57:28 +02:00
i f U S E _ L I B S E C P 2 5 6 K 1
bitcoin_cli_LDADD += secp256k1/libsecp256k1.la
e n d i f
2014-06-05 21:24:48 +02:00
bitcoin_cli_CPPFLAGS = $( BITCOIN_INCLUDES)
2013-10-11 23:09:59 +02:00
#
2014-07-29 17:12:44 +02:00
# bitcoin-tx binary #
bitcoin_tx_LDADD = \
$( LIBBITCOIN_UNIVALUE) \
$( LIBBITCOIN_COMMON) \
$( LIBBITCOIN_UTIL) \
2014-08-07 17:16:07 +02:00
$( LIBBITCOIN_CRYPTO)
i f U S E _ L I B S E C P 2 5 6 K 1
bitcoin_tx_LDADD += secp256k1/libsecp256k1.la
e n d i f
bitcoin_tx_LDADD += $( BOOST_LIBS) \
$( SSL_LIBS) \
$( CRYPTO_LIBS)
2014-07-29 17:12:44 +02:00
bitcoin_tx_SOURCES = bitcoin-tx.cpp
bitcoin_tx_CPPFLAGS = $( BITCOIN_INCLUDES)
#
2013-10-11 23:09:59 +02:00
i f T A R G E T _ W I N D O W S
bitcoin_cli_SOURCES += bitcoin-cli-res.rc
e n d i f
2013-05-28 01:55:01 +02:00
CLEANFILES = leveldb/libleveldb.a leveldb/libmemenv.a *.gcda *.gcno
DISTCLEANFILES = obj/build.h
2014-06-06 16:57:28 +02:00
EXTRA_DIST = leveldb secp256k1
2013-05-28 01:55:01 +02:00
clean-local :
-$( MAKE) -C leveldb clean
2014-07-18 04:03:27 +02:00
-$( MAKE) -C secp256k1 clean 2>/dev/null
2013-11-28 03:17:17 +01:00
rm -f leveldb/*/*.gcno leveldb/helpers/memenv/*.gcno
2014-06-09 20:58:30 +02:00
-rm -f config.h
2014-05-28 19:38:41 +02:00
2014-06-04 23:13:03 +02:00
.rc.o :
2014-06-05 20:17:50 +02:00
@test -f $( WINDRES)
$( AM_V_GEN) $( WINDRES) -i $< -o $@
2014-06-04 23:13:03 +02:00
.mm.o :
2014-06-05 20:17:50 +02:00
$( AM_V_CXX) $( OBJCXX) $( DEFS) $( DEFAULT_INCLUDES) $( INCLUDES) $( AM_CPPFLAGS) \
2014-06-04 23:13:03 +02:00
$( CPPFLAGS) $( AM_CXXFLAGS) $( QT_INCLUDES) $( CXXFLAGS) -c -o $@ $<
%.pb.cc %.pb.h : %.proto
2014-06-05 20:17:50 +02:00
@test -f $( PROTOC)
$( AM_V_GEN) $( PROTOC) --cpp_out= $( @D) --proto_path= $( abspath $( <D) $<)
2014-06-04 23:13:03 +02:00
2014-05-28 19:38:41 +02:00
i f E N A B L E _ T E S T S
i n c l u d e M a k e f i l e . t e s t . i n c l u d e
e n d i f
i f E N A B L E _ Q T
i n c l u d e M a k e f i l e . q t . i n c l u d e
e n d i f
i f E N A B L E _ Q T _ T E S T S
i n c l u d e M a k e f i l e . q t t e s t . i n c l u d e
e n d i f