#####################################################################
#                                                                   #
# PARKBENCH Version 2.0                                             #
#                                                                   #
# November 10, 1995                                                 #
#                                                                   #
# University of Tennesee, Knoxville                                 #
# University of Southampton, United Kingdom                         #
#                                                                   #
#####################################################################
make.def =  ../conf/make.def
include $(make.def)

SHELL	=	/bin/sh

default:	all


lLinAlg =	LU_solver.all MATMUL.all QR.all TRANS.all TRD.all
lNPB =		FT.all MG.all  
lall =		$(lLinAlg) $(lNPB)

LU_solver     lu_solver:	LU_solver.all
MATMUL matmul:	MATMUL.all
QR     qr:	QR.all
TRANS  trans:	TRANS.all
TRD    trd:	TRD.all

FT     ft:	FT.all
MG     mg:	MG.all

#lseq = 	$(lall:.all=.seq) 
lpvm = 		$(lLinAlg:.all=.pvm)
lmpi = 		$(lLinAlg:.all=.mpi)
 
lallcl = 	$(lall:.all=.cl)
lallclo = 	$(lLinAlg:.all=.clo)

echo:
	@- echo ': ' 
	@- echo 'lall:        ' $(lall)
	@- echo 'lseq:        ' $(lseq)
	@- echo 'lpvm:        ' $(lpvm)
	@- echo 'lmpi:        ' $(lmpi)
	@- echo 'lNPB:        ' $(lNPB)
	@- echo 'lallcl:      ' $(lallcl)
	@- echo 'lallclo:     ' $(lallclo)
	@- echo ': ' 

## Targets  ##
all:	$(lall) 
seq:	$(lseq)
pvm all.pvm:	$(lpvm)
mpi all.mpi:	$(lmpi) $(lNPB)


###  prepares environment for the actual make. Has to run every time  ###
make.def: ../conf/make.def
	cd $(ParkBench_home); make conf


## Declares how to make single codes  ##
CLASS=U
NPROCS=1
$(lall): 	make.def
	@ echo "building in $(@:.all=)" 
	-  cd $(@:.all=); make NPROCS=$(NPROCS) CLASS=$(CLASS)
	@ echo "done building in $(@:.all=)"

$(lpvm): 	make.def
	@ echo "building in $(@:.pvm=)" 
	-  cd $(@:.pvm=); make pvm 
	@ echo "done building in $(@:.pvm=)"

$(lmpi): 	make.def
	@ echo "building in $(@:.mpi=)" 
	-  cd $(@:.mpi=); make mpi 
	@ echo "done building in $(@:.mpi=)"



clean: $(lallcl)
	- rm -f *~
$(lallcl):
	- cd $(@:.cl=) ; make clean

clobber: $(lallclo)
	- rm -f *~
$(lallclo):
	- cd $(@:.clo=) ; make clobber

