FORTRAN = f77
OPTS = -O -u
LOADER  = f77
LOADOPTS =
LAPACK = ../../lapack.a
TMGLIB = ../../tmglib.a
BLAS = ../../blas.a

########################################################################
#  This is the makefile for the eigenvalue test program from LAPACK.
#  The test files are organized as follows:
#
#     AEIGTST -- Auxiliary test routines used in all precisions
#     SCIGTST -- Auxiliary test routines used in REAL and COMPLEX
#     DZIGTST -- Auxiliary test routines used in DOUBLE PRECISION and
#                COMPLEX*16
#     SEIGTST -- Single precision real test routines
#     CEIGTST -- Single precision complex test routines
#     DEIGTST -- Double precision real test routines
#     ZEIGTST -- Double precision complex test routines
#
#  Test programs can be generated for all or some of the four different
#  precisions. First, modify the FORTRAN and OPTS definitions to refer
#  to the compiler and desired compiler options for your machine, and
#  define LOADER and LOADOPTS to refer to the loader and desired load
#  options for your machine.  Also replace the definitions for BLAS,
#  TMGLIB, and LAPACK with the names of these libraries on your system, 
#  if necessary.  Then enter make followed by one or more of the data
#  types desired.  Some examples:
#       make single
#       make single complex
#       make single double complex complex16
#  Alternatively, the command
#       make
#  without any arguments creates all four test programs.
#  The executable files are called
#       xeigtsts, xeigtstd, xeigtstc, and xeigtstz
#  and are created in the next higher directory level.
#
#  To remove the object files after the executable files have been
#  created, enter
#       make clean
#  On some systems, you can force the source files to be recompiled by
#  entering (for example)
#       make single FRC=FRC
#
#----------------------------------------------------------------------
#
#  Ed Anderson, University of Tennessee
#  March 26, 1990.
#  Susan Ostrouchov, Last updated February 13, 1992
#
########################################################################

AEIGTST = \
   alasum.o \
   alasvm.o \
   alareq.o \
   xerbla.o \
   xlaenv.o \
   chkxer.o

SCIGTST = slafts.o slahd2.o slasum.o sstech.o sstect.o \
   ssvdch.o ssvdct.o ssxt1.o

SEIGTST = schkee.o \
   sbdt01.o sbdt02.o sbdt03.o \
   schkbd.o schkbk.o schkbl.o schkec.o \
   schkhs.o schksb.o schkst.o \
   sdrvbd.o sdrves.o sdrvev.o sdrvsg.o \
   sdrvst.o sdrvsx.o sdrvvx.o \
   serrbd.o serrec.o serred.o serrhs.o serrst.o \
   sget10.o sget22.o sget23.o sget24.o sget31.o \
   sget32.o sget33.o sget34.o sget35.o sget36.o \
   sget37.o sget38.o sget39.o \
   shst01.o slarfy.o sort01.o \
   sort03.o ssbt21.o ssgt01.o sslect.o sspt21.o sstt21.o \
   sstt22.o ssyt21.o ssyt22.o

CEIGTST = cchkee.o \
   cbdt01.o cbdt02.o cbdt03.o \
   cchkbd.o cchkbk.o cchkbl.o cchkec.o \
   cchkhb.o cchkhs.o cchkst.o \
   cdrvbd.o cdrves.o cdrvev.o cdrvsg.o \
   cdrvst.o cdrvsx.o cdrvvx.o \
   cerrbd.o cerrec.o cerred.o cerrhs.o cerrst.o \
   cget10.o cget22.o cget23.o cget24.o \
   cget35.o cget36.o cget37.o cget38.o \
   chbt21.o chet21.o chet22.o chpt21.o chst01.o \
   clarfy.o csgt01.o cslect.o cstt21.o \
   cunt01.o cunt03.o

DZIGTST = dlafts.o dlahd2.o dlasum.o dstech.o dstect.o \
   dsvdch.o dsvdct.o dsxt1.o

DEIGTST = dchkee.o \
   dbdt01.o dbdt02.o dbdt03.o \
   dchkbd.o dchkbk.o dchkbl.o dchkec.o \
   dchkhs.o dchksb.o dchkst.o \
   ddrvbd.o ddrves.o ddrvev.o ddrvsg.o \
   ddrvst.o ddrvsx.o ddrvvx.o \
   derrbd.o derrec.o derred.o derrhs.o derrst.o \
   dget10.o dget22.o dget23.o dget24.o dget31.o \
   dget32.o dget33.o dget34.o dget35.o dget36.o \
   dget37.o dget38.o dget39.o \
   dhst01.o dlarfy.o dort01.o \
   dort03.o dsbt21.o dsgt01.o dslect.o dspt21.o dstt21.o \
   dstt22.o dsyt21.o dsyt22.o

ZEIGTST = zchkee.o \
   zbdt01.o zbdt02.o zbdt03.o \
   zchkbd.o zchkbk.o zchkbl.o zchkec.o \
   zchkhb.o zchkhs.o zchkst.o \
   zdrvbd.o zdrves.o zdrvev.o zdrvsg.o \
   zdrvst.o zdrvsx.o zdrvvx.o \
   zerrbd.o zerrec.o zerred.o zerrhs.o zerrst.o \
   zget10.o zget22.o zget23.o zget24.o \
   zget35.o zget36.o zget37.o zget38.o \
   zhbt21.o zhet21.o zhet22.o zhpt21.o zhst01.o \
   zlarfy.o zsgt01.o zslect.o zstt21.o \
   zunt01.o zunt03.o

all: single complex double complex16

single: ../xeigtsts
complex: ../xeigtstc
double: ../xeigtstd
complex16: ../xeigtstz

../xeigtsts: $(SEIGTST) $(SCIGTST) $(AEIGTST) ; \
          $(LOADER) $(LOADOPTS) -o $@ \
          $(SEIGTST) $(SCIGTST) $(AEIGTST) $(TMGLIB) $(LAPACK) $(BLAS)

../xeigtstc: $(CEIGTST) $(SCIGTST) $(AEIGTST) ; \
          $(LOADER) $(LOADOPTS) -o $@ \
          $(CEIGTST) $(SCIGTST) $(AEIGTST) $(TMGLIB) $(LAPACK) $(BLAS)

../xeigtstd: $(DEIGTST) $(DZIGTST) $(AEIGTST) ; \
          $(LOADER) $(LOADOPTS) -o $@ \
          $(DEIGTST) $(DZIGTST) $(AEIGTST) $(TMGLIB) $(LAPACK) $(BLAS)

../xeigtstz: $(ZEIGTST) $(DZIGTST) $(AEIGTST) ; \
          $(LOADER) $(LOADOPTS) -o $@ \
          $(ZEIGTST) $(DZIGTST) $(AEIGTST) $(TMGLIB) $(LAPACK) $(BLAS)


cdrvst.o: cdrvst.f
	$(FORTRAN) -c $<

.f.o : ; $(FORTRAN) $(OPTS) -c $<
