Binaries should be rebuilt if mllib.cma/mllib.cmxa or
customize.cma/customize.cmxa change.
Fixes commit 1e2877c6f4d1d254026d38b1cac4895d8dba7d5d.
---
builder/Makefile.am | 12 ++++++++++--
customize/Makefile.am | 3 ++-
dib/Makefile.am | 5 ++++-
get-kernel/Makefile.am | 5 ++++-
mllib/Makefile.am | 15 ++++++++++++---
resize/Makefile.am | 5 ++++-
sparsify/Makefile.am | 6 ++++--
subdir-rules.mk | 6 ++++++
sysprep/Makefile.am | 6 +++++-
v2v/Makefile.am | 9 +++++++--
10 files changed, 58 insertions(+), 14 deletions(-)
diff --git a/builder/Makefile.am b/builder/Makefile.am
index 4e77f52..b2d5ad3 100644
--- a/builder/Makefile.am
+++ b/builder/Makefile.am
@@ -167,7 +167,11 @@ BEST = opt
OCAMLLINKFLAGS = mlguestfs.cmxa mllib.cmxa customize.cmxa
endif
-virt_builder_DEPENDENCIES = $(OBJECTS) $(top_srcdir)/ocaml-link.sh
+virt_builder_DEPENDENCIES = \
+ $(OBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ ../customize/customize.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
virt_builder_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \
@@ -236,7 +240,11 @@ yajl_tests_THEOBJECTS = $(yajl_tests_BOBJECTS)
yajl_tests.cmo: OCAMLPACKAGES += $(OCAMLPACKAGES_TESTS)
endif
-yajl_tests_DEPENDENCIES = $(yajl_tests_THEOBJECTS) $(top_srcdir)/ocaml-link.sh
+yajl_tests_DEPENDENCIES = \
+ $(yajl_tests_THEOBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ ../customize/customize.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
yajl_tests_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLPACKAGES_TESTS)
$(OCAMLLINKFLAGS) \
diff --git a/customize/Makefile.am b/customize/Makefile.am
index 4befc75..dd35cdc 100644
--- a/customize/Makefile.am
+++ b/customize/Makefile.am
@@ -165,7 +165,8 @@ OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR)
virt_customize_DEPENDENCIES = \
$(top_srcdir)/ocaml-link.sh \
$(CUSTOMIZE_THEOBJECTS) \
- $(CUSTOMIZE_CMA)
+ $(CUSTOMIZE_CMA) \
+ ../mllib/mllib.$(MLARCHIVE)
virt_customize_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \
diff --git a/dib/Makefile.am b/dib/Makefile.am
index 4cf052f..a57d89d 100644
--- a/dib/Makefile.am
+++ b/dib/Makefile.am
@@ -89,7 +89,10 @@ BEST = opt
OCAMLLINKFLAGS = mlguestfs.cmxa mllib.cmxa
endif
-virt_dib_DEPENDENCIES = $(OBJECTS) $(top_srcdir)/ocaml-link.sh
+virt_dib_DEPENDENCIES = \
+ $(OBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
virt_dib_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \
diff --git a/get-kernel/Makefile.am b/get-kernel/Makefile.am
index 2ad3ad0..e145972 100644
--- a/get-kernel/Makefile.am
+++ b/get-kernel/Makefile.am
@@ -86,7 +86,10 @@ BEST = opt
OCAMLLINKFLAGS = mlguestfs.cmxa mllib.cmxa
endif
-virt_get_kernel_DEPENDENCIES = $(OBJECTS) $(top_srcdir)/ocaml-link.sh
+virt_get_kernel_DEPENDENCIES = \
+ $(OBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
virt_get_kernel_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \
diff --git a/mllib/Makefile.am b/mllib/Makefile.am
index dc36f26..8a02c1f 100644
--- a/mllib/Makefile.am
+++ b/mllib/Makefile.am
@@ -202,21 +202,30 @@ BEST = opt
OCAMLLINKFLAGS = mlguestfs.cmxa
endif
-common_utils_tests_DEPENDENCIES = $(common_utils_tests_THEOBJECTS)
$(top_srcdir)/ocaml-link.sh
+common_utils_tests_DEPENDENCIES = \
+ $(common_utils_tests_THEOBJECTS) \
+ $(MLLIB_CMA) \
+ $(top_srcdir)/ocaml-link.sh
common_utils_tests_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '-lutils $(LIBXML2_LIBS) -lgnu' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLLINKFLAGS) \
$(OCAMLPACKAGES) $(OCAMLPACKAGES_TESTS) \
$(common_utils_tests_THEOBJECTS) -o $@
-getopt_tests_DEPENDENCIES = $(getopt_tests_THEOBJECTS) $(top_srcdir)/ocaml-link.sh
+getopt_tests_DEPENDENCIES = \
+ $(getopt_tests_THEOBJECTS) \
+ $(MLLIB_CMA) \
+ $(top_srcdir)/ocaml-link.sh
getopt_tests_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '-lutils $(LIBXML2_LIBS) -lgnu' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLLINKFLAGS) \
$(OCAMLPACKAGES) $(OCAMLPACKAGES_TESTS) \
$(getopt_tests_THEOBJECTS) -o $@
-JSON_tests_DEPENDENCIES = $(JSON_tests_THEOBJECTS) $(top_srcdir)/ocaml-link.sh
+JSON_tests_DEPENDENCIES = \
+ $(JSON_tests_THEOBJECTS) \
+ $(MLLIB_CMA) \
+ $(top_srcdir)/ocaml-link.sh
JSON_tests_LINK = \
$(top_srcdir)/ocaml-link.sh -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLLINKFLAGS) \
diff --git a/resize/Makefile.am b/resize/Makefile.am
index 20d264b..96604b6 100644
--- a/resize/Makefile.am
+++ b/resize/Makefile.am
@@ -83,7 +83,10 @@ BEST = opt
OCAMLLINKFLAGS = mlguestfs.cmxa mllib.cmxa
endif
-virt_resize_DEPENDENCIES = $(OBJECTS) $(top_srcdir)/ocaml-link.sh
+virt_resize_DEPENDENCIES = \
+ $(OBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
virt_resize_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \
diff --git a/sparsify/Makefile.am b/sparsify/Makefile.am
index 5c03394..847825a 100644
--- a/sparsify/Makefile.am
+++ b/sparsify/Makefile.am
@@ -87,8 +87,10 @@ BEST = opt
OCAMLLINKFLAGS = mlguestfs.cmxa mllib.cmxa
endif
-virt_sparsify_DEPENDENCIES = $(OBJECTS) $(top_srcdir)/ocaml-link.sh
-
+virt_sparsify_DEPENDENCIES = \
+ $(OBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
virt_sparsify_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \
diff --git a/subdir-rules.mk b/subdir-rules.mk
index dd59349..525d210 100644
--- a/subdir-rules.mk
+++ b/subdir-rules.mk
@@ -47,6 +47,12 @@ LOG_DRIVER = env $(SHELL) $(top_srcdir)/build-aux/guestfs-test-driver
# See also:
# guestfs-hacking(1) section "HOW OCAML PROGRAMS ARE COMPILED AND LINKED"
+if !HAVE_OCAMLOPT
+MLARCHIVE = cma
+else
+MLARCHIVE = cmxa
+endif
+
.mli.cmi:
$(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
.ml.cmo:
diff --git a/sysprep/Makefile.am b/sysprep/Makefile.am
index 25193b2..1504df2 100644
--- a/sysprep/Makefile.am
+++ b/sysprep/Makefile.am
@@ -135,7 +135,11 @@ BEST = opt
OCAMLLINKFLAGS = mlguestfs.cmxa mllib.cmxa customize.cmxa
endif
-virt_sysprep_DEPENDENCIES = $(OBJECTS) $(top_srcdir)/ocaml-link.sh
+virt_sysprep_DEPENDENCIES = \
+ $(OBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ ../customize/customize.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
virt_sysprep_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \
diff --git a/v2v/Makefile.am b/v2v/Makefile.am
index d5d4c04..988cba5 100644
--- a/v2v/Makefile.am
+++ b/v2v/Makefile.am
@@ -189,7 +189,9 @@ COPY_TO_LOCAL_OBJECTS = $(COPY_TO_LOCAL_XOBJECTS)
endif
virt_v2v_copy_to_local_DEPENDENCIES = \
- $(COPY_TO_LOCAL_OBJECTS) $(top_srcdir)/ocaml-link.sh
+ $(COPY_TO_LOCAL_OBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
virt_v2v_copy_to_local_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \
@@ -405,7 +407,10 @@ v2v_unit_tests_THEOBJECTS = $(v2v_unit_tests_XOBJECTS)
v2v_unit_tests.cmx: OCAMLPACKAGES += -package oUnit
endif
-v2v_unit_tests_DEPENDENCIES = $(v2v_unit_tests_THEOBJECTS) $(top_srcdir)/ocaml-link.sh
+v2v_unit_tests_DEPENDENCIES = \
+ $(v2v_unit_tests_THEOBJECTS) \
+ ../mllib/mllib.$(MLARCHIVE) \
+ $(top_srcdir)/ocaml-link.sh
v2v_unit_tests_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) \
--
2.7.4