0402 Compilation INMOST Linux - INMOST-DEV/INMOST GitHub Wiki

Compiling basic version of INMOST on Linux

We advise to define the folder where you want to place INMOST and other optional libraries:

export INMOST_ROOT="/home/user/inmost-root"

If it doesn't already exist, create this directory:

mkdir -p "$INMOST_ROOT"

Download and unpack INMOST archive:

cd "$INMOST_ROOT"
wget "https://github.com/INMOST-DEV/INMOST/archive/v0.1.tar.gz"
tar zxf v0.1.tar.gz

alternatively you can git clone INMOST repository. Make sure you installed git.

cd "$INMOST_ROOT"
git clone https://github.com/INMOST-DEV/INMOST.git INMOST-0.1

We will create separate directory for INMOST compilation, and configure INMOST with minimal features enabled:

cd "$INMOST_ROOT"
mkdir -p INMOST-build
cd INMOST-build
cmake -DUSE_AUTODIFF=OFF -DUSE_MPI=OFF ../INMOST-0.1
make all

After successful compilation the INMOST library will be created in the current directory.

You can switch between Debug and Release build types using CMake option CMAKE_BUILD_TYPE:

cmake -DCMAKE_BUILD_TYPE=Release ../INMOST-0.1
make all

Optionally we can compile included examples (COMPILE_EXAMPLES=ON) and tests (COMPILE_TESTS=ON):

cmake -DCOMPILE_EXAMPLES=ON -DCOMPILE_TESTS=ON ../INMOST-0.1
make all
make test

Adding MPI support

MPI support is already enabled by default and CMake will auto-detect your MPI installation. Enable USE_MPI option if you previously disabled it.

cmake -DUSE_MPI=ON ../INMOST-0.1
make all

If you need to provide specific paths to MPI wrappers, you can do this using MPI_<lang>_COMPILER options, e.g.:

cmake -DUSE_MPI=ON -DMPI_C_COMPILER=/usr/local/bin/mpicc -DMPI_CXX_COMPILER=/usr/local/bin/mpicxx ../INMOST-0.1/
make all

If your MPI implementation does not support MPI-IO, you should explicitly disable USE_MPI_FILE option:

cmake -DUSE_MPI=ON -DUSE_MPI_FILE=OFF ../INMOST-0.1
make all

Changing default compilers

If you want to use different compilers, you should provide them using CMake parameters CMAKE_C_COMPILER and CMAKE_CXX_COMPILER:

cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc ../INMOST-0.1/
make all
⚠️ **GitHub.com Fallback** ⚠️