aboutsummaryrefslogtreecommitdiff
path: root/libraries/lapack/patches/cmake-piecewise.diff
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/lapack/patches/cmake-piecewise.diff')
-rw-r--r--libraries/lapack/patches/cmake-piecewise.diff615
1 files changed, 615 insertions, 0 deletions
diff --git a/libraries/lapack/patches/cmake-piecewise.diff b/libraries/lapack/patches/cmake-piecewise.diff
new file mode 100644
index 0000000000000..13402a52e7112
--- /dev/null
+++ b/libraries/lapack/patches/cmake-piecewise.diff
@@ -0,0 +1,615 @@
+diff --git a/CBLAS/CMakeLists.txt b/CBLAS/CMakeLists.txt
+--- a/CBLAS/CMakeLists.txt
++++ b/CBLAS/CMakeLists.txt
+@@ -1,8 +1,6 @@
+ message(STATUS "CBLAS enable")
+ enable_language(C)
+
+-set(LAPACK_INSTALL_EXPORT_NAME cblas-targets)
+-
+ # Create a header file cblas.h for the routines called in my C programs
+ include(FortranCInterface)
+ FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/include/cblas_mangling.h
+@@ -40,51 +38,8 @@
+ add_subdirectory(examples)
+ endif(BUILD_TESTING)
+
+-if(NOT BLAS_FOUND)
+- set(ALL_TARGETS ${ALL_TARGETS} blas)
+-endif(NOT BLAS_FOUND)
+-
+-# Export cblas targets from the
+-# install tree, if any.
+-set(_cblas_config_install_guard_target "")
+-if(ALL_TARGETS)
+- install(EXPORT cblas-targets
+- DESTINATION lib/cmake/cblas-${LAPACK_VERSION})
+- # 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 cblas-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()
+-
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-version.cmake.in
+- ${LAPACK_BINARY_DIR}/cblas-config-version.cmake @ONLY)
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-build.cmake.in
+- ${LAPACK_BINARY_DIR}/cblas-config.cmake @ONLY)
+-
+-
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cblas.pc.in ${CMAKE_CURRENT_BINARY_DIR}/cblas.pc @ONLY)
+ install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/cblas.pc
+ DESTINATION ${PKG_CONFIG_DIR}
+ )
+-
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-install.cmake.in
+- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/cblas-config.cmake @ONLY)
+-install(FILES
+- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/cblas-config.cmake
+- ${LAPACK_BINARY_DIR}/cblas-config-version.cmake
+- DESTINATION lib/cmake/cblas-${LAPACK_VERSION}
+- )
+-
+-#install(EXPORT cblas-targets
+-# DESTINATION lib/cmake/cblas-${LAPACK_VERSION})
+-
+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
++++ /dev/null
+@@ -1,14 +0,0 @@
+-# Load the LAPACK package with which we were built.
+-set(LAPACK_DIR "@LAPACK_BINARY_DIR@")
+-find_package(LAPACK NO_MODULE)
+-
+-# Load lapack targets from the build tree, including lapacke targets.
+-if(NOT TARGET lapacke)
+- include("@LAPACK_BINARY_DIR@/lapack-targets.cmake")
+-endif()
+-
+-# Report lapacke header search locations.
+-set(CBLAS_INCLUDE_DIRS "@LAPACK_SOURCE_DIR@/cblas/include")
+-
+-# Report lapacke libraries.
+-set(CBLAS_LIBRARIES cblas)
+diff --git a/CBLAS/cmake/cblas-config-install.cmake.in b/CBLAS/cmake/cblas-config-install.cmake.in
+deleted file mode 100644
+--- a/CBLAS/cmake/cblas-config-install.cmake.in
++++ /dev/null
+@@ -1,23 +0,0 @@
+-# Compute locations from <prefix>/lib/cmake/lapacke-<v>/<self>.cmake
+-get_filename_component(_CBLAS_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+-get_filename_component(_CBLAS_PREFIX "${_CBLAS_SELF_DIR}" PATH)
+-get_filename_component(_CBLAS_PREFIX "${_CBLAS_PREFIX}" PATH)
+-get_filename_component(_CBLAS_PREFIX "${_CBLAS_PREFIX}" PATH)
+-
+-# Load the LAPACK package with which we were built.
+-set(LAPACK_DIR "${_CBLAS_PREFIX}/lib/cmake/lapack-@LAPACK_VERSION@")
+-find_package(LAPACK NO_MODULE)
+-
+-# Load lapacke targets from the install tree.
+-if(NOT TARGET cblas)
+- include(${_CBLAS_SELF_DIR}/cblas-targets.cmake)
+-endif()
+-
+-# Report lapacke header search locations.
+-set(CBLAS_INCLUDE_DIRS ${_CBLAS_PREFIX}/include)
+-
+-# Report lapacke libraries.
+-set(CBLAS_LIBRARIES cblas)
+-
+-unset(_CBLAS_PREFIX)
+-unset(_CBLAS_SELF_DIR)
+diff --git a/CBLAS/cmake/cblas-config-version.cmake.in b/CBLAS/cmake/cblas-config-version.cmake.in
+deleted file mode 100644
+--- a/CBLAS/cmake/cblas-config-version.cmake.in
++++ /dev/null
+@@ -1,8 +0,0 @@
+-set(PACKAGE_VERSION "@LAPACK_VERSION@")
+-if(NOT ${PACKAGE_FIND_VERSION} VERSION_GREATER ${PACKAGE_VERSION})
+- set(PACKAGE_VERSION_COMPATIBLE 1)
+- if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${PACKAGE_VERSION})
+- set(PACKAGE_VERSION_EXACT 1)
+- endif()
+-endif()
+-
+diff --git a/CMAKE/lapack-config-build.cmake.in b/CMAKE/lapack-config-build.cmake.in
+deleted file mode 100644
+--- a/CMAKE/lapack-config-build.cmake.in
++++ /dev/null
+@@ -1,10 +0,0 @@
+-# Load lapack targets from the build tree if necessary.
+-set(_LAPACK_TARGET "@_lapack_config_build_guard_target@")
+-if(_LAPACK_TARGET AND NOT TARGET "${_LAPACK_TARGET}")
+- include("@LAPACK_BINARY_DIR@/lapack-targets.cmake")
+-endif()
+-unset(_LAPACK_TARGET)
+-
+-# Report the blas and lapack raw or imported libraries.
+-set(LAPACK_blas_LIBRARIES "@BLAS_LIBRARIES@")
+-set(LAPACK_lapack_LIBRARIES "@LAPACK_LIBRARIES@")
+diff --git a/CMAKE/lapack-config-install.cmake.in b/CMAKE/lapack-config-install.cmake.in
+deleted file mode 100644
+--- a/CMAKE/lapack-config-install.cmake.in
++++ /dev/null
+@@ -1,15 +0,0 @@
+-# Compute locations from <prefix>/lib/cmake/lapack-<v>/<self>.cmake
+-get_filename_component(_LAPACK_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+-
+-# Load lapack targets from the install tree if necessary.
+-set(_LAPACK_TARGET "@_lapack_config_install_guard_target@")
+-if(_LAPACK_TARGET AND NOT TARGET "${_LAPACK_TARGET}")
+- include("${_LAPACK_SELF_DIR}/lapack-targets.cmake")
+-endif()
+-unset(_LAPACK_TARGET)
+-
+-# Report the blas and lapack raw or imported libraries.
+-set(LAPACK_blas_LIBRARIES "@BLAS_LIBRARIES@")
+-set(LAPACK_lapack_LIBRARIES "@LAPACK_LIBRARIES@")
+-
+-unset(_LAPACK_SELF_DIR)
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,8 +55,6 @@
+ endif()
+ # --------------------------------------------------
+
+-set(LAPACK_INSTALL_EXPORT_NAME lapack-targets)
+-
+ if (UNIX)
+ include(GNUInstallDirs)
+ set(ARCHIVE_DIR ${CMAKE_INSTALL_LIBDIR})
+@@ -70,7 +68,6 @@
+
+ macro(lapack_install_library lib)
+ install(TARGETS ${lib}
+- EXPORT ${LAPACK_INSTALL_EXPORT_NAME}
+ ARCHIVE DESTINATION ${ARCHIVE_DIR}
+ LIBRARY DESTINATION ${LIBRARY_DIR}
+ RUNTIME DESTINATION ${RUNTIME_DIR}
+@@ -96,20 +93,6 @@
+ include( CheckLAPACKCompilerFlags )
+ CheckLAPACKCompilerFlags()
+
+-# --------------------------------------------------
+-# Check second function
+-
+-include(CheckTimeFunction)
+-set(TIME_FUNC NONE ${TIME_FUNC})
+-CHECK_TIME_FUNCTION(NONE TIME_FUNC)
+-CHECK_TIME_FUNCTION(INT_CPU_TIME TIME_FUNC)
+-CHECK_TIME_FUNCTION(EXT_ETIME TIME_FUNC)
+-CHECK_TIME_FUNCTION(EXT_ETIME_ TIME_FUNC)
+-CHECK_TIME_FUNCTION(INT_ETIME TIME_FUNC)
+-message(STATUS "--> Will use second_${TIME_FUNC}.f and dsecnd_${TIME_FUNC}.f as timing function.")
+-
+-set(SECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/second_${TIME_FUNC}.f)
+-set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
+ set(PKG_CONFIG_DIR ${LIBRARY_DIR}/pkgconfig)
+
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+@@ -120,6 +103,11 @@
+ endif()
+
+ # --------------------------------------------------
++# By default static library
++option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
++option(BUILD_STATIC_LIBS "Build static libraries" ON)
++
++# --------------------------------------------------
+ # Precision to build
+ # By default all precisions are generated
+ option(BUILD_SINGLE "Build Single Precision" ON)
+@@ -150,236 +138,134 @@
+ Please enable at least one of these: BUILD_SINGLE, BUILD_DOUBLE, BUILD_COMPLEX, BUILD_COMPLEX16.")
+ endif()
+
+-# --------------------------------------------------
+-# Subdirectories that need to be processed
++# deprecated LAPACK routines
++option(BUILD_DEPRECATED "Build deprecated routines" OFF)
+
++# --------------------------------------------------
++# BLAS
+ option(USE_OPTIMIZED_BLAS "Whether or not to use an optimized BLAS library instead of included netlib BLAS" OFF)
+-
++option(BUILD_BLAS "Build BLAS" OFF)
+
+ # Check the usage of the user provided BLAS libraries
+ if(BLAS_LIBRARIES)
+ include(CheckFortranFunctionExists)
+ set(CMAKE_REQUIRED_LIBRARIES ${BLAS_LIBRARIES})
+ CHECK_FORTRAN_FUNCTION_EXISTS("dgemm" BLAS_FOUND)
+- unset( CMAKE_REQUIRED_LIBRARIES )
++ unset(CMAKE_REQUIRED_LIBRARIES)
+ if(BLAS_FOUND)
+ message(STATUS "--> BLAS supplied by user is WORKING, will use ${BLAS_LIBRARIES}.")
+- else(BLAS_FOUND)
+- message(ERROR "--> BLAS supplied by user is not WORKING, CANNOT USE ${BLAS_LIBRARIES}.")
+- message(ERROR "--> Will use REFERENCE BLAS (by default)")
+- message(ERROR "--> Or Correct your BLAS_LIBRARIES entry ")
+- message(ERROR "--> Or Consider checking USE_OPTIMIZED_BLAS")
+- endif(BLAS_FOUND)
++ else()
++ message(SEND_ERROR "--> BLAS supplied by user is NOT WORKING, cannot use ${BLAS_LIBRARIES}.")
++ endif()
+
+ # User did not provide a BLAS Library but specified to search for one
+-elseif( USE_OPTIMIZED_BLAS )
+- find_package( BLAS )
+-endif (BLAS_LIBRARIES)
++elseif(USE_OPTIMIZED_BLAS)
++ find_package(BLAS)
+
+-# Neither user specified or optimized BLAS libraries can be used
+-if(NOT BLAS_FOUND)
+- message(STATUS "Using supplied NETLIB BLAS implementation")
+- add_subdirectory(BLAS)
+- set( BLAS_LIBRARIES blas )
+-else()
+- set( CMAKE_EXE_LINKER_FLAGS
+- "${CMAKE_EXE_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
+- CACHE STRING "Linker flags for executables" FORCE)
+- set( CMAKE_MODULE_LINKER_FLAGS
+- "${CMAKE_MODULE_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
+- CACHE STRING "Linker flags for modules" FORCE)
+- set( CMAKE_SHARED_LINKER_FLAGS
+- "${CMAKE_SHARED_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
+- CACHE STRING "Linker flags for shared libs" FORCE)
+-endif( NOT BLAS_FOUND )
++elseif(BUILD_BLAS)
++ set(BLAS_LIBRARIES blas)
++ set(BLAS_FOUND TRUE)
+
++ add_subdirectory(BLAS)
++endif()
+
+ # --------------------------------------------------
+ # CBLAS
+-option(CBLAS "Build CBLAS" OFF)
++option(BUILD_CBLAS "Build CBLAS" OFF)
+
+-if(CBLAS)
++if(BUILD_CBLAS)
++ set(NEED_BLAS TRUE)
+ add_subdirectory(CBLAS)
+-endif(CBLAS)
++endif(BUILD_CBLAS)
+
+ # --------------------------------------------------
+ # XBLAS
+-
+ option(USE_XBLAS "Build extended precision (needs XBLAS)" OFF)
+-if (USE_XBLAS)
++
++if(USE_XBLAS)
+ find_library(XBLAS_LIBRARY NAMES xblas)
+ endif(USE_XBLAS)
+-
+-option(USE_OPTIMIZED_LAPACK "Whether or not to use an optimized LAPACK library instead of included netlib LAPACK" OFF)
+
+ # --------------------------------------------------
+ # LAPACK
+-# User did not provide a LAPACK Library but specified to search for one
+-if( USE_OPTIMIZED_LAPACK )
+- find_package( LAPACK )
+-endif (USE_OPTIMIZED_LAPACK)
++option(USE_OPTIMIZED_LAPACK "Whether or not to use an optimized LAPACK library instead of included netlib LAPACK" OFF)
++option(BUILD_LAPACK "Build LAPACK" OFF)
+
+ # Check the usage of the user provided or automatically found LAPACK libraries
+ if(LAPACK_LIBRARIES)
+ include(CheckFortranFunctionExists)
+ set(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES})
+ # Check if new routine of 3.4.0 is in LAPACK_LIBRARIES
+- CHECK_FORTRAN_FUNCTION_EXISTS("dgeqrt" LATESTLAPACK_FOUND)
+- unset( CMAKE_REQUIRED_LIBRARIES )
+- if(LATESTLAPACK_FOUND)
++ CHECK_FORTRAN_FUNCTION_EXISTS("dgeqrt" LAPACK_FOUND)
++ unset(CMAKE_REQUIRED_LIBRARIES)
++ if(LAPACK_FOUND)
+ message(STATUS "--> LAPACK supplied by user is WORKING, will use ${LAPACK_LIBRARIES}.")
+- else(LAPACK_FOUND)
+- message(ERROR "--> LAPACK supplied by user is not WORKING or is older than LAPACK 3.4.0, CANNOT USE ${LAPACK_LIBRARIES}.")
+- message(ERROR "--> Will use REFERENCE LAPACK (by default)")
+- message(ERROR "--> Or Correct your LAPACK_LIBRARIES entry ")
+- message(ERROR "--> Or Consider checking USE_OPTIMIZED_LAPACK")
+- endif(LATESTLAPACK_FOUND)
+-endif (LAPACK_LIBRARIES)
++ else()
++ message(SEND_ERROR "--> LAPACK supplied by user is NOT WORKING or is older than LAPACK 3.4.0, cannot use ${LAPACK_LIBRARIES}.")
++ endif()
++
++# User did not provide a LAPACK Library but specified to search for one
++elseif(USE_OPTIMIZED_LAPACK)
++ find_package(LAPACK)
++
++elseif(BUILD_LAPACK)
++ set(LAPACK_LIBRARIES lapack)
++ set(LAPACK_FOUND TRUE)
++
++ set(NEED_BLAS TRUE)
++
++ # Check second function
++ include(CheckTimeFunction)
++ set(TIME_FUNC NONE ${TIME_FUNC})
++ CHECK_TIME_FUNCTION(NONE TIME_FUNC)
++ CHECK_TIME_FUNCTION(INT_CPU_TIME TIME_FUNC)
++ CHECK_TIME_FUNCTION(EXT_ETIME TIME_FUNC)
++ CHECK_TIME_FUNCTION(EXT_ETIME_ TIME_FUNC)
++ CHECK_TIME_FUNCTION(INT_ETIME TIME_FUNC)
++ message(STATUS "--> Will use second_${TIME_FUNC}.f and dsecnd_${TIME_FUNC}.f as timing function.")
++
++ set(SECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/second_${TIME_FUNC}.f)
++ set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
+
+-# Neither user specified or optimized LAPACK libraries can be used
+-if(NOT LATESTLAPACK_FOUND)
+- message(STATUS "Using supplied NETLIB LAPACK implementation")
+- set( LAPACK_LIBRARIES lapack )
+ add_subdirectory(SRC)
+-else()
+- set( CMAKE_EXE_LINKER_FLAGS
+- "${CMAKE_EXE_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
+- CACHE STRING "Linker flags for executables" FORCE)
+- set( CMAKE_MODULE_LINKER_FLAGS
+- "${CMAKE_MODULE_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
+- CACHE STRING "Linker flags for modules" FORCE)
+- set( CMAKE_SHARED_LINKER_FLAGS
+- "${CMAKE_SHARED_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
+- CACHE STRING "Linker flags for shared libs" FORCE)
+-endif( NOT LATESTLAPACK_FOUND )
+-
+-message(STATUS "BUILD TESTING : ${BUILD_TESTING}" )
+-if(BUILD_TESTING)
+- add_subdirectory(TESTING)
+-endif(BUILD_TESTING)
+
+-# deprecated LAPACK routines
+-option(BUILD_DEPRECATED "Build deprecated routines" OFF)
++ message(STATUS "BUILD TESTING : ${BUILD_TESTING}")
++ if(BUILD_TESTING)
++ add_subdirectory(TESTING)
++ endif()
++
++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc @ONLY)
++ install(FILES
++ ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc
++ DESTINATION ${PKG_CONFIG_DIR})
++endif()
+
+ # --------------------------------------------------
+ # LAPACKE
+-option(LAPACKE "Build LAPACKE" OFF)
++option(BUILD_LAPACKE "Build LAPACKE" OFF)
+
+ # LAPACKE has also the interface to some routines from tmglib,
+ # if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
+ option(LAPACKE_WITH_TMG "Build LAPACKE with tmglib routines" OFF)
+ if (LAPACKE_WITH_TMG)
+- set(LAPACKE ON)
++ set(BUILD_LAPACKE ON)
+ if(NOT BUILD_TESTING)
+ add_subdirectory(TESTING/MATGEN)
+ endif(NOT BUILD_TESTING)
+ endif(LAPACKE_WITH_TMG)
+
+-if(LAPACKE)
++if(BUILD_LAPACKE)
++ set(NEED_LAPACK TRUE)
+ add_subdirectory(LAPACKE)
+-endif(LAPACKE)
+-
+-# --------------------------------------------------
+-# CPACK Packaging
+-
+-SET(CPACK_PACKAGE_NAME "LAPACK")
+-SET(CPACK_PACKAGE_VENDOR "University of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd")
+-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LAPACK- Linear Algebra Package")
+-set(CPACK_PACKAGE_VERSION_MAJOR 3)
+-set(CPACK_PACKAGE_VERSION_MINOR 5)
+-set(CPACK_PACKAGE_VERSION_PATCH 0)
+-set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
+-SET(CPACK_PACKAGE_INSTALL_DIRECTORY "LAPACK")
+-IF(WIN32 AND NOT UNIX)
+- # There is a bug in NSI that does not handle full unix paths properly. Make
+- # sure there is at least one set of four (4) backlasshes.
+- SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\http://icl.cs.utk.edu/lapack-forum")
+- SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.netlib.org/lapack")
+- SET(CPACK_NSIS_CONTACT "lapack@eecs.utk.edu")
+- SET(CPACK_NSIS_MODIFY_PATH ON)
+- SET(CPACK_NSIS_DISPLAY_NAME "LAPACK-${LAPACK_VERSION}")
+- set(CPACK_PACKAGE_RELOCATABLE "true")
+-ELSE(WIN32 AND NOT UNIX)
+- SET(CPACK_GENERATOR "TGZ")
+- SET(CPACK_SOURCE_GENERATOR TGZ)
+- SET(CPACK_SOURCE_PACKAGE_FILE_NAME "lapack-${LAPACK_VERSION}" )
+- SET(CPACK_SOURCE_IGNORE_FILES ~$ .svn ${CPACK_SOURCE_IGNORE_FILES} )
+-ENDIF(WIN32 AND NOT UNIX)
+-INCLUDE(CPack)
++endif(BUILD_LAPACKE)
+
+
+-# --------------------------------------------------
+-# By default static library
+-OPTION(BUILD_SHARED_LIBS "Build shared libraries" OFF )
+-OPTION(BUILD_STATIC_LIBS "Build static libraries" ON )
+-#OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON )
+-
+-if(NOT BLAS_FOUND)
+- set(ALL_TARGETS ${ALL_TARGETS} blas)
+-endif(NOT BLAS_FOUND)
+-
+-if(NOT LATESTLAPACK_FOUND)
+- set(ALL_TARGETS ${ALL_TARGETS} lapack)
+-endif(NOT LATESTLAPACK_FOUND)
+-
+-if(BUILD_TESTING OR LAPACKE_WITH_TMG)
+- set(ALL_TARGETS ${ALL_TARGETS} tmglib)
+-endif(BUILD_TESTING OR LAPACKE_WITH_TMG)
+-
+-# Export lapack targets, not including lapacke, from the
+-# install tree, if any.
+-set(_lapack_config_install_guard_target "")
+-if(ALL_TARGETS)
+- install(EXPORT lapack-targets
+- DESTINATION ${LIBRARY_DIR}/cmake/lapack-${LAPACK_VERSION})
+-
+- # Choose one of the lapack targets to use as a guard for
+- # lapack-config.cmake to load targets from the install tree.
+- list(GET ALL_TARGETS 0 _lapack_config_install_guard_target)
++# 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.")
+ endif()
+
+-# Include cblas in targets exported from the build tree.
+-if(CBLAS)
+- set(ALL_TARGETS ${ALL_TARGETS} cblas)
+-endif(CBLAS)
+-
+-# Include lapacke in targets exported from the build tree.
+-if(LAPACKE)
+- set(ALL_TARGETS ${ALL_TARGETS} lapacke)
+-endif(LAPACKE)
+-
+-# Export lapack and lapacke targets from the build tree, if any.
+-set(_lapack_config_build_guard_target "")
+-if(ALL_TARGETS)
+- export(TARGETS ${ALL_TARGETS} FILE lapack-targets.cmake)
+-
+- # Choose one of the lapack or lapacke targets to use as a guard
+- # for lapack-config.cmake to load targets from the build tree.
+- list(GET ALL_TARGETS 0 _lapack_config_build_guard_target)
++# Neither user specified or optimized LAPACK libraries can be used
++if(NEED_LAPACK AND NOT LAPACK_FOUND)
++ message(FATAL_ERROR "--> No LAPACK library found. Specify LAPACK_LIBRARIES or enable USE_OPTIMIZED_LAPACK or BUILD_LAPACK.")
+ endif()
+-
+-configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-build.cmake.in
+- ${LAPACK_BINARY_DIR}/lapack-config.cmake @ONLY)
+-
+-
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc @ONLY)
+- install(FILES
+- ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc
+- DESTINATION ${PKG_CONFIG_DIR}
+- )
+-
+-configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-install.cmake.in
+- ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake @ONLY)
+-
+-include(CMakePackageConfigHelpers)
+-write_basic_package_version_file(
+- ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
+- VERSION ${LAPACK_VERSION}
+- COMPATIBILITY SameMajorVersion
+- )
+-
+-install(FILES
+- ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake
+- ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
+- DESTINATION ${LIBRARY_DIR}/cmake/lapack-${LAPACK_VERSION}
+- )
+diff --git a/LAPACKE/CMakeLists.txt b/LAPACKE/CMakeLists.txt
+--- a/LAPACKE/CMakeLists.txt
++++ b/LAPACKE/CMakeLists.txt
+@@ -1,8 +1,6 @@
+ message(STATUS "LAPACKE enable")
+ enable_language(C)
+
+-set(LAPACK_INSTALL_EXPORT_NAME lapacke-targets)
+-
+ # Create a header file netlib.h for the routines called in my C programs
+ include(FortranCInterface)
+ FortranCInterface_HEADER( ${CMAKE_CURRENT_SOURCE_DIR}/include/lapacke_mangling.h
+@@ -74,19 +72,3 @@
+ ${CMAKE_CURRENT_BINARY_DIR}/lapacke.pc
+ DESTINATION ${PKG_CONFIG_DIR}
+ )
+-
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-version.cmake.in
+- ${LAPACK_BINARY_DIR}/lapacke-config-version.cmake @ONLY)
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-build.cmake.in
+- ${LAPACK_BINARY_DIR}/lapacke-config.cmake @ONLY)
+-
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-install.cmake.in
+- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/lapacke-config.cmake @ONLY)
+-install(FILES
+- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/lapacke-config.cmake
+- ${LAPACK_BINARY_DIR}/lapacke-config-version.cmake
+- DESTINATION lib/cmake/lapacke-${LAPACK_VERSION}
+- )
+-
+-install(EXPORT lapacke-targets
+- DESTINATION lib/cmake/lapacke-${LAPACK_VERSION})
+diff --git a/LAPACKE/cmake/lapacke-config-build.cmake.in b/LAPACKE/cmake/lapacke-config-build.cmake.in
+deleted file mode 100644
+--- a/LAPACKE/cmake/lapacke-config-build.cmake.in
++++ /dev/null
+@@ -1,14 +0,0 @@
+-# Load the LAPACK package with which we were built.
+-set(LAPACK_DIR "@LAPACK_BINARY_DIR@")
+-find_package(LAPACK NO_MODULE)
+-
+-# Load lapack targets from the build tree, including lapacke targets.
+-if(NOT TARGET lapacke)
+- include("@LAPACK_BINARY_DIR@/lapack-targets.cmake")
+-endif()
+-
+-# Report lapacke header search locations.
+-set(LAPACKE_INCLUDE_DIRS "@LAPACK_SOURCE_DIR@/lapacke/include")
+-
+-# Report lapacke libraries.
+-set(LAPACKE_LIBRARIES lapacke)
+diff --git a/LAPACKE/cmake/lapacke-config-install.cmake.in b/LAPACKE/cmake/lapacke-config-install.cmake.in
+deleted file mode 100644
+--- a/LAPACKE/cmake/lapacke-config-install.cmake.in
++++ /dev/null
+@@ -1,23 +0,0 @@
+-# Compute locations from <prefix>/lib/cmake/lapacke-<v>/<self>.cmake
+-get_filename_component(_LAPACKE_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+-get_filename_component(_LAPACKE_PREFIX "${_LAPACKE_SELF_DIR}" PATH)
+-get_filename_component(_LAPACKE_PREFIX "${_LAPACKE_PREFIX}" PATH)
+-get_filename_component(_LAPACKE_PREFIX "${_LAPACKE_PREFIX}" PATH)
+-
+-# Load the LAPACK package with which we were built.
+-set(LAPACK_DIR "${_LAPACKE_PREFIX}/lib/cmake/lapack-@LAPACK_VERSION@")
+-find_package(LAPACK NO_MODULE)
+-
+-# Load lapacke targets from the install tree.
+-if(NOT TARGET lapacke)
+- include(${_LAPACKE_SELF_DIR}/lapacke-targets.cmake)
+-endif()
+-
+-# Report lapacke header search locations.
+-set(LAPACKE_INCLUDE_DIRS ${_LAPACKE_PREFIX}/include)
+-
+-# Report lapacke libraries.
+-set(LAPACKE_LIBRARIES lapacke)
+-
+-unset(_LAPACKE_PREFIX)
+-unset(_LAPACKE_SELF_DIR)
+diff --git a/LAPACKE/cmake/lapacke-config-version.cmake.in b/LAPACKE/cmake/lapacke-config-version.cmake.in
+deleted file mode 100644
+--- a/LAPACKE/cmake/lapacke-config-version.cmake.in
++++ /dev/null
+@@ -1,8 +0,0 @@
+-set(PACKAGE_VERSION "@LAPACK_VERSION@")
+-if(NOT ${PACKAGE_FIND_VERSION} VERSION_GREATER ${PACKAGE_VERSION})
+- set(PACKAGE_VERSION_COMPATIBLE 1)
+- if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${PACKAGE_VERSION})
+- set(PACKAGE_VERSION_EXACT 1)
+- endif()
+-endif()
+-