git clone --recurse-submodules https://github.com/eloqdata/eloqdocAssuming Ubuntu 24.04 is your development environment, run the following script to install dependencies.
bash scripts/install_dependency_ubuntu2404.shIf you are using another Linux distribution, follow the steps in install_dependency_ubuntu2404.sh to install dependencies manually.
There are two components to compile: EloqDoc and core libraries. EloqDoc is compiled with scons, and the core libraries are compiled with cmake.
export INSTALL_PREFIX=/absolute/path/to/installThe INSTALL_PREFIX must be an absolute path. Binaries and libraries will be installed under this directory.
Run the following commands from the repository root:
cmake -S src/mongo/db/modules/eloq \
-B src/mongo/db/modules/eloq/build \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DWITH_DATA_STORE=ELOQDSS_ROCKSDB
cmake --build src/mongo/db/modules/eloq/build -j8
cmake --install src/mongo/db/modules/eloq/buildThe scons build tool depends on Python 2.7. Switch to a Python 2.7 environment before running scons. The install_dependency-ubuntu2404.sh script installs Python 2.7.18 and the required packages.
pyenv global 2.7.18Compile EloqDoc from the repository root.
env WITH_DATA_STORE=ELOQDSS_ROCKSDB \
python scripts/buildscripts/scons.py \
MONGO_VERSION=4.0.3 \
VARIANT_DIR=RelWithDebInfo \
CXXFLAGS="-Wno-nonnull -Wno-class-memaccess -Wno-interference-size -Wno-redundant-move" \
--build-dir=#build \
--prefix=$INSTALL_PREFIX \
--disable-warnings-as-errors \
-j8 \
install-coreAll executable files will be installed to $INSTALL_PREFIX/bin, and all libraries will be installed to $INSTALL_PREFIX/lib.