OCAMLC=ocamlc
OCAMLOPT=ocamlopt

PROJET_OBJ=parser.cmo lexer.cmo mltype.cmo lambda_cps.cmo

test: $(PROJET_OBJ)
	$(OCAMLC) -g -o test $(PROJET_OBJ)

lexer.ml: parser.mli lexer.mll
	ocamllex lexer.mll

parser.ml parser.mli: parser.mly
	ocamlyacc -v parser.mly
	$(OCAMLC) parser.mli


.SUFFIXES: .ml .mli .cmo .cmi .cmx

.ml.cmo:
	$(OCAMLC) -c -g $<	

.ml.s:  
	./projet $< > $<.ml

.mli.cmi:
	$(OCAMLC) -c $<

.ml.cmx:
	$(OCAMLOPT) -c -g $<

clean:
	rm -r -f parser.mli parser.ml parser.output
	rm -r -f lexer.ml
	rm -r -f *.cm[oix]
	rm -r -f test
	rm -r -f *.o
	rm -r -f \#*
	rm -r -f *~

depend:
	ocamldep *.mli *.ml > .depend

include .depend
