To read instructions on using the legacy autoconf build system, see Building and installing WiredTiger with autoconf/libtool.
Skip this step if you are building from a WiredTiger release package, and proceed with Building WiredTiger.
To build from the WiredTiger GitHub repository requires git, CMake, Ninja. We also suggest ccache for improved build times and SWIG for building with Python support.
First, clone the repository:
Now proceed with Building WiredTiger.
To build the WiredTiger software on a POSIX system, change directory to the top-level directory, then configure and create a new directory to run your build from:
Change into your newly created build directory and using CMake run the build configuration step to generate your ninja build.
Lastly, in the same directory you configured your build, run the ninja command to start the build:
The WiredTiger software consists of a library and a single standalone utility.
WiredTiger's distribution by default builds and installs the shared version library in /usr/local/lib
. For example:
WiredTiger uses CMake to build and install the libraries. By default, the shared libraries are built. To build only static libraries, configure WiredTiger using the -DENABLE_STATIC=1
argument.
In addition, WiredTiger installs a standalone utility program named wt
. By default, this utility is installed in /usr/local/bin/wt
.
To install WiredTiger:
To uninstall WiredTiger:
The install_manifest.txt
file is created when you run ninja install
.
To install WiredTiger's libraries or binaries into alternate locations, configure WiredTiger using the -DCMAKE_INSTALL_PREFIX=custom_path
argument. For example, to install the libraries and binaries into a different location:
The WiredTiger software supports some additional configuration options:
-DHAVE_ATTACH=1
-DHAVE_DIAGNOSTIC=1
-DENABLE_LZ4=1
-DENABLE_SNAPPY=1
-DENABLE_ZLIB=1
-DENABLE_ZSTD=1
-DWT_STANDALONE_BUILD=0
-DHAVE_BUILTIN_EXTENSION_LZ4=1
, -DHAVE_BUILTIN_EXTENSION_SNAPPY=1
, -DHAVE_BUILTIN_EXTENSION_ZLIB=1
, -DHAVE_BUILTIN_EXTENSION_ZSTD=1
lz4
, snappy
, zlib
and zstd
.pthread
(the default, which configures WiredTiger to use POSIX 1003.1c pthread mutexes), pthread_adaptive
(which configures WiredTiger to use POSIX 1003.1c pthread mutexes configured to be adaptive (where that functionality is available), or gcc
(which configures WiredTiger to use gcc-based spinlocks).By default CMake will use your default system compiler (cc
). If you want to use a specific toolchain you can pass a toolchain file. We have provided a toolchain file for both GCC (cmake/toolchains/gcc.cmake
) and Clang (cmake/toolchains/clang.cmake
). To use either toolchain you can pass the -DCMAKE_TOOLCHAIN_FILE=
to the CMake configuration step. For example:
For example, to explicitly specify the GCC toolchain:
To explicitly specify the Clang toolchain:
By default, WiredTiger builds with the -O3
compiler optimization flag unless manually specified through the -DCC_OPTIMIZE_LEVEL
configuration option. For example, to specify a different level of optimization:
The WiredTiger CMake build makes available a suite of C/C++ based tests. To run the available tests you can use our smoke test alias (check
). Ensure you're in the build directory and execute:
Alternatively to just run all the tests available:
In addition, to get verbose output with your test run you can use the -VV
flag:
If you want to focus on running a specific test (i.e. run a test that may be failing) you can use the -R
flag: