SHELL=/bin/sh
MPICC=mpicc
BSPCC=bspcc
BSP=
MPI=
CFLAGS=-O3 
ASVERSION=03v1
MPILINK=mpicc -O3 
### BSPlib values for slotsize and slots
#4 procs first then 16 procs
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 for curiosity no improvement
BSPLINK  =bspcc  -flibrary-level 2   -fcombine-puts  -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 -bspnoslots ${SLOTS} \
           -bspslotsize  ${SLOTSIZE} -bsproundtrip 180 -bspsendlatency 25
all	:	allmpi
all2	:	mpi2
allbsp	: bspi bsp
allmpi	: mpii mpi
bspi	:
	cp ai.bsp ai.h
mpii	:
	cp ai.mpi 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
mpi:	${MPI}aimisc.o ${MPI}matmul.o ${MPI}gmatmul.o ${MPI}mulmain.o matmul.h aimpi.o aimpi.h
	${MPILINK} ${MPI}aimisc.o ${MPI}matmul.o ${MPI}gmatmul.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
#
%.b:	%.c
	${BSPCC} ${CFLAGS} -c $< -o $@
%.o:	%.c
	${MPICC} ${CFLAGS} -c $< -o $@
#
clean:
	rm -f *.o *.b mpimult bspmult core *~
tar:
	tar cvf mult${ASVERSION}.tar ai.bsp ai.h aimisc.c aimisc.h\
		ai.mpi aimpi.c aimpi.h gmatmul.c Makefile Makefile.old matmul.c\
		matmul.exp matmul.h matmul.rdm mulmain.c\
		readme.mul allmult.h allmult.c Seq/benseq03.tar
mytar:
	tar cvf mmlt${ASVERSION}.tar ai.bsp ai.h aimisc.c aimisc.h\
		ai.mpi aimpi.c aimpi.h gmatmul.c Makefile Makefile.old matmul.c\
		matmul.exp matmul.h matmul.rdm mulmain.c\
		readme.mul allmult.h allmult.c matmul.1 matmul.2 matmul.3 Seq/benseq03.tar
