CIVL=civl verify
CIVL_OPTION = -enablePrintf=false
ISPCC=ispcc -std=c99
ISP=time -p isp
MS     = ms -block -chansize=2 -notest -noprobe -nocancel -noanysource  
MSCC   = mscc -DSAFETY -DCOLLAPSE -DVECTORSZ=100000 -DNOBOUNDCHECK -w

all: ms_2 ms_3 ms_4 ms_5 ms_6 ms_7 ms_8 ms_9 ms_10
#isp_2 isp_3 isp_4 isp_5 isp_6 isp_7 isp_8 isp_9 isp_10 #civl_2 civl_3 civl_4 civl_5 civl_6 civl_7 civl_8 civl_9 civl_10

civl_2: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=2 $(CIVL_OPTION) parallel-dot.c > outputs/CIVL_2

civl_3: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=3 $(CIVL_OPTION) parallel-dot.c > outputs/CIVL_3

civl_4: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=4 $(CIVL_OPTION) parallel-dot.c  > outputs/CIVL_4

civl_5: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=5 $(CIVL_OPTION) parallel-dot.c > outputs/CIVL_5

civl_6: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=6 $(CIVL_OPTION) parallel-dot.c > outputs/CIVL_6

civl_7: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=7 $(CIVL_OPTION) parallel-dot.c > outputs/CIVL_7

civl_8: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=8 $(CIVL_OPTION) parallel-dot.c > outputs/CIVL_8

civl_9: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=9 $(CIVL_OPTION) parallel-dot.c > outputs/CIVL_9

civl_10: parallel-dot.c
	$(CIVL) -input_mpi_nprocs=10 $(CIVL_OPTION) parallel-dot.c > outputs/CIVL_10

############### ISP ###############
isp_parallel-dot: parallel-dot.c
	$(ISPCC) $< -o isp_parallel-dot

isp_2: isp_parallel-dot
	{ $(ISP) -p 8888 -n 2 ./$< ;} 2> outputs/ISP_2

isp_3: isp_parallel-dot
	{ $(ISP) -p 8888 -n 3 ./$< ;} 2> outputs/ISP_3

isp_4: isp_parallel-dot
	{ $(ISP) -p 8888 -n 4 ./$< ;} 2> outputs/ISP_4

isp_5: isp_parallel-dot
	{ $(ISP) -p 8888 -n 5 ./$< ;} 2> outputs/ISP_5

isp_6: isp_parallel-dot
	{ $(ISP) -p 8888 -n 6 ./$< ;} 2> outputs/ISP_6

isp_7: isp_parallel-dot
	{ $(ISP) -p 8888 -n 7 ./$< ;} 2> outputs/ISP_7

isp_8: isp_parallel-dot
	{ $(ISP) -p 8888 -n 8 ./$< ;} 2> outputs/ISP_8

isp_9: isp_parallel-dot
	{ $(ISP) -p 8888 -n 9 ./$< ;} 2> outputs/ISP_9

isp_10: isp_parallel-dot
	{ $(ISP) -p 8888 -n 10 ./$< ;} 2> outputs/ISP_10

############## MS ################
ms_2: parallel-dot.pml
	make clean
	$(MS)  -np=2  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_2

ms_3: parallel-dot.pml
	make clean
	$(MS)  -np=3  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_3

ms_4: parallel-dot.pml
	make clean
	$(MS)  -np=4  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_4

ms_5: parallel-dot.pml
	make clean
	$(MS)  -np=5  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_5

ms_6: parallel-dot.pml
	make clean
	$(MS)  -np=6  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_6

ms_7: parallel-dot.pml
	make clean
	$(MS)  -np=7  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_7

ms_8: parallel-dot.pml
	make clean
	$(MS)  -np=8  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_8

ms_9: parallel-dot.pml
	make clean
	$(MS)  -np=9  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_9


ms_10: parallel-dot.pml
	make clean
	$(MS)  -np=10  $<
	$(MSCC)
	{ time -p ./pan -n ;} 2> outputs/MS_10



clean:
	rm -rf CIVLREP
	rm -f a.out *~
	rm -f pan* *.trail *.out mpi-spin-init.c *.err *~