View Source Customized builds
Since version 0.26.0 Erlang wrapper for RocksDB support customized build.
There are manyoptions added to customize build (all are OFF
by default):
WITH_SYSTEM_ROCKSDB=ON
the driver will link with RocksDB shared library provided by host systemWITH_SNAPPY=ON
the driver will link with snappy shared library provided by host systemWITH_LZ4=ON
the driver will link with lz4 shared library provided by host systemWITH_BZ2=ON
the driver will link with bzip2 shared library provided by host systemWITH_ZLIB=ON
the driver will link with zlib shared library provided by host systemWITH_ZSTD=ON
the driver will link with zstd shared library provided by host systemWITH_CCACHE=ON
the driver will use ccache to cache part of the build. you can also set theCCACHE_DIR
WITH_TBB=ON
to build with Threading Building Blocks (TBB)
⚠️ with the 1.0.0 release
erlang-rocksdb
doesn't build statically withLZ4
and sSNAPPY
. To reintroduce this behaviour you can build it with the optionsWITH_BUNDLE_SNAPPY
andWITH_BUNDLE_LZ4
.
All options passes via ERLANG_ROCKSDB_OPTS
environment variable or via rebar.config.script
. For example, command
$ export ERLANG_ROCKSDB_OPTS="-DERLANG_ROCKSDB_USE_SYSTEM_ROCKSDB=ON -DERLANG_ROCKSDB_USE_SYSTEM_SNAPPY=ON -DERLANG_ROCKSDB_USE_SYSTEM_LZ4=ON"
$ make
gives following output on macOS
===> Verifying dependencies...
===> Compiling rocksdb
-- Using OTP lib: /usr/local/Cellar/erlang/21.1.4/lib/erlang/lib - found
-- Using erl_interface version: erl_interface-3.10.4
-- Using erts version: erts-10.1.3
-- Found LZ4: /usr/local/lib/liblz4.dylib
-- Found SNAPPY: /usr/local/lib/libsnappy.dylib
-- Found RocksDB: /usr/local/lib/librocksdb.dylib (found suitable version "5.17.2", minimum required is "5.17.2")
-- Configuring done
-- Generating done
...
[SKIP BUILD OUTPUT]
...
Build in parallel
You can build erlang-rocksdb
in parallel by passing the following option ERLANG_ROCKSDB_BUILDOPTS=-j
or ERLANG_ROCKSDB_BUILDOPTS=-j N
where N is the number of threads you want to use.