]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/Makefile
make target for cleaning rottened files
[helm.git] / helm / software / matita / Makefile
index 395ede8758f370652694f1ed18f482c1143b8710..97a34f70dde5ccdbb24805202f2521ae73ff5e5c 100644 (file)
@@ -5,15 +5,18 @@ include ../Makefile.defs
 NULL =
 H=@
 
-OCAML_FLAGS = -pp $(CAMLP4O)
+OCAML_FLAGS = -pp $(CAMLP5O) -rectypes
+OCAMLDEP_FLAGS = -pp $(CAMLP5O) 
 PKGS = -package "$(MATITA_REQUIRES)"
 CPKGS = -package "$(MATITA_CREQUIRES)"
 OCAML_THREADS_FLAGS = -thread
 OCAML_DEBUG_FLAGS = -g
+#OCAML_PROF=p -p a
+#OCAMLOPT_DEBUG_FLAGS = -p
 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)
+OCAMLC = $(OCAMLFIND) ocamlc$(OCAML_PROF) $(OCAMLC_FLAGS) $(OCAML_DEBUG_FLAGS)
+OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS) $(OCAMLOPT_DEBUG_FLAGS)
+OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAMLDEP_FLAGS)
 INSTALL_PROGRAMS= matita matitac
 INSTALL_PROGRAMS_LINKS_MATITA= cicbrowser 
 INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitamake matitaclean matitaprover matitawiki
@@ -29,24 +32,24 @@ MLI = \
        matitaTypes.mli         \
        matitaMisc.mli          \
        matitamakeLib.mli       \
-       matitaInit.mli          \
        matitaExcPp.mli         \
+       matitaInit.mli          \
        matitaEngine.mli        \
        applyTransformation.mli \
+       matitaAutoGui.mli       \
        matitacLib.mli          \
        matitaprover.mli        \
        matitaGtkMisc.mli       \
        matitaScript.mli        \
        matitaMathView.mli      \
        matitaGui.mli           \
-       matitaAutoGui.cmo               \
        $(NULL)
 CMLI =                         \
        matitaTypes.mli         \
        matitaMisc.mli          \
        matitamakeLib.mli       \
-       matitaInit.mli          \
        matitaExcPp.mli         \
+       matitaInit.mli          \
        matitaEngine.mli        \
        applyTransformation.mli \
        matitacLib.mli          \
@@ -82,7 +85,7 @@ MAINCMOS = $(MAINCML:%.ml=%.cmo)
 CMXS = $(patsubst %.cmo,%.cmx,$(CMOS))
 CCMXS = $(patsubst %.cmo,%.cmx,$(CCMOS))
 MAINCMXS = $(patsubst %.cmo,%.cmx,$(MAINCMOS))
-$(CMOS): $(LIB_DEPS)
+$(CMOS) : $(LIB_DEPS)
 $(CMXOS): $(LIBX_DEPS)
 
 LIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(MATITA_REQUIRES))
@@ -135,6 +138,15 @@ matitac.opt: matitac.ml $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS)
        $(H)echo "  OCAMLOPT $<"
        $(H)$(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml
 
+rottener: rottener.ml $(CLIB_DEPS) $(CCMOS) $(MAINCMOS)
+       $(H)echo "  OCAMLC $<"
+       $(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 "*.rottened.*.ma" -exec rm {} \;
+
 matitatop: matitatop.ml $(CLIB_DEPS) $(CCMOS)
        $(H)echo "  OCAMLC $<"
        $(H)$(OCAMLC) $(CPKGS) -linkpkg -o $@ toplevellib.cma $(CCMOS) $<
@@ -181,6 +193,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) \
@@ -203,6 +216,7 @@ TEST_DIRS =                                 \
        dama                            \
        contribs/CoRN                   \
        contribs/RELATIONAL             \
+       contribs/LOGIC                  \
        contribs/LAMBDA-TYPES           \
        contribs/PREDICATIVE-TOPOLOGY   \
        $(NULL)
@@ -232,8 +246,6 @@ 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 $*"
@@ -295,7 +307,7 @@ endif
                ln -fs matita $(WHERE)/$$p;\
        done
        $(H)cp -a library/ $(WHERE)/ma/standard-library
-       $(H)cp -a contribs/ $(WHERE)/ma/
+       #$(H)cp -a contribs/ $(WHERE)/ma/
        $(H)touch install_preliminaries.stamp
 
 uninstall:
@@ -392,25 +404,45 @@ TAGS:
        
 depend: 
        $(H)echo "  OCAMLDEP"
-       $(H)$(OCAMLDEP)  > .depend
+       $(H)$(OCAMLDEP) *.ml *.mli > .depend
 depend.opt: 
        $(H)echo "  OCAMLDEP -native"
        $(H)$(OCAMLDEP) -native *.ml *.mli > .depend.opt
 
-ifeq ($(MAKECMDGOALS),)
-  include .depend   
-endif
-
-ifeq ($(MAKECMDGOALS), all)
-  include .depend   
+# this should be sligtly better, since should work with 'make all opt'
+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...
+  INCLUDE_MANDATORY=yes
+  TO_INCLUDE+=.depend
+  TO_DEPEND_ON=$(LIB_DEPS)
+else ifneq (,$(findstring _x_opt_x_,$(MAKECMDGOALS_DELIM)))
+  INCLUDE_MANDATORY=yes
+  TO_INCLUDE+=.depend.opt
+  TO_DEPEND_ON=$(LIBX_DEPS)
+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
 
-ifeq ($(MAKECMDGOALS), opt)
-  include .depend.opt   
-endif
+$(MLI:%.mli=%.cmi) $(ML:%.ml=%.cmo) $(ML:%.ml=%.cmx): $(TO_DEPEND_ON)
 
-ifeq ($(MAKECMDGOALS), world)
-  include .depend.opt   
+ifeq (no,$(INCLUDE_MANDATORY))
+  -include $(TO_INCLUDE)
+else
+  include $(TO_INCLUDE)
 endif
 
 %.cmi: %.mli