Don't compile ldb tool into static library

Summary:
This is first step of my effort to reduce size of librocksdb.a for use in mobile.

ldb object files are huge and are ment to be used as a command line tool. I moved them to `tools/` directory and include them only when compiling `ldb`

This diff reduced librocksdb.a from 42MB to 39MB on my mac (not stripped).

Test Plan: ran ldb

Reviewers: dhruba, haobo, sdong, ljin, yhchiang

Reviewed By: yhchiang

CC: leveldb

Differential Revision: https://reviews.facebook.net/D17823
This commit is contained in:
Igor Canadi 2014-04-15 10:52:39 -07:00
parent dbe0f327ca
commit e296577ef6
7 changed files with 16 additions and 14 deletions

View File

@ -106,13 +106,17 @@ TESTS = \
geodb_test geodb_test
TOOLS = \ TOOLS = \
sst_dump \ sst_dump \
db_sanity_test \ db_sanity_test \
db_stress \ db_stress \
ldb \ ldb \
db_repl_stress \ db_repl_stress \
blob_store_bench blob_store_bench
LDB_OBJECTS = \
tools/ldb_cmd.o \
tools/ldb_tool.o
PROGRAMS = db_bench signal_test table_reader_bench $(TESTS) $(TOOLS) PROGRAMS = db_bench signal_test table_reader_bench $(TESTS) $(TOOLS)
BENCHMARKS = db_bench_sqlite3 db_bench_tree_db table_reader_bench BENCHMARKS = db_bench_sqlite3 db_bench_tree_db table_reader_bench
@ -410,8 +414,8 @@ auto_roll_logger_test: util/auto_roll_logger_test.o $(LIBOBJECTS) $(TESTHARNESS)
sst_dump: tools/sst_dump.o $(LIBOBJECTS) sst_dump: tools/sst_dump.o $(LIBOBJECTS)
$(CXX) tools/sst_dump.o $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS) $(CXX) tools/sst_dump.o $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
ldb: tools/ldb.o $(LIBOBJECTS) ldb: tools/ldb.o $(LDB_OBJECTS) $(LIBOBJECTS)
$(CXX) tools/ldb.o $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS) $(CXX) tools/ldb.o $(LDB_OBJECTS) $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Jni stuff # Jni stuff

View File

@ -4,7 +4,7 @@
// of patent rights can be found in the PATENTS file in the same directory. // of patent rights can be found in the PATENTS file in the same directory.
// //
#include "rocksdb/ldb_tool.h" #include "tools/ldb_tool.h"
int main(int argc, char** argv) { int main(int argc, char** argv) {
rocksdb::LDBTool tool; rocksdb::LDBTool tool;

View File

@ -3,7 +3,7 @@
// LICENSE file in the root directory of this source tree. An additional grant // LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory. // of patent rights can be found in the PATENTS file in the same directory.
// //
#include "util/ldb_cmd.h" #include "tools/ldb_cmd.h"
#include "db/dbformat.h" #include "db/dbformat.h"
#include "db/db_impl.h" #include "db/db_impl.h"

View File

@ -17,7 +17,7 @@
#include "rocksdb/iterator.h" #include "rocksdb/iterator.h"
#include "rocksdb/slice.h" #include "rocksdb/slice.h"
#include "util/logging.h" #include "util/logging.h"
#include "util/ldb_cmd_execute_result.h" #include "tools/ldb_cmd_execute_result.h"
#include "util/string_util.h" #include "util/string_util.h"
#include "utilities/utility_db.h" #include "utilities/utility_db.h"
#include "utilities/ttl/db_ttl.h" #include "utilities/ttl/db_ttl.h"

View File

@ -3,8 +3,8 @@
// LICENSE file in the root directory of this source tree. An additional grant // LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory. // of patent rights can be found in the PATENTS file in the same directory.
// //
#include "rocksdb/ldb_tool.h" #include "tools/ldb_tool.h"
#include "util/ldb_cmd.h" #include "tools/ldb_cmd.h"
namespace rocksdb { namespace rocksdb {

View File

@ -2,8 +2,8 @@
// This source code is licensed under the BSD-style license found in the // This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant // LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory. // of patent rights can be found in the PATENTS file in the same directory.
#ifndef STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H #pragma once
#define STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H
#include "rocksdb/options.h" #include "rocksdb/options.h"
namespace rocksdb { namespace rocksdb {
@ -14,5 +14,3 @@ class LDBTool {
}; };
} // namespace rocksdb } // namespace rocksdb
#endif // STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H