2 ifeq ($(origin OCAMLPATH), undefined)
3 OCAMLFIND = OCAMLPATH=../components/METAS ocamlfind
8 LDDLURL = http://helm.cs.unibo.it/lambda-delta/static/lddl
9 LDDLDIR = mowgli:/projects/helm/public_html/lambda-delta/static/lddl
10 DOWNDIR = mowgli:/projects/helm/public_html/lambda-delta/download
11 XMLDIR = mowgli:/projects/helm/public_html/lambda-delta/xml
12 LOCALLDDLDIR = ../../../public_html/lddl
14 DIRECTORIES = $(addprefix $(SRC)/,$(shell cat $(SRC)/Make))
16 INCLUDES = $(DIRECTORIES:%=-I %)
18 OCAMLDEP = $(OCAMLFIND) ocamldep -native $(INCLUDES)
19 OCAMLOPT = $(OCAMLFIND) opt $(OCAMLOPTIONS) -linkpkg -package "$(REQUIRES)" $(INCLUDES)
20 OCAMLLEX = ocamllex.opt
21 OCAMLYACC = ocamlyacc -v
22 XMLLINT = xmllint --noout
26 #TAR = tar -czf etc/$(MAIN:%=%.tgz)
29 MODULES += $$(addprefix $(1)/,$$(shell cat $(1)/Make))
33 SOURCES += $$(if $$(wildcard $(1).ml[yi]),$(1).mli $(1).ml,$(1).ml)
35 CLEAN += $(1).cmi $(1).cmx $(1).o
36 CLEAN += $$(if $$(wildcard $(1).ml[ly]),$(1).ml,)
37 CLEAN += $$(if $$(wildcard $(1).mly),$(1).mli $(1).output,)
38 KEEP += $$(if $$(wildcard $(1).mly),$(1).mly,\
39 $$(if $$(wildcard $(1).mll),$(1).mll,\
40 $$(if $$(wildcard $(1).mli),$(1).mli $(1).ml,$(1).ml)\
45 define INCLUDE_TEMPLATE
46 ifeq ($(MAKECMDGOALS), $(1))
51 $(foreach DIR, $(DIRECTORIES), $(eval $(call DIR_TEMPLATE, $(DIR))))
52 $(foreach MOD, $(MODULES), $(eval $(call MOD_TEMPLATE, $(MOD))))
54 OBJECTS = $(patsubst %.ml,%.cmx,$(SOURCES:%.mli=%.cmi))
58 @$(MAKE) --no-print-directory $(MAIN).opt
60 $(MAIN).opt: $(OBJECTS)
61 @echo " OCAMLOPT -o $(MAIN).opt"
62 $(H)$(OCAMLOPT) -o $(MAIN).opt $(CMXS)
64 .depend.opt: $(SOURCES)
65 @echo " OCAMLDEP -native"
66 $(H)$(OCAMLDEP) $^ > .depend.opt
69 @echo " CLEAN . $(SRC)"
70 $(H)find -name "*~" | xargs $(RM) $(CLEAN)
74 $(H)$(XMLLINT) --valid $^
76 lint-xml-local: $(LOCALXMLS)
78 $(H)$(XMLLINT) $(XMLLINTLOCAL) --valid $^
81 # @echo " TAR -czf $(MAIN:%=%.tgz) . $(DIRECTORIES)"
82 # $(H)find -name "Make*" | xargs $(TAR) $(KEEP)
99 $(foreach TAG, $(TAGS), $(eval $(call INCLUDE_TEMPLATE, $(TAG))))