Skip to content
Snippets Groups Projects
Makefile 1013 B
Newer Older
Taddeüs Kroes's avatar
Taddeüs Kroes committed
RESULT    := mincss
PRE_TGTS  := types
MODULES   := util stringify parser lexer parse color main
ALL_NAMES := $(PRE_TGTS) $(MODULES)
Taddeüs Kroes's avatar
Taddeüs Kroes committed
OCAMLCFLAGS  := -g
OCAMLLDFLAGS :=
Taddeüs Kroes's avatar
Taddeüs Kroes committed
OCAMLLDLIBS  := str.cmxa

OCAMLLEX  := ocamllex
OCAMLYACC := menhir --infer --explain --dump
.PHONY: all clean
.PRECIOUS: $(addprefix .cmi,$(ALL_NAMES))
Taddeüs Kroes's avatar
Taddeüs Kroes committed
	$(OCAMLLEX) -o $@ $<
Taddeüs Kroes's avatar
Taddeüs Kroes committed
	$(OCAMLYACC) $<
%.cmi: %.mli
	ocamlc -c $(OCAMLCFLAGS) -o $@ $<
%.cmx: %.ml
	ocamlfind ocamlopt -package batteries -c $(OCAMLCFLAGS) -o $@ $(<:.cmi=.ml)

$(RESULT): $(addsuffix .cmx,$(ALL_NAMES))
	ocamlopt -o $@ $(OCAMLLDFLAGS) $(OCAMLLDLIBS) $^

Taddeüs Kroes's avatar
Taddeüs Kroes committed
# intra-module dependencies
Taddeüs Kroes's avatar
Taddeüs Kroes committed
lexer.cmi: lexer.ml
parser.cmx: parser.cmi lexer.cmi
Taddeüs Kroes's avatar
Taddeüs Kroes committed
parser.mli: parser.ml
Taddeüs Kroes's avatar
Taddeüs Kroes committed
parse.cmx: lexer.cmi parser.cmx
main.cmx: parse.cmx util.cmx color.cmx
util.cmx: OCAMLCFLAGS += -pp cpp
$(addsuffix .cmx,$(MODULES)): $(addsuffix .cmi,$(PRE_TGTS))
Taddeüs Kroes's avatar
Taddeüs Kroes committed

	rm -f *.cmi *.cmx *.o lexer.ml parser.ml parser.mli parser.conflicts \
		parser.automaton $(RESULT)