]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/Makefile.in
better dependencies among modules and symlinking of several matitatools to a single...
[helm.git] / helm / matita / Makefile.in
index c1e1c094e95ea938a6476d348ede3261201b62a6..b1239778ca42248d6889c1d0b192de68f0ffd1fc 100644 (file)
@@ -11,6 +11,7 @@ REQUIRES = @FINDLIB_REQUIRES@
 CREQUIRES = @FINDLIB_CREQUIRES@
 DEPREQUIRES = @FINDLIB_DEPREQUIRES@
 CLEANREQUIRES = @FINDLIB_CLEANREQUIRES@
+MAKEREQUIRES = @FINDLIB_MAKEREQUIRES@
 HAVE_OCAMLOPT = @HAVE_OCAMLOPT@
 
 OCAML_FLAGS = -pp $(CAMLP4O)
@@ -18,6 +19,7 @@ PKGS = -package "$(REQUIRES)"
 CPKGS = -package "$(CREQUIRES)"
 DEPPKGS = -package "$(DEPREQUIRES)"
 CLEANPKGS = -package "$(CLEANREQUIRES)"
+MAKEPKGS = -package "$(MAKEREQUIRES)"
 OCAML_THREADS_FLAGS = -thread
 OCAML_DEBUG_FLAGS = -g
 OCAMLC_FLAGS = $(OCAML_FLAGS) $(OCAML_THREADS_FLAGS)
@@ -26,6 +28,7 @@ OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS)
 OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAML_FLAGS)
 
 STATIC_LINK = dist/static_link/static_link
+# for matita
 STATIC_LIBS =  \
        t1 t1x  \
        gtkmathview_gmetadom mathview mathview_backend_gtk mathview_frontend_gmetadom \
@@ -35,7 +38,13 @@ STATIC_LIBS =        \
        mysqlclient \
        expat \
        $(NULL)
-STATIC_EXTRA_LIBS = -cclib -lt1x -cclib -lstdc++ -cclib -lart_lgpl_2
+STATIC_EXTRA_LIBS = -cclib -lt1x -cclib -lstdc++
+# for matitac & co
+STATIC_CLIBS = \
+       gdome \
+       mysqlclient \
+       $(NULL)
+STATIC_EXTRA_CLIBS =
 
 MATITA_FLAGS =
 NODB=false
@@ -82,12 +91,23 @@ CCMOS =                             \
        matitaEngine.cmo        \
        matitacLib.cmo          \
        $(NULL)
+MAINCMOS =                     \
+       matitadep.cmo           \
+       matitaclean.cmo         \
+       matitamake.cmo          \
+       $(NULL)
+DEPCMOS = $(CCMOS)
 CLEANCMOS = $(CCMOS)
-MAKECMOS = $(CCMOS) 
+MAKECMOS = \
+       buildTimeConf.cmo       \
+       matitaLog.cmo           \
+       matitamakeLib.cmo       \
+       $(NULL)
 PROGRAMS_BYTE = matita matitac cicbrowser matitadep matitaclean matitamake dump_moo
 PROGRAMS = $(PROGRAMS_BYTE) matitatop
 PROGRAMS_OPT = $(patsubst %,%.opt,$(PROGRAMS_BYTE))
 PROGRAMS_STATIC = $(patsubst %,%.static,$(PROGRAMS_OPT))
+PROGRAMS_UPX = $(patsubst %,%.upx,$(PROGRAMS_STATIC))
 
 all: matita.conf.xml $(PROGRAMS) coq.moo
 
@@ -119,6 +139,8 @@ coq.moo.opt: coq.ma matitac.opt
 ifeq ($(HAVE_OCAMLOPT),yes)
 CMXS = $(patsubst %.cmo,%.cmx,$(CMOS))
 CCMXS = $(patsubst %.cmo,%.cmx,$(CCMOS))
+MAINCMXS = $(patsubst %.cmo,%.cmx,$(MAINCMOS))
+DEPCMXS = $(patsubst %.cmo,%.cmx,$(DEPCMOS))
 CLEANCMXS = $(patsubst %.cmo,%.cmx,$(CLEANCMOS))
 MAKECMXS = $(patsubst %.cmo,%.cmx,$(MAKECMOS))
 LIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(REQUIRES))
@@ -133,8 +155,10 @@ MAKELIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format
 MAKELIBX_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "native" -format "%d/%a" $(MAKEREQUIRES))
 opt: $(PROGRAMS_OPT) coq.moo.opt
 static: $(PROGRAMS_STATIC) coq.moo.opt
-       strip *.static
+upx: $(PROGRAMS_UPX) coq.moo.opt
 else
+upx:
+       @echo "Native code compilation is disabled"
 opt:
        @echo "Native code compilation is disabled"
 static:
@@ -149,54 +173,78 @@ matita.opt.static: $(LIBX_DEPS) $(CMXS) matita.ml
        $(STATIC_LINK) $(STATIC_LIBS) -- \
                $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(CMXS) matita.ml \
                $(STATIC_EXTRA_LIBS)
+       strip $@
 
 dump_moo: buildTimeConf.cmo matitaLog.cmo matitaMoo.cmo dump_moo.ml
        $(OCAMLC) $(PKGS) -linkpkg -o $@ $^
 dump_moo.opt: buildTimeConf.cmx matitaLog.cmx matitaMoo.cmx dump_moo.ml
        $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $^
 dump_moo.opt.static: buildTimeConf.cmx matitaLog.cmx matitaMoo.cmx dump_moo.ml
-       $(STATIC_LINK) $(STATIC_LIBS) -- \
+       $(STATIC_LINK) $(STATIC_CLIBS) -- \
                $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $^ \
-               $(STATIC_EXTRA_LIBS)
+               $(STATIC_EXTRA_CLIBS)
+       strip $@
 
-matitac: $(CLIB_DEPS) $(CCMOS) matitac.ml
-       $(OCAMLC) $(CPKGS) -linkpkg -o $@ $(CCMOS) matitac.ml
-matitac.opt: $(CLIBX_DEPS) $(CCMXS) matitac.ml
-       $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) matitac.ml
-matitac.opt.static: $(CLIBX_DEPS) $(CCMXS) matitac.ml
-       $(STATIC_LINK) $(STATIC_LIBS) -- \
-               $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) matitac.ml \
-               $(STATIC_EXTRA_LIBS)
+matitac: $(CLIB_DEPS) $(CCMOS) $(MAINCMOS) matitac.ml
+       $(OCAMLC) $(CPKGS) -linkpkg -o $@ $(CCMOS) $(MAINCMOS) matitac.ml
+matitac.opt: $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) matitac.ml
+       $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml
+matitac.opt.static: $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) matitac.ml
+       $(STATIC_LINK) $(STATIC_CLIBS) -- \
+               $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml \
+               $(STATIC_EXTRA_CLIBS)
+       strip $@
 
 matitatop: matitatop.ml $(CLIB_DEPS) $(CCMOS)
        $(OCAMLC) $(CPKGS) -linkpkg -o $@ toplevellib.cma $(CCMOS) $<
 
-matitadep: matitadep.ml $(DEPLIB_DEPS) $(CCMOS)
-       $(OCAMLC) $(DEPPKGS) -linkpkg -o $@ $(CCMOS) $<
-matitadep.opt: matitadep.ml $(DEPLIB_DEPS) $(CCMXS)
-       $(OCAMLOPT) $(DEPPKGS) -linkpkg -o $@ $(CCMXS) $<
-matitadep.opt.static: matitadep.ml $(DEPLIB_DEPS) $(CCMXS)
-       $(STATIC_LINK) $(STATIC_LIBS) -- \
-               $(OCAMLOPT) $(DEPPKGS) -linkpkg -o $@ $(CCMXS) $< \
-               $(STATIC_EXTRA_LIBS)
+#  matitadep: matitadep.ml $(DEPLIB_DEPS) $(DEPCMOS)
+#          $(OCAMLC) $(DEPPKGS) -linkpkg -o $@ $(DEPCMOS) $<
+#  matitadep.opt: matitadep.ml $(DEPLIB_DEPS) $(DEPCMXS)
+#          $(OCAMLOPT) $(DEPPKGS) -linkpkg -o $@ $(DEPCMXS) $<
+#  matitadep.opt.static: matitadep.ml $(DEPLIB_DEPS) $(DEPCMXS)
+#          $(STATIC_LINK) $(STATIC_CLIBS) -- \
+#                  $(OCAMLOPT) $(DEPPKGS) -linkpkg -o $@ $(DEPCMXS) $< \
+#                  $(STATIC_EXTRA_CLIBS)
+#          strip $@
+matitadep: matitac
+       @test -f $@ || ln -s $< $@
+matitadep.opt: matitac.opt
+       @test -f $@ || ln -s $< $@
+matitadep.opt.static: matitac.opt.static
+       @test -f $@ || ln -s $< $@
 
-matitaclean: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMOS)
-       $(OCAMLC) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMOS) $<
-matitaclean.opt: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMXS)
-       $(OCAMLOPT) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMXS) $<
-matitaclean.opt.static: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMXS)
-       $(STATIC_LINK) $(STATIC_LIBS) -- \
-               $(OCAMLOPT) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMXS) $< \
-               $(STATIC_EXTRA_LIBS)
+#  matitaclean: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMOS)
+#          $(OCAMLC) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMOS) $<
+#  matitaclean.opt: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMXS)
+#          $(OCAMLOPT) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMXS) $<
+#  matitaclean.opt.static: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMXS)
+#          $(STATIC_LINK) $(STATIC_CLIBS) -- \
+#                  $(OCAMLOPT) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMXS) $< \
+#                  $(STATIC_EXTRA_CLIBS)
+#          strip $@
+matitaclean: matitac
+       @test -f $@ || ln -s $< $@
+matitaclean.opt: matitac.opt
+       @test -f $@ || ln -s $< $@
+matitaclean.opt.static: matitac.opt.static
+       @test -f $@ || ln -s $< $@
 
-matitamake: matitamake.ml $(MAKECMOS)
-       $(OCAMLC) $(PKGS) -linkpkg -o $@ $(MAKECMOS) $<
-matitamake.opt: matitamake.ml $(MAKECMXS)
-       $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(MAKECMXS) $<
-matitamake.opt.static: matitamake.ml $(MAKECMXS)
-       $(STATIC_LINK) $(STATIC_LIBS) -- \
-               $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(MAKECMXS) $< \
-               $(STATIC_EXTRA_LIBS)
+#  matitamake: matitamake.ml $(MAKECMOS)
+#          $(OCAMLC) $(MAKEPKGS) -linkpkg -o $@ $(MAKECMOS) $<
+#  matitamake.opt: matitamake.ml $(MAKECMXS)
+#          $(OCAMLOPT) $(MAKEPKGS) -linkpkg -o $@ $(MAKECMXS) $<
+#  matitamake.opt.static: matitamake.ml $(MAKECMXS)
+#          $(STATIC_LINK) $(STATIC_CLIBS) -- \
+#                  $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(MAKECMXS) $< \
+#                  $(STATIC_EXTRA_CLIBS)
+#          strip $@
+matitamake: matitac
+       @test -f $@ || ln -s $< $@
+matitamake.opt: matitac.opt
+       @test -f $@ || ln -s $< $@
+matitamake.opt.static: matitac.opt.static
+       @test -f $@ || ln -s $< $@
        
 cicbrowser: matita
        @test -f $@ || ln -s $< $@
@@ -204,6 +252,8 @@ cicbrowser.opt: matita.opt
        @test -f $@ || ln -s $< $@
 cicbrowser.opt.static: matita.opt.static
        @test -f $@ || ln -s $< $@
+cicbrowser.opt.static.upx: matita.opt.static.upx
+       @test -f $@ || ln -s $< $@
 
 matitaGeneratedGui.ml matitaGeneratedGui.mli: matita.glade
        $(LABLGLADECC) -embed $< > matitaGeneratedGui.ml
@@ -218,11 +268,17 @@ matitaGeneratedGui.ml matitaGeneratedGui.mli: matita.glade
 %.annot: %.ml
        $(OCAMLC) -dtypes $(PKGS) -c $<
 
+%.upx: %
+       cp $< $@
+       strip $@
+       upx $@
+
 clean:
        rm -rf *.cma *.cmo *.cmi *.cmx *.cmxa *.a *.o \
                $(PROGRAMS) \
                $(PROGRAMS_OPT) \
                $(PROGRAMS_STATIC) \
+               $(PROGRAMS_UPX) \
                $(NULL)
 distclean: clean
        rm -f matitaGeneratedGui.ml matitaGeneratedGui.mli