OBJS = parser.cmo scanner.cmo scanner_utils.cmo parser_utils.cmo translate.cmo translate_utils.cmo jpp.cmo taml.cmo

taml : $(OBJS)
	ocamlc -o ../taml $(OBJS)

scanner.ml : scanner.mll
	ocamllex scanner.mll

parser.ml parser.mli : parser.mly
	ocamlyacc parser.mly

%.cmo : %.ml
	ocamlc -c $<

%.cmi : %.mli
	ocamlc -c $<


.PHONY : clean
clean :
	rm -f scanner.ml scanner.mli scanner_utils.mli \
	parser.ml parser.mli parser_utils.mli translate.mli \
	translate_utils.mli jpp.mli taml.mli \
	test_results.out \
	*.cmo *.cmi *.out *.diff *.annot

# Generated by ocamldep *.ml *.mli
jpp.cmo: type.cmi ast.cmi
jpp.cmx: type.cmi ast.cmi
parser.cmo: type.cmi ast.cmi parser.cmi
parser.cmx: type.cmi ast.cmi parser.cmi
parser_utils.cmo: type.cmi ast.cmi
parser_utils.cmx: type.cmi ast.cmi
scanner.cmo: parser.cmi
scanner.cmx: parser.cmx
scanner_utils.cmo: scanner.cmo parser.cmi
scanner_utils.cmx: scanner.cmx parser.cmx
semantic_check.cmo: type.cmi ast.cmi
semantic_check.cmx: type.cmi ast.cmi
taml.cmo: translate_utils.cmo translate.cmo scanner_utils.cmo scanner.cmo \
    parser_utils.cmo parser.cmi jpp.cmo
taml.cmx: translate_utils.cmx translate.cmx scanner_utils.cmx scanner.cmx \
    parser_utils.cmx parser.cmx jpp.cmx
translate.cmo: type.cmi sast.cmi ast.cmi
translate.cmx: type.cmi sast.cmi ast.cmi
translate_utils.cmo: type.cmi sast.cmi ast.cmi
translate_utils.cmx: type.cmi sast.cmi ast.cmi
ast.cmi: type.cmi
parser.cmi: ast.cmi
sast.cmi: type.cmi ast.cmi
type.cmi:
