Newer
Older
BASENAMES := types util stringify parser lexer parse main
OCAMLLDLIBS := str.cmxa
OCAMLLEX := ocamllex
OCAMLYACC := menhir --infer --explain --dump
.PHONY: all clean
.PRECIOUS: $(addprefix .cmi,$(BASENAMES))
%.cmi: %.mli
ocamlc -c $(OCAMLCFLAGS) -o $@ $<
%.cmx: %.ml
ocamlfind ocamlopt -package batteries -c $(OCAMLCFLAGS) -o $@ $(<:.cmi=.ml)
$(RESULT): $(OFILES)
ocamlopt -o $@ $(OCAMLLDFLAGS) $(OCAMLLDLIBS) $^
lexer.cmi: lexer.ml
parser.cmx: parser.cmi lexer.cmi
parse.cmx: lexer.cmi parser.cmx
main.cmx: parse.cmx util.cmx
stringify.cmx parser.cmi parser.cmx lexer.cmx util.cmx parse.cmx main.cmx: \
types.cmi
rm -f *.cmi *.cmx *.o lexer.ml parser.ml parser.mli parser.conflicts \
parser.automaton $(RESULT)