X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2FMakefile;h=fcf51b5d05f46ffc252d9b8eaad6a8c3ddb8d6b1;hb=eadeb433386822aac6862c76ba73957c07a99098;hp=e13b2d657deb13511e840755b47dcd872af9ced8;hpb=2d79bad1521e55c3756532bf992ddb30f767beed;p=helm.git diff --git a/helm/software/matita/Makefile b/helm/software/matita/Makefile index e13b2d657..fcf51b5d0 100644 --- a/helm/software/matita/Makefile +++ b/helm/software/matita/Makefile @@ -5,7 +5,14 @@ include ../Makefile.defs NULL = H=@ -OCAML_FLAGS = -pp $(CAMLP4O) +ifeq ($(ANNOT),true) + ANNOTOPTION = -dtypes +else + ANNOTOPTION = +endif + +OCAML_FLAGS = -pp $(CAMLP5O) -rectypes $(ANNOTOPTION) +OCAMLDEP_FLAGS = -pp $(CAMLP5O) PKGS = -package "$(MATITA_REQUIRES)" CPKGS = -package "$(MATITA_CREQUIRES)" OCAML_THREADS_FLAGS = -thread @@ -15,10 +22,10 @@ OCAML_DEBUG_FLAGS = -g OCAMLC_FLAGS = $(OCAML_FLAGS) $(OCAML_THREADS_FLAGS) OCAMLC = $(OCAMLFIND) ocamlc$(OCAML_PROF) $(OCAMLC_FLAGS) $(OCAML_DEBUG_FLAGS) OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS) $(OCAMLOPT_DEBUG_FLAGS) -OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAML_FLAGS) +OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAMLDEP_FLAGS) INSTALL_PROGRAMS= matita matitac -INSTALL_PROGRAMS_LINKS_MATITA= cicbrowser -INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitamake matitaclean matitaprover matitawiki +INSTALL_PROGRAMS_LINKS_MATITA= +INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitaclean matitawiki MATITA_FLAGS = -noprofile NODB=false @@ -30,48 +37,45 @@ MLI = \ lablGraphviz.mli \ matitaTypes.mli \ matitaMisc.mli \ - matitamakeLib.mli \ - matitaInit.mli \ - matitaExcPp.mli \ - matitaEngine.mli \ applyTransformation.mli \ + matitaEngine.mli \ + matitaExcPp.mli \ matitacLib.mli \ - matitaprover.mli \ + matitaInit.mli \ matitaGtkMisc.mli \ + matitaAutoGui.mli \ + virtuals.mli \ matitaScript.mli \ + predefined_virtuals.mli \ matitaMathView.mli \ matitaGui.mli \ $(NULL) CMLI = \ matitaTypes.mli \ matitaMisc.mli \ - matitamakeLib.mli \ - matitaInit.mli \ - matitaExcPp.mli \ - matitaEngine.mli \ applyTransformation.mli \ + matitaEngine.mli \ + matitaExcPp.mli \ matitacLib.mli \ + matitaInit.mli \ matitaWiki.mli \ - matitaprover.mli \ $(NULL) MAINCMLI = \ matitadep.mli \ matitaclean.mli \ - matitamake.mli \ - gragrep.mli \ $(NULL) # objects for matita (GTK GUI) -ML = buildTimeConf.ml matitaGeneratedGui.ml matitaAutoGui.ml $(MLI:%.mli=%.ml) +ML = buildTimeConf.ml matitaGeneratedGui.ml $(MLI:%.mli=%.ml) # objects for matitac (batch compiler) CML = buildTimeConf.ml $(CMLI:%.mli=%.ml) MAINCML = $(MAINCMLI:%.mli=%.ml) - + PROGRAMS_BYTE = \ - matita matitac cicbrowser matitadep matitaclean \ - matitamake matitaprover matitawiki -PROGRAMS = $(PROGRAMS_BYTE) matitatop + matita matitac matitadep matitaclean \ + matitawiki +PROGRAMS = $(PROGRAMS_BYTE) PROGRAMS_OPT = $(patsubst %,%.opt,$(PROGRAMS_BYTE)) -NOINST_PROGRAMS = dump_moo gragrep +NOINST_PROGRAMS = dump_moo NOINST_PROGRAMS_OPT = $(patsubst %,%.opt,$(EXTRA_PROGRAMS)) .PHONY: all @@ -111,9 +115,9 @@ links: linkonly: $(H)echo " OCAMLC matita.ml" - $(H)$(OCAMLC) $(PKGS) -linkpkg -o matita $(CMOS) matita.ml + $(H)$(OCAMLC) $(PKGS) -linkpkg -o matita $(CMOS) $(OCAML_DEBUG_FLAGS) matita.ml $(H)echo " OCAMLC matitac.ml" - $(H)$(OCAMLC) $(CPKGS) -linkpkg -o matitac $(CCMOS) $(MAINCMOS) matitac.ml + $(H)$(OCAMLC) $(CPKGS) -linkpkg -o matitac $(CCMOS) $(MAINCMOS) $(OCAML_DEBUG_FLAGS) matitac.ml .PHONY: linkonly matita: matita.ml $(LIB_DEPS) $(CMOS) $(H)echo " OCAMLC $<" @@ -136,14 +140,14 @@ matitac.opt: matitac.ml $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) $(H)echo " OCAMLOPT $<" $(H)$(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml -matitatop: matitatop.ml $(CLIB_DEPS) $(CCMOS) +rottener: rottener.ml $(CLIB_DEPS) $(CCMOS) $(MAINCMOS) $(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 $< $@ + $(H)$(OCAMLC) $(CPKGS) -package lablgtk2 -linkpkg -o $@ $(CCMOS) $(MAINCMOS) rottener.ml +rottener.opt: rottener.ml $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) + $(H)echo " OCAMLOPT $<" + $(H)$(OCAMLOPT) $(CPKGS) -package lablgtk2 -linkpkg -o $@ $(CCMXS) $(MAINCMXS) rottener.ml +clean-rottened: + find . -type f -name "*.ma.*.rottened" -exec rm {} \; matitadep: matitac $(H)test -f $@ || ln -s $< $@ @@ -160,21 +164,6 @@ matitaclean: matitac matitaclean.opt: matitac.opt $(H)test -f $@ || ln -s $< $@ -matitamake: matitac - $(H)test -f $@ || ln -s $< $@ -matitamake.opt: matitac.opt - $(H)test -f $@ || ln -s $< $@ - -gragrep: matitac - $(H)test -f $@ || ln -s $< $@ -gragrep.opt: matitac.opt - $(H)test -f $@ || ln -s $< $@ - -cicbrowser: matita - $(H)test -f $@ || ln -s $< $@ -cicbrowser.opt: matita.opt - $(H)test -f $@ || ln -s $< $@ - matitaGeneratedGui.ml: matita.glade $(H)$(LABLGLADECC) -embed $< > matitaGeneratedGui.ml @@ -182,6 +171,7 @@ matitaGeneratedGui.ml: matita.glade clean: $(H)rm -rf *.cma *.cmo *.cmi *.cmx *.cmxa *.a *.o \ $(PROGRAMS) $(PROGRAMS_OPT) \ + rottener rottener.opt \ $(NOINST_PROGRAMS) $(NOINST_PROGRAMS_OPT) \ $(PROGRAMS_STATIC) \ $(PROGRAMS_UPX) \ @@ -197,20 +187,23 @@ distclean: clean $(H)rm -f matita.conf.xml.sample $(H)rm -rf .matita -TEST_DIRS = \ - legacy \ - library \ - tests \ - dama \ - contribs/CoRN \ - contribs/RELATIONAL \ - contribs/LAMBDA-TYPES \ - contribs/PREDICATIVE-TOPOLOGY \ +TEST_DIRS = \ + legacy \ + library \ + contribs/character \ + tests \ + contribs/dama/dama \ + contribs/assembly \ + contribs/CoRN \ + contribs/RELATIONAL \ + contribs/LOGIC \ + contribs/limits \ $(NULL) # library_auto -TEST_DIRS_OPT = \ - $(TEST_DIRS) \ +TEST_DIRS_OPT = \ + $(TEST_DIRS) \ +# contribs/LAMBDA-TYPES \ $(NULL) .PHONY: tests tests.opt cleantests cleantests.opt @@ -233,19 +226,16 @@ cleantests.opt: $(foreach d,$(TEST_DIRS_OPT),$(d)-cleantests-opt) ifeq ($(DISTRIBUTED),yes) -MATITA_CFLAGS = #-nodb - -dist_library: install_preliminaries dist_library@standard-library -dist_library@%: - $(H)echo "MATITAMAKE init $*" - $(H)(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitamake init $* $(WHERE)/ma/$*) - $(H)echo "MATITAMAKE publish $*" - $(H)(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitamake publish $*) - $(H)echo "MATITAMAKE destroy $*" - $(H)(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitamake destroy $*) - # sqlite3 only +dist_library: install_preliminaries + $(H)echo "depend" + $(H)cd $(WHERE)/ma/standard-library;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitadep) + $(H)echo "publish" + $(H)cd $(WHERE)/ma/standard-library;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitac -system -noinnertypes) + $(H)echo "destroy" + $(H)cd $(WHERE)/ma/standard-library;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitaclean) +# sqlite3 only $(H)cp $(WHERE)/.matita/matita.db $(WHERE)/metadata.db || true - #$(H)rm -rf $(WHERE)/.matita/ +#$(H)rm -rf $(WHERE)/.matita/ touch $@ endif @@ -264,7 +254,6 @@ INSTALL_STUFF = \ matita.conf.xml \ closed.xml \ gtkmathview.matita.conf.xml \ - template_makefile.in \ AUTHORS \ LICENSE \ $(NULL) @@ -276,7 +265,7 @@ INSTALL_STUFF_BIN = $(INSTALL_PROGRAMS) endif install-arch: install_preliminaries -install-indep: dist_library +install-indep: install_preliminaries : install_preliminaries.stamp @@ -296,7 +285,8 @@ endif ln -fs matita $(WHERE)/$$p;\ done $(H)cp -a library/ $(WHERE)/ma/standard-library - $(H)cp -a contribs/ $(WHERE)/ma/ + $(H)cp -a nlibrary/ $(WHERE)/ma/new-standard-library + $(H)touch install_preliminaries.stamp uninstall: @@ -358,23 +348,12 @@ 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 - $(H)test -f $@ || ln -s $< $@ -cicbrowser.opt.static.upx: matita.opt.static.upx - $(H)test -f $@ || ln -s $< $@ %.upx: % cp $< $@ @@ -390,7 +369,7 @@ TAGS: $(H)cd ..; otags -vi -r components/ matita/ .PHONY: depend - + depend: $(H)echo " OCAMLDEP" $(H)$(OCAMLDEP) *.ml *.mli > .depend @@ -399,30 +378,40 @@ depend.opt: $(H)$(OCAMLDEP) -native *.ml *.mli > .depend.opt # this should be sligtly better, since should work with 'make all opt' -ifneq (,$(findstring all,$(MAKECMDGOALS))) +MAKECMDGOALS_DELIM=$(addprefix _x_,$(addsuffix _x_,$(MAKECMDGOALS))) +ifneq (,$(findstring _x_all_x_,$(MAKECMDGOALS_DELIM))) # if we 'make all opt' the deps for 'all' should be fine also for opt - # if we 'make opt all' it should not work... + # if we 'make opt all' it should not work... + INCLUDE_MANDATORY=yes TO_INCLUDE+=.depend TO_DEPEND_ON=$(LIB_DEPS) -else ifneq (,$(findstring opt,$(MAKECMDGOALS))) +else ifneq (,$(findstring _x_opt_x_,$(MAKECMDGOALS_DELIM))) + INCLUDE_MANDATORY=yes TO_INCLUDE+=.depend.opt TO_DEPEND_ON=$(LIBX_DEPS) -else ifneq (,$(findstring world,$(MAKECMDGOALS))) +else ifneq (,$(findstring _x_world_x_,$(MAKECMDGOALS_DELIM))) ifeq ($(HAVE_OCAMLOPT),yes) + INCLUDE_MANDATORY=yes TO_INCLUDE+=.depend.opt TO_DEPEND_ON=$(LIBX_DEPS) else + INCLUDE_MANDATORY=yes TO_INCLUDE+=.depend TO_DEPEND_ON=$(LIB_DEPS) endif else TO_INCLUDE+=.depend + INCLUDE_MANDATORY=no TO_DEPEND_ON=$(LIB_DEPS) endif $(MLI:%.mli=%.cmi) $(ML:%.ml=%.cmo) $(ML:%.ml=%.cmx): $(TO_DEPEND_ON) -include $(TO_INCLUDE) +ifeq (no,$(INCLUDE_MANDATORY)) + -include $(TO_INCLUDE) +else + include $(TO_INCLUDE) +endif %.cmi: %.mli $(H)echo " OCAMLC $<"