]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/Makefile.common.in
fixed cmi:cm(x)a problem in makefiles
[helm.git] / helm / ocaml / Makefile.common.in
index 9dff7894208c365a65473fd681eab2bbebf6cd3c..da539d460f3a4d9c2790bee888656df145797bf5 100644 (file)
@@ -29,6 +29,11 @@ OCAMLOPT_P4 = $(OCAMLFIND) opt $(OCAMLOPTIONS) $(SYNTAXOPTIONS)
 
 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
@@ -39,12 +44,14 @@ OBJECTS_TO_INSTALL = $(ARCHIVE) $(ARCHIVE_OPT) $(ARCHIVE_OPT:%.cmxa=%.a) \
 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
 
@@ -67,11 +74,14 @@ $(PACKAGE).ps: .dep.dot
        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
@@ -80,6 +90,7 @@ $(PACKAGE).ps: .dep.dot
        $(OCAMLLEX) $<
 
 $(IMPLEMENTATION_FILES:%.ml=%.cmo): $(LIBRARIES)
+$(IMPLEMENTATION_FILES:%.ml=%.cmi): $(LIBRARIES_DEPS)
 $(IMPLEMENTATION_FILES:%.ml=%.cmx): $(LIBRARIES_OPT)
 
 clean:
@@ -120,17 +131,5 @@ ifneq ($(MAKECMDGOALS), depend)
    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 =