SHELL=/bin/sh
MPICC=mpicc
BSPCC=bspcc
PUBCC=pubcc
BSP=
MPI=
PUB=
CFLAGS=-O3 
ASVERSION=03v6
MPILINK=mpicc -O3 
PUBLINK=pubcc -O3
### BSPlib values for slotsize and slots
SLOTS=4
SLOTSIZE=40
#1/25 Low L, 4/25,4/32 smoother g  4/40 highL but low g.
# 4/25 <<<  and  >>>>4/40 (64/16 notgood):::LINK: (2000,180,25)best  nonHP NONSMP
#,4/64***(4procs) 4/64*** (16 procs) and HP	 SMP
#BSPLINK  =bspcc  -flibrary-level 2   -fcombine-puts  -bspnoslots ${SLOTS} \
#                -bspslotsize  ${SLOTSIZE} -bsproundtrip 180 -bspsendlatency 25
#BSPLINK  =bspcc -flibrary-level 2 -bspnoslots ${SLOTS} \
#           -bspslotsize  ${SLOTSIZE} -bsproundtrip 180 -bspsendlatency 25
BSPLINK = bspcc -flibrary-level 2  -fcombine-puts-buffer 2000 \
	-bspnoslots ${SLOTS}  -bspslotsize ${SLOTSIZE}  -bsproundtrip 180 -bspsendlatency 25
BSPLINK = bspcc -flibrary-level 2  -fcombine-puts-buffer 2000 \
	-bspnoslots ${SLOTS}  -bspslotsize ${SLOTSIZE}  -bsproundtrip 200 -bspsendlatency 90
all	:	allmpi
all2	:	mpi2
allbsp	: bspi bsp
allmpi	: mpii mpi
allpub	: pubi pub
bspi	:
	cp ai.bsp ai.h
mpii	:
	cp ai.mpi ai.h
pubi	:
	cp ai.pub ai.h
allmpi	: ${MPI}
bsp:	${BSP}aimisc.b ${BSP}matmul.b ${BSP}gmatmul.b ${BSP}mulmain.b  matmul.h 
	${BSPLINK} ${BSP}aimisc.b ${BSP}matmul.b ${BSP}gmatmul.b ${BSP}mulmain.b  -o bspmult
	strip bspmult
	ccp bspmult run
pub:	${PUB}aimisc.u ${PUB}matmul.u ${PUB}gmatmul.u ${PUB}mulmain.u  matmul.h 
	${PUBLINK} ${PUB}aimisc.u ${PUB}matmul.u ${PUB}gmatmul.u ${PUB}mulmain.u  -o pubmult
	strip pubmult
	ccp pubmult run
mpi:	${MPI}aimisc.o ${MPI}matmul.o ${MPI}bmatmul.o ${MPI}mulmain.o matmul.h aimpi.o aimpi.h
	${MPILINK} ${MPI}aimisc.o ${MPI}matmul.o ${MPI}bmatmul.o aimpi.o ${MPI}mulmain.o  -o mpimult
#mpi:	${MPI}aimisc.o ${MPI}matmul.o  ${MPI}mulmain.o matmul.h aimpi.o aimpi.h
#	${MPILINK} ${MPI}aimisc.o ${MPI}matmul.o aimpi.o ${MPI}mulmain.o  -o mpimult
	strip mpimult
	ccp mpimult run
mpi2:	allmult.o allmult.h
	${MPILINK} allmult.o -o allmult
	strip allmult
	ccp allmult run
#
%.u:	%.c
	${PUBCC} ${CFLAGS} -c $< -o $@
%.b:	%.c
	${BSPCC} ${CFLAGS} -c $< -o $@
%.o:	%.c
	${MPICC} ${CFLAGS} -c $< -o $@
#
clean:
	rm -f *.o *.b *.u mpimult bspmult core *~ allmult pubmult
tar:
	tar cvf mult${ASVERSION}.tar ai.bsp ai.h aimisc.c aimisc.h\
		ai.mpi aimpi.c aimpi.h ai.pub allmult.c allmult.h bmatmul.c gmatmul.c \
		Makefile Makefile.old matmul.c\
		matmul.exp matmul.h matmul.rdm mulmain.c\
		multres  readme.mul Seq/benseq03.tar 
mytar:
	tar cvf mmlt${ASVERSION}.tar ai.bsp ai.h aimisc.c aimisc.h\
		ai.mpi aimpi.c aimpi.h ai.pub allmult.c allmult.h bmatmul.c gmatmul.c \
		Makefile Makefile.old matmul.c matmul.cmp\
		matmul.exp matmul.h matmul.rdm mulmain.c\
		multres  readme.mul Seq/benseq03.tar 
