2014-07-22 19:42:24 +02:00
# Created by: Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>
# $FreeBSD$
PORTNAME = rocksdb
2018-06-24 22:16:04 +02:00
PORTVERSION = 5.13.4
2018-02-07 21:09:59 +01:00
DISTVERSIONPREFIX = v
2014-07-22 19:42:24 +02:00
CATEGORIES = databases
2017-04-18 21:38:13 +02:00
MAINTAINER ?= sunpoet@FreeBSD.org
COMMENT ?= Persistent key-value store for fast storage environments
2014-07-22 19:42:24 +02:00
2017-07-19 20:04:46 +02:00
LICENSE = APACHE20 GPLv2
LICENSE_COMB = dual
LICENSE_FILE_APACHE20 = ${ WRKSRC } /LICENSE.Apache
LICENSE_FILE_GPLv2 = ${ WRKSRC } /COPYING
2014-07-22 19:42:24 +02:00
2017-12-27 09:02:58 +01:00
BROKEN_DragonFly = does not build on DragonFly BSD using GCC with -Werror
BROKEN_armv6 ?= does not build: db/c.cc:2281:44: implicit conversion loses integer precision: 'uint64_t' ( aka 'unsigned long long' ) to 'size_t' ( aka 'unsigned int' )
BROKEN_armv7 ?= does not build: /nxb-bin/usr/bin/ld: undefined reference to symbol ` __gnu_Unwind_Find_exidx@@FBSD_1.4' (try adding -lc) #' `
2018-06-18 05:49:09 +02:00
BROKEN_powerpc64 = does not build: util/crc32c.cc:435:22: 'arch_ppc_probe' was not declared in this scope
2017-12-27 09:02:58 +01:00
2017-12-27 20:51:30 +01:00
BUILD_DEPENDS = bash:shells/bash
LIB_DEPENDS = libgflags.so:devel/gflags \
libsnappy.so:archivers/snappy
2016-11-21 00:54:26 +01:00
OPTIONS_DEFINE = DEBUG LZ4 ZSTD
2016-11-22 19:42:47 +01:00
OPTIONS_DEFAULT = LZ4
2016-03-06 07:19:27 +01:00
2018-06-18 05:49:09 +02:00
USES = compiler:c++11-lib gmake localbase:ldflags shebangfix
2016-03-06 07:19:27 +01:00
ALL_TARGET = shared_lib static_lib all
2017-04-23 19:09:21 +02:00
CFLAGS += -DOS_FREEBSD
2016-11-21 00:54:26 +01:00
CONFIGURE_ARGS = make_config.mk
2017-04-18 21:38:13 +02:00
CONFIGURE_ENV = PORTABLE = 0 ROCKSDB_ROOT = ${ WRKSRC }
2016-11-21 00:54:26 +01:00
CONFIGURE_SCRIPT = build_tools/build_detect_platform
2017-04-18 21:38:13 +02:00
HAS_CONFIGURE = yes
2017-12-03 21:34:18 +01:00
MAKE_ENV = CXX = ${ CXX } INSTALL_PATH = ${ STAGEDIR } ${ PREFIX }
2015-05-21 23:24:26 +02:00
USE_CXXSTD = c++11
2014-07-22 19:42:24 +02:00
USE_LDCONFIG = yes
2017-11-21 19:05:51 +01:00
PLIST_SUB = PORTVERSION = ${ PORTVERSION } SHLIB_MAJOR = ${ PORTVERSION : R : R } SHLIB_MINOR = ${ PORTVERSION : R : E }
2016-03-20 19:36:09 +01:00
PORTDATA = make_config.mk
2014-07-22 19:42:24 +02:00
GH_ACCOUNT = facebook
USE_GITHUB = yes
2017-04-18 21:38:13 +02:00
SHEBANG_FILES = */*.sh
2016-12-13 18:50:13 +01:00
BENCHMARKS = cache_bench column_aware_encoding_exp db_bench memtablerep_bench persistent_cache_bench table_reader_bench
2016-04-16 23:29:11 +02:00
TOOLS = db_repl_stress db_sanity_test db_stress ldb rocksdb_dump rocksdb_undump sst_dump write_stress
2015-04-06 21:04:09 +02:00
2016-03-06 07:19:27 +01:00
DEBUG_MAKE_ENV = DEBUG_LEVEL = 2
DEBUG_MAKE_ENV_OFF = DEBUG_LEVEL = 0
2016-11-21 00:54:26 +01:00
LZ4_LIB_DEPENDS = liblz4.so:archivers/liblz4
2018-02-07 21:09:59 +01:00
LZ4_MAKE_ENV_OFF = ROCKSDB_DISABLE_LZ4 = yes
2016-11-21 00:54:26 +01:00
ZSTD_LIB_DEPENDS = libzstd.so:archivers/zstd
2018-02-07 21:09:59 +01:00
ZSTD_MAKE_ENV_OFF = ROCKSDB_DISABLE_ZSTD = yes
2016-03-06 07:19:27 +01:00
2017-04-18 21:38:13 +02:00
. i f ! d e f i n e d ( L I T E )
2017-05-27 21:42:13 +02:00
CONFLICTS_INSTALL = rocksdb-lite
2017-04-18 21:38:13 +02:00
PLIST_SUB += LITE = ""
. e l s e
PKGNAMESUFFIX = -lite
2017-05-31 15:09:07 +02:00
CONFLICTS_INSTALL = rocksdb
2017-04-23 19:09:21 +02:00
CFLAGS += -DROCKSDB_LITE= 1
2018-02-25 06:31:39 +01:00
MAKE_ENV += LIBNAME = librocksdb${ PKGNAMESUFFIX } USE_RTTI = 1 DISABLE_JEMALLOC = 1
2017-04-18 21:38:13 +02:00
PLIST_SUB += LITE = ${ PKGNAMESUFFIX }
. e n d i f
2015-04-06 21:04:09 +02:00
. i n c l u d e < b s d . p o r t . p r e . m k >
2015-06-05 20:56:58 +02:00
. i f ${COMPILER_TYPE} = = clang && ${ COMPILER_VERSION } >= 36
2015-04-06 21:04:09 +02:00
CXXFLAGS += -Wno-inconsistent-missing-override
. e n d i f
2014-07-22 19:42:24 +02:00
2017-01-07 16:26:08 +01:00
. i f ${COMPILER_TYPE} = = gcc && ${ COMPILER_VERSION } < 60
CFLAGS += -D_GLIBCXX_USE_C99
. e n d i f
2014-07-22 19:42:24 +02:00
post-patch :
2017-04-18 21:38:13 +02:00
@${ REINPLACE_CMD } -e '/^dummy :=/d; /^all: / s| $$(TESTS)||' ${ WRKSRC } /Makefile
2015-03-25 15:58:40 +01:00
@${ REINPLACE_CMD } -e 's| -fno-builtin-memcmp||; s| -ltcmalloc||' ${ WRKSRC } /build_tools/build_detect_platform
2017-12-27 09:02:58 +01:00
. i f ${ARCH} != amd64 && ${ ARCH } != i386
@${ REINPLACE_CMD } -e 's| -march=native||' ${ WRKSRC } /build_tools/build_detect_platform
. e n d i f
2015-09-04 21:01:32 +02:00
@${ REINPLACE_CMD } -e 's|#include "gtest/gtest.h"|#include "gtest.h"|' ${ WRKSRC } /third-party/gtest-1.7.0/fused-src/gtest/gtest-all.cc
2014-12-06 21:41:10 +01:00
. i f d e f i n e d ( W I T H O U T _ P R O F I L E )
2015-05-15 20:04:40 +02:00
@${ REINPLACE_CMD } -e '/pg = / s| -pg||' ${ WRKSRC } /Makefile
2014-12-06 21:41:10 +01:00
. e n d i f
2015-06-05 20:56:58 +02:00
# Disable SSE4.2 on i386 architecture to fix i386 builds on FreeBSD package building cluster
. i f ${ARCH} = = i386
@${ REINPLACE_CMD } -e 's|#ifdef __SSE4_2__|&DISABLED__|' ${ WRKSRC } /util/crc32c.cc
2015-05-31 16:58:17 +02:00
. e n d i f
2014-07-22 19:42:24 +02:00
2016-12-13 18:50:13 +01:00
post-install :
${ MKDIR } ${ STAGEDIR } ${ DATADIR } /
2016-04-16 23:29:11 +02:00
cd ${ WRKSRC } / && ${ INSTALL_PROGRAM } ${ BENCHMARKS } ${ TOOLS } ${ STAGEDIR } ${ PREFIX } /bin/
2017-04-18 21:38:13 +02:00
${ STRIP_CMD } ${ STAGEDIR } ${ PREFIX } /lib/librocksdb${ PKGNAMESUFFIX } .so
${ INSTALL_DATA } ${ WRKSRC } /librocksdb${ PKGNAMESUFFIX } _tools.a ${ STAGEDIR } ${ PREFIX } /lib/
2015-04-06 21:04:09 +02:00
${ INSTALL_DATA } ${ WRKSRC } /make_config.mk ${ STAGEDIR } ${ DATADIR } /
2014-07-22 19:42:24 +02:00
regression-test test : build
cd ${ WRKSRC } / && ${ SETENV } ${ MAKE_ENV } ${ MAKE_CMD } check
2015-04-06 21:04:09 +02:00
. i n c l u d e < b s d . p o r t . p o s t . m k >