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

all: diff1d diff2d prime pi sum_array wave1d wave1dBad gaussElim matmat

bug1: mpi_bug1.c
	@lessecho "NAME: mpi{\U}bug1"
	@lessecho "CITE: \\cite{LLNL:MPI:URL}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\text{NP=2}}"
	@$(CLOC) mpi_bug1.c
	${VERIFY} mpi_bug1.c

diff1d: diffusion1d.c
	@lessecho "NAME: diffusion1d.c"
	@lessecho "CITE: \\cite{fevs:2015:web}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{1$$\\leq$$""NX,NSTEPS$$\\leq$$""5,1$$\\leq$$""NP$$\\leq$$""3}}"
	@$(CLOC) diffusion1d.c
	${VERIFY} diffusion1d.c

diff2d: diffusion2d.c
	@lessecho "NAME: diffusion2d.c"
	@lessecho "CITE: \\cite{fevs:2015:web}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{1$$\\leq$$""NX,NY,NSTEPS$$\\leq$$""5,NPX=NPY=2}}"
	@$(CLOC) diffusion2d.c
	${VERIFY} diffusion2d.c

wave1d: wave1d.c
	@lessecho "NAME: wave1d.c"
	@lessecho "CITE: \\cite{fevs:2015:web}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{1$$\\leq$$""NX,NSTEPS$$\\leq$$""5,1$$\\leq$$""NP $$\\leq$$""3}}"
	@$(CLOC) wave1d.c
	${VERIFY} wave1d.c

wave1dBad: wave1dBad.c
	@lessecho "NAME: wave1dBad.c"
	@lessecho "CITE: \\cite{fevs:2015:web}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{1$$\\leq$$""NX,NSTEPS$$\\leq$$""5,1$$\\leq$$""NP$$\\leq$$""3}}"
	@$(CLOC) wave1dBad.c
	${VERIFY} wave1dBad.c

prime: mpi_prime.c
	@lessecho "NAME: mpi{\U}prime.c"
	@lessecho "CITE: \\cite{LLNL:MPI:URL}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{\\{PRIMES\\}$$\\subseteq$$""[10, 15],1$$\\leq$$""NP$$\\leq$$""4}}"
	@$(CLOC) mpi_prime.c
	${VERIFY} mpi_prime.c

pi: mpi_pi_send.c
	@lessecho "NAME: mpi{\U}pi{\U}send.c"
	@lessecho "CITE: \\cite{LLNL:MPI:URL}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{1$$\\leq$$""DARTS,ROUNDS,NP$$\\leq$$""2}}"
	@$(CLOC) mpi_pi_send.c
	${VERIFY} mpi_pi_send.c

sum_array: sum_array.c
	@lessecho "NAME: sum{\U}array.c"
	@lessecho "CITE: \\cite{fevs:2015:web}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{1$$\\leq$$""NX$$\\leq$$""20,1$$\\leq$$""NP$$\\leq$$""5}}"
	@$(CLOC) sum_array.c
	${VERIFY} sum_array.c

gaussElim: gausselim.c
	@lessecho "NAME: gausselim.c"
	@lessecho "CITE: \\cite{fevs:2015:web}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{1$$\\leq$$""NROW$$\\leq$$""4,1$$\\leq$$""NCOL$$\\leq$$""2,1$$\\leq$$""NP$$\\leq$$""3}}"
	@$(CLOC) gausselim.c
	${VERIFY} gausselim.c

matmat: matmat_mw/matmat_mw.c
	@lessecho "NAME: matmat{\U}mw.c"
	@lessecho "CITE: \\cite{fevs:2015:web}"	
	@lessecho "TYPE: $$\\text{M}$$"
	@lessecho "SCALE: {\\texttt{1$$\\leq$$""M,N,L$$\\leq$$""3,1$$\\leq$$""NP$$\\leq$$""4}}"
	@$(CLOC) matmat_mw/matmat_mw.c
	${VERIFY} matmat_mw/matmat_mw.c

#run with different paramters
diff1d2: diffusion1d.c
	$(VERIFY) -inputNXB=10 -inputNSTEPS_BOUND=3 diffusion1d.c

diff2d2: diffusion2d.c
	$(VERIFY) -inputNXB=4 -inputNYB=4 -inputNSTEPSB=3 -inputNPROCSY=3 -inputNPROCSX=2 diffusion2d.c


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