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: mp_dot.c
	@lessecho "NAME: mp{\U}dot.c"
	@lessecho "CITE: \\cite{cdac-mpi-pthreads}"	
	@lessecho "TYPE: $$\\text{MP}$$"
	@lessecho "SCALE: {\\texttt{NP=2, NT=2, VLEN=5}}"
	@$(CLOC) mp_dot.c
	${VERIFY} -input_NPROCS=2 mp_dot.c

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

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

mp_mat_vec_fix: mp_mat_vec_fix.c
	@lessecho "NAME:  mp{\U}mat{\U}vec{\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) mp_mat_vec_fix.c
	${VERIFY} -input_NPROCS=3 -inputNUM_ROWS_BOUND=4 -inputNUM_COLS_BOUND=4 mp_mat_vec_fix.c

mp_pie: mp_pie.c
	@lessecho "NAME: mp{\U}pie.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) mp_pie.c
	${VERIFY} -input_NPROCS=3 -inputNUM_INTERVAL_BOUND=5 mp_pie.c

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

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