]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/helena/Makefile.common
update in helena
[helm.git] / helm / software / helena / Makefile.common
index 1db6ea34085d002b29f9bdfcbfb1852ee5cdb71c..dee058728411894ab75e61305863e3b766b2a72b 100644 (file)
 H=@
-OCAMLPATH ?= /home/fguidi/svn/matita_patched/components/METAS
-OCAMLFIND = OCAMLPATH=$(OCAMLPATH) ocamlfind
-
-RELISE = $(MAIN:%=%_$(shell cat MakeVersion))
-
-DOWNDIR = ../../www/lambdadelta/download
-
-DIRECTORIES = $(addprefix $(SRC)/,$(shell cat $(SRC)/Make))
-
-INCLUDES = $(DIRECTORIES:%=-I %) 
-
-CAMLP = -pp "camlp5o pa_macro.cmo $(CAMLPOPTIONS)"
-
-CAMLPOPTIONS = $(F:%=-D%)
-
-OCAMLDEP  = $(OCAMLFIND) ocamldep $(CAMLP) $(INCLUDES)
-OCAMLOPT  = $(OCAMLFIND) ocamlopt $(CAMLP) $(OCAMLOPTIONS) -linkpkg -package "$(REQUIRES)" $(INCLUDES)
-OCAMLC    = $(OCAMLFIND) ocamlc $(CAMLP) $(OCAMLOPTIONS) -linkpkg -package "$(REQUIRES)" $(INCLUDES)
-OCAMLLEX  = ocamllex.opt
-OCAMLYACC = ocamlyacc -v
-TAR       = tar -czf etc/$(MAIN:%=%.tgz)
-
 CALLMAKE = $(MAKE) --no-print-directory
 
-define DIR_TEMPLATE
-   MODULES += $$(addprefix $(1)/,$$(shell cat $(1)/Make))
-endef
-
-define MOD_TEMPLATE
-   SOURCES += $$(if $$(wildcard $(1).ml[yi]),$(1).mli $(1).ml,$(1).ml)  
-   CMXS    += $(1).cmx
-   CMOS    += $(1).cmo
-   CLEAN   += $(1).cmi $(1).cmx $(1).o $(1).cmo
-   CLEAN   += $$(if $$(wildcard $(1).ml[ly]),$(1).ml,)
-   CLEAN   += $$(if $$(wildcard $(1).mly),$(1).mli $(1).output,)
-   KEEP    += $$(if $$(wildcard $(1).mly),$(1).mly,\
-               $$(if $$(wildcard $(1).mll),$(1).mll,\
-               $$(if $$(wildcard $(1).mli),$(1).mli $(1).ml,$(1).ml)\
-               )\
-             )
-endef
-
-define INCLUDE_O_TEMPLATE
-   ifeq ($(MAKECMDGOALS), $(1))
-%.cmi: %.mli
-       @echo "  OCAMLOPT $$<"
-       $$(H)$(OCAMLOPT) -c $$<
-
-include .depend.opt
-   endif
-endef
-
-define INCLUDE_B_TEMPLATE
-   ifeq ($(MAKECMDGOALS), $(1))
-%.cmi: %.mli
-       @echo "  OCAMLC $$<"
-       $$(H)$(OCAMLC) -c $$<
-
-include .depend.byte
-   endif
-endef
+OCAMLPATH ?= `readlink -f -n ./matita/components/METAS`
+OCAMLFIND = OCAMLPATH=$(OCAMLPATH) ocamlfind
 
-$(foreach DIR, $(DIRECTORIES), $(eval $(call DIR_TEMPLATE, $(DIR))))
-$(foreach MOD, $(MODULES), $(eval $(call MOD_TEMPLATE, $(MOD))))
-O_OBJECTS = $(patsubst %.ml,%.cmx,$(SOURCES:%.mli=%.cmi))
-B_OBJECTS = $(patsubst %.ml,%.cmo,$(SOURCES:%.mli=%.cmi))
+CAMLP = -pp \"camlp5o pa_macro.cmo $(CAMLPOPTIONS)\"
 
-CLEAN += $(MAIN).opt
+OCAMLDEP  = $(OCAMLFIND) ocamldep $(CAMLP)
+OCAMLOPT  = $(OCAMLFIND) ocamlopt $(CAMLP) $(OCAMLOPTIONS) -linkpkg -package \"$(REQUIRES)\"
+OCAMLC    = $(OCAMLFIND) ocamlc $(CAMLP) $(OCAMLOPTIONS) -linkpkg -package \"$(REQUIRES)\"
+OCAMLYACC = ocamlyacc -v
+OCAMLLEX  = ocamllex.opt
 
-$(MAIN).opt: $(O_OBJECTS)
-       @echo "  OCAMLOPT -o $(MAIN).opt"
-       $(H)$(OCAMLOPT) -o $(MAIN).opt $(CMXS)
+BUILDCMDS = -ocamldep "$(OCAMLDEP)" \
+            -ocamlc "$(OCAMLC)" \
+            -ocamlopt "$(OCAMLOPT)" \
+            -ocamlyacc "$(OCAMLYACC)" \
+            -ocamllex "$(OCAMLLEX)"
 
-$(MAIN).byte: $(B_OBJECTS)
-       @echo "  OCAMLC -o $(MAIN).byte"
-       $(H)$(OCAMLC) -o $(MAIN).byte $(CMOS)
+all: opt byte
 
-.depend.opt: $(SOURCES) 
-       @echo "  OCAMLDEP -native"
-       $(H)$(OCAMLDEP) -native $^ > .depend.opt
+opt:
+       @echo "  OCAMLBUILD $(EXEC).native"
+       $(H)ocamlbuild $(BUILDCMDS) $(BUILDOPTIONS) $(EXEC).native 
 
-.depend.byte: $(SOURCES) 
-       @echo "  OCAMLDEP -byte"
-       $(H)$(OCAMLDEP) $^ > .depend.byte
+byte:
+       @echo "  OCAMLBUILD $(EXEC).byte"
+       $(H)ocamlbuild $(BUILDCMDS) $(BUILDOPTIONS) $(EXEC).byte 
 
 clean:
-       @echo "  CLEAN . $(SRC)"
+       @echo "  OCAMLBUILD -clean"
+#      $(H)ocamlbuild -clean
+       $(H)$(RM) -r _build $(EXEC).native $(EXEC).byte
        $(H)find -name "*~" | xargs $(RM) $(CLEAN)
 
-relise: clean
-       @echo "  RELISE $(RELISE)"
-       $(H)mkdir -p $(RELISE)
-       $(H)$(foreach FILE, $(shell cat Make), cp --parents $(FILE) $(RELISE);)
-       $(H)tar -czf etc/$(RELISE).tar.gz $(RELISE)
-       $(H)scp etc/$(RELISE).tar.gz $(DOWNDIR)
-
-tgz: clean
-       @echo "  TAR -czf $(MAIN:%=%.tgz) . $(DIRECTORIES)" 
-       $(H)find -name "Make*" | xargs $(TAR) $(KEEP)
-
-etc:
-       @echo "  MKDIR etc"
-       $(H)mkdir etc
-
-%.ml %.mli: %.mly
-       @echo "  OCAMLYACC $<"
-       $(H)$(OCAMLYACC) $<
-%.ml: %.mll
-       @echo "  OCAMLLEX $<"
-       $(H)$(OCAMLLEX) $<
-%.cmx: %.ml
-       @echo "  OCAMLOPT $<"
-       $(H)$(OCAMLOPT) -c $<
-%.cmo: %.ml
-       @echo "  OCAMLC $<"
-       $(H)$(OCAMLC) -c $<
-
-O_TAGS += opt $(MAIN).opt
-
-B_TAGS += byte $(MAIN).byte
-
-$(foreach TAG, $(O_TAGS), $(eval $(call INCLUDE_O_TEMPLATE, $(TAG))))
-
-$(foreach TAG, $(B_TAGS), $(eval $(call INCLUDE_B_TEMPLATE, $(TAG))))
+.PHONY: all opt byte clean $(TARGETS)
+
+#RELISE = $(EXEC:%=%_$(shell cat MakeVersion))
+#
+#DOWNDIR = ../../www/lambdadelta/download
+#
+#TAR       = tar -czf etc/$(EXEC:%=%.tgz)
+#
+#relise: clean
+#      @echo "  RELISE $(RELISE)"
+#      $(H)mkdir -p $(RELISE)
+#      $(H)$(foreach FILE, $(shell cat Make), cp --parents $(FILE) $(RELISE);)
+#      $(H)tar -czf etc/$(RELISE).tar.gz $(RELISE)
+#      $(H)scp etc/$(RELISE).tar.gz $(DOWNDIR)
+#
+#tgz: clean
+#      @echo "  TAR -czf $(EXEC:%=%.tgz) . $(DIRECTORIES)" 
+#      $(H)find -name "Make*" | xargs $(TAR) $(KEEP)
+#
+#etc:
+#      @echo "  MKDIR etc"
+#      $(H)mkdir -p etc