Skip to content

Commit

Permalink
Merge pull request #3320 from laanwj/2013_11_cli_split
Browse files Browse the repository at this point in the history
bitcoin-cli: remove unneeded dependencies (only minor code movement)
  • Loading branch information
gavinandresen committed Dec 3, 2013
2 parents 0563ee9 + 0b47fe6 commit cf74e8c
Show file tree
Hide file tree
Showing 13 changed files with 144 additions and 107 deletions.
45 changes: 30 additions & 15 deletions src/Makefile.am
Expand Up @@ -3,7 +3,7 @@ include Makefile.include
AM_CPPFLAGS += -I$(top_srcdir)/src/leveldb/helpers/memenv \
-I$(builddir)

noinst_LIBRARIES = libbitcoin.a
noinst_LIBRARIES = libbitcoin_server.a libbitcoin_common.a libbitcoin_cli.a

bin_PROGRAMS = bitcoind bitcoin-cli

Expand Down Expand Up @@ -33,23 +33,40 @@ obj/build.h: FORCE
$(abs_top_srcdir)
version.o: obj/build.h

libbitcoin_a_SOURCES = addrman.cpp alert.cpp allocators.cpp \
rpcclient.cpp \
rpcprotocol.cpp \
libbitcoin_server_a_SOURCES = addrman.cpp alert.cpp \
rpcserver.cpp \
bloom.cpp \
chainparams.cpp checkpoints.cpp core.cpp coins.cpp crypter.cpp db.cpp hash.cpp \
init.cpp key.cpp keystore.cpp leveldbwrapper.cpp main.cpp miner.cpp \
netbase.cpp net.cpp noui.cpp protocol.cpp rpcblockchain.cpp rpcdump.cpp \
rpcmining.cpp rpcnet.cpp rpcrawtransaction.cpp rpcwallet.cpp script.cpp \
sync.cpp txdb.cpp txmempool.cpp util.cpp version.cpp wallet.cpp walletdb.cpp $(JSON_H) \
chainparams.cpp checkpoints.cpp coins.cpp crypter.cpp db.cpp \
init.cpp keystore.cpp leveldbwrapper.cpp main.cpp miner.cpp \
net.cpp noui.cpp rpcblockchain.cpp rpcdump.cpp \
rpcmining.cpp rpcnet.cpp rpcrawtransaction.cpp rpcwallet.cpp \
txdb.cpp txmempool.cpp wallet.cpp walletdb.cpp $(JSON_H) \
$(BITCOIN_CORE_H)

libbitcoin_common_a_SOURCES = \
allocators.cpp \
chainparams.cpp \
core.cpp \
hash.cpp \
key.cpp \
netbase.cpp \
protocol.cpp \
rpcprotocol.cpp \
script.cpp \
sync.cpp \
util.cpp \
version.cpp \
$(BITCOIN_CORE_H)

nodist_libbitcoin_a_SOURCES = $(top_srcdir)/src/obj/build.h
libbitcoin_cli_a_SOURCES = \
rpcclient.cpp \
$(BITCOIN_CORE_H)

nodist_libbitcoin_common_a_SOURCES = $(top_srcdir)/src/obj/build.h
#

# bitcoind binary #
bitcoind_LDADD = libbitcoin.a leveldb/libleveldb.a leveldb/libmemenv.a \
bitcoind_LDADD = libbitcoin_server.a libbitcoin_cli.a libbitcoin_common.a leveldb/libleveldb.a leveldb/libmemenv.a \
$(BOOST_LIBS)
bitcoind_SOURCES = bitcoind.cpp
#
Expand All @@ -62,15 +79,13 @@ AM_CPPFLAGS += $(BDB_CPPFLAGS)
bitcoind_LDADD += $(BDB_LIBS)

# bitcoin-cli binary #
bitcoin_cli_LDADD = libbitcoin.a leveldb/libleveldb.a leveldb/libmemenv.a \
$(BOOST_LIBS)
bitcoin_cli_LDADD = libbitcoin_cli.a libbitcoin_common.a $(BOOST_LIBS)
bitcoin_cli_SOURCES = bitcoin-cli.cpp
#

if TARGET_WINDOWS
bitcoin_cli_SOURCES += bitcoin-cli-res.rc
endif
bitcoin_cli_LDADD += $(BDB_LIBS)

leveldb/libleveldb.a: leveldb/libmemenv.a

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

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

Expand Down
4 changes: 3 additions & 1 deletion src/Makefile.include
Expand Up @@ -5,7 +5,9 @@ AM_CPPFLAGS = $(INCLUDES) \
$(BOOST_INCLUDES)
AM_LDFLAGS = $(PTHREAD_CFLAGS)

LIBBITCOIN=$(top_builddir)/src/libbitcoin.a
LIBBITCOIN_SERVER=$(top_builddir)/src/libbitcoin_server.a
LIBBITCOIN_COMMON=$(top_builddir)/src/libbitcoin_common.a
LIBBITCOIN_CLI=$(top_builddir)/src/libbitcoin_cli.a
LIBLEVELDB=$(top_builddir)/src/leveldb/libleveldb.a
LIBMEMENV=$(top_builddir)/src/leveldb/libmemenv.a
LIBBITCOINQT=$(top_builddir)/src/qt/libbitcoinqt.a
Expand Down
2 changes: 1 addition & 1 deletion src/bitcoin-cli.cpp
Expand Up @@ -42,7 +42,7 @@ static bool AppInitRPC(int argc, char* argv[])
" bitcoin-cli [options] help " + _("List commands") + "\n" +
" bitcoin-cli [options] help <command> " + _("Get help for a command") + "\n";

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

fprintf(stdout, "%s", strUsage.c_str());
return false;
Expand Down
1 change: 1 addition & 0 deletions src/bitcoind.cpp
Expand Up @@ -87,6 +87,7 @@ bool AppInit(int argc, char* argv[])
" bitcoind [options] help <command> " + _("Get help for a command") + "\n";

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

fprintf(stdout, "%s", strUsage.c_str());
return false;
Expand Down
147 changes: 63 additions & 84 deletions src/init.cpp

Large diffs are not rendered by default.

3 changes: 1 addition & 2 deletions src/init.h
Expand Up @@ -26,8 +26,7 @@ bool AppInit2(boost::thread_group& threadGroup, bool fForceServer);
enum HelpMessageMode
{
HMM_BITCOIND,
HMM_BITCOIN_QT,
HMM_BITCOIN_CLI
HMM_BITCOIN_QT
};

std::string HelpMessage(HelpMessageMode mode);
Expand Down
2 changes: 1 addition & 1 deletion src/qt/Makefile.am
Expand Up @@ -197,7 +197,7 @@ endif
bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(QT_INCLUDES) \
-I$(top_srcdir)/src/qt/forms
bitcoin_qt_SOURCES = bitcoin.cpp
bitcoin_qt_LDADD = libbitcoinqt.a $(LIBBITCOIN) $(LIBLEVELDB) $(LIBMEMENV) \
bitcoin_qt_LDADD = libbitcoinqt.a $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) $(LIBMEMENV) \
$(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS)

# forms/foo.h -> forms/ui_foo.h
Expand Down
2 changes: 1 addition & 1 deletion src/qt/test/Makefile.am
Expand Up @@ -17,7 +17,7 @@ BUILT_SOURCES = $(TEST_QT_MOC_CPP)
test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(QT_INCLUDES) $(QT_TEST_INCLUDES)
test_bitcoin_qt_SOURCES = test_main.cpp uritests.cpp paymentservertests.cpp $(TEST_QT_H)
nodist_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP)
test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN) $(LIBLEVELDB) \
test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) \
$(LIBMEMENV) $(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) \
$(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS)

Expand Down
32 changes: 32 additions & 0 deletions src/rpcclient.cpp
Expand Up @@ -245,3 +245,35 @@ int CommandLineRPC(int argc, char *argv[])
}
return nRet;
}

std::string HelpMessageCli(bool mainProgram)
{
string strUsage;
if(mainProgram)
{
strUsage += _("Options:") + "\n";
strUsage += " -? " + _("This help message") + "\n";
strUsage += " -conf=<file> " + _("Specify configuration file (default: bitcoin.conf)") + "\n";
strUsage += " -datadir=<dir> " + _("Specify data directory") + "\n";
strUsage += " -testnet " + _("Use the test network") + "\n";
strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be "
"solved instantly. This is intended for regression testing tools and app development.") + "\n";

This comment has been minimized.

Copy link
@Diapolo

Diapolo Dec 3, 2013

This seems a little unaligned.

} else {
strUsage += _("RPC client options:") + "\n";
}

strUsage += " -rpcconnect=<ip> " + _("Send commands to node running on <ip> (default: 127.0.0.1)") + "\n";
strUsage += " -rpcport=<port> " + _("Connect to JSON-RPC on <port> (default: 8332 or testnet: 18332)") + "\n";
strUsage += " -rpcwait " + _("Wait for RPC server to start") + "\n";
strUsage += " -rpcuser=<user> " + _("Username for JSON-RPC connections") + "\n";
strUsage += " -rpcpassword=<pw> " + _("Password for JSON-RPC connections") + "\n";

if(mainProgram)
{
strUsage += "\n" + _("SSL options: (see the Bitcoin Wiki for SSL setup instructions)") + "\n";
strUsage += " -rpcssl " + _("Use OpenSSL (https) for JSON-RPC connections") + "\n";
}

return strUsage;
}

8 changes: 8 additions & 0 deletions src/rpcclient.h
Expand Up @@ -14,4 +14,12 @@ int CommandLineRPC(int argc, char *argv[]);

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

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

#endif
2 changes: 1 addition & 1 deletion src/test/Makefile.am
Expand Up @@ -20,7 +20,7 @@ BUILT_SOURCES = $(JSON_TEST_FILES:.json=.json.h) $(RAW_TEST_FILES:.raw=.raw.h)

# test_bitcoin binary #
test_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(TESTDEFS)
test_bitcoin_LDADD = $(LIBBITCOIN) $(LIBLEVELDB) $(LIBMEMENV) \
test_bitcoin_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) $(LIBMEMENV) \
$(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(BDB_LIBS)
test_bitcoin_SOURCES = accounting_tests.cpp alert_tests.cpp \
allocator_tests.cpp base32_tests.cpp base58_tests.cpp base64_tests.cpp \
Expand Down
1 change: 0 additions & 1 deletion src/test/test_bitcoin.cpp
Expand Up @@ -14,7 +14,6 @@


CWallet* pwalletMain;
CClientUIInterface uiInterface;

extern bool fPrintToConsole;
extern void noui_connect();
Expand Down
2 changes: 2 additions & 0 deletions src/util.cpp
Expand Up @@ -95,6 +95,7 @@ string strMiscWarning;
bool fNoListen = false;
bool fLogTimestamps = false;
volatile bool fReopenDebugLog = false;
CClientUIInterface uiInterface;

// Init OpenSSL library multithreading support
static CCriticalSection** ppmutexOpenSSL;
Expand Down Expand Up @@ -1511,3 +1512,4 @@ void RenameThread(const char* name)
(void)name;
#endif
}

0 comments on commit cf74e8c

Please sign in to comment.