#**********************************************************************
#
#     Copyright (C) 1991-1992  Roland W. Freund and Noel M. Nachtigal
#     All rights reserved.
#
#**********************************************************************
#
#  Makefile for the compressed sparse row subdirectory.
#

#
#  Files in this directory:
#
EXE = \
cslal dslal sslal zslal \
cssys zssys \
culal dulal sulal zulal \
cusys dusys susys zusys \
cascraw dascraw sascraw zascraw ccoocsr dcoocsr scoocsr zcoocsr \
crawasc drawasc srawasc zrawasc ctransp dtransp stransp ztransp
LIB = libsplib.a
OBJ = \
csillt.o zsillt.o \
csplib.o dsplib.o ssplib.o zsplib.o \
csssor.o zsssor.o \
cuilut.o duilut.o suilut.o zuilut.o \
cussor.o dussor.o sussor.o zussor.o
SRC = \
cmagic.inc dmagic.inc smagic.inc csplib.src dsplib.src ssplib.src \
csplib.f dsplib.f ssplib.f zsplib.f \
csillt.src csillt.f zsillt.f \
csssor.src csssor.f zsssor.f \
cuilut.src duilut.src suilut.src cuilut.f duilut.f suilut.f zuilut.f \
cussor.src dussor.src sussor.src cussor.f dussor.f sussor.f zussor.f \
cslal.f dslal.f sslal.f zslal.f \
cssys.f zssys.f \
culal.f dulal.f sulal.f zulal.f \
cusys.f dusys.f susys.f zusys.f \
cascraw.src dascraw.src sascraw.src \
cascraw.f dascraw.f sascraw.f zascraw.f ccoocsr.f dcoocsr.f scoocsr.f \
crawasc.src drawasc.src srawasc.src \
crawasc.f drawasc.f srawasc.f zrawasc.f ctransp.f dtransp.f stransp.f
ALGS = ../algs/libalgs.a
BLAS = ../libs/blas/libblas.a
DEIS = ../libs/deis/libdeis.a
LAPK = ../libs/lapk/liblapk.a
LINP = ../libs/linp/liblinp.a
MISC = ../libs/misc/libmisc.a
SEIS = ../libs/seis/libseis.a
LIBS = libsplib.a $(ALGS) $(LAPK) $(MISC) $(LINP) $(BLAS)

#
#  Makefile include files.
#
include ../header.mak
include ../incl/local.mak

#
#  Local help file.
#
help::
	@echo "   make exe     - make all executables"
	@echo "   make noexe   - remove all executables"
	@echo "   make lib     - make all libraries"
	@echo "   make nolib   - remove all libraries"
	@echo "   make clean   - make noexe nolib noobj nosrc"
	@echo " "
	@echo "   make Pslal   - LAL driver, symmetric (P = c,d,s,z)"
	@echo "   make Pssys   - common driver, symmetric (P = c,z)"
	@echo "   make Pulal   - LAL driver (P = c,d,s,z)"
	@echo "   make Pusys   - common driver, unsymmetric (P = c,d,s,z)"
	@echo "   make Pascraw - ASCII-to-binary converter (P = c,d,s,z)"
	@echo "   make Pcoocsr - COO-to-CSR converter (P = c,d,s,z)"
	@echo "   make Prawasc - binary-to-ASCII converter (P = c,d,s,z)"
	@echo "   make Ptransp - CSR-to-CSC converter (P = c,d,s,z)"

#
#  Dependencies for files in this directory.
#
cmagic.inc:	z2c.sed zmagic.inc
	@echo Making $@
	@sed -f z2c.sed zmagic.inc > $@
dmagic.inc:	z2d.sed zmagic.inc
	@echo Making $@
	@sed -f z2d.sed zmagic.inc > $@
smagic.inc:	d2s.sed dmagic.inc
	@echo Making $@
	@sed -f d2s.sed dmagic.inc > $@
csillt.src:	z2c.sed zsillt.src
	@echo Making $@
	@sed -f z2c.sed zsillt.src > $@
csillt.f:	csr.inc csillt.src
zsillt.f:	csr.inc zsillt.src
csplib.src:	z2c.sed zsplib.src
	@echo Making $@
	@sed -f z2c.sed zsplib.src > $@
dsplib.src:	z2d.sed zsplib.src
	@echo Making $@
	@sed -f z2d.sed zsplib.src > $@
ssplib.src:	d2s.sed dsplib.src
	@echo Making $@
	@sed -f d2s.sed dsplib.src > $@
csplib.f:	cmagic.inc csplib.src
dsplib.f:	dmagic.inc dsplib.src
ssplib.f:	smagic.inc ssplib.src
zsplib.f:	zmagic.inc zsplib.src
csssor.src:	z2c.sed zsssor.src
	@echo Making $@
	@sed -f z2c.sed zsssor.src > $@
csssor.f:	csr.inc csssor.src
zsssor.f:	csr.inc zsssor.src
cuilut.src:	z2c.sed zuilut.src
	@echo Making $@
	@sed -f z2c.sed zuilut.src > $@
cuilut.f:	csr.inc cuilut.src
duilut.src:	z2d.sed zuilut.src
	@echo Making $@
	@sed -f z2d.sed zuilut.src > $@
duilut.f:	csr.inc duilut.src
suilut.src:	d2s.sed duilut.src
	@echo Making $@
	@sed -f d2s.sed duilut.src > $@
suilut.f:	csr.inc suilut.src
zuilut.f:	csr.inc zuilut.src
cussor.src:	z2c.sed zussor.src
	@echo Making $@
	@sed -f z2c.sed zussor.src > $@
cussor.f:	csr.inc cussor.src
dussor.src:	z2d.sed zussor.src
	@echo Making $@
	@sed -f z2d.sed zussor.src > $@
dussor.f:	csr.inc dussor.src
sussor.src:	d2s.sed dussor.src
	@echo Making $@
	@sed -f d2s.sed dussor.src > $@
sussor.f:	csr.inc sussor.src
zussor.f:	csr.inc zussor.src

#
#  The look-ahead Lanczos for eigenvalues drivers.
#
cslal.f:	z2c.sed zslal.f
	@echo Making $@
	@sed -f z2c.sed zslal.f > $@
dslal.f:	z2d.sed zslal.f
	@echo Making $@
	@sed -f z2d.sed zslal.f > $@
sslal.f:	d2s.sed dslal.f
	@echo Making $@
	@sed -f d2s.sed dslal.f > $@
zslal.f:	zslal.src csr.inc zusrc.inc
cslal:		cslal.o libs
	@$(FC) -o cslal $(FFLAGS) cslal.o $(LIBS) $(SEIS)
dslal:		dslal.o libs
	@$(FC) -o dslal $(FFLAGS) dslal.o $(LIBS) $(DEIS)
sslal:		sslal.o libs
	@$(FC) -o sslal $(FFLAGS) sslal.o $(LIBS) $(SEIS)
zslal:		zslal.o libs
	@$(FC) -o zslal $(FFLAGS) zslal.o $(LIBS) $(DEIS)
culal.f:	z2c.sed zulal.f
	@echo Making $@
	@sed -f z2c.sed zulal.f > $@
dulal.f:	z2d.sed zulal.f
	@echo Making $@
	@sed -f z2d.sed zulal.f > $@
sulal.f:	d2s.sed dulal.f
	@echo Making $@
	@sed -f d2s.sed dulal.f > $@
zulal.f:	zulal.src csr.inc zusrc.inc
culal:		culal.o libs
	@$(FC) -o culal $(FFLAGS) culal.o $(LIBS) $(SEIS)
dulal:		dulal.o libs
	@$(FC) -o dulal $(FFLAGS) dulal.o $(LIBS) $(DEIS)
sulal:		sulal.o libs
	@$(FC) -o sulal $(FFLAGS) sulal.o $(LIBS) $(SEIS)
zulal:		zulal.o libs
	@$(FC) -o zulal $(FFLAGS) zulal.o $(LIBS) $(DEIS)

#
#  The common drivers.
#
cssys.f:	z2c.sed zssys.f
	@echo Making $@
	@sed -f z2c.sed zssys.f > $@
zssys.f:	zssys.src
cssys:		cssys.o libs
	@$(FC) -o cssys $(FFLAGS) cssys.o $(LIBS)
zssys:		zssys.o libs
	@$(FC) -o zssys $(FFLAGS) zssys.o $(LIBS)
cusys.f:	z2c.sed zusys.f
	@echo Making $@
	@sed -f z2c.sed zusys.f > $@
dusys.f:	z2d.sed zusys.f
	@echo Making $@
	@sed -f z2d.sed zusys.f > $@
susys.f:	d2s.sed dusys.f
	@echo Making $@
	@sed -f d2s.sed dusys.f > $@
zusys.f:	zusys.src
cusys:		cusys.o libs
	@$(FC) -o cusys $(FFLAGS) cusys.o $(LIBS)
dusys:		dusys.o libs
	@$(FC) -o dusys $(FFLAGS) dusys.o $(LIBS)
susys:		susys.o libs
	@$(FC) -o susys $(FFLAGS) susys.o $(LIBS)
zusys:		zusys.o libs
	@$(FC) -o zusys $(FFLAGS) zusys.o $(LIBS)

#
#  The ASCII-to-binary converters.
#
cascraw.src:	z2c.sed zascraw.src
	@echo Making $@
	@sed -f z2c.sed zascraw.src > $@
dascraw.src:	z2d.sed zascraw.src
	@echo Making $@
	@sed -f z2d.sed zascraw.src > $@
sascraw.src:	d2s.sed dascraw.src
	@echo Making $@
	@sed -f d2s.sed dascraw.src > $@
cascraw.f:	cascraw.src cmagic.inc
dascraw.f:	dascraw.src dmagic.inc
sascraw.f:	sascraw.src smagic.inc
zascraw.f:	zascraw.src zmagic.inc
cascraw:	cascraw.f
	@$(FC) -o cascraw $(FFLAGS) cascraw.f
dascraw:	dascraw.f
	@$(FC) -o dascraw $(FFLAGS) dascraw.f
sascraw:	sascraw.f
	@$(FC) -o sascraw $(FFLAGS) sascraw.f
zascraw:	zascraw.f
	@$(FC) -o zascraw $(FFLAGS) zascraw.f

#
#  The binary-to-ASCII converters.
#
crawasc.src:	z2c.sed zrawasc.src
	@echo Making $@
	@sed -f z2c.sed zrawasc.src > $@
drawasc.src:	z2d.sed zrawasc.src
	@echo Making $@
	@sed -f z2d.sed zrawasc.src > $@
srawasc.src:	d2s.sed drawasc.src
	@echo Making $@
	@sed -f d2s.sed drawasc.src > $@
crawasc.f:	cmagic.inc crawasc.src
drawasc.f:	dmagic.inc drawasc.src
srawasc.f:	smagic.inc srawasc.src
crawasc:	crawasc.f
	@$(FC) -o crawasc $(FFLAGS) crawasc.f
drawasc:	drawasc.f
	@$(FC) -o drawasc $(FFLAGS) drawasc.f
srawasc:	srawasc.f
	@$(FC) -o srawasc $(FFLAGS) srawasc.f
zrawasc:	zrawasc.f
	@$(FC) -o zrawasc $(FFLAGS) zrawasc.f

#
#  The COO-to-CSR converters.
#
ccoocsr.f:	z2c.sed zcoocsr.f
	@echo Making $@
	@sed -f z2c.sed zcoocsr.f > $@
dcoocsr.f:	z2d.sed zcoocsr.f
	@echo Making $@
	@sed -f z2d.sed zcoocsr.f > $@
scoocsr.f:	d2s.sed dcoocsr.f
	@echo Making $@
	@sed -f d2s.sed dcoocsr.f > $@
ccoocsr:	ccoocsr.f csplib.o
	@$(FC) -o ccoocsr $(FFLAGS) $(LDFLAGS) ccoocsr.f csplib.o
dcoocsr:	dcoocsr.f dsplib.o
	@$(FC) -o dcoocsr $(FFLAGS) $(LDFLAGS) dcoocsr.f dsplib.o
scoocsr:	scoocsr.f ssplib.o
	@$(FC) -o scoocsr $(FFLAGS) $(LDFLAGS) scoocsr.f ssplib.o
zcoocsr:	zcoocsr.f zsplib.o
	@$(FC) -o zcoocsr $(FFLAGS) $(LDFLAGS) zcoocsr.f zsplib.o

#
#  The CSR-to-CSC and CSC-to-CSR converter.
#
ctransp.f:	z2c.sed ztransp.f
	@echo Making $@
	@sed -f z2c.sed ztransp.f > $@
dtransp.f:	z2d.sed ztransp.f
	@echo Making $@
	@sed -f z2d.sed ztransp.f > $@
stransp.f:	d2s.sed dtransp.f
	@echo Making $@
	@sed -f d2s.sed dtransp.f > $@
ctransp:	ctransp.f csplib.o
	@$(FC) -o ctransp $(FFLAGS) $(LDFLAGS) ctransp.f csplib.o
dtransp:	dtransp.f dsplib.o
	@$(FC) -o dtransp $(FFLAGS) $(LDFLAGS) dtransp.f dsplib.o
stransp:	stransp.f ssplib.o
	@$(FC) -o stransp $(FFLAGS) $(LDFLAGS) stransp.f ssplib.o
ztransp:	ztransp.f zsplib.o
	@$(FC) -o ztransp $(FFLAGS) $(LDFLAGS) ztransp.f zsplib.o

#
#  Library targets.
#
$(LIB):	$(OBJ)
	@echo Making $@
	@$(AR) $(ARFLAGS) $@ $(OBJ)
	@$(RANLIB) $@
libs:
	@(cd ../algs; $(MAKE) $(MFLAGS) lib; cd ../csr)
	@(cd ../libs; $(MAKE) $(MFLAGS) lib; cd ../csr)
	@$(MAKE) $(MFLAGS) lib
