X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=helm%2Fsoftware%2Fhelena%2FMakefile.common;h=dee058728411894ab75e61305863e3b766b2a72b;hp=1db6ea34085d002b29f9bdfcbfb1852ee5cdb71c;hb=88977b2d546e547e23b046792fe2ad8f6ff192a4;hpb=fdb80b08af83b86759833142456ce3c4f84cd80e diff --git a/helm/software/helena/Makefile.common b/helm/software/helena/Makefile.common index 1db6ea340..dee058728 100644 --- a/helm/software/helena/Makefile.common +++ b/helm/software/helena/Makefile.common @@ -1,125 +1,58 @@ 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