-REQUIRES = pcre pxp http
+REQUIRES = helm-xml helm-pxp pcre pxp http
COMMONOPTS = -package "$(REQUIRES)" -pp camlp4o
-OCAMLC = ocamlfind ocamlc $(COMMONOPTS)
-OCAMLOPT = ocamlfind ocamlopt $(COMMONOPTS)
-OCAMLDEP = ocamlfind ocamldep $(COMMONOPTS)
+OCAMLFIND = ocamlfind
+OCAMLC = $(OCAMLFIND) ocamlc -thread $(COMMONOPTS)
+OCAMLOPT = $(OCAMLFIND) ocamlopt -thread $(COMMONOPTS)
+OCAMLDEP = $(OCAMLFIND) ocamldep $(COMMONOPTS)
+OCAMLDOC = \
+ ocamldoc \
+ $(shell $(OCAMLFIND) query -i-format helm-xml) \
+ $(shell $(OCAMLFIND) query -i-format helm-pxp) \
+ $(shell $(OCAMLFIND) query -i-format pcre) \
+ $(shell $(OCAMLFIND) query -i-format pxp-engine) \
+ $(shell $(OCAMLFIND) query -i-format threads) \
+ $(shell $(OCAMLFIND) query -i-format http)
MODULES = \
hbugs_types threadSafe hbugs_misc \
- hbugs_id_generator hbugs_messages
+ hbugs_common hbugs_id_generator hbugs_messages
OBJS = $(patsubst %,%.cmo,$(MODULES))
OBJSOPT = $(patsubst %,%.cmx,$(MODULES))
+DEPS = $(shell $(OCAMLFIND) query -recursive -predicates byte -format "%d/%a" $(REQUIRES))
+DEPSOPT = $(shell $(OCAMLFIND) query -recursive -predicates native -format "%d/%a" $(REQUIRES))
all: byte
byte: $(OBJS)
opt: $(OBJSOPT)
world: byte opt
+hbugs_common.dot: *.ml *.mli
+ $(OCAMLDOC) -dot -o $@ $^
+
include .depend
depend:
$(OCAMLDEP) *.ml *.mli > .depend
%.cmx: %.ml %.cmi
$(OCAMLOPT) -c $<
include Makefile.overrides
+$(OBJS): $(DEPS)
+$(OBJSOPT): $(DEPSOPT)
distclean: clean
clean: