# Time-stamp: <modified the 01/09/2021 (at 10:26) by Erwan Jahier> # # Define some default rules that ought to work most of the time # sasa=sasa LIB=-package algo ifndef DAEMON DAEMON=-dd endif OCAMLOPT=ocamlfind ocamlopt -bin-annot %.ml: %.dot sasa -reg $< %.cmxs: %.ml $(OCAMLOPT) $(LIB) -shared state.ml $(shell sasa -algo $*.dot) config.ml $< -o $@ genclean: rm -f *.cmxs sasa *.cm* *.o *.pdf *.rif *.gp *.log *.dro *.seed *.c *.h sasa-*.dot *.cmt *.annot rm -f rdbg-session*.ml luretteSession* a.out *.cov read_dot.ml rm -f *.exec grid*.ml read_dot.ml rdbg-history rdbg-cmds.ml clean: genclean .PRECIOUS: %.ml ################################################################################## # -include Makefile.untracked g:gnuplot s:sim2chrogtk OCAMLC=ocamlfind ocamlc -bin-annot %.cma: %.ml $(OCAMLC) $(LIB) -a state.ml $(shell sasa -algo $*.dot) $< -o $@ %.lut: %.dot %.cmxs sasa -gld $< || echo "==> ok, I'll use the existing $@ file" %_oracle.lus: %.dot %.cmxs sasa -glos $< || echo "==> ok, I'll use the existing $@ file" %.rif: %.cmxs %.dot $(sasa) $(sasaopt) $*.dot > $*.rif %.pdf: osage -Tpdf $*.dot -o $*.pdf xpdf $*.pdf %.ocd: %.ml rdbg -camldebug -sut "sasa $.dot" -l 1000 %.test: %.dot %.cmxs sasa $< ############################################################################################ # Golden master tests # compare the generated rif file with a previously generated reference EXPDIR=`rdbg --ocaml-version` $(EXPDIR): [ -d $(EXPDIR) ] || (mkdir -p $(EXPDIR) ; make utest) %.gm_test: %.dot %.cmxs $(EXPDIR) sasa $< -seed 42 > $*.rif && \ diff -I "# on" -I " version " -B -u -i -w $(EXPDIR)/$*.rif.exp $*.rif > $*.res [ ! -s $*.res ] && echo "\n\n==> $*.gm_test went fine" # update the reference %.ugm_test: %.rif $(EXPDIR) cp $*.rif $(EXPDIR)/$*.rif.exp ############################################################################################ %.rdbg: %.dot %.ml ledit -h rdbg-history -x rdbg -sut "sasa $< $(DAEMON)" %.rdbgui: %.dot %.ml ledit -h rdbg-history -x rdbgui4sasa -sut "sasa $< $(DAEMON)"