CIVL=civl
VERIFY=${CIVL} verify -enablePrintf=false
COMPARE=${CIVL} compare -enablePrintf=false

CLOC=cloc --csv --quiet

SERIAL=mpithreads_serial.c
MPI=mpithreads_mpi.c
PTHREAD=mpithreads_threads.c
HYBRID=mpithreads_both.c

all: mpiSerDot pthreadSerDot mpiThreadsDot hybridSerDot mpiHybridDot pthreadsHybridDot

mpiSerDot: ${SERIAL} ${MPI}
	${COMPARE} -inputVSIZE=8 -spec ${SERIAL} -impl -input_mpi_nprocs=2 ${MPI}

pthreadSerDot: ${SERIAL} ${PTHREAD}
	${COMPARE} -inputVSIZE=8 -spec ${SERIAL} -impl -inputNPROCS=2 ${PTHREAD}

mpiThreadsDot: ${PTHREAD} ${MPI}
	${COMPARE} -inputVSIZE=8 -spec -input_mpi_nprocs=2 mpithreads_threads.c -impl -inputNPROCS=2 mpithreads_mpi.c

hybridSerDot: ${SERIAL} ${HYBRID}
	${COMPARE} -inputVSIZE=8 -spec ${SERIAL} -impl -inputNPROCS=4 -input_mpi_nprocs=2 ${HYBRID}

mpiHybridDot: ${MPI} ${HYBRID}
	${COMPARE} -inputVSIZE=8 -inputNPROCS=4 -spec ${MPI} -impl -input_mpi_nprocs=2 ${HYBRID}

pthreadsHybridDot: ${PTHREAD} ${HYBRID}
	${COMPARE} -inputVSIZE=8 -inputNPROCS=4 -spec ${PTHREAD} -impl -input_mpi_nprocs=2 ${HYBRID}

clean:
	rm -r -f CIVLREP
	rm -f *~
