OBJS = ast.cmx parser.cmx scanner.cmx semant.cmx goblan.cmx

goblan.native :
	ocamlbuild -use-ocamlfind -pkgs llvm,llvm.analysis,llvm.linker,llvm.bitreader,llvm.irreader -cflags -w,+a-4 goblan.native

goblan : $(OBJS)
	ocamlfind ocamlopt -linkpkg -package llvm.linker -package llvm.bitreader -package llvm.irreader -package llvm -package llvm.analysis $(OBJS) -o goblan

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 :
	ocamlbuild -clean
	rm -rf testall.log *.diff goblan scanner.ml parser.ml parser.mli
	rm -rf *.cmx *.cmi *.cmo *.cmx *.o

# Generated by ocamldep *.ml *.mli
ast.cmo :
ast.cmx :
codegen.cmo : ast.cmo list.bc
codegen.cmx : ast.cmx list.bc
goblan.cmo : semant.cmo scanner.cmo parser.cmi codegen.cmo ast.cmo
goblan.cmx : semant.cmx scanner.cmx parser.cmx codegen.cmx ast.cmx
goblan.cmo : scanner.cmo parser.cmi ast.cmo
goblan.cmx : scanner.cmx parser.cmx ast.cmx
parser.cmo : ast.cmo parser.cmi
parser.cmx : ast.cmx parser.cmx
scanner.cmo : parser.cmi
scanner.cmx : parser.cmx
semant.cmo : ast.cmo
semant.cmx : ast.cmx
parser.cmi : ast.cmo
