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
byte: $(NAME)
opt: $(NAME).opt
-gui.ml: hbugs_gui.glade
+hbugs_client_gui.ml: hbugs_gui.glade
lablgladecc $< > $@
-gui.cmo: gui.ml
+hbugs_client_gui.cmo: hbugs_client_gui.ml
+ $(OCAMLC) -c $<
+hbugs_client_gui.cmx: hbugs_client_gui.ml
+ $(OCAMLOPT) -c $<
+hbugs_client.cmi: hbugs_client.mli
+ $(OCAMLC) -c $<
+hbugs_client.cmo: hbugs_client.ml hbugs_client.cmi
$(OCAMLC) -c $<
-gui.cmx: gui.ml
+hbugs_client.cmx: hbugs_client.ml hbugs_client.cmi
$(OCAMLOPT) -c $<
-$(NAME): gui.cmo $(NAME).ml
- $(OCAMLC) -thread -package threads -linkpkg -o $@ $^
-$(NAME).opt: gui.cmx $(NAME).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} gui.ml
+ rm -f *.cm[aixo] *.cmxa *.[oa] $(NAME){,.opt} hbugs_client_gui.ml
+distclean: clean
.PHONY: all world byte opt clean