#.PHONY : test
#test : all testall.sh
#	./testall.sh

#.PHONY : all
all : arbol

OBJS = ast.cmo sast.cmo parser.cmo scanner.cmo semantic.cmo codegen.cmo arbol.cmo 

arbol: $(OBJS)
	ocamlfind ocamlc -g -o arbol $(OBJS) -linkpkg -package llvm,llvm.analysis

scanner.ml: scanner.mll parser.ml
	ocamllex scanner.mll

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

%.cmo: %.ml
	ocamlfind ocamlc -w A -c $< -linkpkg -package llvm,llvm.analysis

%.cmi: %.mli
	ocamlc -w A -c $<

# "make clean" removes all generated files

.PHONY : clean
clean :
	rm -rf *.cmo *.cmi *.out *.s *.exe parser.ml *.ll *.o scanner.ml

arbol.cmo : \
    scanner.cmo \
    parser.cmi \
    ast.cmo
arbol.cmx : \
    scanner.cmx \
    parser.cmx \
    ast.cmx
arbol_parser.cmi : \
    ast.cmo
ast.cmo :
ast.cmx :
codegen.cmo :
codegen.cmx :
parser.cmo : \
    ast.cmo \
    parser.cmi
parser.cmx : \
    ast.cmx \
    parser.cmi
parser.cmi : \
    ast.cmo
sast.cmo : \
    ast.cmo
sast.cmx : \
    ast.cmx
scanner.cmo : \
    parser.cmi
scanner.cmx : \
    parser.cmx
stubs.cmo :
stubs.cmx :
