TARFILES = Makefile scanner.mll parser.mly ast.mli target.ml trix.ml

OBJS = scanner.cmo parser.cmo ast.cmo target.cmo trix.cmo

trix : $(OBJS)
	ocamlc -o trix $(OBJS)

scanner.ml : scanner.mll
	ocamllex scanner.mll

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

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

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

trix_final.tar.gz : $(TARFILES)
	cd .. && tar czf src.tar.gz $(TARFILES:%=src/%)

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

ast.cmo: 
ast.cmx: 
target.cmo: ast.cmo 
target.cmx: ast.cmx 
trix.cmo: scanner.cmo parser.cmi target.cmo ast.cmo 
trix.cmx: scanner.cmx parser.cmx target.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
