C / C++

Begin by downloading a release tarball or by cloning the TileDB GitHub repo and checking out a release tag (where <version> is the version you wish to use (e.g., 1.7.4)

$ git clone https://github.com/TileDB-Inc/TileDB.git
$ cd TileDB
$ git checkout <version>

To configure TileDB, use the bootstrap script:

$ mkdir build
$ cd build
$ ../bootstrap <flags>
$ # Or use CMake directly instead of bootstrap:
$ # cmake <flags> ..

The flags for the bootstrap script and the CMake equivalents are as follows:

Flag

Description

CMake Equivalent

--help

Prints command line flag options

N/A

--prefix=PREFIX

Install files in tree rooted at PREFIX (defaults to TileDB/dist)

CMAKE_INSTALL_PREFIX=<PREFIX>

--dependency=DIRs

Colon separated list to binary dependencies

CMAKE_PREFIX_PATH=<DIRs>

--enable-debug

Enable debug build

CMAKE_BUILD_TYPE=Debug

--enable-coverage

Enable build with code coverage support

CMAKE_BUILD_TYPE=Coverage

--enable-verbose

Enable verbose status messages

TILEDB_VERBOSE=ON

--enable-hdfs

Enables building with HDFS storage backend support

TILEDB_HDFS=ON

--enable-s3

Enables building with S3 storage backend support

TILEDB_S3=ON

--enable-azure

Enables building with Azure Blob Storage backend support

TILEDB_AZURE=ON

--enable-gcs

Enables building with Google Cloud Storage backend support

TILEDB_GCS=ON

--enable-serialization

Enables building with Serialization and TileDB Cloud support

TILEDB_SERIALIZATION=ON

--enable-static-tiledb

Enables building TileDB as a static library

TILEDB_STATIC=ON

--disable-werror

Disables building with the -Werror flag

TILEDB_WERROR=OFF

--disable-cpp-api

Disables building the TileDB C++ API

TILEDB_CPP_API=OFF

--disable-stats

Disables internal TileDB statistics

TILEDB_STATS=OFF

--disable-tests

Disables building the TileDB test suite

TILEDB_TESTS=OFF

To build after configuration, run the generated make script

$ make -j <nprocs>

To install to the configured prefix

$ make install-tiledb

Note that building against the installed shared library requires setting the library search path at build- or run-time, as documented in Usage. (system-wide installations requiring sudo permissions may avoid this step by running sudo ldconfig after installation).

Other helpful makefile targets:

# Runs the tests
make check

# Builds the examples
make examples

Last updated