SHELL=/bin/sh
MPICC=mpicc
BSPCC=bspcc
CFLAGS	= -O3 
SLOTS=40
BSPbin=bsp
MPIbin=mpi
BSP=b
MPI=m
MPILINK= -O3
#BSPLINK = -O3  -flibrary-level 2   -fcombine-puts  -bspnoslots ${SLOTS} -bspslotsize  40 -bsproundtrip 200 -bspsendlatency 30 
#Former for small n, latter for 1024 or more check also sendlatency 30,200
BSPLINK = -O3 -flibrary-level 2  -bspnoslots 4  -bspslotsize  ${SLOTS} -bsproundtrip 180 -bspsendlatency 25 
all	:	allbsp almpi
allbsp	:	bspmul
allmpi	:	mpimul
bspmul	:	${BSP}mulmain.o  ${BSP}matmul.o ${BSP}gmatmul.o 
	${BSPCC} ${BSPLINK} ${BSP}mulmain.o ${BSP}gmatmul.o ${BSP}matmul.o \
		-o ${BSPbin}mult
	strip ${BSPbin}mult
	ccp ${BSPbin}mult run
mpimul	:	${MPI}mulmain.o  ${MPI}matmul.o ${MPI}gmatmul.o  aimpi.o
	${MPICC} ${MPILINK} ${MPI}mulmain.o ${MPI}gmatmul.o ${MPI}matmul.o \
		aimpi.o -o ${MPIbin}mult
	strip ${MPIbin}mult
	ccp ${MPIbin}mult run
bmulmain.o:	mulmain.c
	${BSPCC} ${CFLAGS} -c mulmain.c -o ${BSP}mulmain.o
mmulmain.o:	mulmain.c
	${MPICC} ${CFLAGS} -c mulmain.c -o ${MPI}mulmain.o
bmatmul.o:	matmul.c
	${BSPCC} ${CFLAGS} -c matmul.c -o ${BSP}matmul.o
mmatmul.o:	matmul.c
	${MPICC} ${CFLAGS} -c matmul.c -o ${MPI}matmul.o
bgmatmul.o:	gmatmul.c
	${BSPCC} ${CFLAGS} -c gmatmul.c -o ${BSP}gmatmul.o
mgmatmul.o:	gmatmul.c
	${MPICC} ${CFLAGS} -c gmatmul.c -o ${MPI}gmatmul.o
aimpi.o:        aimpi.c
	${MPICC} ${CFLAGS} -c aimpi.c -o aimpi.o
clean:
	rm -f *.o bspmult mpimult
tar:
	tar cvf mmnew02a.tar ai.h aimpi.c aimpi.h gmatmul.c Makefile \
		matmul.c  matmul.h  matmul.rdm matmul.exp mulmain.c
