summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BLAS/SRC/CMakeLists.txt73
-rw-r--r--CBLAS/CMakeLists.txt6
-rw-r--r--CBLAS/cblas.pc.in2
-rw-r--r--CBLAS/examples/CMakeLists.txt2
-rw-r--r--CBLAS/src/CMakeLists.txt44
-rw-r--r--CBLAS/testing/CMakeLists.txt22
-rw-r--r--CMakeLists.txt58
-rw-r--r--INSTALL/make.inc.ALPHA109
-rw-r--r--INSTALL/make.inc.HPPA109
-rw-r--r--INSTALL/make.inc.IRIX64113
-rw-r--r--INSTALL/make.inc.O2K115
-rw-r--r--INSTALL/make.inc.SGI5109
-rw-r--r--INSTALL/make.inc.SUN4109
-rw-r--r--INSTALL/make.inc.SUN4SOL2117
-rw-r--r--INSTALL/make.inc.XLF109
-rw-r--r--INSTALL/make.inc.gfortran113
-rw-r--r--INSTALL/make.inc.gfortran_debug113
-rw-r--r--INSTALL/make.inc.ifort107
-rw-r--r--INSTALL/make.inc.pgf95107
-rw-r--r--INSTALL/make.inc.pghpf111
-rw-r--r--LAPACKE/CMakeLists.txt44
-rw-r--r--LAPACKE/example/CMakeLists.txt8
-rw-r--r--LAPACKE/lapacke.pc.in2
-rw-r--r--LAPACKE/src/CMakeLists.txt62
-rw-r--r--LAPACKE/src/Makefile35
-rw-r--r--LAPACKE/utils/CMakeLists.txt2
-rw-r--r--SRC/CMakeLists.txt70
-rw-r--r--SRC/Makefile6
-rw-r--r--TESTING/EIG/CMakeLists.txt39
-rw-r--r--TESTING/EIG/Makefile5
-rw-r--r--TESTING/LIN/CMakeLists.txt22
-rw-r--r--TESTING/MATGEN/CMakeLists.txt43
-rw-r--r--TESTING/MATGEN/Makefile5
-rw-r--r--lapack.pc.in2
-rw-r--r--make.inc.example108
35 files changed, 1030 insertions, 1071 deletions
diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
index b9f722d6..41c48043 100644
--- a/BLAS/SRC/CMakeLists.txt
+++ b/BLAS/SRC/CMakeLists.txt
@@ -23,39 +23,10 @@
# DBLAS3 -- Double precision real BLAS3 routines
# ZBLAS3 -- Double precision complex BLAS3 routines
#
-# The library can be set up to include routines for any combination
-# of the four precisions. To create or add to the library, enter make
-# followed by one or more of the precisions desired. Some examples:
-# make single
-# make single complex
-# make single double complex complex16
-# Note that these commands are not safe for parallel builds.
-#
-# Alternatively, the commands
-# make all
-# or
-# make
-# without any arguments creates a library of all four precisions.
-# The name of the library is held in BLASLIB, which is set in the
-# top-level make.inc
-#
-# To remove the object files after the library is created, enter
-# make clean
-# To force the source files to be recompiled, enter, for example,
-# make single FRC=FRC
-#
-#---------------------------------------------------------------------
-#
-# Edward Anderson, University of Tennessee
-# March 26, 1990
-# Susan Ostrouchov, Last updated September 30, 1994
-# ejr, May 2006.
-#
#######################################################################
#---------------------------------------------------------
-# Comment out the next 6 definitions if you already have
-# the Level 1 BLAS.
+# Level 1 BLAS
#---------------------------------------------------------
set(SBLAS1 isamax.f sasum.f saxpy.f scopy.f sdot.f snrm2.f
srot.f srotg.f sscal.f sswap.f sdsdot.f srotmg.f srotm.f)
@@ -74,15 +45,12 @@ set(CB1AUX isamax.f sasum.f saxpy.f scopy.f snrm2.f sscal.f)
set(ZB1AUX idamax.f dasum.f daxpy.f dcopy.f dnrm2.f dscal.f)
#---------------------------------------------------------------------
-# The following line defines auxiliary routines needed by both the
-# Level 2 and Level 3 BLAS. Comment it out only if you already have
-# both the Level 2 and 3 BLAS.
+# Auxiliary routines needed by both the Level 2 and Level 3 BLAS
#---------------------------------------------------------------------
set(ALLBLAS lsame.f xerbla.f xerbla_array.f)
#---------------------------------------------------------
-# Comment out the next 4 definitions if you already have
-# the Level 2 BLAS.
+# Level 2 BLAS
#---------------------------------------------------------
set(SBLAS2 sgemv.f sgbmv.f ssymv.f ssbmv.f sspmv.f
strmv.f stbmv.f stpmv.f strsv.f stbsv.f stpsv.f
@@ -101,8 +69,7 @@ set(ZBLAS2 zgemv.f zgbmv.f zhemv.f zhbmv.f zhpmv.f
zgerc.f zgeru.f zher.f zhpr.f zher2.f zhpr2.f)
#---------------------------------------------------------
-# Comment out the next 4 definitions if you already have
-# the Level 3 BLAS.
+# Level 3 BLAS
#---------------------------------------------------------
set(SBLAS3 sgemm.f ssymm.f ssyrk.f ssyr2k.f strmm.f strsm.f)
@@ -113,30 +80,24 @@ set(DBLAS3 dgemm.f dsymm.f dsyrk.f dsyr2k.f dtrmm.f dtrsm.f)
set(ZBLAS3 zgemm.f zsymm.f zsyrk.f zsyr2k.f ztrmm.f ztrsm.f
zhemm.f zherk.f zher2k.f)
-# default build all of it
-set(ALLOBJ ${SBLAS1} ${SBLAS2} ${SBLAS3} ${DBLAS1} ${DBLAS2} ${DBLAS3}
- ${CBLAS1} ${CBLAS2} ${CBLAS3} ${ZBLAS1}
- ${ZBLAS2} ${ZBLAS3} ${ALLBLAS})
-
-if(BLAS_SINGLE)
- set(ALLOBJ ${SBLAS1} ${ALLBLAS}
- ${SBLAS2} ${SBLAS3})
+
+
+set(SOURCES)
+if(BUILD_SINGLE)
+ list(APPEND SOURCES ${SBLAS1} ${ALLBLAS} ${SBLAS2} ${SBLAS3})
endif()
-if(BLAS_DOUBLE)
- set(ALLOBJ ${DBLAS1} ${ALLBLAS}
- ${DBLAS2} ${DBLAS3})
+if(BUILD_DOUBLE)
+ list(APPEND SOURCES ${DBLAS1} ${ALLBLAS} ${DBLAS2} ${DBLAS3})
endif()
-if(BLAS_COMPLEX)
- set(ALLOBJ ${BLASLIB} ${CBLAS1} ${CB1AUX}
- ${ALLBLAS} ${CBLAS2})
+if(BUILD_COMPLEX)
+ list(APPEND SOURCES ${CBLAS1} ${CB1AUX} ${ALLBLAS} ${CBLAS2} ${CBLAS3})
endif()
-if(BLAS_COMPLEX16)
- set(ALLOBJ ${BLASLIB} ${ZBLAS1} ${ZB1AUX}
- ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
+if(BUILD_COMPLEX16)
+ list(APPEND SOURCES ${ZBLAS1} ${ZB1AUX} ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
endif()
+list(REMOVE_DUPLICATES SOURCES)
-
-add_library(blas ${ALLOBJ})
+add_library(blas ${SOURCES})
set_target_properties(
blas PROPERTIES
VERSION ${LAPACK_VERSION}
diff --git a/CBLAS/CMakeLists.txt b/CBLAS/CMakeLists.txt
index 580864fb..f7be6e2d 100644
--- a/CBLAS/CMakeLists.txt
+++ b/CBLAS/CMakeLists.txt
@@ -45,7 +45,7 @@ endif()
set(_cblas_config_install_guard_target "")
if(ALL_TARGETS)
install(EXPORT cblas-targets
- DESTINATION ${LIBRARY_DIR}/cmake/cblas-${LAPACK_VERSION})
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/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)
@@ -78,8 +78,8 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-install.cmake.in
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/cblas-config.cmake
${LAPACK_BINARY_DIR}/cblas-config-version.cmake
- DESTINATION ${LIBRARY_DIR}/cmake/cblas-${LAPACK_VERSION}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cblas-${LAPACK_VERSION}
)
#install(EXPORT cblas-targets
-# DESTINATION ${LIBRARY_DIR}/cmake/cblas-${LAPACK_VERSION})
+# DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cblas-${LAPACK_VERSION})
diff --git a/CBLAS/cblas.pc.in b/CBLAS/cblas.pc.in
index 4a938fe1..7cf09f21 100644
--- a/CBLAS/cblas.pc.in
+++ b/CBLAS/cblas.pc.in
@@ -6,4 +6,4 @@ Description: C Standard Interface to BLAS Basic Linear Algebra Subprograms
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/blas/#_cblas
Libs: -L${libdir} -lcblas
-Requires: blas
+Requires.private: blas
diff --git a/CBLAS/examples/CMakeLists.txt b/CBLAS/examples/CMakeLists.txt
index a4bab6be..0241fd16 100644
--- a/CBLAS/examples/CMakeLists.txt
+++ b/CBLAS/examples/CMakeLists.txt
@@ -1,7 +1,7 @@
add_executable(xexample1_CBLAS cblas_example1.c)
add_executable(xexample2_CBLAS cblas_example2.c)
-target_link_libraries(xexample1_CBLAS cblas ${BLAS_LIBRARIES})
+target_link_libraries(xexample1_CBLAS cblas)
target_link_libraries(xexample2_CBLAS cblas ${BLAS_LIBRARIES})
add_test(example1_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample1_CBLAS)
diff --git a/CBLAS/src/CMakeLists.txt b/CBLAS/src/CMakeLists.txt
index 6577656b..e05d3cdb 100644
--- a/CBLAS/src/CMakeLists.txt
+++ b/CBLAS/src/CMakeLists.txt
@@ -97,32 +97,28 @@ set(ZLEV3 cblas_zgemm.c cblas_zsymm.c cblas_zhemm.c cblas_zherk.c
cblas_zher2k.c cblas_ztrmm.c cblas_ztrsm.c cblas_zsyrk.c
cblas_zsyr2k.c)
-# default build all of it
-set(ALLOBJ ${SCLEV1} ${SLEV1} ${SLEV2} ${SLEV3} ${ERRHAND}
- ${DLEV1} ${DLEV2} ${DLEV3}
- ${CLEV1} ${CLEV2} ${CLEV3}
- ${ZLEV1} ${ZLEV2} ${ZLEV3})
-
-# Single precision real
-if(CBLAS_SINGLE)
- set(ALLOBJ ${SCLEV1} ${SLEV1} ${SLEV2} ${SLEV3} ${ERRHAND})
-endif()
-# Double precision real
-if(CBLAS_DOUBLE)
- set(ALLOBJ ${DLEV1} ${DLEV2} ${DLEV3} ${ERRHAND})
+set(SOURCES)
+if(BUILD_SINGLE)
+ list(APPEND SOURCES ${SLEV1} ${SCLEV1} ${SLEV2} ${SLEV3} ${ERRHAND})
endif()
-
-# Single precision complex
-if(CBLAS_COMPLEX)
- set(ALLOBJ ${CLEV1} ${SCLEV1} ${CLEV2} ${CLEV3} ${ERRHAND})
+if(BUILD_DOUBLE)
+ list(APPEND SOURCES ${DLEV1} ${DLEV2} ${DLEV3} ${ERRHAND})
endif()
-
-# Double precision complex
-if(CBLAS_COMPLEX16)
- set(ALLOBJ ${ZLEV1} ${ZLEV2} ${ZLEV3} ${ERRHAND})
+if(BUILD_COMPLEX)
+ list(APPEND SOURCES ${CLEV1} ${SCLEV1} ${CLEV2} ${CLEV3} ${ERRHAND})
endif()
-
-add_library(cblas ${ALLOBJ})
-target_link_libraries(cblas ${BLAS_LIBRARIES})
+if(BUILD_COMPLEX16)
+ list(APPEND SOURCES ${ZLEV1} ${ZLEV2} ${ZLEV3} ${ERRHAND})
+endif()
+list(REMOVE_DUPLICATES SOURCES)
+
+add_library(cblas ${SOURCES})
+set_target_properties(
+ cblas PROPERTIES
+ LINKER_LANGUAGE C
+ VERSION ${LAPACK_VERSION}
+ SOVERSION ${LAPACK_MAJOR_VERSION}
+ )
+target_link_libraries(cblas PRIVATE ${BLAS_LIBRARIES})
lapack_install_library(cblas)
diff --git a/CBLAS/testing/CMakeLists.txt b/CBLAS/testing/CMakeLists.txt
index fe9a51e1..eb32e73d 100644
--- a/CBLAS/testing/CMakeLists.txt
+++ b/CBLAS/testing/CMakeLists.txt
@@ -52,9 +52,9 @@ if(BUILD_SINGLE)
add_executable(xscblat2 c_sblat2.f ${STESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xscblat3 c_sblat3.f ${STESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
- target_link_libraries(xscblat1 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xscblat2 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xscblat3 cblas ${BLAS_LIBRARIES})
+ target_link_libraries(xscblat1 cblas)
+ target_link_libraries(xscblat2 cblas)
+ target_link_libraries(xscblat3 cblas)
add_cblas_test(stest1.out "" xscblat1)
add_cblas_test(stest2.out sin2 xscblat2)
@@ -66,9 +66,9 @@ if(BUILD_DOUBLE)
add_executable(xdcblat2 c_dblat2.f ${DTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xdcblat3 c_dblat3.f ${DTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
- target_link_libraries(xdcblat1 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xdcblat2 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xdcblat3 cblas ${BLAS_LIBRARIES})
+ target_link_libraries(xdcblat1 cblas)
+ target_link_libraries(xdcblat2 cblas)
+ target_link_libraries(xdcblat3 cblas)
add_cblas_test(dtest1.out "" xdcblat1)
add_cblas_test(dtest2.out din2 xdcblat2)
@@ -81,8 +81,8 @@ if(BUILD_COMPLEX)
add_executable(xccblat3 c_cblat3.f ${CTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
target_link_libraries(xccblat1 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xccblat2 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xccblat3 cblas ${BLAS_LIBRARIES})
+ target_link_libraries(xccblat2 cblas)
+ target_link_libraries(xccblat3 cblas)
add_cblas_test(ctest1.out "" xccblat1)
add_cblas_test(ctest2.out cin2 xccblat2)
@@ -94,9 +94,9 @@ if(BUILD_COMPLEX16)
add_executable(xzcblat2 c_zblat2.f ${ZTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
add_executable(xzcblat3 c_zblat3.f ${ZTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
- target_link_libraries(xzcblat1 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xzcblat2 cblas ${BLAS_LIBRARIES})
- target_link_libraries(xzcblat3 cblas ${BLAS_LIBRARIES})
+ target_link_libraries(xzcblat1 cblas)
+ target_link_libraries(xzcblat2 cblas)
+ target_link_libraries(xzcblat3 cblas)
add_cblas_test(ztest1.out "" xzcblat1)
add_cblas_test(ztest2.out zin2 xzcblat2)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index beb73210..943e3cfe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,6 +18,8 @@ set(
${LAPACK_MAJOR_VERSION}.${LAPACK_MINOR_VERSION}.${LAPACK_PATCH_VERSION}
)
+include(GNUInstallDirs)
+
# Updated OSX RPATH settings
# In response to CMake 3.0 generating warnings regarding policy CMP0042,
# the OSX RPATH settings have been updated per recommendations found
@@ -26,9 +28,9 @@ set(
set(CMAKE_MACOSX_RPATH ON)
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
-list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" isSystemDir)
+list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ${CMAKE_INSTALL_FULL_LIBDIR} isSystemDir)
if("${isSystemDir}" STREQUAL "-1")
- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
+ set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
endif()
@@ -96,32 +98,21 @@ endif()
set(LAPACK_INSTALL_EXPORT_NAME lapack-targets)
-if(UNIX)
- include(GNUInstallDirs)
- set(ARCHIVE_DIR ${CMAKE_INSTALL_LIBDIR})
- set(LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR})
- set(RUNTIME_DIR ${CMAKE_INSTALL_BINDIR})
-else()
- set(ARCHIVE_DIR lib${LIB_SUFFIX})
- set(LIBRARY_DIR lib${LIB_SUFFIX})
- set(RUNTIME_DIR bin)
-endif()
-
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}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
endmacro()
-set(PKG_CONFIG_DIR ${LIBRARY_DIR}/pkgconfig)
+set(PKG_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
set(prefix ${CMAKE_INSTALL_PREFIX})
-if(NOT IS_ABSOLUTE ${LIBRARY_DIR})
- set(libdir "\${prefix}/${LIBRARY_DIR}")
+if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
+ set(libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
else()
- set(libdir "${LIBRARY_DIR}")
+ set(libdir "${CMAKE_INSTALL_LIBDIR}")
endif()
# --------------------------------------------------
@@ -162,17 +153,29 @@ set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
option(BUILD_TESTING "Build tests" OFF)
+message(STATUS "Build tests: ${BUILD_TESTING}")
-# deprecated LAPACK routines
+# deprecated LAPACK and LAPACKE routines
option(BUILD_DEPRECATED "Build deprecated routines" OFF)
+message(STATUS "Build deprecated routines: ${BUILD_DEPRECATED}")
# --------------------------------------------------
# Precision to build
# By default all precisions are generated
-option(BUILD_SINGLE "Build LAPACK Single Precision" ON)
-option(BUILD_DOUBLE "Build LAPACK Double Precision" ON)
-option(BUILD_COMPLEX "Build LAPACK Complex Precision" ON)
-option(BUILD_COMPLEX16 "Build LAPACK Double Complex Precision" ON)
+option(BUILD_SINGLE "Build single precision real" ON)
+option(BUILD_DOUBLE "Build double precision real" ON)
+option(BUILD_COMPLEX "Build single precision complex" ON)
+option(BUILD_COMPLEX16 "Build double precision complex" ON)
+message(STATUS "Build single precision real: ${BUILD_SINGLE}")
+message(STATUS "Build double precision real: ${BUILD_DOUBLE}")
+message(STATUS "Build single precision complex: ${BUILD_COMPLEX}")
+message(STATUS "Build double precision complex: ${BUILD_COMPLEX16}")
+
+if(NOT (BUILD_SINGLE OR BUILD_DOUBLE OR BUILD_COMPLEX OR BUILD_COMPLEX16))
+ message(FATAL_ERROR "Nothing to build, no precision selected.
+ Please enable at least one of these:
+ BUILD_SINGLE, BUILD_DOUBLE, BUILD_COMPLEX, BUILD_COMPLEX16.")
+endif()
# --------------------------------------------------
# Subdirectories that need to be processed
@@ -275,7 +278,6 @@ else()
CACHE STRING "Linker flags for shared libs" FORCE)
endif()
-message(STATUS "BUILD TESTING : ${BUILD_TESTING}")
if(BUILD_TESTING)
add_subdirectory(TESTING)
endif()
@@ -346,7 +348,7 @@ endif()
set(_lapack_config_install_guard_target "")
if(ALL_TARGETS)
install(EXPORT lapack-targets
- DESTINATION ${LIBRARY_DIR}/cmake/lapack-${LAPACK_VERSION})
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/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.
@@ -396,5 +398,5 @@ write_basic_package_version_file(
install(FILES
${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake
${LAPACK_BINARY_DIR}/lapack-config-version.cmake
- DESTINATION ${LIBRARY_DIR}/cmake/lapack-${LAPACK_VERSION}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapack-${LAPACK_VERSION}
)
diff --git a/INSTALL/make.inc.ALPHA b/INSTALL/make.inc.ALPHA
index b5815876..0ceeaa15 100644
--- a/INSTALL/make.inc.ALPHA
+++ b/INSTALL/make.inc.ALPHA
@@ -1,76 +1,81 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = cc
+CFLAGS = -O4
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = f77
+OPTS = -O4 -fpe1
+DRVOPTS = $(OPTS)
+NOOPT =
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = f77
-OPTS = -O4 -fpe1
-DRVOPTS = $(OPTS)
-NOOPT =
LOADER = f77
LOADOPTS =
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = ranlib
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = cc
-CFLAGS = -O4
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = ranlib
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
#BLASLIB = ../../librefblas.a
-BLASLIB = -ldxml
+BLASLIB = -ldxml
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
diff --git a/INSTALL/make.inc.HPPA b/INSTALL/make.inc.HPPA
index 869a7ec7..8eabbbdf 100644
--- a/INSTALL/make.inc.HPPA
+++ b/INSTALL/make.inc.HPPA
@@ -1,76 +1,81 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = cc
+CFLAGS =
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = f77
+OPTS = +O4 +U77
+DRVOPTS = $(OPTS) -K
+NOOPT = +U77
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = f77
-OPTS = +O4 +U77
-DRVOPTS = $(OPTS) -K
-NOOPT = +U77
LOADER = f77
LOADOPTS = -Aa +U77
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = echo
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = cc
-CFLAGS =
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = echo
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
#BLASLIB = ../../librefblas.a
-BLASLIB = -lblas
+BLASLIB = -lblas
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
diff --git a/INSTALL/make.inc.IRIX64 b/INSTALL/make.inc.IRIX64
index 68482060..d9e71e1b 100644
--- a/INSTALL/make.inc.IRIX64
+++ b/INSTALL/make.inc.IRIX64
@@ -1,78 +1,83 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /sbin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = cc
+CFLAGS = -O3
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = f77
+OPTS = -O3 -64 -mips4 -r10000 -OPT:IEEE_NaN_inf=ON
+#OPTS = -g -DEBUG:subscript_check=ON -trapuv -OPT:IEEE_NaN_inf=ON
+DRVOPTS = $(OPTS) -static
+NOOPT = -64 -mips4 -r10000 -OPT:IEEE_NaN_inf=ON
+#NOOPT = -g -DEBUG:subscript_check=ON -trapuv -OPT:IEEE_NaN_inf=ON
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = f77
-OPTS = -O3 -64 -mips4 -r10000 -OPT:IEEE_NaN_inf=ON
-#OPTS = -g -DEBUG:subscript_check=ON -trapuv -OPT:IEEE_NaN_inf=ON
-DRVOPTS = $(OPTS) -static
-NOOPT = -64 -mips4 -r10000 -OPT:IEEE_NaN_inf=ON
-#NOOPT = -g -DEBUG:subscript_check=ON -trapuv -OPT:IEEE_NaN_inf=ON
LOADER = f77
LOADOPTS = -O3 -64 -mips4 -r10000 -OPT:IEEE_NaN_inf=ON
#LOADOPTS = -g -DEBUG:subscript_check=ON -trapuv -OPT:IEEE_NaN_inf=ON
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = echo
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = cc
-CFLAGS = -O3
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = echo
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
-#BLASLIB = -lblas
+#BLASLIB = -lblas
BLASLIB = ../../librefblas.a
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
diff --git a/INSTALL/make.inc.O2K b/INSTALL/make.inc.O2K
index ceeccef7..3ffcadac 100644
--- a/INSTALL/make.inc.O2K
+++ b/INSTALL/make.inc.O2K
@@ -1,79 +1,84 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /sbin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = cc
+CFLAGS = -O3
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = f77
+OPTS = -O3 -64 -mips4 -r10000
+#OPTS = -O3 -64 -mips4 -r10000 -mp
+DRVOPTS = $(OPTS) -static
+NOOPT = -64 -mips4 -r10000
+#NOOPT = -64 -mips4 -r10000 -mp
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = f77
-OPTS = -O3 -64 -mips4 -r10000
-#OPTS = -O3 -64 -mips4 -r10000 -mp
-DRVOPTS = $(OPTS) -static
-NOOPT = -64 -mips4 -r10000
-#NOOPT = -64 -mips4 -r10000 -mp
LOADER = f77
LOADOPTS = -O3 -64 -mips4 -r10000
#LOADOPTS = -O3 -64 -mips4 -r10000 -mp
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = echo
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = cc
-CFLAGS = -O3
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = echo
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
-BLASLIB = -lblas
-#BLASLIB = -lblas_mp
+BLASLIB = -lblas
+#BLASLIB = -lblas_mp
#BLASLIB = ../../librefblas.a
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
diff --git a/INSTALL/make.inc.SGI5 b/INSTALL/make.inc.SGI5
index de55f152..c7019ac1 100644
--- a/INSTALL/make.inc.SGI5
+++ b/INSTALL/make.inc.SGI5
@@ -1,75 +1,80 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /sbin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = cc
+CFLAGS = -O4
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = f77
+OPTS = -O4
+DRVOPTS = $(OPTS) -static
+NOOPT =
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = f77
-OPTS = -O4
-DRVOPTS = $(OPTS) -static
-NOOPT =
LOADER = f77
LOADOPTS =
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = echo
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = cc
-CFLAGS = -O4
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = echo
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
-#BLASLIB = -lblas
+#BLASLIB = -lblas
BLASLIB = ../../librefblas.a
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
diff --git a/INSTALL/make.inc.SUN4 b/INSTALL/make.inc.SUN4
index d9c68c4c..4e44f1be 100644
--- a/INSTALL/make.inc.SUN4
+++ b/INSTALL/make.inc.SUN4
@@ -1,75 +1,80 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = cc
+CFLAGS = -O3
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = f77
+OPTS = -dalign -O4 -fast
+DRVOPTS = $(OPTS)
+NOOPT =
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = f77
-OPTS = -dalign -O4 -fast
-DRVOPTS = $(OPTS)
-NOOPT =
LOADER = f77
LOADOPTS = -dalign -O4 -fast
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = ranlib
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = cc
-CFLAGS = -O3
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = ranlib
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
-#BLASLIB = -lblas
+#BLASLIB = -lblas
BLASLIB = ../../librefblas.a
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
diff --git a/INSTALL/make.inc.SUN4SOL2 b/INSTALL/make.inc.SUN4SOL2
index d3c78437..e6d79add 100644
--- a/INSTALL/make.inc.SUN4SOL2
+++ b/INSTALL/make.inc.SUN4SOL2
@@ -1,81 +1,86 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = cc
+CFLAGS = -O3
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = f77
+#OPTS = -O4 -u -f -mt
+#OPTS = -u -f -dalign -native -xO5 -xarch=v8plusa
+OPTS = -u -f -dalign -native -xO2 -xarch=v8plusa
+DRVOPTS = $(OPTS)
+NOOPT = -u -f
+#NOOPT = -u -f -mt
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = f77
-#OPTS = -O4 -u -f -mt
-#OPTS = -u -f -dalign -native -xO5 -xarch=v8plusa
-OPTS = -u -f -dalign -native -xO2 -xarch=v8plusa
-DRVOPTS = $(OPTS)
-NOOPT = -u -f
-#NOOPT = -u -f -mt
LOADER = f77
#LOADOPTS = -mt
LOADOPTS = -f -dalign -native -xO2 -xarch=v8plusa
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = echo
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = cc
-CFLAGS = -O3
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = echo
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
#BLASLIB = ../../librefblas.a
-#BLASLIB = -xlic_lib=sunperf_mt
-BLASLIB = -xlic_lib=sunperf
+#BLASLIB = -xlic_lib=sunperf_mt
+BLASLIB = -xlic_lib=sunperf
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
diff --git a/INSTALL/make.inc.XLF b/INSTALL/make.inc.XLF
index d7fa4b73..9466ee33 100644
--- a/INSTALL/make.inc.XLF
+++ b/INSTALL/make.inc.XLF
@@ -1,77 +1,82 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+CC = xlc
+CFLAGS = -O3 -qnosave
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-FORTRAN = xlf
-OPTS = -O3 -qfixed -qnosave
+FORTRAN = xlf
+OPTS = -O3 -qfixed -qnosave
# For -O2, add -qstrict=none
-DRVOPTS = $(OPTS)
-NOOPT = -O0 -qfixed -qnosave
+DRVOPTS = $(OPTS)
+NOOPT = -O0 -qfixed -qnosave
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
+#
LOADER = xlf
LOADOPTS = -qnosave
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-#TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = ranlib
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+#TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = xlc
-CFLAGS = -O3 -qnosave
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = ranlib
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
#BLASLIB = ../../librefblas.a
-BLASLIB = -lessl
+BLASLIB = -lessl
CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
diff --git a/INSTALL/make.inc.gfortran b/INSTALL/make.inc.gfortran
index ccd0994f..77de24a8 100644
--- a/INSTALL/make.inc.gfortran
+++ b/INSTALL/make.inc.gfortran
@@ -1,74 +1,79 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+CC = gcc
+CFLAGS = -O3
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
# Note: During a regular execution, LAPACK might create NaN and Inf
# and handle these quantities appropriately. As a consequence, one
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
#
-FORTRAN = gfortran
-OPTS = -O2 -frecursive
-DRVOPTS = $(OPTS)
-NOOPT = -O0 -frecursive
+FORTRAN = gfortran
+OPTS = -O2 -frecursive
+DRVOPTS = $(OPTS)
+NOOPT = -O0 -frecursive
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
+#
LOADER = gfortran
LOADOPTS =
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
+#
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = ranlib
+
+# Timer for the SECOND and DSECND routines
+#
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+#TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
+#
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-#TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
-#
-# CC is the C compiler, normally invoked with options CFLAGS.
-#
-CC = gcc
-CFLAGS = -O3
-#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = ranlib
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
diff --git a/INSTALL/make.inc.gfortran_debug b/INSTALL/make.inc.gfortran_debug
index f87b949c..b339d2b1 100644
--- a/INSTALL/make.inc.gfortran_debug
+++ b/INSTALL/make.inc.gfortran_debug
@@ -1,74 +1,79 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader
-# and desired load options for your machine.
+CC = gcc
+CFLAGS = -g
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
# Note: During a regular execution, LAPACK might create NaN and Inf
# and handle these quantities appropriately. As a consequence, one
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
#
-FORTRAN = gfortran -fimplicit-none -g -frecursive
-OPTS =
-DRVOPTS = $(OPTS)
-NOOPT = -g -O0 -frecursive
+FORTRAN = gfortran -fimplicit-none -g -frecursive
+OPTS =
+DRVOPTS = $(OPTS)
+NOOPT = -g -O0 -frecursive
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
+#
LOADER = gfortran -g
LOADOPTS =
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
+#
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = ranlib
+
+# Timer for the SECOND and DSECND routines
+#
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+#TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
+#
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-# TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the Fortran standard INTERNAL FUNCTION CPU_TIME
-TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
-#
-# CC is the C compiler, normally invoked with options CFLAGS.
-#
-CC = gcc
-CFLAGS = -g
-#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = ranlib
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
diff --git a/INSTALL/make.inc.ifort b/INSTALL/make.inc.ifort
index b26e9601..b067bd48 100644
--- a/INSTALL/make.inc.ifort
+++ b/INSTALL/make.inc.ifort
@@ -1,70 +1,75 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# June 2016 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = icc
+CFLAGS = -O3
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader
-# and desired load options for your machine.
+FORTRAN = ifort
+OPTS = -O3 -fp-model strict -assume protect_parens
+DRVOPTS = $(OPTS)
+NOOPT = -O0 -fp-model strict -assume protect_parens
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = ifort
-OPTS = -O3 -fp-model strict -assume protect_parens
-DRVOPTS = $(OPTS)
-NOOPT = -O0 -fp-model strict -assume protect_parens
LOADER = ifort
LOADOPTS =
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the Fortran standard INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = ranlib
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = icc
-CFLAGS = -O3
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = ranlib
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
diff --git a/INSTALL/make.inc.pgf95 b/INSTALL/make.inc.pgf95
index 595b64c8..a9a5cec9 100644
--- a/INSTALL/make.inc.pgf95
+++ b/INSTALL/make.inc.pgf95
@@ -1,70 +1,75 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = pgcc
+CFLAGS =
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = pgf95
+OPTS = -O3
+DRVOPTS = $(OPTS)
+NOOPT = -O0
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = pgf95
-OPTS = -O3
-DRVOPTS = $(OPTS)
-NOOPT = -O0
LOADER = $(FORTRAN)
LOADOPTS =
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-# TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
- TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = echo
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+#TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = pgcc
-CFLAGS =
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = echo
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
diff --git a/INSTALL/make.inc.pghpf b/INSTALL/make.inc.pghpf
index 8639530a..1d9bf549 100644
--- a/INSTALL/make.inc.pghpf
+++ b/INSTALL/make.inc.pghpf
@@ -1,77 +1,82 @@
####################################################################
# LAPACK make include file. #
-# LAPACK, Version 3.6.0 #
-# November 2015 #
+# LAPACK, Version 3.7.0 #
+# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
+#
+CC = pghpc
+CFLAGS =
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+FORTRAN = pghpf
+OPTS = -O4 -Mnohpfc -Mdclchk
+DRVOPTS = $(OPTS)
+NOOPT = -Mnohpfc -Mdclchk
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
#
-FORTRAN = pghpf
-OPTS = -O4 -Mnohpfc -Mdclchk
-DRVOPTS = $(OPTS)
-NOOPT = -Mnohpfc -Mdclchk
LOADER = pghpf
LOADOPTS =
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-# TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = echo
+
+# Timer for the SECOND and DSECND routines
#
-# CC is the C compiler, normally invoked with options CFLAGS.
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+#TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
-CC = pghpc
-CFLAGS =
+#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# LAPACKE has also the interface to some routines from tmglib,
-# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
#LAPACKE_WITH_TMG = Yes
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = echo
-#
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
-#BLASLIB = -lessl
+#BLASLIB = -lessl
BLASLIB = ../../librefblas.a
-CBLASLIB = ../../libcblas.a
+CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a
diff --git a/LAPACKE/CMakeLists.txt b/LAPACKE/CMakeLists.txt
index 2a60a1ea..d9a85ee6 100644
--- a/LAPACKE/CMakeLists.txt
+++ b/LAPACKE/CMakeLists.txt
@@ -36,23 +36,35 @@ macro(append_subdir_files variable dirname)
endmacro()
append_subdir_files(LAPACKE_INCLUDE "include")
-append_subdir_files(SRC_OBJ "src")
-append_subdir_files(SRCX_OBJ "src")
-append_subdir_files(MATGEN_OBJ "src")
-append_subdir_files(UTILS_OBJ "utils")
+append_subdir_files(SOURCES "src")
+append_subdir_files(DEPRECATED "src")
+append_subdir_files(EXTENDED "src")
+append_subdir_files(MATGEN "src")
+append_subdir_files(UTILS "utils")
+if(BUILD_DEPRECATED)
+ list(APPEND SOURCES ${DEPRECATED})
+endif()
if(USE_XBLAS)
- add_library(lapacke ${SRC_OBJ} ${SRCX_OBJ} ${UTILS_OBJ})
- target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
-else()
- if(LAPACKE_WITH_TMG)
- add_library(lapacke ${SRC_OBJ} ${MATGEN_OBJ} ${UTILS_OBJ})
- target_link_libraries(lapacke tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
- else()
- add_library(lapacke ${SRC_OBJ} ${UTILS_OBJ})
- target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
- endif()
+ list(APPEND SOURCES ${EXTENDED})
+endif()
+if(LAPACKE_WITH_TMG)
+ list(APPEND SOURCES ${MATGEN})
+endif()
+list(APPEND SOURCES ${UTILS})
+
+add_library(lapacke ${SOURCES})
+set_target_properties(
+ lapacke PROPERTIES
+ LINKER_LANGUAGE C
+ VERSION ${LAPACK_VERSION}
+ SOVERSION ${LAPACK_MAJOR_VERSION}
+ )
+
+if(LAPACKE_WITH_TMG)
+ target_link_libraries(lapacke PRIVATE tmglib)
endif()
+target_link_libraries(lapacke PRIVATE ${LAPACK_LIBRARIES})
lapack_install_library(lapacke)
install(FILES ${LAPACKE_INCLUDE} ${LAPACK_BINARY_DIR}/include/lapacke_mangling.h DESTINATION include)
@@ -78,8 +90,8 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/lapacke-config-install.cmake.in
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/lapacke-config.cmake
${LAPACK_BINARY_DIR}/lapacke-config-version.cmake
- DESTINATION ${LIBRARY_DIR}/cmake/lapacke-${LAPACK_VERSION}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapacke-${LAPACK_VERSION}
)
install(EXPORT lapacke-targets
- DESTINATION ${LIBRARY_DIR}/cmake/lapacke-${LAPACK_VERSION})
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapacke-${LAPACK_VERSION})
diff --git a/LAPACKE/example/CMakeLists.txt b/LAPACKE/example/CMakeLists.txt
index a1c59096..fa75c731 100644
--- a/LAPACKE/example/CMakeLists.txt
+++ b/LAPACKE/example/CMakeLists.txt
@@ -3,10 +3,10 @@ add_executable(xexample_DGESV_colmajor example_DGESV_colmajor.c lapacke_example_
add_executable(xexample_DGELS_rowmajor example_DGELS_rowmajor.c lapacke_example_aux.c lapacke_example_aux.h)
add_executable(xexample_DGELS_colmajor example_DGELS_colmajor.c lapacke_example_aux.c lapacke_example_aux.h)
-target_link_libraries(xexample_DGESV_rowmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGESV_colmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGELS_rowmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGELS_colmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+target_link_libraries(xexample_DGESV_rowmajor lapacke)
+target_link_libraries(xexample_DGESV_colmajor lapacke)
+target_link_libraries(xexample_DGELS_rowmajor lapacke)
+target_link_libraries(xexample_DGELS_colmajor lapacke)
add_test(example_DGESV_rowmajor ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample_DGESV_rowmajor)
add_test(example_DGESV_colmajor ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample_DGESV_colmajor)
diff --git a/LAPACKE/lapacke.pc.in b/LAPACKE/lapacke.pc.in
index 028f8da6..e4b83569 100644
--- a/LAPACKE/lapacke.pc.in
+++ b/LAPACKE/lapacke.pc.in
@@ -6,4 +6,4 @@ Description: C Standard Interface to LAPACK Linear Algebra PACKage
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/lapack/#_standard_c_language_apis_for_lapack
Libs: -L${libdir} -llapacke
-Requires: lapack blas
+Requires.private: lapack
diff --git a/LAPACKE/src/CMakeLists.txt b/LAPACKE/src/CMakeLists.txt
index 82be4267..846d52ae 100644
--- a/LAPACKE/src/CMakeLists.txt
+++ b/LAPACKE/src/CMakeLists.txt
@@ -1,6 +1,4 @@
-#aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} SRC_OBJ)
-
-set(SRC_OBJ
+set(SOURCES
lapacke_cbbcsd.c
lapacke_cbbcsd_work.c
lapacke_cbdsqr.c
@@ -2278,36 +2276,34 @@ lapacke_csyr_work.c
lapacke_ilaver.c
)
-if(BUILD_DEPRECATED)
- list(APPEND SRC_OBJ
- lapacke_cggsvp.c
- lapacke_cggsvp_work.c
- lapacke_dggsvp.c
- lapacke_dggsvp_work.c
- lapacke_sggsvp.c
- lapacke_sggsvp_work.c
- lapacke_zggsvp.c
- lapacke_zggsvp_work.c
- lapacke_cggsvd.c
- lapacke_cggsvd_work.c
- lapacke_dggsvd.c
- lapacke_dggsvd_work.c
- lapacke_sggsvd.c
- lapacke_sggsvd_work.c
- lapacke_zggsvd.c
- lapacke_zggsvd_work.c
- lapacke_cgeqpf.c
- lapacke_cgeqpf_work.c
- lapacke_dgeqpf.c
- lapacke_dgeqpf_work.c
- lapacke_sgeqpf.c
- lapacke_sgeqpf_work.c
- lapacke_zgeqpf.c
- lapacke_zgeqpf_work.c)
- message(STATUS "Building LAPACKE deprecated routines")
-endif()
+set(DEPRECATED
+lapacke_cggsvp.c
+lapacke_cggsvp_work.c
+lapacke_dggsvp.c
+lapacke_dggsvp_work.c
+lapacke_sggsvp.c
+lapacke_sggsvp_work.c
+lapacke_zggsvp.c
+lapacke_zggsvp_work.c
+lapacke_cggsvd.c
+lapacke_cggsvd_work.c
+lapacke_dggsvd.c
+lapacke_dggsvd_work.c
+lapacke_sggsvd.c
+lapacke_sggsvd_work.c
+lapacke_zggsvd.c
+lapacke_zggsvd_work.c
+lapacke_cgeqpf.c
+lapacke_cgeqpf_work.c
+lapacke_dgeqpf.c
+lapacke_dgeqpf_work.c
+lapacke_sgeqpf.c
+lapacke_sgeqpf_work.c
+lapacke_zgeqpf.c
+lapacke_zgeqpf_work.c
+)
-set(SRCX_OBJ
+set(EXTENDED
lapacke_cgbrfsx.c lapacke_cporfsx.c lapacke_dgerfsx.c lapacke_sgbrfsx.c lapacke_ssyrfsx.c lapacke_zherfsx.c
lapacke_cgbrfsx_work.c lapacke_cporfsx_work.c lapacke_dgerfsx_work.c lapacke_sgbrfsx_work.c lapacke_ssyrfsx_work.c lapacke_zherfsx_work.c
lapacke_cgerfsx.c lapacke_csyrfsx.c lapacke_dporfsx.c lapacke_sgerfsx.c lapacke_zgbrfsx.c lapacke_zporfsx.c
@@ -2323,7 +2319,7 @@ lapacke_chesvxx_work.c lapacke_dgbsvxx_work.c lapacke_dsysvxx_work.c lapacke_
)
# FILE PARTS OF TMGLIB
-set(MATGEN_OBJ
+set(MATGEN
lapacke_clatms.c
lapacke_clatms_work.c
lapacke_dlatms.c
diff --git a/LAPACKE/src/Makefile b/LAPACKE/src/Makefile
index a7898d58..8297546b 100644
--- a/LAPACKE/src/Makefile
+++ b/LAPACKE/src/Makefile
@@ -32,12 +32,12 @@
##############################################################################
# makefile for LAPACKE, used to build lapacke binary.
#
-# Note: we use multiple SRC_OBJA, SRC_OBJB, etc, instead of a single SRC_OBJ
+# Note: we use multiple OBJ_A, OBJ_B, etc, instead of a single OBJ
# to allow build with mingw (argument list too long for the msys ar)
#
include ../../make.inc
-SRC_OBJA = \
+OBJ_A = \
lapacke_cbbcsd.o \
lapacke_cbbcsd_work.o \
lapacke_cbdsqr.o \
@@ -1097,7 +1097,7 @@ lapacke_dsytri2x.o \
lapacke_dsytri2x_work.o \
lapacke_dsytri_work.o
-SRC_OBJB = \
+OBJ_B = \
lapacke_dsytrs.o \
lapacke_dsytrs_rook.o \
lapacke_dsytrs2.o \
@@ -2322,7 +2322,8 @@ lapacke_zsyr_work.o \
lapacke_csyr_work.o \
lapacke_ilaver.o
-DEPRECSRC = \
+ifdef BUILD_DEPRECATED
+DEPRECATED = \
lapacke_cggsvp.o \
lapacke_cggsvp_work.o \
lapacke_dggsvp.o \
@@ -2347,8 +2348,10 @@ lapacke_sgeqpf.o \
lapacke_sgeqpf_work.o \
lapacke_zgeqpf.o \
lapacke_zgeqpf_work.o
+endif
-SRCX_OBJ = \
+ifdef USEXBLAS
+EXTENDED = \
lapacke_cgbrfsx.o lapacke_cporfsx.o lapacke_dgerfsx.o lapacke_sgbrfsx.o lapacke_ssyrfsx.o lapacke_zherfsx.o \
lapacke_cgbrfsx_work.o lapacke_cporfsx_work.o lapacke_dgerfsx_work.o lapacke_sgbrfsx_work.o lapacke_ssyrfsx_work.o lapacke_zherfsx_work.o \
lapacke_cgerfsx.o lapacke_csyrfsx.o lapacke_dporfsx.o lapacke_sgerfsx.o lapacke_zgbrfsx.o lapacke_zporfsx.o \
@@ -2361,10 +2364,11 @@ lapacke_cgesvxx.o lapacke_csysvxx.o lapacke_dposvxx.o lapacke_
lapacke_cgesvxx_work.o lapacke_csysvxx_work.o lapacke_dposvxx_work.o lapacke_sgesvxx_work.o lapacke_zgbsvxx_work.o lapacke_zposvxx_work.o \
lapacke_chesvxx.o lapacke_dgbsvxx.o lapacke_dsysvxx.o lapacke_sposvxx.o lapacke_zgesvxx.o lapacke_zsysvxx.o \
lapacke_chesvxx_work.o lapacke_dgbsvxx_work.o lapacke_dsysvxx_work.o lapacke_sposvxx_work.o lapacke_zgesvxx_work.o lapacke_zsysvxx_work.o
+endif
-
+ifdef LAPACKE_WITH_TMG
# FILE PARTS OF TMGLIB
-MATGEN_OBJ = \
+MATGEN = \
lapacke_clatms.o \
lapacke_clatms_work.o \
lapacke_dlatms.o \
@@ -2393,23 +2397,16 @@ lapacke_slagsy.o \
lapacke_slagsy_work.o \
lapacke_zlagsy.o \
lapacke_zlagsy_work.o
-
-ifdef USEXBLAS
-ALLXOBJ = $(SRCX_OBJ)
-endif
-
-ifdef BUILD_DEPRECATED
-DEPRECATED = $(DEPRECSRC)
endif
all: ../../$(LAPACKELIB)
-../../$(LAPACKELIB): $(SRC_OBJA) $(SRC_OBJB) $(MATGEN_OBJ) $(ALLXOBJ) $(DEPRECATED)
- $(ARCH) $(ARCHFLAGS) $@ $(SRC_OBJA)
- $(ARCH) $(ARCHFLAGS) $@ $(SRC_OBJB)
- $(ARCH) $(ARCHFLAGS) $@ $(MATGEN_OBJ)
- $(ARCH) $(ARCHFLAGS) $@ $(ALLXOBJ)
+../../$(LAPACKELIB): $(OBJ_A) $(OBJ_B) $(DEPRECATED) $(EXTENDED) $(MATGEN)
+ $(ARCH) $(ARCHFLAGS) $@ $(OBJ_A)
+ $(ARCH) $(ARCHFLAGS) $@ $(OBJ_B)
$(ARCH) $(ARCHFLAGS) $@ $(DEPRECATED)
+ $(ARCH) $(ARCHFLAGS) $@ $(EXTENDED)
+ $(ARCH) $(ARCHFLAGS) $@ $(MATGEN)
$(RANLIB) $@
.c.o:
diff --git a/LAPACKE/utils/CMakeLists.txt b/LAPACKE/utils/CMakeLists.txt
index c8b8511e..dd36ee33 100644
--- a/LAPACKE/utils/CMakeLists.txt
+++ b/LAPACKE/utils/CMakeLists.txt
@@ -1,4 +1,4 @@
-set(UTILS_OBJ
+set(UTILS
lapacke_c_nancheck.c lapacke_ctr_trans.c lapacke_make_complex_float.c lapacke_zgb_nancheck.c
lapacke_cgb_nancheck.c lapacke_d_nancheck.c lapacke_s_nancheck.c lapacke_zgb_trans.c
lapacke_cgb_trans.c lapacke_dgb_nancheck.c lapacke_sgb_nancheck.c lapacke_zge_nancheck.c
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
index e80a5b32..099c5f48 100644
--- a/SRC/CMakeLists.txt
+++ b/SRC/CMakeLists.txt
@@ -1,10 +1,10 @@
#######################################################################
# This is the makefile to create a library for LAPACK.
# The files are organized as follows:
+
# ALLAUX -- Auxiliary routines called from all precisions
-#
-# SCLAUX -- Auxiliary routines called from both REAL and COMPLEX.
-# DZLAUX -- Auxiliary routines called from both DOUBLE and COMPLEX*16.
+# SCLAUX -- Auxiliary routines called from single precision
+# DZLAUX -- Auxiliary routines called from double precision
#
# DSLASRC -- Double-single mixed precision real routines called from
# single, single-extra and double precision real LAPACK
@@ -28,25 +28,6 @@
#
# DEPRECATED -- Deprecated routines in all precisions
#
-# The library can be set up to include routines for any combination
-# of the four precisions. To create or add to the library, enter make
-# followed by one or more of the precisions desired. Some examples:
-# make single
-# make single complex
-# make single double complex complex16
-# Alternatively, the command
-# make
-# without any arguments creates a library of all four precisions.
-# The library is called
-# lapack.a
-# and is created at the next higher directory level.
-#
-# To remove the object files after the library is created, enter
-# make clean
-# On some systems, you can force the source files to be recompiled by
-# entering (for example)
-# make single FRC=FRC
-#
# ***Note***
# The functions lsame, second, dsecnd, slamch, and dlamch may have
# to be installed before compiling the library. Refer to the
@@ -467,11 +448,6 @@ set(ZXLASRC zgesvxx.f zgerfsx.f zla_gerfsx_extended.f zla_geamv.f
zla_heamv.f zla_hercond_c.f zla_hercond_x.f zla_herpvgrw.f
zla_lin_berr.f zlarscl2.f zlascl2.f zla_wwaddw.f)
-
-if(USE_XBLAS)
- set(ALLXOBJ ${SXLASRC} ${DXLASRC} ${CXLASRC} ${ZXLASRC})
-endif()
-
if(BUILD_DEPRECATED)
list(APPEND SLASRC DEPRECATED/sgegs.f DEPRECATED/sgegv.f
DEPRECATED/sgeqpf.f DEPRECATED/sgelsx.f DEPRECATED/sggsvd.f
@@ -485,41 +461,41 @@ if(BUILD_DEPRECATED)
list(APPEND ZLASRC DEPRECATED/zgegs.f DEPRECATED/zgegv.f
DEPRECATED/zgeqpf.f DEPRECATED/zgelsx.f DEPRECATED/zggsvd.f
DEPRECATED/zggsvp.f DEPRECATED/zlahrd.f DEPRECATED/zlatzm.f DEPRECATED/ztzrqf.f)
- message(STATUS "Building deprecated routines")
endif()
-set(ALLOBJ)
+if(USE_XBLAS)
+ list(APPEND SLASRC ${SXLASRC})
+ list(APPEND DLASRC ${DXLASRC})
+ list(APPEND CLASRC ${CXLASRC})
+ list(APPEND ZLASRC ${ZXLASRC})
+endif()
+
+
+set(SOURCES)
if(BUILD_SINGLE)
- list(APPEND ALLOBJ ${SLASRC} ${DSLASRC} ${SCLAUX} ${ALLAUX})
- message(STATUS "Building single precision real")
+ list(APPEND SOURCES ${SLASRC} ${DSLASRC} ${SCLAUX} ${ALLAUX})
endif()
if(BUILD_DOUBLE)
- list(APPEND ALLOBJ ${DLASRC} ${DSLASRC} ${DZLAUX} ${ALLAUX})
- message(STATUS "Building double precision real")
+ list(APPEND SOURCES ${DLASRC} ${DSLASRC} ${DZLAUX} ${ALLAUX})
endif()
if(BUILD_COMPLEX)
- list(APPEND ALLOBJ ${CLASRC} ${ZCLASRC} ${SCLAUX} ${ALLAUX})
- message(STATUS "Building single precision complex")
+ list(APPEND SOURCES ${CLASRC} ${ZCLASRC} ${SCLAUX} ${ALLAUX})
endif()
if(BUILD_COMPLEX16)
- list(APPEND ALLOBJ ${ZLASRC} ${ZCLASRC} ${DZLAUX} ${ALLAUX})
- message(STATUS "Building double precision complex")
+ list(APPEND SOURCES ${ZLASRC} ${ZCLASRC} ${DZLAUX} ${ALLAUX})
endif()
-list(REMOVE_DUPLICATES ALLOBJ)
-
-if(NOT ALLOBJ)
- message(FATAL_ERROR "-->LAPACK SRC BUILD: NOTHING TO BUILD, NO PRECISION SELECTED:
- PLEASE ENABLE AT LEAST ONE OF THOSE: BUILD_SINGLE, BUILD_COMPLEX, BUILD_DOUBLE, BUILD_COMPLEX16.")
-endif()
-
-
-add_library(lapack ${ALLOBJ} ${ALLXOBJ})
-target_link_libraries(lapack ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
+list(REMOVE_DUPLICATES SOURCES)
+add_library(lapack ${SOURCES})
set_target_properties(
lapack PROPERTIES
VERSION ${LAPACK_VERSION}
SOVERSION ${LAPACK_MAJOR_VERSION}
)
+if(USE_XBLAS)
+ target_link_libraries(lapack PRIVATE ${XBLAS_LIBRARY})
+endif()
+target_link_libraries(lapack PRIVATE ${BLAS_LIBRARIES})
+
lapack_install_library(lapack)
diff --git a/SRC/Makefile b/SRC/Makefile
index 414861c5..d47f7308 100644
--- a/SRC/Makefile
+++ b/SRC/Makefile
@@ -3,10 +3,10 @@ include ../make.inc
#######################################################################
# This is the makefile to create a library for LAPACK.
# The files are organized as follows:
-# ALLAUX -- Auxiliary routines called from all precisions
#
-# SCLAUX -- Auxiliary routines called from both REAL and COMPLEX.
-# DZLAUX -- Auxiliary routines called from both DOUBLE and COMPLEX*16.
+# ALLAUX -- Auxiliary routines called from all precisions
+# SCLAUX -- Auxiliary routines called from single precision
+# DZLAUX -- Auxiliary routines called from double precision
#
# DSLASRC -- Double-single mixed precision real routines called from
# single, single-extra and double precision real LAPACK
diff --git a/TESTING/EIG/CMakeLists.txt b/TESTING/EIG/CMakeLists.txt
index 19fffcd4..20fd25b4 100644
--- a/TESTING/EIG/CMakeLists.txt
+++ b/TESTING/EIG/CMakeLists.txt
@@ -3,34 +3,13 @@
# The test files are organized as follows:
#
# AEIGTST -- Auxiliary test routines used in all precisions
-# SCIGTST -- Auxiliary test routines used in REAL and COMPLEX
-# DZIGTST -- Auxiliary test routines used in DOUBLE PRECISION and
-# COMPLEX*16
+# SCIGTST -- Auxiliary test routines used in single precision
+# DZIGTST -- Auxiliary test routines used in double precision
# SEIGTST -- Single precision real test routines
# CEIGTST -- Single precision complex test routines
# DEIGTST -- Double precision real test routines
# ZEIGTST -- Double precision complex test routines
#
-# Test programs can be generated for all or some of the four different
-# precisions. Enter make followed by one or more of the data types
-# desired. Some examples:
-# make single
-# make single complex
-# make single double complex complex16
-# Alternatively, the command
-# make
-# without any arguments creates all four test programs.
-# The executable files are called
-# xeigtsts, xeigtstd, xeigtstc, and xeigtstz
-# and are created in the next higher directory level.
-#
-# To remove the object files after the executable files have been
-# created, enter
-# make clean
-# On some systems, you can force the source files to be recompiled by
-# entering (for example)
-# make single FRC=FRC
-#
########################################################################
set(AEIGTST
@@ -119,25 +98,21 @@ set(ZEIGTST zchkee.f
macro(add_eig_executable name)
add_executable(${name} ${ARGN})
- target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES})
+ target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
endmacro()
if(BUILD_SINGLE)
-add_eig_executable(xeigtsts ${SEIGTST} ${SCIGTST} ${AEIGTST}
- ${SECOND_SRC})
+add_eig_executable(xeigtsts ${SEIGTST} ${SCIGTST} ${AEIGTST})
endif()
if(BUILD_COMPLEX)
-add_eig_executable(xeigtstc ${CEIGTST} ${SCIGTST} ${AEIGTST}
- ${SECOND_SRC})
+add_eig_executable(xeigtstc ${CEIGTST} ${SCIGTST} ${AEIGTST})
endif()
if(BUILD_DOUBLE)
-add_eig_executable(xeigtstd ${DEIGTST} ${DZIGTST} ${AEIGTST}
- ${DSECOND_SRC})
+add_eig_executable(xeigtstd ${DEIGTST} ${DZIGTST} ${AEIGTST})
endif()
if(BUILD_COMPLEX16)
-add_eig_executable(xeigtstz ${ZEIGTST} ${DZIGTST} ${AEIGTST}
- ${DSECOND_SRC})
+add_eig_executable(xeigtstz ${ZEIGTST} ${DZIGTST} ${AEIGTST})
endif()
diff --git a/TESTING/EIG/Makefile b/TESTING/EIG/Makefile
index eef087d9..1de4a737 100644
--- a/TESTING/EIG/Makefile
+++ b/TESTING/EIG/Makefile
@@ -5,9 +5,8 @@ include ../../make.inc
# The test files are organized as follows:
#
# AEIGTST -- Auxiliary test routines used in all precisions
-# SCIGTST -- Auxiliary test routines used in REAL and COMPLEX
-# DZIGTST -- Auxiliary test routines used in DOUBLE PRECISION and
-# COMPLEX*16
+# SCIGTST -- Auxiliary test routines used in single precision
+# DZIGTST -- Auxiliary test routines used in double precision
# SEIGTST -- Single precision real test routines
# CEIGTST -- Single precision complex test routines
# DEIGTST -- Double precision real test routines
diff --git a/TESTING/LIN/CMakeLists.txt b/TESTING/LIN/CMakeLists.txt
index 27ee2659..04a6036f 100644
--- a/TESTING/LIN/CMakeLists.txt
+++ b/TESTING/LIN/CMakeLists.txt
@@ -207,33 +207,33 @@ set(ZLINTSTRFP zchkrfp.f zdrvrfp.f zdrvrf1.f zdrvrf2.f zdrvrf3.f zdrvrf4.f zerrr
macro(add_lin_executable name)
add_executable(${name} ${ARGN})
- target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES})
+ target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
endmacro()
if(BUILD_SINGLE)
- add_lin_executable(xlintsts ${ALINTST} ${SCLNTST} ${SLINTST} ${SECOND_SRC})
- add_lin_executable(xlintstrfs ${SLINTSTRFP} ${SECOND_SRC})
+ add_lin_executable(xlintsts ${ALINTST} ${SLINTST} ${SCLNTST})
+ add_lin_executable(xlintstrfs ${SLINTSTRFP})
endif()
if(BUILD_DOUBLE)
- add_lin_executable(xlintstd ${ALINTST} ${DLINTST} ${DZLNTST} ${DSECOND_SRC})
- add_lin_executable(xlintstrfd ${DLINTSTRFP} ${DSECOND_SRC})
+ add_lin_executable(xlintstd ${ALINTST} ${DLINTST} ${DZLNTST})
+ add_lin_executable(xlintstrfd ${DLINTSTRFP})
endif()
if(BUILD_SINGLE AND BUILD_DOUBLE)
- add_lin_executable(xlintstds ${DSLINTST} ${SECOND_SRC} ${DSECOND_SRC})
+ add_lin_executable(xlintstds ${DSLINTST})
endif()
if(BUILD_COMPLEX)
- add_lin_executable(xlintstc ${ALINTST} ${CLINTST} ${SCLNTST} ${SECOND_SRC})
- add_lin_executable(xlintstrfc ${CLINTSTRFP} ${SECOND_SRC})
+ add_lin_executable(xlintstc ${ALINTST} ${CLINTST} ${SCLNTST})
+ add_lin_executable(xlintstrfc ${CLINTSTRFP})
endif()
if(BUILD_COMPLEX16)
- add_lin_executable(xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST} ${DSECOND_SRC})
- add_lin_executable(xlintstrfz ${ZLINTSTRFP} ${DSECOND_SRC})
+ add_lin_executable(xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST})
+ add_lin_executable(xlintstrfz ${ZLINTSTRFP})
endif()
if(BUILD_COMPLEX AND BUILD_COMPLEX16)
- add_lin_executable(xlintstzc ${ZCLINTST} ${SECOND_SRC} ${DSECOND_SRC})
+ add_lin_executable(xlintstzc ${ZCLINTST})
endif()
diff --git a/TESTING/MATGEN/CMakeLists.txt b/TESTING/MATGEN/CMakeLists.txt
index 54cf9d9e..0fd12df8 100644
--- a/TESTING/MATGEN/CMakeLists.txt
+++ b/TESTING/MATGEN/CMakeLists.txt
@@ -2,33 +2,13 @@
# This is the makefile to create a library of the test matrix
# generators used in LAPACK. The files are organized as follows:
#
-# SCATGEN -- Auxiliary routines called from both REAL and COMPLEX
-# DZATGEN -- Auxiliary routines called from both DOUBLE PRECISION
-# and COMPLEX*16
+# SCATGEN -- Auxiliary routines called from single precision
+# DZATGEN -- Auxiliary routines called from double precision
# SMATGEN -- Single precision real matrix generation routines
# CMATGEN -- Single precision complex matrix generation routines
# DMATGEN -- Double precision real matrix generation routines
# ZMATGEN -- Double precision complex matrix generation routines
#
-# The library can be set up to include routines for any combination
-# of the four precisions. To create or add to the library, enter make
-# followed by one or more of the precisions desired. Some examples:
-# make single
-# make single complex
-# make single double complex complex16
-# Alternatively, the command
-# make
-# without any arguments creates a library of all four precisions.
-# The library is called
-# tmglib.a
-# and is created at the LAPACK directory level.
-#
-# To remove the object files after the library is created, enter
-# make clean
-# On some systems, you can force the source files to be recompiled by
-# entering (for example)
-# make single FRC=FRC
-#
#######################################################################
set(SCATGEN slatm1.f slatm7.f slaran.f slarnd.f)
@@ -51,25 +31,22 @@ set(ZMATGEN zlatms.f zlatme.f zlatmr.f zlatmt.f
zlagge.f zlaghe.f zlagsy.f zlakf2.f zlarge.f zlaror.f zlarot.f
zlatm1.f zlarnd.f zlatm2.f zlatm3.f zlatm5.f zlatm6.f zlahilb.f)
+
+set(SOURCES)
if(BUILD_SINGLE)
- set(ALLOBJ ${SMATGEN} ${SCATGEN})
+ list(APPEND SOURCES ${SMATGEN} ${SCATGEN})
endif()
if(BUILD_DOUBLE)
- set(ALLOBJ ${ALLOBJ} ${DMATGEN} ${DZATGEN})
+ list(APPEND SOURCES ${DMATGEN} ${DZATGEN})
endif()
if(BUILD_COMPLEX)
- set(ALLOBJ ${ALLOBJ} ${CMATGEN} ${SCATGEN})
+ list(APPEND SOURCES ${CMATGEN} ${SCATGEN})
endif()
if(BUILD_COMPLEX16)
- set(ALLOBJ ${ALLOBJ} ${ZMATGEN} ${DZATGEN})
+ list(APPEND SOURCES ${ZMATGEN} ${DZATGEN})
endif()
+list(REMOVE_DUPLICATES SOURCES)
-if(NOT ALLOBJ)
- set(ALLOBJ ${SMATGEN} ${CMATGEN} ${SCATGEN} ${DMATGEN} ${ZMATGEN}
- ${DZATGEN})
-else()
- list(REMOVE_DUPLICATES ALLOBJ)
-endif()
-add_library(tmglib ${ALLOBJ})
+add_library(tmglib ${SOURCES})
target_link_libraries(tmglib ${LAPACK_LIBRARIES})
lapack_install_library(tmglib)
diff --git a/TESTING/MATGEN/Makefile b/TESTING/MATGEN/Makefile
index 28cabc1e..4cc69f7e 100644
--- a/TESTING/MATGEN/Makefile
+++ b/TESTING/MATGEN/Makefile
@@ -4,9 +4,8 @@ include ../../make.inc
# This is the makefile to create a library of the test matrix
# generators used in LAPACK. The files are organized as follows:
#
-# SCATGEN -- Auxiliary routines called from both REAL and COMPLEX
-# DZATGEN -- Auxiliary routines called from both DOUBLE PRECISION
-# and COMPLEX*16
+# SCATGEN -- Auxiliary routines called from single precision
+# DZATGEN -- Auxiliary routines called from double precision
# SMATGEN -- Single precision real matrix generation routines
# CMATGEN -- Single precision complex matrix generation routines
# DMATGEN -- Double precision real matrix generation routines
diff --git a/lapack.pc.in b/lapack.pc.in
index 878efc2e..711012df 100644
--- a/lapack.pc.in
+++ b/lapack.pc.in
@@ -6,4 +6,4 @@ Description: FORTRAN reference implementation of LAPACK Linear Algebra PACKage
Version: @LAPACK_VERSION@
URL: http://www.netlib.org/lapack/
Libs: -L${libdir} -llapack
-Requires: blas
+Requires.private: blas
diff --git a/make.inc.example b/make.inc.example
index 7f66018e..77de24a8 100644
--- a/make.inc.example
+++ b/make.inc.example
@@ -3,73 +3,77 @@
# LAPACK, Version 3.7.0 #
# December 2016 #
####################################################################
-#
+
SHELL = /bin/sh
+
+# CC is the C compiler, normally invoked with options CFLAGS.
#
-# Modify the FORTRAN and OPTS definitions to refer to the
-# compiler and desired compiler options for your machine. NOOPT
-# refers to the compiler options desired when NO OPTIMIZATION is
-# selected. Define LOADER and LOADOPTS to refer to the loader and
-# desired load options for your machine.
+CC = gcc
+CFLAGS = -O3
+
+# Modify the FORTRAN and OPTS definitions to refer to the compiler
+# and desired compiler options for your machine. NOOPT refers to
+# the compiler options desired when NO OPTIMIZATION is selected.
#
# Note: During a regular execution, LAPACK might create NaN and Inf
# and handle these quantities appropriately. As a consequence, one
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
#
-FORTRAN = gfortran
-OPTS = -O2 -frecursive
-DRVOPTS = $(OPTS)
-NOOPT = -O0 -frecursive
+FORTRAN = gfortran
+OPTS = -O2 -frecursive
+DRVOPTS = $(OPTS)
+NOOPT = -O0 -frecursive
+
+# Define LOADER and LOADOPTS to refer to the loader and desired
+# load options for your machine.
+#
LOADER = gfortran
LOADOPTS =
-#
-# Comment out the following line to include deprecated routines to the
-# LAPACK library.
+
+# The archiver and the flag(s) to use when building an archive
+# (library). If your system has no ranlib, set RANLIB = echo.
+#
+ARCH = ar
+ARCHFLAGS = cr
+RANLIB = ranlib
+
+# Timer for the SECOND and DSECND routines
+#
+# Default: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME
+#TIMER = EXT_ETIME
+# For RS6K: SECOND and DSECND will use a call to the
+# EXTERNAL FUNCTION ETIME_
+#TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION ETIME
+TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran
+# Compiler, etc...) SECOND and DSECND will use a call to the
+# INTERNAL FUNCTION CPU_TIME
+#TIMER = INT_CPU_TIME
+# If none of these work, you can use the NONE value.
+# In that case, SECOND and DSECND will always return 0.
+#TIMER = NONE
+
+# Uncomment the following line to include deprecated routines in
+# the LAPACK library.
#
#BUILD_DEPRECATED = Yes
+
+# LAPACKE has the interface to some routines from tmglib.
+# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE.
#
-# Timer for the SECOND and DSECND routines
-#
-# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
-# TIMER = EXT_ETIME
-# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
-# TIMER = EXT_ETIME_
-# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
-TIMER = INT_ETIME
-# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
-# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
-# TIMER = INT_CPU_TIME
-# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
-# TIMER = NONE
-#
-# Configuration LAPACKE: Native C interface to LAPACK
-# To generate LAPACKE library: type 'make lapackelib'
-# Configuration file: turned off (default)
-# Complex types: C99 (default)
-# Name pattern: mixed case (default)
-# (64-bit) Data model: LP64 (default)
-#
-# CC is the C compiler, normally invoked with options CFLAGS.
-#
-CC = gcc
-CFLAGS = -O3
-#
-# The archiver and the flag(s) to use when building archive (library)
-# If you system has no ranlib, set RANLIB = echo.
-#
-ARCH = ar
-ARCHFLAGS= cr
-RANLIB = ranlib
-#
+#LAPACKE_WITH_TMG = Yes
+
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
-# relevant routines will be compiled and XBLAS will be linked only if
-# USEXBLAS is defined.
-#
-# USEXBLAS = Yes
-XBLASLIB =
-# XBLASLIB = -lxblas
+# relevant routines will be compiled and XBLAS will be linked only
+# if USEXBLAS is defined.
#
+#USEXBLAS = Yes
+#XBLASLIB = -lxblas
+
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)