OBJS = preprocessor.o linecounter.cmo ast.cmo sast.cmo ir.cmo sastinjector.cmo semantic_analyzer.cmo parser.cmo scanner.cmo irgenerator.cmo compile.cmo spwag.cmo 
#sastinjector.cmo

spwag: $(OBJS)
	ocamlc -custom -o spwag $(OBJS)

irtester: ast.cmo sast.cmo irgenerator.cmo irtester.cmo
	ocamlc -o irtester ast.cmo sast.cmo irgenerator.cmo irtester.cmo

compiletester: sast.cmo ir.cmo compile.cmo compiletester.cmo
	ocamlc -o compiletester sast.cmo ir.cmo compile.cmo compiletester.cmo

preprocessor.o:
	ocamlc -c preprocessor.c

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 -f parser.ml parser.mli scanner.ml *.cmo *.cmi spwag irtester compiletester *.o

# Generated by ocamldep *.ml *.mli
ast.cmo :
ast.cmx :
compile.cmo : sast.cmo ir.cmo ast.cmo
compile.cmx : sast.cmx ir.cmx ast.cmx
compiletester.cmo : sast.cmo ir.cmo compile.cmo ast.cmo
compiletester.cmx : sast.cmx ir.cmx compile.cmx ast.cmx
ir.cmo : sast.cmo
ir.cmx : sast.cmx
irgenerator.cmo : sast.cmo ir.cmo ast.cmo
irgenerator.cmx : sast.cmx ir.cmx ast.cmx
irtester.cmo : sast.cmo irgenerator.cmo ast.cmo
irtester.cmx : sast.cmx irgenerator.cmx ast.cmx
linecounter.cmo :
linecounter.cmx :
parser.cmo : linecounter.cmo ast.cmo parser.cmi
parser.cmx : linecounter.cmx ast.cmx parser.cmi
sast.cmo : ast.cmo
sast.cmx : ast.cmx
sastinjector.cmo : sast.cmo ast.cmo
sastinjector.cmx : sast.cmx ast.cmx
scanner.cmo : parser.cmi linecounter.cmo
scanner.cmx : parser.cmx linecounter.cmx
semantic_analyzer.cmo : sast.cmo ast.cmo
semantic_analyzer.cmx : sast.cmx ast.cmx
spwag.cmo : scanner.cmo sastinjector.cmo parser.cmi irgenerator.cmo \
    compile.cmo ast.cmo
spwag.cmx : scanner.cmx sastinjector.cmx parser.cmx irgenerator.cmx \
    compile.cmx ast.cmx

#spwag.cmo : scanner.cmo semantic_analyzer.cmo parser.cmi irgenerator.cmo \
    compile.cmo ast.cmo
#spwag.cmx : scanner.cmx semantic_analyzer.cmx parser.cmx irgenerator.cmx \
    compile.cmx ast.cmx
parser.cmi : ast.cmo
