
MS     = ms -notest -noprobe -nocancel -noanysource
MSCC   = mscc -DSAFETY

all: abdl abdl_free assert col_mis dybuf nsingle podl rbuf_over nb tags type_mis

abdl: Makefile clean absolute_dl_bad.prom
	$(MS) -dl -np=2 -buf=2 -req=2 absolute_dl_bad.prom
	$(MSCC)
	./pan -n

abdl_free: Makefile clean absolute_dl_good.prom
	$(MS) -dl -np=2 -buf=2 -req=2 absolute_dl_good.prom
	$(MSCC)
	./pan -n

any_source: any_src_good.prom
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n	

any_source_bad: any_source_bad.prom
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n	

assert: assertion_good.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

assert_bad: assertion_bad.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

col_mis: collective_match_bad.prom
	$(MS) -dl -np=3 -buf=3 -req=3 $<
	$(MSCC)
	./pan -n

col_mat: collective_match_good.prom
	make clean
	$(MS) -dl -np=3 -buf=3 -req=3 $<
	$(MSCC)
	./pan -n

dybuf: dy_buf_good.prom
	make clean
	$(MS) -dl -np=3 -buf=3 -req=3 $<
	$(MSCC)
	./pan -n

dybuf_bad: dy_buf_bad.prom
	make clean
	$(MS) -dl -np=3 -buf=3 -req=3 $<
	$(MSCC)
	./pan -n

in_branch: input_branch_good.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

in_branch_bad: input_branch_bad.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

nsingle: not_single_path_good.prom
	make clean
	$(MS) -np=3 -dl -buf=3 -req=3 $<
	$(MSCC)
	./pan -n

nsingle_dl: not_single_path_bad.prom
	make clean
	$(MS) -np=3 -dl -buf=3 -req=3 $<
	$(MSCC)
	./pan -n

podl: potential_deadlock_bad.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

podl_free: potential_deadlock_good.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

rbuf_over: rbuf_overflow_bad.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

rbuf_no_over: rbuf_overflow_good.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

nb: simple_nb_good.prom
	make clean
	$(MS) -dl -np=4 -buf=4 -req=20 $<
	$(MSCC)
	./pan -n

nbdl: simple_nb_bad.prom
	make clean
	$(MS) -dl -np=4 -buf=4 -req=20 $<
	$(MSCC)
	./pan -n

tags: tags_good.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

tags_dl: tags_bad.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

type_mis: type_match_p2p_bad.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

type_mat: type_match_p2p_good.prom
	make clean
	$(MS) -dl -np=2 -buf=2 -req=2 $<
	$(MSCC)
	./pan -n

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