# Makefile for Stop Language compiler

OBJS = parser.cmo scanner.cmo stop.cmo ast.cmo

stop : $(OBJS)
	ocamlc -o stop $(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 $<

%.cmx : %.ml
	ocamlfind ocamlopt -c -package llvm $<

.PHONY : clean
clean :
	rm -f stop calc parser.ml parser.mli scanner.ml *.cmo *.cmi *.cmx *.o

ast.cmo :
ast.cmx :
stop.cmo: scanner.cmo parser.cmi ast.cmo
stop.cmx: scanner.cmx parser.cmx ast.cmx
parser.cmo: ast.cmo parser.cmi
parser.cmx: ast.cmx parser.cmi
scanner.cmo: parser.cmi
scanner.cmx: parser.cmx
parser.cmi: ast.cmo
