#
# Author: Gemma Ragozzine
# Thank you to Edward's MicroC example, the Lorax example from Fall 2013, and the wdjc example from Fall 2013
#

OBJS = ast.cmo sast.cmo symbolTable.cmo semantic_check.cmo parser.cmo scanner.cmo javagen.cmo graphQuil.cmo
# OBJS = ast.cmo sast.cmo symbolTable.cmo semantic_check.cmo parser.cmo scanner.cmo produceJava.cmo graphQuil.cmo

graphquil : $(OBJS)
	ocamlc -o graphquil -g unix.cma $(OBJS)

.PHONY : test
test : graphquil testall.sh
	./testall.sh

scanner.ml : scanner.mll
	ocamllex scanner.mll

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

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

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

.PHONY : clean
clean :
	rm -rf graphquil parser.ml parser.mli scanner.ml testall.log \
	*.cmo *.cmi *.out *.diff *~  a.out.dSYM 

# Generated by ocamldep *.ml *.mli
ast.cmo: 
ast.cmx: 
sast.cmo: ast.cmo
sast.cmx: ast.cmx
symbolTable.cmo: ast.cmo sast.cmo
symbolTable.cmx: ast.cmx sast.cmx
semantic_check.cmo: symbolTable.cmo
semantic_check.cmx: symbolTable.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 
javagen.cmo: scanner.cmo parser.cmi ast.cmo sast.cmo symbolTable.cmo semantic_check.cmo
javagen.cmx: scanner.cmx parser.cmx ast.cmx sast.cmx symbolTable.cmx semantic_check.cmx
graphquil.cmo: scanner.cmo parser.cmi ast.cmo sast.cmo symbolTable.cmo semantic_check.cmo javagen.cmo
graphquil.cmx: scanner.cmx parser.cmx ast.cmx sast.cmx symbolTable.cmx semantic_check.cmx javagen.cmx