diff --git a/builder/Makefile.am b/builder/Makefile.am index 4e77f52e3..b2d5ad33e 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 72d5f39d1..818462c3a 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 4cf052f24..a57d89d74 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 2ad3ad072..e1459725d 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 4f50c5273..273966863 100644 --- a/mllib/Makefile.am +++ b/mllib/Makefile.am @@ -185,14 +185,20 @@ 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 $@ -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 20d264b5b..96604b697 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 5c0339440..847825a48 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 dd59349ee..525d21071 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 25193b2c0..1504df2d1 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 d5d4c042f..988cba546 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) \