# Warning: the modules must be in compilation order
-MODULES = xml urimanager getter pxp cic cic_annotations cic_annotations_cache \
- cic_cache cic_proof_checking cic_textual_parser \
- cic_textual_parser2 \
- tex_cic_textual_parser cic_unification mathql mathql_generator \
- mathql_interpreter cic_omdoc tactics cic_transformations
+NULL =
+MODULES = \
+ xml \
+ registry \
+ utf8_macros \
+ thread \
+ xmldiff \
+ urimanager \
+ logger \
+ getter \
+ cic \
+ cic_proof_checking \
+ cic_unification \
+ cic_omdoc \
+ metadata \
+ tactics \
+ cic_transformations \
+ cic_notation \
+ cic_textual_parser2 \
+ $(NULL)
OCAMLFIND_DEST_DIR = @OCAMLFIND_DEST_DIR@
-OCAMLFIND_META_DIR = @OCAMLFIND_META_DIR@
+OCAMLPATH = @OCAMLFIND_META_DIR@
METAS = $(MODULES:%=METAS/META.helm-%)
-CWD=`pwd`
all: metas $(MODULES:%=%.all)
opt: metas $(MODULES:%=%.opt)
+world: all opt
metas: $(METAS)
depend: $(MODULES:%=%.depend)
install: $(MODULES:%=%.install)
uninstall: $(MODULES:%=%.uninstall)
-clean: $(MODULES:%=%.clean) clean_metas
+clean: $(MODULES:%=%.clean)
clean_metas:
rm -f $(METAS)
-
-dist-clean: clean
+distclean: clean clean_metas
rm -f Makefile Makefile.common configure config.log config.cache config.status
-$(MODULES:%=%.all):
- export OCAMLPATH=$(CWD):$$OCAMLPATH ; cd $(@:%.all=%) && make all
-$(MODULES:%=%.opt):
- export OCAMLPATH=$(CWD):$$OCAMLPATH ; cd $(@:%.opt=%) && make opt
-$(MODULES:%=%.depend):
- export OCAMLPATH=$(CWD):$$OCAMLPATH ; cd $(@:%.depend=%) && make depend
+.PHONY: all opt world metas depend install uninstall clean clean_metas distclean
+
+%.all:
+ OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* all
+%.opt:
+ OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* opt
+%.clean:
+ OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* clean
+%.depend:
+ OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH $(MAKE) -C $* depend
+
$(MODULES:%=%.install):
cd $(@:%.install=%) && make install
export TARGET=$(OCAMLFIND_META_DIR)/$(@:%.install=META.helm-%) ; \
- cp $(@:%.install=META.helm-%.src) $$TARGET && \
+ cp METAS/$(@:%.install=meta.helm-%.src) $$TARGET && \
echo "directory=\"$(OCAMLFIND_DEST_DIR)/$(@:%.install=%)\"" >> $$TARGET
$(MODULES:%=%.uninstall):
cd $(@:%.uninstall=%) && make uninstall
rm -f $(OCAMLFIND_META_DIR)/$(@:%.uninstall=META.helm-%)
-$(MODULES:%=%.clean):
- cd $(@:%.clean=%) && make clean
-METAS/META.helm-%: METAS/META.helm-%.src
- cp $< $@ && echo "directory=\"$(CWD)/$*\"" >> $@
+METAS/META.helm-%: METAS/meta.helm-%.src
+ cp $< $@ && echo "directory=\"$(shell pwd)/$*\"" >> $@
.PHONY: .dep.dot
.dep.dot:
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
+ 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
+ echo "}" >> $@
+
+.PHONY: .alldep.dot
+.alldep.dot:
+ echo "digraph G {" > $@
+ echo " rankdir = TB ;" >> $@
+ 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
mv $@ $@.old ; ./simplify_deps/simplify_deps.opt < $@.old > $@ ; rm $@.old
+ for i in $(MODULES); do echo "\"helm-$$i\" [shape=box,style=filled,fillcolor=yellow];" >> $@ ; done
echo "}" >> $@
libraries.ps: .dep.dot
dot -Tps -o $@ $<
+
+libraries-complete.ps: .alldep.dot
+ dot -Tps -o $@ $<
+
+tags: TAGS
+.PHONY: TAGS
+TAGS:
+ otags -vi -r .
+