#
# QL
#
# Manager: Matthew Piccolella
# Systems Architect: Anshul Gupta
# Tester: Evan Tarrh
# Language Guru: Gary Lin
# Systems Integrator: Mayank Mahajan

OCAMLC=ocamlc
OCAMLDEP=ocamldep
OCAMLLEX=ocamllex
OCAMLYACC=ocamlyacc
OBJS=ast.cmo parser.cmo scanner.cmo environment.cmo semantic.cmo jast.cmo semantic_to_jast.cmo code_generator.cmo qlc.cmo

qlc: $(OBJS)
	ocamlc -o qlc str.cma $(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 -rf scanner.ml parser.ml parser.mli *.cmo *.cmi *.out *.diff qlc

# Generated by ocamldep
# TODO: Make this generate our actual dependencies
ast.cmo :
ast.cmx :
environment.cmo : ast.cmo
environment.cmx : ast.cmx
semantic.cmo : environment.cmo ast.cmo
semantic.cmx : environment.cmx ast.cmx
sast.cmo : ast.cmo
sast.cmx : ast.cmx
jast.cmo : ast.cmo
jast.cmx : ast.cmx
parser.cmo : ast.cmo parser.cmi
parser.cmx : ast.cmx parser.cmi
qlc.cmo : scanner.cmo parser.cmi ast.cmo semantic.cmo jast.cmo semantic_to_jast.cmo code_generator.cmo
qlc.cmx : scanner.cmx parser.cmx ast.cmx semantic.cmx jast.cmx semantic_to_jast.cmx code_generator.cmx
scanner.cmo : parser.cmi
scanner.cmx : parser.cmx
parser.cmi : ast.cmo
