Skip to content

Building

Troy C. edited this page Feb 14, 2025 · 17 revisions

There are two ways of building uMurmur.

  1. CMake
  2. GNU Autotools (deprecated and will be removed in a future release)

Whichever way you choose, there are some dependencies that need to be installed in order to successfully build uMurmur.

Dependencies

The following libraries are required:

And one of:

Using CMake

To build uMurmur using CMake, at least CMake version 3.10 is required. If you are new to CMake, it is good practice to build the product 'out-of-tree'. In the following instructions, it is assumed you are starting inside your clone of the uMurmur repository.

$ cmake -B builddir -H . -D SSL=mbedtls   # Build against the Mbed TLS library instead of OpenSSL, the default
$ ccmake builddir                         # Optionally set other options interactively
$ cmake --build builddir
$ sudo cmake --install builddir

Configuration options

There are some configuration options you might be interested in setting:

-DSSL=[openssl|mbedtls|gnutls]

Select the TLS backend. The default is openssl.

-DUSE_SHAREDMEMORY_API=[On|Off]

Enables/Disables the SharedMemory API. The default is Off.

-DUSE_MBEDTLS_TESTCERT=[On|Off]

Use the mbedTLS testing certificate. The default is Off.

-DUSE_MBEDTLS_HAVEGE=[On|Off]

Use the mbedTLS HAVEGE random number generator. The default is Off.

-DBUILD_UMURMUR_MONITOR=[On|Off]

Build the umurmur-monitor utility. The default is Off.

Please note that if you would like to build the umurmur-monitor utility, you would need to either use the

--recursive

option when cloning uMurmur or supply

-DUMURMUR_MONITOR_SOURCE_DIR=<path-to-umurmur-monitor-clone>`

where <path-to-umurmur-monitor-clone> should be replaced with the patch to the cloned source code of umurmur-monitor

Using GNU Autotools (DEPRECATED)

Building with GNU Autotools is no longer supported, and the option to do so will be removed entirely in a future release. We strongly recommend that you build with cmake instead.

Make sure you have GNU Autotools installed. Afterwards you can use the following commands to build a default configuration of uMurmur:

$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Configuration options

You can supply different configuration options to the configure script (use configure --help for all options):

--with-ssl=[openssl|gnutls|mbedtls]

Selects the TLS backend. The default selection is openssl

--enable-shmapi

Enables the SharedMemory API to use with tools like umurmur-monitor

--enable-mbedtls-test-cert

Use the mbedTLS testing certificate. !!!NOT INTENDED FOR PRODUCTION!!!

--enable-mbedtls-havege

Use the mbedTLS HAVEGE random number generator.

Clone this wiki locally