X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=components%2FMakefile;fp=components%2FMakefile;h=01dabc9a6393e230507603bd152db1e05c01a256;hp=0000000000000000000000000000000000000000;hb=f61af501fb4608cc4fb062a0864c774e677f0d76;hpb=58ae1809c352e71e7b5530dc41e2bfc834e1aef1 diff --git a/components/Makefile b/components/Makefile new file mode 100644 index 000000000..01dabc9a6 --- /dev/null +++ b/components/Makefile @@ -0,0 +1,149 @@ +H=@ +export SHELL=/bin/bash + +include ../Makefile.defs + +# Warning: the modules must be in compilation order +NULL = +MODULES = \ + extlib \ + xml \ + hgdome \ + registry \ + hmysql \ + syntax_extensions \ + thread \ + xmldiff \ + urimanager \ + logger \ + getter \ + cic \ + cic_proof_checking \ + cic_acic \ + cic_exportation \ + metadata \ + library \ + acic_content \ + grafite \ + content_pres \ + cic_unification \ + whelp \ + tactics \ + acic_procedural \ + cic_disambiguation \ + lexicon \ + grafite_engine \ + grafite_parser \ + tptp_grafite \ + $(NULL) + +METAS = $(MODULES:%=METAS/META.helm-%) + +ifeq ($(DISTRIBUTED),no) + MODULES+=binaries +endif + +all: metas $(MODULES:%=rec@all@%) +opt: metas syntax-extensions $(MODULES:%=rec@opt@%) + +ifeq ($(HAVE_OCAMLOPT),yes) +world: opt +else +world: all +endif +syntax-extensions: + $(H)$(MAKE) -C syntax_extensions depend + $(H)$(MAKE) -C syntax_extensions +depend: syntax-extensions $(MODULES:%=rec@depend@%) +depend.opt: syntax-extensions $(MODULES:%=rec@depend.opt@%) +install-arch: $(MODULES:%=rec@install@%) +install-indep: +uninstall: $(MODULES:%=rec@uninstall@%) +clean: $(MODULES:%=rec@clean@%) clean_metas + +.stats: $(MODULES:%=rec@.stats@%) + $(H)(for m in $(MODULES); do echo -n "$$m:"; cat $$m/.stats; done) \ + | sort -t : -k 2 -n -r > .stats + +rec@%: + $(H)$(MAKE) -C $(word 2, $(subst @, ,$*)) $(word 1, $(subst @, ,$*)) + +EXTRA_DIST_CLEAN = \ + libraries-clusters.ps \ + libraries-clusters.pdf \ + libraries-ext.ps \ + libraries.ps \ + .dep.dot \ + .extdep.dot \ + .clustersdep.dot \ + $(NULL) + +distclean: clean clean_metas + $(H)rm -f $(METAS) + $(H)rm -f configure config.log config.cache config.status + $(H)rm -f $(EXTRA_DIST_CLEAN) + +.PHONY: all opt world metas depend install uninstall clean clean_metas distclean + +METAS/META.helm-%: METAS/meta.helm-%.src + $(H)cp $< $@ && echo "directory=\"$(shell pwd)/$*\"" >> $@ + +SIMPLIFYDEPS = ../daemons/graphs/tools/simplify_deps/simplify_deps +$(SIMPLIFYDEPS): + $(H)$(MAKE) -C $(dir $(SIMPLIFYDEPS)) + +.PHONY: .dep.dot +.dep.dot: $(SIMPLIFYDEPS) + $(H)echo "digraph G {" > $@ + $(H)echo " rankdir = TB ;" >> $@ + $(H)for i in $(MODULES); do \ + $(OCAMLFIND) query helm-$$i -recursive -p-format | \ + grep helm | \ + sed "s/^helm-/ \"$$i\" -> \"/g" | \ + sed "s/$$/\";/g" >> $@ ; \ + done + $(H)mv $@ $@.old ; $(SIMPLIFYDEPS) < $@.old > $@ ; rm $@.old + $(H)echo "}" >> $@ + +.PHONY: .alldep.dot +.alldep.dot: + $(H)echo "digraph G {" > $@ + $(H)echo " rankdir = TB ;" >> $@ + $(H)for i in $(MODULES); do \ + $(OCAMLFIND) query helm-$$i -recursive -p-format | \ + grep -v "pxp-" | \ + sed "s/^pxp/pxp[-*]/g" | \ + sed "s/^/ \"helm-$$i\" -> \"/g" | \ + sed "s/$$/\";/g" >> $@ ; \ + done + $(H)mv $@ $@.old ; \ + ./simplify_deps/simplify_deps.opt < $@.old > $@ ; \ + rm $@.old + $(H)for i in $(MODULES); do \ + echo "\"helm-$$i\" [shape=box,style=filled,fillcolor=yellow];"\ + >> $@ ; \ + done + $(H)echo "}" >> $@ + +.extdep.dot: .dep.dot + $(H)STATS/patch_deps.sh $< $@ +.clustersdep.dot: .dep.dot + $(H)USE_CLUSTERS=yes STATS/patch_deps.sh $< $@ + +libraries.ps: .dep.dot + $(H)dot -Tps -o $@ $< +libraries-ext.ps: .extdep.dot + $(H)dot -Tps -o $@ $< +libraries-clusters.ps: .clustersdep.dot + $(H)dot -Tps -o $@ $< +libraries-complete.ps: .alldep.dot + $(H)dot -Tps -o $@ $< + +ps: libraries.ps libraries-ext.ps libraries-clusters.ps + +tags: TAGS +.PHONY: TAGS +TAGS: + $(H)otags -vi -r . + +metas: $(filter-out METAS/META.helm-binaries, $(METAS))