CAMLC=camlc
CAMLYACC=camlyacc
CAMLLEX=camllex

calc: lexer.zo parser.zo calc.zo
	$(CAMLC) -o calc lexer.zo parser.zo calc.zo

clean scratch:
	rm -f calc lexer.ml parser.ml parser.mli *.z[io] 

lexer.ml: lexer.mll
	$(CAMLLEX) lexer.mll

parser.mli parser.ml: parser.mly
	$(CAMLYACC) parser.mly

lexer.zo: parser.zi
calc.zo: lexer.zo parser.zi

.SUFFIXES: .ml .mli .zi .zo

.mli.zi:
	$(CAMLC) -c $<

.ml.zo:
	$(CAMLC) -c $<

