]> matita.cs.unibo.it Git - helm.git/blob - helm/ocaml/Makefile.in
some makefile work
[helm.git] / helm / ocaml / Makefile.in
1 # Warning: the modules must be in compilation order
2 NULL =
3 MODULES =                       \
4         extlib                  \
5         xml                     \
6         hgdome                  \
7         registry                \
8         hmysql                  \
9         utf8_macros             \
10         thread                  \
11         xmldiff                 \
12         urimanager              \
13         logger                  \
14         getter                  \
15         cic                     \
16         cic_proof_checking      \
17         cic_acic                \
18         acic_content            \
19         content_pres            \
20         grafite                 \
21         metadata                \
22         library                 \
23         cic_unification         \
24         whelp                   \
25         tactics                 \
26         cic_disambiguation      \
27         lexicon                 \
28         grafite_engine          \
29         grafite_parser          \
30         tactics/paramodulation \
31         $(NULL)
32
33 OCAMLFIND_DEST_DIR = @OCAMLFIND_DEST_DIR@
34 OCAMLPATH = @OCAMLFIND_META_DIR@
35 OCAMLFIND = OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH @OCAMLFIND@
36
37 METAS = $(filter-out %/paramodulation,$(MODULES:%=METAS/META.helm-%))
38
39 all: metas $(MODULES:%=%.all) 
40 opt: metas $(MODULES:%=%.opt)
41 world: all opt
42 metas: $(METAS)
43 depend: $(MODULES:%=%.depend)
44 install: $(MODULES:%=%.install)
45 uninstall: $(MODULES:%=%.uninstall)
46 clean: $(MODULES:%=%.clean)
47
48 .stats: $(MODULES:%=%.stats)
49         (for m in $(MODULES); do echo -n "$$m:"; cat $$m/.stats; done) \
50          | sort -t : -k 2 -n -r > .stats
51
52 clean_metas:
53         rm -f $(METAS)
54 distclean: clean clean_metas
55         rm -f Makefile Makefile.common configure config.log config.cache config.status
56
57 .PHONY: all opt world metas depend install uninstall clean clean_metas distclean
58
59 %.all:
60         @echo building module: $*
61         @OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* all --no-print-directory
62 %.opt:
63         @echo building module: $*
64         @OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* opt --no-print-directory
65 %.clean:
66         @echo cleaning module: $*
67         @OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* clean --no-print-directory
68 %.depend:
69         @echo calculating dependencies for module: $*
70         @OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* depend --no-print-directory
71 %.stats:
72         @echo generating stats for module: $*
73         @$(MAKE) -C $* .stats
74
75 $(MODULES:%=%.install):
76         cd $(@:%.install=%) && make install
77         export TARGET=$(OCAMLFIND_META_DIR)/$(@:%.install=META.helm-%) ; \
78         cp METAS/$(@:%.install=meta.helm-%.src) $$TARGET && \
79         echo "directory=\"$(OCAMLFIND_DEST_DIR)/$(@:%.install=%)\"" >> $$TARGET
80 $(MODULES:%=%.uninstall):
81         cd $(@:%.uninstall=%) && make uninstall
82         rm -f $(OCAMLFIND_META_DIR)/$(@:%.uninstall=META.helm-%)
83 METAS/META.helm-%: METAS/meta.helm-%.src
84         cp $< $@ && echo "directory=\"$(shell pwd)/$*\"" >> $@
85
86 .PHONY: .dep.dot
87 .dep.dot:
88         echo "digraph G {" > $@
89         echo "   rankdir = TB ;" >> $@
90         for i in $(MODULES); do $(OCAMLFIND) query helm-$$i -recursive -p-format | grep helm | sed "s/^helm-/ \"$$i\" -> \"/g" | sed "s/$$/\";/g" >> $@ ; done
91         mv $@ $@.old ; ./simplify_deps/simplify_deps.opt < $@.old > $@ ; rm $@.old
92         echo "}" >> $@
93
94 .PHONY: .alldep.dot
95 .alldep.dot:
96         echo "digraph G {" > $@
97         echo "   rankdir = TB ;" >> $@
98         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
99         mv $@ $@.old ; ./simplify_deps/simplify_deps.opt < $@.old > $@ ; rm $@.old
100         for i in $(MODULES); do echo "\"helm-$$i\" [shape=box,style=filled,fillcolor=yellow];" >> $@ ; done
101         echo "}" >> $@
102
103 .extdep.dot: .dep.dot
104         ./patch_deps.sh $< $@
105 .clustersdep.dot: .dep.dot
106         USE_CLUSTERS=yes ./patch_deps.sh $< $@
107
108 libraries.ps: .dep.dot
109         dot -Tps -o $@ $<
110 libraries-ext.ps: .extdep.dot
111         dot -Tps -o $@ $<
112 libraries-clusters.ps: .clustersdep.dot
113         dot -Tps -o $@ $<
114 libraries-complete.ps: .alldep.dot
115         dot -Tps -o $@ $<
116
117 ps: libraries.ps libraries-ext.ps libraries-clusters.ps
118
119 tags: TAGS
120 .PHONY: TAGS
121 TAGS:
122         otags -vi -r .
123