#TARFILES = Makefile scanner.mll parser.mly ast.mli sast.mli
# synap.ml

OBJS = parser.cmo scanner.cmo sast.cmo printer.cmo ppm.cmo params.cmo eval.cmo translate1.cmo translate2.cmo validate.cmo synap.cmo

synap : $(OBJS)
	ocamlc -cclib -lstr -cclib -lbigarray -o synap bigarray.cma str.cma $(OBJS)

translate : $(OBJS)
	ocamlc -cclib -lstr -o translate str.cma $(OBJS)

.PHONY : test
test : synap testall.sh
	./testall.sh

scanner.ml : scanner.mll
	ocamllex scanner.mll

parser.ml parser.mli : parser.mly
	ocamlyacc -v parser.mly

%.cmo : %.ml
	ocamlc -c $<

synap.cmo : synap.ml
	ocamlc -c synap.ml 

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

.PHONY : clean
clean :
	rm -f synap parser.ml parser.mli scanner.ml *.cmo *.cmi

# Generated by ocamldep *.ml *.mli
eval.cmo: params.cmo printer.cmo sast.cmo types.cmi
eval.cmx: params.cmx printer.cmx sast.cmx types.cmi
params.cmo: ast.cmi printer.cmo sast.cmo types.cmi
params.cmx: ast.cmi printer.cmx sast.cmx types.cmi
parser.cmo: ast.cmi parser.cmi
parser.cmx: ast.cmi parser.cmi
printer.cmo: sast.cmo types.cmi
printer.cmx: sast.cmx types.cmi
sast.cmo: types.cmi
sast.cmx: types.cmi
scanner.cmo: parser.cmi
scanner.cmx: parser.cmx
synap.cmo: ast.cmi eval.cmo params.cmo parser.cmi printer.cmo sast.cmo \
    scanner.cmo translate1.cmo translate2.cmo types.cmi validate.cmo
synap.cmx: ast.cmi eval.cmx params.cmx parser.cmx printer.cmx sast.cmx \
    scanner.cmx translate1.cmx translate2.cmx types.cmi validate.cmx
translate1.cmo: ast.cmi params.cmo printer.cmo sast.cmo types.cmi
translate1.cmx: ast.cmi params.cmx printer.cmx sast.cmx types.cmi
translate2.cmo: params.cmo printer.cmo sast.cmo types.cmi
translate2.cmx: params.cmx printer.cmx sast.cmx types.cmi
validate.cmo: ast.cmi sast.cmo types.cmi
validate.cmx: ast.cmi sast.cmx types.cmi
parser.cmi: ast.cmi

