OCAMLFLAGS = -g -warn-error CDEFLMPSUVYZX-3-24
-OCAMLPACKAGES = -package str,unix,gettext-stub,libvirt,guestfs,v2v_test_harness
+if INSTALLED_TEST_HARNESS
+OCAMLLINKPKG =
+else
+OCAMLLINKPKG = v2v_test_harness.cmxa
+endif
+
+OCAMLPACKAGES = -package str,unix,gettext-stub,libvirt,guestfs
+OCAMLLINKPKG += -linkpkg
+
+if INSTALLED_TEST_HARNESS
+OCAMLPACKAGES += -package v2v_test_harness
+else
+OCAMLPACKAGES += -I $(TEST_HARNESS_DIR)
+endif
# XXX FIXME
# We don't distribute the xml.* files with the test harness.
AC_MSG_ERROR([Cannot find required OCaml package 'guestfs'])
fi
-AC_CHECK_OCAML_PKG(v2v_test_harness)
-if test "x$OCAML_PKG_v2v_test_harness" = "xno"; then
- AC_MSG_ERROR([Cannot find required OCaml package 'v2v_test_harness'])
+dnl Choose the installed v2v_test_harness module (default) or
+dnl use --with-test-harness=/path/to/libguestfs/v2v/test-harness to
+dnl compile against local libguestfs sources.
+
+AC_ARG_WITH([test-harness],
+ [AS_HELP_STRING([--with-test-harness],
+ [path to v2v test harness sources])],
+ [with_test_harness=$withval],
+ [with_test_harness=installed])
+if test "x$with_test_harness" = "xinstalled"; then
+ AC_CHECK_OCAML_PKG(v2v_test_harness)
+ if test "x$OCAML_PKG_v2v_test_harness" = "xno"; then
+ AC_MSG_ERROR([Cannot find required OCaml package 'v2v_test_harness' (try: --with-test-harness=/path/to/libguestfs/v2v/test-harness)])
+ fi
+else
+ AC_MSG_CHECKING([$with_test_harness contains the compiled v2v test harness])
+ if test ! -f $with_test_harness/v2v_test_harness.cmi ; then
+ AC_MSG_ERROR([$with_test_harness does not contain the compiled v2v test harness])
+ fi
+ AC_MSG_RESULT([yes])
+ AC_SUBST([TEST_HARNESS_DIR],[$with_test_harness])
fi
+AM_CONDITIONAL([INSTALLED_TEST_HARNESS],
+ [test "x$with_test_harness" = "xinstalled"])
dnl libxml2 (required)
PKG_CHECK_MODULES([LIBXML2], [libxml-2.0])