]> matita.cs.unibo.it Git - helm.git/blob - matita/components/Makefile
- acic_content ==> content
[helm.git] / matita / components / Makefile
1 H=@
2 export SHELL=/bin/bash
3
4 include ../Makefile.defs
5
6 # Warning: the modules must be in compilation order
7 NULL =
8 MODULES =                       \
9         extlib                  \
10         xml                     \
11         hgdome                  \
12         registry                \
13         hmysql                  \
14         syntax_extensions       \
15         thread                  \
16         urimanager              \
17         logger                  \
18         getter                  \
19         cic                     \
20         library                 \
21         ng_kernel               \
22         content         \
23         grafite                 \
24         disambiguation          \
25         ng_kernel               \
26         ng_refiner              \
27         ng_disambiguation       \
28         ng_cic_content          \
29         ng_paramodulation       \
30         ng_library              \
31         content_pres            \
32         lexicon                 \
33         grafite_parser          \
34         ng_tactics              \
35         grafite_engine          \
36         $(NULL)
37
38 METAS = $(MODULES:%=METAS/META.helm-%)
39
40 ifeq ($(DISTRIBUTED),no)
41         MODULES+=binaries
42 endif
43
44 all: metas $(MODULES:%=rec@all@%) 
45 opt: metas syntax-extensions $(MODULES:%=rec@opt@%)
46
47 ifeq ($(HAVE_OCAMLOPT),yes)
48 world: opt
49 else
50 world: all
51 endif
52 syntax-extensions:
53         $(H)$(MAKE) -C syntax_extensions depend
54         $(H)$(MAKE) -C syntax_extensions
55 depend: syntax-extensions $(MODULES:%=rec@depend@%)
56 depend.opt: syntax-extensions $(MODULES:%=rec@depend.opt@%)
57 install-arch: $(MODULES:%=rec@install@%)
58 install-indep:
59 uninstall: $(MODULES:%=rec@uninstall@%)
60 clean: $(MODULES:%=rec@clean@%) clean_metas
61
62 .stats: $(MODULES:%=rec@.stats@%)
63         $(H)(for m in $(MODULES); do echo -n "$$m:"; cat $$m/.stats; done) \
64          | sort -t : -k 2 -n -r > .stats
65
66 rec@%:
67         $(H)$(MAKE) -C $(word 2, $(subst @, ,$*)) $(word 1, $(subst @, ,$*))
68
69 EXTRA_DIST_CLEAN = \
70         libraries-clusters.ps   \
71         libraries-clusters.pdf  \
72         libraries-ext.ps        \
73         libraries.ps            \
74         .dep.dot                \
75         .extdep.dot             \
76         .clustersdep.dot        \
77         $(NULL)
78
79 distclean: clean clean_metas
80         $(H)rm -f $(METAS)
81         $(H)rm -f configure config.log config.cache config.status
82         $(H)rm -f $(EXTRA_DIST_CLEAN)
83
84 .PHONY: all opt world metas depend install uninstall clean clean_metas distclean
85
86 METAS/META.helm-%: METAS/meta.helm-%.src
87         $(H)cp $< $@ && echo "directory=\"$(shell pwd)/$*\"" >> $@
88
89 SIMPLIFYDEPS = ../daemons/graphs/tools/simplify_deps/simplify_deps
90 $(SIMPLIFYDEPS):
91         $(H)$(MAKE) -C $(dir $(SIMPLIFYDEPS))
92
93 .PHONY: .dep.dot
94 .dep.dot: $(SIMPLIFYDEPS)
95         $(H)echo "digraph G {" > $@
96         $(H)echo "   rankdir = TB ;" >> $@
97         $(H)for i in $(MODULES); do \
98                 $(OCAMLFIND) query helm-$$i -recursive -p-format | \
99                 grep helm | \
100                 sed "s/^helm-/ \"$$i\" -> \"/g" | \
101                 sed "s/$$/\";/g" >> $@ ; \
102         done
103         $(H)mv $@ $@.old ; $(SIMPLIFYDEPS) < $@.old > $@ ; rm $@.old
104         $(H)echo "}" >> $@
105
106 .PHONY: .alldep.dot
107 .alldep.dot:
108         $(H)echo "digraph G {" > $@
109         $(H)echo "   rankdir = TB ;" >> $@
110         $(H)for i in $(MODULES); do \
111                 $(OCAMLFIND) query helm-$$i -recursive -p-format | \
112                         grep -v "pxp-" | \
113                         sed "s/^pxp/pxp[-*]/g" | \
114                         sed "s/^/ \"helm-$$i\" -> \"/g" | \
115                         sed "s/$$/\";/g" >> $@ ; \
116         done
117         $(H)mv $@ $@.old ; \
118                 ./simplify_deps/simplify_deps.opt < $@.old > $@ ; \
119                 rm $@.old
120         $(H)for i in $(MODULES); do \
121                 echo "\"helm-$$i\" [shape=box,style=filled,fillcolor=yellow];"\
122                         >> $@ ; \
123         done
124         $(H)echo "}" >> $@
125
126 .extdep.dot: .dep.dot
127         $(H)STATS/patch_deps.sh $< $@
128 .clustersdep.dot: .dep.dot
129         $(H)USE_CLUSTERS=yes STATS/patch_deps.sh $< $@
130
131 libraries.ps: .dep.dot
132         $(H)dot -Tps -o $@ $<
133 libraries-ext.ps: .extdep.dot
134         $(H)dot -Tps -o $@ $<
135 libraries-clusters.ps: .clustersdep.dot
136         $(H)dot -Tps -o $@ $<
137 libraries-complete.ps: .alldep.dot
138         $(H)dot -Tps -o $@ $<
139
140 ps: libraries.ps libraries-ext.ps libraries-clusters.ps
141
142 tags: TAGS
143 .PHONY: TAGS
144 TAGS:
145         $(H)otags -vi -r .
146
147 metas: $(filter-out METAS/META.helm-binaries, $(METAS))