Makefile 781 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. RESULT := mincss
  2. BASENAMES := types stringify parser lexer util parse main
  3. OFILES := $(addsuffix .cmx,$(BASENAMES))
  4. OCAMLCFLAGS := -g
  5. OCAMLLDFLAGS :=
  6. OCAMLLDLIBS := str.cmxa
  7. OCAMLLEX := ocamllex
  8. OCAMLYACC := menhir --infer --explain --dump
  9. .PHONY: all clean
  10. .PRECIOUS: $(addprefix .cmi,$(BASENAMES))
  11. all: $(RESULT)
  12. %.ml: %.mll
  13. $(OCAMLLEX) -o $@ $<
  14. %.ml: %.mly
  15. $(OCAMLYACC) $<
  16. %.cmi: %.mli
  17. ocamlc -c $(OCAMLCFLAGS) -o $@ $<
  18. %.cmx: %.ml
  19. ocamlfind ocamlopt -package batteries -c $(OCAMLCFLAGS) -o $@ $(<:.cmi=.ml)
  20. $(RESULT): $(OFILES)
  21. ocamlopt -o $@ $(OCAMLLDFLAGS) $(OCAMLLDLIBS) $^
  22. # intra-module dependencies
  23. parser.cmx: parser.cmi
  24. parser.mli: parser.ml
  25. parse.cmx: lexer.cmi parser.cmi
  26. clean:
  27. rm -f *.cmi *.cmx *.o lexer.ml parser.ml parser.mli $(RESULT)