]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/Makefile
Use reference counting to keep track of camlp4 extensions so that the same
[helm.git] / helm / software / components / Makefile
index 2968a240512c20633d8a20816f3ba21ae23dca58..686fa74d71ed14bd79a7c20a384ac64a698ff111 100644 (file)
@@ -20,11 +20,11 @@ MODULES =                   \
        cic                     \
        cic_proof_checking      \
        cic_acic                \
+       metadata                \
+       library                 \
        acic_content            \
        content_pres            \
        grafite                 \
-       metadata                \
-       library                 \
        cic_unification         \
        whelp                   \
        tactics                 \
@@ -37,18 +37,27 @@ MODULES =                   \
 
 METAS = $(filter-out %/paramodulation,$(MODULES:%=METAS/META.helm-%))
 
-all: metas $(MODULES:%=%.all) 
-opt: metas $(MODULES:%=%.opt)
+all: metas $(MODULES:%=rec@all@%) 
+opt: metas $(MODULES:%=rec@opt@%)
+ifeq ($(HAVE_OCAMLOPT),yes)
 world: all opt
-depend: $(MODULES:%=%.depend)
-install: $(MODULES:%=%.install)
-uninstall: $(MODULES:%=%.uninstall)
-clean: $(MODULES:%=%.clean) clean_metas
-
-.stats: $(MODULES:%=%.stats)
+else
+world: all
+endif
+depend: $(MODULES:%=rec@depend@%)
+install: $(MODULES:%=rec@install@%)
+uninstall: $(MODULES:%=rec@uninstall@%)
+clean: $(MODULES:%=rec@clean@%) clean_metas
+
+.stats: $(MODULES:%=rec@.stats@%)
        (for m in $(MODULES); do echo -n "$$m:"; cat $$m/.stats; done) \
         | sort -t : -k 2 -n -r > .stats
 
+rec@%@tactics/paramodulation:
+       $(MAKE) -C tactics/paramodulation $*
+rec@%:
+       $(MAKE) -C $(word 2, $(subst @, ,$*)) $(word 1, $(subst @, ,$*))
+
 EXTRA_DIST_CLEAN = \
        libraries-clusters.ps   \
        libraries-clusters.pdf  \
@@ -66,30 +75,19 @@ distclean: clean clean_metas
 
 .PHONY: all opt world metas depend install uninstall clean clean_metas distclean
 
-%.all:
-       $(MAKE) -C $* all 
-%.opt:
-       $(MAKE) -C $* opt
-%.clean:
-       $(MAKE) -C $* clean 
-%.depend:
-       $(MAKE) -C $* depend 
-%.stats:
-       @$(MAKE) -C $* .stats
-%.install:
-       $(MAKE) -C $* install 
-%.uninstall:
-       $(MAKE) -C $* uninstall 
-
 METAS/META.helm-%: METAS/meta.helm-%.src
        cp $< $@ && echo "directory=\"$(shell pwd)/$*\"" >> $@
 
+SIMPLIFYDEPS = ../daemons/graphs/tools/simplify_deps/simplify_deps
+$(SIMPLIFYDEPS):
+       $(MAKE) -C $(dir $(SIMPLIFYDEPS))
+
 .PHONY: .dep.dot
-.dep.dot:
+.dep.dot: $(SIMPLIFYDEPS)
        echo "digraph G {" > $@
        echo "   rankdir = TB ;" >> $@
        for i in $(MODULES); do $(OCAMLFIND) query helm-$$i -recursive -p-format | grep helm | sed "s/^helm-/ \"$$i\" -> \"/g" | sed "s/$$/\";/g" >> $@ ; done
-       mv $@ $@.old ; ./simplify_deps/simplify_deps.opt < $@.old > $@ ; rm $@.old
+       mv $@ $@.old ; $(SIMPLIFYDEPS) < $@.old > $@ ; rm $@.old
        echo "}" >> $@
 
 .PHONY: .alldep.dot