Dear SIESTA developers,
I am having trouble compiling SIESTA-5.0, specifically regarding libfdf. I
get the following error message even though libfdf was present in the
External folder:
-- Searching for libfdf
-- | Siesta_find_package[libfdf] METHODS | ALLOWED = source |
cmake;pkgconf;source;fetch
-- | source in folder:
/tmp/test/SIESTA_5.0_LATEST/siesta-rel-5.0/External/libfdf
-- | source in folder:
/tmp/test/SIESTA_5.0_LATEST/siesta-rel-5.0/External/libfdf - not
found/compatible
-- Searching for libfdf - not found
CMake Error at Config/cmake/SiestaFindPackage.cmake:383 (message):
Required package libfdf cannot be found
Call Stack (most recent call first):
Config/cmake/Modules/FindCustomlibfdf.cmake:3 (Siesta_find_package)
CMakeLists.txt:215 (find_package)
I have outlined my installation steps below so that the developers can
point out any potential flaws in my approach. Any assistance in fixing this
problem would be greatly appreciated.
Thank you.
STEP 1: Installation of required libraries
The latest versions of the following libraries were installed: libfdf,
libgridxc, libpsml, libxc and xmlf90
STEP 2: SIESTA-5.0 set-up
(a) The latest version of SIESTA-5.0 was downloaded (this is not the
beta-5.0 version; it is the most up-to-date version).
(b) After expanding the *.tar.gz file, I copied the libraries in STEP 1
into the folder labeled "External" in the main SIESTA directory.
STEP 3: Compiling SIESTA with CMake
#Define a few important directories
MKLPATH=/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
SDIR=/tmp/test/SIESTA_5.0_LATEST/siesta-rel-5.0
LIBXC_ROOT=${SDIR}/External/libxc
GRIDXC_ROOT=${SDIR}/External/libgridxc
XMLF90_ROOT=${SDIR}/External/xmlf90
PSML_ROOT=${SDIR}/External/libpsml
LIBFDF_ROOT=${SDIR}/External/libfdf
# Now compile following instructions in the installation guide
FC=ftn cmake -S. -B_build \
-DCMAKE_INSTALL_PREFIX=${SDIR}/build \
-DWITH_LIBXC=ON -DLIBXC_ROOT=${LIBXC_ROOT} \
-DXMLF90_FIND_METHOD=source -DXMLF90_SOURCE_DIR=${XMLF90_ROOT} \
-DLIBPSML_FIND_METHOD=source -DLIBPSML_SOURCE_DIR=${PSML_ROOT} \
-DLIBGRIDXC_FIND_METHOD=source -DLIBGRIDXC_SOURCE_DIR=${GRIDXC_ROOT}\
-DLIBFDF_FIND_METHOD=source -DLIBFDF_SOURCE_DIR=${LIBFDF_ROOT} \
-DSIESTA_TOOLCHAIN=${SDIR}/Config/cmake/toolchains/intel.cmake \
-DWITH_NCDF=ON \
-DNetCDF_ROOT=/opt/cray/pe/netcdf/4.9.0.1/intel/19.0/ \
-DNetCDF_INCLUDE_DIR=/opt/cray/pe/netcdf/4.9.0.1/intel/19.0/include \
-DWITH_MPI=ON \
-DWITH_LUA=OFF \
-DWITH_FLOOK=OFF \
-DWITH_DFTD3=OFF \
-DBLAS_LIBRARY="-L${MKLPATH} ${MKLPATH}/libmkl_blas95_lp64.a
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64
-liomp5 -lpthread -lm -ldl" \
-DLAPACK_LIBRARY="-L${MKLPATH} ${MKLPATH}/libmkl_lapack95_lp64.a
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64
-liomp5 -lpthread -lm -ldl" \
-DSCALAPACK_LIBRARY="-L${MKLPATH} -lmkl_scalapack_lp64 -lmkl_intel_lp64
-lmkl_core -lmkl_intel_thread -lmkl_blacs_intelmpi_lp64 -lpthread -lm -ldl"
\
-DBLAS_LIBRARY_DIR=${MKLPATH} \
-DLAPACK_LIBRARY_DIR=${MKLPATH} \
-DSCALAPACK_LIBRARY_DIR=${MKLPATH} \
STEP 4: Output of SIESTA compilation (up to error generation point)
-- The Fortran compiler identification is IntelLLVM 2023.2.0
-- The C compiler identification is IntelLLVM 2023.2.0
-- Cray Programming Environment 2.7.21 Fortran
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /opt/cray/pe/craype/2.7.21/bin/ftn -
skipped
-- Cray Programming Environment 2.7.21 C
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/cray/pe/craype/2.7.21/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Using IntelLLVM compiler
-- Using toolchain:
/tmp/test/SIESTA_5.0_LATEST/siesta-rel-5.0/Config/cmake/toolchains/intel.cmake
--
No build type selected. SIESTA will default to 'Release'.
To override pass -DCMAKE_BUILD_TYPE=<type> in order to configure SIESTA.
Available options are:
* -DCMAKE_BUILD_TYPE=Release - For an optimized build with no assertions
or debug info.
* -DCMAKE_BUILD_TYPE=Debug - For an unoptimized build with assertions and
debug info.
* -DCMAKE_BUILD_TYPE=Check - For an unoptimized build with assertions and
debug info + code checks.
* -DCMAKE_BUILD_TYPE=RelWithDebInfo - For an optimized build with no
assertions but with debug info.
* -DCMAKE_BUILD_TYPE=MinSizeRel - For a build optimized for size instead
of speed.
-- Flags for C-compiler (build type: Release): -O2 -ip -xHost
-- Flags for Fortran-compiler (build type: Release): -O2 -ip -xHost
-fp-model=strict -prec-div -prec-sqrt
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Parsing BLAS options
-- Locating BLAS library
-- Searching in: /opt/intel/oneapi/mkl/2023.2.0/lib/intel64
-- Found CustomBlas: -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/libmkl_blas95_lp64.a
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64
-liomp5 -lpthread -lm -ldl
-- Locating BLAS library - found
-- BLAS library: -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/libmkl_blas95_lp64.a
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64
-liomp5 -lpthread -lm -ldl
-- BLAS link flags:
-- Parsing LAPACK options
-- Locating LAPACK library
-- Searching in: /opt/intel/oneapi/mkl/2023.2.0/lib/intel64
-- Found CustomLapack: -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/libmkl_lapack95_lp64.a
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64
-liomp5 -lpthread -lm -ldl
-- Locating LAPACK library - found
-- LAPACK library: -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/libmkl_lapack95_lp64.a
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64
-liomp5 -lpthread -lm -ldl
-- LAPACK link flags:
-- Found MPI_C: /opt/cray/pe/craype/2.7.21/bin/cc (found version "3.1")
-- Found MPI_Fortran: /opt/cray/pe/craype/2.7.21/bin/ftn (found version
"3.1")
-- Found MPI: TRUE (found version "3.1") found components: Fortran C
-- Parsing ScaLAPACK options
-- Locating ScaLAPACK library
-- Searching in: /opt/intel/oneapi/mkl/2023.2.0/lib/intel64
-- Using user-defined variables
-- Found CustomScalapack: -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
-lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread
-lmkl_blacs_intelmpi_lp64 -lpthread -lm -ldl
-- Locating ScaLAPACK library - found
-- ScaLAPACK library: -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
-lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread
-lmkl_blacs_intelmpi_lp64 -lpthread -lm -ldl
-- ScaLAPACK link flags:
-- Checking that BLAS library works...
-- Performing Test blas_has_sgemm
-- Performing Test blas_has_sgemm - Success
-- Performing Test blas_cdotu_return_convention
-- Performing Test blas_cdotu_return_convention - Success
-- Checking that LAPACK library works...
-- Performing Test lapack_has_dsysv
-- Performing Test lapack_has_dsysv - Success
-- Checking that ScaLAPACK library works...
-- Performing Test scalapack_has_blacs_gridinit
-- Performing Test scalapack_has_blacs_gridinit - Success
-- Checking linear algebra compatibility and extensions
-- Performing Test BLAS_HAS_GEMM3M
-- Performing Test BLAS_HAS_GEMM3M - Success
-- Performing Test LAPACK_HAS_MRRR
-- Performing Test LAPACK_HAS_MRRR - Success
-- Performing Test LAPACK_HAS_VX_2STAGE
-- Performing Test LAPACK_HAS_VX_2STAGE - Success
-- Performing Test LAPACK_HAS_VD_2STAGE
-- Performing Test LAPACK_HAS_VD_2STAGE - Success
-- Performing Test LAPACK_HAS_V_2STAGE
-- Performing Test LAPACK_HAS_V_2STAGE - Success
-- Performing Test LAPACK_HAS_VR_2STAGE
-- Performing Test LAPACK_HAS_VR_2STAGE - Success
-- Performing Test SCALAPACK_HAS_MRRR
-- Performing Test SCALAPACK_HAS_MRRR - Success
-- Found NetCDF: /opt/cray/pe/netcdf/4.9.0.1/intel/19.0/include (found
suitable version "4.9.0", minimum required is "4.0.0") found components:
Fortran C
-- FindNetCDF defines targets:
-- - NetCDF_VERSION [4.9.0]
-- - NetCDF_PARALLEL [FALSE]
-- - NetCDF_C_CONFIG_EXECUTABLE [/opt/cray/pe/netcdf/
4.9.0.1/intel/19.0/bin/nc-config]
-- - NetCDF::NetCDF_C [SHARED] [Root: /opt/cray/pe/netcdf/
4.9.0.1/intel/19.0] Lib: /opt/cray/pe/netcdf/
4.9.0.1/intel/19.0/lib/libnetcdf.so
-- - NetCDF_Fortran_CONFIG_EXECUTABLE [/opt/cray/pe/netcdf/
4.9.0.1/intel/19.0/bin/nf-config]
-- - NetCDF::NetCDF_Fortran [SHARED] [Root: /opt/cray/pe/netcdf/
4.9.0.1/intel/19.0] Lib: /opt/cray/pe/netcdf/
4.9.0.1/intel/19.0/lib/libnetcdff.so
-- Searching for libfdf
-- | Siesta_find_package[libfdf] METHODS | ALLOWED = source |
cmake;pkgconf;source;fetch
-- | source in folder:
/tmp/test/SIESTA_5.0_LATEST/siesta-rel-5.0/External/libfdf
-- | source in folder:
/tmp/test/SIESTA_5.0_LATEST/siesta-rel-5.0/External/libfdf - not
found/compatible
-- Searching for libfdf - not found
CMake Error at Config/cmake/SiestaFindPackage.cmake:383 (message):
Required package libfdf cannot be found
Call Stack (most recent call first):
Config/cmake/Modules/FindCustomlibfdf.cmake:3 (Siesta_find_package)
CMakeLists.txt:215 (find_package)
--
SIESTA is supported by the Spanish Research Agency (AEI) and by the European
H2020 MaX Centre of Excellence (http://www.max-centre.eu/)