|
|
|
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/master.tar.gz"
|
|
|
|
tar zxf master.tar.gz
|
|
|
|
rm -f master.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-master
|
|
|
|
```
|
|
|
|
|
|
|
|
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-master
|
|
|
|
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-master
|
|
|
|
make
|
|
|
|
```
|
|
|
|
|
|
|
|
Optionally we can compile included examples (`COMPILE_EXAMPLES=ON`) and tests (`COMPILE_TESTS=ON`):
|
|
|
|
```
|
|
|
|
cmake -DCOMPILE_EXAMPLES=ON -DCOMPILE_TESTS=ON ../INMOST-master
|
|
|
|
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-master
|
|
|
|
```
|
|
|
|
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-master/
|
|
|
|
```
|
|
|
|
|
|
|
|
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-master
|
|
|
|
``` |