LIBRARIES = $(shell $(OCAMLFIND) query -recursive -predicates "byte $(PREDICATES)" -format "%d/%a" $(REQUIRES))
LIBRARIES_OPT = $(shell $(OCAMLFIND) query -recursive -predicates "native $(PREDICATES)" -format "%d/%a" $(REQUIRES))
+LIBRARIES_DEPS = $(foreach X,$(LIBRARIES),$(wildcard \
+ $(shell dirname $(X))/*.mli \
+ $(shell dirname $(X))/*.ml \
+ $(shell dirname $(X))/*/*.ml \
+ $(shell dirname $(X))/*/*.mli))
ARCHIVE = $(PACKAGE).cma
DEPEND_FILES = $(INTERFACE_FILES) $(IMPLEMENTATION_FILES)
$(ARCHIVE): $(IMPLEMENTATION_FILES:%.ml=%.cmo) $(LIBRARIES)
- if [ $(PACKAGE) != dummy ]; then \
+ @if [ $(PACKAGE) != dummy ]; then \
+ echo OCAMLC $@;\
$(OCAMLC) $(OCAMLARCHIVEOPTIONS) -a -o $@ \
$(IMPLEMENTATION_FILES:%.ml=%.cmo); fi
$(ARCHIVE_OPT): $(IMPLEMENTATION_FILES:%.ml=%.cmx) $(LIBRARIES_OPT)
- if [ $(PACKAGE) != dummy ]; then \
+ @if [ $(PACKAGE) != dummy ]; then \
+ echo OCAMLOPT $@;\
$(OCAMLOPT) $(OCAMLARCHIVEOPTIONS) -a -o $@ \
$(IMPLEMENTATION_FILES:%.ml=%.cmx); fi
ocamldot < .depend > $@
%.cmi: %.mli
- $(OCAMLC) -c $<
+ @echo OCAMLC $<
+ @$(OCAMLC) -c $<
%.cmo %.cmi: %.ml
- $(OCAMLC) -c $<
+ @echo OCAMLC $<
+ @$(OCAMLC) -c $<
%.cmx: %.ml
- $(OCAMLOPT) -c $<
+ @echo OCAMLOPT $<
+ @$(OCAMLOPT) -c $<
%.annot: %.ml
$(OCAMLC) -dtypes $(PKGS) -c $<
%.ml %.mli: %.mly
$(OCAMLLEX) $<
$(IMPLEMENTATION_FILES:%.ml=%.cmo): $(LIBRARIES)
+$(IMPLEMENTATION_FILES:%.ml=%.cmi): $(LIBRARIES_DEPS)
$(IMPLEMENTATION_FILES:%.ml=%.cmx): $(LIBRARIES_OPT)
clean:
include .depend
endif
-ifeq ($(MAKECMDGOALS), all)
- $(IMPLEMENTATION_FILES:%.ml=%.cmi): $(LIBRARIES)
-endif
-
-ifeq ($(MAKECMDGOALS), opt)
- $(IMPLEMENTATION_FILES:%.ml=%.cmi): $(LIBRARIES_OPT)
-endif
-
-ifeq ($(MAKECMDGOALS),)
- $(IMPLEMENTATION_FILES:%.ml=%.cmi): $(LIBRARIES)
-endif
-
NULL =
.PHONY: all opt world metas depend install uninstall clean clean_metas distclean
%.all:
- OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* all
+ @OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* all
%.opt:
- OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* opt
+ @OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* opt
%.clean:
- OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* clean
+ @OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* clean
%.depend:
- OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* depend
+ @OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* depend
%.stats:
- $(MAKE) -C $* .stats
+ @$(MAKE) -C $* .stats
$(MODULES:%=%.install):
cd $(@:%.install=%) && make install