Fix missing or unnecessary prerequisites
authorKyle Guinn <elyk03@gmail.com>
Sun, 5 Feb 2017 08:54:37 +0000 (02:54 -0600)
committerKyle Guinn <elyk03@gmail.com>
Sun, 5 Feb 2017 08:54:37 +0000 (02:54 -0600)
.gitignore
CBLAS/Makefile
CBLAS/testing/Makefile
LAPACKE/Makefile
Makefile
TESTING/EIG/Makefile
TESTING/LIN/Makefile
TESTING/Makefile

index 1e3c726..05b8c7f 100644 (file)
@@ -23,7 +23,8 @@ CBLAS/examples/cblas_ex1
 CBLAS/examples/cblas_ex2
 
 # LAPACK testing
-TESTING/x*
+TESTING/LIN/xlintst*
+TESTING/EIG/xeigtst*
 TESTING/*.out
 TESTING/*.txt
 
index 3ba1f71..43d9406 100644 (file)
@@ -1,9 +1,18 @@
 include ../make.inc
 
-all:
-       cd include && cp cblas_mangling_with_flags.h.in cblas_mangling.h
-       cd src && $(MAKE) all
+all: cblas
 
+cblas: include/cblas_mangling.h
+       cd src && $(MAKE)
+
+include/cblas_mangling.h: include/cblas_mangling_with_flags.h.in
+       cp $< $@
+
+cblas_testing: cblas
+       cd testing && $(MAKE) run
+
+cblas_example: cblas
+       cd examples && $(MAKE)
 
 clean: cleanlib
 
@@ -16,12 +25,3 @@ cleanexe:
 cleanall: clean cleanexe
        cd src && $(MAKE) cleanall
        cd examples && $(MAKE) cleanall
-
-cblas_testing:
-       cd testing && $(MAKE) all
-
-runtst:
-       cd testing && $(MAKE) run
-
-example: all
-       cd examples && $(MAKE) all
index 3b6eaed..2ef499c 100644 (file)
@@ -28,9 +28,9 @@ ztestl2o = c_zblas2.o c_z2chke.o auxiliary.o c_xerbla.o
 ztestl3o = c_zblas3.o c_z3chke.o auxiliary.o c_xerbla.o
 
 all: all1 all2 all3
-all1: stest1 dtest1 ctest1 ztest1
-all2: stest2 dtest2 ctest2 ztest2
-all3: stest3 dtest3 ctest3 ztest3
+all1: xscblat1 xdcblat1 xccblat1 xzcblat1
+all2: xscblat2 xdcblat2 xccblat2 xzcblat2
+all3: xscblat3 xdcblat3 xccblat3 xzcblat3
 
 clean:
        rm -f core *.o *.out x*
@@ -39,21 +39,6 @@ cleanobj:
 cleanexe:
        rm -f x*
 
-stest1: xscblat1
-dtest1: xdcblat1
-ctest1: xccblat1
-ztest1: xzcblat1
-
-stest2: xscblat2
-dtest2: xdcblat2
-ctest2: xccblat2
-ztest2: xzcblat2
-
-stest3: xscblat3
-dtest3: xdcblat3
-ctest3: xccblat3
-ztest3: xzcblat3
-
 #
 # Compile each precision
 #
@@ -91,7 +76,7 @@ xzcblat3: c_zblat3.o $(ztestl3o) $(LIB)
 
 
 # RUN TESTS
-run:
+run: all
        @echo "--> TESTING CBLAS 1 - SINGLE PRECISION REAL <--"
        @./xscblat1 > stest1.out
        @echo "--> TESTING CBLAS 1 - DOUBLE PRECISION REAL <--"
index f1b07ad..6252551 100644 (file)
@@ -44,12 +44,14 @@ include ../make.inc
 
 all: lapacke
 
-lapacke:
-       cd include && cp lapacke_mangling_with_flags.h.in lapacke_mangling.h
+lapacke: include/lapacke_mangling.h
        cd src && $(MAKE)
        cd utils && $(MAKE)
 
-lapacke_example:
+include/lapacke_mangling.h: include/lapacke_mangling_with_flags.h.in
+       cp $< $@
+
+lapacke_example: lapacke
        cd example && $(MAKE)
 
 clean: cleanlib
index a280319..40a6c2c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,59 +13,75 @@ lib: lapacklib tmglib
 
 clean: cleanlib cleantesting cleanblas_testing cleancblas_testing
 
-lapack_install:
-       ( cd INSTALL; $(MAKE) run )
-
 blaslib:
        ( cd BLAS/SRC; $(MAKE) )
 
 cblaslib:
        ( cd CBLAS; $(MAKE) )
 
-lapacklib: lapack_install
+lapacklib:
        ( cd SRC; $(MAKE) )
 
-lapackelib: lapacklib
+lapackelib:
        ( cd LAPACKE; $(MAKE) )
 
-cblas_example: cblaslib blaslib
-       ( cd CBLAS/examples; $(MAKE) )
-
-lapacke_example: lapackelib
-       ( cd LAPACKE/example; $(MAKE) )
-
-variants:
-       ( cd SRC/VARIANTS; $(MAKE) )
-
 tmglib:
        ( cd TESTING/MATGEN; $(MAKE) )
 
-lapack_testing: lib
-       ( cd TESTING; $(MAKE) )
-       ./lapack_testing.py
+variants:
+       ( cd SRC/VARIANTS; $(MAKE) )
 
-variants_testing: lib variants
-       ( cd TESTING; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/cholrl.a'; \
-       mv stest.out stest_cholrl.out; mv dtest.out dtest_cholrl.out; mv ctest.out ctest_cholrl.out; mv ztest.out ztest_cholrl.out )
-       ( cd TESTING; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/choltop.a'; \
-       mv stest.out stest_choltop.out; mv dtest.out dtest_choltop.out; mv ctest.out ctest_choltop.out; mv ztest.out ztest_choltop.out )
-       ( cd TESTING; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/lucr.a'; \
-       mv stest.out stest_lucr.out; mv dtest.out dtest_lucr.out; mv ctest.out ctest_lucr.out; mv ztest.out ztest_lucr.out )
-       ( cd TESTING; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/lull.a'; \
-       mv stest.out stest_lull.out; mv dtest.out dtest_lull.out; mv ctest.out ctest_lull.out; mv ztest.out ztest_lull.out )
-       ( cd TESTING; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/lurec.a'; \
-       mv stest.out stest_lurec.out; mv dtest.out dtest_lurec.out; mv ctest.out ctest_lurec.out; mv ztest.out ztest_lurec.out )
-       ( cd TESTING; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/qrll.a'; \
-       mv stest.out stest_qrll.out; mv dtest.out dtest_qrll.out; mv ctest.out ctest_qrll.out; mv ztest.out ztest_qrll.out )
+lapack_install:
+       ( cd INSTALL; $(MAKE) run )
 
 blas_testing: blaslib
        ( cd BLAS/TESTING; $(MAKE) run )
 
-cblas_testing: blaslib
+cblas_testing: cblaslib blaslib
        ( cd CBLAS; $(MAKE) cblas_testing )
-       ( cd CBLAS; $(MAKE) runtst )
 
+lapack_testing: tmglib lapacklib blaslib
+       ( cd TESTING/LIN && rm -f xlintst* )
+       ( cd TESTING && $(MAKE) )
+       ./lapack_testing.py
+
+variants_testing: tmglib variants lapacklib blaslib
+       ( cd TESTING/LIN && rm -f xlintst* && $(MAKE) VARLIB='SRC/VARIANTS/cholrl.a' )
+       ( cd TESTING && $(MAKE) stest.out && mv stest.out stest_cholrl.out )
+       ( cd TESTING && $(MAKE) dtest.out && mv dtest.out dtest_cholrl.out )
+       ( cd TESTING && $(MAKE) ctest.out && mv ctest.out ctest_cholrl.out )
+       ( cd TESTING && $(MAKE) ztest.out && mv ztest.out ztest_cholrl.out )
+       ( cd TESTING/LIN; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/choltop.a' )
+       ( cd TESTING && $(MAKE) stest.out && mv stest.out stest_choltop.out )
+       ( cd TESTING && $(MAKE) dtest.out && mv dtest.out dtest_choltop.out )
+       ( cd TESTING && $(MAKE) ctest.out && mv ctest.out ctest_choltop.out )
+       ( cd TESTING && $(MAKE) ztest.out && mv ztest.out ztest_choltop.out )
+       ( cd TESTING/LIN; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/lucr.a' )
+       ( cd TESTING && $(MAKE) stest.out && mv stest.out stest_lucr.out )
+       ( cd TESTING && $(MAKE) dtest.out && mv dtest.out dtest_lucr.out )
+       ( cd TESTING && $(MAKE) ctest.out && mv ctest.out ctest_lucr.out )
+       ( cd TESTING && $(MAKE) ztest.out && mv ztest.out ztest_lucr.out )
+       ( cd TESTING/LIN; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/lull.a' )
+       ( cd TESTING && $(MAKE) stest.out && mv stest.out stest_lull.out )
+       ( cd TESTING && $(MAKE) dtest.out && mv dtest.out dtest_lull.out )
+       ( cd TESTING && $(MAKE) ctest.out && mv ctest.out ctest_lull.out )
+       ( cd TESTING && $(MAKE) ztest.out && mv ztest.out ztest_lull.out )
+       ( cd TESTING/LIN; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/lurec.a' )
+       ( cd TESTING && $(MAKE) stest.out && mv stest.out stest_lurec.out )
+       ( cd TESTING && $(MAKE) dtest.out && mv dtest.out dtest_lurec.out )
+       ( cd TESTING && $(MAKE) ctest.out && mv ctest.out ctest_lurec.out )
+       ( cd TESTING && $(MAKE) ztest.out && mv ztest.out ztest_lurec.out )
+       ( cd TESTING/LIN; rm -f xlintst*; $(MAKE) VARLIB='SRC/VARIANTS/qrll.a' )
+       ( cd TESTING && $(MAKE) stest.out && mv stest.out stest_qrll.out )
+       ( cd TESTING && $(MAKE) dtest.out && mv dtest.out dtest_qrll.out )
+       ( cd TESTING && $(MAKE) ctest.out && mv ctest.out ctest_qrll.out )
+       ( cd TESTING && $(MAKE) ztest.out && mv ztest.out ztest_qrll.out )
+
+cblas_example: cblaslib blaslib
+       ( cd CBLAS; $(MAKE) cblas_example )
 
+lapacke_example: lapackelib lapacklib blaslib
+       ( cd LAPACKE; $(MAKE) lapacke_example )
 
 html:
        @echo "LAPACK HTML PAGES GENERATION with Doxygen"
@@ -104,7 +120,6 @@ cleancblas_testing:
 cleantesting:
        ( cd TESTING/LIN; $(MAKE) clean )
        ( cd TESTING/EIG; $(MAKE) clean )
-       ( cd TESTING; rm -f xlin* xeig* )
 
 cleanall: cleanlib cleanblas_testing cleancblas_testing cleantesting
        ( cd INSTALL; $(MAKE) cleanall )
index 80d8bd2..a614ee0 100644 (file)
@@ -23,7 +23,6 @@ include ../../make.inc
 #  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
@@ -120,21 +119,21 @@ ZEIGTST = zchkee.o \
 
 all: single complex double complex16
 
-single: ../xeigtsts
-complex: ../xeigtstc
-double: ../xeigtstd
-complex16: ../xeigtstz
+single: xeigtsts
+complex: xeigtstc
+double: xeigtstd
+complex16: xeigtstz
 
-../xeigtsts: $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xeigtsts: $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xeigtstc: $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xeigtstc: $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xeigtstd: $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xeigtstd: $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xeigtstz: $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xeigtstz: $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
 $(AEIGTST): $(FRC)
@@ -149,7 +148,7 @@ FRC:
        @FRC=$(FRC)
 
 clean:
-       rm -f *.o
+       rm -f *.o xeigtst*
 
 schkee.o: schkee.f
        $(FORTRAN) $(DRVOPTS) -c -o $@ $<
index f5c63d3..4dc891c 100644 (file)
@@ -22,8 +22,7 @@ include ../../make.inc
 #       make
 #  without any arguments creates all four test programs.
 #  The executable files are called
-#       xlintims, xlintimd, xlintimc, and xlintimz
-#  and are created in the next higher directory level.
+#       xlintsts, xlintstd, xlintstc, and xlintstz
 #
 #  To remove the object files after the executable files have been
 #  created, enter
@@ -248,44 +247,44 @@ ZLINTSTRFP = zchkrfp.o zdrvrfp.o zdrvrf1.o zdrvrf2.o zdrvrf3.o zdrvrf4.o zerrrfp
 
 all: single double complex complex16 proto-single proto-double proto-complex proto-complex16
 
-single: ../xlintsts
-double: ../xlintstd
-complex: ../xlintstc
-complex16: ../xlintstz
+single: xlintsts
+double: xlintstd
+complex: xlintstc
+complex16: xlintstz
 
-proto-single: ../xlintstrfs
-proto-double: ../xlintstds ../xlintstrfd
-proto-complex: ../xlintstrfc
-proto-complex16: ../xlintstzc ../xlintstrfz
+proto-single: xlintstrfs
+proto-double: xlintstds xlintstrfd
+proto-complex: xlintstrfc
+proto-complex16: xlintstzc xlintstrfz
 
-../xlintsts: $(ALINTST) $(SLINTST) $(SCLNTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
+xlintsts: $(ALINTST) $(SLINTST) $(SCLNTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstc: $(ALINTST) $(CLINTST) $(SCLNTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
+xlintstc: $(ALINTST) $(CLINTST) $(SCLNTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstd: $(ALINTST) $(DLINTST) $(DZLNTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
+xlintstd: $(ALINTST) $(DLINTST) $(DZLNTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstz: $(ALINTST) $(ZLINTST) $(DZLNTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
+xlintstz: $(ALINTST) $(ZLINTST) $(DZLNTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstds: $(DSLINTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xlintstds: $(DSLINTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstzc: $(ZCLINTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xlintstzc: $(ZCLINTST) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstrfs: $(SLINTSTRFP) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xlintstrfs: $(SLINTSTRFP) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstrfd: $(DLINTSTRFP) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xlintstrfd: $(DLINTSTRFP) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstrfc: $(CLINTSTRFP) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xlintstrfc: $(CLINTSTRFP) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
-../xlintstrfz: $(ZLINTSTRFP) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
+xlintstrfz: $(ZLINTSTRFP) ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB)
        $(LOADER) $(LOADOPTS) -o $@ $^
 
 $(ALINTST): $(FRC)
@@ -300,7 +299,7 @@ FRC:
        @FRC=$(FRC)
 
 clean:
-       rm -f *.o
+       rm -f *.o xlintst*
 
 schkaa.o: schkaa.f
        $(FORTRAN) $(DRVOPTS) -c -o $@ $<
index 4739bfc..b1f2df8 100644 (file)
@@ -21,7 +21,6 @@
 #  The executable files are called:
 #       xlintsts, xlintstd, xlintstc, and xlintstz for LIN
 #       xeigtsts, xeigtstd, xeigtstc, and xeigtstz for EIG
-#  and exist in the current directory level.
 #
 #  To remove the output files after the tests have been run, enter
 #       make clean
 
 include ../make.inc
 
-ifneq ($(strip $(VARLIB)),)
-    LAPACKLIB := $(VARLIB) ../$(LAPACKLIB)
-endif
-
-
 all: single complex double complex16 singleproto doubleproto complexproto complex16proto
 
 SEIGTST= snep.out \
@@ -157,443 +151,440 @@ complex16proto: $(ZLINTSTPROTO)
 #
 # ======== SINGLE LIN TESTS ===========================
 
-stest.out: stest.in xlintsts
+stest.out: stest.in LIN/xlintsts
        @echo Testing REAL LAPACK linear equation routines
-       ./xlintsts < $< > $@ 2>&1
+       ./LIN/xlintsts < $< > $@ 2>&1
 #
 # ======== COMPLEX LIN TESTS ==========================
 
-ctest.out: ctest.in xlintstc
+ctest.out: ctest.in LIN/xlintstc
        @echo Testing COMPLEX LAPACK linear equation routines
-       ./xlintstc < $< > $@ 2>&1
+       ./LIN/xlintstc < $< > $@ 2>&1
 #
 # ======== DOUBLE LIN TESTS ===========================
 
-dtest.out: dtest.in xlintstd
+dtest.out: dtest.in LIN/xlintstd
        @echo Testing DOUBLE PRECISION LAPACK linear equation routines
-       ./xlintstd < $< > $@ 2>&1
+       ./LIN/xlintstd < $< > $@ 2>&1
 #
 # ======== COMPLEX16 LIN TESTS ========================
 
-ztest.out: ztest.in xlintstz
+ztest.out: ztest.in LIN/xlintstz
        @echo Testing COMPLEX16 LAPACK linear equation routines
-       ./xlintstz < $< > $@ 2>&1
+       ./LIN/xlintstz < $< > $@ 2>&1
 #
 # ======== SINGLE-DOUBLE PROTO LIN TESTS ==============
 
-dstest.out: dstest.in xlintstds
+dstest.out: dstest.in LIN/xlintstds
        @echo Testing SINGLE-DOUBLE PRECISION LAPACK prototype linear equation routines
-       ./xlintstds < $< > $@ 2>&1
+       ./LIN/xlintstds < $< > $@ 2>&1
 #
 # ======== COMPLEX-COMPLEX16 LIN TESTS ========================
 
-zctest.out: zctest.in xlintstzc
+zctest.out: zctest.in LIN/xlintstzc
        @echo Testing COMPLEX-COMPLEX16 LAPACK prototype linear equation routines
-       ./xlintstzc < $< > $@ 2>&1
+       ./LIN/xlintstzc < $< > $@ 2>&1
 #
 # ======== SINGLE RFP LIN TESTS ========================
 
-stest_rfp.out: stest_rfp.in xlintstrfs
+stest_rfp.out: stest_rfp.in LIN/xlintstrfs
        @echo Testing REAL LAPACK RFP prototype linear equation routines
-       ./xlintstrfs < $< > $@ 2>&1
+       ./LIN/xlintstrfs < $< > $@ 2>&1
 #
 # ======== COMPLEX16 RFP LIN TESTS ========================
 
-dtest_rfp.out: dtest_rfp.in xlintstrfd
+dtest_rfp.out: dtest_rfp.in LIN/xlintstrfd
        @echo Testing DOUBLE PRECISION LAPACK RFP prototype linear equation routines
-       ./xlintstrfd < $< > $@ 2>&1
+       ./LIN/xlintstrfd < $< > $@ 2>&1
 #
 # ======== COMPLEX16 RFP LIN TESTS ========================
 
-ctest_rfp.out: ctest_rfp.in xlintstrfc
+ctest_rfp.out: ctest_rfp.in LIN/xlintstrfc
        @echo Testing COMPLEX LAPACK RFP prototype linear equation routines
-       ./xlintstrfc < $< > $@ 2>&1
+       ./LIN/xlintstrfc < $< > $@ 2>&1
 #
 # ======== COMPLEX16 RFP LIN TESTS ========================
 
-ztest_rfp.out: ztest_rfp.in xlintstrfz
+ztest_rfp.out: ztest_rfp.in LIN/xlintstrfz
        @echo Testing COMPLEX16 LAPACK RFP prototype linear equation routines
-       ./xlintstrfz < $< > $@ 2>&1
+       ./LIN/xlintstrfz < $< > $@ 2>&1
 #
 #
 # ======== SINGLE EIG TESTS ===========================
 #
 
-snep.out: nep.in xeigtsts
+snep.out: nep.in EIG/xeigtsts
        @echo NEP: Testing Nonsymmetric Eigenvalue Problem routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-ssep.out: sep.in xeigtsts
+ssep.out: sep.in EIG/xeigtsts
        @echo SEP: Testing Symmetric Eigenvalue Problem routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sse2.out: se2.in xeigtsts
+sse2.out: se2.in EIG/xeigtsts
        @echo SEP: Testing Symmetric Eigenvalue Problem routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-ssvd.out: svd.in xeigtsts
+ssvd.out: svd.in EIG/xeigtsts
        @echo SVD: Testing Singular Value Decomposition routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sec.out: sec.in xeigtsts
+sec.out: sec.in EIG/xeigtsts
        @echo SEC: Testing REAL Eigen Condition Routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sed.out: sed.in xeigtsts
+sed.out: sed.in EIG/xeigtsts
        @echo SEV: Testing REAL Nonsymmetric Eigenvalue Driver
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sgg.out: sgg.in xeigtsts
+sgg.out: sgg.in EIG/xeigtsts
        @echo SGG: Testing REAL Nonsymmetric Generalized Eigenvalue Problem routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sgd.out: sgd.in xeigtsts
+sgd.out: sgd.in EIG/xeigtsts
        @echo SGD: Testing REAL Nonsymmetric Generalized Eigenvalue Problem driver routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-ssb.out: ssb.in xeigtsts
+ssb.out: ssb.in EIG/xeigtsts
        @echo SSB: Testing REAL Symmetric Eigenvalue Problem routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-ssg.out: ssg.in xeigtsts
+ssg.out: ssg.in EIG/xeigtsts
        @echo SSG: Testing REAL Symmetric Generalized Eigenvalue Problem routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sbal.out: sbal.in xeigtsts
+sbal.out: sbal.in EIG/xeigtsts
        @echo SGEBAL: Testing the balancing of a REAL general matrix
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sbak.out: sbak.in xeigtsts
+sbak.out: sbak.in EIG/xeigtsts
        @echo SGEBAK: Testing the back transformation of a REAL balanced matrix
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sgbal.out: sgbal.in xeigtsts
+sgbal.out: sgbal.in EIG/xeigtsts
        @echo SGGBAL: Testing the balancing of a pair of REAL general matrices
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sgbak.out: sgbak.in xeigtsts
+sgbak.out: sgbak.in EIG/xeigtsts
        @echo SGGBAK: Testing the back transformation of a pair of REAL balanced matrices
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sbb.out: sbb.in xeigtsts
+sbb.out: sbb.in EIG/xeigtsts
        @echo SBB: Testing banded Singular Value Decomposition routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sglm.out: glm.in xeigtsts
+sglm.out: glm.in EIG/xeigtsts
        @echo GLM: Testing Generalized Linear Regression Model routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sgqr.out: gqr.in xeigtsts
+sgqr.out: gqr.in EIG/xeigtsts
        @echo GQR: Testing Generalized QR and RQ factorization routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-sgsv.out: gsv.in xeigtsts
+sgsv.out: gsv.in EIG/xeigtsts
        @echo GSV: Testing Generalized Singular Value Decomposition routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-scsd.out: csd.in xeigtsts
+scsd.out: csd.in EIG/xeigtsts
        @echo CSD: Testing CS Decomposition routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 
-slse.out: lse.in xeigtsts
+slse.out: lse.in EIG/xeigtsts
        @echo LSE: Testing Constrained Linear Least Squares routines
-       ./xeigtsts < $< > $@ 2>&1
+       ./EIG/xeigtsts < $< > $@ 2>&1
 #
 # ======== COMPLEX EIG TESTS ===========================
 
-cnep.out: nep.in xeigtstc
+cnep.out: nep.in EIG/xeigtstc
        @echo NEP: Testing Nonsymmetric Eigenvalue Problem routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-csep.out: sep.in xeigtstc
+csep.out: sep.in EIG/xeigtstc
        @echo SEP: Testing Symmetric Eigenvalue Problem routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cse2.out: se2.in xeigtstc
+cse2.out: se2.in EIG/xeigtstc
        @echo SEP: Testing Symmetric Eigenvalue Problem routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-csvd.out: svd.in xeigtstc
+csvd.out: svd.in EIG/xeigtstc
        @echo SVD: Testing Singular Value Decomposition routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cec.out: cec.in xeigtstc
+cec.out: cec.in EIG/xeigtstc
        @echo CEC: Testing COMPLEX Eigen Condition Routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-ced.out: ced.in xeigtstc
+ced.out: ced.in EIG/xeigtstc
        @echo CES: Testing COMPLEX Nonsymmetric Schur Form Driver
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cgg.out: cgg.in xeigtstc
+cgg.out: cgg.in EIG/xeigtstc
        @echo CGG: Testing COMPLEX Nonsymmetric Generalized Eigenvalue Problem routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cgd.out: cgd.in xeigtstc
+cgd.out: cgd.in EIG/xeigtstc
        @echo CGD: Testing COMPLEX Nonsymmetric Generalized Eigenvalue Problem driver routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-csb.out: csb.in xeigtstc
+csb.out: csb.in EIG/xeigtstc
        @echo CHB: Testing Hermitian Eigenvalue Problem routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-csg.out: csg.in xeigtstc
+csg.out: csg.in EIG/xeigtstc
        @echo CSG: Testing Symmetric Generalized Eigenvalue Problem routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cbal.out: cbal.in xeigtstc
+cbal.out: cbal.in EIG/xeigtstc
        @echo CGEBAL: Testing the balancing of a COMPLEX general matrix
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cbak.out: cbak.in xeigtstc
+cbak.out: cbak.in EIG/xeigtstc
        @echo CGEBAK: Testing the back transformation of a COMPLEX balanced matrix
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cgbal.out: cgbal.in xeigtstc
+cgbal.out: cgbal.in EIG/xeigtstc
        @echo CGGBAL: Testing the balancing of a pair of COMPLEX general matrices
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cgbak.out: cgbak.in xeigtstc
+cgbak.out: cgbak.in EIG/xeigtstc
        @echo CGGBAK: Testing the back transformation of a pair of COMPLEX balanced matrices
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cbb.out: cbb.in xeigtstc
+cbb.out: cbb.in EIG/xeigtstc
        @echo CBB: Testing banded Singular Value Decomposition routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cglm.out: glm.in xeigtstc
+cglm.out: glm.in EIG/xeigtstc
        @echo GLM: Testing Generalized Linear Regression Model routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cgqr.out: gqr.in xeigtstc
+cgqr.out: gqr.in EIG/xeigtstc
        @echo GQR: Testing Generalized QR and RQ factorization routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-cgsv.out: gsv.in xeigtstc
+cgsv.out: gsv.in EIG/xeigtstc
        @echo GSV: Testing Generalized Singular Value Decomposition routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-ccsd.out: csd.in xeigtstc
+ccsd.out: csd.in EIG/xeigtstc
        @echo CSD: Testing CS Decomposition routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 
-clse.out: lse.in xeigtstc
+clse.out: lse.in EIG/xeigtstc
        @echo LSE: Testing Constrained Linear Least Squares routines
-       ./xeigtstc < $< > $@ 2>&1
+       ./EIG/xeigtstc < $< > $@ 2>&1
 #
 # ======== DOUBLE EIG TESTS ===========================
 
-dnep.out: nep.in xeigtstd
+dnep.out: nep.in EIG/xeigtstd
        @echo NEP: Testing Nonsymmetric Eigenvalue Problem routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dsep.out: sep.in xeigtstd
+dsep.out: sep.in EIG/xeigtstd
        @echo SEP: Testing Symmetric Eigenvalue Problem routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dse2.out: se2.in xeigtstd
+dse2.out: se2.in EIG/xeigtstd
        @echo SEP: Testing Symmetric Eigenvalue Problem routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dsvd.out: svd.in xeigtstd
+dsvd.out: svd.in EIG/xeigtstd
        @echo SVD: Testing Singular Value Decomposition routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dec.out: dec.in xeigtstd
+dec.out: dec.in EIG/xeigtstd
        @echo DEC: Testing DOUBLE PRECISION Eigen Condition Routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-ded.out: ded.in xeigtstd
+ded.out: ded.in EIG/xeigtstd
        @echo DEV: Testing DOUBLE PRECISION Nonsymmetric Eigenvalue Driver
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dgg.out: dgg.in xeigtstd
+dgg.out: dgg.in EIG/xeigtstd
        @echo DGG: Testing DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dgd.out: dgd.in xeigtstd
+dgd.out: dgd.in EIG/xeigtstd
        @echo DGD: Testing DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem driver routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dsb.out: dsb.in xeigtstd
+dsb.out: dsb.in EIG/xeigtstd
        @echo DSB: Testing DOUBLE PRECISION Symmetric Eigenvalue Problem routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dsg.out: dsg.in xeigtstd
+dsg.out: dsg.in EIG/xeigtstd
        @echo DSG: Testing DOUBLE PRECISION Symmetric Generalized Eigenvalue Problem routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dbal.out: dbal.in xeigtstd
+dbal.out: dbal.in EIG/xeigtstd
        @echo DGEBAL: Testing the balancing of a DOUBLE PRECISION general matrix
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dbak.out: dbak.in xeigtstd
+dbak.out: dbak.in EIG/xeigtstd
        @echo DGEBAK: Testing the back transformation of a DOUBLE PRECISION balanced matrix
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dgbal.out: dgbal.in xeigtstd
+dgbal.out: dgbal.in EIG/xeigtstd
        @echo DGGBAL: Testing the balancing of a pair of DOUBLE PRECISION general matrices
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dgbak.out: dgbak.in xeigtstd
+dgbak.out: dgbak.in EIG/xeigtstd
        @echo DGGBAK: Testing the back transformation of a pair of DOUBLE PRECISION balanced matrices
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dbb.out: dbb.in xeigtstd
+dbb.out: dbb.in EIG/xeigtstd
        @echo DBB: Testing banded Singular Value Decomposition routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dglm.out: glm.in xeigtstd
+dglm.out: glm.in EIG/xeigtstd
        @echo GLM: Testing Generalized Linear Regression Model routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dgqr.out: gqr.in xeigtstd
+dgqr.out: gqr.in EIG/xeigtstd
        @echo GQR: Testing Generalized QR and RQ factorization routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dgsv.out: gsv.in xeigtstd
+dgsv.out: gsv.in EIG/xeigtstd
        @echo GSV: Testing Generalized Singular Value Decomposition routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dcsd.out: csd.in xeigtstd
+dcsd.out: csd.in EIG/xeigtstd
        @echo CSD: Testing CS Decomposition routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 
-dlse.out: lse.in xeigtstd
+dlse.out: lse.in EIG/xeigtstd
        @echo LSE: Testing Constrained Linear Least Squares routines
-       ./xeigtstd < $< > $@ 2>&1
+       ./EIG/xeigtstd < $< > $@ 2>&1
 #
 # ======== COMPLEX16 EIG TESTS ===========================
 
-znep.out: nep.in xeigtstz
+znep.out: nep.in EIG/xeigtstz
        @echo NEP: Testing Nonsymmetric Eigenvalue Problem routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zsep.out: sep.in xeigtstz
+zsep.out: sep.in EIG/xeigtstz
        @echo SEP: Testing Symmetric Eigenvalue Problem routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zse2.out: se2.in xeigtstz
+zse2.out: se2.in EIG/xeigtstz
        @echo SEP: Testing Symmetric Eigenvalue Problem routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zsvd.out: svd.in xeigtstz
+zsvd.out: svd.in EIG/xeigtstz
        @echo SVD: Testing Singular Value Decomposition routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zec.out: zec.in xeigtstz
+zec.out: zec.in EIG/xeigtstz
        @echo ZEC: Testing COMPLEX16 Eigen Condition Routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zed.out: zed.in xeigtstz
+zed.out: zed.in EIG/xeigtstz
        @echo ZES: Testing COMPLEX16 Nonsymmetric Schur Form Driver
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zgg.out: zgg.in xeigtstz
+zgg.out: zgg.in EIG/xeigtstz
        @echo ZGG: Testing COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zgd.out: zgd.in xeigtstz
+zgd.out: zgd.in EIG/xeigtstz
        @echo ZGD: Testing COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem driver routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zsb.out: zsb.in xeigtstz
+zsb.out: zsb.in EIG/xeigtstz
        @echo ZHB: Testing Hermitian Eigenvalue Problem routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zsg.out: zsg.in xeigtstz
+zsg.out: zsg.in EIG/xeigtstz
        @echo ZSG: Testing Symmetric Generalized Eigenvalue Problem routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zbal.out: zbal.in xeigtstz
+zbal.out: zbal.in EIG/xeigtstz
        @echo ZGEBAL: Testing the balancing of a COMPLEX16 general matrix
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zbak.out: zbak.in xeigtstz
+zbak.out: zbak.in EIG/xeigtstz
        @echo ZGEBAK: Testing the back transformation of a COMPLEX16 balanced matrix
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zgbal.out: zgbal.in xeigtstz
+zgbal.out: zgbal.in EIG/xeigtstz
        @echo ZGGBAL: Testing the balancing of a pair of COMPLEX general matrices
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zgbak.out: zgbak.in xeigtstz
+zgbak.out: zgbak.in EIG/xeigtstz
        @echo ZGGBAK: Testing the back transformation of a pair of COMPLEX16 balanced matrices
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zbb.out: zbb.in xeigtstz
+zbb.out: zbb.in EIG/xeigtstz
        @echo ZBB: Testing banded Singular Value Decomposition routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zglm.out: glm.in xeigtstz
+zglm.out: glm.in EIG/xeigtstz
        @echo GLM: Testing Generalized Linear Regression Model routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zgqr.out: gqr.in xeigtstz
+zgqr.out: gqr.in EIG/xeigtstz
        @echo GQR: Testing Generalized QR and RQ factorization routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zgsv.out: gsv.in xeigtstz
+zgsv.out: gsv.in EIG/xeigtstz
        @echo GSV: Testing Generalized Singular Value Decomposition routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zcsd.out: csd.in xeigtstz
+zcsd.out: csd.in EIG/xeigtstz
        @echo CSD: Testing CS Decomposition routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 
-zlse.out: lse.in xeigtstz
+zlse.out: lse.in EIG/xeigtstz
        @echo LSE: Testing Constrained Linear Least Squares routines
-       ./xeigtstz < $< > $@ 2>&1
+       ./EIG/xeigtstz < $< > $@ 2>&1
 # ==============================================================================
 
-xlintsts: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) single
+LIN/xlintsts: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintsts
 
-xlintstc: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) complex
+LIN/xlintstc: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstc
 
-xlintstd: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) double
+LIN/xlintstd: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstd
 
-xlintstz: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) complex16
+LIN/xlintstz: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstz
 
-xlintstrfs: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) proto-single
+LIN/xlintstrfs: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstrfs
 
-xlintstrfc: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) proto-complex
+LIN/xlintstrfc: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstrfc
 
-xlintstrfd: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) proto-double
+LIN/xlintstrfd: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstrfd
 
-xlintstrfz: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) proto-complex16
+LIN/xlintstrfz: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstrfz
 
-xlintstds: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) proto-double
+LIN/xlintstds: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstds
 
-xlintstzc: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
-       cd LIN ; $(MAKE) proto-complex16
+LIN/xlintstzc: $(FRCLIN) $(FRC)
+       cd LIN ; $(MAKE) xlintstzc
 
-xeigtsts: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCEIG) $(FRC)
-       cd EIG ; $(MAKE) single
+EIG/xeigtsts: $(FRCEIG) $(FRC)
+       cd EIG ; $(MAKE) xeigtsts
 
-xeigtstc: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCEIG) $(FRC)
-       cd EIG ; $(MAKE) complex
+EIG/xeigtstc: $(FRCEIG) $(FRC)
+       cd EIG ; $(MAKE) xeigtstc
 
-xeigtstd: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCEIG) $(FRC)
-       cd EIG ; $(MAKE) double
+EIG/xeigtstd: $(FRCEIG) $(FRC)
+       cd EIG ; $(MAKE) xeigtstd
 
-xeigtstz: ../$(LAPACKLIB) ../$(TMGLIB) $(FRCEIG) $(FRC)
-       cd EIG ; $(MAKE) complex16
+EIG/xeigtstz: $(FRCEIG) $(FRC)
+       cd EIG ; $(MAKE) xeigtstz
 
 clean:
        rm -f *.out core
 
-cleanup:
-       rm -f x* *.out core
-
 FRCLIN:
        @FRCLIN=$(FRCLIN)