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 \