summaryrefslogtreecommitdiff
path: root/libraries/blas/patches/target-cleanup.diff
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/blas/patches/target-cleanup.diff')
-rw-r--r--libraries/blas/patches/target-cleanup.diff776
1 files changed, 776 insertions, 0 deletions
diff --git a/libraries/blas/patches/target-cleanup.diff b/libraries/blas/patches/target-cleanup.diff
new file mode 100644
index 0000000000..8f15294374
--- /dev/null
+++ b/libraries/blas/patches/target-cleanup.diff
@@ -0,0 +1,776 @@
+diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
+--- a/BLAS/SRC/CMakeLists.txt
++++ b/BLAS/SRC/CMakeLists.txt
+@@ -113,29 +113,22 @@
+
+ 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(ALLOBJ)
++if(BUILD_SINGLE)
++ list(APPEND ALLOBJ ${SBLAS1} ${ALLBLAS} ${SBLAS2} ${SBLAS3})
+ endif()
+-if(BLAS_DOUBLE)
+- set(ALLOBJ ${DBLAS1} ${ALLBLAS}
+- ${DBLAS2} ${DBLAS3})
++if(BUILD_DOUBLE)
++ list(APPEND ALLOBJ ${DBLAS1} ${ALLBLAS} ${DBLAS2} ${DBLAS3})
+ endif()
+-if(BLAS_COMPLEX)
+- set(ALLOBJ ${BLASLIB} ${CBLAS1} ${CB1AUX}
+- ${ALLBLAS} ${CBLAS2})
++if(BUILD_COMPLEX)
++ list(APPEND ALLOBJ ${BLASLIB} ${CBLAS1} ${CB1AUX} ${ALLBLAS} ${CBLAS2} ${CBLAS3})
+ endif()
+-if(BLAS_COMPLEX16)
+- set(ALLOBJ ${BLASLIB} ${ZBLAS1} ${ZB1AUX}
+- ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
++if(BUILD_COMPLEX16)
++ list(APPEND ALLOBJ ${BLASLIB} ${ZBLAS1} ${ZB1AUX} ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
+ endif()
+-
+-
++list(REMOVE_DUPLICATES ALLOBJ)
++
+ add_library(blas ${ALLOBJ})
+ set_target_properties(
+ blas PROPERTIES
+diff --git a/CBLAS/CMakeLists.txt b/CBLAS/CMakeLists.txt
+--- a/CBLAS/CMakeLists.txt
++++ b/CBLAS/CMakeLists.txt
+@@ -65,9 +65,9 @@
+ list(GET ALL_TARGETS 0 _cblas_config_build_guard_target)
+ endif()
+
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMAKE/cblas-config-version.cmake.in
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-version.cmake.in
+ ${LAPACK_BINARY_DIR}/cblas-config-version.cmake @ONLY)
+-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMAKE/cblas-config-build.cmake.in
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/cblas-config-build.cmake.in
+ ${LAPACK_BINARY_DIR}/cblas-config.cmake @ONLY)
+
+
+diff --git a/CBLAS/src/CMakeLists.txt b/CBLAS/src/CMakeLists.txt
+--- a/CBLAS/src/CMakeLists.txt
++++ b/CBLAS/src/CMakeLists.txt
+@@ -28,34 +28,26 @@
+ cblas_ddot.c cblas_dsdot.c cblas_dnrm2.c cblas_dasum.c
+ cblas_idamax.c ddotsub.f dsdotsub.f dnrm2sub.f
+ dasumsub.f idamaxsub.f)
+-
+ #
+ # All object files for single complex precision
+ #
+ set (CLEV1 cblas_cswap.c cblas_cscal.c cblas_csscal.c cblas_ccopy.c
+ cblas_caxpy.c cblas_cdotu_sub.c cblas_cdotc_sub.c
+ cblas_icamax.c cdotcsub.f cdotusub.f icamaxsub.f)
+-
+ #
+ # All object files for double complex precision
+ #
+ set (ZLEV1 cblas_zswap.c cblas_zscal.c cblas_zdscal.c cblas_zcopy.c
+- cblas_zaxpy.c cblas_zdotu_sub.c cblas_zdotc_sub.c cblas_dznrm2.c
+- cblas_dzasum.c cblas_izamax.c zdotcsub.f zdotusub.f
+- dzasumsub.f dznrm2sub.f izamaxsub.f)
+-
+-
++ cblas_zaxpy.c cblas_zdotu_sub.c cblas_zdotc_sub.c
++ cblas_izamax.c zdotcsub.f zdotusub.f izamaxsub.f)
+ #
+ # Common files for single complex precision
+ #
+ set (SCLEV1 cblas_scasum.c scasumsub.f cblas_scnrm2.c scnrm2sub.f)
+-
+-
+ #
+-# All object files
++# Common files for double complex precision
+ #
+-set (ALEV1 ${slev1} ${dlev1} ${clev1} ${zlev1} ${sclev1})
+-
++set (DZLEV1 cblas_dzasum.c dzasumsub.f cblas_dznrm2.c dznrm2sub.f)
+
+ #
+ #
+@@ -72,8 +64,6 @@
+ cblas_sspr.c cblas_sspr2.c cblas_ssymv.c cblas_ssyr.c cblas_ssyr2.c
+ cblas_stbmv.c cblas_stbsv.c cblas_stpmv.c cblas_stpsv.c cblas_strmv.c
+ cblas_strsv.c)
+-
+-
+ #
+ # All object files for double real precision
+ #
+@@ -81,7 +71,6 @@
+ cblas_dspr.c cblas_dspr2.c cblas_dsymv.c cblas_dsyr.c cblas_dsyr2.c
+ cblas_dtbmv.c cblas_dtbsv.c cblas_dtpmv.c cblas_dtpsv.c cblas_dtrmv.c
+ cblas_dtrsv.c)
+-
+ #
+ # All object files for single complex precision
+ #
+@@ -89,7 +78,6 @@
+ cblas_ctrmv.c cblas_ctbmv.c cblas_ctpmv.c cblas_ctrsv.c cblas_ctbsv.c
+ cblas_ctpsv.c cblas_cgeru.c cblas_cgerc.c cblas_cher.c cblas_cher2.c
+ cblas_chpr.c cblas_chpr2.c)
+-
+ #
+ # All object files for double complex precision
+ #
+@@ -97,10 +85,6 @@
+ cblas_ztrmv.c cblas_ztbmv.c cblas_ztpmv.c cblas_ztrsv.c cblas_ztbsv.c
+ cblas_ztpsv.c cblas_zgeru.c cblas_zgerc.c cblas_zher.c cblas_zher2.c
+ cblas_zhpr.c cblas_zhpr2.c)
+-#
+-# All object files
+-#
+-set (AVEL2 ${slev2} ${dlev2} ${clev2} ${zlev2})
+
+ #
+ #
+@@ -132,36 +116,21 @@
+ 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)
+-#
+-# All object files
+-#
+-set (ALEV3 ${slev3} ${dlev3} ${clev3} ${zlev3})
+-
+-# default build all of it
+-set(ALLOBJ ${SCLEV1} ${SLEV1} ${SLEV2} ${SLEV3} ${ERRHAND}
+- ${DLEV1} ${DLEV2} ${DLEV3}
+- ${CLEV1} ${CLEV2} ${CLEV3}
+- ${ZLEV1} ${ZLEV2} ${ZLEV3} )
+-
+-# Single real precision
+-if(CBLAS_SINGLE)
+- set(ALLOBJ ${SCLEV1} ${SLEV1} ${SLEV2} ${SLEV3} ${ERRHAND})
+-endif(CBLAS_SINGLE)
+-
+-# Double real precision
+-if(CBLAS_DOUBLE)
+- set(ALLOBJ ${DLEV1} ${DLEV2} ${DLEV3} ${ERRHAND})
+-endif(CBLAS_DOUBLE)
+-
+-# Single complex precision
+-if (CBLAS_COMPLEX)
+- set(ALLOBJ ${CLEV1} ${SCLEV1} ${CLEV2} ${CLEV3} ${ERRHAND})
+-endif(CBLAS_COMPLEX)
+
+-# Double complex precision
+-if (CBLAS_COMPLEX16)
+- set(ALLOBJ ${ZLEV1} ${ZLEV2} ${ZLEV3} ${ERRHAND})
+-endif(CBLAS_COMPLEX16)
++set(ALLOBJ)
++if(BUILD_SINGLE)
++ list(APPEND ALLOBJ ${SLEV1} ${SCLEV1} ${ERRHAND} ${SLEV2} ${SLEV3})
++endif()
++if(BUILD_DOUBLE)
++ list(APPEND ALLOBJ ${DLEV1} ${DZLEV1} ${ERRHAND} ${DLEV2} ${DLEV3})
++endif()
++if(BUILD_COMPLEX)
++ list(APPEND ALLOBJ ${CLEV1} ${SCLEV1} ${ERRHAND} ${CLEV2} ${CLEV3})
++endif()
++if(BUILD_COMPLEX16)
++ list(APPEND ALLOBJ ${ZLEV1} ${DZLEV1} ${ERRHAND} ${ZLEV2} ${ZLEV3})
++endif()
++list(REMOVE_DUPLICATES ALLOBJ)
+
+ add_library(cblas ${ALLOBJ})
+ target_link_libraries(cblas PRIVATE ${BLAS_LIBRARIES})
+diff --git a/CBLAS/src/Makefile b/CBLAS/src/Makefile
+--- a/CBLAS/src/Makefile
++++ b/CBLAS/src/Makefile
+@@ -52,9 +52,8 @@
+ # All object files for double complex precision
+ #
+ zlev1 = cblas_zswap.o cblas_zscal.o cblas_zdscal.o cblas_zcopy.o \
+- cblas_zaxpy.o cblas_zdotu_sub.o cblas_zdotc_sub.o cblas_dznrm2.o \
+- cblas_dzasum.o cblas_izamax.o zdotcsub.o zdotusub.o \
+- dzasumsub.o dznrm2sub.o izamaxsub.o
++ cblas_zaxpy.o cblas_zdotu_sub.o cblas_zdotc_sub.o \
++ cblas_izamax.o zdotcsub.o zdotusub.o izamaxsub.o
+
+ #
+ # Common files for single / complex precision
+@@ -62,9 +61,14 @@
+ sclev1 = cblas_scasum.o scasumsub.o cblas_scnrm2.o scnrm2sub.o
+
+ #
++# Common files for double / complex precision
++#
++dzlev1 = cblas_dzasum.o dzasumsub.o cblas_dznrm2.o dznrm2sub.o
++
++#
+ # All object files
+ #
+-alev1 = $(slev1) $(dlev1) $(clev1) $(zlev1) $(sclev1)
++alev1 = $(slev1) $(dlev1) $(clev1) $(zlev1) $(sclev1) $(dzlev1)
+
+
+ #
+@@ -77,8 +81,8 @@
+ $(RANLIB) $(CBLASLIB)
+
+ # Double real precision
+-dlib1: $(dlev1)
+- $(ARCH) $(ARCHFLAGS) $(CBLASLIB) $(dlev1)
++dlib1: $(dlev1) $(dzlev1)
++ $(ARCH) $(ARCHFLAGS) $(CBLASLIB) $(dlev1) $(dzlev1)
+ $(RANLIB) $(CBLASLIB)
+
+ # Single complex precision
+@@ -87,8 +91,8 @@
+ $(RANLIB) $(CBLASLIB)
+
+ # Double complex precision
+-zlib1: $(zlev1)
+- $(ARCH) $(ARCHFLAGS) $(CBLASLIB) $(zlev1)
++zlib1: $(zlev1) $(dzlev1)
++ $(ARCH) $(ARCHFLAGS) $(CBLASLIB) $(zlev1) $(dzlev1)
+ $(RANLIB) $(CBLASLIB)
+
+ # All precisions
+diff --git a/CBLAS/testing/CMakeLists.txt b/CBLAS/testing/CMakeLists.txt
+--- a/CBLAS/testing/CMakeLists.txt
++++ b/CBLAS/testing/CMakeLists.txt
+@@ -28,8 +28,6 @@
+
+ # Object files for single real precision
+ SET( STESTL1O c_sblas1.c)
+-
+-SET( STESTL2O c_sblas2.c c_s2chke.c auxiliary.c c_xerbla.c)
+ SET( STESTL2O c_sblas2.c c_s2chke.c auxiliary.c c_xerbla.c)
+ SET( STESTL3O c_sblas3.c c_s3chke.c auxiliary.c c_xerbla.c)
+
+@@ -62,11 +60,9 @@
+ add_cblas_test(stest1.out "" xscblat1)
+ add_cblas_test(stest2.out sin2 xscblat2)
+ add_cblas_test(stest3.out sin3 xscblat3)
+-
+ endif()
+
+ if(BUILD_DOUBLE)
+-
+ add_executable(xdcblat1 c_dblat1.f ${DTESTL1O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
+ 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)
+@@ -78,11 +74,9 @@
+ add_cblas_test(dtest1.out "" xdcblat1)
+ add_cblas_test(dtest2.out din2 xdcblat2)
+ add_cblas_test(dtest3.out din3 xdcblat3)
+-
+ endif()
+
+ if(BUILD_COMPLEX)
+-
+ add_executable(xccblat1 c_cblat1.f ${CTESTL1O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
+ add_executable(xccblat2 c_cblat2.f ${CTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
+ add_executable(xccblat3 c_cblat3.f ${CTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
+@@ -94,11 +88,9 @@
+ add_cblas_test(ctest1.out "" xccblat1)
+ add_cblas_test(ctest2.out cin2 xccblat2)
+ add_cblas_test(ctest3.out cin3 xccblat3)
+-
+ endif()
+
+ if(BUILD_COMPLEX16)
+-
+ add_executable(xzcblat1 c_zblat1.f ${ZTESTL1O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
+ 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)
+@@ -110,5 +102,4 @@
+ add_cblas_test(ztest1.out "" xzcblat1)
+ add_cblas_test(ztest2.out zin2 xzcblat2)
+ add_cblas_test(ztest3.out zin3 xzcblat3)
+-
+ endif()
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -122,7 +122,33 @@
+ # --------------------------------------------------
+ # Precision to build
+ # By default all precisions are generated
++option(BUILD_SINGLE "Build Single Precision" ON)
++option(BUILD_DOUBLE "Build Double Precision" ON)
++option(BUILD_COMPLEX "Build Complex Precision" ON)
++option(BUILD_COMPLEX16 "Build Double Complex Precision" ON)
++
++set(PRECISIONS)
++if(BUILD_SINGLE)
++ message(STATUS "Building Single Precision")
++ list(APPEND PRECISIONS "single")
++endif()
++if(BUILD_DOUBLE)
++ message(STATUS "Building Double Precision")
++ list(APPEND PRECISIONS "double")
++endif()
++if(BUILD_COMPLEX)
++ message(STATUS "Building Complex Precision")
++ list(APPEND PRECISIONS "complex")
++endif()
++if(BUILD_COMPLEX16)
++ message(STATUS "Building Double Complex Precision")
++ list(APPEND PRECISIONS "complex16")
++endif()
+
++if(NOT PRECISIONS)
++ 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
+@@ -214,10 +240,6 @@
+ if(NOT LATESTLAPACK_FOUND)
+ message(STATUS "Using supplied NETLIB LAPACK implementation")
+ set( LAPACK_LIBRARIES lapack )
+- 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)
+ add_subdirectory(SRC)
+ else()
+ set( CMAKE_EXE_LINKER_FLAGS
+diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
+--- a/SRC/CMakeLists.txt
++++ b/SRC/CMakeLists.txt
+@@ -1,22 +1,28 @@
+ #######################################################################
+ # This is the makefile to create a library for LAPACK.
+ # The files are organized as follows:
+-# ALLAUX -- Auxiliary routines called from all precisions
+-# ALLXAUX -- Auxiliary routines called from all precisions but
+-# only from routines using extra precision.
+-# SCLAUX -- Auxiliary routines called from both REAL and COMPLEX
+-# DZLAUX -- Auxiliary routines called from both DOUBLE PRECISION
+-# and COMPLEX*16
+-# SLASRC -- Single precision real LAPACK routines
++# 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.
++#
++# DSLASRC -- Double-single mixed precision real routines called from
++# single, single-extra and double precision real LAPACK
++# routines (i.e. from SLASRC, SXLASRC, DLASRC).
++# ZCLASRC -- Double-single mixed precision complex routines called from
++# single, single-extra and double precision complex LAPACK
++# routines (i.e. from CLASRC, CXLASRC, ZLASRC).
++#
++# SLASRC -- Single precision real LAPACK routines
+ # SXLASRC -- Single precision real LAPACK routines using extra
+ # precision.
+-# CLASRC -- Single precision complex LAPACK routines
++# CLASRC -- Single precision complex LAPACK routines
+ # CXLASRC -- Single precision complex LAPACK routines using extra
+ # precision.
+-# DLASRC -- Double precision real LAPACK routines
++# DLASRC -- Double precision real LAPACK routines
+ # DXLASRC -- Double precision real LAPACK routines using extra
+ # precision.
+-# ZLASRC -- Double precision complex LAPACK routines
++# ZLASRC -- Double precision complex LAPACK routines
+ # ZXLASRC -- Double precision complex LAPACK routines using extra
+ # precision.
+ #
+@@ -51,8 +57,6 @@
+ ../INSTALL/ilaver.f ../INSTALL/lsame.f xerbla.f xerbla_array.f
+ ../INSTALL/slamch.f)
+
+-set(ALLXAUX )
+-
+ set(SCLAUX
+ sbdsdc.f
+ sbdsqr.f sdisna.f slabad.f slacpy.f sladiv.f slae2.f slaebz.f
+@@ -97,8 +101,8 @@
+ sgels.f sgelsd.f sgelss.f sgelsy.f sgeql2.f sgeqlf.f
+ sgeqp3.f sgeqr2.f sgeqr2p.f sgeqrf.f sgeqrfp.f sgerfs.f sgerq2.f sgerqf.f
+ sgesc2.f sgesdd.f sgesv.f sgesvd.f sgesvdx.f sgesvx.f sgetc2.f sgetf2.f
+- sgetrf.f sgetrf2.f sgetri.f
+- sgetrs.f sggbak.f sggbal.f
++ sgetrf2.f sgetri.f
++ sggbak.f sggbal.f
+ sgges.f sgges3.f sggesx.f sggev.f sggev3.f sggevx.f
+ sggglm.f sgghrd.f sgghd3.f sgglse.f sggqrf.f
+ sggrqf.f sggsvd3.f sggsvp3.f sgtcon.f sgtrfs.f sgtsv.f
+@@ -123,7 +127,7 @@
+ sormr3.f sormrq.f sormrz.f sormtr.f spbcon.f spbequ.f spbrfs.f
+ spbstf.f spbsv.f spbsvx.f
+ spbtf2.f spbtrf.f spbtrs.f spocon.f spoequ.f sporfs.f sposv.f
+- sposvx.f spotf2.f spotrf.f spotrf2.f spotri.f spotrs.f spstrf.f spstf2.f
++ sposvx.f spotf2.f spotrf2.f spotri.f spstrf.f spstf2.f
+ sppcon.f sppequ.f
+ spprfs.f sppsv.f sppsvx.f spptrf.f spptri.f spptrs.f sptcon.f
+ spteqr.f sptrfs.f sptsv.f sptsvx.f spttrs.f sptts2.f srscl.f
+@@ -172,8 +176,8 @@
+ cgeqr2.f cgeqr2p.f cgeqrf.f cgeqrfp.f cgerfs.f cgerq2.f cgerqf.f
+ cgesc2.f cgesdd.f cgesv.f cgesvd.f cgesvdx.f
+ cgesvj.f cgejsv.f cgsvj0.f cgsvj1.f
+- cgesvx.f cgetc2.f cgetf2.f cgetrf.f cgetrf2.f
+- cgetri.f cgetrs.f
++ cgesvx.f cgetc2.f cgetf2.f cgetrf2.f
++ cgetri.f
+ cggbak.f cggbal.f
+ cgges.f cgges3.f cggesx.f cggev.f cggev3.f cggevx.f
+ cggglm.f cgghrd.f cgghd3.f cgglse.f cggqrf.f cggrqf.f
+@@ -207,7 +211,7 @@
+ claswp.f clasyf.f clasyf_rook.f clatbs.f clatdf.f clatps.f clatrd.f clatrs.f clatrz.f
+ clauu2.f clauum.f cpbcon.f cpbequ.f cpbrfs.f cpbstf.f cpbsv.f
+ cpbsvx.f cpbtf2.f cpbtrf.f cpbtrs.f cpocon.f cpoequ.f cporfs.f
+- cposv.f cposvx.f cpotf2.f cpotrf.f cpotrf2.f cpotri.f cpotrs.f cpstrf.f cpstf2.f
++ cposv.f cposvx.f cpotf2.f cpotrf2.f cpotri.f cpstrf.f cpstf2.f
+ cppcon.f cppequ.f cpprfs.f cppsv.f cppsvx.f cpptrf.f cpptri.f cpptrs.f
+ cptcon.f cpteqr.f cptrfs.f cptsv.f cptsvx.f cpttrf.f cpttrs.f cptts2.f
+ crot.f cspcon.f cspmv.f cspr.f csprfs.f cspsv.f
+@@ -409,52 +413,45 @@
+ 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} ${ALLXAUX})
++if(USE_XBLAS)
++ list(APPEND SLASRC ${SXLASRC})
++ list(APPEND DLASRC ${DXLASRC})
++ list(APPEND CLASRC ${CXLASRC})
++ list(APPEND ZLASRC ${ZXLASRC})
+ endif()
+
+ if(BUILD_DEPRECATED)
+- LIST(APPEND SLASRC DEPRECATED/sgegs.f DEPRECATED/sgegv.f
++ LIST(APPEND SLASRC DEPRECATED/sgegs.f DEPRECATED/sgegv.f
+ DEPRECATED/sgeqpf.f DEPRECATED/sgelsx.f DEPRECATED/sggsvd.f
+ DEPRECATED/sggsvp.f DEPRECATED/slahrd.f DEPRECATED/slatzm.f DEPRECATED/stzrqf.f)
+- LIST(APPEND DLASRC DEPRECATED/dgegs.f DEPRECATED/dgegv.f
++ LIST(APPEND DLASRC DEPRECATED/dgegs.f DEPRECATED/dgegv.f
+ DEPRECATED/dgeqpf.f DEPRECATED/dgelsx.f DEPRECATED/dggsvd.f
+- DEPRECATED/dggsvp.f DEPRECATED/dlahrd.f DEPRECATED/dlatzm.f DEPRECATED/dtzrqf.f )
++ DEPRECATED/dggsvp.f DEPRECATED/dlahrd.f DEPRECATED/dlatzm.f DEPRECATED/dtzrqf.f)
+ LIST(APPEND CLASRC DEPRECATED/cgegs.f DEPRECATED/cgegv.f
+ DEPRECATED/cgeqpf.f DEPRECATED/cgelsx.f DEPRECATED/cggsvd.f
+ DEPRECATED/cggsvp.f DEPRECATED/clahrd.f DEPRECATED/clatzm.f DEPRECATED/ctzrqf.f)
+ 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")
++ message(STATUS "Building LAPACK deprecated routines")
+ endif()
+
++set(ALLOBJ)
+ if(BUILD_SINGLE)
+-set(ALLOBJ ${SLASRC} ${ALLAUX} ${SCLAUX} )
+-message(STATUS "Building Single Precision")
++ list(APPEND ALLOBJ ${SLASRC} ${ALLAUX} ${SCLAUX} ${DSLASRC})
+ endif()
+ if(BUILD_DOUBLE)
+- set(ALLOBJ ${ALLOBJ} ${DLASRC} ${ALLAUX} ${DZLAUX} ${DSLASRC})
+-message(STATUS "Building Double Precision")
++ list(APPEND ALLOBJ ${DLASRC} ${ALLAUX} ${DZLAUX} ${DSLASRC})
+ endif()
+ if(BUILD_COMPLEX)
+- set(ALLOBJ ${ALLOBJ} ${CLASRC} ${ALLAUX} ${SCLAUX} )
+-message(STATUS "Building Complex Precision")
++ list(APPEND ALLOBJ ${CLASRC} ${ALLAUX} ${SCLAUX} ${ZCLASRC})
+ endif()
+ if(BUILD_COMPLEX16)
+- set(ALLOBJ ${ALLOBJ} ${ZLASRC} ${ALLAUX} ${DZLAUX} ${ZCLASRC})
+-message(STATUS "Building Double Complex Precision")
+-endif()
+-
+-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.")
++ list(APPEND ALLOBJ ${ZLASRC} ${ALLAUX} ${DZLAUX} ${ZCLASRC})
+ endif()
+-
+ list(REMOVE_DUPLICATES ALLOBJ)
+
+-add_library(lapack ${ALLOBJ} ${ALLXOBJ})
++add_library(lapack ${ALLOBJ})
+ target_link_libraries(lapack PRIVATE ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
+ set_target_properties(
+ lapack PROPERTIES
+diff --git a/TESTING/CMakeLists.txt b/TESTING/CMakeLists.txt
+--- a/TESTING/CMakeLists.txt
++++ b/TESTING/CMakeLists.txt
+@@ -289,7 +289,7 @@
+ endif()
+
+
+-if (BUILD_SIMPLE)
++if (BUILD_SINGLE)
+ if (BUILD_DOUBLE)
+ #
+ # ======== SINGLE-DOUBLE PROTO LIN TESTS ==============
+diff --git a/TESTING/LIN/CMakeLists.txt b/TESTING/LIN/CMakeLists.txt
+--- a/TESTING/LIN/CMakeLists.txt
++++ b/TESTING/LIN/CMakeLists.txt
+@@ -13,10 +13,10 @@
+ schksp.f schksy.f schksy_rook.f schktb.f schktp.f schktr.f
+ schktz.f
+ sdrvgt.f sdrvls.f sdrvpb.f
+- sdrvpp.f sdrvpt.f sdrvsp.f sdrvsy.f sdrvsy_rook.f
++ sdrvpp.f sdrvpt.f sdrvsp.f sdrvsy_rook.f
+ serrgt.f serrlq.f serrls.f
+- serrpo.f serrps.f serrql.f serrqp.f serrqr.f
+- serrrq.f serrsy.f serrtr.f serrtz.f serrvx.f
++ serrps.f serrql.f serrqp.f serrqr.f
++ serrrq.f serrtr.f serrtz.f
+ sgbt01.f sgbt02.f sgbt05.f sgelqs.f sgeqls.f sgeqrs.f
+ sgerqs.f sget01.f sget02.f
+ sget03.f sget04.f sget06.f sget07.f sgtt01.f sgtt02.f
+@@ -37,9 +37,11 @@
+ sqrt04.f sqrt05.f schkqrt.f serrqrt.f schkqrtp.f serrqrtp.f)
+
+ if(USEXBLAS)
+- list(APPEND SLINTST sdrvgex.f serrgex.f sdrvgbx.f sdrvpox.f sebchvxx.f)
++ list(APPEND SLINTST serrvxx.f sdrvgex.f sdrvsyx.f serrgex.f sdrvgbx.f sdrvpox.f
++ sebchvxx.f serrsyx.f serrpox.f)
+ else()
+- list(APPEND SLINTST sdrvge.f serrge.f sdrvgb.f sdrvpo.f)
++ list(APPEND SLINTST serrvx.f sdrvge.f sdrvsy.f serrge.f sdrvgb.f sdrvpo.f
++ serrsy.f serrpo.f)
+ endif()
+
+ set(CLINTST cchkaa.f
+@@ -48,13 +50,12 @@
+ cchkpo.f cchkps.f cchkpp.f cchkpt.f cchkq3.f cchkql.f
+ cchkqr.f cchkrq.f cchksp.f cchksy.f cchksy_rook.f cchktb.f
+ cchktp.f cchktr.f cchktz.f
+- cdrvgt.f cdrvhe.f cdrvhe_rook.f cdrvhp.f
++ cdrvgt.f cdrvhe_rook.f cdrvhp.f
+ cdrvls.f cdrvpb.f cdrvpp.f cdrvpt.f
+- cdrvsp.f cdrvsy.f cdrvsy_rook.f
+- cerrgt.f cerrhe.f cerrlq.f
++ cdrvsp.f cdrvsy_rook.f
++ cerrgt.f cerrlq.f
+ cerrls.f cerrps.f cerrql.f cerrqp.f
+- cerrqr.f cerrrq.f cerrsy.f cerrtr.f cerrtz.f
+- cerrvx.f
++ cerrqr.f cerrrq.f cerrtr.f cerrtz.f
+ cgbt01.f cgbt02.f cgbt05.f cgelqs.f cgeqls.f cgeqrs.f
+ cgerqs.f cget01.f cget02.f
+ cget03.f cget04.f cget07.f cgtt01.f cgtt02.f
+@@ -77,10 +78,11 @@
+ cqrt04.f cqrt05.f cchkqrt.f cerrqrt.f cchkqrtp.f cerrqrtp.f )
+
+ if(USEXBLAS)
+- list(APPEND
+- CLINTST cdrvgex.f cdrvgbx.f cerrgex.f cdrvpox.f cerrpox.f cebchvxx.f)
++ list(APPEND CLINTST cerrvxx.f cdrvgex.f cdrvsyx.f cdrvgbx.f cerrgex.f cdrvpox.f
++ cdrvhex.f cerrpox.f cebchvxx.f cerrsyx.f cerrhex.f)
+ else()
+- list(APPEND CLINTST cdrvge.f cdrvgb.f cerrge.f cdrvpo.f cerrpo.f)
++ list(APPEND CLINTST cerrvx.f cdrvge.f cdrvsy.f cdrvgb.f cerrge.f cdrvpo.f
++ cdrvhe.f cerrpo.f cerrsy.f cerrhe.f)
+ endif()
+
+ set(DLINTST dchkaa.f
+@@ -90,10 +92,10 @@
+ dchksp.f dchksy.f dchksy_rook.f dchktb.f dchktp.f dchktr.f
+ dchktz.f
+ ddrvgt.f ddrvls.f ddrvpb.f
+- ddrvpp.f ddrvpt.f ddrvsp.f ddrvsy.f ddrvsy_rook.f
++ ddrvpp.f ddrvpt.f ddrvsp.f ddrvsy_rook.f
+ derrgt.f derrlq.f derrls.f
+ derrps.f derrql.f derrqp.f derrqr.f
+- derrrq.f derrsy.f derrtr.f derrtz.f derrvx.f
++ derrrq.f derrtr.f derrtz.f
+ dgbt01.f dgbt02.f dgbt05.f dgelqs.f dgeqls.f dgeqrs.f
+ dgerqs.f dget01.f dget02.f
+ dget03.f dget04.f dget06.f dget07.f dgtt01.f dgtt02.f
+@@ -114,11 +116,11 @@
+ dqrt04.f dqrt05.f dchkqrt.f derrqrt.f dchkqrtp.f derrqrtp.f )
+
+ if(USEXBLAS)
+- list(APPEND
+- DLINTST ddrvgex.f ddrvgbx.f derrgex.f ddrvpox.f derrpox.f debchvxx.f)
++ list(APPEND DLINTST derrvxx.f ddrvgex.f ddrvsyx.f ddrvgbx.f derrgex.f ddrvpox.f derrpox.f
++ debchvxx.f derrsyx.f)
+ else()
+- list(APPEND
+- DLINTST ddrvge.f ddrvgb.f derrge.f ddrvpo.f derrpo.f)
++ list(APPEND DLINTST derrvx.f ddrvge.f ddrvsy.f ddrvgb.f derrge.f ddrvpo.f derrpo.f
++ derrsy.f)
+ endif()
+
+ set(ZLINTST zchkaa.f
+@@ -127,17 +129,16 @@
+ zchkpo.f zchkps.f zchkpp.f zchkpt.f zchkq3.f zchkql.f
+ zchkqr.f zchkrq.f zchksp.f zchksy.f zchksy_rook.f zchktb.f
+ zchktp.f zchktr.f zchktz.f
+- zdrvgt.f zdrvhe.f zdrvhe_rook.f zdrvhp.f
++ zdrvgt.f zdrvhe_rook.f zdrvhp.f
+ zdrvls.f zdrvpb.f zdrvpp.f zdrvpt.f
+- zdrvsp.f zdrvsy.f zdrvsy_rook.f
+- zerrgt.f zerrhe.f zerrlq.f
++ zdrvsp.f zdrvsy_rook.f
++ zerrgt.f zerrlq.f
+ zerrls.f zerrps.f zerrql.f zerrqp.f
+- zerrqr.f zerrrq.f zerrsy.f zerrtr.f zerrtz.f
+- zerrvx.f
++ zerrqr.f zerrrq.f zerrtr.f zerrtz.f
+ zgbt01.f zgbt02.f zgbt05.f zgelqs.f zgeqls.f zgeqrs.f
+ zgerqs.f zget01.f zget02.f
+ zget03.f zget04.f zget07.f zgtt01.f zgtt02.f
+- zgtt05.f zhet01.f zhet01.f zhet01_rook.f zhpt01.f zlaipd.f zlaptm.f zlarhs.f zlatb4.f zlatb5.f
++ zgtt05.f zhet01.f zhet01_rook.f zhpt01.f zlaipd.f zlaptm.f zlarhs.f zlatb4.f zlatb5.f
+ zlatsp.f zlatsy.f zlattb.f zlattp.f zlattr.f
+ zlavhe.f zlavhe_rook.f zlavhp.f zlavsp.f zlavsy.f zlavsy_rook.f zlqt01.f
+ zlqt02.f zlqt03.f zpbt01.f zpbt02.f zpbt05.f
+@@ -156,11 +157,11 @@
+ zqrt04.f zqrt05.f zchkqrt.f zerrqrt.f zchkqrtp.f zerrqrtp.f )
+
+ if(USEXBLAS)
+- list(APPEND
+- ZLINTST zdrvgex.f zdrvgbx.f zerrgex.f zdrvpox.f zerrpox.f zebchvxx.f)
++ list(APPEND ZLINTST zerrvxx.f zdrvgex.f zdrvsyx.f zdrvgbx.f zerrgex.f zdrvpox.f zdrvhex.f
++ zerrpox.f zebchvxx.f zerrsyx.f zerrhex.f)
+ else()
+- list(APPEND
+- ZLINTST zdrvge.f zdrvgb.f zerrge.f zdrvpo.f zerrpo.f)
++ list(APPEND ZLINTST zerrvx.f zdrvge.f zdrvsy.f zdrvgb.f zerrge.f zdrvpo.f zdrvhe.f
++ zerrpo.f zerrsy.f zerrhe.f)
+ endif()
+
+ set(DSLINTST dchkab.f
+@@ -197,29 +198,29 @@
+ endmacro(add_lin_executable)
+
+ IF(BUILD_SINGLE)
+-add_lin_executable(xlintsts ${ALINTST} ${SCLNTST} ${SLINTST} ${SECOND_SRC} )
++add_lin_executable(xlintsts ${ALINTST} ${SLINTST} ${SCLNTST} ${SECOND_SRC})
+ add_lin_executable(xlintstrfs ${SLINTSTRFP} ${SECOND_SRC})
+ endif()
+
+ if(BUILD_DOUBLE)
+-add_lin_executable(xlintstd ${ALINTST} ${DLINTST} ${DZLNTST} ${DSECOND_SRC})
++add_lin_executable(xlintstd ${ALINTST} ${DLINTST} ${DZLNTST} ${DSECOND_SRC})
+ add_lin_executable(xlintstrfd ${DLINTSTRFP} ${DSECOND_SRC})
+ endif()
+
+ IF(BUILD_SINGLE AND BUILD_DOUBLE)
+-add_lin_executable(xlintstds ${DSLINTST} ${SECOND_SRC} ${DSECOND_SRC} )
++add_lin_executable(xlintstds ${DSLINTST} ${SECOND_SRC} ${DSECOND_SRC})
+ 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} ${SECOND_SRC})
++add_lin_executable(xlintstrfc ${CLINTSTRFP} ${SECOND_SRC})
+ endif()
+
+ if(BUILD_COMPLEX16)
+-add_lin_executable(xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST} ${DSECOND_SRC})
++add_lin_executable(xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST} ${DSECOND_SRC})
+ add_lin_executable(xlintstrfz ${ZLINTSTRFP} ${DSECOND_SRC})
+ endif()
+
+ IF(BUILD_COMPLEX AND BUILD_COMPLEX16)
+-add_lin_executable(xlintstzc ${ZCLINTST} ${SECOND_SRC} ${DSECOND_SRC} )
++add_lin_executable(xlintstzc ${ZCLINTST} ${SECOND_SRC} ${DSECOND_SRC})
+ endif()
+diff --git a/TESTING/MATGEN/CMakeLists.txt b/TESTING/MATGEN/CMakeLists.txt
+--- a/TESTING/MATGEN/CMakeLists.txt
++++ b/TESTING/MATGEN/CMakeLists.txt
+@@ -31,45 +31,41 @@
+ #
+ #######################################################################
+
+-set(SCATGEN slatm1.f slaran.f slarnd.f)
++set(SCATGEN slatm1.f slatm7.f slaran.f slarnd.f)
+
+ set(SMATGEN slatms.f slatme.f slatmr.f slatmt.f
+ slagge.f slagsy.f slakf2.f slarge.f slaror.f slarot.f slatm2.f
+- slatm3.f slatm5.f slatm6.f slatm7.f slahilb.f)
++ slatm3.f slatm5.f slatm6.f slahilb.f)
+
+ set(CMATGEN clatms.f clatme.f clatmr.f clatmt.f
+ clagge.f claghe.f clagsy.f clakf2.f clarge.f claror.f clarot.f
+- clatm1.f clarnd.f clatm2.f clatm3.f clatm5.f clatm6.f clahilb.f slatm7.f)
++ clatm1.f clarnd.f clatm2.f clatm3.f clatm5.f clatm6.f clahilb.f)
+
+-set(DZATGEN dlatm1.f dlaran.f dlarnd.f)
++set(DZATGEN dlatm1.f dlatm7.f dlaran.f dlarnd.f)
+
+ set(DMATGEN dlatms.f dlatme.f dlatmr.f dlatmt.f
+ dlagge.f dlagsy.f dlakf2.f dlarge.f dlaror.f dlarot.f dlatm2.f
+- dlatm3.f dlatm5.f dlatm6.f dlatm7.f dlahilb.f)
++ dlatm3.f dlatm5.f dlatm6.f dlahilb.f)
+
+ 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 dlatm7.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(ALLOBJ)
+ if(BUILD_SINGLE)
+- set(ALLOBJ ${SMATGEN} ${SCATGEN})
++ list(APPEND ALLOBJ ${SMATGEN} ${SCATGEN})
+ endif()
+ if(BUILD_DOUBLE)
+- set(ALLOBJ ${ALLOBJ} ${DMATGEN} ${DZATGEN})
++ list(APPEND ALLOBJ ${DMATGEN} ${DZATGEN})
+ endif()
+ if(BUILD_COMPLEX)
+- set(ALLOBJ ${ALLOBJ} ${CMATGEN} ${SCATGEN})
++ list(APPEND ALLOBJ ${CMATGEN} ${SCATGEN})
+ endif()
+ if(BUILD_COMPLEX16)
+- set(ALLOBJ ${ALLOBJ} ${ZMATGEN} ${DZATGEN})
++ LIST(APPEND ALLOBJ ${ZMATGEN} ${DZATGEN})
+ endif()
++list(REMOVE_DUPLICATES ALLOBJ)
+
+-if (NOT ALLOBJ)
+-set(ALLOBJ ${SMATGEN} ${CMATGEN} ${SCATGEN} ${DMATGEN} ${ZMATGEN}
+- ${DZATGEN})
+-else()
+- list(REMOVE_DUPLICATES ALLOBJ)
+-endif()
+-add_library(tmglib ${ALLOBJ} )
++add_library(tmglib ${ALLOBJ})
+ target_link_libraries(tmglib ${LAPACK_LIBRARIES})
+ lapack_install_library(tmglib)
+diff --git a/TESTING/MATGEN/Makefile b/TESTING/MATGEN/Makefile
+--- a/TESTING/MATGEN/Makefile
++++ b/TESTING/MATGEN/Makefile
+@@ -33,21 +33,21 @@
+ #
+ #######################################################################
+
+-SCATGEN = slatm1.o slaran.o slarnd.o
++SCATGEN = slatm1.o slatm7.o slaran.o slarnd.o
+
+ SMATGEN = slatms.o slatme.o slatmr.o slatmt.o \
+ slagge.o slagsy.o slakf2.o slarge.o slaror.o slarot.o slatm2.o \
+- slatm3.o slatm5.o slatm6.o slatm7.o slahilb.o
++ slatm3.o slatm5.o slatm6.o slahilb.o
+
+ CMATGEN = clatms.o clatme.o clatmr.o clatmt.o \
+ clagge.o claghe.o clagsy.o clakf2.o clarge.o claror.o clarot.o \
+ clatm1.o clarnd.o clatm2.o clatm3.o clatm5.o clatm6.o clahilb.o
+
+-DZATGEN = dlatm1.o dlaran.o dlarnd.o
++DZATGEN = dlatm1.o dlatm7.o dlaran.o dlarnd.o
+
+ DMATGEN = dlatms.o dlatme.o dlatmr.o dlatmt.o \
+ dlagge.o dlagsy.o dlakf2.o dlarge.o dlaror.o dlarot.o dlatm2.o \
+- dlatm3.o dlatm5.o dlatm6.o dlatm7.o dlahilb.o
++ dlatm3.o dlatm5.o dlatm6.o dlahilb.o
+
+ ZMATGEN = zlatms.o zlatme.o zlatmr.o zlatmt.o \
+ zlagge.o zlaghe.o zlagsy.o zlakf2.o zlarge.o zlaror.o zlarot.o \