Makefile 655 B

12345678910111213141516171819202122232425262728293031323334
  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. .PHONY: all clean
  8. .PRECIOUS: $(addprefix .cmi,$(BASENAMES))
  9. all: $(RESULT)
  10. %.ml: %.mll
  11. ocamllex -o $@ $<
  12. %.ml: %.mly
  13. menhir --infer --explain $<
  14. %.cmi: %.mli
  15. ocamlc -c $(OCAMLCFLAGS) -o $@ $<
  16. parser.cmx: parser.cmi
  17. parser.mli: parser.ml
  18. %.cmx: %.ml
  19. ocamlfind ocamlopt -package batteries -c $(OCAMLCFLAGS) -o $@ $(<:.cmi=.ml)
  20. $(RESULT): $(OFILES)
  21. ocamlopt -o $@ $(OCAMLLDFLAGS) $(OCAMLLDLIBS) $^
  22. clean:
  23. rm -f *.cmi *.cmx *.o lexer.ml parser.ml parser.mli $(RESULT)