RESULT := pga BASENAMES := types stringify parse pga OFILES := $(addsuffix .cmx,$(BASENAMES)) OCAMLCFLAGS := -g OCAMLLDFLAGS := .PHONY: all clean .PRECIOUS: $(addsuffix .cmi,$(BASENAMES)) all: $(RESULT) %.cmx: %.ml ocamlopt -c -o $@ $(<:.cmi=.ml) $(RESULT): $(OFILES) ocamlopt -o $@ $^ clean: rm -f *.cmi *.cmx *.o $(RESULT)