Makefile 1.2 KB

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