Skip to content

Commit 0b47fe6

Browse files
committed
bitcoin-cli: remove unneeded dependencies (only code movement)
Remove unnecessary dependencies for bitcoin-cli (leveldb, berkelydb, wallet, RPC server) Build system changes: - split libbitcoin.a into libbitcoin_common.a, libbitcoin_server.a and libbitcoin_cli.a Code changes (movement only): - split up HelpMessage into HelpMessage in init.cpp and HelpMessageCli in rpcclient.cpp - move uiInterface from init.cpp to util.cpp
1 parent e7e8a75 commit 0b47fe6

File tree

13 files changed

+144
-107
lines changed

13 files changed

+144
-107
lines changed

src/Makefile.am

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ include Makefile.include
33
AM_CPPFLAGS += -I$(top_srcdir)/src/leveldb/helpers/memenv \
44
-I$(builddir)
55

6-
noinst_LIBRARIES = libbitcoin.a
6+
noinst_LIBRARIES = libbitcoin_server.a libbitcoin_common.a libbitcoin_cli.a
77

88
bin_PROGRAMS = bitcoind bitcoin-cli
99

@@ -33,23 +33,40 @@ obj/build.h: FORCE
3333
$(abs_top_srcdir)
3434
version.o: obj/build.h
3535

36-
libbitcoin_a_SOURCES = addrman.cpp alert.cpp allocators.cpp \
37-
rpcclient.cpp \
38-
rpcprotocol.cpp \
36+
libbitcoin_server_a_SOURCES = addrman.cpp alert.cpp \
3937
rpcserver.cpp \
4038
bloom.cpp \
41-
chainparams.cpp checkpoints.cpp core.cpp coins.cpp crypter.cpp db.cpp hash.cpp \
42-
init.cpp key.cpp keystore.cpp leveldbwrapper.cpp main.cpp miner.cpp \
43-
netbase.cpp net.cpp noui.cpp protocol.cpp rpcblockchain.cpp rpcdump.cpp \
44-
rpcmining.cpp rpcnet.cpp rpcrawtransaction.cpp rpcwallet.cpp script.cpp \
45-
sync.cpp txdb.cpp txmempool.cpp util.cpp version.cpp wallet.cpp walletdb.cpp $(JSON_H) \
39+
chainparams.cpp checkpoints.cpp coins.cpp crypter.cpp db.cpp \
40+
init.cpp keystore.cpp leveldbwrapper.cpp main.cpp miner.cpp \
41+
net.cpp noui.cpp rpcblockchain.cpp rpcdump.cpp \
42+
rpcmining.cpp rpcnet.cpp rpcrawtransaction.cpp rpcwallet.cpp \
43+
txdb.cpp txmempool.cpp wallet.cpp walletdb.cpp $(JSON_H) \
44+
$(BITCOIN_CORE_H)
45+
46+
libbitcoin_common_a_SOURCES = \
47+
allocators.cpp \
48+
chainparams.cpp \
49+
core.cpp \
50+
hash.cpp \
51+
key.cpp \
52+
netbase.cpp \
53+
protocol.cpp \
54+
rpcprotocol.cpp \
55+
script.cpp \
56+
sync.cpp \
57+
util.cpp \
58+
version.cpp \
4659
$(BITCOIN_CORE_H)
4760

48-
nodist_libbitcoin_a_SOURCES = $(top_srcdir)/src/obj/build.h
61+
libbitcoin_cli_a_SOURCES = \
62+
rpcclient.cpp \
63+
$(BITCOIN_CORE_H)
64+
65+
nodist_libbitcoin_common_a_SOURCES = $(top_srcdir)/src/obj/build.h
4966
#
5067

5168
# bitcoind binary #
52-
bitcoind_LDADD = libbitcoin.a leveldb/libleveldb.a leveldb/libmemenv.a \
69+
bitcoind_LDADD = libbitcoin_server.a libbitcoin_cli.a libbitcoin_common.a leveldb/libleveldb.a leveldb/libmemenv.a \
5370
$(BOOST_LIBS)
5471
bitcoind_SOURCES = bitcoind.cpp
5572
#
@@ -62,15 +79,13 @@ AM_CPPFLAGS += $(BDB_CPPFLAGS)
6279
bitcoind_LDADD += $(BDB_LIBS)
6380

6481
# bitcoin-cli binary #
65-
bitcoin_cli_LDADD = libbitcoin.a leveldb/libleveldb.a leveldb/libmemenv.a \
66-
$(BOOST_LIBS)
82+
bitcoin_cli_LDADD = libbitcoin_cli.a libbitcoin_common.a $(BOOST_LIBS)
6783
bitcoin_cli_SOURCES = bitcoin-cli.cpp
6884
#
6985

7086
if TARGET_WINDOWS
7187
bitcoin_cli_SOURCES += bitcoin-cli-res.rc
7288
endif
73-
bitcoin_cli_LDADD += $(BDB_LIBS)
7489

7590
leveldb/libleveldb.a: leveldb/libmemenv.a
7691

@@ -79,7 +94,7 @@ leveldb/%.a:
7994
CC="$(CC)" PLATFORM=$(TARGET_OS) AR="$(AR)" $(LEVELDB_TARGET_FLAGS) \
8095
OPT="$(CXXFLAGS) $(CPPFLAGS)"
8196

82-
qt/bitcoinstrings.cpp: $(libbitcoin_a_SOURCES)
97+
qt/bitcoinstrings.cpp: $(libbitcoin_server_a_SOURCES) $(libbitcoin_common_a_SOURCES) $(libbitcoin_cli_a_SOURCES)
8398
@test -n $(XGETTEXT) || echo "xgettext is required for updating translations"
8499
@cd $(top_srcdir); XGETTEXT=$(XGETTEXT) share/qt/extract_strings_qt.py
85100

src/Makefile.include

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ AM_CPPFLAGS = $(INCLUDES) \
55
$(BOOST_INCLUDES)
66
AM_LDFLAGS = $(PTHREAD_CFLAGS)
77

8-
LIBBITCOIN=$(top_builddir)/src/libbitcoin.a
8+
LIBBITCOIN_SERVER=$(top_builddir)/src/libbitcoin_server.a
9+
LIBBITCOIN_COMMON=$(top_builddir)/src/libbitcoin_common.a
10+
LIBBITCOIN_CLI=$(top_builddir)/src/libbitcoin_cli.a
911
LIBLEVELDB=$(top_builddir)/src/leveldb/libleveldb.a
1012
LIBMEMENV=$(top_builddir)/src/leveldb/libmemenv.a
1113
LIBBITCOINQT=$(top_builddir)/src/qt/libbitcoinqt.a

src/bitcoin-cli.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ static bool AppInitRPC(int argc, char* argv[])
4242
" bitcoin-cli [options] help " + _("List commands") + "\n" +
4343
" bitcoin-cli [options] help <command> " + _("Get help for a command") + "\n";
4444

45-
strUsage += "\n" + HelpMessage(HMM_BITCOIN_CLI);
45+
strUsage += "\n" + HelpMessageCli(true);
4646

4747
fprintf(stdout, "%s", strUsage.c_str());
4848
return false;

src/bitcoind.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ bool AppInit(int argc, char* argv[])
8787
" bitcoind [options] help <command> " + _("Get help for a command") + "\n";
8888

8989
strUsage += "\n" + HelpMessage(HMM_BITCOIND);
90+
strUsage += "\n" + HelpMessageCli(false);
9091

9192
fprintf(stdout, "%s", strUsage.c_str());
9293
return false;

src/init.cpp

Lines changed: 63 additions & 84 deletions
Large diffs are not rendered by default.

src/init.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ bool AppInit2(boost::thread_group& threadGroup, bool fForceServer);
2626
enum HelpMessageMode
2727
{
2828
HMM_BITCOIND,
29-
HMM_BITCOIN_QT,
30-
HMM_BITCOIN_CLI
29+
HMM_BITCOIN_QT
3130
};
3231

3332
std::string HelpMessage(HelpMessageMode mode);

src/qt/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ endif
197197
bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(QT_INCLUDES) \
198198
-I$(top_srcdir)/src/qt/forms
199199
bitcoin_qt_SOURCES = bitcoin.cpp
200-
bitcoin_qt_LDADD = libbitcoinqt.a $(LIBBITCOIN) $(LIBLEVELDB) $(LIBMEMENV) \
200+
bitcoin_qt_LDADD = libbitcoinqt.a $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) $(LIBMEMENV) \
201201
$(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS)
202202

203203
# forms/foo.h -> forms/ui_foo.h

src/qt/test/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ BUILT_SOURCES = $(TEST_QT_MOC_CPP)
1717
test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(QT_INCLUDES) $(QT_TEST_INCLUDES)
1818
test_bitcoin_qt_SOURCES = test_main.cpp uritests.cpp paymentservertests.cpp $(TEST_QT_H)
1919
nodist_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP)
20-
test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN) $(LIBLEVELDB) \
20+
test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) \
2121
$(LIBMEMENV) $(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) \
2222
$(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS)
2323

src/rpcclient.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,3 +244,35 @@ int CommandLineRPC(int argc, char *argv[])
244244
}
245245
return nRet;
246246
}
247+
248+
std::string HelpMessageCli(bool mainProgram)
249+
{
250+
string strUsage;
251+
if(mainProgram)
252+
{
253+
strUsage += _("Options:") + "\n";
254+
strUsage += " -? " + _("This help message") + "\n";
255+
strUsage += " -conf=<file> " + _("Specify configuration file (default: bitcoin.conf)") + "\n";
256+
strUsage += " -datadir=<dir> " + _("Specify data directory") + "\n";
257+
strUsage += " -testnet " + _("Use the test network") + "\n";
258+
strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be "
259+
"solved instantly. This is intended for regression testing tools and app development.") + "\n";
260+
} else {
261+
strUsage += _("RPC client options:") + "\n";
262+
}
263+
264+
strUsage += " -rpcconnect=<ip> " + _("Send commands to node running on <ip> (default: 127.0.0.1)") + "\n";
265+
strUsage += " -rpcport=<port> " + _("Connect to JSON-RPC on <port> (default: 8332 or testnet: 18332)") + "\n";
266+
strUsage += " -rpcwait " + _("Wait for RPC server to start") + "\n";
267+
strUsage += " -rpcuser=<user> " + _("Username for JSON-RPC connections") + "\n";
268+
strUsage += " -rpcpassword=<pw> " + _("Password for JSON-RPC connections") + "\n";
269+
270+
if(mainProgram)
271+
{
272+
strUsage += "\n" + _("SSL options: (see the Bitcoin Wiki for SSL setup instructions)") + "\n";
273+
strUsage += " -rpcssl " + _("Use OpenSSL (https) for JSON-RPC connections") + "\n";
274+
}
275+
276+
return strUsage;
277+
}
278+

src/rpcclient.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,12 @@ int CommandLineRPC(int argc, char *argv[]);
1414

1515
json_spirit::Array RPCConvertValues(const std::string &strMethod, const std::vector<std::string> &strParams);
1616

17+
/** Show help message for bitcoin-cli.
18+
* The mainProgram argument is used to determine whether to show this message as main program
19+
* (and include some common options) or as sub-header of another help message.
20+
*
21+
* @note the argument can be removed once bitcoin-cli functionality is removed from bitcoind
22+
*/
23+
std::string HelpMessageCli(bool mainProgram);
24+
1725
#endif

0 commit comments

Comments
 (0)