SLICOT Software Installation

February 12, 2026 ยท View on GitHub

This file describes how to install and update the SLICOT Library, and how to run the example programs.

Requirements

In order to build SLICOT you need:

  • a Fortran 77 compatible Fortran compiler and a corresponding C compiler
  • CMake, at least 3.15 or 3.22 for the ILP64 build
  • a BLAS and LAPACK library, preferable an optimised one like OpenBLAS

The following compilers are tested

  • gcc/gfortran
  • clang/flang
  • Intel Classic icc/ifort
  • Intel LLVM icx/ifx
  • NVidia HPC SDK >= 21.11
  • AMD AOCC 5.0 with AMDBLIS and AMDLIBFLAME

We support Linux, xBSD, MacOSX (Intel and ARM), Windows with MSYS2.

For performance reasons, we suggest to use an optimised BLAS implementation like

Installation

SLICOT requires an out-of-source build process. That means, the source code directory stays untouched during the build.

The in order to configure and compile the source, use cmake:

cmake -S . -B build-dir <OPTIONS>
cmake --build build-dir

after building, SLICOT can be installed via

cmake --build build-dir --target install

The test suite is executed using

ctest --test-dir build-dir

The following options to CMake are available:

OptionPossible ValuesDefault ValueDescription
CMAKE_INSTALL_PREFIXvalid path/usr/local Installation path
CMAKE_BUILD_TYPEDebug, Release, MinSizeRel, RelWithDebInfo, CoverageReleaseSpecify the build type
BUILD_SHARED_LIBSON, OFFOFFBuild SLICOT as shared library
SLICOT_TESTINGON, OFFONBuild the examples and the test suite
SLICOT_DEBUGON, OFFOFFEnable the debug build, equivalent to CMAKE_BUILD_TYPE=Debug
SLICOT_INTEGER8ON, OFFOFFEnable the ILP64 integer model, i.e. the Fortran INTEGER defaults to a 64-bit integer, requires CMake >= 3.22
SLICOT_STATIC_WITH_PICON, OFFONBuild static library with -fPIC, default for shared libraries
BLA_VENDORBLAS Vendor NameemptySpecify the BLAS library to search for, see https://cmake.org/cmake/help/latest/module/FindBLAS.html for details
ENABLE_COVERAGEON, OFFOFFEnable the generation of the coverage files, see below.

The options are passed as -DOPTION=VALUE to CMake.

Windows

Regarding Microsoft Windows, we only support the MSYS2 environment at the moment. In order to build SLICOT, the following packages need to be installed in advance:

  • cmake
  • ninja
  • lapack

Either install the corresponding version package, depending on your compiler, yourself or use the pacboy package from the pactoys:

pacboy sync gcc-fortran cmake ninja lapack

The remaining build process works as described above.

RPM Packages

On RHEL, its derivatives, and Fedora Linux, we provide RPM packaging as well. In order to use this, install the following packages:

sudo dnf install cmake make gcc gcc-gfortran flexiblas-devel rpmdevtools

Instead flexiblas-devel also the reference packages can be installed. In this case uninstall flexiblas-devel and install blas-devel and lapack-devel.

Afterwards, run

bash ./dist/make_rpm.sh

from the root of the source tree. This builds the SRPM and the RPM files for SLICOT. The results can be found in ~/rpmbuild/SRPMS and ~/rpmbuild/RPMS/<ARCH>. If only the SRPM is required, use

bash ./dist/make_rpm.sh -ts

instead.

Debian/Ubuntu Packages

On Debian, Ubuntu and their derivatives packages can be built as well. This requires the installation of then prerequisites:

sudo apt install cmake libblas-dev libblas64-dev liblapack-dev liblapack64-dev\
         git build-essential gfortran clang flang  ninja-build debhelper

and debhelper must be available in version 13.0. (This disables building packages on Ubuntu before 22.04.)

After installing the requirements, the packages are build using

dpkg-buildpackage -uc -us

Issues

A list of known issues can be found in KNOWN_ISSUES.md

Coverage

In order to generate the coverage report, we rely on CMake-codecov from https://github.com/RWTH-HPC/CMake-codecov a BSD-3 licensed CMake Code-Coverage toolkit from RTWH Aachen.

For running the code coverage, SLICOT needs to be built with GCC and the -DENABLE_COVERAGE=ON passed to CMake. Furthermore, gcov and lcov must be installed on the system. After building, all test needs to be run with make test. Overall, this leads to the following procedure:

cmake -S . -D build-dir -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON
make -C build-dir
make -C build-dir test
make -C build-dir lcov

Afterwards, the coverage report can be found in build-dir/lcov/html/all_targets. If only single coverage reports are required, please look in the documentation of CMake-codecov.

GCOVR

gcovr is another frontend to visualise the coverage output. In this cases, after running the test, run

cd build-dir
make gcov
gcovr -r ..
# or
gcovr -r .. --html-nested coverage.html

Deprecation Warning

SLICOT could still by built by calling make and setting the proper values in make.inc. This way is deprecated and will be removed in the next non-bugfix release of SLICOT. Most-likely in 5.10 or 6.0.