From e296577ef64deac036a275a1a4c0d6172cfa42df Mon Sep 17 00:00:00 2001 From: Igor Canadi Date: Tue, 15 Apr 2014 10:52:39 -0700 Subject: [PATCH] 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 --- Makefile | 14 +++++++++----- tools/ldb.cc | 2 +- {util => tools}/ldb_cmd.cc | 2 +- {util => tools}/ldb_cmd.h | 2 +- {util => tools}/ldb_cmd_execute_result.h | 0 {util => tools}/ldb_tool.cc | 4 ++-- {include/rocksdb => tools}/ldb_tool.h | 6 ++---- 7 files changed, 16 insertions(+), 14 deletions(-) rename {util => tools}/ldb_cmd.cc (99%) rename {util => tools}/ldb_cmd.h (99%) rename {util => tools}/ldb_cmd_execute_result.h (100%) rename {util => tools}/ldb_tool.cc (98%) rename {include/rocksdb => tools}/ldb_tool.h (77%) diff --git a/Makefile b/Makefile index a8f451b58a..9a09d3e02a 100644 --- a/Makefile +++ b/Makefile @@ -106,13 +106,17 @@ TESTS = \ geodb_test TOOLS = \ - sst_dump \ + sst_dump \ db_sanity_test \ - db_stress \ - ldb \ + db_stress \ + ldb \ db_repl_stress \ blob_store_bench +LDB_OBJECTS = \ + tools/ldb_cmd.o \ + tools/ldb_tool.o + PROGRAMS = db_bench signal_test table_reader_bench $(TESTS) $(TOOLS) 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) $(CXX) tools/sst_dump.o $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS) -ldb: tools/ldb.o $(LIBOBJECTS) - $(CXX) tools/ldb.o $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS) +ldb: tools/ldb.o $(LDB_OBJECTS) $(LIBOBJECTS) + $(CXX) tools/ldb.o $(LDB_OBJECTS) $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS) # --------------------------------------------------------------------------- # Jni stuff diff --git a/tools/ldb.cc b/tools/ldb.cc index 4581b8011a..e197088809 100644 --- a/tools/ldb.cc +++ b/tools/ldb.cc @@ -4,7 +4,7 @@ // 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) { rocksdb::LDBTool tool; diff --git a/util/ldb_cmd.cc b/tools/ldb_cmd.cc similarity index 99% rename from util/ldb_cmd.cc rename to tools/ldb_cmd.cc index 8ed8014f2e..da67d11905 100644 --- a/util/ldb_cmd.cc +++ b/tools/ldb_cmd.cc @@ -3,7 +3,7 @@ // 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. // -#include "util/ldb_cmd.h" +#include "tools/ldb_cmd.h" #include "db/dbformat.h" #include "db/db_impl.h" diff --git a/util/ldb_cmd.h b/tools/ldb_cmd.h similarity index 99% rename from util/ldb_cmd.h rename to tools/ldb_cmd.h index f0ac59158c..bf5c80256a 100644 --- a/util/ldb_cmd.h +++ b/tools/ldb_cmd.h @@ -17,7 +17,7 @@ #include "rocksdb/iterator.h" #include "rocksdb/slice.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 "utilities/utility_db.h" #include "utilities/ttl/db_ttl.h" diff --git a/util/ldb_cmd_execute_result.h b/tools/ldb_cmd_execute_result.h similarity index 100% rename from util/ldb_cmd_execute_result.h rename to tools/ldb_cmd_execute_result.h diff --git a/util/ldb_tool.cc b/tools/ldb_tool.cc similarity index 98% rename from util/ldb_tool.cc rename to tools/ldb_tool.cc index 134547b198..55abec422c 100644 --- a/util/ldb_tool.cc +++ b/tools/ldb_tool.cc @@ -3,8 +3,8 @@ // 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. // -#include "rocksdb/ldb_tool.h" -#include "util/ldb_cmd.h" +#include "tools/ldb_tool.h" +#include "tools/ldb_cmd.h" namespace rocksdb { diff --git a/include/rocksdb/ldb_tool.h b/tools/ldb_tool.h similarity index 77% rename from include/rocksdb/ldb_tool.h rename to tools/ldb_tool.h index a46b6a7581..ba1e882883 100644 --- a/include/rocksdb/ldb_tool.h +++ b/tools/ldb_tool.h @@ -2,8 +2,8 @@ // 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 // of patent rights can be found in the PATENTS file in the same directory. -#ifndef STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H -#define STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H +#pragma once + #include "rocksdb/options.h" namespace rocksdb { @@ -14,5 +14,3 @@ class LDBTool { }; } // namespace rocksdb - -#endif // STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H