.PHONY : macaw.native
MATRIX = matrix.c
MATRIX_BC = matrix.bc

macaw.native :
	@clang -c -emit-llvm _includes/$(MATRIX)
	@mv $(MATRIX_BC) _includes/$(MATRIX_BC)
	ocamlbuild -use-ocamlfind -pkgs llvm,llvm.analysis,llvm.linker,llvm.bitreader -cflags -w,-a macaw.native

OBJS = ast.cmo compilator.cmo parser.cmo scanner.cmo evaluator.cmo macaw.cmo

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
	ocamlc ocamlopt -c package llvm $<

.PHONY : clean
clean:
	rm -f parser.ml *.t *.ma parser.mli scanner.ml *.cmo *.cmi *.cmx compile macaw.native *.err *.diff *.out *.ll *.log
	rm -rf _build
	rm _includes/*.bc

### Generated by "ocamldep *.ml *.mli" after building scanner.ml and parser.ml
ast.cmo :
ast.cmx :
compilator.cmo : ast.cmo
compilator.cmx : ast.cmx
evaluator.cmo : ast.cmo
evaluator.cmx : ast.cmx
macaw.cmo : scanner.cmo parser.cmi macaw.cmo evaluator.cmo ast.cmo
macaw.cmx : scanner.cmx parser.cmx macaw.cmx evaluator.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
