package/rocksdb: switch to generic-package
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Tue, 4 Feb 2020 21:13:48 +0000 (22:13 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Thu, 13 Feb 2020 21:54:00 +0000 (22:54 +0100)
Switch from cmake-package to generic-package to allow rocksdb to run the
./build_tools/build_detect_platform script and detect compiler options
such as C++17 support for -faligned-new

First patch needs to be updated and second patch can be dropped

Fixes:
 - http://autobuild.buildroot.org/results/22c9909c0d20e3871775f3874f7723910d7e5a41
 - http://autobuild.buildroot.org/results/ab7b2bc9e9653a7093d8b27d4445c28993572ca4

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/rocksdb/0001-Check-for-sys-auxv.h.patch
package/rocksdb/0002-Add-an-option-to-the-CMake-build-to-disable-building-shared-libraries.patch [deleted file]
package/rocksdb/rocksdb.mk

index 2eaabf7c06241346dcbf58a002ea22276cb413f3..eccd27919cf9c47843c4efe1e02ef4c77470903d 100644 (file)
@@ -1,4 +1,4 @@
-From 763fee1544c5e5f7dffcee678c98804f80c67249 Mon Sep 17 00:00:00 2001
+From ad4cb0403c58430bf34a15e72f2edcf0f4317977 Mon Sep 17 00:00:00 2001
 From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 Date: Sat, 1 Feb 2020 23:38:11 +0100
 Subject: [PATCH] Check for sys/auxv.h
@@ -9,10 +9,11 @@ always available (for example on uclibc)
 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 [Upstream status: https://github.com/facebook/rocksdb/pull/6359]
 ---
- CMakeLists.txt       | 5 +++++
- util/crc32c.cc       | 4 +++-
- util/crc32c_arm64.cc | 6 ++++++
- 3 files changed, 14 insertions(+), 1 deletion(-)
+ CMakeLists.txt                    |  5 +++++
+ build_tools/build_detect_platform | 14 ++++++++++++++
+ util/crc32c.cc                    |  4 +++-
+ util/crc32c_arm64.cc              |  6 ++++++
+ 4 files changed, 28 insertions(+), 1 deletion(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
 index 017fe8675..32fc5cb30 100644
@@ -30,6 +31,31 @@ index 017fe8675..32fc5cb30 100644
  include_directories(${PROJECT_SOURCE_DIR})
  include_directories(${PROJECT_SOURCE_DIR}/include)
  include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/third-party/gtest-1.8.1/fused-src)
+diff --git a/build_tools/build_detect_platform b/build_tools/build_detect_platform
+index 36a013f6f..2535d8124 100755
+--- a/build_tools/build_detect_platform
++++ b/build_tools/build_detect_platform
+@@ -506,6 +506,20 @@ EOF
+         fi
+     fi
++    if ! test $ROCKSDB_DISABLE_AUXV_GETAUXVAL; then
++        # Test whether getauxval is supported
++        $CXX $CFLAGS -x c++ - -o /dev/null 2>/dev/null  <<EOF
++          #include <sys/auxv.h>
++          int main() {
++            uint64_t auxv = getauxval(AT_HWCAP);
++            (void)auxv;
++          }
++EOF
++        if [ "$?" = 0 ]; then
++            COMMON_FLAGS="$COMMON_FLAGS -DROCKSDB_AUXV_GETAUXVAL_PRESENT"
++        fi
++    fi
++
+     if ! test $ROCKSDB_DISABLE_ALIGNED_NEW; then
+         # Test whether c++17 aligned-new is supported
+         $CXX $PLATFORM_CXXFLAGS -faligned-new -x c++ - -o /dev/null 2>/dev/null <<EOF
 diff --git a/util/crc32c.cc b/util/crc32c.cc
 index 9e838b830..3063884db 100644
 --- a/util/crc32c.cc
diff --git a/package/rocksdb/0002-Add-an-option-to-the-CMake-build-to-disable-building-shared-libraries.patch b/package/rocksdb/0002-Add-an-option-to-the-CMake-build-to-disable-building-shared-libraries.patch
deleted file mode 100644 (file)
index 472b4b0..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-From 2bb5fc1280244255f0a6e8acbcf40d2a87ca739d Mon Sep 17 00:00:00 2001
-From: Adam Simpkins <simpkins@fb.com>
-Date: Tue, 10 Dec 2019 15:19:24 -0800
-Subject: [PATCH] Add an option to the CMake build to disable building shared
- libraries (#6122)
-
-Summary:
-Add an option to explicitly disable building shared versions of the
-RocksDB libraries.  The shared libraries cannot be built in cases where
-some dependencies are only available as static libraries.  This allows
-still building RocksDB in these situations.
-Pull Request resolved: https://github.com/facebook/rocksdb/pull/6122
-
-Differential Revision: D18920740
-
-fbshipit-source-id: d24f66d93c68a1e65635e6e0b663bae62c903bca
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-[Retrieved (and backported) from:
-https://github.com/facebook/rocksdb/commit/2bb5fc1280244255f0a6e8acbcf40d2a87ca739d]
----
- CMakeLists.txt                | 123 ++++++++++++++++++++--------------
- db_stress_tool/CMakeLists.txt |   2 +-
- java/CMakeLists.txt           |   4 +-
- tools/CMakeLists.txt          |   2 +-
- 4 files changed, 75 insertions(+), 56 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 633fe834e9..ce63304470 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -766,7 +766,8 @@ endif()
- set(ROCKSDB_STATIC_LIB rocksdb${ARTIFACT_SUFFIX})
- set(ROCKSDB_SHARED_LIB rocksdb-shared${ARTIFACT_SUFFIX})
--set(ROCKSDB_IMPORT_LIB ${ROCKSDB_SHARED_LIB})
-+
-+option(ROCKSDB_BUILD_SHARED "Build shared versions of the RocksDB libraries" ON)
- option(WITH_LIBRADOS "Build with librados" OFF)
- if(WITH_LIBRADOS)
-@@ -777,40 +778,44 @@ endif()
- if(WIN32)
-   set(SYSTEM_LIBS ${SYSTEM_LIBS} shlwapi.lib rpcrt4.lib)
--  set(LIBS ${ROCKSDB_STATIC_LIB} ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
- else()
-   set(SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
--  set(LIBS ${ROCKSDB_SHARED_LIB} ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
--
--  add_library(${ROCKSDB_SHARED_LIB} SHARED ${SOURCES})
--  target_link_libraries(${ROCKSDB_SHARED_LIB}
--    ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
--  set_target_properties(${ROCKSDB_SHARED_LIB} PROPERTIES
--                        LINKER_LANGUAGE CXX
--                        VERSION ${rocksdb_VERSION}
--                        SOVERSION ${rocksdb_VERSION_MAJOR}
--                        CXX_STANDARD 11
--                        OUTPUT_NAME "rocksdb")
- endif()
- add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES})
- target_link_libraries(${ROCKSDB_STATIC_LIB}
-   ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
--if(WIN32)
--  add_library(${ROCKSDB_IMPORT_LIB} SHARED ${SOURCES})
--  target_link_libraries(${ROCKSDB_IMPORT_LIB}
-+if(ROCKSDB_BUILD_SHARED)
-+  add_library(${ROCKSDB_SHARED_LIB} SHARED ${SOURCES})
-+  target_link_libraries(${ROCKSDB_SHARED_LIB}
-     ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
--  set_target_properties(${ROCKSDB_IMPORT_LIB} PROPERTIES
--    COMPILE_DEFINITIONS "ROCKSDB_DLL;ROCKSDB_LIBRARY_EXPORTS")
--  if(MSVC)
--    set_target_properties(${ROCKSDB_STATIC_LIB} PROPERTIES
--      COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/${ROCKSDB_STATIC_LIB}.pdb")
--    set_target_properties(${ROCKSDB_IMPORT_LIB} PROPERTIES
--      COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/${ROCKSDB_IMPORT_LIB}.pdb")
-+
-+  if(WIN32)
-+    set_target_properties(${ROCKSDB_SHARED_LIB} PROPERTIES
-+      COMPILE_DEFINITIONS "ROCKSDB_DLL;ROCKSDB_LIBRARY_EXPORTS")
-+    if(MSVC)
-+      set_target_properties(${ROCKSDB_STATIC_LIB} PROPERTIES
-+        COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/${ROCKSDB_STATIC_LIB}.pdb")
-+      set_target_properties(${ROCKSDB_SHARED_LIB} PROPERTIES
-+        COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/${ROCKSDB_SHARED_LIB}.pdb")
-+    endif()
-+  else()
-+    set_target_properties(${ROCKSDB_SHARED_LIB} PROPERTIES
-+                          LINKER_LANGUAGE CXX
-+                          VERSION ${rocksdb_VERSION}
-+                          SOVERSION ${rocksdb_VERSION_MAJOR}
-+                          CXX_STANDARD 11
-+                          OUTPUT_NAME "rocksdb")
-   endif()
- endif()
-+if(ROCKSDB_BUILD_SHARED AND NOT WIN32)
-+  set(ROCKSDB_LIB ${ROCKSDB_SHARED_LIB})
-+else()
-+  set(ROCKSDB_LIB ${ROCKSDB_STATIC_LIB})
-+endif()
-+
- option(WITH_JNI "build with JNI" OFF)
- if(WITH_JNI OR JNI)
-   message(STATUS "JNI library is enabled")
-@@ -857,15 +862,17 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
-     INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
-   )
--  install(
--    TARGETS ${ROCKSDB_SHARED_LIB}
--    EXPORT RocksDBTargets
--    COMPONENT runtime
--    ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
--    RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
--    LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
--    INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
--  )
-+  if(ROCKSDB_BUILD_SHARED)
-+    install(
-+      TARGETS ${ROCKSDB_SHARED_LIB}
-+      EXPORT RocksDBTargets
-+      COMPONENT runtime
-+      ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
-+      RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
-+      LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
-+      INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
-+    )
-+  endif()
-   install(
-     EXPORT RocksDBTargets
-@@ -1052,7 +1059,7 @@ if(WITH_TESTS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
-   add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
-   set(TESTUTILLIB testutillib${ARTIFACT_SUFFIX})
-   add_library(${TESTUTILLIB} STATIC ${TESTUTIL_SOURCE})
--  target_link_libraries(${TESTUTILLIB} ${LIBS})
-+  target_link_libraries(${TESTUTILLIB} ${ROCKSDB_LIB})
-   if(MSVC)
-     set_target_properties(${TESTUTILLIB} PROPERTIES COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/testutillib${ARTIFACT_SUFFIX}.pdb")
-   endif()
-@@ -1073,30 +1080,42 @@ if(WITH_TESTS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
-         EXCLUDE_FROM_DEFAULT_BUILD_RELWITHDEBINFO 1
-         OUTPUT_NAME ${exename}${ARTIFACT_SUFFIX}
-         )
--      target_link_libraries(${CMAKE_PROJECT_NAME}_${exename}${ARTIFACT_SUFFIX} testutillib${ARTIFACT_SUFFIX} gtest ${LIBS})
-+      target_link_libraries(${CMAKE_PROJECT_NAME}_${exename}${ARTIFACT_SUFFIX} testutillib${ARTIFACT_SUFFIX} gtest ${ROCKSDB_LIB})
-       if(NOT "${exename}" MATCHES "db_sanity_test")
-         add_test(NAME ${exename} COMMAND ${exename}${ARTIFACT_SUFFIX})
-         add_dependencies(check ${CMAKE_PROJECT_NAME}_${exename}${ARTIFACT_SUFFIX})
-       endif()
-   endforeach(sourcefile ${TEST_EXES})
--  # C executables must link to a shared object
--  set(C_TESTS db/c_test.c)
--  set(C_TEST_EXES ${C_TESTS})
-+  if(WIN32)
-+    # C executables must link to a shared object
-+    if(ROCKSDB_BUILD_SHARED)
-+      set(ROCKSDB_LIB_FOR_C ${ROCKSDB_SHARED_LIB})
-+    else()
-+      set(ROCKSDB_LIB_FOR_C OFF)
-+    endif()
-+  else()
-+    set(ROCKSDB_LIB_FOR_C ${ROCKSDB_LIB})
-+  endif()
--  foreach(sourcefile ${C_TEST_EXES})
--      string(REPLACE ".c" "" exename ${sourcefile})
--      string(REGEX REPLACE "^((.+)/)+" "" exename ${exename})
--      add_executable(${exename}${ARTIFACT_SUFFIX} ${sourcefile})
--      set_target_properties(${exename}${ARTIFACT_SUFFIX}
--        PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD_RELEASE 1
--        EXCLUDE_FROM_DEFAULT_BUILD_MINRELEASE 1
--        EXCLUDE_FROM_DEFAULT_BUILD_RELWITHDEBINFO 1
--        )
--      target_link_libraries(${exename}${ARTIFACT_SUFFIX} ${ROCKSDB_IMPORT_LIB} testutillib${ARTIFACT_SUFFIX})
--      add_test(NAME ${exename} COMMAND ${exename}${ARTIFACT_SUFFIX})
--      add_dependencies(check ${exename}${ARTIFACT_SUFFIX})
--  endforeach(sourcefile ${C_TEST_EXES})
-+  if(ROCKSDB_LIB_FOR_C)
-+    set(C_TESTS db/c_test.c)
-+    set(C_TEST_EXES ${C_TESTS})
-+
-+    foreach(sourcefile ${C_TEST_EXES})
-+        string(REPLACE ".c" "" exename ${sourcefile})
-+        string(REGEX REPLACE "^((.+)/)+" "" exename ${exename})
-+        add_executable(${exename}${ARTIFACT_SUFFIX} ${sourcefile})
-+        set_target_properties(${exename}${ARTIFACT_SUFFIX}
-+          PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD_RELEASE 1
-+          EXCLUDE_FROM_DEFAULT_BUILD_MINRELEASE 1
-+          EXCLUDE_FROM_DEFAULT_BUILD_RELWITHDEBINFO 1
-+          )
-+        target_link_libraries(${exename}${ARTIFACT_SUFFIX} ${ROCKSDB_LIB_FOR_C} testutillib${ARTIFACT_SUFFIX})
-+        add_test(NAME ${exename} COMMAND ${exename}${ARTIFACT_SUFFIX})
-+        add_dependencies(check ${exename}${ARTIFACT_SUFFIX})
-+    endforeach(sourcefile ${C_TEST_EXES})
-+  endif()
- endif()
- option(WITH_BENCHMARK_TOOLS "build with benchmarks" ON)
-@@ -1117,7 +1136,7 @@ if(WITH_BENCHMARK_TOOLS)
-     get_filename_component(exename ${sourcefile} NAME_WE)
-     add_executable(${exename}${ARTIFACT_SUFFIX} ${sourcefile}
-       $<TARGET_OBJECTS:testharness>)
--    target_link_libraries(${exename}${ARTIFACT_SUFFIX} gtest ${LIBS})
-+    target_link_libraries(${exename}${ARTIFACT_SUFFIX} gtest ${ROCKSDB_LIB})
-   endforeach(sourcefile ${BENCHMARKS})
- option(WITH_TOOLS "build with tools" ON)
-diff --git a/db_stress_tool/CMakeLists.txt b/db_stress_tool/CMakeLists.txt
-index b1f706c161..ac46611ca4 100644
---- a/java/CMakeLists.txt
-+++ b/java/CMakeLists.txt
-@@ -484,13 +484,13 @@ endif()
- set(ROCKSDBJNI_STATIC_LIB rocksdbjni${ARTIFACT_SUFFIX})
- add_library(${ROCKSDBJNI_STATIC_LIB} ${JNI_NATIVE_SOURCES})
- add_dependencies(${ROCKSDBJNI_STATIC_LIB} rocksdbjni_headers)
--target_link_libraries(${ROCKSDBJNI_STATIC_LIB} ${ROCKSDB_STATIC_LIB} ${LIBS})
-+target_link_libraries(${ROCKSDBJNI_STATIC_LIB} ${ROCKSDB_STATIC_LIB} ${ROCKSDB_LIB})
- if(NOT MINGW)
-   set(ROCKSDBJNI_SHARED_LIB rocksdbjni-shared${ARTIFACT_SUFFIX})
-   add_library(${ROCKSDBJNI_SHARED_LIB} SHARED ${JNI_NATIVE_SOURCES})
-   add_dependencies(${ROCKSDBJNI_SHARED_LIB} rocksdbjni_headers)
--  target_link_libraries(${ROCKSDBJNI_SHARED_LIB} ${ROCKSDB_STATIC_LIB} ${LIBS})
-+  target_link_libraries(${ROCKSDBJNI_SHARED_LIB} ${ROCKSDB_STATIC_LIB} ${ROCKSDB_LIB})
-   set_target_properties(
-     ${ROCKSDBJNI_SHARED_LIB}
-diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
-index 1037a716ce..50ee3b1b6e 100644
---- a/tools/CMakeLists.txt
-+++ b/tools/CMakeLists.txt
-@@ -10,7 +10,7 @@ foreach(src ${TOOLS})
-   get_filename_component(exename ${src} NAME_WE)
-   add_executable(${exename}${ARTIFACT_SUFFIX}
-     ${src})
--  target_link_libraries(${exename}${ARTIFACT_SUFFIX} ${LIBS})
-+  target_link_libraries(${exename}${ARTIFACT_SUFFIX} ${ROCKSDB_LIB})
-   list(APPEND tool_deps ${exename})
- endforeach()
index 105e648e3c261bbd0aa4e35ce80dbdce870ecee8..e2a72b4dbe7dbd08f7ce8b8163be9a87ff520931 100644 (file)
@@ -10,58 +10,74 @@ ROCKSDB_LICENSE = GPL-2.0 or Apache-2.0
 ROCKSDB_LICENSE_FILES = COPYING LICENSE.Apache LICENSE.leveldb README.md
 ROCKSDB_INSTALL_STAGING = YES
 
-ROCKSDB_CONF_OPTS = \
-       -DPORTABLE=ON \
-       -DWITH_BENCHMARK_TOOLS=OFF \
-       -DWITH_TESTS=OFF \
-       -DWITH_TOOLS=OFF
+ROCKSDB_MAKE_OPTS = PORTABLE=1
 
 ifeq ($(BR2_PACKAGE_BZIP2),y)
 ROCKSDB_DEPENDENCIES += bzip2
-ROCKSDB_CONF_OPTS += -DWITH_BZ2=ON
+ROCKSDB_CONF_OPTS += ROCKSDB_DISABLE_BZ2=0
 else
-ROCKSDB_CONF_OPTS += -DWITH_BZ2=OFF
+ROCKSDB_CONF_OPTS += ROCKSDB_DISABLE_BZ2=1
 endif
 
 ifeq ($(BR2_PACKAGE_JEMALLOC),y)
 ROCKSDB_DEPENDENCIES += jemalloc
-ROCKSDB_CONF_OPTS += -DWITH_JEMALLOC=ON
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_JEMALLOC=0
 else
-ROCKSDB_CONF_OPTS += -DWITH_JEMALLOC=OFF
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_JEMALLOC=1
 endif
 
 ifeq ($(BR2_PACKAGE_LZ4),y)
 ROCKSDB_DEPENDENCIES += lz4
-ROCKSDB_CONF_OPTS += -DWITH_LZ4=ON
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_LZ4=0
 else
-ROCKSDB_CONF_OPTS += -DWITH_LZ4=OFF
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_LZ4=1
 endif
 
 ifeq ($(BR2_PACKAGE_SNAPPY),y)
 ROCKSDB_DEPENDENCIES += snappy
-ROCKSDB_CONF_OPTS += -DWITH_SNAPPY=ON
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_SNAPPY=0
 else
-ROCKSDB_CONF_OPTS += -DWITH_SNAPPY=OFF
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_SNAPPY=1
 endif
 
 ifeq ($(BR2_PACKAGE_ZLIB),y)
 ROCKSDB_DEPENDENCIES += zlib
-ROCKSDB_CONF_OPTS += -DWITH_ZLIB=ON
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_ZLIB=0
 else
-ROCKSDB_CONF_OPTS += -DWITH_ZLIB=OFF
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_ZLIB=1
 endif
 
 ifeq ($(BR2_PACKAGE_ZSTD),y)
 ROCKSDB_DEPENDENCIES += zstd
-ROCKSDB_CONF_OPTS += -DWITH_ZSTD=ON
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_ZSTD=0
 else
-ROCKSDB_CONF_OPTS += -DWITH_ZSTD=OFF
+ROCKSDB_MAKE_OPTS += ROCKSDB_DISABLE_ZSTD=1
 endif
 
 ifeq ($(BR2_STATIC_LIBS),y)
-ROCKSDB_CONF_OPTS += -DROCKSDB_BUILD_SHARED=OFF
-else
-ROCKSDB_CONF_OPTS += -DROCKSDB_BUILD_SHARED=ON
+ROCKSDB_BUILD_TARGETS += static_lib
+ROCKSDB_INSTALL_TARGETS += install-static
+else ifeq ($(BR2_SHARED_LIBS),y)
+ROCKSDB_BUILD_TARGETS += shared_lib
+ROCKSDB_INSTALL_TARGETS += install-shared
+else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
+ROCKSDB_BUILD_TARGETS += shared_lib static_lib
+ROCKSDB_INSTALL_TARGETS += install-shared install-static
 endif
 
-$(eval $(cmake-package))
+define ROCKSDB_BUILD_CMDS
+       $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ROCKSDB_MAKE_OPTS) -C $(@D) \
+               $(ROCKSDB_BUILD_TARGETS)
+endef
+
+define ROCKSDB_INSTALL_STAGING_CMDS
+       $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ROCKSDB_MAKE_OPTS) -C $(@D) \
+               INSTALL_PATH=$(STAGING_DIR) $(ROCKSDB_INSTALL_TARGETS)
+endef
+
+define ROCKSDB_INSTALL_TARGET_CMDS
+       $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ROCKSDB_MAKE_OPTS) -C $(@D) \
+               INSTALL_PATH=$(TARGET_DIR) $(ROCKSDB_INSTALL_TARGETS)
+endef
+
+$(eval $(generic-package))