COMMONOPTS = -package "$(REQUIRES)" -predicates "$(PREDICATES)"
OCAMLC = OCAMLPATH="$(METADIR)" ocamlfind ocamlc $(COMMONOPTS)
OCAMLOPT = OCAMLPATH="$(METADIR)" ocamlfind ocamlopt $(COMMONOPTS)
+OCAMLFIND = ocamlfind
+
+DEPS = $(shell $(OCAMLFIND) query -recursive -predicates byte -format "%d/%a" $(REQUIRES))
+DEPSOPT = $(shell $(OCAMLFIND) query -recursive -predicates native -format "%d/%a" $(REQUIRES))
all: byte
world: byte opt
$(OCAMLC) -c $<
hbugs_client.cmx: hbugs_client.ml hbugs_client.cmi
$(OCAMLOPT) -c $<
-$(NAME): hbugs_client_gui.cmo $(NAME).cmo main.ml
- $(OCAMLC) -thread -package threads -linkpkg -o $@ $^
-$(NAME).opt: hbugs_client_gui.cmx $(NAME).cmx main.ml
- $(OCAMLOPT) -thread -package threads -linkpkg -o $@ $^
+$(NAME): $(DEPS) hbugs_client_gui.cmo $(NAME).cmo main.ml
+ $(OCAMLC) -thread -package threads -linkpkg -o $@ hbugs_client_gui.cmo $(NAME).cmo main.ml
+$(NAME).opt: $(DEPSOPT) hbugs_client_gui.cmx $(NAME).cmx main.ml
+ $(OCAMLOPT) -thread -package threads -linkpkg -o $@ hbugs_client_gui.cmx $(NAME).cmx main.ml
clean:
rm -f *.cm[aixo] *.cmxa *.[oa] $(NAME){,.opt} hbugs_client_gui.ml
distclean: clean