LOCAL_INCLUDES := -I ../extracted/local/inc/
RELEASE_INCLUDES := -I ../extracted/released/inc/
CMA := metarouting.cma
LOCAL := str.cma debug.cmo errors.cmo coqInterface.cmo mreAST.cmo printProps.cmo yacc_spec.cmo lex_spec.cmo parsers.cmo algorithms.cmo help.cmo interact.cmo
OUTPUT := ../../bin/mre

mre-local : 
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) debug.ml;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) errors.ml;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) coqInterface.ml;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) mreAST.ml;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) printProps.ml;
	ocamlyacc -v yacc_spec.mly;
	ocamlc -c $(LOCAL_INCLUDES) yacc_spec.mli;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) yacc_spec.ml
	ocamllex lex_spec.mll;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) lex_spec.ml;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) parsers.ml;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) algorithms.ml;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) help.ml;
	ocamlc -c $(LOCAL_INCLUDES) $(CMA) interact.ml;
	ocamlc -o $(OUTPUT) $(LOCAL_INCLUDES) $(CMA) $(LOCAL) main.ml

mre-release : 
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) debug.ml;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) errors.ml;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) coqInterface.ml;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) mreAST.ml;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) printProps.ml;
	ocamlyacc -v yacc_spec.mly;
	ocamlc -c $(RELEASE_INCLUDES) yacc_spec.mli;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) yacc_spec.ml
	ocamllex lex_spec.mll;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) lex_spec.ml;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) parsers.ml;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) algorithms.ml;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) help.ml;
	ocamlc -c $(RELEASE_INCLUDES) $(CMA) interact.ml;
	ocamlc -o $(OUTPUT) $(RELEASE_INCLUDES) $(CMA) $(LOCAL) main.ml

clean :
	rm -f *.o;
	rm -f *.cmi;
	rm -f *.cmo;
	rm -f lex_spec.ml;
	rm -f yacc_spec.ml;
	rm -f yacc_spec.mli;
	rm -f yacc_spec.output;
	rm -f $(OUTPUT)

