Building RonDB starts by running CMake that creates a set of Makefiles that are used to build the various libraries and binaries that is part of RonDB. The first step to build RonDB is to clone the Git tree. The github tree is found at:
git clone https://github.com/logicalclocks/rondb rondb_2104
The above command clones the default branch into the rondb_2104 directory. To work on RonDB 22.01 one needs to change to the 22.01 branch using the below command:
git checkout 22.01
The normal procedure is to first clone the github tree on the github.com web page. So in my case the development tree is cloned with the below command:
git clone https://github.com/mronstro/rondb rondb_2104
Next create a directory to build RonDB in. There are three build variants during development. A debug build, an error insert build and a production build. I usually create directories called debug_build, err_build and prod_build.
To perform the actual build one moves into this directory and issues the build command which is found in the RonDB tree as shown below using the debug build as an example:
cd rondb_2104 mkdir debug_build cd debug_build ../build_scripts/build_script_debug.sh
Before calling this script with success one needs to install a lot of things that are required to build RonDB. The first thing is always to ensure that one have access to the Boost library version 1.73.0. To do this one need to download the Boost tarball that can be found on the internet.
cd some_directory tar xfz boost_1_73_0.tar.gz export BOOST_ROOT=/some_directory/boost_1_73_0
After this one need to install GCC of a sufficiently high version (at least GCC 8, on Mac OS X one downloads the latest XCode version).
There are a lot of things to install, the easiest manner to ensure that everything is installed is to execute the build script that uses CMake and simply follow the directives and Google to discover what needs to be installed. One important thing to download is OpenSSL 1.1.1, one can currently not use any newer version of OpenSSL.
The above build script will execute the entire and will ensure that the debug_build directory has the binaries installed in the bin directory and libraries in the lib directory. More on how to run tests after the build in the next chapter.