On Thu, Nov 29, 2018 at 04:35:22PM -0600, Eric Blake wrote:
The ocaml.opt compiler defaults to building things in the same
directory as its input; we need explicit -o options to build
in a VPATH $(builddir) when $(srcdir) is read-only (as is the
case during 'make distcheck'). We also have to build any side
effect files explicitly in cases where we can't directly use -o
to control those outputs alongside the final product.
Thanks: Richard W.M. Jones
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
I'm working on getting 'make distcheck' happy (in general, it
fails because we aren't set up for VPATH builds yet). I'm pushing
the small and obvious patches when I spot them, but for stuff
where I'm less certain, I'll post to the list as well. This is
what Rich helped me come up with on IRC for the ocaml failures.
plugins/ocaml/Makefile.am | 4 ++--
tests/Makefile.am | 4 +++-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am
index 484d041..b95f255 100644
--- a/plugins/ocaml/Makefile.am
+++ b/plugins/ocaml/Makefile.am
@@ -43,10 +43,10 @@ ocamllibdir = $(OCAMLLIB)
ocamllib_DATA = NBDKit.mli NBDKit.cmi NBDKit.cmx NBDKit.o
NBDKit.cmi: NBDKit.mli
- $(OCAMLC) -c $<
+ $(OCAMLC) -c $< -o $@
NBDKit.cmx: NBDKit.ml NBDKit.cmi
- $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $<
+ $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $< -o $@
NBDKit.o: NBDKit.cmx
# NB: libnbdkitocaml is not plugin. It's a library that you have to
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4e16fa9..94f3d43 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -517,7 +517,9 @@ test_ocaml_CFLAGS = \
test_ocaml_LDADD = libtest.la $(LIBGUESTFS_LIBS)
check_SCRIPTS += test-ocaml-plugin.so
-test-ocaml-plugin.so: test_ocaml_plugin.ml ../plugins/ocaml/libnbdkitocaml.la
../plugins/ocaml/NBDKit.cmi ../plugins/ocaml/NBDKit.cmx
+test_ocaml_plugin.cmx: test_ocaml_plugin.ml
+ $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml -c $< -o $@
+test-ocaml-plugin.so: test_ocaml_plugin.cmx ../plugins/ocaml/libnbdkitocaml.la
../plugins/ocaml/NBDKit.cmi ../plugins/ocaml/NBDKit.cmx
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \
-output-obj -runtime-variant _pic -o $@ \
NBDKit.cmx $< \
--
This is fine, ACK.
Thanks,
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/