H=@
+ifeq ($(origin OCAMLPATH), undefined)
+ OCAMLFIND = OCAMLPATH=$(HOME)/svn/software/components/METAS ocamlfind
+else
+ OCAMLFIND = ocamlfind
+endif
+
+RELISE = $(MAIN:%=%_$(shell cat MakeVersion))
+
+LDDLURL = http://lambda-delta.info/static/lddl
+LDDLDIR = mowgli:/projects/helm/public_html/lambda-delta/static/lddl
+DOWNDIR = mowgli:/projects/helm/public_html/lambda-delta/download
+XMLDIR = mowgli:/projects/helm/public_html/lambda-delta/xml
+LOCALLDDLDIR = $(HOME)/public_html/lddl
+
+DIRECTORIES = $(addprefix $(SRC)/,$(shell cat $(SRC)/Make))
INCLUDES = $(DIRECTORIES:%=-I %)
-OCAMLDEP = ocamlfind ocamldep -native $(INCLUDES)
-OCAMLOPT = ocamlfind opt -linkpkg -package "$(REQUIRES)" $(INCLUDES)
+OCAMLDEP = $(OCAMLFIND) ocamldep -native $(INCLUDES)
+OCAMLOPT = $(OCAMLFIND) opt $(OCAMLOPTIONS) -linkpkg -package "$(REQUIRES)" $(INCLUDES)
OCAMLLEX = ocamllex.opt
OCAMLYACC = ocamlyacc -v
-TAR = tar -czf $(MAIN:%=%.tgz)
-GZIP = gzip
+XMLLINT = xmllint --noout
+XSLT = xsltproc
+TAR = tar -czf etc/$(MAIN:%=%.tgz)
define DIR_TEMPLATE
MODULES += $$(addprefix $(1)/,$$(shell cat $(1)/Make))
)
endef
-$(foreach DIR,$(DIRECTORIES),$(eval $(call DIR_TEMPLATE, $(DIR))))
-$(foreach MOD,$(MODULES),$(eval $(call MOD_TEMPLATE, $(MOD))))
+define INCLUDE_TEMPLATE
+ ifeq ($(MAKECMDGOALS), $(1))
+ include .depend.opt
+ endif
+endef
+
+$(foreach DIR, $(DIRECTORIES), $(eval $(call DIR_TEMPLATE, $(DIR))))
+$(foreach MOD, $(MODULES), $(eval $(call MOD_TEMPLATE, $(MOD))))
OBJECTS = $(patsubst %.ml,%.cmx,$(SOURCES:%.mli=%.cmi))
CLEAN += $(MAIN).opt
$(H)$(OCAMLDEP) $^ > .depend.opt
clean:
- @echo " CLEAN . $(DIRECTORIES)"
+ @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)
+ $(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)
@echo " OCAMLOPT $<"
$(H)$(OCAMLOPT) -c $<
-ifeq ($(MAKECMDGOALS), $(MAIN).opt)
- include .depend.opt
-endif
+TAGS += $(MAIN).opt
+
+$(foreach TAG, $(TAGS), $(eval $(call INCLUDE_TEMPLATE, $(TAG))))