SHELL=/bin/sh
MPICC=mpicc
BSPCC=bspcc
PUBCC=pubcc
BSP=
MPI=
PUB=
BT=mbt
BT=gbt
BT=efd
BT=trt
CFLAGS=-O3
RDXVERSION=vf
MPILINK=mpicc -O3 -lm
PUBLINK=pubcc -O3 -lm
SLOTS=4
SLOTSIZE=40
#NONSMP 2:4/64,4:4/32,8:4/40,16:4/40 and 180/90 HP; 16: 10k/32 optimize]
#   SMP 2,4,8,16:4/64 and 180/90
BSPLINK=bspcc -flibrary-level 2  -bspnoslots ${SLOTS}\
           -bspslotsize  25  -bsproundtrip 180\
           -bspsendlatency 25  -lm
BSPLINK=bspcc   -flibrary-level 2  -bspnoslots ${SLOTS}\
           -bspslotsize ${SLOTSIZE} -bsproundtrip 180\
           -bspsendlatency 90  -lm
all	:	allmpi
all2	:	mpi2
allmpi	:mpii	mpi
allbsp	:bspi	bsp
allpub	:pubi	pub
mpii	:	
	cp ai.mpi ai.h
bspi	:
	cp ai.bsp ai.h
pubi	:
	cp ai.pub ai.h
#
bsp	:	${BSP}aimisc.b ${BT}.b ${BT}main.b
	${BSPLINK} ${BSP}aimisc.b ${BT}.b ${BT}main.b -o b${BT}
	strip b${BT}
	ccp b${BT} run
pub	:	${PUB}aimisc.u ${BT}.b ${BT}main.u
	${PUBLINK} ${PUB}aimisc.u ${BT}.u ${BT}main.u -o p${BT}
	strip p${BT}
	ccp p${BT} run
mpi	:	${MPI}aimisc.o ${BT}.o ${BT}main.o aimpi.o
	${MPILINK} ${MPI}aimisc.o ${BT}.o ${BT}main.o\
		aimpi.o -o m${BT}
	strip m${BT}
	ccp m${BT} run
mpi2	:	all${BT}.o all${BT}.h 
	${MPILINK} all${BT}.o  -o mall${BT}
	strip mall${BT}
	ccp mall${BT} run
#
%.b:	%.c
	${BSPCC} ${CFLAGS} -c $< -o $@
%.o:	%.c
	${MPICC} ${CFLAGS} -c $< -o $@
%.u:	%.c
	${PUBCC} ${CFLAGS} -c $< -o $@
#
clean:
	rm -f *.o *.b  *.u  core bmbt mmbt bgbt mgbt btrt mtrt befd mefd ball* mall* *~ 
tar:
	tar cvf fin03${RDXVERSION}.tar 600fin.rdm ai.bsp ai.h aimisc.c aimisc.h\
		ai.mpi aimpi.c aimpi.h ai.pub \
		allmbt.c allmbt.h allgbt.c allgbt.h\
		alltrt.c alltrt.h allefd.c allefd.h\
		bt.h copy Makefile README \
		edata efd.c efdmain.c efd.rdm \
		gbt.c gbtmain.c gbt.rdm gdata \
		mbt.c mbtmain.c mbt.rdm mdata \
		trt.c trtmain.c trt.rdm tdata \
		Seq/
