diff --git a/scalapack-2.2-fix-version.patch b/scalapack-2.2-fix-version.patch new file mode 100644 index 0000000000000000000000000000000000000000..8a9b2673f81ba65fdd64201d640e4c053b348914 --- /dev/null +++ b/scalapack-2.2-fix-version.patch @@ -0,0 +1,45 @@ +diff -up scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt.version scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt +--- scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt.version 2022-02-02 20:42:46.000000000 -0500 ++++ scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt 2022-03-14 16:02:56.936688625 -0400 +@@ -10,6 +10,11 @@ configure_file( + # Add the CMake directory for custon CMake modules + set(CMAKE_MODULE_PATH "${SCALAPACK_SOURCE_DIR}/CMAKE" ${CMAKE_MODULE_PATH}) + ++set(SCALAPACK_VERSION_MAJOR 2) ++set(SCALAPACK_VERSION_MINOR 2) ++set(SCALAPACK_VERSION_PATCH 0) ++set(SCALAPACK_VERSION ${SCALAPACK_VERSION_MAJOR}.${SCALAPACK_VERSION_MINOR}.${SCALAPACK_VERSION_PATCH} ) ++ + if (UNIX) + if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Intel") + set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" ) +@@ -232,6 +237,7 @@ append_subdir_files(src-C "SRC") + + if (UNIX) + add_library(scalapack ${blacs} ${tools} ${tools-C} ${extra_lapack} ${pblas} ${pblas-F} ${ptzblas} ${ptools} ${pbblas} ${redist} ${src} ${src-C}) ++ set_target_properties(scalapack PROPERTIES VERSION ${SCALAPACK_VERSION} SOVERSION ${SCALAPACK_VERSION_MAJOR} ) + target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) + scalapack_install_library(scalapack) + else (UNIX) # Need to separate Fortran and C Code +@@ -255,9 +261,8 @@ endif() + SET(CPACK_PACKAGE_NAME "ScaLAPACK") + SET(CPACK_PACKAGE_VENDOR "University of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd") + SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ScaLAPACK- Linear Algebra Package") +-set(SCALAPACK_VERSION 2.1.0) + set(CPACK_PACKAGE_VERSION_MAJOR 2) +-set(CPACK_PACKAGE_VERSION_MINOR 1) ++set(CPACK_PACKAGE_VERSION_MINOR 2) + set(CPACK_PACKAGE_VERSION_PATCH 0) + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") + SET(CPACK_PACKAGE_INSTALL_DIRECTORY "SCALAPACK") +@@ -307,8 +312,8 @@ configure_file(${SCALAPACK_SOURCE_DIR}/C + install(FILES + ${SCALAPACK_BINARY_DIR}/CMakeFiles/scalapack-config.cmake + ${SCALAPACK_BINARY_DIR}/scalapack-config-version.cmake +- DESTINATION lib/cmake/scalapack-${SCALAPACK_VERSION} ++ DESTINATION lib${LIB_SUFFIX}/cmake/scalapack-${SCALAPACK_VERSION} + ) + + install(EXPORT scalapack-targets +- DESTINATION lib/cmake/scalapack-${SCALAPACK_VERSION}) ++ DESTINATION lib${LIB_SUFFIX}/cmake/scalapack-${SCALAPACK_VERSION}) diff --git a/scalapack-2.2-set-CMAKE_POSITION_INDEPENDENT_CODE.patch b/scalapack-2.2-set-CMAKE_POSITION_INDEPENDENT_CODE.patch new file mode 100644 index 0000000000000000000000000000000000000000..58c0aef6e0db1194bd3de76eb88096d7f91a1672 --- /dev/null +++ b/scalapack-2.2-set-CMAKE_POSITION_INDEPENDENT_CODE.patch @@ -0,0 +1,45 @@ +diff -up scalapack-2.2.0/scalapack-2.2.0/BLACS/INSTALL/CMakeLists.txt.picfix scalapack-2.2.0/scalapack-2.2.0/BLACS/INSTALL/CMakeLists.txt +--- scalapack-2.2.0/scalapack-2.2.0/BLACS/INSTALL/CMakeLists.txt.picfix 2022-03-19 09:36:24.691840631 -0400 ++++ scalapack-2.2.0/scalapack-2.2.0/BLACS/INSTALL/CMakeLists.txt 2022-03-19 09:36:33.501891327 -0400 +@@ -2,3 +2,4 @@ cmake_minimum_required(VERSION 2.8) + project(INSTALL C Fortran) + + add_executable(xintface Fintface.f Cintface.c) ++set_property(TARGET xintface PROPERTY POSITION_INDEPENDENT_CODE TRUE) +diff -up scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt.picfix scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt +--- scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt.picfix 2022-03-19 09:36:42.285941877 -0400 ++++ scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt 2022-03-19 09:37:25.964193237 -0400 +@@ -110,6 +110,21 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SCA + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/lib) + + # -------------------------------------------------- ++# By default static library ++function (invertBoolean varName varValue) ++ if (${varValue}) ++ set(${varName} false PARENT_SCOPE) ++ else () ++ set(${varName} true PARENT_SCOPE) ++ endif () ++endfunction () ++option(BUILD_SHARED_LIBS "Build shared libraries" OFF ) ++invertBoolean("BUILD_STATIC_LIBS" ${BUILD_SHARED_LIBS}) ++if ((${BUILD_SHARED_LIBS} EQUAL ON) AND NOT CMAKE_POSITION_INDEPENDENT_CODE) ++ set(CMAKE_POSITION_INDEPENDENT_CODE ON) ++endif () ++ ++# -------------------------------------------------- + # Check for any necessary platform specific compiler flags + include( CheckBLACSCompilerFlags ) + CheckBLACSCompilerFlags() +@@ -183,11 +198,6 @@ message(STATUS "LAPACK library: ${LAPACK + MESSAGE(STATUS "=========") + + # -------------------------------------------------- +-# By default static library +-OPTION(BUILD_SHARED_LIBS "Build shared libraries" OFF ) +-OPTION(BUILD_STATIC_LIBS "Build static libraries" ON ) +- +-# -------------------------------------------------- + # Subdirectories that need to be processed + + macro(append_subdir_files variable dirname) diff --git a/scalapack-2.2.0-fix57.patch b/scalapack-2.2.0-fix57.patch new file mode 100644 index 0000000000000000000000000000000000000000..79481d1de006155a88b8dca3d83171d9432b46ca --- /dev/null +++ b/scalapack-2.2.0-fix57.patch @@ -0,0 +1,226 @@ +diff -up scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt.fix57 scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt +--- scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt.fix57 2022-03-19 09:44:21.600630824 -0400 ++++ scalapack-2.2.0/scalapack-2.2.0/CMakeLists.txt 2022-03-19 09:45:20.890987725 -0400 +@@ -44,7 +44,7 @@ if (MPI_FOUND) + message(ERROR "--> MPI C Compiler NOT FOUND (please set MPI_BASE_DIR accordingly") + else() + message(STATUS "--> MPI C Compiler : ${MPI_C_COMPILER}") +- SET(CMAKE_C_COMPILER "${MPI_C_COMPILER}") ++ #SET(CMAKE_C_COMPILER "${MPI_C_COMPILER}") + message(STATUS "--> C Compiler : ${CMAKE_C_COMPILER}") + endif() + find_program(MPI_Fortran_COMPILER +@@ -260,6 +260,10 @@ else (UNIX) # Need to separate Fortran a + scalapack_install_library(scalapack-F) + endif (UNIX) + ++if(TARGET lapack) ++ add_dependencies(scalapack lapack) ++endif() ++ + option(SCALAPACK_BUILD_TESTS "Build all tests of the ScaLAPACK library" ON) + if(${SCALAPACK_BUILD_TESTS}) + add_subdirectory(TESTING) +diff -up scalapack-2.2.0/scalapack-2.2.0/TESTING/EIG/CMakeLists.txt.fix57 scalapack-2.2.0/scalapack-2.2.0/TESTING/EIG/CMakeLists.txt +--- scalapack-2.2.0/scalapack-2.2.0/TESTING/EIG/CMakeLists.txt.fix57 2022-03-19 09:45:37.203085905 -0400 ++++ scalapack-2.2.0/scalapack-2.2.0/TESTING/EIG/CMakeLists.txt 2022-03-19 09:47:30.737769353 -0400 +@@ -53,49 +53,49 @@ pzsepchk.f pzsepqtq.f pzlatms.f pzseprts + add_executable(xshseqr pshseqrdriver.f psmatgen2.f ${cmatgen}) + add_executable(xdhseqr pdhseqrdriver.f pdmatgen2.f ${cmatgen}) + +-target_link_libraries(xsbrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdbrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcbrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzbrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xshrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdhrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xchrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzhrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xstrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdtrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xctrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xztrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xssvd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdsvd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xssep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsgsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdgsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcgsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzgsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsnep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdnep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcnep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xznep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xcevc scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzevc scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xssyevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdsyevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcheevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzheevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) ++target_link_libraries(xsbrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdbrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcbrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzbrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xshrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdhrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xchrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzhrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xstrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdtrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xctrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xztrd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xssvd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdsvd scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xssep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsgsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdgsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcgsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzgsep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsnep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdnep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcnep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xznep scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xcevc scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzevc scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xssyevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdsyevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcheevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzheevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) + +-target_link_libraries(xshseqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdhseqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) ++target_link_libraries(xshseqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdhseqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) + + if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) + set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy" ) # local to this directory +diff -up scalapack-2.2.0/scalapack-2.2.0/TESTING/LIN/CMakeLists.txt.fix57 scalapack-2.2.0/scalapack-2.2.0/TESTING/LIN/CMakeLists.txt +--- scalapack-2.2.0/scalapack-2.2.0/TESTING/LIN/CMakeLists.txt.fix57 2022-03-19 09:47:38.179814153 -0400 ++++ scalapack-2.2.0/scalapack-2.2.0/TESTING/LIN/CMakeLists.txt 2022-03-19 09:49:03.249326171 -0400 +@@ -61,55 +61,55 @@ add_executable(xcls pclsdriver.f pclsinf + add_executable(xzls pzlsdriver.f pzlsinfo.f pzqrt13.f pzqrt14.f pzqrt16.f pzqrt17.f ${zmatgen}) + + +-target_link_libraries(xslu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xclu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsdblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xddblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcdblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzdblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsdtlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xddtlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcdtlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzdtlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsgblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdgblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcgblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzgblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xspbllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdpbllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcpbllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzpbllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsptllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdptllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcptllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzptllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsinv scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdinv scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcinv scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzinv scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +- +-target_link_libraries(xsls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xdls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xcls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) +-target_link_libraries(xzls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) ++target_link_libraries(xslu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xclu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsdblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xddblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcdblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzdblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsdtlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xddtlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcdtlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzdtlu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsgblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdgblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcgblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzgblu scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xspbllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdpbllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcpbllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzpbllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsptllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdptllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcptllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzptllt scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsinv scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdinv scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcinv scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzinv scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++ ++target_link_libraries(xsls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xdls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xcls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) ++target_link_libraries(xzls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MPI_Fortran_LIBRARIES}) + + if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) + set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy" ) # local to this directory diff --git a/scalapack.spec b/scalapack.spec new file mode 100644 index 0000000000000000000000000000000000000000..279dc2feda1568c4c86de897a3c32bd78144d090 --- /dev/null +++ b/scalapack.spec @@ -0,0 +1,419 @@ +%bcond_without openmpi +%bcond_with openmpi3 +%bcond_without mpich + +%bcond_without optimized_blas + +%global blaslib openblas +%if %{with optimized_blas} +%global blasflags -DLAPACK_LIBRARIES=-l%{blaslib} -DBLAS_LIBRARIES=-l%{blaslib} +%else +%global blasflags -DLAPACK_LIBRARIES=-llapack -DBLAS_LIBRARIES=-lblas +%endif + +Summary: A subset of LAPACK routines redesigned for heterogeneous computing +Name: scalapack +Version: 2.2.0 +Release: 1 +# This is freely distributable without any restrictions. +License: Public Domain +URL: http://www.netlib.org/scalapack/ +Source0: https://github.com/Reference-ScaLAPACK/scalapack/archive/v%{version}.tar.gz +BuildRequires: cmake environment-modules +%if %{with optimized_blas} +BuildRequires: %{blaslib}-devel +%else +BuildRequires: lapack-devel +BuildRequires: blas-devel +%endif +BuildRequires: gcc-gfortran, glibc-devel +%if %{with mpich} +BuildRequires: mpich-devel +%endif +%if %{with openmpi} +BuildRequires: openmpi-devel +%endif +%if %{with openmpi3} +BuildRequires: openmpi3-devel +%endif +Patch1: scalapack-2.2-fix-version.patch +Patch2: scalapack-2.2-set-CMAKE_POSITION_INDEPENDENT_CODE.patch +Patch3: scalapack-2.2.0-fix57.patch + +%description +The ScaLAPACK (or Scalable LAPACK) library includes a subset +of LAPACK routines redesigned for distributed memory MIMD +parallel computers. It is currently written in a +Single-Program-Multiple-Data style using explicit message +passing for inter-processor communication. It assumes +matrices are laid out in a two-dimensional block cyclic +decomposition. + +ScaLAPACK is designed for heterogeneous computing and is +portable on any computer that supports MPI or PVM. + +Like LAPACK, the ScaLAPACK routines are based on +block-partitioned algorithms in order to minimize the frequency +of data movement between different levels of the memory hierarchy. +(For such machines, the memory hierarchy includes the off-processor +memory of other processors, in addition to the hierarchy of registers, +cache, and local memory on each processor.) The fundamental building +blocks of the ScaLAPACK library are distributed memory versions (PBLAS) +of the Level 1, 2 and 3 BLAS, and a set of Basic Linear Algebra +Communication Subprograms (BLACS) for communication tasks that arise +frequently in parallel linear algebra computations. In the ScaLAPACK +routines, all inter-processor communication occurs within the PBLAS and the +BLACS. One of the design goals of ScaLAPACK was to have the ScaLAPACK +routines resemble their LAPACK equivalents as much as possible. + +%package common +Summary: Common files for scalapack +# The blacs symbols live in libscalapack +Provides: blacs-common = %{version}-%{release} +Obsoletes: blacs-common <= 2.0.2 + +%description common +The ScaLAPACK (or Scalable LAPACK) library includes a subset +of LAPACK routines redesigned for distributed memory MIMD +parallel computers. It is currently written in a +Single-Program-Multiple-Data style using explicit message +passing for inter-processor communication. It assumes +matrices are laid out in a two-dimensional block cyclic +decomposition. + +ScaLAPACK is designed for heterogeneous computing and is +portable on any computer that supports MPI or PVM. + +Like LAPACK, the ScaLAPACK routines are based on +block-partitioned algorithms in order to minimize the frequency +of data movement between different levels of the memory hierarchy. +(For such machines, the memory hierarchy includes the off-processor +memory of other processors, in addition to the hierarchy of registers, +cache, and local memory on each processor.) The fundamental building +blocks of the ScaLAPACK library are distributed memory versions (PBLAS) +of the Level 1, 2 and 3 BLAS, and a set of Basic Linear Algebra +Communication Subprograms (BLACS) for communication tasks that arise +frequently in parallel linear algebra computations. In the ScaLAPACK +routines, all inter-processor communication occurs within the PBLAS and the +BLACS. One of the design goals of ScaLAPACK was to have the ScaLAPACK +routines resemble their LAPACK equivalents as much as possible. + +This package contains common files which are not specific +to any MPI implementation. + +%if %{with mpich} + +%package mpich +Summary: ScaLAPACK libraries compiled against mpich +Requires: %{name}-common = %{version}-%{release} +Requires: mpich +Provides: %{name}-mpich2 = %{version}-%{release} +Obsoletes: %{name}-mpich2 < 1.7.5-19 +# This is a lie, but something needs to obsolete it. +Provides: %{name}-lam = %{version}-%{release} +Obsoletes: %{name}-lam <= 1.7.5-7 +# The blacs symbols live in libscalapack +Provides: blacs-mpich = %{version}-%{release} +Obsoletes: blacs-mpich <= 2.0.2 + +%description mpich +The ScaLAPACK (or Scalable LAPACK) library includes a subset +of LAPACK routines redesigned for distributed memory MIMD +parallel computers. It is currently written in a +Single-Program-Multiple-Data style using explicit message +passing for inter-processor communication. It assumes +matrices are laid out in a two-dimensional block cyclic +decomposition. + +ScaLAPACK is designed for heterogeneous computing and is +portable on any computer that supports MPI or PVM. + +Like LAPACK, the ScaLAPACK routines are based on +block-partitioned algorithms in order to minimize the frequency +of data movement between different levels of the memory hierarchy. +(For such machines, the memory hierarchy includes the off-processor +memory of other processors, in addition to the hierarchy of registers, +cache, and local memory on each processor.) The fundamental building +blocks of the ScaLAPACK library are distributed memory versions (PBLAS) +of the Level 1, 2 and 3 BLAS, and a set of Basic Linear Algebra +Communication Subprograms (BLACS) for communication tasks that arise +frequently in parallel linear algebra computations. In the ScaLAPACK +routines, all inter-processor communication occurs within the PBLAS and the +BLACS. One of the design goals of ScaLAPACK was to have the ScaLAPACK +routines resemble their LAPACK equivalents as much as possible. + +This package contains ScaLAPACK libraries compiled with mpich. + +%package mpich-devel +Summary: Development libraries for ScaLAPACK (mpich) +Requires: %{name}-mpich = %{version}-%{release} +Requires: mpich-devel +Provides: %{name}-lam-devel = %{version}-%{release} +Obsoletes: %{name}-lam-devel <= 1.7.5-7 +Provides: %{name}-mpich2-devel = %{version}-%{release} +Obsoletes: %{name}-mpich2-devel < 1.7.5-19 +# The blacs symbols live in libscalapack +Provides: blacs-mpich-devel = %{version}-%{release} +Obsoletes: blacs-mpich-devel <= 2.0.2 + +%description mpich-devel +This package contains development libraries for ScaLAPACK, compiled against mpich. + +%package mpich-static +Summary: Static libraries for ScaLAPACK (mpich) +Provides: %{name}-lam-static = %{version}-%{release} +Obsoletes: %{name}-lam-static <= 1.7.5-7 +Requires: %{name}-mpich-devel = %{version}-%{release} +Provides: %{name}-mpich2-static = %{version}-%{release} +Obsoletes: %{name}-mpich2-static < 1.7.5-19 +# The blacs symbols live in libscalapack +Provides: blacs-mpich-static = %{version}-%{release} +Obsoletes: blacs-mpich-static <= 2.0.2 + +%description mpich-static +This package contains static libraries for ScaLAPACK, compiled against mpich. + +%endif + +%if %{with openmpi} +%package openmpi +Summary: ScaLAPACK libraries compiled against openmpi +Requires: %{name}-common = %{version}-%{release} +Requires: openmpi +# The blacs symbols live in libscalapack +Provides: blacs-openmpi = %{version}-%{release} +Obsoletes: blacs-openmpi <= 2.0.2 + +%description openmpi +The ScaLAPACK (or Scalable LAPACK) library includes a subset +of LAPACK routines redesigned for distributed memory MIMD +parallel computers. It is currently written in a +Single-Program-Multiple-Data style using explicit message +passing for inter-processor communication. It assumes +matrices are laid out in a two-dimensional block cyclic +decomposition. + +ScaLAPACK is designed for heterogeneous computing and is +portable on any computer that supports MPI or PVM. + +Like LAPACK, the ScaLAPACK routines are based on +block-partitioned algorithms in order to minimize the frequency +of data movement between different levels of the memory hierarchy. +(For such machines, the memory hierarchy includes the off-processor +memory of other processors, in addition to the hierarchy of registers, +cache, and local memory on each processor.) The fundamental building +blocks of the ScaLAPACK library are distributed memory versions (PBLAS) +of the Level 1, 2 and 3 BLAS, and a set of Basic Linear Algebra +Communication Subprograms (BLACS) for communication tasks that arise +frequently in parallel linear algebra computations. In the ScaLAPACK +routines, all inter-processor communication occurs within the PBLAS and the +BLACS. One of the design goals of ScaLAPACK was to have the ScaLAPACK +routines resemble their LAPACK equivalents as much as possible. + +This package contains ScaLAPACK libraries compiled with openmpi. + +%package openmpi-devel +Summary: Development libraries for ScaLAPACK (openmpi) +Requires: %{name}-openmpi = %{version}-%{release} +Requires: openmpi-devel +# The blacs symbols live in libscalapack +Provides: blacs-openmpi-devel = %{version}-%{release} +Obsoletes: blacs-openmpi-devel <= 2.0.2 + +%description openmpi-devel +This package contains development libraries for ScaLAPACK, compiled against openmpi. + +%package openmpi-static +Summary: Static libraries for ScaLAPACK (openmpi) +Requires: %{name}-openmpi-devel = %{version}-%{release} +# The blacs symbols live in libscalapack +Provides: blacs-openmpi-static = %{version}-%{release} +Obsoletes: blacs-openmpi-static <= 2.0.2 + +%description openmpi-static +This package contains static libraries for ScaLAPACK, compiled against openmpi. +%endif + +%if %{with openmpi3} +%package openmpi3 +Summary: ScaLAPACK libraries compiled against openmpi3 +Requires: %{name}-common = %{version}-%{release} +Requires: openmpi3 +# The blacs symbols live in libscalapack +Provides: blacs-openmpi3 = %{version}-%{release} +Obsoletes: blacs-openmpi3 <= 2.0.2 + +%description openmpi3 +The ScaLAPACK (or Scalable LAPACK) library includes a subset +of LAPACK routines redesigned for distributed memory MIMD +parallel computers. It is currently written in a +Single-Program-Multiple-Data style using explicit message +passing for inter-processor communication. It assumes +matrices are laid out in a two-dimensional block cyclic +decomposition. + +ScaLAPACK is designed for heterogeneous computing and is +portable on any computer that supports MPI or PVM. + +Like LAPACK, the ScaLAPACK routines are based on +block-partitioned algorithms in order to minimize the frequency +of data movement between different levels of the memory hierarchy. +(For such machines, the memory hierarchy includes the off-processor +memory of other processors, in addition to the hierarchy of registers, +cache, and local memory on each processor.) The fundamental building +blocks of the ScaLAPACK library are distributed memory versions (PBLAS) +of the Level 1, 2 and 3 BLAS, and a set of Basic Linear Algebra +Communication Subprograms (BLACS) for communication tasks that arise +frequently in parallel linear algebra computations. In the ScaLAPACK +routines, all inter-processor communication occurs within the PBLAS and the +BLACS. One of the design goals of ScaLAPACK was to have the ScaLAPACK +routines resemble their LAPACK equivalents as much as possible. + +This package contains ScaLAPACK libraries compiled with openmpi3. + +%package openmpi3-devel +Summary: Development libraries for ScaLAPACK (openmpi3) +Requires: %{name}-openmpi3 = %{version}-%{release} +Requires: openmpi3-devel +# The blacs symbols live in libscalapack +Provides: blacs-openmpi3-devel = %{version}-%{release} +Obsoletes: blacs-openmpi3-devel <= 2.0.2 + +%description openmpi3-devel +This package contains development libraries for ScaLAPACK, compiled against openmpi3. + +%package openmpi3-static +Summary: Static libraries for ScaLAPACK (openmpi3) +Requires: %{name}-openmpi3-devel = %{version}-%{release} +# The blacs symbols live in libscalapack +Provides: blacs-openmpi3-static = %{version}-%{release} +Obsoletes: blacs-openmpi3-static <= 2.0.2 + +%description openmpi3-static +This package contains static libraries for ScaLAPACK, compiled against openmpi3. +%endif + +%prep +%setup -q -c -n %{name}-%{version} +%patch -P1 -p1 -b .version +%patch -P2 -p1 -b .picfix +%patch -P3 -p1 -b .fix57 + +for i in %{?with_mpich:mpich} %{?with_openmpi:openmpi} %{?with_openmpi3:openmpi3}; do + cp -a %{name}-%{version} %{name}-%{version}-$i +done + +%build +%global build_type_safety_c 0 +CC="$CC -std=gnu89" +%global build_fflags %(echo %build_fflags -fallow-argument-mismatch| sed 's|-Werror=format-security||g') +%global dobuild() \ +cd %{name}-%{version}-$MPI_COMPILER_NAME ; \ +%cmake -DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch -fPIE" -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_STATIC_LIBS:BOOL=ON -DMPI_BASE_DIR=%{_libdir}/$MPI_COMPILER_NAME %{blasflags} ; \ +%make_build ;\ +%cmake -DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch -fPIE" -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=OFF -DMPI_BASE_DIR=%{_libdir}/$MPI_COMPILER_NAME %{blasflags} ; \ +%make_build ;\ +cd .. + +%if %{with mpich} +# Build mpich version +export MPI_COMPILER_NAME=mpich +%{_mpich_load} +%dobuild +%{_mpich_unload} +%endif + +%if %{with openmpi} +# Build OpenMPI version +export MPI_COMPILER_NAME=openmpi +%{_openmpi_load} +%dobuild +%{_openmpi_unload} +%endif + +%if %{with openmpi3} +# Build OpenMPI3 version +export MPI_COMPILER_NAME=openmpi3 +%{_openmpi3_load} +%dobuild +%{_openmpi3_unload} +%endif + +%install +mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/cmake +mkdir -p ${RPM_BUILD_ROOT}%{_bindir} + +for i in %{?with_mpich:mpich} %{?with_openmpi:openmpi} %{?with_openmpi3:openmpi3}; do + mkdir -p %{buildroot}%{_libdir}/$i/lib/ + pushd %{name}-%{version}-$i + %make_install + cp -f lib/libscalapack.a %{buildroot}%{_libdir}/$i/lib/ + popd + mkdir -p %{buildroot}%{_includedir}/$i-%{_arch}/ + # This file is independent of the MPI compiler used, but it is poorly named + # So we'll put it in %{_includedir}/blacs/ + mkdir -p %{buildroot}%{_includedir}/blacs/ + install -p %{name}-%{version}-$i/BLACS/SRC/Bdef.h %{buildroot}%{_includedir}/blacs/ + + for f in *.so*; do + mv %{buildroot}%{_libdir}/$f %{buildroot}%{_libdir}/$i/lib/ + done + mv %{buildroot}%{_libdir}/pkgconfig %{buildroot}%{_libdir}/$i/lib/ +done + +# Copy docs +cd %{name}-%{version} +cp -f README ../ + +# Fixup .pc files +%if %{with openmpi} +sed -i 's|mpi|ompi|g' %{buildroot}%{_libdir}/openmpi/lib/pkgconfig/scalapack.pc +%endif + +%files common +%doc README +%{_includedir}/blacs/ +%{_libdir}/cmake/%{name}-%{version}/ + +%if %{with mpich} +%files mpich +%{_libdir}/mpich/lib/libscalapack.so.* + +%files mpich-devel +%{_includedir}/mpich-%{_arch}/ +%{_libdir}/mpich/lib/libscalapack.so +%{_libdir}/mpich/lib/pkgconfig/scalapack.pc + +%files mpich-static +%{_libdir}/mpich/lib/libscalapack.a +%endif + +%if %{with openmpi} +%files openmpi +%{_libdir}/openmpi/lib/libscalapack.so.* + +%files openmpi-devel +%{_includedir}/openmpi-%{_arch}/ +%{_libdir}/openmpi/lib/libscalapack.so +%{_libdir}/openmpi/lib/pkgconfig/scalapack.pc + +%files openmpi-static +%{_libdir}/openmpi/lib/libscalapack.a +%endif + +%if %{with openmpi3} +%files openmpi3 +%{_libdir}/openmpi3/lib/libscalapack.so.* + +%files openmpi3-devel +%{_includedir}/openmpi3-%{_arch}/ +%{_libdir}/openmpi3/lib/libscalapack.so +%{_libdir}/openmpi3/lib/pkgconfig/scalapack.pc + +%files openmpi3-static +%{_libdir}/openmpi3/lib/libscalapack.a +%endif + +%changelog +* Wed Mar 06 2024 wangxiaomeng 2.2.0-1 +- Initial package diff --git a/v2.2.0.tar.gz b/v2.2.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6fbb624d6efe0bc85b21f97f3eb7338dec9179c8 Binary files /dev/null and b/v2.2.0.tar.gz differ