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