Add CMAKE support to LAPACK
authorjulie <julielangou@users.noreply.github.com>
Tue, 11 Aug 2009 21:58:21 +0000 (21:58 +0000)
committerjulie <julielangou@users.noreply.github.com>
Tue, 11 Aug 2009 21:58:21 +0000 (21:58 +0000)
15 files changed:
BLAS/CMakeLists.txt [new file with mode: 0644]
BLAS/SRC/CMakeLists.txt [new file with mode: 0644]
BLAS/TESTING/CMakeLists.txt [new file with mode: 0644]
CMakeLists.txt [new file with mode: 0644]
CTestConfig.cmake [new file with mode: 0644]
CheckTimeFunction.cmake [new file with mode: 0644]
SRC/CMakeLists.txt [new file with mode: 0644]
TESTING/CMakeLists.txt [new file with mode: 0644]
TESTING/EIG/CMakeLists.txt [new file with mode: 0644]
TESTING/LIN/CMakeLists.txt [new file with mode: 0644]
TESTING/MATGEN/CMakeLists.txt [new file with mode: 0644]
TESTING/runtest.cmake [new file with mode: 0644]
cmake_install.cmake [new file with mode: 0644]
lapack-config-version.cmake.in [new file with mode: 0644]
lapack-config.cmake.in [new file with mode: 0644]

diff --git a/BLAS/CMakeLists.txt b/BLAS/CMakeLists.txt
new file mode 100644 (file)
index 0000000..05b8ff9
--- /dev/null
@@ -0,0 +1,2 @@
+add_subdirectory(SRC)
+add_subdirectory(TESTING)
\ No newline at end of file
diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
new file mode 100644 (file)
index 0000000..cb28fa4
--- /dev/null
@@ -0,0 +1,143 @@
+#######################################################################
+#  This is the makefile to create a library for the BLAS.
+#  The files are grouped as follows:
+#
+#       SBLAS1 -- Single precision real BLAS routines
+#       CBLAS1 -- Single precision complex BLAS routines
+#       DBLAS1 -- Double precision real BLAS routines
+#       ZBLAS1 -- Double precision complex BLAS routines
+#
+#       CB1AUX -- Real BLAS routines called by complex routines
+#       ZB1AUX -- D.P. real BLAS routines called by d.p. complex
+#                 routines
+#
+#      ALLBLAS -- Auxiliary routines for Level 2 and 3 BLAS
+#
+#       SBLAS2 -- Single precision real BLAS2 routines
+#       CBLAS2 -- Single precision complex BLAS2 routines
+#       DBLAS2 -- Double precision real BLAS2 routines
+#       ZBLAS2 -- Double precision complex BLAS2 routines
+#
+#       SBLAS3 -- Single precision real BLAS3 routines
+#       CBLAS3 -- Single precision complex BLAS3 routines
+#       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.
+#---------------------------------------------------------
+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)
+
+set(CBLAS1 scabs1.f scasum.f scnrm2.f icamax.f caxpy.f ccopy.f 
+       cdotc.f cdotu.f csscal.f crotg.f cscal.f cswap.f csrot.f)
+
+set(DBLAS1 idamax.f dasum.f daxpy.f dcopy.f ddot.f dnrm2.f 
+       drot.f drotg.f dscal.f dsdot.f dswap.f drotmg.f drotm.f)
+
+set(ZBLAS1 dcabs1.f dzasum.f dznrm2.f izamax.f zaxpy.f zcopy.f 
+       zdotc.f zdotu.f zdscal.f zrotg.f zscal.f zswap.f zdrot.f)
+
+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.
+#---------------------------------------------------------------------
+set(ALLBLAS  lsame.f ) #xerbla.f xerbla_array.f)
+
+#---------------------------------------------------------
+#  Comment out the next 4 definitions if you already have
+#  the 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 
+       sger.f ssyr.f sspr.f ssyr2.f sspr2.f)
+
+set(CBLAS2 cgemv.f cgbmv.f chemv.f chbmv.f chpmv.f 
+       ctrmv.f ctbmv.f ctpmv.f ctrsv.f ctbsv.f ctpsv.f 
+       cgerc.f cgeru.f cher.f chpr.f cher2.f chpr2.f)
+
+set(DBLAS2 dgemv.f dgbmv.f dsymv.f dsbmv.f dspmv.f 
+       dtrmv.f dtbmv.f dtpmv.f dtrsv.f dtbsv.f dtpsv.f 
+       dger.f dsyr.f dspr.f dsyr2.f dspr2.f)
+
+set(ZBLAS2 zgemv.f zgbmv.f zhemv.f zhbmv.f zhpmv.f 
+       ztrmv.f ztbmv.f ztpmv.f ztrsv.f ztbsv.f ztpsv.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.
+#---------------------------------------------------------
+set(SBLAS3 sgemm.f ssymm.f ssyrk.f ssyr2k.f strmm.f strsm.f )
+
+set(CBLAS3 cgemm.f csymm.f csyrk.f csyr2k.f ctrmm.f ctrsm.f 
+       chemm.f cherk.f cher2k.f)
+
+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})
+endif()
+if(BLAS_DOUBLE)
+  set(ALLOBJ ${DBLAS1} ${ALLBLAS} 
+       ${DBLAS2} ${DBLAS3})
+endif()
+if(BLAS_COMPLEX)
+  set(ALLOBJ  ${BLASLIB} ${CBLAS1} ${CB1AUX} 
+       ${ALLBLAS} ${CBLAS2})
+endif()
+if(BLAS_COMPLEX16)
+  set(ALLOBJ  ${BLASLIB} ${ZBLAS1} ${ZB1AUX} 
+       ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
+endif()
+  
+  
+add_library(blas ${ALLOBJ})
+if(UNIX)
+  target_link_libraries(blas m)
+endif()
+target_link_libraries(blas)
diff --git a/BLAS/TESTING/CMakeLists.txt b/BLAS/TESTING/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9e81501
--- /dev/null
@@ -0,0 +1,63 @@
+#######################################################################
+#  This makefile creates the test programs for the BLAS 1 routines.
+#  The test files are grouped as follows:
+#       SBLAT1 -- Single precision real test routines
+#       CBLAT1 -- Single precision complex test routines
+#       DBLAT1 -- Double precision real test routines
+#       ZBLAT1 -- Double precision complex test routines
+#
+#  Test programs can be generated for all or some of the four different
+#  precisions.  To create the test programs, 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 all four test programs.
+#  The executable files which are created are called
+#       ../xblat1s, ../xblat1d, ../xblat1c, and ../xblat1z
+#
+#  To remove the object files after the executable files have been
+#  created, enter
+#       make clean
+#  To force the source files to be recompiled, enter, for example,
+#       make single FRC=FRC
+#
+#######################################################################
+
+macro(add_blas_test name src)
+  get_filename_component(baseNAME ${src} NAME_WE)
+  set(TEST_INPUT "${LAPACK_SOURCE_DIR}/BLAS/${baseNAME}.in")
+  add_executable(${name} ${src})
+  get_target_property(TEST_LOC ${name} LOCATION)
+  target_link_libraries(${name} blas)
+  if(EXISTS "${TEST_INPUT}")
+    add_test(${name} "${CMAKE_COMMAND}"
+      -DTEST=${TEST_LOC}
+      -DINPUT=${TEST_INPUT}
+      -DINTDIR=${CMAKE_CFG_INTDIR}
+      -P "${LAPACK_SOURCE_DIR}/TESTING/runtest.cmake")
+    else()
+      add_test(${name} "${CMAKE_COMMAND}" 
+        -DTEST=${TEST_LOC}
+        -DINTDIR=${CMAKE_CFG_INTDIR}
+        -P "${LAPACK_SOURCE_DIR}/TESTING/runtest.cmake")
+    endif()
+endmacro(add_blas_test)
+
+add_blas_test(xblat1s sblat1.f)
+add_blas_test(xblat1c cblat1.f)
+add_blas_test(xblat1d dblat1.f)
+add_blas_test(xblat1z zblat1.f)
+
+add_blas_test(xblat2s sblat2.f sblat2.in)
+add_blas_test(xblat2c cblat2.f )
+add_blas_test(xblat2d dblat2.f)
+add_blas_test(xblat2z zblat2.f)
+
+add_blas_test(xblat3s sblat3.f)
+add_blas_test(xblat3c cblat3.f)
+add_blas_test(xblat3d dblat3.f)
+add_blas_test(xblat3z zblat3.f)
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c4af0d6
--- /dev/null
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 2.6)
+project(LAPACK Fortran)
+set(SECOND_SRC  ${LAPACK_SOURCE_DIR}/INSTALL/second_INT_ETIME.f)
+set(DSECOND_SRC  ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_INT_ETIME.f)
+enable_testing()
+include(CTest)
+enable_testing()
+set(CMAKE_MODULE_PATH ${LAPACK_SOURCE_DIR} ${CMAKE_MODULE_PATH})
+include(CheckTimeFunction)
+CHECK_TIME_FUNCTION(INT_CPU_TIME TIME_FUNC)
+CHECK_TIME_FUNCTION(EXT_ETIME TIME_FUNC)
+CHECK_TIME_FUNCTION(EXT_ETIME_ TIME_FUNC)
+CHECK_TIME_FUNCTION(INT_ETIME TIME_FUNC)
+message(STATUS "--> Will use second_${TIME_FUNC}.f and dsecnd_${TIME_FUNC}.f as timing function.")
+
+set(SECOND_SRC  ${LAPACK_SOURCE_DIR}/INSTALL/second_${TIME_FUNC}.f)
+set(DSECOND_SRC  ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
+
+
+add_subdirectory(BLAS)
+add_subdirectory(SRC)
+add_subdirectory(TESTING)
+
+set(LAPACK_VERSION 3.2.1)
+set(CPACK_PACKAGE_VERSION_MAJOR 3)
+set(CPACK_PACKAGE_VERSION_MINOR 2)
+set(CPACK_PACKAGE_VERSION_PATCH 1)
+include(CPack)
+export(TARGETS blas FILE lapack-targets.cmake)
+configure_file(${LAPACK_SOURCE_DIR}/lapack-config-version.cmake.in
+  ${LAPACK_BINARY_DIR}/lapack-config-version.cmake @ONLY)
+configure_file(${LAPACK_SOURCE_DIR}/lapack-config.cmake.in
+  ${LAPACK_BINARY_DIR}/lapack-config.cmake @ONLY)
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
new file mode 100644 (file)
index 0000000..a127496
--- /dev/null
@@ -0,0 +1,13 @@
+## This file should be placed in the root directory of your project.
+## Then modify the CMakeLists.txt file in the root directory of your
+## project to incorporate the testing dashboard.
+## # The following are required to uses Dart and the Cdash dashboard
+##   ENABLE_TESTING()
+##   INCLUDE(CTest)
+set(CTEST_PROJECT_NAME "LAPACK")
+set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
+
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "my.cdash.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=LAPACK")
+set(CTEST_DROP_SITE_CDASH TRUE)
diff --git a/CheckTimeFunction.cmake b/CheckTimeFunction.cmake
new file mode 100644 (file)
index 0000000..22d73b2
--- /dev/null
@@ -0,0 +1,27 @@
+# - Check if the Fortran function exists.
+# CHECK_TIME_FUNCTION(FUNCTION VARIABLE TYPE)
+# - macro which checks if the Fortran function exists
+#  FUNCTION - the name of the Fortran function
+#  VARIABLE - variable to store the result
+#
+
+macro(CHECK_TIME_FUNCTION FUNCTION VARIABLE)
+
+    execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -o secondtst second_${FUNCTION}.f secondtst.f
+    WORKING_DIRECTORY ${LAPACK_SOURCE_DIR}/INSTALL
+    RESULT_VARIABLE RES
+    OUTPUT_VARIABLE OUT
+    ERROR_VARIABLE  ERR
+    )
+
+    if(${RES} EQUAL 0)
+      set(${VARIABLE} ${FUNCTION} CACHE INTERNAL "Have Fortran function ${FUNCTION}")
+      message(STATUS "Looking for Fortran ${FUNCTION} - found")
+      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
+        "Fortran ${FUNCTION} exists. ${OUT} \n\n")
+    else(${RES} EQUAL 0)
+      message(STATUS "Looking for Fortran ${FUNCTION} - not found")
+      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log 
+        "Fortran ${FUNCTION} does not exist. \n ${ERR} \n")
+    endif(${RES} EQUAL 0)
+endmacro(CHECK_TIME_FUNCTION)
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f5d21ff
--- /dev/null
@@ -0,0 +1,380 @@
+#######################################################################
+#  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
+#       SXLASRC -- Single precision real LAPACK routines using extra
+#                  precision.
+#       CLASRC -- Single precision complex LAPACK routines
+#       CXLASRC -- Single precision complex LAPACK routines using extra
+#                  precision.
+#       DLASRC -- Double precision real LAPACK routines
+#       DXLASRC -- Double precision real LAPACK routines using extra
+#                  precision.
+#       ZLASRC -- Double precision complex LAPACK routines
+#       ZXLASRC -- Double precision complex LAPACK routines using extra
+#                  precision.
+#
+#  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
+#  installation guide, LAPACK Working Note 41, for instructions.
+#
+#######################################################################
+
+set(ALLAUX  ilaenv.f ieeeck.f lsamen.f  iparmq.f       
+    ilaprec.f ilatrans.f ilauplo.f iladiag.f chla_transtype.f 
+    ../INSTALL/ilaver.f ../INSTALL/lsame.f) # xerbla.f xerbla_array.f
+
+set(ALLXAUX )
+
+set(SCLAUX  
+   sbdsdc.f 
+   sbdsqr.f sdisna.f slabad.f slacpy.f sladiv.f slae2.f  slaebz.f 
+   slaed0.f slaed1.f slaed2.f slaed3.f slaed4.f slaed5.f slaed6.f 
+   slaed7.f slaed8.f slaed9.f slaeda.f slaev2.f slagtf.f 
+   slagts.f slamrg.f slanst.f 
+   slapy2.f slapy3.f slarnv.f 
+   slarra.f slarrb.f slarrc.f slarrd.f slarre.f slarrf.f slarrj.f 
+   slarrk.f slarrr.f slaneg.f 
+   slartg.f slaruv.f slas2.f  slascl.f 
+   slasd0.f slasd1.f slasd2.f slasd3.f slasd4.f slasd5.f slasd6.f 
+   slasd7.f slasd8.f slasda.f slasdq.f slasdt.f 
+   slaset.f slasq1.f slasq2.f slasq3.f slasq4.f slasq5.f slasq6.f 
+   slasr.f  slasrt.f slassq.f slasv2.f spttrf.f sstebz.f sstedc.f 
+   ssteqr.f ssterf.f slaisnan.f sisnan.f 
+   ../INSTALL/slamch.f ${SECOND_SRC})
+
+set(DZLAUX  
+   dbdsdc.f 
+   dbdsqr.f ddisna.f dlabad.f dlacpy.f dladiv.f dlae2.f  dlaebz.f 
+   dlaed0.f dlaed1.f dlaed2.f dlaed3.f dlaed4.f dlaed5.f dlaed6.f 
+   dlaed7.f dlaed8.f dlaed9.f dlaeda.f dlaev2.f dlagtf.f 
+   dlagts.f dlamrg.f dlanst.f 
+   dlapy2.f dlapy3.f dlarnv.f 
+   dlarra.f dlarrb.f dlarrc.f dlarrd.f dlarre.f dlarrf.f dlarrj.f 
+   dlarrk.f dlarrr.f dlaneg.f 
+   dlartg.f dlaruv.f dlas2.f  dlascl.f 
+   dlasd0.f dlasd1.f dlasd2.f dlasd3.f dlasd4.f dlasd5.f dlasd6.f 
+   dlasd7.f dlasd8.f dlasda.f dlasdq.f dlasdt.f 
+   dlaset.f dlasq1.f dlasq2.f dlasq3.f dlasq4.f dlasq5.f dlasq6.f 
+   dlasr.f  dlasrt.f dlassq.f dlasv2.f dpttrf.f dstebz.f dstedc.f 
+   dsteqr.f dsterf.f dlaisnan.f disnan.f 
+   ../INSTALL/dlamch.f ${DSECOND_SRC})
+
+set(SLASRC  
+   sgbbrd.f sgbcon.f sgbequ.f sgbrfs.f sgbsv.f  
+   sgbsvx.f sgbtf2.f sgbtrf.f sgbtrs.f sgebak.f sgebal.f sgebd2.f 
+   sgebrd.f sgecon.f sgeequ.f sgees.f  sgeesx.f sgeev.f  sgeevx.f 
+   sgegs.f  sgegv.f  sgehd2.f sgehrd.f sgelq2.f sgelqf.f 
+   sgels.f  sgelsd.f sgelss.f sgelsx.f sgelsy.f sgeql2.f sgeqlf.f 
+   sgeqp3.f sgeqpf.f sgeqr2.f sgeqrf.f sgerfs.f sgerq2.f sgerqf.f 
+   sgesc2.f sgesdd.f sgesv.f  sgesvd.f sgesvx.f sgetc2.f sgetf2.f 
+   sgetrf.f sgetri.f 
+   sgetrs.f sggbak.f sggbal.f sgges.f  sggesx.f sggev.f  sggevx.f 
+   sggglm.f sgghrd.f sgglse.f sggqrf.f 
+   sggrqf.f sggsvd.f sggsvp.f sgtcon.f sgtrfs.f sgtsv.f  
+   sgtsvx.f sgttrf.f sgttrs.f sgtts2.f shgeqz.f 
+   shsein.f shseqr.f slabrd.f slacon.f slacn2.f 
+   slaein.f slaexc.f slag2.f  slags2.f slagtm.f slagv2.f slahqr.f 
+   slahrd.f slahr2.f slaic1.f slaln2.f slals0.f slalsa.f slalsd.f 
+   slangb.f slange.f slangt.f slanhs.f slansb.f slansp.f 
+   slansy.f slantb.f slantp.f slantr.f slanv2.f 
+   slapll.f slapmt.f 
+   slaqgb.f slaqge.f slaqp2.f slaqps.f slaqsb.f slaqsp.f slaqsy.f 
+   slaqr0.f slaqr1.f slaqr2.f slaqr3.f slaqr4.f slaqr5.f 
+   slaqtr.f slar1v.f slar2v.f ilaslr.f ilaslc.f 
+   slarf.f  slarfb.f slarfg.f slarft.f slarfx.f slargv.f 
+   slarrv.f slartv.f slarfp.f 
+   slarz.f  slarzb.f slarzt.f slaswp.f slasy2.f slasyf.f 
+   slatbs.f slatdf.f slatps.f slatrd.f slatrs.f slatrz.f slatzm.f 
+   slauu2.f slauum.f sopgtr.f sopmtr.f sorg2l.f sorg2r.f 
+   sorgbr.f sorghr.f sorgl2.f sorglq.f sorgql.f sorgqr.f sorgr2.f 
+   sorgrq.f sorgtr.f sorm2l.f sorm2r.f 
+   sormbr.f sormhr.f sorml2.f sormlq.f sormql.f sormqr.f sormr2.f 
+   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 spotri.f spotrs.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  
+   ssbev.f  ssbevd.f ssbevx.f ssbgst.f ssbgv.f  ssbgvd.f ssbgvx.f 
+   ssbtrd.f sspcon.f sspev.f  sspevd.f sspevx.f sspgst.f 
+   sspgv.f  sspgvd.f sspgvx.f ssprfs.f sspsv.f  sspsvx.f ssptrd.f 
+   ssptrf.f ssptri.f ssptrs.f sstegr.f sstein.f sstev.f  sstevd.f sstevr.f 
+   sstevx.f ssycon.f ssyev.f  ssyevd.f ssyevr.f ssyevx.f ssygs2.f 
+   ssygst.f ssygv.f  ssygvd.f ssygvx.f ssyrfs.f ssysv.f  ssysvx.f 
+   ssytd2.f ssytf2.f ssytrd.f ssytrf.f ssytri.f ssytrs.f stbcon.f 
+   stbrfs.f stbtrs.f stgevc.f stgex2.f stgexc.f stgsen.f 
+   stgsja.f stgsna.f stgsy2.f stgsyl.f stpcon.f stprfs.f stptri.f 
+   stptrs.f 
+   strcon.f strevc.f strexc.f strrfs.f strsen.f strsna.f strsyl.f 
+   strti2.f strtri.f strtrs.f stzrqf.f stzrzf.f sstemr.f 
+   slansf.f spftrf.f spftri.f spftrs.f ssfrk.f stfsm.f stftri.f stfttp.f 
+   stfttr.f stpttf.f stpttr.f strttf.f strttp.f 
+   sgejsv.f  sgesvj.f  sgsvj0.f  sgsvj1.f 
+   sgeequb.f ssyequb.f spoequb.f sgbequb.f)
+
+set(SXLASRC  sgesvxx.f sgerfsx.f sla_gerfsx_extended.f sla_geamv.f             
+   sla_gercond.f sla_rpvgrw.f ssysvxx.f ssyrfsx.f                      
+   sla_syrfsx_extended.f sla_syamv.f sla_syrcond.f sla_syrpvgrw.f      
+   sposvxx.f sporfsx.f sla_porfsx_extended.f sla_porcond.f             
+   sla_porpvgrw.f sgbsvxx.f sgbrfsx.f sla_gbrfsx_extended.f            
+   sla_gbamv.f sla_gbrcond.f sla_gbrpvgrw.f sla_lin_berr.f slarscl2.f  
+   slascl2.f sla_wwaddw.f)
+
+set(CLASRC 
+   cbdsqr.f cgbbrd.f cgbcon.f cgbequ.f cgbrfs.f cgbsv.f  cgbsvx.f 
+   cgbtf2.f cgbtrf.f cgbtrs.f cgebak.f cgebal.f cgebd2.f cgebrd.f 
+   cgecon.f cgeequ.f cgees.f  cgeesx.f cgeev.f  cgeevx.f 
+   cgegs.f  cgegv.f  cgehd2.f cgehrd.f cgelq2.f cgelqf.f 
+   cgels.f  cgelsd.f cgelss.f cgelsx.f cgelsy.f cgeql2.f cgeqlf.f cgeqp3.f 
+   cgeqpf.f cgeqr2.f cgeqrf.f cgerfs.f cgerq2.f cgerqf.f 
+   cgesc2.f cgesdd.f cgesv.f  cgesvd.f cgesvx.f cgetc2.f cgetf2.f cgetrf.f 
+   cgetri.f cgetrs.f 
+   cggbak.f cggbal.f cgges.f  cggesx.f cggev.f  cggevx.f cggglm.f 
+   cgghrd.f cgglse.f cggqrf.f cggrqf.f 
+   cggsvd.f cggsvp.f 
+   cgtcon.f cgtrfs.f cgtsv.f  cgtsvx.f cgttrf.f cgttrs.f cgtts2.f chbev.f  
+   chbevd.f chbevx.f chbgst.f chbgv.f  chbgvd.f chbgvx.f chbtrd.f 
+   checon.f cheev.f  cheevd.f cheevr.f cheevx.f chegs2.f chegst.f 
+   chegv.f  chegvd.f chegvx.f cherfs.f chesv.f  chesvx.f chetd2.f 
+   chetf2.f chetrd.f 
+   chetrf.f chetri.f chetrs.f chgeqz.f chpcon.f chpev.f  chpevd.f 
+   chpevx.f chpgst.f chpgv.f  chpgvd.f chpgvx.f chprfs.f chpsv.f  
+   chpsvx.f 
+   chptrd.f chptrf.f chptri.f chptrs.f chsein.f chseqr.f clabrd.f 
+   clacgv.f clacon.f clacn2.f clacp2.f clacpy.f clacrm.f clacrt.f cladiv.f 
+   claed0.f claed7.f claed8.f 
+   claein.f claesy.f claev2.f clags2.f clagtm.f 
+   clahef.f clahqr.f 
+   clahrd.f clahr2.f claic1.f clals0.f clalsa.f clalsd.f clangb.f clange.f clangt.f 
+   clanhb.f clanhe.f 
+   clanhp.f clanhs.f clanht.f clansb.f clansp.f clansy.f clantb.f 
+   clantp.f clantr.f clapll.f clapmt.f clarcm.f claqgb.f claqge.f 
+   claqhb.f claqhe.f claqhp.f claqp2.f claqps.f claqsb.f 
+   claqr0.f claqr1.f claqr2.f claqr3.f claqr4.f claqr5.f 
+   claqsp.f claqsy.f clar1v.f clar2v.f ilaclr.f ilaclc.f 
+   clarf.f  clarfb.f clarfg.f clarft.f clarfp.f 
+   clarfx.f clargv.f clarnv.f clarrv.f clartg.f clartv.f 
+   clarz.f  clarzb.f clarzt.f clascl.f claset.f clasr.f  classq.f 
+   claswp.f clasyf.f clatbs.f clatdf.f clatps.f clatrd.f clatrs.f clatrz.f 
+   clatzm.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 cpotri.f cpotrs.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  
+   cspsvx.f csptrf.f csptri.f csptrs.f csrscl.f cstedc.f 
+   cstegr.f cstein.f csteqr.f csycon.f csymv.f  
+   csyr.f   csyrfs.f csysv.f  csysvx.f csytf2.f csytrf.f csytri.f 
+   csytrs.f ctbcon.f ctbrfs.f ctbtrs.f ctgevc.f ctgex2.f 
+   ctgexc.f ctgsen.f ctgsja.f ctgsna.f ctgsy2.f ctgsyl.f ctpcon.f 
+   ctprfs.f ctptri.f 
+   ctptrs.f ctrcon.f ctrevc.f ctrexc.f ctrrfs.f ctrsen.f ctrsna.f 
+   ctrsyl.f ctrti2.f ctrtri.f ctrtrs.f ctzrqf.f ctzrzf.f cung2l.f cung2r.f 
+   cungbr.f cunghr.f cungl2.f cunglq.f cungql.f cungqr.f cungr2.f 
+   cungrq.f cungtr.f cunm2l.f cunm2r.f cunmbr.f cunmhr.f cunml2.f 
+   cunmlq.f cunmql.f cunmqr.f cunmr2.f cunmr3.f cunmrq.f cunmrz.f 
+   cunmtr.f cupgtr.f cupmtr.f icmax1.f scsum1.f cstemr.f 
+   chfrk.f ctfttp.f clanhf.f cpftrf.f cpftri.f cpftrs.f ctfsm.f ctftri.f 
+   ctfttr.f ctpttf.f ctpttr.f ctrttf.f ctrttp.f 
+   cgeequb.f cgbequb.f csyequb.f cpoequb.f cheequb.f)
+
+set(CXLASRC     cgesvxx.f cgerfsx.f cla_gerfsx_extended.f cla_geamv.f 
+   cla_gercond_c.f cla_gercond_x.f cla_rpvgrw.f 
+   csysvxx.f csyrfsx.f cla_syrfsx_extended.f cla_syamv.f 
+   cla_syrcond_c.f cla_syrcond_x.f cla_syrpvgrw.f 
+   cposvxx.f cporfsx.f cla_porfsx_extended.f 
+   cla_porcond_c.f cla_porcond_x.f cla_porpvgrw.f 
+   cgbsvxx.f cgbrfsx.f cla_gbrfsx_extended.f cla_gbamv.f 
+   cla_gbrcond_c.f cla_gbrcond_x.f cla_gbrpvgrw.f 
+   chesvxx.f cherfsx.f cla_herfsx_extended.f cla_heamv.f 
+   cla_hercond_c.f cla_hercond_x.f cla_herpvgrw.f 
+   cla_lin_berr.f clarscl2.f clascl2.f cla_wwaddw.f)
+
+set(DLASRC 
+   dgbbrd.f dgbcon.f dgbequ.f dgbrfs.f dgbsv.f  
+   dgbsvx.f dgbtf2.f dgbtrf.f dgbtrs.f dgebak.f dgebal.f dgebd2.f 
+   dgebrd.f dgecon.f dgeequ.f dgees.f  dgeesx.f dgeev.f  dgeevx.f 
+   dgegs.f  dgegv.f  dgehd2.f dgehrd.f dgelq2.f dgelqf.f 
+   dgels.f  dgelsd.f dgelss.f dgelsx.f dgelsy.f dgeql2.f dgeqlf.f 
+   dgeqp3.f dgeqpf.f dgeqr2.f dgeqrf.f dgerfs.f dgerq2.f dgerqf.f 
+   dgesc2.f dgesdd.f dgesv.f  dgesvd.f dgesvx.f dgetc2.f dgetf2.f 
+   dgetrf.f dgetri.f 
+   dgetrs.f dggbak.f dggbal.f dgges.f  dggesx.f dggev.f  dggevx.f 
+   dggglm.f dgghrd.f dgglse.f dggqrf.f 
+   dggrqf.f dggsvd.f dggsvp.f dgtcon.f dgtrfs.f dgtsv.f  
+   dgtsvx.f dgttrf.f dgttrs.f dgtts2.f dhgeqz.f 
+   dhsein.f dhseqr.f dlabrd.f dlacon.f dlacn2.f 
+   dlaein.f dlaexc.f dlag2.f  dlags2.f dlagtm.f dlagv2.f dlahqr.f 
+   dlahrd.f dlahr2.f dlaic1.f dlaln2.f dlals0.f dlalsa.f dlalsd.f 
+   dlangb.f dlange.f dlangt.f dlanhs.f dlansb.f dlansp.f 
+   dlansy.f dlantb.f dlantp.f dlantr.f dlanv2.f 
+   dlapll.f dlapmt.f 
+   dlaqgb.f dlaqge.f dlaqp2.f dlaqps.f dlaqsb.f dlaqsp.f dlaqsy.f 
+   dlaqr0.f dlaqr1.f dlaqr2.f dlaqr3.f dlaqr4.f dlaqr5.f 
+   dlaqtr.f dlar1v.f dlar2v.f iladlr.f iladlc.f 
+   dlarf.f  dlarfb.f dlarfg.f dlarft.f dlarfx.f dlargv.f 
+   dlarrv.f dlartv.f dlarfp.f 
+   dlarz.f  dlarzb.f dlarzt.f dlaswp.f dlasy2.f dlasyf.f 
+   dlatbs.f dlatdf.f dlatps.f dlatrd.f dlatrs.f dlatrz.f dlatzm.f dlauu2.f 
+   dlauum.f dopgtr.f dopmtr.f dorg2l.f dorg2r.f 
+   dorgbr.f dorghr.f dorgl2.f dorglq.f dorgql.f dorgqr.f dorgr2.f 
+   dorgrq.f dorgtr.f dorm2l.f dorm2r.f 
+   dormbr.f dormhr.f dorml2.f dormlq.f dormql.f dormqr.f dormr2.f 
+   dormr3.f dormrq.f dormrz.f dormtr.f dpbcon.f dpbequ.f dpbrfs.f 
+   dpbstf.f dpbsv.f  dpbsvx.f 
+   dpbtf2.f dpbtrf.f dpbtrs.f dpocon.f dpoequ.f dporfs.f dposv.f  
+   dposvx.f dpotf2.f dpotrf.f dpotri.f dpotrs.f dpstrf.f dpstf2.f 
+   dppcon.f dppequ.f 
+   dpprfs.f dppsv.f  dppsvx.f dpptrf.f dpptri.f dpptrs.f dptcon.f 
+   dpteqr.f dptrfs.f dptsv.f  dptsvx.f dpttrs.f dptts2.f drscl.f  
+   dsbev.f  dsbevd.f dsbevx.f dsbgst.f dsbgv.f  dsbgvd.f dsbgvx.f 
+   dsbtrd.f  dspcon.f dspev.f  dspevd.f dspevx.f dspgst.f 
+   dspgv.f  dspgvd.f dspgvx.f dsprfs.f dspsv.f  dspsvx.f dsptrd.f 
+   dsptrf.f dsptri.f dsptrs.f dstegr.f dstein.f dstev.f  dstevd.f dstevr.f 
+   dstevx.f dsycon.f dsyev.f  dsyevd.f dsyevr.f 
+   dsyevx.f dsygs2.f dsygst.f dsygv.f  dsygvd.f dsygvx.f dsyrfs.f 
+   dsysv.f  dsysvx.f 
+   dsytd2.f dsytf2.f dsytrd.f dsytrf.f dsytri.f dsytrs.f dtbcon.f 
+   dtbrfs.f dtbtrs.f dtgevc.f dtgex2.f dtgexc.f dtgsen.f 
+   dtgsja.f dtgsna.f dtgsy2.f dtgsyl.f dtpcon.f dtprfs.f dtptri.f 
+   dtptrs.f 
+   dtrcon.f dtrevc.f dtrexc.f dtrrfs.f dtrsen.f dtrsna.f dtrsyl.f 
+   dtrti2.f dtrtri.f dtrtrs.f dtzrqf.f dtzrzf.f dstemr.f 
+   dsgesv.f dsposv.f dlag2s.f slag2d.f dlat2s.f 
+   dlansf.f dpftrf.f dpftri.f dpftrs.f dsfrk.f dtfsm.f dtftri.f dtfttp.f 
+   dtfttr.f dtpttf.f dtpttr.f dtrttf.f dtrttp.f 
+   dgejsv.f  dgesvj.f  dgsvj0.f  dgsvj1.f 
+   dgeequb.f dsyequb.f dpoequb.f dgbequb.f)
+
+set(DXLASRC dgesvxx.f dgerfsx.f dla_gerfsx_extended.f dla_geamv.f              
+   dla_gercond.f dla_rpvgrw.f dsysvxx.f dsyrfsx.f                      
+   dla_syrfsx_extended.f dla_syamv.f dla_syrcond.f dla_syrpvgrw.f      
+   dposvxx.f dporfsx.f dla_porfsx_extended.f dla_porcond.f             
+   dla_porpvgrw.f dgbsvxx.f dgbrfsx.f dla_gbrfsx_extended.f            
+   dla_gbamv.f dla_gbrcond.f dla_gbrpvgrw.f dla_lin_berr.f dlarscl2.f  
+   dlascl2.f dla_wwaddw.f)
+
+set(ZLASRC 
+   zbdsqr.f zgbbrd.f zgbcon.f zgbequ.f zgbrfs.f zgbsv.f  zgbsvx.f 
+   zgbtf2.f zgbtrf.f zgbtrs.f zgebak.f zgebal.f zgebd2.f zgebrd.f 
+   zgecon.f zgeequ.f zgees.f  zgeesx.f zgeev.f  zgeevx.f 
+   zgegs.f  zgegv.f  zgehd2.f zgehrd.f zgelq2.f zgelqf.f 
+   zgels.f  zgelsd.f zgelss.f zgelsx.f zgelsy.f zgeql2.f zgeqlf.f zgeqp3.f 
+   zgeqpf.f zgeqr2.f zgeqrf.f zgerfs.f zgerq2.f zgerqf.f 
+   zgesc2.f zgesdd.f zgesv.f  zgesvd.f zgesvx.f zgetc2.f zgetf2.f zgetrf.f 
+   zgetri.f zgetrs.f 
+   zggbak.f zggbal.f zgges.f  zggesx.f zggev.f  zggevx.f zggglm.f 
+   zgghrd.f zgglse.f zggqrf.f zggrqf.f 
+   zggsvd.f zggsvp.f 
+   zgtcon.f zgtrfs.f zgtsv.f  zgtsvx.f zgttrf.f zgttrs.f zgtts2.f zhbev.f  
+   zhbevd.f zhbevx.f zhbgst.f zhbgv.f  zhbgvd.f zhbgvx.f zhbtrd.f 
+   zhecon.f zheev.f  zheevd.f zheevr.f zheevx.f zhegs2.f zhegst.f 
+   zhegv.f  zhegvd.f zhegvx.f zherfs.f zhesv.f  zhesvx.f zhetd2.f 
+   zhetf2.f zhetrd.f 
+   zhetrf.f zhetri.f zhetrs.f zhgeqz.f zhpcon.f zhpev.f  zhpevd.f 
+   zhpevx.f zhpgst.f zhpgv.f  zhpgvd.f zhpgvx.f zhprfs.f zhpsv.f  
+   zhpsvx.f 
+   zhptrd.f zhptrf.f zhptri.f zhptrs.f zhsein.f zhseqr.f zlabrd.f 
+   zlacgv.f zlacon.f zlacn2.f zlacp2.f zlacpy.f zlacrm.f zlacrt.f zladiv.f 
+   zlaed0.f zlaed7.f zlaed8.f 
+   zlaein.f zlaesy.f zlaev2.f zlags2.f zlagtm.f 
+   zlahef.f zlahqr.f 
+   zlahrd.f zlahr2.f zlaic1.f zlals0.f zlalsa.f zlalsd.f zlangb.f zlange.f 
+   zlangt.f zlanhb.f 
+   zlanhe.f 
+   zlanhp.f zlanhs.f zlanht.f zlansb.f zlansp.f zlansy.f zlantb.f 
+   zlantp.f zlantr.f zlapll.f zlapmt.f zlaqgb.f zlaqge.f 
+   zlaqhb.f zlaqhe.f zlaqhp.f zlaqp2.f zlaqps.f zlaqsb.f 
+   zlaqr0.f zlaqr1.f zlaqr2.f zlaqr3.f zlaqr4.f zlaqr5.f 
+   zlaqsp.f zlaqsy.f zlar1v.f zlar2v.f ilazlr.f ilazlc.f 
+   zlarcm.f zlarf.f  zlarfb.f 
+   zlarfg.f zlarft.f zlarfp.f 
+   zlarfx.f zlargv.f zlarnv.f zlarrv.f zlartg.f zlartv.f 
+   zlarz.f  zlarzb.f zlarzt.f zlascl.f zlaset.f zlasr.f  
+   zlassq.f zlaswp.f zlasyf.f 
+   zlatbs.f zlatdf.f zlatps.f zlatrd.f zlatrs.f zlatrz.f zlatzm.f zlauu2.f 
+   zlauum.f zpbcon.f zpbequ.f zpbrfs.f zpbstf.f zpbsv.f  
+   zpbsvx.f zpbtf2.f zpbtrf.f zpbtrs.f zpocon.f zpoequ.f zporfs.f 
+   zposv.f  zposvx.f zpotf2.f zpotrf.f zpotri.f zpotrs.f zpstrf.f zpstf2.f 
+   zppcon.f zppequ.f zpprfs.f zppsv.f  zppsvx.f zpptrf.f zpptri.f zpptrs.f 
+   zptcon.f zpteqr.f zptrfs.f zptsv.f  zptsvx.f zpttrf.f zpttrs.f zptts2.f 
+   zrot.f   zspcon.f zspmv.f  zspr.f   zsprfs.f zspsv.f  
+   zspsvx.f zsptrf.f zsptri.f zsptrs.f zdrscl.f zstedc.f 
+   zstegr.f zstein.f zsteqr.f zsycon.f zsymv.f  
+   zsyr.f   zsyrfs.f zsysv.f  zsysvx.f zsytf2.f zsytrf.f zsytri.f 
+   zsytrs.f ztbcon.f ztbrfs.f ztbtrs.f ztgevc.f ztgex2.f 
+   ztgexc.f ztgsen.f ztgsja.f ztgsna.f ztgsy2.f ztgsyl.f ztpcon.f 
+   ztprfs.f ztptri.f 
+   ztptrs.f ztrcon.f ztrevc.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f 
+   ztrsyl.f ztrti2.f ztrtri.f ztrtrs.f ztzrqf.f ztzrzf.f zung2l.f 
+   zung2r.f zungbr.f zunghr.f zungl2.f zunglq.f zungql.f zungqr.f zungr2.f 
+   zungrq.f zungtr.f zunm2l.f zunm2r.f zunmbr.f zunmhr.f zunml2.f 
+   zunmlq.f zunmql.f zunmqr.f zunmr2.f zunmr3.f zunmrq.f zunmrz.f 
+   zunmtr.f zupgtr.f 
+   zupmtr.f izmax1.f dzsum1.f zstemr.f 
+   zcgesv.f zcposv.f zlag2c.f clag2z.f zlat2c.f 
+   zhfrk.f ztfttp.f zlanhf.f zpftrf.f zpftri.f zpftrs.f ztfsm.f ztftri.f 
+   ztfttr.f ztpttf.f ztpttr.f ztrttf.f ztrttp.f 
+   zgeequb.f zgbequb.f zsyequb.f zpoequb.f zheequb.f)
+
+set(ZXLASRC  zgesvxx.f zgerfsx.f zla_gerfsx_extended.f zla_geamv.f             
+   zla_gercond_c.f zla_gercond_x.f zla_rpvgrw.f zsysvxx.f zsyrfsx.f    
+   zla_syrfsx_extended.f zla_syamv.f zla_syrcond_c.f zla_syrcond_x.f   
+   zla_syrpvgrw.f zposvxx.f zporfsx.f zla_porfsx_extended.f            
+   zla_porcond_c.f zla_porcond_x.f zla_porpvgrw.f zgbsvxx.f zgbrfsx.f  
+   zla_gbrfsx_extended.f zla_gbamv.f zla_gbrcond_c.f zla_gbrcond_x.f   
+   zla_gbrpvgrw.f zhesvxx.f zherfsx.f zla_herfsx_extended.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( USEXBLAS)
+  set(ALLXOBJ ${SXLASRC} ${DXLASRC} ${CXLASRC} ${ZXLASRC} ${ALLXAUX})
+endif()
+
+set(ALLOBJ ${SLASRC} ${DLASRC} ${CLASRC} ${ZLASRC} ${SCLAUX} ${DZLAUX} 
+       ${ALLAUX})
+if(BUILD_SINGLE)
+set(ALLOBJ  ${SLASRC} ${ALLAUX} 
+       ${SCLAUX})
+endif()
+if(BUILD_DOUBLE)
+  set(ALLOBJ ${DLASRC} ${ALLAUX} ${DZLAUX})
+endif()
+if(BUILD_COMPLEX)
+  set(ALLOBJ ${CLASRC} ${ALLAUX} ${SCLAUX})
+endif()
+if(BUILD_COMPLEX16)
+  set(ALLOBJ  ${ZLASRC} ${ALLAUX} ${DZLAUX})
+endif()
+add_library(lapack ${ALLOBJ} ${ALLXOBJ})
+target_link_libraries(lapack blas)
+
diff --git a/TESTING/CMakeLists.txt b/TESTING/CMakeLists.txt
new file mode 100644 (file)
index 0000000..37022d9
--- /dev/null
@@ -0,0 +1,296 @@
+if(MSVC_VERSION)
+#  string(REPLACE "/STACK:10000000" "/STACK:900000000000000000"
+#    CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
+  string(REGEX REPLACE "(.*)/STACK:(.*) (.*)" "\\1/STACK:900000000000000000 \\3"
+    CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
+endif()
+add_subdirectory(MATGEN)
+add_subdirectory(LIN)
+add_subdirectory(EIG)
+macro(add_lapack_test output input target)
+  set(TEST_INPUT "${LAPACK_SOURCE_DIR}/TESTING/${input}")
+  set(TEST_OUTPUT "${LAPACK_BINARY_DIR}/TESTING/${output}")
+  get_target_property(TEST_LOC ${target} LOCATION)
+  string(REPLACE "." "_" input_name ${input})
+  set(testName "${target}_${input_name}")
+  if(EXISTS "${TEST_INPUT}")
+    add_test(${testName} "${CMAKE_COMMAND}"
+      -DTEST=${TEST_LOC}
+      -DINPUT=${TEST_INPUT} 
+      -DOUTPUT=${TEST_OUTPUT} 
+      -DINTDIR=${CMAKE_CFG_INTDIR}
+      -P "${LAPACK_SOURCE_DIR}/TESTING/runtest.cmake")
+  endif()
+endmacro(add_lapack_test)
+
+add_lapack_test(stest.out stest.in xlintsts)
+
+add_lapack_test(ctest.out ctest.in xlintstc)
+#
+# ======== DOUBLE LIN TESTS ===========================
+
+add_lapack_test(dtest.out dtest.in xlintstd)
+
+#
+# ======== COMPLEX16 LIN TESTS ========================
+
+add_lapack_test(ztest.out ztest.in xlintstz)
+
+#
+# ======== SINGLE-DOUBLE PROTO LIN TESTS ==============
+
+add_lapack_test(dstest.out dstest.in xlintstds)
+
+#
+# ======== COMPLEX-COMPLEX16 LIN TESTS ========================
+
+add_lapack_test(zctest.out zctest.in xlintstzc)
+
+#
+# ======== SINGLE RFP LIN TESTS ========================
+
+add_lapack_test(stest_rfp.out stest_rfp.in xlintstrfs)
+
+#
+# ======== COMPLEX16 RFP LIN TESTS ========================
+
+add_lapack_test(dtest_rfp.out dtest_rfp.in xlintstrfd)
+
+#
+# ======== COMPLEX16 RFP LIN TESTS ========================
+
+add_lapack_test(ctest_rfp.out ctest_rfp.in xlintstrfc)
+
+#
+# ======== COMPLEX16 RFP LIN TESTS ========================
+
+add_lapack_test(ztest_rfp.out ztest_rfp.in xlintstrfz)
+
+#
+#
+# ======== SINGLE EIG TESTS ===========================
+#
+
+add_lapack_test(snep.out nep.in xeigtsts)
+
+
+add_lapack_test(ssep.out sep.in xeigtsts)
+
+
+add_lapack_test(ssvd.out svd.in xeigtsts)
+
+
+add_lapack_test(sec.out sec.in xeigtsts)
+
+
+add_lapack_test(sed.out sed.in xeigtsts)
+
+
+add_lapack_test(sgg.out sgg.in xeigtsts)
+
+
+add_lapack_test(sgd.out sgd.in xeigtsts)
+
+
+add_lapack_test(ssb.out ssb.in xeigtsts)
+
+
+add_lapack_test(ssg.out ssg.in xeigtsts)
+
+
+add_lapack_test(sbal.out sbal.in xeigtsts)
+
+
+add_lapack_test(sbak.out sbak.in xeigtsts)
+
+
+add_lapack_test(sgbal.out sgbal.in xeigtsts)
+
+
+add_lapack_test(sgbak.out sgbak.in xeigtsts)
+
+
+add_lapack_test(sbb.out sbb.in xeigtsts)
+
+
+add_lapack_test(sglm.out glm.in xeigtsts)
+
+
+add_lapack_test(sgqr.out gqr.in xeigtsts)
+
+
+add_lapack_test(sgsv.out gsv.in xeigtsts)
+
+
+add_lapack_test(slse.out lse.in xeigtsts)
+
+#
+# ======== COMPLEX EIG TESTS ===========================
+
+add_lapack_test(cnep.out nep.in xeigtstc)
+
+
+add_lapack_test(csep.out sep.in xeigtstc)
+
+
+add_lapack_test(csvd.out svd.in xeigtstc)
+
+
+add_lapack_test(cec.out cec.in xeigtstc)
+
+
+add_lapack_test(ced.out ced.in xeigtstc)
+
+
+add_lapack_test(cgg.out cgg.in xeigtstc)
+
+
+add_lapack_test(cgd.out cgd.in xeigtstc)
+
+
+add_lapack_test(csb.out csb.in xeigtstc)
+
+
+add_lapack_test(csg.out csg.in xeigtstc)
+
+
+add_lapack_test(cbal.out cbal.in xeigtstc)
+
+
+add_lapack_test(cbak.out cbak.in xeigtstc)
+
+
+add_lapack_test(cgbal.out cgbal.in xeigtstc)
+
+
+add_lapack_test(cgbak.out cgbak.in xeigtstc)
+
+
+add_lapack_test(cbb.out cbb.in xeigtstc)
+
+
+add_lapack_test(cglm.out glm.in xeigtstc)
+
+
+add_lapack_test(cgqr.out gqr.in xeigtstc)
+
+
+add_lapack_test(cgsv.out gsv.in xeigtstc)
+
+
+add_lapack_test(clse.out lse.in xeigtstc)
+
+#
+# ======== DOUBLE EIG TESTS ===========================
+
+add_lapack_test(dnep.out nep.in xeigtstd)
+
+
+add_lapack_test(dsep.out sep.in xeigtstd)
+
+
+add_lapack_test(dsvd.out svd.in xeigtstd)
+
+
+add_lapack_test(dec.out dec.in xeigtstd)
+
+
+add_lapack_test(ded.out ded.in xeigtstd)
+
+
+add_lapack_test(dgg.out dgg.in xeigtstd)
+
+
+add_lapack_test(dgd.out dgd.in xeigtstd)
+
+
+add_lapack_test(dsb.out dsb.in xeigtstd)
+
+
+add_lapack_test(dsg.out dsg.in xeigtstd)
+
+
+add_lapack_test(dbal.out dbal.in xeigtstd)
+
+
+add_lapack_test(dbak.out dbak.in xeigtstd)
+
+
+add_lapack_test(dgbal.out dgbal.in xeigtstd)
+
+
+add_lapack_test(dgbak.out dgbak.in xeigtstd)
+
+
+add_lapack_test(dbb.out dbb.in xeigtstd)
+
+
+add_lapack_test(dglm.out glm.in xeigtstd)
+
+
+add_lapack_test(dgqr.out gqr.in xeigtstd)
+
+
+add_lapack_test(dgsv.out gsv.in xeigtstd)
+
+
+add_lapack_test(dlse.out lse.in xeigtstd)
+
+#
+# ======== COMPLEX16 EIG TESTS ===========================
+
+add_lapack_test(znep.out nep.in xeigtstz)
+
+
+add_lapack_test(zsep.out sep.in xeigtstz)
+
+
+add_lapack_test(zsvd.out svd.in xeigtstz)
+
+
+add_lapack_test(zec.out zec.in xeigtstz)
+
+
+add_lapack_test(zed.out zed.in xeigtstz)
+
+
+add_lapack_test(zgg.out zgg.in xeigtstz)
+
+
+add_lapack_test(zgd.out zgd.in xeigtstz)
+
+
+add_lapack_test(zsb.out zsb.in xeigtstz)
+
+
+add_lapack_test(zsg.out zsg.in xeigtstz)
+
+
+add_lapack_test(zbal.out zbal.in xeigtstz)
+
+
+add_lapack_test(zbak.out zbak.in xeigtstz)
+
+
+add_lapack_test(zgbal.out zgbal.in xeigtstz)
+
+
+add_lapack_test(zgbak.out zgbak.in xeigtstz)
+
+
+add_lapack_test(zbb.out zbb.in xeigtstz)
+
+
+add_lapack_test(zglm.out glm.in xeigtstz)
+
+
+add_lapack_test(zgqr.out gqr.in xeigtstz)
+
+
+add_lapack_test(zgsv.out gsv.in xeigtstz)
+
+
+add_lapack_test(zlse.out lse.in xeigtstz)
+
+# ==============================================================================
+
diff --git a/TESTING/EIG/CMakeLists.txt b/TESTING/EIG/CMakeLists.txt
new file mode 100644 (file)
index 0000000..7f9ac9f
--- /dev/null
@@ -0,0 +1,135 @@
+########################################################################
+#  This is the makefile for the eigenvalue test program from LAPACK.
+#  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
+#     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  
+   alahdg.f 
+   alasum.f 
+   alasvm.f 
+   alareq.f 
+   ilaenv.f 
+   xerbla.f 
+   xlaenv.f 
+   chkxer.f)
+
+set(SCIGTST  slafts.f slahd2.f slasum.f slatb9.f sstech.f sstect.f 
+   ssvdch.f ssvdct.f ssxt1.f)
+
+set(SEIGTST  schkee.f 
+   sbdt01.f sbdt02.f sbdt03.f 
+   schkbb.f schkbd.f schkbk.f schkbl.f schkec.f 
+   schkgg.f schkgk.f schkgl.f schkhs.f schksb.f schkst.f 
+   sckglm.f sckgqr.f sckgsv.f scklse.f 
+   sdrges.f sdrgev.f sdrgsx.f sdrgvx.f 
+   sdrvbd.f sdrves.f sdrvev.f sdrvgg.f sdrvsg.f 
+   sdrvst.f sdrvsx.f sdrvvx.f 
+   serrbd.f serrec.f serred.f serrgg.f serrhs.f serrst.f 
+   sget02.f sget10.f sget22.f sget23.f sget24.f sget31.f 
+   sget32.f sget33.f sget34.f sget35.f sget36.f 
+   sget37.f sget38.f sget39.f sget51.f sget52.f sget53.f 
+   sget54.f sglmts.f sgqrts.f sgrqts.f sgsvts.f 
+   shst01.f slarfy.f slarhs.f slatm4.f slctes.f slctsx.f slsets.f sort01.f 
+   sort03.f ssbt21.f ssgt01.f sslect.f sspt21.f sstt21.f 
+   sstt22.f ssyt21.f ssyt22.f)
+
+set(CEIGTST  cchkee.f 
+   cbdt01.f cbdt02.f cbdt03.f 
+   cchkbb.f cchkbd.f cchkbk.f cchkbl.f cchkec.f 
+   cchkgg.f cchkgk.f cchkgl.f cchkhb.f cchkhs.f cchkst.f 
+   cckglm.f cckgqr.f cckgsv.f ccklse.f 
+   cdrges.f cdrgev.f cdrgsx.f cdrgvx.f 
+   cdrvbd.f cdrves.f cdrvev.f cdrvgg.f cdrvsg.f 
+   cdrvst.f cdrvsx.f cdrvvx.f 
+   cerrbd.f cerrec.f cerred.f cerrgg.f cerrhs.f cerrst.f 
+   cget02.f cget10.f cget22.f cget23.f cget24.f 
+   cget35.f cget36.f cget37.f cget38.f cget51.f cget52.f 
+   cget54.f cglmts.f cgqrts.f cgrqts.f cgsvts.f 
+   chbt21.f chet21.f chet22.f chpt21.f chst01.f 
+   clarfy.f clarhs.f clatm4.f clctes.f clctsx.f clsets.f csbmv.f 
+   csgt01.f cslect.f 
+   cstt21.f cstt22.f cunt01.f cunt03.f)
+
+set(DZIGTST  dlafts.f dlahd2.f dlasum.f dlatb9.f dstech.f dstect.f 
+   dsvdch.f dsvdct.f dsxt1.f)
+
+set(DEIGTST  dchkee.f 
+   dbdt01.f dbdt02.f dbdt03.f 
+   dchkbb.f dchkbd.f dchkbk.f dchkbl.f dchkec.f 
+   dchkgg.f dchkgk.f dchkgl.f dchkhs.f dchksb.f dchkst.f 
+   dckglm.f dckgqr.f dckgsv.f dcklse.f 
+   ddrges.f ddrgev.f ddrgsx.f ddrgvx.f 
+   ddrvbd.f ddrves.f ddrvev.f ddrvgg.f ddrvsg.f 
+   ddrvst.f ddrvsx.f ddrvvx.f 
+   derrbd.f derrec.f derred.f derrgg.f derrhs.f derrst.f 
+   dget02.f dget10.f dget22.f dget23.f dget24.f dget31.f 
+   dget32.f dget33.f dget34.f dget35.f dget36.f 
+   dget37.f dget38.f dget39.f dget51.f dget52.f dget53.f 
+   dget54.f dglmts.f dgqrts.f dgrqts.f dgsvts.f 
+   dhst01.f dlarfy.f dlarhs.f dlatm4.f dlctes.f dlctsx.f dlsets.f dort01.f 
+   dort03.f dsbt21.f dsgt01.f dslect.f dspt21.f dstt21.f 
+   dstt22.f dsyt21.f dsyt22.f)
+
+set(ZEIGTST  zchkee.f 
+   zbdt01.f zbdt02.f zbdt03.f 
+   zchkbb.f zchkbd.f zchkbk.f zchkbl.f zchkec.f 
+   zchkgg.f zchkgk.f zchkgl.f zchkhb.f zchkhs.f zchkst.f 
+   zckglm.f zckgqr.f zckgsv.f zcklse.f 
+   zdrges.f zdrgev.f zdrgsx.f zdrgvx.f 
+   zdrvbd.f zdrves.f zdrvev.f zdrvgg.f zdrvsg.f 
+   zdrvst.f zdrvsx.f zdrvvx.f 
+   zerrbd.f zerrec.f zerred.f zerrgg.f zerrhs.f zerrst.f 
+   zget02.f zget10.f zget22.f zget23.f zget24.f 
+   zget35.f zget36.f zget37.f zget38.f zget51.f zget52.f 
+   zget54.f zglmts.f zgqrts.f zgrqts.f zgsvts.f 
+   zhbt21.f zhet21.f zhet22.f zhpt21.f zhst01.f 
+   zlarfy.f zlarhs.f zlatm4.f zlctes.f zlctsx.f zlsets.f zsbmv.f 
+   zsgt01.f zslect.f 
+   zstt21.f zstt22.f zunt01.f zunt03.f)
+
+macro(add_eig_executable name )
+  add_executable(${name} ${ARGN})
+  target_link_libraries(${name} tmglib lapack )
+endmacro(add_eig_executable)
+
+add_eig_executable(xeigtsts ${SEIGTST} ${SCIGTST} ${AEIGTST} 
+  ${SECOND_SRC} )
+
+add_eig_executable(xeigtstc ${CEIGTST} ${SCIGTST} ${AEIGTST}
+  ${SECOND_SRC} )
+
+add_eig_executable(xeigtstd ${DEIGTST} ${DZIGTST} ${AEIGTST} 
+  ${DSECOND_SRC} )
+
+add_eig_executable(xeigtstz ${ZEIGTST} ${DZIGTST} ${AEIGTST}
+  ${DSECOND_SRC} )
diff --git a/TESTING/LIN/CMakeLists.txt b/TESTING/LIN/CMakeLists.txt
new file mode 100644 (file)
index 0000000..41f0686
--- /dev/null
@@ -0,0 +1,223 @@
+set(ALINTST  
+   aladhd.f alaerh.f alaesm.f alahd.f alareq.f 
+   alasum.f alasvm.f chkxer.f icopy.f ilaenv.f xlaenv.f xerbla.f)
+
+set(SCLNTST slaord.f)
+
+set(DZLNTST dlaord.f )
+
+set(SLINTST  schkaa.f 
+   schkeq.f schkgb.f schkge.f schkgt.f 
+   schklq.f schkpb.f schkpo.f schkps.f schkpp.f 
+   schkpt.f schkq3.f schkql.f schkqp.f schkqr.f schkrq.f 
+   schksp.f schksy.f schktb.f schktp.f schktr.f 
+   schktz.f 
+   sdrvgt.f sdrvls.f sdrvpb.f 
+   sdrvpp.f sdrvpt.f sdrvsp.f sdrvsy.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 
+   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 
+   sgtt05.f slaptm.f slarhs.f slatb4.f slatb5.f slattb.f slattp.f 
+   slattr.f slavsp.f slavsy.f slqt01.f slqt02.f 
+   slqt03.f spbt01.f spbt02.f spbt05.f spot01.f 
+   spot02.f spot03.f spot05.f spst01.f sppt01.f 
+   sppt02.f sppt03.f sppt05.f sptt01.f sptt02.f 
+   sptt05.f sqlt01.f sqlt02.f sqlt03.f sqpt01.f 
+   sqrt01.f sqrt02.f sqrt03.f sqrt11.f sqrt12.f 
+   sqrt13.f sqrt14.f sqrt15.f sqrt16.f sqrt17.f 
+   srqt01.f srqt02.f srqt03.f srzt01.f srzt02.f 
+   sspt01.f ssyt01.f 
+   stbt02.f stbt03.f stbt05.f stbt06.f stpt01.f 
+   stpt02.f stpt03.f stpt05.f stpt06.f strt01.f 
+   strt02.f strt03.f strt05.f strt06.f 
+   stzt01.f stzt02.f sgennd.f)
+
+if(USEXBLAS)
+  list(APPEND SLINTST sdrvgex.f serrgex.f sdrvgbx.f sdrvpox.f sebchvxx.f)
+else()
+  list(APPEND SLINTST sdrvge.f serrge.f sdrvgb.f sdrvpo.f)
+endif()
+
+set(CLINTST  cchkaa.f 
+   cchkeq.f cchkgb.f cchkge.f cchkgt.f 
+   cchkhe.f cchkhp.f cchklq.f cchkpb.f 
+   cchkpo.f cchkps.f cchkpp.f cchkpt.f cchkq3.f cchkql.f cchkqp.f 
+   cchkqr.f cchkrq.f cchksp.f cchksy.f cchktb.f 
+   cchktp.f cchktr.f cchktz.f 
+   cdrvgt.f cdrvhe.f cdrvhp.f 
+   cdrvls.f cdrvpb.f cdrvpp.f cdrvpt.f 
+   cdrvsp.f cdrvsy.f 
+   cerrgt.f cerrhe.f cerrlq.f 
+   cerrls.f cerrps.f cerrql.f cerrqp.f 
+   cerrqr.f cerrrq.f cerrsy.f cerrtr.f cerrtz.f 
+   cerrvx.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 
+   cgtt05.f chet01.f chpt01.f claipd.f claptm.f clarhs.f clatb4.f clatb5.f 
+   clatsp.f clatsy.f clattb.f clattp.f clattr.f 
+   clavhe.f clavhp.f clavsp.f clavsy.f clqt01.f 
+   clqt02.f clqt03.f cpbt01.f cpbt02.f cpbt05.f 
+   cpot01.f cpot02.f cpot03.f cpot05.f cpst01.f 
+   cppt01.f cppt02.f cppt03.f cppt05.f cptt01.f 
+   cptt02.f cptt05.f cqlt01.f cqlt02.f cqlt03.f 
+   cqpt01.f cqrt01.f cqrt02.f cqrt03.f cqrt11.f 
+   cqrt12.f cqrt13.f cqrt14.f cqrt15.f cqrt16.f 
+   cqrt17.f crqt01.f crqt02.f crqt03.f crzt01.f crzt02.f 
+   csbmv.f  cspt01.f 
+   cspt02.f cspt03.f csyt01.f csyt02.f csyt03.f 
+   ctbt02.f ctbt03.f ctbt05.f ctbt06.f ctpt01.f 
+   ctpt02.f ctpt03.f ctpt05.f ctpt06.f ctrt01.f 
+   ctrt02.f ctrt03.f ctrt05.f ctrt06.f 
+   ctzt01.f ctzt02.f sget06.f cgennd.f)
+
+if(USEXBLAS)
+  list(APPEND 
+    CLINTST cdrvgex.f cdrvgbx.f cerrgex.f cdrvpox.f cerrpox.f cebchvxx.f)
+else()
+  list(APPEND CLINTST cdrvge.f cdrvgb.f cerrge.f cdrvpo.f cerrpo.f)
+endif()
+
+set(DLINTST  dchkaa.f 
+   dchkeq.f dchkgb.f dchkge.f dchkgt.f 
+   dchklq.f dchkpb.f dchkpo.f dchkps.f dchkpp.f 
+   dchkpt.f dchkq3.f dchkql.f dchkqp.f dchkqr.f dchkrq.f 
+   dchksp.f dchksy.f dchktb.f dchktp.f dchktr.f 
+   dchktz.f 
+   ddrvgt.f ddrvls.f ddrvpb.f 
+   ddrvpp.f ddrvpt.f ddrvsp.f ddrvsy.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 
+   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 
+   dgtt05.f dlaptm.f dlarhs.f dlatb4.f dlatb5.f dlattb.f dlattp.f 
+   dlattr.f dlavsp.f dlavsy.f dlqt01.f dlqt02.f 
+   dlqt03.f dpbt01.f dpbt02.f dpbt05.f dpot01.f 
+   dpot02.f dpot03.f dpot05.f dpst01.f dppt01.f 
+   dppt02.f dppt03.f dppt05.f dptt01.f dptt02.f 
+   dptt05.f dqlt01.f dqlt02.f dqlt03.f dqpt01.f 
+   dqrt01.f dqrt02.f dqrt03.f dqrt11.f dqrt12.f 
+   dqrt13.f dqrt14.f dqrt15.f dqrt16.f dqrt17.f 
+   drqt01.f drqt02.f drqt03.f drzt01.f drzt02.f 
+   dspt01.f dsyt01.f 
+   dtbt02.f dtbt03.f dtbt05.f dtbt06.f dtpt01.f 
+   dtpt02.f dtpt03.f dtpt05.f dtpt06.f dtrt01.f 
+   dtrt02.f dtrt03.f dtrt05.f dtrt06.f 
+   dtzt01.f dtzt02.f dgennd.f)
+
+if(USEXBLAS)
+  list(APPEND 
+    DLINTST  ddrvgex.f ddrvgbx.f derrgex.f ddrvpox.f derrpox.f debchvxx.f)
+else()
+  list(APPEND
+    DLINTST  ddrvge.f ddrvgb.f derrge.f ddrvpo.f derrpo.f)
+endif()
+
+set(ZLINTST  zchkaa.f 
+   zchkeq.f zchkgb.f zchkge.f zchkgt.f 
+   zchkhe.f zchkhp.f zchklq.f zchkpb.f 
+   zchkpo.f zchkps.f zchkpp.f zchkpt.f zchkq3.f zchkql.f zchkqp.f 
+   zchkqr.f zchkrq.f zchksp.f zchksy.f zchktb.f 
+   zchktp.f zchktr.f zchktz.f 
+   zdrvgt.f zdrvhe.f zdrvhp.f 
+   zdrvls.f zdrvpb.f zdrvpp.f zdrvpt.f 
+   zdrvsp.f zdrvsy.f 
+   zerrgt.f zerrhe.f zerrlq.f 
+   zerrls.f zerrps.f zerrql.f zerrqp.f 
+   zerrqr.f zerrrq.f zerrsy.f zerrtr.f zerrtz.f 
+   zerrvx.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 zhpt01.f zlaipd.f zlaptm.f zlarhs.f zlatb4.f zlatb5.f 
+   zlatsp.f zlatsy.f zlattb.f zlattp.f zlattr.f 
+   zlavhe.f zlavhp.f zlavsp.f zlavsy.f zlqt01.f 
+   zlqt02.f zlqt03.f zpbt01.f zpbt02.f zpbt05.f 
+   zpot01.f zpot02.f zpot03.f zpot05.f zpst01.f 
+   zppt01.f zppt02.f zppt03.f zppt05.f zptt01.f 
+   zptt02.f zptt05.f zqlt01.f zqlt02.f zqlt03.f 
+   zqpt01.f zqrt01.f zqrt02.f zqrt03.f zqrt11.f 
+   zqrt12.f zqrt13.f zqrt14.f zqrt15.f zqrt16.f 
+   zqrt17.f zrqt01.f zrqt02.f zrqt03.f zrzt01.f zrzt02.f 
+   zsbmv.f  zspt01.f 
+   zspt02.f zspt03.f zsyt01.f zsyt02.f zsyt03.f 
+   ztbt02.f ztbt03.f ztbt05.f ztbt06.f ztpt01.f 
+   ztpt02.f ztpt03.f ztpt05.f ztpt06.f ztrt01.f 
+   ztrt02.f ztrt03.f ztrt05.f ztrt06.f 
+   ztzt01.f ztzt02.f dget06.f zgennd.f)
+
+if(USEXBLAS)
+  list(APPEND
+    ZLINTST  zdrvgex.f zdrvgbx.f zerrgex.f zdrvpox.f zerrpox.f zebchvxx.f)
+else()
+  list(APPEND
+    ZLINTST  zdrvge.f zdrvgb.f zerrge.f zdrvpo.f zerrpo.f)
+endif()
+
+set(DSLINTST  dchkab.f 
+       ddrvab.f ddrvac.f derrab.f derrac.f dget08.f          
+       alaerh.f alahd.f  aladhd.f alareq.f 
+       chkxer.f dlarhs.f dlatb4.f xerbla.f 
+       dget02.f dpot06.f)
+
+set(ZCLINTST  zchkab.f 
+       zdrvab.f zdrvac.f zerrab.f zerrac.f zget08.f          
+       alaerh.f alahd.f  aladhd.f alareq.f 
+       chkxer.f zget02.f zlarhs.f zlatb4.f 
+       zsbmv.f  xerbla.f zpot06.f zlaipd.f)
+
+set(SLINTSTRFP  schkrfp.f sdrvrfp.f sdrvrf1.f sdrvrf2.f sdrvrf3.f sdrvrf4.f serrrfp.f 
+       slatb4.f slarhs.f sget04.f spot01.f spot03.f spot02.f 
+       chkxer.f xerbla.f alaerh.f aladhd.f alahd.f alasvm.f )
+
+set(DLINTSTRFP  dchkrfp.f ddrvrfp.f ddrvrf1.f ddrvrf2.f ddrvrf3.f ddrvrf4.f derrrfp.f 
+       dlatb4.f dlarhs.f dget04.f dpot01.f dpot03.f dpot02.f 
+       chkxer.f xerbla.f alaerh.f aladhd.f alahd.f alasvm.f )
+
+set(CLINTSTRFP  cchkrfp.f cdrvrfp.f cdrvrf1.f cdrvrf2.f cdrvrf3.f cdrvrf4.f cerrrfp.f 
+  claipd.f clatb4.f clarhs.f csbmv.f cget04.f cpot01.f cpot03.f cpot02.f 
+  chkxer.f xerbla.f alaerh.f aladhd.f alahd.f alasvm.f )
+
+set(ZLINTSTRFP  zchkrfp.f zdrvrfp.f zdrvrf1.f zdrvrf2.f zdrvrf3.f zdrvrf4.f zerrrfp.f 
+  zlatb4.f zlaipd.f zlarhs.f zsbmv.f zget04.f zpot01.f zpot03.f zpot02.f 
+  chkxer.f xerbla.f alaerh.f aladhd.f alahd.f alasvm.f )
+
+macro(add_lin_executable name )
+  add_executable(${name} ${ARGN})
+  target_link_libraries(${name} tmglib lapack)
+endmacro(add_lin_executable)
+
+add_lin_executable(xlintsts ${ALINTST} ${SCLNTST} ${SLINTST} 
+  ${SECOND_SRC} )
+
+add_lin_executable(xlintstc  ${ALINTST} ${CLINTST} ${SCLNTST}
+  ${SECOND_SRC} )
+add_lin_executable(xlintstd  ${ALINTST} ${DLINTST} ${DZLNTST}
+  ${DSECOND_SRC})
+add_lin_executable(xlintstz  ${ALINTST} ${ZLINTST} ${DZLNTST}
+  ${DSECOND_SRC})
+add_lin_executable(xlintstds ${DSLINTST}
+               ${SECOND_SRC} 
+               ${DSECOND_SRC} )
+add_lin_executable(xlintstzc ${ZCLINTST}
+               ${SECOND_SRC} 
+               ${DSECOND_SRC} )
+add_lin_executable(xlintstrfs ${SLINTSTRFP}
+               ${SECOND_SRC})
+add_lin_executable(xlintstrfd ${DLINTSTRFP}
+  ${DSECOND_SRC})
+add_lin_executable(xlintstrfc  ${CLINTSTRFP}
+  ${SECOND_SRC})
+add_lin_executable(xlintstrfz ${ZLINTSTRFP}
+  ${DSECOND_SRC})
+
diff --git a/TESTING/MATGEN/CMakeLists.txt b/TESTING/MATGEN/CMakeLists.txt
new file mode 100644 (file)
index 0000000..884019b
--- /dev/null
@@ -0,0 +1,69 @@
+#######################################################################
+#  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
+#     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 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)
+
+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)
+
+set(DZATGEN  dlatm1.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)
+
+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(ALLOBJ ${SMATGEN} ${CMATGEN} ${SCATGEN} ${DMATGEN} ${ZMATGEN}
+  ${DZATGEN})
+if(BUILD_SINGLE)
+  set(ALLOBJ $(SMATGEN) $(SCATGEN))
+endif()
+if(BUILD_DOUBLE)
+  set(ALLOBJ $(DMATGEN) $(DZATGEN))
+endif()
+if(BUILD_COMPLEX)
+  set(ALLOBJ  $(CMATGEN) $(SCATGEN))
+endif()
+if(BUILD_COMPLEX16)
+  set(ALLOBJ $(ZMATGEN) $(DZATGEN))
+endif()
+add_library(tmglib ${ALLOBJ} )
+
diff --git a/TESTING/runtest.cmake b/TESTING/runtest.cmake
new file mode 100644 (file)
index 0000000..49fd9ad
--- /dev/null
@@ -0,0 +1,31 @@
+# Replace INTDIR with the value of $ENV{CMAKE_CONFIG_TYPE} that is set
+# by ctest when -C Debug|Releaes|etc is given, and INDIR is passed
+# in from the main cmake run and is the variable that is used
+# by the build system to specify the build directory
+if(NOT "${INTDIR}" STREQUAL ".")
+  set(TEST_ORIG "${TEST}")
+  string(REPLACE "${INTDIR}" "$ENV{CMAKE_CONFIG_TYPE}" TEST "${TEST}")
+  if("$ENV{CMAKE_CONFIG_TYPE}" STREQUAL "")
+    if(NOT EXISTS "${TEST}")
+      message("Warning: CMAKE_CONFIG_TYPE not defined did you forget the -C option for ctest?")
+      message(FATAL_ERROR "Could not find test executable: ${TEST_ORIG}")
+    endif()
+  endif()
+endif()
+set(ARGS )
+if(DEFINED OUTPUT)
+  set(ARGS OUTPUT_FILE "${OUTPUT}"  ERROR_FILE "${OUTPUT}.err")
+endif()
+if(DEFINED INPUT)
+  list(APPEND ARGS INPUT_FILE "${INPUT}")
+endif()
+message("Running: ${TEST}")
+message("ARGS= ${ARGS}")
+execute_process(COMMAND "${TEST}" 
+  ${ARGS}
+  RESULT_VARIABLE RET)
+# if the test does not return 0, then fail it
+if(NOT ${RET} EQUAL 0)
+  message(FATAL_ERROR "Test ${TEST} returned ${RET}")
+endif()
+message( "Test ${TEST} returned ${RET}")
\ No newline at end of file
diff --git a/cmake_install.cmake b/cmake_install.cmake
new file mode 100644 (file)
index 0000000..0317b84
--- /dev/null
@@ -0,0 +1,39 @@
+# Install script for directory: /Users/julie/Documents/Boulot/lapack-dev/lapack/trunk
+
+# Set the install prefix
+IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  SET(CMAKE_INSTALL_PREFIX "/usr/local")
+ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
+STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  IF(BUILD_TYPE)
+    STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  ELSE(BUILD_TYPE)
+    SET(CMAKE_INSTALL_CONFIG_NAME "")
+  ENDIF(BUILD_TYPE)
+  MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+
+# Set the component getting installed.
+IF(NOT CMAKE_INSTALL_COMPONENT)
+  IF(COMPONENT)
+    MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
+    SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  ELSE(COMPONENT)
+    SET(CMAKE_INSTALL_COMPONENT)
+  ENDIF(COMPONENT)
+ENDIF(NOT CMAKE_INSTALL_COMPONENT)
+
+IF(CMAKE_INSTALL_COMPONENT)
+  SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+ELSE(CMAKE_INSTALL_COMPONENT)
+  SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+ENDIF(CMAKE_INSTALL_COMPONENT)
+
+FILE(WRITE "/Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/${CMAKE_INSTALL_MANIFEST}" "")
+FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES})
+  FILE(APPEND "/Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/${CMAKE_INSTALL_MANIFEST}" "${file}\n")
+ENDFOREACH(file)
diff --git a/lapack-config-version.cmake.in b/lapack-config-version.cmake.in
new file mode 100644 (file)
index 0000000..2caeb4a
--- /dev/null
@@ -0,0 +1,8 @@
+set(PACKAGE_VERSION "@LAPACK_VERSION@")
+if(NOT ${PACKAGE_FIND_VERSION} VERSION_GREATER ${PACKAGE_VERSION})
+  set(PACKAGE_VERSION_COMPATIBLE 1)
+  if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${PACKAGE_VERSION})
+    set(PACKAGE_VERSION_EXACT 1)
+  endif()
+endif()
+
diff --git a/lapack-config.cmake.in b/lapack-config.cmake.in
new file mode 100644 (file)
index 0000000..8d60cc8
--- /dev/null
@@ -0,0 +1 @@
+include("@LAPACK_BINARY_DIR@/lapack-targets.cmake")