X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fhelena%2FMakefile.common;h=1db6ea34085d002b29f9bdfcbfb1852ee5cdb71c;hb=4e75ab41fb7a0a9a4f66cb777a791ce3950c57ce;hp=00c54f873111c09dc7c6ceaef110b7660dee0c44;hpb=354731c43c5d5b8d050564025e26fdc3bc85acb9;p=helm.git diff --git a/helm/software/helena/Makefile.common b/helm/software/helena/Makefile.common index 00c54f873..1db6ea340 100644 --- a/helm/software/helena/Makefile.common +++ b/helm/software/helena/Makefile.common @@ -1,30 +1,28 @@ H=@ -ifeq ($(origin OCAMLPATH), undefined) - OCAMLFIND = OCAMLPATH=$(HOME)/svn/helm-stable/software/components/METAS ocamlfind -else - OCAMLFIND = ocamlfind -endif +OCAMLPATH ?= /home/fguidi/svn/matita_patched/components/METAS +OCAMLFIND = OCAMLPATH=$(OCAMLPATH) ocamlfind RELISE = $(MAIN:%=%_$(shell cat MakeVersion)) -LDDLURL = http://lambda-delta.info/static/lddl -LDDLDIR = mowgli:/projects/helm/public_html/lambda-delta/static/lddl -DOWNDIR = $(HOME)/svn/helm-stable/www/lambda_delta/download -XMLDIR = mowgli:/projects/helm/public_html/lambda_delta/xml -LOCALLDDLDIR = $(HOME)/public_html/lddl +DOWNDIR = ../../www/lambdadelta/download DIRECTORIES = $(addprefix $(SRC)/,$(shell cat $(SRC)/Make)) INCLUDES = $(DIRECTORIES:%=-I %) -OCAMLDEP = $(OCAMLFIND) ocamldep -native $(INCLUDES) -OCAMLOPT = $(OCAMLFIND) opt $(OCAMLOPTIONS) -linkpkg -package "$(REQUIRES)" $(INCLUDES) +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 -XMLLINT = xmllint --noout -XSLT = xsltproc TAR = tar -czf etc/$(MAIN:%=%.tgz) +CALLMAKE = $(MAKE) --no-print-directory + define DIR_TEMPLATE MODULES += $$(addprefix $(1)/,$$(shell cat $(1)/Make)) endef @@ -32,7 +30,8 @@ endef define MOD_TEMPLATE SOURCES += $$(if $$(wildcard $(1).ml[yi]),$(1).mli $(1).ml,$(1).ml) CMXS += $(1).cmx - CLEAN += $(1).cmi $(1).cmx $(1).o + 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,\ @@ -42,37 +41,53 @@ define MOD_TEMPLATE ) endef -define INCLUDE_TEMPLATE +define INCLUDE_O_TEMPLATE ifeq ($(MAKECMDGOALS), $(1)) - include .depend.opt +%.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 $(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)) -OBJECTS = $(patsubst %.ml,%.cmx,$(SOURCES:%.mli=%.cmi)) CLEAN += $(MAIN).opt -all opt: .depend.opt - @$(MAKE) --no-print-directory $(MAIN).opt - -$(MAIN).opt: $(OBJECTS) +$(MAIN).opt: $(O_OBJECTS) @echo " OCAMLOPT -o $(MAIN).opt" $(H)$(OCAMLOPT) -o $(MAIN).opt $(CMXS) +$(MAIN).byte: $(B_OBJECTS) + @echo " OCAMLC -o $(MAIN).byte" + $(H)$(OCAMLC) -o $(MAIN).byte $(CMOS) + .depend.opt: $(SOURCES) @echo " OCAMLDEP -native" - $(H)$(OCAMLDEP) $^ > .depend.opt + $(H)$(OCAMLDEP) -native $^ > .depend.opt + +.depend.byte: $(SOURCES) + @echo " OCAMLDEP -byte" + $(H)$(OCAMLDEP) $^ > .depend.byte clean: @echo " CLEAN . $(SRC)" $(H)find -name "*~" | xargs $(RM) $(CLEAN) -lint-xml: $(XMLS) - @echo XMLLINT --valid - $(H)$(XMLLINT) --valid $^ - relise: clean @echo " RELISE $(RELISE)" $(H)mkdir -p $(RELISE) @@ -84,19 +99,27 @@ 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) $< -%.cmi: %.mli - @echo " OCAMLOPT $<" - $(H)$(OCAMLOPT) -c $< %.cmx: %.ml @echo " OCAMLOPT $<" $(H)$(OCAMLOPT) -c $< +%.cmo: %.ml + @echo " OCAMLC $<" + $(H)$(OCAMLC) -c $< + +O_TAGS += opt $(MAIN).opt + +B_TAGS += byte $(MAIN).byte -TAGS += $(MAIN).opt +$(foreach TAG, $(O_TAGS), $(eval $(call INCLUDE_O_TEMPLATE, $(TAG)))) -$(foreach TAG, $(TAGS), $(eval $(call INCLUDE_TEMPLATE, $(TAG)))) +$(foreach TAG, $(B_TAGS), $(eval $(call INCLUDE_B_TEMPLATE, $(TAG))))