CIVL=civl
VERIFY=${CIVL} verify -enablePrintf=false
REPLAY=${CIVL} replay
CLOC=cloc --csv --quiet

all: mp_dot mp_infnorm mp_mat_vec mp_pie anl_hybrid

mp_dot: mpithreads_both.c
	@lessecho "NAME: mpithreads{\U}both.c"
	@lessecho "CITE: \\cite{LLNL:Pthreads:URL}"	
	@lessecho "TYPE: $$\\text{MP}$$"
	@lessecho "SCALE: {\\texttt{NP=2, NT=2, VLEN=5}}"
	@$(CLOC) mpithreads_both.c
	${VERIFY} -input_mpi_nprocs=2 mpithreads_both.c

mp_infnorm: mpi-Pthreads-infinity-norm.c
	@lessecho "NAME: MP-infinity-norm.c"
	@lessecho "CITE: \\cite{cdac-mpi-pthreads}"	
	@lessecho "TYPE: $$\\text{MP}$$"
	@lessecho "SCALE: {\\texttt{NP=NT=2, 1$$\\leq$$""NROWS, NCOLS$$\\leq$$""3}}"
	@$(CLOC) mpi-Pthreads-infinity-norm.c
	${VERIFY} -input_mpi_nprocs=2 -inputNUM_ROWS_BOUND=2 -inputNUM_COLS_BOUND=2 mpi-Pthreads-infinity-norm.c

mp_mat_vec: mpi-Pthreads-matrix-vector.c
	@lessecho "NAME: MP-matrix-vector.c"
	@lessecho "CITE: \\cite{cdac-mpi-pthreads}"	
	@lessecho "TYPE: $$\\text{MP}$$"
	@lessecho "SCALE: {\\texttt{NP=3, 1$$\\leq$$""NT=NROWS=NCOLS$$\\leq$$""4}}"
	@$(CLOC) mpi-Pthreads-matrix-vector.c
	${VERIFY} -input_mpi_nprocs=3 -inputNUM_ROWS_BOUND=4 -inputNUM_COLS_BOUND=4 mpi-Pthreads-matrix-vector.c

mp_mat_vec_fix: mpi-Pthreads-matrix-vector_fix.c
	@lessecho "NAME:  MP-matrix-vector{\U}fix.c"
	@lessecho "CITE: \\cite{cdac-mpi-pthreads}"	
	@lessecho "TYPE: $$\\text{MP}$$"
	@lessecho "SCALE: {\\texttt{NP=3, 1$$\\leq$$""NT=NROWS=NCOLS$$\\leq$$""4}}"
	@$(CLOC) mpi-Pthreads-matrix-vector_fix.c
	${VERIFY} -input_mpi_nprocs=3 -inputNUM_ROWS_BOUND=4 -inputNUM_COLS_BOUND=4 mpi-Pthreads-matrix-vector_fix.c

mp_pie: mpi-Pthreads-pie-collective.c
	@lessecho "NAME: MP-pie-collective.c"
	@lessecho "CITE: \\cite{cdac-mpi-pthreads}"	
	@lessecho "TYPE: $$\\text{MP}$$"
	@lessecho "SCALE: {\\texttt{NP=3, 1$$\\leq$$""NITR$$\\leq$$""5, NT=NITR/NP}}"
	@$(CLOC) mpi-Pthreads-pie-collective.c
	${VERIFY} -input_mpi_nprocs=3 -inputNUM_INTERVAL_BOUND=5 mpi-Pthreads-pie-collective.c

anl_hybrid: anl_hybrid.c
	@lessecho "NAME: anl{\U}hybrid.c"
	@lessecho "CITE: \\cite{balaji-etal:2013:sctut}"	
	@lessecho "TYPE: $$\\text{MP}$$"
	@lessecho "SCALE: {\\texttt{NP=NT=2}}"
	@$(CLOC) anl_hybrid.c
	${VERIFY} -input_mpi_nprocs=2 -min anl_hybrid.c
	${REPLAY} -showTransitions=false anl_hybrid.c

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