-TAR = tar -czf etc/$(MAIN:%=%.tgz)
-
-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
-
-$(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))
-
-CLEAN += $(MAIN).opt
-
-all opt: .depend.opt
- @$(MAKE) --no-print-directory $(MAIN).opt
-
-byte: .depend.byte
- @$(MAKE) --no-print-directory $(MAIN).byte