summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXianyi Zhang <xianyi@iscas.ac.cn>2012-02-19 22:56:06 +0800
committerXianyi Zhang <xianyi@iscas.ac.cn>2012-02-19 22:56:06 +0800
commit0caa5616f27bac9a246715c9166163fb29e2b8a5 (patch)
tree78e6a081063fc6598d91530b71862574fa03c9c8
parent0d3647c395b162d9dfd9300b1ae0616f9c8cc94b (diff)
parent727e6d83c05d0fba4f8fd9a04f84cf032eaaca6e (diff)
downloadopenblas-0caa5616f27bac9a246715c9166163fb29e2b8a5.tar.gz
openblas-0caa5616f27bac9a246715c9166163fb29e2b8a5.tar.bz2
openblas-0caa5616f27bac9a246715c9166163fb29e2b8a5.zip
Merge branch 'hotfix-0.1alpha2.5'
-rw-r--r--Changelog.txt13
-rw-r--r--Makefile89
-rw-r--r--Makefile.rule2
-rw-r--r--README2
-rw-r--r--common_thread.h16
-rw-r--r--cpuid_x86.c6
-rw-r--r--ctest/Makefile21
-rw-r--r--exports/Makefile2
-rw-r--r--kernel/x86_64/zdot_sse.S4
-rw-r--r--kernel/x86_64/zdot_sse2.S18
-rw-r--r--kernel/x86_64/zgemv_t.S4
-rw-r--r--patch.for_lapack-3.4.0889
-rw-r--r--test/Makefile53
13 files changed, 1058 insertions, 61 deletions
diff --git a/Changelog.txt b/Changelog.txt
index 48c5a727d..cd0413610 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,5 +1,18 @@
OpenBLAS ChangeLog
====================================================================
+Version 0.1 alpha2.5
+19-Feb-2012
+common:
+ * Upgraded LAPACK to 3.4.0 version
+ * Fixed a bug on Mac OS X. Don't require SystemStubs on OS X.
+ SystemStubs does not exist on Lion. Thank Stefan Karpinski.
+ * Improved README with using OpenMP. Check the internal threads
+ count less than or equal to omp_get_max_threads()
+x86/x86_64:
+ * Auto-detect Intel Core i6/i7 (Sandy Bridge) CPU with Nehalem assembly kernels
+ * Fixed some bugs on MingW 64-bit including zgemv, cdot, zdot.
+
+====================================================================
Version 0.1 alpha2.4
18-Sep-2011
common:
diff --git a/Makefile b/Makefile
index 56d491077..2f56480f9 100644
--- a/Makefile
+++ b/Makefile
@@ -57,6 +57,13 @@ else
@echo " (Multi threaded; Max num-threads is $(NUM_THREADS))"
endif
+ifeq ($(USE_OPENMP), 1)
+ @echo
+ @echo " Use OpenMP in the multithreading. Becasue of ignoring OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS flags, "
+ @echo " you should use OMP_NUM_THREADS environment variable to control the number of threads."
+ @echo
+endif
+
ifeq ($(OSNAME), Darwin)
@echo "WARNING: If you plan to use the dynamic library $(LIBDYNNAME), you must run:"
@echo
@@ -195,47 +202,47 @@ ifeq ($(NO_LAPACK), 1)
netlib :
else
-netlib : lapack-3.1.1 patch.for_lapack-3.1.1 lapack-3.1.1/make.inc
+netlib : lapack-3.4.0 patch.for_lapack-3.4.0 lapack-3.4.0/make.inc
ifndef NOFORTRAN
- -@$(MAKE) -C lapack-3.1.1 lapacklib
+ -@$(MAKE) -C lapack-3.4.0 lapacklib
endif
endif
-prof_lapack : lapack-3.1.1 lapack-3.1.1/make.inc
- -@$(MAKE) -C lapack-3.1.1 lapack_prof
+prof_lapack : lapack-3.4.0 lapack-3.4.0/make.inc
+ -@$(MAKE) -C lapack-3.4.0 lapack_prof
-lapack-3.1.1/make.inc :
+lapack-3.4.0/make.inc :
ifndef NOFORTRAN
- -@echo "FORTRAN = $(FC)" > lapack-3.1.1/make.inc
- -@echo "OPTS = $(FFLAGS)" >> lapack-3.1.1/make.inc
- -@echo "POPTS = $(FPFLAGS)" >> lapack-3.1.1/make.inc
- -@echo "NOOPT = $(FFLAGS) -O0" >> lapack-3.1.1/make.inc
- -@echo "PNOOPT = $(FPFLAGS) -O0" >> lapack-3.1.1/make.inc
- -@echo "LOADOPTS = $(FFLAGS) $(EXTRALIB)" >> lapack-3.1.1/make.inc
- -@echo "ARCH = $(AR)" >> lapack-3.1.1/make.inc
- -@echo "RANLIB = $(RANLIB)" >> lapack-3.1.1/make.inc
- -@echo "LAPACKLIB = ../$(LIBNAME)" >> lapack-3.1.1/make.inc
- -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> lapack-3.1.1/make.inc
- -@echo "SUFFIX = $(SUFFIX)" >> lapack-3.1.1/make.inc
- -@echo "PSUFFIX = $(PSUFFIX)" >> lapack-3.1.1/make.inc
-# -@echo "CEXTRALIB = $(CEXTRALIB)" >> lapack-3.1.1/make.inc
- -@cat make.inc >> lapack-3.1.1/make.inc
-endif
-
-lapack-3.1.1 : lapack-3.1.1.tgz
+ -@echo "FORTRAN = $(FC)" > lapack-3.4.0/make.inc
+ -@echo "OPTS = $(FFLAGS)" >> lapack-3.4.0/make.inc
+ -@echo "POPTS = $(FPFLAGS)" >> lapack-3.4.0/make.inc
+ -@echo "NOOPT = $(FFLAGS) -O0" >> lapack-3.4.0/make.inc
+ -@echo "PNOOPT = $(FPFLAGS) -O0" >> lapack-3.4.0/make.inc
+ -@echo "LOADOPTS = $(FFLAGS) $(EXTRALIB)" >> lapack-3.4.0/make.inc
+ -@echo "ARCH = $(AR)" >> lapack-3.4.0/make.inc
+ -@echo "RANLIB = $(RANLIB)" >> lapack-3.4.0/make.inc
+ -@echo "LAPACKLIB = ../$(LIBNAME)" >> lapack-3.4.0/make.inc
+ -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> lapack-3.4.0/make.inc
+ -@echo "SUFFIX = $(SUFFIX)" >> lapack-3.4.0/make.inc
+ -@echo "PSUFFIX = $(PSUFFIX)" >> lapack-3.4.0/make.inc
+# -@echo "CEXTRALIB = $(CEXTRALIB)" >> lapack-3.4.0/make.inc
+ -@cat make.inc >> lapack-3.4.0/make.inc
+endif
+
+lapack-3.4.0 : lapack-3.4.0.tgz
ifndef NOFORTRAN
- @if test `$(MD5SUM) lapack-3.1.1.tgz | $(AWK) '{print $$1}'` = 00b21551a899bcfbaa7b8443e1faeef9; then \
+ @if test `$(MD5SUM) lapack-3.4.0.tgz | $(AWK) '{print $$1}'` = 02d5706ec03ba885fc246e5fa10d8c70; then \
echo $(TAR) zxf $< ;\
- $(TAR) zxf $< && (cd lapack-3.1.1; $(PATCH) -p1 < ../patch.for_lapack-3.1.1) ;\
+ $(TAR) zxf $< && (cd lapack-3.4.0; $(PATCH) -p1 < ../patch.for_lapack-3.4.0) ;\
else \
- echo " lapack-3.1.1.tgz check sum is wrong (Please use orignal)." ;\
- rm -rf lapack-3.1.1 ;\
+ echo " lapack-3.4.0.tgz check sum is wrong (Please use orignal)." ;\
+ rm -rf lapack-3.4.0 ;\
fi
endif
-lapack-3.1.1.tgz :
+lapack-3.4.0.tgz :
ifndef NOFORTRAN
- -wget http://www.netlib.org/lapack/lapack-3.1.1.tgz
+ -wget http://www.netlib.org/lapack/lapack-3.4.0.tgz
endif
large.tgz :
@@ -248,21 +255,21 @@ ifndef NOFORTRAN
-wget http://www.netlib.org/lapack/timing/timing.tgz
endif
-lapack-timing : lapack-3.1.1 large.tgz timing.tgz
+lapack-timing : lapack-3.4.0 large.tgz timing.tgz
ifndef NOFORTRAN
- (cd lapack-3.1.1; $(TAR) zxf ../timing.tgz TIMING)
- (cd lapack-3.1.1/TIMING; $(TAR) zxf ../../large.tgz )
- make -C lapack-3.1.1 tmglib
- make -C lapack-3.1.1/TIMING
+ (cd lapack-3.4.0; $(TAR) zxf ../timing.tgz TIMING)
+ (cd lapack-3.4.0/TIMING; $(TAR) zxf ../../large.tgz )
+ make -C lapack-3.4.0 tmglib
+ make -C lapack-3.4.0/TIMING
endif
lapack-test :
- $(MAKE) -C lapack-3.1.1 tmglib
- $(MAKE) -C lapack-3.1.1/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintsts xlintstz xlintstzc
- @rm -f lapack-3.1.1/TESTING/*.out
- $(MAKE) -j 1 -C lapack-3.1.1/TESTING
- $(GREP) failed lapack-3.1.1/TESTING/*.out
+ $(MAKE) -C lapack-3.4.0 tmglib
+ $(MAKE) -C lapack-3.4.0/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintsts xlintstz xlintstzc
+ @rm -f lapack-3.4.0/TESTING/*.out
+ $(MAKE) -j 1 -C lapack-3.4.0/TESTING
+ $(GREP) failed lapack-3.4.0/TESTING/*.out
dummy :
@@ -280,9 +287,9 @@ clean ::
#endif
@rm -f *.$(LIBSUFFIX) *.so *~ *.exe getarch getarch_2nd *.dll *.lib *.$(SUFFIX) *.dwf libopenblas.$(LIBSUFFIX) libopenblas_p.$(LIBSUFFIX) *.lnk myconfig.h
@rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib
- @if test -d lapack-3.1.1; then \
- echo deleting lapack-3.1.1; \
- rm -rf lapack-3.1.1 ;\
+ @if test -d lapack-3.4.0; then \
+ echo deleting lapack-3.4.0; \
+ rm -rf lapack-3.4.0 ;\
fi
@rm -f *.grd Makefile.conf_last config_last.h
@echo Done. \ No newline at end of file
diff --git a/Makefile.rule b/Makefile.rule
index a7ba203fc..db1a48d9f 100644
--- a/Makefile.rule
+++ b/Makefile.rule
@@ -3,7 +3,7 @@
#
# This library's version
-VERSION = 0.1alpha2.4
+VERSION = 0.1alpha2.5
# You can specify the target architecture, otherwise it's
# automatically detected.
diff --git a/README b/README
index 248741544..79ab48d8b 100644
--- a/README
+++ b/README
@@ -48,7 +48,7 @@ export OMP_NUM_THREADS=4
The priorities are OPENBLAS_NUM_THREADS > GOTO_NUM_THREADS > OMP_NUM_THREADS.
-If you compile this lib with USE_OPENMP=1, you should only set OMP_NUM_THREADS environment variable.
+If you compile this lib with USE_OPENMP=1, you should set OMP_NUM_THREADS environment variable. OpenBLAS ignores OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS with USE_OPENMP=1.
4.2 Set the number of threads with calling functions. for example,
void goto_set_num_threads(int num_threads);
diff --git a/common_thread.h b/common_thread.h
index d74af3287..dc963a635 100644
--- a/common_thread.h
+++ b/common_thread.h
@@ -39,6 +39,11 @@
#ifndef COMMON_THREAD
#define COMMON_THREAD
+#ifdef USE_OPENMP
+#include <omp.h>
+extern void goto_set_num_threads(int nthreads);
+#endif
+
/* Basic Thread Debugging */
#undef SMP_DEBUG
@@ -126,6 +131,10 @@ extern int blas_server_avail;
static __inline int num_cpu_avail(int level) {
+#ifdef USE_OPENMP
+ int openmp_nthreads=0;
+#endif
+
if ((blas_cpu_number == 1)
#ifdef USE_OPENMP
@@ -133,6 +142,13 @@ static __inline int num_cpu_avail(int level) {
#endif
) return 1;
+#ifdef USE_OPENMP
+ openmp_nthreads=omp_get_max_threads();
+ if (blas_cpu_number != openmp_nthreads) {
+ goto_set_num_threads(openmp_nthreads);
+ }
+#endif
+
return blas_cpu_number;
}
diff --git a/cpuid_x86.c b/cpuid_x86.c
index b68f53573..e183e9fc3 100644
--- a/cpuid_x86.c
+++ b/cpuid_x86.c
@@ -981,6 +981,9 @@ int get_cpuname(void){
// Pentium (Clarkdale) / Pentium Mobile (Arrandale)
// Xeon (Clarkdale), 32nm
return CPUTYPE_NEHALEM;
+ case 10:
+ //Intel Core i5-2000 /i7-2000 (Sandy Bridge)
+ return CPUTYPE_NEHALEM;
case 12:
//Xeon Processor 5600 (Westmere-EP)
return CPUTYPE_NEHALEM;
@@ -1310,6 +1313,9 @@ int get_coretype(void){
// Pentium (Clarkdale) / Pentium Mobile (Arrandale)
// Xeon (Clarkdale), 32nm
return CORE_NEHALEM;
+ case 10:
+ //Intel Core i5-2000 /i7-2000 (Sandy Bridge)
+ return CORE_NEHALEM;
case 12:
//Xeon Processor 5600 (Westmere-EP)
return CORE_NEHALEM;
diff --git a/ctest/Makefile b/ctest/Makefile
index c15a68109..1e07bd154 100644
--- a/ctest/Makefile
+++ b/ctest/Makefile
@@ -36,22 +36,43 @@ ztestl3o = c_zblas3.o c_z3chke.o auxiliary.o c_xerbla.o constant.o
all :: all1 all2 all3
all1: xscblat1 xdcblat1 xccblat1 xzcblat1
+ifeq ($(USE_OPENMP), 1)
+ OMP_NUM_THREADS=2 ./xscblat1
+ OMP_NUM_THREADS=2 ./xdcblat1
+ OMP_NUM_THREADS=2 ./xccblat1
+ OMP_NUM_THREADS=2 ./xzcblat1
+else
OPENBLAS_NUM_THREADS=2 ./xscblat1
OPENBLAS_NUM_THREADS=2 ./xdcblat1
OPENBLAS_NUM_THREADS=2 ./xccblat1
OPENBLAS_NUM_THREADS=2 ./xzcblat1
+endif
all2: xscblat2 xdcblat2 xccblat2 xzcblat2
+ifeq ($(USE_OPENMP), 1)
+ OMP_NUM_THREADS=2 ./xscblat2 < sin2
+ OMP_NUM_THREADS=2 ./xdcblat2 < din2
+ OMP_NUM_THREADS=2 ./xccblat2 < cin2
+ OMP_NUM_THREADS=2 ./xzcblat2 < zin2
+else
OPENBLAS_NUM_THREADS=2 ./xscblat2 < sin2
OPENBLAS_NUM_THREADS=2 ./xdcblat2 < din2
OPENBLAS_NUM_THREADS=2 ./xccblat2 < cin2
OPENBLAS_NUM_THREADS=2 ./xzcblat2 < zin2
+endif
all3: xscblat3 xdcblat3 xccblat3 xzcblat3
+ifeq ($(USE_OPENMP), 1)
+ OMP_NUM_THREADS=2 ./xscblat3 < sin3
+ OMP_NUM_THREADS=2 ./xdcblat3 < din3
+ OMP_NUM_THREADS=2 ./xccblat3 < cin3
+ OMP_NUM_THREADS=2 ./xzcblat3 < zin3
+else
OPENBLAS_NUM_THREADS=2 ./xscblat3 < sin3
OPENBLAS_NUM_THREADS=2 ./xdcblat3 < din3
OPENBLAS_NUM_THREADS=2 ./xccblat3 < cin3
OPENBLAS_NUM_THREADS=2 ./xzcblat3 < zin3
+endif
clean ::
rm -f x*
diff --git a/exports/Makefile b/exports/Makefile
index 08f496501..69050989c 100644
--- a/exports/Makefile
+++ b/exports/Makefile
@@ -66,7 +66,7 @@ ifeq ($(BINARY32), 1)
-lib /machine:i386 /def:libgoto2.def
else
$(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
- --entry _dllinit -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
+ --entry $(FU)dllinit -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
-lib /machine:X64 /def:libgoto2.def
endif
diff --git a/kernel/x86_64/zdot_sse.S b/kernel/x86_64/zdot_sse.S
index 3302b9088..13804e0f8 100644
--- a/kernel/x86_64/zdot_sse.S
+++ b/kernel/x86_64/zdot_sse.S
@@ -3483,6 +3483,10 @@
subss %xmm3, %xmm1
#endif
unpcklps %xmm1, %xmm0
+
+#ifdef WINDOWS_ABI
+ movq %xmm0, %rax
+#endif
RESTOREREGISTERS
diff --git a/kernel/x86_64/zdot_sse2.S b/kernel/x86_64/zdot_sse2.S
index 77fa8e378..63acecc08 100644
--- a/kernel/x86_64/zdot_sse2.S
+++ b/kernel/x86_64/zdot_sse2.S
@@ -39,14 +39,19 @@
#define ASSEMBLER
#include "common.h"
+#ifndef WINDOWS_ABI
#define N ARG1 /* rdi */
#define X ARG2 /* rsi */
#define INCX ARG3 /* rdx */
#define Y ARG4 /* rcx */
-#ifndef WINDOWS_ABI
#define INCY ARG5 /* r8 */
#else
-#define INCY %r10
+#define RESULT_ADDRESS ARG1 /*rcx*/
+#define N ARG2 /* rdx */
+#define X ARG3 /* r8 */
+#define INCX ARG4 /* r9*/
+#define Y %r10
+#define INCY %r11
#endif
#include "l1param.h"
@@ -64,7 +69,8 @@
PROFCODE
#ifdef WINDOWS_ABI
- movq 40(%rsp), INCY
+ movq 40(%rsp), Y
+ movq 48(%rsp), INCY
#endif
SAVEREGISTERS
@@ -1544,6 +1550,12 @@
subsd %xmm3, %xmm1
#endif
+#ifdef WINDOWS_ABI
+ movq RESULT_ADDRESS, %rax
+ movsd %xmm0, (%rax)
+ movsd %xmm1, 8(%rax)
+#endif
+
RESTOREREGISTERS
ret
diff --git a/kernel/x86_64/zgemv_t.S b/kernel/x86_64/zgemv_t.S
index d7f9d49fe..14abc8bfa 100644
--- a/kernel/x86_64/zgemv_t.S
+++ b/kernel/x86_64/zgemv_t.S
@@ -131,8 +131,8 @@
movq OLD_LDA, LDA
movq OLD_X, X
- movaps %xmm3, %xmm0
- movss OLD_ALPHA_I, %xmm1
+ movapd %xmm3, %xmm0
+ movsd OLD_ALPHA_I, %xmm1
#endif
movq OLD_INCX, INCX
diff --git a/patch.for_lapack-3.4.0 b/patch.for_lapack-3.4.0
new file mode 100644
index 000000000..9d3cd5f31
--- /dev/null
+++ b/patch.for_lapack-3.4.0
@@ -0,0 +1,889 @@
+diff -ruN lapack-3.4.0.old/INSTALL/Makefile lapack-3.4.0/INSTALL/Makefile
+--- lapack-3.4.0.old/INSTALL/Makefile 2011-10-01 10:37:03.000000000 +0800
++++ lapack-3.4.0/INSTALL/Makefile 2011-11-28 12:36:12.934827991 +0800
+@@ -27,7 +27,7 @@
+ $(LOADER) $(LOADOPTS) -o testversion ilaver.o LAPACK_version.o
+
+ clean:
+- rm -f *.o
++ rm -f *.o test*
+ .f.o:
+ $(FORTRAN) $(OPTS) -c $< -o $@
+
+diff -ruN lapack-3.4.0.old/Makefile lapack-3.4.0/Makefile
+--- lapack-3.4.0.old/Makefile 2011-11-12 05:08:04.000000000 +0800
++++ lapack-3.4.0/Makefile 2011-11-28 11:00:23.084828003 +0800
+@@ -20,9 +20,12 @@
+ blaslib:
+ ( cd BLAS/SRC; $(MAKE) )
+
+-lapacklib: lapack_install
++lapacklib:
+ ( cd SRC; $(MAKE) )
+
++lapack_prof:
++ ( cd SRC; $(MAKE) lapack_prof)
++
+ variants:
+ ( cd SRC/VARIANTS ; $(MAKE))
+
+
+diff -ruN lapack-3.4.0.old/SRC/Makefile lapack-3.4.0/SRC/Makefile
+--- lapack-3.4.0.old/SRC/Makefile 2011-10-04 10:58:05.000000000 +0800
++++ lapack-3.4.0/SRC/Makefile 2011-11-28 14:39:35.394827997 +0800
+@@ -54,356 +54,364 @@
+ #
+ #######################################################################
+
+-ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o \
+- ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \
+- ../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o
++ALLAUX = ilaenv.$(SUFFIX) ieeeck.$(SUFFIX) lsamen.$(SUFFIX) xerbla_array.$(SUFFIX) iparmq.$(SUFFIX) \
++ ilaprec.$(SUFFIX) ilatrans.$(SUFFIX) ilauplo.$(SUFFIX) iladiag.$(SUFFIX) chla_transtype.$(SUFFIX) \
++ ../INSTALL/ilaver.$(SUFFIX)
+
+ SCLAUX = \
+- sbdsdc.o \
+- sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \
+- slaed0.o slaed1.o slaed2.o slaed3.o slaed4.o slaed5.o slaed6.o \
+- slaed7.o slaed8.o slaed9.o slaeda.o slaev2.o slagtf.o \
+- slagts.o slamrg.o slanst.o \
+- slapy2.o slapy3.o slarnv.o \
+- slarra.o slarrb.o slarrc.o slarrd.o slarre.o slarrf.o slarrj.o \
+- slarrk.o slarrr.o slaneg.o \
+- slartg.o slaruv.o slas2.o slascl.o \
+- slasd0.o slasd1.o slasd2.o slasd3.o slasd4.o slasd5.o slasd6.o \
+- slasd7.o slasd8.o slasda.o slasdq.o slasdt.o \
+- slaset.o slasq1.o slasq2.o slasq3.o slasq4.o slasq5.o slasq6.o \
+- slasr.o slasrt.o slassq.o slasv2.o spttrf.o sstebz.o sstedc.o \
+- ssteqr.o ssterf.o slaisnan.o sisnan.o \
+- slartgp.o slartgs.o \
+- ../INSTALL/second_$(TIMER).o
++ sbdsdc.$(SUFFIX) \
++ sbdsqr.$(SUFFIX) sdisna.$(SUFFIX) slabad.$(SUFFIX) slacpy.$(SUFFIX) sladiv.$(SUFFIX) slae2.$(SUFFIX) slaebz.$(SUFFIX) \
++ slaed0.$(SUFFIX) slaed1.$(SUFFIX) slaed2.$(SUFFIX) slaed3.$(SUFFIX) slaed4.$(SUFFIX) slaed5.$(SUFFIX) slaed6.$(SUFFIX) \
++ slaed7.$(SUFFIX) slaed8.$(SUFFIX) slaed9.$(SUFFIX) slaeda.$(SUFFIX) slaev2.$(SUFFIX) slagtf.$(SUFFIX) \
++ slagts.$(SUFFIX) slamrg.$(SUFFIX) slanst.$(SUFFIX) \
++ slapy2.$(SUFFIX) slapy3.$(SUFFIX) slarnv.$(SUFFIX) \
++ slarra.$(SUFFIX) slarrb.$(SUFFIX) slarrc.$(SUFFIX) slarrd.$(SUFFIX) slarre.$(SUFFIX) slarrf.$(SUFFIX) slarrj.$(SUFFIX) \
++ slarrk.$(SUFFIX) slarrr.$(SUFFIX) slaneg.$(SUFFIX) \
++ slartg.$(SUFFIX) slaruv.$(SUFFIX) slas2.$(SUFFIX) slascl.$(SUFFIX) \
++ slasd0.$(SUFFIX) slasd1.$(SUFFIX) slasd2.$(SUFFIX) slasd3.$(SUFFIX) slasd4.$(SUFFIX) slasd5.$(SUFFIX) slasd6.$(SUFFIX) \
++ slasd7.$(SUFFIX) slasd8.$(SUFFIX) slasda.$(SUFFIX) slasdq.$(SUFFIX) slasdt.$(SUFFIX) \
++ slaset.$(SUFFIX) slasq1.$(SUFFIX) slasq2.$(SUFFIX) slasq3.$(SUFFIX) slasq4.$(SUFFIX) slasq5.$(SUFFIX) slasq6.$(SUFFIX) \
++ slasr.$(SUFFIX) slasrt.$(SUFFIX) slassq.$(SUFFIX) slasv2.$(SUFFIX) spttrf.$(SUFFIX) sstebz.$(SUFFIX) sstedc.$(SUFFIX) \
++ ssteqr.$(SUFFIX) ssterf.$(SUFFIX) slaisnan.$(SUFFIX) sisnan.$(SUFFIX) \
++ slartgp.$(SUFFIX) slartgs.$(SUFFIX) \
++ ../INSTALL/second_$(TIMER).$(SUFFIX)
+
+ DZLAUX = \
+- dbdsdc.o \
+- dbdsqr.o ddisna.o dlabad.o dlacpy.o dladiv.o dlae2.o dlaebz.o \
+- dlaed0.o dlaed1.o dlaed2.o dlaed3.o dlaed4.o dlaed5.o dlaed6.o \
+- dlaed7.o dlaed8.o dlaed9.o dlaeda.o dlaev2.o dlagtf.o \
+- dlagts.o dlamrg.o dlanst.o \
+- dlapy2.o dlapy3.o dlarnv.o \
+- dlarra.o dlarrb.o dlarrc.o dlarrd.o dlarre.o dlarrf.o dlarrj.o \
+- dlarrk.o dlarrr.o dlaneg.o \
+- dlartg.o dlaruv.o dlas2.o dlascl.o \
+- dlasd0.o dlasd1.o dlasd2.o dlasd3.o dlasd4.o dlasd5.o dlasd6.o \
+- dlasd7.o dlasd8.o dlasda.o dlasdq.o dlasdt.o \
+- dlaset.o dlasq1.o dlasq2.o dlasq3.o dlasq4.o dlasq5.o dlasq6.o \
+- dlasr.o dlasrt.o dlassq.o dlasv2.o dpttrf.o dstebz.o dstedc.o \
+- dsteqr.o dsterf.o dlaisnan.o disnan.o \
+- dlartgp.o dlartgs.o \
+- ../INSTALL/dlamch.o ../INSTALL/dsecnd_$(TIMER).o
++ dbdsdc.$(SUFFIX) \
++ dbdsqr.$(SUFFIX) ddisna.$(SUFFIX) dlabad.$(SUFFIX) dlacpy.$(SUFFIX) dladiv.$(SUFFIX) dlae2.$(SUFFIX) dlaebz.$(SUFFIX) \
++ dlaed0.$(SUFFIX) dlaed1.$(SUFFIX) dlaed2.$(SUFFIX) dlaed3.$(SUFFIX) dlaed4.$(SUFFIX) dlaed5.$(SUFFIX) dlaed6.$(SUFFIX) \
++ dlaed7.$(SUFFIX) dlaed8.$(SUFFIX) dlaed9.$(SUFFIX) dlaeda.$(SUFFIX) dlaev2.$(SUFFIX) dlagtf.$(SUFFIX) \
++ dlagts.$(SUFFIX) dlamrg.$(SUFFIX) dlanst.$(SUFFIX) \
++ dlapy2.$(SUFFIX) dlapy3.$(SUFFIX) dlarnv.$(SUFFIX) \
++ dlarra.$(SUFFIX) dlarrb.$(SUFFIX) dlarrc.$(SUFFIX) dlarrd.$(SUFFIX) dlarre.$(SUFFIX) dlarrf.$(SUFFIX) dlarrj.$(SUFFIX) \
++ dlarrk.$(SUFFIX) dlarrr.$(SUFFIX) dlaneg.$(SUFFIX) \
++ dlartg.$(SUFFIX) dlaruv.$(SUFFIX) dlas2.$(SUFFIX) dlascl.$(SUFFIX) \
++ dlasd0.$(SUFFIX) dlasd1.$(SUFFIX) dlasd2.$(SUFFIX) dlasd3.$(SUFFIX) dlasd4.$(SUFFIX) dlasd5.$(SUFFIX) dlasd6.$(SUFFIX) \
++ dlasd7.$(SUFFIX) dlasd8.$(SUFFIX) dlasda.$(SUFFIX) dlasdq.$(SUFFIX) dlasdt.$(SUFFIX) \
++ dlaset.$(SUFFIX) dlasq1.$(SUFFIX) dlasq2.$(SUFFIX) dlasq3.$(SUFFIX) dlasq4.$(SUFFIX) dlasq5.$(SUFFIX) dlasq6.$(SUFFIX) \
++ dlasr.$(SUFFIX) dlasrt.$(SUFFIX) dlassq.$(SUFFIX) dlasv2.$(SUFFIX) dpttrf.$(SUFFIX) dstebz.$(SUFFIX) dstedc.$(SUFFIX) \
++ dsteqr.$(SUFFIX) dsterf.$(SUFFIX) dlaisnan.$(SUFFIX) disnan.$(SUFFIX) \
++ dlartgp.$(SUFFIX) dlartgs.$(SUFFIX) \
++ ../INSTALL/dsecnd_$(TIMER).$(SUFFIX)
+
+ SLASRC = \
+- sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \
+- sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o \
+- sgebrd.o sgecon.o sgeequ.o sgees.o sgeesx.o sgeev.o sgeevx.o \
+- sgegs.o sgegv.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o \
+- sgels.o sgelsd.o sgelss.o sgelsx.o sgelsy.o sgeql2.o sgeqlf.o \
+- sgeqp3.o sgeqpf.o sgeqr2.o sgeqr2p.o sgeqrf.o sgeqrfp.o sgerfs.o \
+- sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvx.o \
+- sgetc2.o sgetf2.o sgetri.o \
+- sggbak.o sggbal.o sgges.o sggesx.o sggev.o sggevx.o \
+- sggglm.o sgghrd.o sgglse.o sggqrf.o \
+- sggrqf.o sggsvd.o sggsvp.o sgtcon.o sgtrfs.o sgtsv.o \
+- sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o \
+- shsein.o shseqr.o slabrd.o slacon.o slacn2.o \
+- slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o \
+- slahrd.o slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o \
+- slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o \
+- slansy.o slantb.o slantp.o slantr.o slanv2.o \
+- slapll.o slapmt.o \
+- slaqgb.o slaqge.o slaqp2.o slaqps.o slaqsb.o slaqsp.o slaqsy.o \
+- slaqr0.o slaqr1.o slaqr2.o slaqr3.o slaqr4.o slaqr5.o \
+- slaqtr.o slar1v.o slar2v.o ilaslr.o ilaslc.o \
+- slarf.o slarfb.o slarfg.o slarfgp.o slarft.o slarfx.o slargv.o \
+- slarrv.o slartv.o \
+- slarz.o slarzb.o slarzt.o slaswp.o slasy2.o slasyf.o \
+- slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o slatzm.o \
+- slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \
+- sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \
+- sorgrq.o sorgtr.o sorm2l.o sorm2r.o \
+- sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \
+- sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \
+- spbstf.o spbsv.o spbsvx.o \
+- spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o \
+- sposvx.o spotf2.o spotri.o spstrf.o spstf2.o \
+- sppcon.o sppequ.o \
+- spprfs.o sppsv.o sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o \
+- spteqr.o sptrfs.o sptsv.o sptsvx.o spttrs.o sptts2.o srscl.o \
+- ssbev.o ssbevd.o ssbevx.o ssbgst.o ssbgv.o ssbgvd.o ssbgvx.o \
+- ssbtrd.o sspcon.o sspev.o sspevd.o sspevx.o sspgst.o \
+- sspgv.o sspgvd.o sspgvx.o ssprfs.o sspsv.o sspsvx.o ssptrd.o \
+- ssptrf.o ssptri.o ssptrs.o sstegr.o sstein.o sstev.o sstevd.o sstevr.o \
+- sstevx.o ssycon.o ssyev.o ssyevd.o ssyevr.o ssyevx.o ssygs2.o \
+- ssygst.o ssygv.o ssygvd.o ssygvx.o ssyrfs.o ssysv.o ssysvx.o \
+- ssytd2.o ssytf2.o ssytrd.o ssytrf.o ssytri.o ssytri2.o ssytri2x.o \
+- ssyswapr.o ssytrs.o ssytrs2.o ssyconv.o stbcon.o \
+- stbrfs.o stbtrs.o stgevc.o stgex2.o stgexc.o stgsen.o \
+- stgsja.o stgsna.o stgsy2.o stgsyl.o stpcon.o stprfs.o stptri.o \
+- stptrs.o \
+- strcon.o strevc.o strexc.o strrfs.o strsen.o strsna.o strsyl.o \
+- strti2.o strtri.o strtrs.o stzrqf.o stzrzf.o sstemr.o \
+- slansf.o spftrf.o spftri.o spftrs.o ssfrk.o stfsm.o stftri.o stfttp.o \
+- stfttr.o stpttf.o stpttr.o strttf.o strttp.o \
+- sgejsv.o sgesvj.o sgsvj0.o sgsvj1.o \
+- sgeequb.o ssyequb.o spoequb.o sgbequb.o \
+- sbbcsd.o slapmr.o sorbdb.o sorcsd.o \
+- sgeqrt.o sgeqrt2.o sgeqrt3.o sgemqrt.o \
+- stpqrt.o stpqrt2.o stpmqrt.o stprfb.o
++ sgbbrd.$(SUFFIX) sgbcon.$(SUFFIX) sgbequ.$(SUFFIX) sgbrfs.$(SUFFIX) sgbsv.$(SUFFIX) \
++ sgbsvx.$(SUFFIX) sgbtf2.$(SUFFIX) sgbtrf.$(SUFFIX) sgbtrs.$(SUFFIX) sgebak.$(SUFFIX) sgebal.$(SUFFIX) sgebd2.$(SUFFIX) \
++ sgebrd.$(SUFFIX) sgecon.$(SUFFIX) sgeequ.$(SUFFIX) sgees.$(SUFFIX) sgeesx.$(SUFFIX) sgeev.$(SUFFIX) sgeevx.$(SUFFIX) \
++ sgegs.$(SUFFIX) sgegv.$(SUFFIX) sgehd2.$(SUFFIX) sgehrd.$(SUFFIX) sgelq2.$(SUFFIX) sgelqf.$(SUFFIX) \
++ sgels.$(SUFFIX) sgelsd.$(SUFFIX) sgelss.$(SUFFIX) sgelsx.$(SUFFIX) sgelsy.$(SUFFIX) sgeql2.$(SUFFIX) sgeqlf.$(SUFFIX) \
++ sgeqp3.$(SUFFIX) sgeqpf.$(SUFFIX) sgeqr2.$(SUFFIX) sgeqr2p.$(SUFFIX) sgeqrf.$(SUFFIX) sgeqrfp.$(SUFFIX) sgerfs.$(SUFFIX) \
++ sgerq2.$(SUFFIX) sgerqf.$(SUFFIX) sgesc2.$(SUFFIX) sgesdd.$(SUFFIX) sgesv.$(SUFFIX) sgesvd.$(SUFFIX) sgesvx.$(SUFFIX) \
++ sgetc2.$(SUFFIX) sgetri.$(SUFFIX) \
++ sggbak.$(SUFFIX) sggbal.$(SUFFIX) sgges.$(SUFFIX) sggesx.$(SUFFIX) sggev.$(SUFFIX) sggevx.$(SUFFIX) \
++ sggglm.$(SUFFIX) sgghrd.$(SUFFIX) sgglse.$(SUFFIX) sggqrf.$(SUFFIX) \
++ sggrqf.$(SUFFIX) sggsvd.$(SUFFIX) sggsvp.$(SUFFIX) sgtcon.$(SUFFIX) sgtrfs.$(SUFFIX) sgtsv.$(SUFFIX) \
++ sgtsvx.$(SUFFIX) sgttrf.$(SUFFIX) sgttrs.$(SUFFIX) sgtts2.$(SUFFIX) shgeqz.$(SUFFIX) \
++ shsein.$(SUFFIX) shseqr.$(SUFFIX) slabrd.$(SUFFIX) slacon.$(SUFFIX) slacn2.$(SUFFIX) \
++ slaein.$(SUFFIX) slaexc.$(SUFFIX) slag2.$(SUFFIX) slags2.$(SUFFIX) slagtm.$(SUFFIX) slagv2.$(SUFFIX) slahqr.$(SUFFIX) \
++ slahrd.$(SUFFIX) slahr2.$(SUFFIX) slaic1.$(SUFFIX) slaln2.$(SUFFIX) slals0.$(SUFFIX) slalsa.$(SUFFIX) slalsd.$(SUFFIX) \
++ slangb.$(SUFFIX) slange.$(SUFFIX) slangt.$(SUFFIX) slanhs.$(SUFFIX) slansb.$(SUFFIX) slansp.$(SUFFIX) \
++ slansy.$(SUFFIX) slantb.$(SUFFIX) slantp.$(SUFFIX) slantr.$(SUFFIX) slanv2.$(SUFFIX) \
++ slapll.$(SUFFIX) slapmt.$(SUFFIX) \
++ slaqgb.$(SUFFIX) slaqge.$(SUFFIX) slaqp2.$(SUFFIX) slaqps.$(SUFFIX) slaqsb.$(SUFFIX) slaqsp.$(SUFFIX) slaqsy.$(SUFFIX) \
++ slaqr0.$(SUFFIX) slaqr1.$(SUFFIX) slaqr2.$(SUFFIX) slaqr3.$(SUFFIX) slaqr4.$(SUFFIX) slaqr5.$(SUFFIX) \
++ slaqtr.$(SUFFIX) slar1v.$(SUFFIX) slar2v.$(SUFFIX) ilaslr.$(SUFFIX) ilaslc.$(SUFFIX) \
++ slarf.$(SUFFIX) slarfb.$(SUFFIX) slarfg.$(SUFFIX) slarfgp.$(SUFFIX) slarft.$(SUFFIX) slarfx.$(SUFFIX) slargv.$(SUFFIX) \
++ slarrv.$(SUFFIX) slartv.$(SUFFIX) \
++ slarz.$(SUFFIX) slarzb.$(SUFFIX) slarzt.$(SUFFIX) slasy2.$(SUFFIX) slasyf.$(SUFFIX) \
++ slatbs.$(SUFFIX) slatdf.$(SUFFIX) slatps.$(SUFFIX) slatrd.$(SUFFIX) slatrs.$(SUFFIX) slatrz.$(SUFFIX) slatzm.$(SUFFIX) \
++ sopgtr.$(SUFFIX) sopmtr.$(SUFFIX) sorg2l.$(SUFFIX) sorg2r.$(SUFFIX) \
++ sorgbr.$(SUFFIX) sorghr.$(SUFFIX) sorgl2.$(SUFFIX) sorglq.$(SUFFIX) sorgql.$(SUFFIX) sorgqr.$(SUFFIX) sorgr2.$(SUFFIX) \
++ sorgrq.$(SUFFIX) sorgtr.$(SUFFIX) sorm2l.$(SUFFIX) sorm2r.$(SUFFIX) \
++ sormbr.$(SUFFIX) sormhr.$(SUFFIX) sorml2.$(SUFFIX) sormlq.$(SUFFIX) sormql.$(SUFFIX) sormqr.$(SUFFIX) sormr2.$(SUFFIX) \
++ sormr3.$(SUFFIX) sormrq.$(SUFFIX) sormrz.$(SUFFIX) sormtr.$(SUFFIX) spbcon.$(SUFFIX) spbequ.$(SUFFIX) spbrfs.$(SUFFIX) \
++ spbstf.$(SUFFIX) spbsv.$(SUFFIX) spbsvx.$(SUFFIX) \
++ spbtf2.$(SUFFIX) spbtrf.$(SUFFIX) spbtrs.$(SUFFIX) spocon.$(SUFFIX) spoequ.$(SUFFIX) sporfs.$(SUFFIX) sposv.$(SUFFIX) \
++ sposvx.$(SUFFIX) spotri.$(SUFFIX) spstrf.$(SUFFIX) spstf2.$(SUFFIX) \
++ sppcon.$(SUFFIX) sppequ.$(SUFFIX) \
++ spprfs.$(SUFFIX) sppsv.$(SUFFIX) sppsvx.$(SUFFIX) spptrf.$(SUFFIX) spptri.$(SUFFIX) spptrs.$(SUFFIX) sptcon.$(SUFFIX) \
++ spteqr.$(SUFFIX) sptrfs.$(SUFFIX) sptsv.$(SUFFIX) sptsvx.$(SUFFIX) spttrs.$(SUFFIX) sptts2.$(SUFFIX) srscl.$(SUFFIX) \
++ ssbev.$(SUFFIX) ssbevd.$(SUFFIX) ssbevx.$(SUFFIX) ssbgst.$(SUFFIX) ssbgv.$(SUFFIX) ssbgvd.$(SUFFIX) ssbgvx.$(SUFFIX) \
++ ssbtrd.$(SUFFIX) sspcon.$(SUFFIX) sspev.$(SUFFIX) sspevd.$(SUFFIX) sspevx.$(SUFFIX) sspgst.$(SUFFIX) \
++ sspgv.$(SUFFIX) sspgvd.$(SUFFIX) sspgvx.$(SUFFIX) ssprfs.$(SUFFIX) sspsv.$(SUFFIX) sspsvx.$(SUFFIX) ssptrd.$(SUFFIX) \
++ ssptrf.$(SUFFIX) ssptri.$(SUFFIX) ssptrs.$(SUFFIX) sstegr.$(SUFFIX) sstein.$(SUFFIX) sstev.$(SUFFIX) sstevd.$(SUFFIX) sstevr.$(SUFFIX) \
++ sstevx.$(SUFFIX) ssycon.$(SUFFIX) ssyev.$(SUFFIX) ssyevd.$(SUFFIX) ssyevr.$(SUFFIX) ssyevx.$(SUFFIX) ssygs2.$(SUFFIX) \
++ ssygst.$(SUFFIX) ssygv.$(SUFFIX) ssygvd.$(SUFFIX) ssygvx.$(SUFFIX) ssyrfs.$(SUFFIX) ssysv.$(SUFFIX) ssysvx.$(SUFFIX) \
++ ssytd2.$(SUFFIX) ssytf2.$(SUFFIX) ssytrd.$(SUFFIX) ssytrf.$(SUFFIX) ssytri.$(SUFFIX) ssytri2.$(SUFFIX) ssytri2x.$(SUFFIX) \
++ ssyswapr.$(SUFFIX) ssytrs.$(SUFFIX) ssytrs2.$(SUFFIX) ssyconv.$(SUFFIX) stbcon.$(SUFFIX) \
++ stbrfs.$(SUFFIX) stbtrs.$(SUFFIX) stgevc.$(SUFFIX) stgex2.$(SUFFIX) stgexc.$(SUFFIX) stgsen.$(SUFFIX) \
++ stgsja.$(SUFFIX) stgsna.$(SUFFIX) stgsy2.$(SUFFIX) stgsyl.$(SUFFIX) stpcon.$(SUFFIX) stprfs.$(SUFFIX) stptri.$(SUFFIX) \
++ stptrs.$(SUFFIX) \
++ strcon.$(SUFFIX) strevc.$(SUFFIX) strexc.$(SUFFIX) strrfs.$(SUFFIX) strsen.$(SUFFIX) strsna.$(SUFFIX) strsyl.$(SUFFIX) \
++ strtrs.$(SUFFIX) stzrqf.$(SUFFIX) stzrzf.$(SUFFIX) sstemr.$(SUFFIX) \
++ slansf.$(SUFFIX) spftrf.$(SUFFIX) spftri.$(SUFFIX) spftrs.$(SUFFIX) ssfrk.$(SUFFIX) stfsm.$(SUFFIX) stftri.$(SUFFIX) stfttp.$(SUFFIX) \
++ stfttr.$(SUFFIX) stpttf.$(SUFFIX) stpttr.$(SUFFIX) strttf.$(SUFFIX) strttp.$(SUFFIX) \
++ sgejsv.$(SUFFIX) sgesvj.$(SUFFIX) sgsvj0.$(SUFFIX) sgsvj1.$(SUFFIX) \
++ sgeequb.$(SUFFIX) ssyequb.$(SUFFIX) spoequb.$(SUFFIX) sgbequb.$(SUFFIX) \
++ sbbcsd.$(SUFFIX) slapmr.$(SUFFIX) sorbdb.$(SUFFIX) sorcsd.$(SUFFIX) \
++ sgeqrt.$(SUFFIX) sgeqrt2.$(SUFFIX) sgeqrt3.$(SUFFIX) sgemqrt.$(SUFFIX) \
++ stpqrt.$(SUFFIX) stpqrt2.$(SUFFIX) stpmqrt.$(SUFFIX) stprfb.$(SUFFIX)
+
+-DSLASRC = spotrs.o sgetrs.o spotrf.o sgetrf.o
++DSLASRC = spotrs.$(SUFFIX)
+
+ ifdef USEXBLAS
+-SXLASRC = sgesvxx.o sgerfsx.o sla_gerfsx_extended.o sla_geamv.o \
+- sla_gercond.o sla_gerpvgrw.o ssysvxx.o ssyrfsx.o \
+- sla_syrfsx_extended.o sla_syamv.o sla_syrcond.o sla_syrpvgrw.o \
+- sposvxx.o sporfsx.o sla_porfsx_extended.o sla_porcond.o \
+- sla_porpvgrw.o sgbsvxx.o sgbrfsx.o sla_gbrfsx_extended.o \
+- sla_gbamv.o sla_gbrcond.o sla_gbrpvgrw.o sla_lin_berr.o slarscl2.o \
+- slascl2.o sla_wwaddw.o
++SXLASRC = sgesvxx.$(SUFFIX) sgerfsx.$(SUFFIX) sla_gerfsx_extended.$(SUFFIX) sla_geamv.$(SUFFIX) \
++ sla_gercond.$(SUFFIX) sla_gerpvgrw.$(SUFFIX) ssysvxx.$(SUFFIX) ssyrfsx.$(SUFFIX) \
++ sla_syrfsx_extended.$(SUFFIX) sla_syamv.$(SUFFIX) sla_syrcond.$(SUFFIX) sla_syrpvgrw.$(SUFFIX) \
++ sposvxx.$(SUFFIX) sporfsx.$(SUFFIX) sla_porfsx_extended.$(SUFFIX) sla_porcond.$(SUFFIX) \
++ sla_porpvgrw.$(SUFFIX) sgbsvxx.$(SUFFIX) sgbrfsx.$(SUFFIX) sla_gbrfsx_extended.$(SUFFIX) \
++ sla_gbamv.$(SUFFIX) sla_gbrcond.$(SUFFIX) sla_gbrpvgrw.$(SUFFIX) sla_lin_berr.$(SUFFIX) slarscl2.$(SUFFIX) \
++ slascl2.$(SUFFIX) sla_wwaddw.$(SUFFIX)
+ endif
+
+ CLASRC = \
+- cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \
+- cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o \
+- cgecon.o cgeequ.o cgees.o cgeesx.o cgeev.o cgeevx.o \
+- cgegs.o cgegv.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o \
+- cgels.o cgelsd.o cgelss.o cgelsx.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o \
+- cgeqpf.o cgeqr2.o cgeqr2p.o cgeqrf.o cgeqrfp.o cgerfs.o \
+- cgerq2.o cgerqf.o cgesc2.o cgesdd.o cgesv.o cgesvd.o \
+- cgesvx.o cgetc2.o cgetf2.o cgetri.o \
+- cggbak.o cggbal.o cgges.o cggesx.o cggev.o cggevx.o cggglm.o \
+- cgghrd.o cgglse.o cggqrf.o cggrqf.o \
+- cggsvd.o cggsvp.o \
+- cgtcon.o cgtrfs.o cgtsv.o cgtsvx.o cgttrf.o cgttrs.o cgtts2.o chbev.o \
+- chbevd.o chbevx.o chbgst.o chbgv.o chbgvd.o chbgvx.o chbtrd.o \
+- checon.o cheev.o cheevd.o cheevr.o cheevx.o chegs2.o chegst.o \
+- chegv.o chegvd.o chegvx.o cherfs.o chesv.o chesvx.o chetd2.o \
+- chetf2.o chetrd.o \
+- chetrf.o chetri.o chetri2.o chetri2x.o cheswapr.o \
+- chetrs.o chetrs2.o chgeqz.o chpcon.o chpev.o chpevd.o \
+- chpevx.o chpgst.o chpgv.o chpgvd.o chpgvx.o chprfs.o chpsv.o \
+- chpsvx.o \
+- chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o \
+- clacgv.o clacon.o clacn2.o clacp2.o clacpy.o clacrm.o clacrt.o cladiv.o \
+- claed0.o claed7.o claed8.o \
+- claein.o claesy.o claev2.o clags2.o clagtm.o \
+- clahef.o clahqr.o \
+- clahrd.o clahr2.o claic1.o clals0.o clalsa.o clalsd.o clangb.o clange.o clangt.o \
+- clanhb.o clanhe.o \
+- clanhp.o clanhs.o clanht.o clansb.o clansp.o clansy.o clantb.o \
+- clantp.o clantr.o clapll.o clapmt.o clarcm.o claqgb.o claqge.o \
+- claqhb.o claqhe.o claqhp.o claqp2.o claqps.o claqsb.o \
+- claqr0.o claqr1.o claqr2.o claqr3.o claqr4.o claqr5.o \
+- claqsp.o claqsy.o clar1v.o clar2v.o ilaclr.o ilaclc.o \
+- clarf.o clarfb.o clarfg.o clarft.o clarfgp.o \
+- clarfx.o clargv.o clarnv.o clarrv.o clartg.o clartv.o \
+- clarz.o clarzb.o clarzt.o clascl.o claset.o clasr.o classq.o \
+- claswp.o clasyf.o clatbs.o clatdf.o clatps.o clatrd.o clatrs.o clatrz.o \
+- clatzm.o clauu2.o clauum.o cpbcon.o cpbequ.o cpbrfs.o cpbstf.o cpbsv.o \
+- cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o \
+- cposv.o cposvx.o cpotf2.o cpotri.o cpstrf.o cpstf2.o \
+- cppcon.o cppequ.o cpprfs.o cppsv.o cppsvx.o cpptrf.o cpptri.o cpptrs.o \
+- cptcon.o cpteqr.o cptrfs.o cptsv.o cptsvx.o cpttrf.o cpttrs.o cptts2.o \
+- crot.o cspcon.o cspmv.o cspr.o csprfs.o cspsv.o \
+- cspsvx.o csptrf.o csptri.o csptrs.o csrscl.o cstedc.o \
+- cstegr.o cstein.o csteqr.o csycon.o csymv.o \
+- csyr.o csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o csytri2.o csytri2x.o \
+- csyswapr.o csytrs.o csytrs2.o csyconv.o ctbcon.o ctbrfs.o ctbtrs.o ctgevc.o ctgex2.o \
+- ctgexc.o ctgsen.o ctgsja.o ctgsna.o ctgsy2.o ctgsyl.o ctpcon.o \
+- ctprfs.o ctptri.o \
+- ctptrs.o ctrcon.o ctrevc.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \
+- ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrqf.o ctzrzf.o cung2l.o cung2r.o \
+- cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \
+- cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o \
+- cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \
+- cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \
+- chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \
+- ctfttr.o ctpttf.o ctpttr.o ctrttf.o ctrttp.o \
+- cgeequb.o cgbequb.o csyequb.o cpoequb.o cheequb.o \
+- cbbcsd.o clapmr.o cunbdb.o cuncsd.o \
+- cgeqrt.o cgeqrt2.o cgeqrt3.o cgemqrt.o \
+- ctpqrt.o ctpqrt2.o ctpmqrt.o ctprfb.o
++ cbdsqr.$(SUFFIX) cgbbrd.$(SUFFIX) cgbcon.$(SUFFIX) cgbequ.$(SUFFIX) cgbrfs.$(SUFFIX) cgbsv.$(SUFFIX) cgbsvx.$(SUFFIX) \
++ cgbtf2.$(SUFFIX) cgbtrf.$(SUFFIX) cgbtrs.$(SUFFIX) cgebak.$(SUFFIX) cgebal.$(SUFFIX) cgebd2.$(SUFFIX) cgebrd.$(SUFFIX) \
++ cgecon.$(SUFFIX) cgeequ.$(SUFFIX) cgees.$(SUFFIX) cgeesx.$(SUFFIX) cgeev.$(SUFFIX) cgeevx.$(SUFFIX) \
++ cgegs.$(SUFFIX) cgegv.$(SUFFIX) cgehd2.$(SUFFIX) cgehrd.$(SUFFIX) cgelq2.$(SUFFIX) cgelqf.$(SUFFIX) \
++ cgels.$(SUFFIX) cgelsd.$(SUFFIX) cgelss.$(SUFFIX) cgelsx.$(SUFFIX) cgelsy.$(SUFFIX) cgeql2.$(SUFFIX) cgeqlf.$(SUFFIX) cgeqp3.$(SUFFIX) \
++ cgeqpf.$(SUFFIX) cgeqr2.$(SUFFIX) cgeqr2p.$(SUFFIX) cgeqrf.$(SUFFIX) cgeqrfp.$(SUFFIX) cgerfs.$(SUFFIX) \
++ cgerq2.$(SUFFIX) cgerqf.$(SUFFIX) cgesc2.$(SUFFIX) cgesdd.$(SUFFIX) cgesv.$(SUFFIX) cgesvd.$(SUFFIX) \
++ cgesvx.$(SUFFIX) cgetc2.$(SUFFIX) cgetri.$(SUFFIX) \
++ cggbak.$(SUFFIX) cggbal.$(SUFFIX) cgges.$(SUFFIX) cggesx.$(SUFFIX) cggev.$(SUFFIX) cggevx.$(SUFFIX) cggglm.$(SUFFIX) \
++ cgghrd.$(SUFFIX) cgglse.$(SUFFIX) cggqrf.$(SUFFIX) cggrqf.$(SUFFIX) \
++ cggsvd.$(SUFFIX) cggsvp.$(SUFFIX) \
++ cgtcon.$(SUFFIX) cgtrfs.$(SUFFIX) cgtsv.$(SUFFIX) cgtsvx.$(SUFFIX) cgttrf.$(SUFFIX) cgttrs.$(SUFFIX) cgtts2.$(SUFFIX) chbev.$(SUFFIX) \
++ chbevd.$(SUFFIX) chbevx.$(SUFFIX) chbgst.$(SUFFIX) chbgv.$(SUFFIX) chbgvd.$(SUFFIX) chbgvx.$(SUFFIX) chbtrd.$(SUFFIX) \
++ checon.$(SUFFIX) cheev.$(SUFFIX) cheevd.$(SUFFIX) cheevr.$(SUFFIX) cheevx.$(SUFFIX) chegs2.$(SUFFIX) chegst.$(SUFFIX) \
++ chegv.$(SUFFIX) chegvd.$(SUFFIX) chegvx.$(SUFFIX) cherfs.$(SUFFIX) chesv.$(SUFFIX) chesvx.$(SUFFIX) chetd2.$(SUFFIX) \
++ chetf2.$(SUFFIX) chetrd.$(SUFFIX) \
++ chetrf.$(SUFFIX) chetri.$(SUFFIX) chetri2.$(SUFFIX) chetri2x.$(SUFFIX) cheswapr.$(SUFFIX) \
++ chetrs.$(SUFFIX) chetrs2.$(SUFFIX) chgeqz.$(SUFFIX) chpcon.$(SUFFIX) chpev.$(SUFFIX) chpevd.$(SUFFIX) \
++ chpevx.$(SUFFIX) chpgst.$(SUFFIX) chpgv.$(SUFFIX) chpgvd.$(SUFFIX) chpgvx.$(SUFFIX) chprfs.$(SUFFIX) chpsv.$(SUFFIX) \
++ chpsvx.$(SUFFIX) \
++ chptrd.$(SUFFIX) chptrf.$(SUFFIX) chptri.$(SUFFIX) chptrs.$(SUFFIX) chsein.$(SUFFIX) chseqr.$(SUFFIX) clabrd.$(SUFFIX) \
++ clacgv.$(SUFFIX) clacon.$(SUFFIX) clacn2.$(SUFFIX) clacp2.$(SUFFIX) clacpy.$(SUFFIX) clacrm.$(SUFFIX) clacrt.$(SUFFIX) cladiv.$(SUFFIX) \
++ claed0.$(SUFFIX) claed7.$(SUFFIX) claed8.$(SUFFIX) \
++ claein.$(SUFFIX) claesy.$(SUFFIX) claev2.$(SUFFIX) clags2.$(SUFFIX) clagtm.$(SUFFIX) \
++ clahef.$(SUFFIX) clahqr.$(SUFFIX) \
++ clahrd.$(SUFFIX) clahr2.$(SUFFIX) claic1.$(SUFFIX) clals0.$(SUFFIX) clalsa.$(SUFFIX) clalsd.$(SUFFIX) clangb.$(SUFFIX) clange.$(SUFFIX) clangt.$(SUFFIX) \
++ clanhb.$(SUFFIX) clanhe.$(SUFFIX) \
++ clanhp.$(SUFFIX) clanhs.$(SUFFIX) clanht.$(SUFFIX) clansb.$(SUFFIX) clansp.$(SUFFIX) clansy.$(SUFFIX) clantb.$(SUFFIX) \
++ clantp.$(SUFFIX) clantr.$(SUFFIX) clapll.$(SUFFIX) clapmt.$(SUFFIX) clarcm.$(SUFFIX) claqgb.$(SUFFIX) claqge.$(SUFFIX) \
++ claqhb.$(SUFFIX) claqhe.$(SUFFIX) claqhp.$(SUFFIX) claqp2.$(SUFFIX) claqps.$(SUFFIX) claqsb.$(SUFFIX) \
++ claqr0.$(SUFFIX) claqr1.$(SUFFIX) claqr2.$(SUFFIX) claqr3.$(SUFFIX) claqr4.$(SUFFIX) claqr5.$(SUFFIX) \
++ claqsp.$(SUFFIX) claqsy.$(SUFFIX) clar1v.$(SUFFIX) clar2v.$(SUFFIX) ilaclr.$(SUFFIX) ilaclc.$(SUFFIX) \
++ clarf.$(SUFFIX) clarfb.$(SUFFIX) clarfg.$(SUFFIX) clarft.$(SUFFIX) clarfgp.$(SUFFIX) \
++ clarfx.$(SUFFIX) clargv.$(SUFFIX) clarnv.$(SUFFIX) clarrv.$(SUFFIX) clartg.$(SUFFIX) clartv.$(SUFFIX) \
++ clarz.$(SUFFIX) clarzb.$(SUFFIX) clarzt.$(SUFFIX) clascl.$(SUFFIX) claset.$(SUFFIX) clasr.$(SUFFIX) classq.$(SUFFIX) \
++ clasyf.$(SUFFIX) clatbs.$(SUFFIX) clatdf.$(SUFFIX) clatps.$(SUFFIX) clatrd.$(SUFFIX) clatrs.$(SUFFIX) clatrz.$(SUFFIX) \
++ clatzm.$(SUFFIX) cpbcon.$(SUFFIX) cpbequ.$(SUFFIX) cpbrfs.$(SUFFIX) cpbstf.$(SUFFIX) cpbsv.$(SUFFIX) \
++ cpbsvx.$(SUFFIX) cpbtf2.$(SUFFIX) cpbtrf.$(SUFFIX) cpbtrs.$(SUFFIX) cpocon.$(SUFFIX) cpoequ.$(SUFFIX) cporfs.$(SUFFIX) \
++ cposv.$(SUFFIX) cposvx.$(SUFFIX) cpotri.$(SUFFIX) cpstrf.$(SUFFIX) cpstf2.$(SUFFIX) \
++ cppcon.$(SUFFIX) cppequ.$(SUFFIX) cpprfs.$(SUFFIX) cppsv.$(SUFFIX) cppsvx.$(SUFFIX) cpptrf.$(SUFFIX) cpptri.$(SUFFIX) cpptrs.$(SUFFIX) \
++ cptcon.$(SUFFIX) cpteqr.$(SUFFIX) cptrfs.$(SUFFIX) cptsv.$(SUFFIX) cptsvx.$(SUFFIX) cpttrf.$(SUFFIX) cpttrs.$(SUFFIX) cptts2.$(SUFFIX) \
++ crot.$(SUFFIX) cspcon.$(SUFFIX) cspmv.$(SUFFIX) cspr.$(SUFFIX) csprfs.$(SUFFIX) cspsv.$(SUFFIX) \
++ cspsvx.$(SUFFIX) csptrf.$(SUFFIX) csptri.$(SUFFIX) csptrs.$(SUFFIX) csrscl.$(SUFFIX) cstedc.$(SUFFIX) \
++ cstegr.$(SUFFIX) cstein.$(SUFFIX) csteqr.$(SUFFIX) csycon.$(SUFFIX) csymv.$(SUFFIX) \
++ csyr.$(SUFFIX) csyrfs.$(SUFFIX) csysv.$(SUFFIX) csysvx.$(SUFFIX) csytf2.$(SUFFIX) csytrf.$(SUFFIX) csytri.$(SUFFIX) csytri2.$(SUFFIX) csytri2x.$(SUFFIX) \
++ csyswapr.$(SUFFIX) csytrs.$(SUFFIX) csytrs2.$(SUFFIX) csyconv.$(SUFFIX) ctbcon.$(SUFFIX) ctbrfs.$(SUFFIX) ctbtrs.$(SUFFIX) ctgevc.$(SUFFIX) ctgex2.$(SUFFIX) \
++ ctgexc.$(SUFFIX) ctgsen.$(SUFFIX) ctgsja.$(SUFFIX) ctgsna.$(SUFFIX) ctgsy2.$(SUFFIX) ctgsyl.$(SUFFIX) ctpcon.$(SUFFIX) \
++ ctprfs.$(SUFFIX) ctptri.$(SUFFIX) \
++ ctptrs.$(SUFFIX) ctrcon.$(SUFFIX) ctrevc.$(SUFFIX) ctrexc.$(SUFFIX) ctrrfs.$(SUFFIX) ctrsen.$(SUFFIX) ctrsna.$(SUFFIX) \
++ ctrsyl.$(SUFFIX) ctrtrs.$(SUFFIX) ctzrqf.$(SUFFIX) ctzrzf.$(SUFFIX) cung2l.$(SUFFIX) cung2r.$(SUFFIX) \
++ cungbr.$(SUFFIX) cunghr.$(SUFFIX) cungl2.$(SUFFIX) cunglq.$(SUFFIX) cungql.$(SUFFIX) cungqr.$(SUFFIX) cungr2.$(SUFFIX) \
++ cungrq.$(SUFFIX) cungtr.$(SUFFIX) cunm2l.$(SUFFIX) cunm2r.$(SUFFIX) cunmbr.$(SUFFIX) cunmhr.$(SUFFIX) cunml2.$(SUFFIX) \
++ cunmlq.$(SUFFIX) cunmql.$(SUFFIX) cunmqr.$(SUFFIX) cunmr2.$(SUFFIX) cunmr3.$(SUFFIX) cunmrq.$(SUFFIX) cunmrz.$(SUFFIX) \
++ cunmtr.$(SUFFIX) cupgtr.$(SUFFIX) cupmtr.$(SUFFIX) icmax1.$(SUFFIX) scsum1.$(SUFFIX) cstemr.$(SUFFIX) \
++ chfrk.$(SUFFIX) ctfttp.$(SUFFIX) clanhf.$(SUFFIX) cpftrf.$(SUFFIX) cpftri.$(SUFFIX) cpftrs.$(SUFFIX) ctfsm.$(SUFFIX) ctftri.$(SUFFIX) \
++ ctfttr.$(SUFFIX) ctpttf.$(SUFFIX) ctpttr.$(SUFFIX) ctrttf.$(SUFFIX) ctrttp.$(SUFFIX) \
++ cgeequb.$(SUFFIX) cgbequb.$(SUFFIX) csyequb.$(SUFFIX) cpoequb.$(SUFFIX) cheequb.$(SUFFIX) \
++ cbbcsd.$(SUFFIX) clapmr.$(SUFFIX) cunbdb.$(SUFFIX) cuncsd.$(SUFFIX) \
++ cgeqrt.$(SUFFIX) cgeqrt2.$(SUFFIX) cgeqrt3.$(SUFFIX) cgemqrt.$(SUFFIX) \
++ ctpqrt.$(SUFFIX) ctpqrt2.$(SUFFIX) ctpmqrt.$(SUFFIX) ctprfb.$(SUFFIX)
+
+ ifdef USEXBLAS
+-CXLASRC = cgesvxx.o cgerfsx.o cla_gerfsx_extended.o cla_geamv.o \
+- cla_gercond_c.o cla_gercond_x.o cla_gerpvgrw.o \
+- csysvxx.o csyrfsx.o cla_syrfsx_extended.o cla_syamv.o \
+- cla_syrcond_c.o cla_syrcond_x.o cla_syrpvgrw.o \
+- cposvxx.o cporfsx.o cla_porfsx_extended.o \
+- cla_porcond_c.o cla_porcond_x.o cla_porpvgrw.o \
+- cgbsvxx.o cgbrfsx.o cla_gbrfsx_extended.o cla_gbamv.o \
+- cla_gbrcond_c.o cla_gbrcond_x.o cla_gbrpvgrw.o \
+- chesvxx.o cherfsx.o cla_herfsx_extended.o cla_heamv.o \
+- cla_hercond_c.o cla_hercond_x.o cla_herpvgrw.o \
+- cla_lin_berr.o clarscl2.o clascl2.o cla_wwaddw.o
++CXLASRC = cgesvxx.$(SUFFIX) cgerfsx.$(SUFFIX) cla_gerfsx_extended.$(SUFFIX) cla_geamv.$(SUFFIX) \
++ cla_gercond_c.$(SUFFIX) cla_gercond_x.$(SUFFIX) cla_gerpvgrw.$(SUFFIX) \
++ csysvxx.$(SUFFIX) csyrfsx.$(SUFFIX) cla_syrfsx_extended.$(SUFFIX) cla_syamv.$(SUFFIX) \
++ cla_syrcond_c.$(SUFFIX) cla_syrcond_x.$(SUFFIX) cla_syrpvgrw.$(SUFFIX) \
++ cposvxx.$(SUFFIX) cporfsx.$(SUFFIX) cla_porfsx_extended.$(SUFFIX) \
++ cla_porcond_c.$(SUFFIX) cla_porcond_x.$(SUFFIX) cla_porpvgrw.$(SUFFIX) \
++ cgbsvxx.$(SUFFIX) cgbrfsx.$(SUFFIX) cla_gbrfsx_extended.$(SUFFIX) cla_gbamv.$(SUFFIX) \
++ cla_gbrcond_c.$(SUFFIX) cla_gbrcond_x.$(SUFFIX) cla_gbrpvgrw.$(SUFFIX) \
++ chesvxx.$(SUFFIX) cherfsx.$(SUFFIX) cla_herfsx_extended.$(SUFFIX) cla_heamv.$(SUFFIX) \
++ cla_hercond_c.$(SUFFIX) cla_hercond_x.$(SUFFIX) cla_herpvgrw.$(SUFFIX) \
++ cla_lin_berr.$(SUFFIX) clarscl2.$(SUFFIX) clascl2.$(SUFFIX) cla_wwaddw.$(SUFFIX)
+ endif
+
+-ZCLASRC = cpotrs.o cgetrs.o cpotrf.o cgetrf.o
++ZCLASRC = cpotrs.$(SUFFIX)
+
+ DLASRC = \
+- dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \
+- dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o \
+- dgebrd.o dgecon.o dgeequ.o dgees.o dgeesx.o dgeev.o dgeevx.o \
+- dgegs.o dgegv.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o \
+- dgels.o dgelsd.o dgelss.o dgelsx.o dgelsy.o dgeql2.o dgeqlf.o \
+- dgeqp3.o dgeqpf.o dgeqr2.o dgeqr2p.o dgeqrf.o dgeqrfp.o dgerfs.o \
+- dgerq2.o dgerqf.o dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvx.o \
+- dgetc2.o dgetf2.o dgetrf.o dgetri.o \
+- dgetrs.o dggbak.o dggbal.o dgges.o dggesx.o dggev.o dggevx.o \
+- dggglm.o dgghrd.o dgglse.o dggqrf.o \
+- dggrqf.o dggsvd.o dggsvp.o dgtcon.o dgtrfs.o dgtsv.o \
+- dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o \
+- dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o \
+- dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o \
+- dlahrd.o dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o \
+- dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o \
+- dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o \
+- dlapll.o dlapmt.o \
+- dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqsb.o dlaqsp.o dlaqsy.o \
+- dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \
+- dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o \
+- dlarf.o dlarfb.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o \
+- dlargv.o dlarrv.o dlartv.o \
+- dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o dlasyf.o \
+- dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlatzm.o dlauu2.o \
+- dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \
+- dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \
+- dorgrq.o dorgtr.o dorm2l.o dorm2r.o \
+- dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \
+- dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \
+- dpbstf.o dpbsv.o dpbsvx.o \
+- dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o \
+- dposvx.o dpotf2.o dpotrf.o dpotri.o dpotrs.o dpstrf.o dpstf2.o \
+- dppcon.o dppequ.o \
+- dpprfs.o dppsv.o dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o \
+- dpteqr.o dptrfs.o dptsv.o dptsvx.o dpttrs.o dptts2.o drscl.o \
+- dsbev.o dsbevd.o dsbevx.o dsbgst.o dsbgv.o dsbgvd.o dsbgvx.o \
+- dsbtrd.o dspcon.o dspev.o dspevd.o dspevx.o dspgst.o \
+- dspgv.o dspgvd.o dspgvx.o dsprfs.o dspsv.o dspsvx.o dsptrd.o \
+- dsptrf.o dsptri.o dsptrs.o dstegr.o dstein.o dstev.o dstevd.o dstevr.o \
+- dstevx.o dsycon.o dsyev.o dsyevd.o dsyevr.o \
+- dsyevx.o dsygs2.o dsygst.o dsygv.o dsygvd.o dsygvx.o dsyrfs.o \
+- dsysv.o dsysvx.o \
+- dsytd2.o dsytf2.o dsytrd.o dsytrf.o dsytri.o dsytri2.o dsytri2x.o \
+- dsyswapr.o dsytrs.o dsytrs2.o dsyconv.o dtbcon.o \
+- dtbrfs.o dtbtrs.o dtgevc.o dtgex2.o dtgexc.o dtgsen.o \
+- dtgsja.o dtgsna.o dtgsy2.o dtgsyl.o dtpcon.o dtprfs.o dtptri.o \
+- dtptrs.o \
+- dtrcon.o dtrevc.o dtrexc.o dtrrfs.o dtrsen.o dtrsna.o dtrsyl.o \
+- dtrti2.o dtrtri.o dtrtrs.o dtzrqf.o dtzrzf.o dstemr.o \
+- dsgesv.o dsposv.o dlag2s.o slag2d.o dlat2s.o \
+- dlansf.o dpftrf.o dpftri.o dpftrs.o dsfrk.o dtfsm.o dtftri.o dtfttp.o \
+- dtfttr.o dtpttf.o dtpttr.o dtrttf.o dtrttp.o \
+- dgejsv.o dgesvj.o dgsvj0.o dgsvj1.o \
+- dgeequb.o dsyequb.o dpoequb.o dgbequb.o \
+- dbbcsd.o dlapmr.o dorbdb.o dorcsd.o \
+- dgeqrt.o dgeqrt2.o dgeqrt3.o dgemqrt.o \
+- dtpqrt.o dtpqrt2.o dtpmqrt.o dtprfb.o
++ dgbbrd.$(SUFFIX) dgbcon.$(SUFFIX) dgbequ.$(SUFFIX) dgbrfs.$(SUFFIX) dgbsv.$(SUFFIX) \
++ dgbsvx.$(SUFFIX) dgbtf2.$(SUFFIX) dgbtrf.$(SUFFIX) dgbtrs.$(SUFFIX) dgebak.$(SUFFIX) dgebal.$(SUFFIX) dgebd2.$(SUFFIX) \
++ dgebrd.$(SUFFIX) dgecon.$(SUFFIX) dgeequ.$(SUFFIX) dgees.$(SUFFIX) dgeesx.$(SUFFIX) dgeev.$(SUFFIX) dgeevx.$(SUFFIX) \
++ dgegs.$(SUFFIX) dgegv.$(SUFFIX) dgehd2.$(SUFFIX) dgehrd.$(SUFFIX) dgelq2.$(SUFFIX) dgelqf.$(SUFFIX) \
++ dgels.$(SUFFIX) dgelsd.$(SUFFIX) dgelss.$(SUFFIX) dgelsx.$(SUFFIX) dgelsy.$(SUFFIX) dgeql2.$(SUFFIX) dgeqlf.$(SUFFIX) \
++ dgeqp3.$(SUFFIX) dgeqpf.$(SUFFIX) dgeqr2.$(SUFFIX) dgeqr2p.$(SUFFIX) dgeqrf.$(SUFFIX) dgeqrfp.$(SUFFIX) dgerfs.$(SUFFIX) \
++ dgerq2.$(SUFFIX) dgerqf.$(SUFFIX) dgesc2.$(SUFFIX) dgesdd.$(SUFFIX) dgesv.$(SUFFIX) dgesvd.$(SUFFIX) dgesvx.$(SUFFIX) \
++ dgetc2.$(SUFFIX) dgetri.$(SUFFIX) \
++ dggbak.$(SUFFIX) dggbal.$(SUFFIX) dgges.$(SUFFIX) dggesx.$(SUFFIX) dggev.$(SUFFIX) dggevx.$(SUFFIX) \
++ dggglm.$(SUFFIX) dgghrd.$(SUFFIX) dgglse.$(SUFFIX) dggqrf.$(SUFFIX) \
++ dggrqf.$(SUFFIX) dggsvd.$(SUFFIX) dggsvp.$(SUFFIX) dgtcon.$(SUFFIX) dgtrfs.$(SUFFIX) dgtsv.$(SUFFIX) \
++ dgtsvx.$(SUFFIX) dgttrf.$(SUFFIX) dgttrs.$(SUFFIX) dgtts2.$(SUFFIX) dhgeqz.$(SUFFIX) \
++ dhsein.$(SUFFIX) dhseqr.$(SUFFIX) dlabrd.$(SUFFIX) dlacon.$(SUFFIX) dlacn2.$(SUFFIX) \
++ dlaein.$(SUFFIX) dlaexc.$(SUFFIX) dlag2.$(SUFFIX) dlags2.$(SUFFIX) dlagtm.$(SUFFIX) dlagv2.$(SUFFIX) dlahqr.$(SUFFIX) \
++ dlahrd.$(SUFFIX) dlahr2.$(SUFFIX) dlaic1.$(SUFFIX) dlaln2.$(SUFFIX) dlals0.$(SUFFIX) dlalsa.$(SUFFIX) dlalsd.$(SUFFIX) \
++ dlangb.$(SUFFIX) dlange.$(SUFFIX) dlangt.$(SUFFIX) dlanhs.$(SUFFIX) dlansb.$(SUFFIX) dlansp.$(SUFFIX) \
++ dlansy.$(SUFFIX) dlantb.$(SUFFIX) dlantp.$(SUFFIX) dlantr.$(SUFFIX) dlanv2.$(SUFFIX) \
++ dlapll.$(SUFFIX) dlapmt.$(SUFFIX) \
++ dlaqgb.$(SUFFIX) dlaqge.$(SUFFIX) dlaqp2.$(SUFFIX) dlaqps.$(SUFFIX) dlaqsb.$(SUFFIX) dlaqsp.$(SUFFIX) dlaqsy.$(SUFFIX) \
++ dlaqr0.$(SUFFIX) dlaqr1.$(SUFFIX) dlaqr2.$(SUFFIX) dlaqr3.$(SUFFIX) dlaqr4.$(SUFFIX) dlaqr5.$(SUFFIX) \
++ dlaqtr.$(SUFFIX) dlar1v.$(SUFFIX) dlar2v.$(SUFFIX) iladlr.$(SUFFIX) iladlc.$(SUFFIX) \
++ dlarf.$(SUFFIX) dlarfb.$(SUFFIX) dlarfg.$(SUFFIX) dlarfgp.$(SUFFIX) dlarft.$(SUFFIX) dlarfx.$(SUFFIX) \
++ dlargv.$(SUFFIX) dlarrv.$(SUFFIX) dlartv.$(SUFFIX) \
++ dlarz.$(SUFFIX) dlarzb.$(SUFFIX) dlarzt.$(SUFFIX) dlasy2.$(SUFFIX) dlasyf.$(SUFFIX) \
++ dlatbs.$(SUFFIX) dlatdf.$(SUFFIX) dlatps.$(SUFFIX) dlatrd.$(SUFFIX) dlatrs.$(SUFFIX) dlatrz.$(SUFFIX) dlatzm.$(SUFFIX) \
++ dopgtr.$(SUFFIX) dopmtr.$(SUFFIX) dorg2l.$(SUFFIX) dorg2r.$(SUFFIX) \
++ dorgbr.$(SUFFIX) dorghr.$(SUFFIX) dorgl2.$(SUFFIX) dorglq.$(SUFFIX) dorgql.$(SUFFIX) dorgqr.$(SUFFIX) dorgr2.$(SUFFIX) \
++ dorgrq.$(SUFFIX) dorgtr.$(SUFFIX) dorm2l.$(SUFFIX) dorm2r.$(SUFFIX) \
++ dormbr.$(SUFFIX) dormhr.$(SUFFIX) dorml2.$(SUFFIX) dormlq.$(SUFFIX) dormql.$(SUFFIX) dormqr.$(SUFFIX) dormr2.$(SUFFIX) \
++ dormr3.$(SUFFIX) dormrq.$(SUFFIX) dormrz.$(SUFFIX) dormtr.$(SUFFIX) dpbcon.$(SUFFIX) dpbequ.$(SUFFIX) dpbrfs.$(SUFFIX) \
++ dpbstf.$(SUFFIX) dpbsv.$(SUFFIX) dpbsvx.$(SUFFIX) \
++ dpbtf2.$(SUFFIX) dpbtrf.$(SUFFIX) dpbtrs.$(SUFFIX) dpocon.$(SUFFIX) dpoequ.$(SUFFIX) dporfs.$(SUFFIX) dposv.$(SUFFIX) \
++ dposvx.$(SUFFIX) dpotri.$(SUFFIX) dpotrs.$(SUFFIX) dpstrf.$(SUFFIX) dpstf2.$(SUFFIX) \
++ dppcon.$(SUFFIX) dppequ.$(SUFFIX) \
++ dpprfs.$(SUFFIX) dppsv.$(SUFFIX) dppsvx.$(SUFFIX) dpptrf.$(SUFFIX) dpptri.$(SUFFIX) dpptrs.$(SUFFIX) dptcon.$(SUFFIX) \
++ dpteqr.$(SUFFIX) dptrfs.$(SUFFIX) dptsv.$(SUFFIX) dptsvx.$(SUFFIX) dpttrs.$(SUFFIX) dptts2.$(SUFFIX) drscl.$(SUFFIX) \
++ dsbev.$(SUFFIX) dsbevd.$(SUFFIX) dsbevx.$(SUFFIX) dsbgst.$(SUFFIX) dsbgv.$(SUFFIX) dsbgvd.$(SUFFIX) dsbgvx.$(SUFFIX) \
++ dsbtrd.$(SUFFIX) dspcon.$(SUFFIX) dspev.$(SUFFIX) dspevd.$(SUFFIX) dspevx.$(SUFFIX) dspgst.$(SUFFIX) \
++ dspgv.$(SUFFIX) dspgvd.$(SUFFIX) dspgvx.$(SUFFIX) dsprfs.$(SUFFIX) dspsv.$(SUFFIX) dspsvx.$(SUFFIX) dsptrd.$(SUFFIX) \
++ dsptrf.$(SUFFIX) dsptri.$(SUFFIX) dsptrs.$(SUFFIX) dstegr.$(SUFFIX) dstein.$(SUFFIX) dstev.$(SUFFIX) dstevd.$(SUFFIX) dstevr.$(SUFFIX) \
++ dstevx.$(SUFFIX) dsycon.$(SUFFIX) dsyev.$(SUFFIX) dsyevd.$(SUFFIX) dsyevr.$(SUFFIX) \
++ dsyevx.$(SUFFIX) dsygs2.$(SUFFIX) dsygst.$(SUFFIX) dsygv.$(SUFFIX) dsygvd.$(SUFFIX) dsygvx.$(SUFFIX) dsyrfs.$(SUFFIX) \
++ dsysv.$(SUFFIX) dsysvx.$(SUFFIX) \
++ dsytd2.$(SUFFIX) dsytf2.$(SUFFIX) dsytrd.$(SUFFIX) dsytrf.$(SUFFIX) dsytri.$(SUFFIX) dsytri2.$(SUFFIX) dsytri2x.$(SUFFIX) \
++ dsyswapr.$(SUFFIX) dsytrs.$(SUFFIX) dsytrs2.$(SUFFIX) dsyconv.$(SUFFIX) dtbcon.$(SUFFIX) \
++ dtbrfs.$(SUFFIX) dtbtrs.$(SUFFIX) dtgevc.$(SUFFIX) dtgex2.$(SUFFIX) dtgexc.$(SUFFIX) dtgsen.$(SUFFIX) \
++ dtgsja.$(SUFFIX) dtgsna.$(SUFFIX) dtgsy2.$(SUFFIX) dtgsyl.$(SUFFIX) dtpcon.$(SUFFIX) dtprfs.$(SUFFIX) dtptri.$(SUFFIX) \
++ dtptrs.$(SUFFIX) \
++ dtrcon.$(SUFFIX) dtrevc.$(SUFFIX) dtrexc.$(SUFFIX) dtrrfs.$(SUFFIX) dtrsen.$(SUFFIX) dtrsna.$(SUFFIX) dtrsyl.$(SUFFIX) \
++ dtrtrs.$(SUFFIX) dtzrqf.$(SUFFIX) dtzrzf.$(SUFFIX) dstemr.$(SUFFIX) \
++ dsgesv.$(SUFFIX) dsposv.$(SUFFIX) dlag2s.$(SUFFIX) slag2d.$(SUFFIX) dlat2s.$(SUFFIX) \
++ dlansf.$(SUFFIX) dpftrf.$(SUFFIX) dpftri.$(SUFFIX) dpftrs.$(SUFFIX) dsfrk.$(SUFFIX) dtfsm.$(SUFFIX) dtftri.$(SUFFIX) dtfttp.$(SUFFIX) \
++ dtfttr.$(SUFFIX) dtpttf.$(SUFFIX) dtpttr.$(SUFFIX) dtrttf.$(SUFFIX) dtrttp.$(SUFFIX) \
++ dgejsv.$(SUFFIX) dgesvj.$(SUFFIX) dgsvj0.$(SUFFIX) dgsvj1.$(SUFFIX) \
++ dgeequb.$(SUFFIX) dsyequb.$(SUFFIX) dpoequb.$(SUFFIX) dgbequb.$(SUFFIX) \
++ dbbcsd.$(SUFFIX) dlapmr.$(SUFFIX) dorbdb.$(SUFFIX) dorcsd.$(SUFFIX) \
++ dgeqrt.$(SUFFIX) dgeqrt2.$(SUFFIX) dgeqrt3.$(SUFFIX) dgemqrt.$(SUFFIX) \
++ dtpqrt.$(SUFFIX) dtpqrt2.$(SUFFIX) dtpmqrt.$(SUFFIX) dtprfb.$(SUFFIX)
+
+ ifdef USEXBLAS
+-DXLASRC = dgesvxx.o dgerfsx.o dla_gerfsx_extended.o dla_geamv.o \
+- dla_gercond.o dla_gerpvgrw.o dsysvxx.o dsyrfsx.o \
+- dla_syrfsx_extended.o dla_syamv.o dla_syrcond.o dla_syrpvgrw.o \
+- dposvxx.o dporfsx.o dla_porfsx_extended.o dla_porcond.o \
+- dla_porpvgrw.o dgbsvxx.o dgbrfsx.o dla_gbrfsx_extended.o \
+- dla_gbamv.o dla_gbrcond.o dla_gbrpvgrw.o dla_lin_berr.o dlarscl2.o \
+- dlascl2.o dla_wwaddw.o
++DXLASRC = dgesvxx.$(SUFFIX) dgerfsx.$(SUFFIX) dla_gerfsx_extended.$(SUFFIX) dla_geamv.$(SUFFIX) \
++ dla_gercond.$(SUFFIX) dla_gerpvgrw.$(SUFFIX) dsysvxx.$(SUFFIX) dsyrfsx.$(SUFFIX) \
++ dla_syrfsx_extended.$(SUFFIX) dla_syamv.$(SUFFIX) dla_syrcond.$(SUFFIX) dla_syrpvgrw.$(SUFFIX) \
++ dposvxx.$(SUFFIX) dporfsx.$(SUFFIX) dla_porfsx_extended.$(SUFFIX) dla_porcond.$(SUFFIX) \
++ dla_porpvgrw.$(SUFFIX) dgbsvxx.$(SUFFIX) dgbrfsx.$(SUFFIX) dla_gbrfsx_extended.$(SUFFIX) \
++ dla_gbamv.$(SUFFIX) dla_gbrcond.$(SUFFIX) dla_gbrpvgrw.$(SUFFIX) dla_lin_berr.$(SUFFIX) dlarscl2.$(SUFFIX) \
++ dlascl2.$(SUFFIX) dla_wwaddw.$(SUFFIX)
+ endif
+
+ ZLASRC = \
+- zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \
+- zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o \
+- zgecon.o zgeequ.o zgees.o zgeesx.o zgeev.o zgeevx.o \
+- zgegs.o zgegv.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o \
+- zgels.o zgelsd.o zgelss.o zgelsx.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o \
+- zgeqpf.o zgeqr2.o zgeqr2p.o zgeqrf.o zgeqrfp.o zgerfs.o zgerq2.o zgerqf.o \
+- zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvx.o zgetc2.o zgetf2.o zgetrf.o \
+- zgetri.o zgetrs.o \
+- zggbak.o zggbal.o zgges.o zggesx.o zggev.o zggevx.o zggglm.o \
+- zgghrd.o zgglse.o zggqrf.o zggrqf.o \
+- zggsvd.o zggsvp.o \
+- zgtcon.o zgtrfs.o zgtsv.o zgtsvx.o zgttrf.o zgttrs.o zgtts2.o zhbev.o \
+- zhbevd.o zhbevx.o zhbgst.o zhbgv.o zhbgvd.o zhbgvx.o zhbtrd.o \
+- zhecon.o zheev.o zheevd.o zheevr.o zheevx.o zhegs2.o zhegst.o \
+- zhegv.o zhegvd.o zhegvx.o zherfs.o zhesv.o zhesvx.o zhetd2.o \
+- zhetf2.o zhetrd.o \
+- zhetrf.o zhetri.o zhetri2.o zhetri2x.o zheswapr.o \
+- zhetrs.o zhetrs2.o zhgeqz.o zhpcon.o zhpev.o zhpevd.o \
+- zhpevx.o zhpgst.o zhpgv.o zhpgvd.o zhpgvx.o zhprfs.o zhpsv.o \
+- zhpsvx.o \
+- zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o \
+- zlacgv.o zlacon.o zlacn2.o zlacp2.o zlacpy.o zlacrm.o zlacrt.o zladiv.o \
+- zlaed0.o zlaed7.o zlaed8.o \
+- zlaein.o zlaesy.o zlaev2.o zlags2.o zlagtm.o \
+- zlahef.o zlahqr.o \
+- zlahrd.o zlahr2.o zlaic1.o zlals0.o zlalsa.o zlalsd.o zlangb.o zlange.o \
+- zlangt.o zlanhb.o \
+- zlanhe.o \
+- zlanhp.o zlanhs.o zlanht.o zlansb.o zlansp.o zlansy.o zlantb.o \
+- zlantp.o zlantr.o zlapll.o zlapmt.o zlaqgb.o zlaqge.o \
+- zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqsb.o \
+- zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o \
+- zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o ilazlr.o ilazlc.o \
+- zlarcm.o zlarf.o zlarfb.o \
+- zlarfg.o zlarft.o zlarfgp.o \
+- zlarfx.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o \
+- zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o \
+- zlassq.o zlaswp.o zlasyf.o \
+- zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrz.o zlatzm.o zlauu2.o \
+- zlauum.o zpbcon.o zpbequ.o zpbrfs.o zpbstf.o zpbsv.o \
+- zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o \
+- zposv.o zposvx.o zpotf2.o zpotrf.o zpotri.o zpotrs.o zpstrf.o zpstf2.o \
+- zppcon.o zppequ.o zpprfs.o zppsv.o zppsvx.o zpptrf.o zpptri.o zpptrs.o \
+- zptcon.o zpteqr.o zptrfs.o zptsv.o zptsvx.o zpttrf.o zpttrs.o zptts2.o \
+- zrot.o zspcon.o zspmv.o zspr.o zsprfs.o zspsv.o \
+- zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrscl.o zstedc.o \
+- zstegr.o zstein.o zsteqr.o zsycon.o zsymv.o \
+- zsyr.o zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o zsytri2.o zsytri2x.o \
+- zsyswapr.o zsytrs.o zsytrs2.o zsyconv.o ztbcon.o ztbrfs.o ztbtrs.o ztgevc.o ztgex2.o \
+- ztgexc.o ztgsen.o ztgsja.o ztgsna.o ztgsy2.o ztgsyl.o ztpcon.o \
+- ztprfs.o ztptri.o \
+- ztptrs.o ztrcon.o ztrevc.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \
+- ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrqf.o ztzrzf.o zung2l.o \
+- zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \
+- zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o \
+- zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \
+- zunmtr.o zupgtr.o \
+- zupmtr.o izmax1.o dzsum1.o zstemr.o \
+- zcgesv.o zcposv.o zlag2c.o clag2z.o zlat2c.o \
+- zhfrk.o ztfttp.o zlanhf.o zpftrf.o zpftri.o zpftrs.o ztfsm.o ztftri.o \
+- ztfttr.o ztpttf.o ztpttr.o ztrttf.o ztrttp.o \
+- zgeequb.o zgbequb.o zsyequb.o zpoequb.o zheequb.o \
+- zbbcsd.o zlapmr.o zunbdb.o zuncsd.o \
+- zgeqrt.o zgeqrt2.o zgeqrt3.o zgemqrt.o \
+- ztpqrt.o ztpqrt2.o ztpmqrt.o ztprfb.o
++ zbdsqr.$(SUFFIX) zgbbrd.$(SUFFIX) zgbcon.$(SUFFIX) zgbequ.$(SUFFIX) zgbrfs.$(SUFFIX) zgbsv.$(SUFFIX) zgbsvx.$(SUFFIX) \
++ zgbtf2.$(SUFFIX) zgbtrf.$(SUFFIX) zgbtrs.$(SUFFIX) zgebak.$(SUFFIX) zgebal.$(SUFFIX) zgebd2.$(SUFFIX) zgebrd.$(SUFFIX) \
++ zgecon.$(SUFFIX) zgeequ.$(SUFFIX) zgees.$(SUFFIX) zgeesx.$(SUFFIX) zgeev.$(SUFFIX) zgeevx.$(SUFFIX) \
++ zgegs.$(SUFFIX) zgegv.$(SUFFIX) zgehd2.$(SUFFIX) zgehrd.$(SUFFIX) zgelq2.$(SUFFIX) zgelqf.$(SUFFIX) \
++ zgels.$(SUFFIX) zgelsd.$(SUFFIX) zgelss.$(SUFFIX) zgelsx.$(SUFFIX) zgelsy.$(SUFFIX) zgeql2.$(SUFFIX) zgeqlf.$(SUFFIX) zgeqp3.$(SUFFIX) \
++ zgeqpf.$(SUFFIX) zgeqr2.$(SUFFIX) zgeqr2p.$(SUFFIX) zgeqrf.$(SUFFIX) zgeqrfp.$(SUFFIX) zgerfs.$(SUFFIX) zgerq2.$(SUFFIX) zgerqf.$(SUFFIX) \
++ zgesc2.$(SUFFIX) zgesdd.$(SUFFIX) zgesv.$(SUFFIX) zgesvd.$(SUFFIX) zgesvx.$(SUFFIX) zgetc2.$(SUFFIX) \
++ zgetri.$(SUFFIX) \
++ zggbak.$(SUFFIX) zggbal.$(SUFFIX) zgges.$(SUFFIX) zggesx.$(SUFFIX) zggev.$(SUFFIX) zggevx.$(SUFFIX) zggglm.$(SUFFIX) \
++ zgghrd.$(SUFFIX) zgglse.$(SUFFIX) zggqrf.$(SUFFIX) zggrqf.$(SUFFIX) \
++ zggsvd.$(SUFFIX) zggsvp.$(SUFFIX) \
++ zgtcon.$(SUFFIX) zgtrfs.$(SUFFIX) zgtsv.$(SUFFIX) zgtsvx.$(SUFFIX) zgttrf.$(SUFFIX) zgttrs.$(SUFFIX) zgtts2.$(SUFFIX) zhbev.$(SUFFIX) \
++ zhbevd.$(SUFFIX) zhbevx.$(SUFFIX) zhbgst.$(SUFFIX) zhbgv.$(SUFFIX) zhbgvd.$(SUFFIX) zhbgvx.$(SUFFIX) zhbtrd.$(SUFFIX) \
++ zhecon.$(SUFFIX) zheev.$(SUFFIX) zheevd.$(SUFFIX) zheevr.$(SUFFIX) zheevx.$(SUFFIX) zhegs2.$(SUFFIX) zhegst.$(SUFFIX) \
++ zhegv.$(SUFFIX) zhegvd.$(SUFFIX) zhegvx.$(SUFFIX) zherfs.$(SUFFIX) zhesv.$(SUFFIX) zhesvx.$(SUFFIX) zhetd2.$(SUFFIX) \
++ zhetf2.$(SUFFIX) zhetrd.$(SUFFIX) \
++ zhetrf.$(SUFFIX) zhetri.$(SUFFIX) zhetri2.$(SUFFIX) zhetri2x.$(SUFFIX) zheswapr.$(SUFFIX) \
++ zhetrs.$(SUFFIX) zhetrs2.$(SUFFIX) zhgeqz.$(SUFFIX) zhpcon.$(SUFFIX) zhpev.$(SUFFIX) zhpevd.$(SUFFIX) \
++ zhpevx.$(SUFFIX) zhpgst.$(SUFFIX) zhpgv.$(SUFFIX) zhpgvd.$(SUFFIX) zhpgvx.$(SUFFIX) zhprfs.$(SUFFIX) zhpsv.$(SUFFIX) \
++ zhpsvx.$(SUFFIX) \
++ zhptrd.$(SUFFIX) zhptrf.$(SUFFIX) zhptri.$(SUFFIX) zhptrs.$(SUFFIX) zhsein.$(SUFFIX) zhseqr.$(SUFFIX) zlabrd.$(SUFFIX) \
++ zlacgv.$(SUFFIX) zlacon.$(SUFFIX) zlacn2.$(SUFFIX) zlacp2.$(SUFFIX) zlacpy.$(SUFFIX) zlacrm.$(SUFFIX) zlacrt.$(SUFFIX) zladiv.$(SUFFIX) \
++ zlaed0.$(SUFFIX) zlaed7.$(SUFFIX) zlaed8.$(SUFFIX) \
++ zlaein.$(SUFFIX) zlaesy.$(SUFFIX) zlaev2.$(SUFFIX) zlags2.$(SUFFIX) zlagtm.$(SUFFIX) \
++ zlahef.$(SUFFIX) zlahqr.$(SUFFIX) \
++ zlahrd.$(SUFFIX) zlahr2.$(SUFFIX) zlaic1.$(SUFFIX) zlals0.$(SUFFIX) zlalsa.$(SUFFIX) zlalsd.$(SUFFIX) zlangb.$(SUFFIX) zlange.$(SUFFIX) \
++ zlangt.$(SUFFIX) zlanhb.$(SUFFIX) \
++ zlanhe.$(SUFFIX) \
++ zlanhp.$(SUFFIX) zlanhs.$(SUFFIX) zlanht.$(SUFFIX) zlansb.$(SUFFIX) zlansp.$(SUFFIX) zlansy.$(SUFFIX) zlantb.$(SUFFIX) \
++ zlantp.$(SUFFIX) zlantr.$(SUFFIX) zlapll.$(SUFFIX) zlapmt.$(SUFFIX) zlaqgb.$(SUFFIX) zlaqge.$(SUFFIX) \
++ zlaqhb.$(SUFFIX) zlaqhe.$(SUFFIX) zlaqhp.$(SUFFIX) zlaqp2.$(SUFFIX) zlaqps.$(SUFFIX) zlaqsb.$(SUFFIX) \
++ zlaqr0.$(SUFFIX) zlaqr1.$(SUFFIX) zlaqr2.$(SUFFIX) zlaqr3.$(SUFFIX) zlaqr4.$(SUFFIX) zlaqr5.$(SUFFIX) \
++ zlaqsp.$(SUFFIX) zlaqsy.$(SUFFIX) zlar1v.$(SUFFIX) zlar2v.$(SUFFIX) ilazlr.$(SUFFIX) ilazlc.$(SUFFIX) \
++ zlarcm.$(SUFFIX) zlarf.$(SUFFIX) zlarfb.$(SUFFIX) \
++ zlarfg.$(SUFFIX) zlarft.$(SUFFIX) zlarfgp.$(SUFFIX) \
++ zlarfx.$(SUFFIX) zlargv.$(SUFFIX) zlarnv.$(SUFFIX) zlarrv.$(SUFFIX) zlartg.$(SUFFIX) zlartv.$(SUFFIX) \
++ zlarz.$(SUFFIX) zlarzb.$(SUFFIX) zlarzt.$(SUFFIX) zlascl.$(SUFFIX) zlaset.$(SUFFIX) zlasr.$(SUFFIX) \
++ zlassq.$(SUFFIX) zlasyf.$(SUFFIX) \
++ zlatbs.$(SUFFIX) zlatdf.$(SUFFIX) zlatps.$(SUFFIX) zlatrd.$(SUFFIX) zlatrs.$(SUFFIX) zlatrz.$(SUFFIX) zlatzm.$(SUFFIX) \
++ zpbcon.$(SUFFIX) zpbequ.$(SUFFIX) zpbrfs.$(SUFFIX) zpbstf.$(SUFFIX) zpbsv.$(SUFFIX) \
++ zpbsvx.$(SUFFIX) zpbtf2.$(SUFFIX) zpbtrf.$(SUFFIX) zpbtrs.$(SUFFIX) zpocon.$(SUFFIX) zpoequ.$(SUFFIX) zporfs.$(SUFFIX) \
++ zposv.$(SUFFIX) zposvx.$(SUFFIX) zpotri.$(SUFFIX) zpotrs.$(SUFFIX) zpstrf.$(SUFFIX) zpstf2.$(SUFFIX) \
++ zppcon.$(SUFFIX) zppequ.$(SUFFIX) zpprfs.$(SUFFIX) zppsv.$(SUFFIX) zppsvx.$(SUFFIX) zpptrf.$(SUFFIX) zpptri.$(SUFFIX) zpptrs.$(SUFFIX) \
++ zptcon.$(SUFFIX) zpteqr.$(SUFFIX) zptrfs.$(SUFFIX) zptsv.$(SUFFIX) zptsvx.$(SUFFIX) zpttrf.$(SUFFIX) zpttrs.$(SUFFIX) zptts2.$(SUFFIX) \
++ zrot.$(SUFFIX) zspcon.$(SUFFIX) zspmv.$(SUFFIX) zspr.$(SUFFIX) zsprfs.$(SUFFIX) zspsv.$(SUFFIX) \
++ zspsvx.$(SUFFIX) zsptrf.$(SUFFIX) zsptri.$(SUFFIX) zsptrs.$(SUFFIX) zdrscl.$(SUFFIX) zstedc.$(SUFFIX) \
++ zstegr.$(SUFFIX) zstein.$(SUFFIX) zsteqr.$(SUFFIX) zsycon.$(SUFFIX) zsymv.$(SUFFIX) \
++ zsyr.$(SUFFIX) zsyrfs.$(SUFFIX) zsysv.$(SUFFIX) zsysvx.$(SUFFIX) zsytf2.$(SUFFIX) zsytrf.$(SUFFIX) zsytri.$(SUFFIX) zsytri2.$(SUFFIX) zsytri2x.$(SUFFIX) \
++ zsyswapr.$(SUFFIX) zsytrs.$(SUFFIX) zsytrs2.$(SUFFIX) zsyconv.$(SUFFIX) ztbcon.$(SUFFIX) ztbrfs.$(SUFFIX) ztbtrs.$(SUFFIX) ztgevc.$(SUFFIX) ztgex2.$(SUFFIX) \
++ ztgexc.$(SUFFIX) ztgsen.$(SUFFIX) ztgsja.$(SUFFIX) ztgsna.$(SUFFIX) ztgsy2.$(SUFFIX) ztgsyl.$(SUFFIX) ztpcon.$(SUFFIX) \
++ ztprfs.$(SUFFIX) ztptri.$(SUFFIX) \
++ ztptrs.$(SUFFIX) ztrcon.$(SUFFIX) ztrevc.$(SUFFIX) ztrexc.$(SUFFIX) ztrrfs.$(SUFFIX) ztrsen.$(SUFFIX) ztrsna.$(SUFFIX) \
++ ztrsyl.$(SUFFIX) ztrtrs.$(SUFFIX) ztzrqf.$(SUFFIX) ztzrzf.$(SUFFIX) zung2l.$(SUFFIX) \
++ zung2r.$(SUFFIX) zungbr.$(SUFFIX) zunghr.$(SUFFIX) zungl2.$(SUFFIX) zunglq.$(SUFFIX) zungql.$(SUFFIX) zungqr.$(SUFFIX) zungr2.$(SUFFIX) \
++ zungrq.$(SUFFIX) zungtr.$(SUFFIX) zunm2l.$(SUFFIX) zunm2r.$(SUFFIX) zunmbr.$(SUFFIX) zunmhr.$(SUFFIX) zunml2.$(SUFFIX) \
++ zunmlq.$(SUFFIX) zunmql.$(SUFFIX) zunmqr.$(SUFFIX) zunmr2.$(SUFFIX) zunmr3.$(SUFFIX) zunmrq.$(SUFFIX) zunmrz.$(SUFFIX) \
++ zunmtr.$(SUFFIX) zupgtr.$(SUFFIX) \
++ zupmtr.$(SUFFIX) izmax1.$(SUFFIX) dzsum1.$(SUFFIX) zstemr.$(SUFFIX) \
++ zcgesv.$(SUFFIX) zcposv.$(SUFFIX) zlag2c.$(SUFFIX) clag2z.$(SUFFIX) zlat2c.$(SUFFIX) \
++ zhfrk.$(SUFFIX) ztfttp.$(SUFFIX) zlanhf.$(SUFFIX) zpftrf.$(SUFFIX) zpftri.$(SUFFIX) zpftrs.$(SUFFIX) ztfsm.$(SUFFIX) ztftri.$(SUFFIX) \
++ ztfttr.$(SUFFIX) ztpttf.$(SUFFIX) ztpttr.$(SUFFIX) ztrttf.$(SUFFIX) ztrttp.$(SUFFIX) \
++ zgeequb.$(SUFFIX) zgbequb.$(SUFFIX) zsyequb.$(SUFFIX) zpoequb.$(SUFFIX) zheequb.$(SUFFIX) \
++ zbbcsd.$(SUFFIX) zlapmr.$(SUFFIX) zunbdb.$(SUFFIX) zuncsd.$(SUFFIX) \
++ zgeqrt.$(SUFFIX) zgeqrt2.$(SUFFIX) zgeqrt3.$(SUFFIX) zgemqrt.$(SUFFIX) \
++ ztpqrt.$(SUFFIX) ztpqrt2.$(SUFFIX) ztpmqrt.$(SUFFIX) ztprfb.$(SUFFIX)
+
+ ifdef USEXBLAS
+-ZXLASRC = zgesvxx.o zgerfsx.o zla_gerfsx_extended.o zla_geamv.o \
+- zla_gercond_c.o zla_gercond_x.o zla_gerpvgrw.o zsysvxx.o zsyrfsx.o \
+- zla_syrfsx_extended.o zla_syamv.o zla_syrcond_c.o zla_syrcond_x.o \
+- zla_syrpvgrw.o zposvxx.o zporfsx.o zla_porfsx_extended.o \
+- zla_porcond_c.o zla_porcond_x.o zla_porpvgrw.o zgbsvxx.o zgbrfsx.o \
+- zla_gbrfsx_extended.o zla_gbamv.o zla_gbrcond_c.o zla_gbrcond_x.o \
+- zla_gbrpvgrw.o zhesvxx.o zherfsx.o zla_herfsx_extended.o \
+- zla_heamv.o zla_hercond_c.o zla_hercond_x.o zla_herpvgrw.o \
+- zla_lin_berr.o zlarscl2.o zlascl2.o zla_wwaddw.o
++ZXLASRC = zgesvxx.$(SUFFIX) zgerfsx.$(SUFFIX) zla_gerfsx_extended.$(SUFFIX) zla_geamv.$(SUFFIX) \
++ zla_gercond_c.$(SUFFIX) zla_gercond_x.$(SUFFIX) zla_gerpvgrw.$(SUFFIX) zsysvxx.$(SUFFIX) zsyrfsx.$(SUFFIX) \
++ zla_syrfsx_extended.$(SUFFIX) zla_syamv.$(SUFFIX) zla_syrcond_c.$(SUFFIX) zla_syrcond_x.$(SUFFIX) \
++ zla_syrpvgrw.$(SUFFIX) zposvxx.$(SUFFIX) zporfsx.$(SUFFIX) zla_porfsx_extended.$(SUFFIX) \
++ zla_porcond_c.$(SUFFIX) zla_porcond_x.$(SUFFIX) zla_porpvgrw.$(SUFFIX) zgbsvxx.$(SUFFIX) zgbrfsx.$(SUFFIX) \
++ zla_gbrfsx_extended.$(SUFFIX) zla_gbamv.$(SUFFIX) zla_gbrcond_c.$(SUFFIX) zla_gbrcond_x.$(SUFFIX) \
++ zla_gbrpvgrw.$(SUFFIX) zhesvxx.$(SUFFIX) zherfsx.$(SUFFIX) zla_herfsx_extended.$(SUFFIX) \
++ zla_heamv.$(SUFFIX) zla_hercond_c.$(SUFFIX) zla_hercond_x.$(SUFFIX) zla_herpvgrw.$(SUFFIX) \
++ zla_lin_berr.$(SUFFIX) zlarscl2.$(SUFFIX) zlascl2.$(SUFFIX) zla_wwaddw.$(SUFFIX)
+ endif
+
+ ALLOBJ = $(SLASRC) $(DLASRC) $(DSLASRC) $(CLASRC) $(ZLASRC) $(ZCLASRC) \
+ $(SCLAUX) $(DZLAUX) $(ALLAUX)
+
++ALLOBJ_P = $(ALLOBJ:.$(SUFFIX)=.$(PSUFFIX))
++
+ ifdef USEXBLAS
+ ALLXOBJ = $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC)
+ endif
+
+ all: ../$(LAPACKLIB)
+
++lapack_prof: ../$(LAPACKLIB_P)
++
+ ../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ)
+ $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ)
+ $(RANLIB) $@
+
++../$(LAPACKLIB_P): $(ALLOBJ_P)
++ $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ_P)
++ $(RANLIB) $@
++
+ single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX)
+ $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(DSLASRC) \
+ $(SXLASRC) $(SCLAUX) $(ALLAUX) $(ALLXAUX)
+@@ -444,15 +452,25 @@
+ @FRC=$(FRC)
+
+ clean:
+- rm -f *.o
++ rm -f *.$(SUFFIX) *.$(PSUFFIX)
+
+-.f.o:
++%.$(SUFFIX): %.f
+ $(FORTRAN) $(OPTS) -c $< -o $@
+
+-slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@
+-dlaruv.o: dlaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@
+-sla_wwaddw.o: sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@
+-dla_wwaddw.o: dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@
+-cla_wwaddw.o: cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@
+-zla_wwaddw.o: zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@
++%.$(PSUFFIX): %.f
++ $(FORTRAN) $(POPTS) -c $< -o $@
++
+
++slaruv.$(SUFFIX): slaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@
++dlaruv.$(SUFFIX): dlaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@
++sla_wwaddw.$(SUFFIX): sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@
++dla_wwaddw.$(SUFFIX): dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@
++cla_wwaddw.$(SUFFIX): cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@
++zla_wwaddw.$(SUFFIX): zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@
++
++slaruv.$(PSUFFIX): slaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@
++dlaruv.$(PSUFFIX): dlaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@
++sla_wwaddw.$(PSUFFIX): sla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@
++dla_wwaddw.$(PSUFFIX): dla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@
++cla_wwaddw.$(PSUFFIX): cla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@
++zla_wwaddw.$(PSUFFIX): zla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@
+
+diff -ruN lapack-3.4.0.old/TESTING/EIG/Makefile lapack-3.4.0/TESTING/EIG/Makefile
+--- lapack-3.4.0.old/TESTING/EIG/Makefile 2011-09-27 05:52:31.000000000 +0800
++++ lapack-3.4.0/TESTING/EIG/Makefile 2011-11-28 14:59:56.324827994 +0800
+@@ -78,7 +78,7 @@
+ cget35.o cget36.o cget37.o cget38.o cget51.o cget52.o \
+ cget54.o cglmts.o cgqrts.o cgrqts.o cgsvts.o \
+ chbt21.o chet21.o chet22.o chpt21.o chst01.o \
+- clarfy.o clarhs.o clatm4.o clctes.o clctsx.o clsets.o csbmv.o \
++ clarfy.o clarhs.o clatm4.o clctes.o clctsx.o clsets.o \
+ csgt01.o cslect.o \
+ cstt21.o cstt22.o cunt01.o cunt03.o
+
+@@ -115,7 +115,7 @@
+ zget35.o zget36.o zget37.o zget38.o zget51.o zget52.o \
+ zget54.o zglmts.o zgqrts.o zgrqts.o zgsvts.o \
+ zhbt21.o zhet21.o zhet22.o zhpt21.o zhst01.o \
+- zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o zsbmv.o \
++ zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o \
+ zsgt01.o zslect.o \
+ zstt21.o zstt22.o zunt01.o zunt03.o
+
+@@ -129,22 +129,22 @@
+ ../xeigtsts: $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(LAPACKLIB); \
+ $(LOADER) $(LOADOPTS) -o xeigtsts \
+ $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) \
+- ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtsts $@
++ ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtsts $@
+
+ ../xeigtstc: $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(LAPACKLIB); \
+ $(LOADER) $(LOADOPTS) -o xeigtstc \
+ $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) \
+- ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstc $@
++ ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstc $@
+
+ ../xeigtstd: $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(LAPACKLIB); \
+ $(LOADER) $(LOADOPTS) -o xeigtstd \
+ $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) \
+- ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstd $@
++ ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstd $@
+
+ ../xeigtstz: $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(LAPACKLIB); \
+ $(LOADER) $(LOADOPTS) -o xeigtstz \
+ $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) \
+- ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstz $@
++ ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstz $@
+
+ $(AEIGTST): $(FRC)
+ $(SCIGTST): $(FRC)
+diff -ruN lapack-3.4.0.old/TESTING/LIN/Makefile lapack-3.4.0/TESTING/LIN/Makefile
+--- lapack-3.4.0.old/TESTING/LIN/Makefile 2011-11-01 06:21:11.000000000 +0800
++++ lapack-3.4.0/TESTING/LIN/Makefile 2011-11-28 15:14:55.804828003 +0800
+@@ -109,7 +109,7 @@
+ cqpt01.o cqrt01.o cqrt01p.o cqrt02.o cqrt03.o cqrt11.o \
+ cqrt12.o cqrt13.o cqrt14.o cqrt15.o cqrt16.o \
+ cqrt17.o crqt01.o crqt02.o crqt03.o crzt01.o crzt02.o \
+- csbmv.o cspt01.o \
++ cspt01.o \
+ cspt02.o cspt03.o csyt01.o csyt02.o csyt03.o \
+ ctbt02.o ctbt03.o ctbt05.o ctbt06.o ctpt01.o \
+ ctpt02.o ctpt03.o ctpt05.o ctpt06.o ctrt01.o \
+@@ -186,7 +186,7 @@
+ zqpt01.o zqrt01.o zqrt01p.o zqrt02.o zqrt03.o zqrt11.o \
+ zqrt12.o zqrt13.o zqrt14.o zqrt15.o zqrt16.o \
+ zqrt17.o zrqt01.o zrqt02.o zrqt03.o zrzt01.o zrzt02.o \
+- zsbmv.o zspt01.o \
++ zspt01.o \
+ zspt02.o zspt03.o zsyt01.o zsyt02.o zsyt03.o \
+ ztbt02.o ztbt03.o ztbt05.o ztbt06.o ztpt01.o \
+ ztpt02.o ztpt03.o ztpt05.o ztpt06.o ztrt01.o \
+@@ -211,7 +211,7 @@
+ zdrvab.o zdrvac.o zerrab.o zerrac.o zget08.o \
+ alaerh.o alahd.o aladhd.o alareq.o \
+ chkxer.o zget02.o zlarhs.o zlatb4.o \
+- zsbmv.o xerbla.o zpot06.o zlaipd.o
++ xerbla.o zpot06.o zlaipd.o
+
+ SLINTSTRFP = schkrfp.o sdrvrfp.o sdrvrf1.o sdrvrf2.o sdrvrf3.o sdrvrf4.o serrrfp.o \
+ slatb4.o slarhs.o sget04.o spot01.o spot03.o spot02.o \
+@@ -222,11 +222,11 @@
+ chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o
+
+ CLINTSTRFP = cchkrfp.o cdrvrfp.o cdrvrf1.o cdrvrf2.o cdrvrf3.o cdrvrf4.o cerrrfp.o \
+- claipd.o clatb4.o clarhs.o csbmv.o cget04.o cpot01.o cpot03.o cpot02.o \
++ claipd.o clatb4.o clarhs.o cget04.o cpot01.o cpot03.o cpot02.o \
+ chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o
+
+ ZLINTSTRFP = zchkrfp.o zdrvrfp.o zdrvrf1.o zdrvrf2.o zdrvrf3.o zdrvrf4.o zerrrfp.o \
+- zlatb4.o zlaipd.o zlarhs.o zsbmv.o zget04.o zpot01.o zpot03.o zpot02.o \
++ zlatb4.o zlaipd.o zlarhs.o zget04.o zpot01.o zpot03.o zpot02.o \
+ chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o
+
+ all: single double complex complex16 proto-single proto-double proto-complex proto-complex16
+@@ -243,43 +243,43 @@
+
+ xlintsts : $(ALINTST) $(SLINTST) $(SCLNTST) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(ALINTST) $(SCLNTST) $(SLINTST) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstc : $(ALINTST) $(CLINTST) $(SCLNTST) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(ALINTST) $(SCLNTST) $(CLINTST) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstd : $(ALINTST) $(DLINTST) $(DZLNTST) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $^ \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstz : $(ALINTST) $(ZLINTST) $(DZLNTST) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(ALINTST) $(DZLNTST) $(ZLINTST) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstds : $(DSLINTST) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(DSLINTST) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstzc : $(ZCLINTST) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(ZCLINTST) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstrfs : $(SLINTSTRFP) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(SLINTSTRFP) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstrfd : $(DLINTSTRFP) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(DLINTSTRFP) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstrfc : $(CLINTSTRFP) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(CLINTSTRFP) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ xlintstrfz : $(ZLINTSTRFP) ../../$(LAPACKLIB)
+ $(LOADER) $(LOADOPTS) $(ZLINTSTRFP) \
+- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB)
+
+ ../xlintsts: xlintsts
+ mv xlintsts $@
diff --git a/test/Makefile b/test/Makefile
index a5308e446..2df499b11 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -4,29 +4,46 @@ include ../Makefile.system
all :: level1 level2 level3
level1 : sblat1 dblat1 cblat1 zblat1
- OPENBLAS_NUM_THREADS=1 ./sblat1
- OPENBLAS_NUM_THREADS=1 ./dblat1
- OPENBLAS_NUM_THREADS=1 ./cblat1
- OPENBLAS_NUM_THREADS=1 ./zblat1
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat1
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat1
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat1
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat1
ifdef SMP
+ifeq ($(USE_OPENMP), 1)
+ OMP_NUM_THREADS=2 ./sblat1
+ OMP_NUM_THREADS=2 ./dblat1
+ OMP_NUM_THREADS=2 ./cblat1
+ OMP_NUM_THREADS=2 ./zblat1
+else
OPENBLAS_NUM_THREADS=2 ./sblat1
OPENBLAS_NUM_THREADS=2 ./dblat1
OPENBLAS_NUM_THREADS=2 ./cblat1
OPENBLAS_NUM_THREADS=2 ./zblat1
endif
+endif
level2 : sblat2 dblat2 cblat2 zblat2
rm -f ?BLAT2.SUMM
- OPENBLAS_NUM_THREADS=1 ./sblat2 < ./sblat2.dat
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat2 < ./sblat2.dat
@$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
- OPENBLAS_NUM_THREADS=1 ./dblat2 < ./dblat2.dat
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat2 < ./dblat2.dat
@$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
- OPENBLAS_NUM_THREADS=1 ./cblat2 < ./cblat2.dat
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat2 < ./cblat2.dat
@$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
- OPENBLAS_NUM_THREADS=1 ./zblat2 < ./zblat2.dat
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat2 < ./zblat2.dat
@$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
ifdef SMP
rm -f ?BLAT2.SUMM
+ifeq ($(USE_OPENMP), 1)
+ OMP_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
+ @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
+ OMP_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
+ @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
+ OMP_NUM_THREADS=2 ./cblat2 < ./cblat2.dat
+ @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
+ OMP_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
+ @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
+else
OPENBLAS_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
@$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
OPENBLAS_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
@@ -36,19 +53,30 @@ ifdef SMP
OPENBLAS_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
@$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
endif
+endif
level3 : sblat3 dblat3 cblat3 zblat3
rm -f ?BLAT3.SUMM
- OPENBLAS_NUM_THREADS=1 ./sblat3 < ./sblat3.dat
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat3 < ./sblat3.dat
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
- OPENBLAS_NUM_THREADS=1 ./dblat3 < ./dblat3.dat
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat3 < ./dblat3.dat
@$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
- OPENBLAS_NUM_THREADS=1 ./cblat3 < ./cblat3.dat
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3 < ./cblat3.dat
@$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
- OPENBLAS_NUM_THREADS=1 ./zblat3 < ./zblat3.dat
+ OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3 < ./zblat3.dat
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
ifdef SMP
rm -f ?BLAT3.SUMM
+ifeq ($(USE_OPENMP), 1)
+ OMP_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
+ @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
+ OMP_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
+ @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
+ OMP_NUM_THREADS=2 ./cblat3 < ./cblat3.dat
+ @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
+ OMP_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
+ @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
+else
OPENBLAS_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
OPENBLAS_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
@@ -58,6 +86,7 @@ ifdef SMP
OPENBLAS_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
endif
+endif
FLDFLAGS = $(FFLAGS:-fPIC=)
CEXTRALIB =