easkey: scanner.cmo parser.cmo analyzer.cmo compile.cmo bytecode.cmo easkey.ml
	ocamlc -o easkey scanner.cmo parser.cmo analyzer.cmo bytecode.cmo compile.cmo easkey.ml
#	cp easkey ..

scanner_test: scanner.cmo parser.cmo scanner_test.ml
	ocamlc -o scanner_test scanner.cmo parser.cmo scanner_test.ml
	
analyzer_test: scanner.cmo parser.cmo analyzer.cmo analyzer_test.ml
	ocamlc -o analyzer_test scanner.cmo parser.cmo analyzer.cmo analyzer_test.ml
	
scanner.ml: scanner.mll
	ocamllex scanner.mll

parser.ml parser.mli: parser.mly ast.cmi
	ocamlyacc parser.mly

ast.cmi: type.cmi
sast.cmi: type.cmi
bytecode.cmo: type.cmi

scanner.cmo: parser.cmi
parser.cmo: parser.cmi ast.cmi
compile.cmo: sast.cmi bytecode.cmo 
analyzer.cmo: ast.cmi sast.cmi
#generator.cmo: sast.cmi bytecode.cmi

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

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

.PHONY: clean
clean:
	rm -f *.cmi *.cmo scanner.ml parser.mli parser.ml easkey scanner_test analyzer_test
#	-rm ../easkey

# Generated by ocamldep
#compiler.cmo: scanner.cmo parser.cmi 
#compiler.cmx: scanner.cmx parser.cmx 
#parser.cmo: parser.cmi 
#parser.cmx: parser.cmi 
 
#scanner.cmx: parser.cmx 
#scanner_test.cmo: scanner.cmo parser.cmi 
#scanner_test.cmx: scanner.cmx parser.cmx 
#parser.cmi: 
