############################################################################
#
#  Program:         ScaLAPACK
#
#  Module:          Makefile
#
#  Purpose:         Eigenroutine Testing Makefile
#
#  Creation date:   March 20, 1995
#
#  Modified:
#
#  Send bug reports, comments or suggestions to scalapack@cs.utk.edu
#
############################################################################

include ../../SLmake.inc

shrdexe = $(TESTINGdir)/xshrd
dhrdexe = $(TESTINGdir)/xdhrd
chrdexe = $(TESTINGdir)/xchrd
zhrdexe = $(TESTINGdir)/xzhrd

strdexe = $(TESTINGdir)/xstrd
dtrdexe = $(TESTINGdir)/xdtrd
ctrdexe = $(TESTINGdir)/xctrd
ztrdexe = $(TESTINGdir)/xztrd

sbrdexe = $(TESTINGdir)/xsbrd
dbrdexe = $(TESTINGdir)/xdbrd
cbrdexe = $(TESTINGdir)/xcbrd
zbrdexe = $(TESTINGdir)/xzbrd


ssepexe = $(TESTINGdir)/xssep
dsepexe = $(TESTINGdir)/xdsep
csepexe = $(TESTINGdir)/xcsep
zsepexe = $(TESTINGdir)/xzsep

sgsepexe = $(TESTINGdir)/xsgsep
dgsepexe = $(TESTINGdir)/xdgsep
cgsepexe = $(TESTINGdir)/xcgsep
zgsepexe = $(TESTINGdir)/xzgsep

ssvdexe = $(TESTINGdir)/xssvd
dsvdexe = $(TESTINGdir)/xdsvd

snepexe = $(TESTINGdir)/xsnep
dnepexe = $(TESTINGdir)/xdnep

smatgen = psmatgen.o pmatgeninc.o
dmatgen = pdmatgen.o pmatgeninc.o
cmatgen = pcmatgen.o pmatgeninc.o
zmatgen = pzmatgen.o pmatgeninc.o

sbrd = psbrddriver.o psbrdinfo.o psgebdrv.o pslafchk.o $(smatgen)
dbrd = pdbrddriver.o pdbrdinfo.o pdgebdrv.o pdlafchk.o $(dmatgen)
cbrd = pcbrddriver.o pcbrdinfo.o pcgebdrv.o pclafchk.o $(cmatgen)
zbrd = pzbrddriver.o pzbrdinfo.o pzgebdrv.o pzlafchk.o $(zmatgen)

shrd = pshrddriver.o pshrdinfo.o psgehdrv.o pslafchk.o $(smatgen)
dhrd = pdhrddriver.o pdhrdinfo.o pdgehdrv.o pdlafchk.o $(dmatgen)
chrd = pchrddriver.o pchrdinfo.o pcgehdrv.o pclafchk.o $(cmatgen)
zhrd = pzhrddriver.o pzhrdinfo.o pzgehdrv.o pzlafchk.o $(zmatgen)

strd = pstrddriver.o pstrdinfo.o pssytdrv.o pslafchk.o $(smatgen)
dtrd = pdtrddriver.o pdtrdinfo.o pdsytdrv.o pdlafchk.o $(dmatgen)
ctrd = pctrddriver.o pctrdinfo.o pchetdrv.o pclafchk.o $(cmatgen)
ztrd = pztrddriver.o pztrdinfo.o pzhetdrv.o pzlafchk.o $(zmatgen)


ssvd =  pssvddriver.o pslagge.o pssvdchk.o pssvdcmp.o pssvdtst.o $(smatgen)
dsvd =  pdsvddriver.o pdlagge.o pdsvdchk.o pdsvdcmp.o pdsvdtst.o $(dmatgen)

ssep =  psseptst.o pssepsubtst.o pssepchk.o pssepqtq.o pslagsy.o \
        pslatms.o  pslasizesep.o pslasizesyevx.o pssepdriver.o \
        pssepreq.o pssepinfo.o pslasizesyev.o \
        pssqpsubtst.o pslasizesqp.o $(smatgen)
dsep =  pdseptst.o pdsepsubtst.o pdsepchk.o pdsepqtq.o pdlagsy.o \
        pdlatms.o  pdlasizesep.o pdlasizesyevx.o pdsepdriver.o \
        pdsepreq.o pdsepinfo.o pdlasizesyev.o \
        pdsqpsubtst.o pdlasizesqp.o $(dmatgen)
csep =  pcseptst.o pcsepsubtst.o pcsepchk.o pcsepqtq.o pclagsy.o \
        pclatms.o  pclasizesep.o pclasizeheevx.o pcsepdriver.o \
        pcsepreq.o pssepinfo.o $(cmatgen)
zsep =  pzseptst.o pzsepsubtst.o pzsepchk.o pzsepqtq.o pzlagsy.o \
        pzlatms.o  pzlasizesep.o pzlasizeheevx.o pzsepdriver.o \
        pzsepreq.o pdsepinfo.o $(zmatgen)

sgsep =  psgseptst.o psgsepsubtst.o psgsepchk.o pslagsy.o \
         pslatms.o pslasizesyevx.o pslasizegsep.o pslasizesep.o \
         psgsepdriver.o psgsepreq.o pssepinfo.o $(smatgen)
dgsep =  pdgseptst.o pdgsepsubtst.o pdgsepchk.o pdlagsy.o \
         pdlatms.o pdlasizesyevx.o pdlasizegsep.o pdlasizesep.o \
         pdgsepdriver.o pdgsepreq.o pdsepinfo.o $(dmatgen)
cgsep =  pcgseptst.o pcgsepsubtst.o pcgsepchk.o pclagsy.o \
         pclatms.o pclasizegsep.o pclasizeheevx.o pclasizesep.o \
         pcgsepdriver.o pcgsepreq.o pssepinfo.o $(cmatgen)
zgsep =  pzgseptst.o pzgsepsubtst.o pzgsepchk.o pzlagsy.o \
         pzlatms.o pzlasizegsep.o pzlasizeheevx.o pzlasizesep.o \
         pzgsepdriver.o pzgsepreq.o pdsepinfo.o $(zmatgen)

snep =  psnepdriver.o psnepinfo.o psnepfchk.o $(smatgen)
dnep =  pdnepdriver.o pdnepinfo.o pdnepfchk.o $(dmatgen)

all : single double complex complex16

single:    $(shrdexe) $(strdexe) $(sbrdexe) $(ssepexe) $(sgsepexe) \
           $(snepexe) $(ssvdexe)
double:    $(dhrdexe) $(dtrdexe) $(dbrdexe) $(dsepexe) $(dgsepexe) \
           $(dnepexe) $(dsvdexe)
complex:   $(chrdexe) $(ctrdexe) $(cbrdexe) $(csepexe) $(cgsepexe)
complex16: $(zhrdexe) $(ztrdexe) $(zbrdexe) $(zsepexe) $(zgsepexe)

$(TESTINGdir)/BRD.dat: ../BRD.dat
	cp ../BRD.dat $(TESTINGdir)

$(sbrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(sbrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(sbrdexe) $(sbrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/BRD.dat
$(dbrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(dbrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(dbrdexe) $(dbrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/BRD.dat
$(cbrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(cbrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(cbrdexe) $(cbrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/BRD.dat
$(zbrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(zbrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(zbrdexe) $(zbrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/BRD.dat

$(TESTINGdir)/HRD.dat: ../HRD.dat
	cp ../HRD.dat $(TESTINGdir)

$(shrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(shrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(shrdexe) $(shrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/HRD.dat
$(dhrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(dhrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(dhrdexe) $(dhrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/HRD.dat
$(chrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(chrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(chrdexe) $(chrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/HRD.dat
$(zhrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(zhrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(zhrdexe) $(zhrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/HRD.dat

$(TESTINGdir)/TRD.dat: ../TRD.dat
	cp ../TRD.dat $(TESTINGdir)

$(strdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(strd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(strdexe) $(strd) $(LIBS)
	$(MAKE) $(TESTINGdir)/TRD.dat
$(dtrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(dtrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(dtrdexe) $(dtrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/TRD.dat
$(ctrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(ctrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(ctrdexe) $(ctrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/TRD.dat
$(ztrdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(ztrd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(ztrdexe) $(ztrd) $(LIBS)
	$(MAKE) $(TESTINGdir)/TRD.dat


$(TESTINGdir)/SVD.dat: ../SVD.dat
	cp ../SVD.dat $(TESTINGdir)

$(ssvdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(ssvd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(ssvdexe) $(ssvd) $(RLIBS)
	$(MAKE) $(TESTINGdir)/SVD.dat
$(dsvdexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(dsvd)
	$(F77LOADER) $(F77LOADFLAGS) -o $(dsvdexe) $(dsvd) $(RLIBS)
	$(MAKE) $(TESTINGdir)/SVD.dat

$(TESTINGdir)/SEP.dat: ../SEP.dat
	cp ../SEP.dat $(TESTINGdir)

$(ssepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(ssep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(ssepexe) $(ssep) $(RLIBS)
	$(MAKE) $(TESTINGdir)/SEP.dat
$(dsepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(dsep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(dsepexe) $(dsep) $(RLIBS)
	$(MAKE) $(TESTINGdir)/SEP.dat
$(csepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(csep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(csepexe) $(csep) $(LIBS)
	$(MAKE) $(TESTINGdir)/SEP.dat
$(zsepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(zsep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(zsepexe) $(zsep) $(LIBS)
	$(MAKE) $(TESTINGdir)/SEP.dat

$(sgsepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(sgsep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(sgsepexe) $(sgsep) $(LIBS)
	$(MAKE) $(TESTINGdir)/SEP.dat
$(dgsepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(dgsep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(dgsepexe) $(dgsep) $(LIBS)
	$(MAKE) $(TESTINGdir)/SEP.dat
$(cgsepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(cgsep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(cgsepexe) $(cgsep) $(LIBS)
	$(MAKE) $(TESTINGdir)/SEP.dat
$(zgsepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(zgsep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(zgsepexe) $(zgsep) $(LIBS)
	$(MAKE) $(TESTINGdir)/SEP.dat

$(TESTINGdir)/NEP.dat: ../NEP.dat
	cp ../NEP.dat $(TESTINGdir)

$(snepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(snep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(snepexe) $(snep) $(LIBS)
	$(MAKE) $(TESTINGdir)/NEP.dat
$(dnepexe) : $(SCALAPACKLIB) $(PBLASLIB) $(TOOLSLIB) $(dnep)
	$(F77LOADER) $(F77LOADFLAGS) -o $(dnepexe) $(dnep) $(LIBS)
	$(MAKE) $(TESTINGdir)/NEP.dat

$(sbrd): $(FRC)
$(dbrd): $(FRC)
$(cbrd): $(FRC)
$(zbrd): $(FRC)

$(shrd): $(FRC)
$(dhrd): $(FRC)
$(chrd): $(FRC)
$(zhrd): $(FRC)

$(strd): $(FRC)
$(dtrd): $(FRC)
$(ctrd): $(FRC)
$(ztrd): $(FRC)


$(dsvd): $(FRC)

$(ssep): $(FRC)
$(dsep): $(FRC)
$(csep): $(FRC)
$(zsep): $(FRC)

$(sgsep): $(FRC)
$(dgsep): $(FRC)
$(cgsep): $(FRC)
$(zgsep): $(FRC)

$(snep): $(FRC)
$(dnep): $(FRC)

FRC:
	@FRC=$(FRC)

clean :
	rm -f *.o

.f.o : ; $(F77) -c $(F77FLAGS) $*.f
