Makefile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. RESULT := mincss
  2. PRE_TGTS := types
  3. MODULES := color_names util stringify parser lexer parse color shorthand main
  4. ALL_NAMES := $(PRE_TGTS) $(MODULES)
  5. OCAMLCFLAGS := -g
  6. OCAMLLDFLAGS :=
  7. OCAMLLDLIBS := str.cmxa
  8. OCAMLLEX := ocamllex
  9. OCAMLYACC := menhir --infer --explain --dump
  10. .PHONY: all clean
  11. .PRECIOUS: $(addprefix .cmi,$(ALL_NAMES))
  12. all: $(RESULT)
  13. %.ml: %.mll
  14. $(OCAMLLEX) -o $@ $<
  15. %.ml: %.mly
  16. $(OCAMLYACC) $<
  17. %.cmi: %.mli
  18. ocamlc -c $(OCAMLCFLAGS) -o $@ $<
  19. %.cmx: %.ml
  20. ocamlfind ocamlopt -c $(OCAMLCFLAGS) -o $@ $(<:.cmi=.ml)
  21. $(RESULT): $(addsuffix .cmx,$(ALL_NAMES))
  22. ocamlopt -o $@ $(OCAMLLDFLAGS) $(OCAMLLDLIBS) $^
  23. # intra-module dependencies
  24. lexer.cmi: lexer.ml
  25. parser.cmx: parser.cmi lexer.cmx
  26. parser.mli: parser.ml
  27. parse.cmx: lexer.cmi parser.cmx
  28. main.cmx: parse.cmx util.cmx color.cmx shorthand.cmx
  29. util.cmx: OCAMLCFLAGS += -pp cpp
  30. util.cmx color.cmx: color_names.cmx
  31. stringify.cmx parser.cmx color.cmx shorthand.cmx: util.cmi
  32. $(addsuffix .cmx,$(MODULES)): $(addsuffix .cmi,$(PRE_TGTS))
  33. clean:
  34. rm -f *.cmi *.cmx *.o lexer.ml parser.ml parser.mli parser.conflicts \
  35. parser.automaton $(RESULT)