#####################################################################
#                                                                   #
# PARKBENCH Version 2.0                                             #
#                                                                   #
# November 10, 1995                                                 #
#                                                                   #
# University of Tennesee, Knoxville                                 #
# University of Southampton, United Kingdom                         #
#                                                                   #
#####################################################################

# Shell used to interpret @ commands
SHELL 	= /bin/sh

help:
	@ echo '  The following targets are available:'
	@ echo ' '
	@ echo '  make all | Low_Level | Low_Level.all'
	@ echo '  make seq | Low_Level.seq'
	@ echo '  make mpi | Low_Level.mpi'
	@ echo '  make pvm | Low_Level.pvm'
	@ echo ' '
	@ echo '  make clean'
	@ echo '  make clobber'
	@ echo ' '
	@ echo '  -- configure options --'
	@ echo ' '
	@ echo '  make orig2k'
	@ echo '  make pca'
	@ echo '  make sp2'
	@ echo '  make t3d'
	@ echo '  make t3e'
	@ echo '  make sgi-lam'
	@ echo '  make sol2'

all Low_Level Low_Level.all: null	 
	@ echo "   building in Low_Level all"
	cd Low_Level; $(MAKE)
	@ echo "   done building in Low_Level all"

seq Low_Level.seq:
	@ echo "   building in Low_Level sequential"
	cd Low_Level; $(MAKE) seq
	@ echo "   done building in Low_Level sequential"

pvm Low_Level.pvm:	 
	@ echo "   building in Low_Level PVM"
	cd Low_Level; $(MAKE) pvm
	@ echo "   done building in Low_Level PVM"

mpi Low_Level.mpi:	 
	@ echo "   building in Low_Level MPI"
	cd Low_Level; $(MAKE) mpi
	@ echo "   done building in Low_Level MPI"

null: make.def

unconf:
	rm -f make.def dattyp.inc runem

sp2:	unconf
	ln -s conf/make.def.SP2MPI ./make.def
	ln -s Low_Level/include/dattyp.inc.SP2MPI ./dattyp.inc
	ln -s scripts/sp2-runem-all ./runem

t3d:	unconf
	ln -s conf/make.def.T3D ./make.def 
	ln -s Low_Level/include/dattyp.inc.T3D ./dattyp.inc
	ln -s scripts/t3d-runem-all ./runem

pca:	unconf
	ln -s Low_Level/include/dattyp.inc.PCA ./dattyp.inc
	ln -s conf/make.def.PCA ./make.def
	ln -s scripts/pca-runem-all ./runem

orig2k:	unconf
	ln -s Low_Level/include/dattyp.inc.ORIG2K ./dattyp.inc
	ln -s conf/make.def.ORIG2K ./make.def
	ln -s scripts/orig2k-runem-all ./runem

sgi-lam: unconf
	ln -s Low_Level/include/dattyp.inc.SGILAM ./dattyp.inc
	ln -s conf/make.def.SGILAM ./make.def
	ln -s scripts/sgilam-runem-all ./runem

t3e:	unconf
	ln -s Low_Level/include/dattyp.inc.T3E ./dattyp.inc
	ln -s conf/make.def.T3E ./make.def
	ln -s scripts/t3e-runem-all ./runem
#	module load modules PrgEnv mpt

sol2:	unconf
	ln -s Low_Level/include/dattyp.inc.SOL2 ./dattyp.inc
	ln -s conf/make.def.SOL2 ./make.def
	ln -s scripts/sol2-runem-all ./runem

make.def:
	@ echo "Please first perform one of the following:"
	@ echo "make orig2k"
	@ echo "make pca"
	@ echo "make t3d"
	@ echo "make t3e"
	@ echo "make sp2"
	@ echo "make sgi-lam"
	@ echo "make sol2"
	@ echo " "
	@ echo "Then edit ./make.def and change the XDIR definition."
	@ exit 1

run:
	./runem

clean: 
	- cd Low_Level; $(MAKE) clean
	- rm -f conf/*~ scripts/*~ *~

clobber:
	- cd Low_Level; $(MAKE) clobber
	- $(MAKE) unconf

dist:	clobber
	rm -f PBLL.tar.Z; cd ..; tar cvf PBLL.tar PBLL; compress PBLL.tar
	mv ../PBLL.tar.Z .
	-cp PBLL.tar.Z /ruby/homes/ftp/pub/mucci
