Compilation from source on Fedora

Hi there,

I have some issues with regards to the compilation of NGSolve from source on my machine. I run a linux machine (Fedora 38) with somewhat limited access (there are some restrictions from the IT department). However, the main issue seems to be that I am missing ‘lapacke’ (notice the ‘e’ at the end!), the C++ interface to lapack. Lapack itself is installed. Unfortunately, there does not seem to be a way to install lapacke on Fedora? Does anyone have any experience with compiling NGSolve on Fedora?

This is what my make command yields:

[  0%] Built target check_submodules_start
[  3%] Creating directories for 'suitesparse'
[  7%] Performing download step (git clone) for 'suitesparse'
Cloning into 'suitesparse'...
HEAD is now at 1618fd16 Restructure config targets (#42)
[ 11%] No update step for 'suitesparse'
[ 15%] No patch step for 'suitesparse'
[ 19%] Performing configure step for 'suitesparse'
CMake Warning (dev) at CMakeLists.txt:8 (PROJECT):
  cmake_minimum_required() should be called prior to this top-level project()
  call.  Please see the cmake-commands(7) manual for usage documentation of
  both commands.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib64/ccache/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib64/ccache/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:10 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Error at /usr/lib64/cmake/lapack-3.11.0/lapack-targets.cmake:103 (message):
  The imported target "lapack" references the file

     "/usr/lib64/liblapack.a"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/usr/lib64/cmake/lapack-3.11.0/lapack-targets.cmake"

  but not all the files it references.

Call Stack (most recent call first):
  /usr/lib64/cmake/lapack-3.11.0/lapack-config.cmake:7 (include)
  CMakeLists.txt:201 (find_package)


CMake Warning at CMakeLists.txt:201 (find_package):
  Found package configuration file:

    /usr/lib64/cmake/lapack-3.11.0/lapack-config.cmake

  but it set LAPACK_FOUND to FALSE so package "LAPACK" is considered to be
  NOT FOUND.


-- Configuring incomplete, errors occurred!
make[2]: *** [CMakeFiles/suitesparse.dir/build.make:92: dependencies/src/suitesparse-stamp/suitesparse-configure] Error 1
make[1]: *** [CMakeFiles/Makefile2:198: CMakeFiles/suitesparse.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

I managed to solve this issues by myself. It seems that fedora, by default, only installs shared libraries for lapack. This is fine for NGSolve, but it seems that suitesparse needs static libraries. This can be solved using the following command:

sudo dnf install lapack-static