From feffb8a3f416cdd9dbc1653b7aa1c35d65dade4b Mon Sep 17 00:00:00 2001 From: Kyle Guinn Date: Sat, 4 Sep 2021 14:57:11 -0500 Subject: [PATCH] libraries/lapack: Updated for version 3.10.0 Signed-off-by: Kyle Guinn Signed-off-by: Willy Sudiarto Raharjo --- libraries/lapack/lapack.SlackBuild | 12 ++- libraries/lapack/lapack.info | 6 +- libraries/lapack/patches/cmake-piecewise.diff | 94 ++++++++----------- 3 files changed, 54 insertions(+), 58 deletions(-) diff --git a/libraries/lapack/lapack.SlackBuild b/libraries/lapack/lapack.SlackBuild index 5b9ad6886b..1031344add 100644 --- a/libraries/lapack/lapack.SlackBuild +++ b/libraries/lapack/lapack.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=lapack SRCNAM=lapack -VERSION=${VERSION:-3.9.1} +VERSION=${VERSION:-3.10.0} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -133,6 +133,7 @@ fi # 3. Turn off EXCLUDE to not conflict with INPUT. # 4. Turn off some repetitive comments. # 5. Turn off MAN_LINKS. See below. +# 6. Generate on .F and .f90 files. sed -i \ -e ':a;/\\$/N;s/\\\n//;ta' \ -e 's/^\(INPUT *=\).*/\1 SRC SRC\/DEPRECATED/' \ @@ -140,6 +141,7 @@ sed -i \ -e 's/^\(EXCLUDE *=\).*/\1/' \ -e 's/^\(REPEAT_BRIEF *=\).*/\1 NO/' \ -e 's/^\(MAN_LINKS *=\).*/\1 NO/' \ + -e 's/^\(FILE_PATTERNS *=.*\)/\1 *.F *.f90/' \ DOCS/Doxyfile_man doxygen DOCS/Doxyfile_man # Doxygen generates manpages on a file-by-file basis (note the .f extensions). @@ -151,11 +153,19 @@ mkdir -p $PKG/usr/man/man3 for i in DOCS/man/man3/*.f.3; do gzip -9c $i > $PKG/usr/man/man3/$(basename $i .f.3).3.gz done +for i in DOCS/man/man3/*.F.3; do + gzip -9c $i > $PKG/usr/man/man3/$(basename $i .F.3).3.gz +done +for i in DOCS/man/man3/*.f90.3; do + gzip -9c $i > $PKG/usr/man/man3/$(basename $i .f90.3).3.gz +done # Fix up some special cases where the mapping isn't 1:1. ln -s sladiv.3.gz $PKG/usr/man/man3/sladiv1.3.gz ln -s sladiv.3.gz $PKG/usr/man/man3/sladiv2.3.gz ln -s dladiv.3.gz $PKG/usr/man/man3/dladiv1.3.gz ln -s dladiv.3.gz $PKG/usr/man/man3/dladiv2.3.gz +# Remove internal documentation. +rm $PKG/usr/man/man3/la_constants.3.gz # Remove files that are supplied by BLAS. rm $PKG/usr/man/man3/xerbla.3.gz rm $PKG/usr/man/man3/xerbla_array.3.gz diff --git a/libraries/lapack/lapack.info b/libraries/lapack/lapack.info index 8774fd2558..df93a4c812 100644 --- a/libraries/lapack/lapack.info +++ b/libraries/lapack/lapack.info @@ -1,8 +1,8 @@ PRGNAM="lapack" -VERSION="3.9.1" +VERSION="3.10.0" HOMEPAGE="https://www.netlib.org/lapack/" -DOWNLOAD="https://github.com/Reference-LAPACK/lapack/archive/v3.9.1/lapack-3.9.1.tar.gz" -MD5SUM="47ab2d11652045145df37ddbe2a32d71" +DOWNLOAD="https://github.com/Reference-LAPACK/lapack/archive/v3.10.0/lapack-3.10.0.tar.gz" +MD5SUM="d70fc27a8bdebe00481c97c728184f09" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="blas" diff --git a/libraries/lapack/patches/cmake-piecewise.diff b/libraries/lapack/patches/cmake-piecewise.diff index 378acc8769..f8ee150b59 100644 --- a/libraries/lapack/patches/cmake-piecewise.diff +++ b/libraries/lapack/patches/cmake-piecewise.diff @@ -10,61 +10,29 @@ diff --git a/CBLAS/CMakeLists.txt b/CBLAS/CMakeLists.txt # Create a header file cblas.h for the routines called in my C programs include(FortranCInterface) ## Ensure that the fortran compiler and c compiler specified are compatible -@@ -45,54 +43,8 @@ - add_subdirectory(examples) - endif() - --if(NOT BLAS_FOUND) -- set(ALL_TARGETS ${ALL_TARGETS} ${BLASLIB}) --endif() -- --# Export cblas targets from the --# install tree, if any. --set(_cblas_config_install_guard_target "") --if(ALL_TARGETS) -- install(EXPORT ${CBLASLIB}-targets -- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CBLASLIB}-${LAPACK_VERSION} -- COMPONENT Development -- ) -- # Choose one of the cblas targets to use as a guard for -- # cblas-config.cmake to load targets from the install tree. -- list(GET ALL_TARGETS 0 _cblas_config_install_guard_target) --endif() -- --# Export cblas targets from the build tree, if any. --set(_cblas_config_build_guard_target "") --if(ALL_TARGETS) -- export(TARGETS ${ALL_TARGETS} FILE ${CBLASLIB}-targets.cmake) -- -- # Choose one of the cblas targets to use as a guard -- # for cblas-config.cmake to load targets from the build tree. -- list(GET ALL_TARGETS 0 _cblas_config_build_guard_target) --endif() +@@ -51,22 +49,3 @@ + DESTINATION ${PKG_CONFIG_DIR} + COMPONENT Development + ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-version.cmake.in - ${LAPACK_BINARY_DIR}/${CBLASLIB}-config-version.cmake @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-build.cmake.in - ${LAPACK_BINARY_DIR}/${CBLASLIB}-config.cmake @ONLY) - -- - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cblas.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${CBLASLIB}.pc @ONLY) - install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/${CBLASLIB}.pc - DESTINATION ${PKG_CONFIG_DIR} - ) -- -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-install.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${CBLASLIB}-config.cmake @ONLY) -install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${CBLASLIB}-config.cmake - ${LAPACK_BINARY_DIR}/${CBLASLIB}-config-version.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CBLASLIB}-${LAPACK_VERSION} +- COMPONENT Development - ) - --#install(EXPORT ${CBLASLIB}-targets --# DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CBLASLIB}-${LAPACK_VERSION} --# COMPONENT Development --# ) +-install(EXPORT ${CBLASLIB}-targets +- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CBLASLIB}-${LAPACK_VERSION} +- COMPONENT Development +- ) diff --git a/CBLAS/cmake/cblas-config-build.cmake.in b/CBLAS/cmake/cblas-config-build.cmake.in deleted file mode 100644 --- a/CBLAS/cmake/cblas-config-build.cmake.in @@ -184,7 +152,7 @@ deleted file mode 100644 diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -160,11 +160,8 @@ +@@ -157,11 +157,8 @@ # -------------------------------------------------- @@ -196,7 +164,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT RuntimeLibraries -@@ -204,21 +201,6 @@ +@@ -201,21 +198,6 @@ include(CheckLAPACKCompilerFlags) CheckLAPACKCompilerFlags() @@ -218,7 +186,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt # deprecated LAPACK and LAPACKE routines option(BUILD_DEPRECATED "Build deprecated routines" OFF) message(STATUS "Build deprecated routines: ${BUILD_DEPRECATED}") -@@ -242,8 +224,9 @@ +@@ -239,8 +221,9 @@ endif() # -------------------------------------------------- @@ -229,7 +197,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt # Check the usage of the user provided BLAS libraries if(BLAS_LIBRARIES) -@@ -254,113 +237,108 @@ +@@ -251,131 +234,105 @@ if(BLAS_FOUND) message(STATUS "--> BLAS supplied by user is WORKING, will use ${BLAS_LIBRARIES}.") else() @@ -383,17 +351,35 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt - set(LAPACKE ON) + set(BUILD_LAPACKE ON) endif() - if(BUILD_TESTING OR LAPACKE_WITH_TMG) #already included, avoid double inclusion - add_subdirectory(TESTING/MATGEN) - endif() +-# TMGLIB +-# Cache export target +-set(LAPACK_INSTALL_EXPORT_NAME_CACHE ${LAPACK_INSTALL_EXPORT_NAME}) +-if(BUILD_TESTING OR LAPACKE_WITH_TMG) +- if(LATESTLAPACK_FOUND AND LAPACKE_WITH_TMG) +- set(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES}) +- # Check if dlatms (part of tmg) is found +- CHECK_FORTRAN_FUNCTION_EXISTS("dlatms" LAPACK_WITH_TMGLIB_FOUND) +- unset(CMAKE_REQUIRED_LIBRARIES) +- if(NOT LAPACK_WITH_TMGLIB_FOUND) +- # Build and install TMG as part of LAPACKE targets (as opposed to LAPACK +- # targets) +- set(LAPACK_INSTALL_EXPORT_NAME ${LAPACKELIB}-targets) +- endif() +- endif() +- add_subdirectory(TESTING/MATGEN) +-endif() +-# Reset export target +-set(LAPACK_INSTALL_EXPORT_NAME ${LAPACK_INSTALL_EXPORT_NAME_CACHE}) +-unset(LAPACK_INSTALL_EXPORT_NAME_CACHE) +- -if(LAPACKE) +if(BUILD_LAPACKE) + set(NEED_LAPACK TRUE) add_subdirectory(LAPACKE) endif() -@@ -414,111 +392,16 @@ +@@ -428,111 +385,16 @@ ExternalProject_Add_StepDependencies(lapackpp build blaspp ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}) endif() @@ -437,10 +423,6 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt - set(ALL_TARGETS ${ALL_TARGETS} ${LAPACKLIB}) -endif() - --if(BUILD_TESTING OR LAPACKE_WITH_TMG) -- set(ALL_TARGETS ${ALL_TARGETS} ${TMGLIB}) --endif() -- -# Export lapack targets, not including lapacke, from the -# install tree, if any. -set(_lapack_config_install_guard_target "") @@ -463,6 +445,10 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -# Include lapacke in targets exported from the build tree. -if(LAPACKE) - set(ALL_TARGETS ${ALL_TARGETS} ${LAPACKELIB}) +-endif() +- +-if(NOT LAPACK_WITH_TMGLIB_FOUND AND LAPACKE_WITH_TMG) +- set(ALL_TARGETS ${ALL_TARGETS} ${TMGLIB}) +# Neither user specified or optimized BLAS libraries can be used +if(NEED_BLAS AND NOT BLAS_FOUND) + message(FATAL_ERROR "--> No BLAS library found. Specify BLAS_LIBRARIES or enable USE_OPTIMIZED_BLAS or BUILD_BLAS.") @@ -595,7 +581,7 @@ deleted file mode 100644 -get_filename_component(_LAPACKE_PREFIX "${_LAPACKE_PREFIX}" PATH) - -# Load the LAPACK package with which we were built. --set(LAPACK_DIR "${_LAPACKE_PREFIX}/@CMAKE_INSTALL_LIBDIR@/cmake/@LAPACK@-@LAPACK_VERSION@") +-set(LAPACK_DIR "${_LAPACKE_PREFIX}/@CMAKE_INSTALL_LIBDIR@/cmake/@LAPACKLIB@-@LAPACK_VERSION@") -find_package(LAPACK NO_MODULE) - -# Load lapacke targets from the install tree.