]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/Makefile
some improvements
[helm.git] / helm / software / matita / Makefile
index 7c54333cd5c8f4757950914f7f31cf7c124f3fa2..6f62f254652c8ed9a7b1515d920e1deb896af131 100644 (file)
@@ -14,6 +14,9 @@ OCAMLC_FLAGS = $(OCAML_FLAGS) $(OCAML_THREADS_FLAGS)
 OCAMLC = $(OCAMLFIND) ocamlc $(OCAMLC_FLAGS) $(OCAML_DEBUG_FLAGS)
 OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS)
 OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAML_FLAGS)
+INSTALL_PROGRAMS= matita matitac
+INSTALL_PROGRAMS_LINKS_MATITA= cicbrowser 
+INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitamake matitaclean matitaprover matitawiki
 
 MATITA_FLAGS = -noprofile
 NODB=false
@@ -24,17 +27,19 @@ endif
 # objects for matita (GTK GUI)
 CMOS =                         \
        buildTimeConf.cmo       \
+       lablGraphviz.cmo        \
        matitaTypes.cmo         \
        matitaMisc.cmo          \
        matitamakeLib.cmo       \
        matitaInit.cmo          \
        matitaExcPp.cmo         \
        matitaEngine.cmo        \
+       applyTransformation.cmo \
        matitacLib.cmo          \
+       matitaprover.cmo        \
+       matitaGtkMisc.cmo       \
        matitaScript.cmo        \
        matitaGeneratedGui.cmo  \
-       matitaGtkMisc.cmo       \
-       applyTransformation.cmo \
        matitaMathView.cmo      \
        matitaGui.cmo           \
        $(NULL)
@@ -47,7 +52,10 @@ CCMOS =                              \
        matitaInit.cmo          \
        matitaExcPp.cmo         \
        matitaEngine.cmo        \
+       applyTransformation.cmo \
        matitacLib.cmo          \
+       matitaWiki.cmo          \
+       matitaprover.cmo        \
        $(NULL)
 MAINCMOS =                     \
        matitadep.cmo           \
@@ -56,7 +64,7 @@ MAINCMOS =                    \
        gragrep.cmo             \
        $(NULL)
 PROGRAMS_BYTE = \
-       matita matitac cicbrowser matitadep matitaclean matitamake
+       matita matitac cicbrowser matitadep matitaclean matitamake matitaprover matitawiki
 PROGRAMS = $(PROGRAMS_BYTE) matitatop
 PROGRAMS_OPT = $(patsubst %,%.opt,$(PROGRAMS_BYTE))
 NOINST_PROGRAMS = dump_moo gragrep
@@ -96,11 +104,26 @@ upx: $(PROGRAMS_UPX)
 .PHONY: opt upx
 
 ifeq ($(HAVE_OCAMLOPT),yes)
-world: depend.opt opt
+world: depend.opt opt links
 else
 world: depend all
 endif
 
+#links %.opt -> %
+links:
+       $(H)for X in $(INSTALL_PROGRAMS_LINKS_MATITAC) \
+                       $(INSTALL_PROGRAMS_LINKS_MATITA); do\
+               ln -sf $$X.opt $$X;\
+       done
+       $(H)ln -sf matita.opt matita
+       $(H)ln -sf matitac.opt matitac
+
+linkonly:
+       $(H)echo "  OCAMLC matita.ml"
+       $(H)$(OCAMLC) $(PKGS) -linkpkg -o matita $(CMOS) matita.ml
+       $(H)echo "  OCAMLC matitac.ml"
+       $(H)$(OCAMLC) $(CPKGS) -linkpkg -o matitac $(CCMOS) $(MAINCMOS) matitac.ml
+.PHONY: linkonly
 matita: matita.ml $(LIB_DEPS) $(CMOS)
        $(H)echo "  OCAMLC $<"
        $(H)$(OCAMLC) $(PKGS) -linkpkg -o $@ $(CMOS) matita.ml
@@ -126,11 +149,21 @@ matitatop: matitatop.ml $(CLIB_DEPS) $(CCMOS)
        $(H)echo "  OCAMLC $<"
        $(H)$(OCAMLC) $(CPKGS) -linkpkg -o $@ toplevellib.cma $(CCMOS) $<
 
+matitaprover: matitac
+       $(H)test -f $@ || ln -s $< $@
+matitaprover.opt: matitac.opt
+       $(H)test -f $@ || ln -s $< $@
+
 matitadep: matitac
        $(H)test -f $@ || ln -s $< $@
 matitadep.opt: matitac.opt
        $(H)test -f $@ || ln -s $< $@
 
+matitawiki: matitac
+       $(H)test -f $@ || ln -s $< $@
+matitawiki.opt: matitac.opt
+       $(H)test -f $@ || ln -s $< $@
+
 matitaclean: matitac
        $(H)test -f $@ || ln -s $< $@
 matitaclean.opt: matitac.opt
@@ -153,6 +186,7 @@ cicbrowser.opt: matita.opt
 
 matitaGeneratedGui.ml matitaGeneratedGui.mli: matita.glade
        $(H)$(LABLGLADECC) -embed $< > matitaGeneratedGui.ml
+       $(H)rm -f matitaGeneratedGui.mli
        $(H)#$(OCAMLC) $(PKGS) -i matitaGeneratedGui.ml > matitaGeneratedGui.mli
 
 .PHONY: clean
@@ -174,9 +208,13 @@ distclean: clean
        $(H)rm -rf .matita
 
 TEST_DIRS =                            \
+       legacy                          \
        library                         \
+       library_auto                    \
        tests                           \
-       tests/bad_tests                 \
+       dama                            \
+       contribs/CoRN                   \
+       contribs/RELATIONAL             \
        contribs/LAMBDA-TYPES           \
        contribs/PREDICATIVE-TOPOLOGY   \
        $(NULL)
@@ -212,6 +250,9 @@ dist_library@%:
 
 endif
 
+dist_pre: matitaGeneratedGui.ml matitaGeneratedGui.mli
+       $(MAKE) -C dist/ dist_pre
+
 DESTDIR = $(RT_BASE_DIR)
 INSTALL_STUFF =                        \
        icons/                          \
@@ -228,9 +269,6 @@ INSTALL_STUFF =                     \
        LICENSE                         \
        $(NULL)
 
-INSTALL_PROGRAMS= matita matitac
-INSTALL_PROGRAMS_LINKS_MATITA= cicbrowser 
-INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitamake matitaclean
 ifeq ($(HAVE_OCAMLOPT),yes)
 INSTALL_STUFF_BIN = $(INSTALL_PROGRAMS:%=%.opt) 
 else
@@ -279,6 +317,14 @@ STATIC_CLIBS = \
        gdome \
        mysqlclient \
        $(NULL)
+STATIC_CLIBS_PROVER = \
+        $(STATIC_CLIBS) \
+       z \
+       pcre \
+       expat \
+       xml2 \
+       glib-2.0 \
+       $(NULL)
 STATIC_EXTRA_CLIBS =
 PROGRAMS_STATIC = $(patsubst %,%.static,$(PROGRAMS_OPT))
 PROGRAMS_UPX = $(patsubst %,%.upx,$(PROGRAMS_STATIC))
@@ -310,10 +356,17 @@ matitac.opt.static: $(STATIC_LINK) $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) matitac.ml
                $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml \
                $(STATIC_EXTRA_CLIBS)
        strip $@
+matitaprover.opt.static: $(STATIC_LINK) $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) matitac.ml
+       $(STATIC_LINK) $(STATIC_CLIBS_PROVER) -- \
+               $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml \
+               $(STATIC_EXTRA_CLIBS);
+       strip $@
 matitadep.opt.static: matitac.opt.static
        $(H)test -f $@ || ln -s $< $@
 matitaclean.opt.static: matitac.opt.static
        $(H)test -f $@ || ln -s $< $@
+matitawiki.opt.static: matitac.opt.static
+       $(H)test -f $@ || ln -s $< $@
 matitamake.opt.static: matitac.opt.static
        $(H)test -f $@ || ln -s $< $@
 cicbrowser.opt.static: matita.opt.static
@@ -342,12 +395,18 @@ depend:
        $(H)$(OCAMLDEP) *.ml *.mli > .depend
 depend.opt:
        $(H)echo "  OCAMLDEP -native"
-       $(H)$(OCAMLDEP) -native *.ml *.mli > .depend
+       $(H)$(OCAMLDEP) -native *.ml *.mli > .depend.opt
+
+ifeq ($(MAKECMDGOALS),)
+  include .depend   
+endif
 
-ifneq ($(MAKECMDGOALS), depend)
- ifneq ($(MAKECMDGOALS), depend.opt)
-   include .depend   
- endif
+ifeq ($(MAKECMDGOALS), all)
+  include .depend   
+endif
+
+ifeq ($(MAKECMDGOALS), opt)
+  include .depend.opt   
 endif
 
 %.cmi: %.mli
@@ -366,6 +425,11 @@ endif
 $(CMOS): $(LIB_DEPS)
 $(CMOS:%.cmo=%.cmx): $(LIBX_DEPS)
 
+deps.ps: deps.dot
+       dot -Tps -o $@ $<
+deps.dot: .depend
+       ./dep2dot.rb < $< | tred > $@
+
 ifeq ($(MAKECMDGOALS),all)
    $(CMOS:%.cmo=%.cmi): $(LIB_DEPS)
 endif