It was a pain to diagnose a build failure due to the lack of ocaml-xml-light.
With this change, autogen.sh will diagnose it for you.
If there end up being more than that one required ocaml package, I'd
change things to factor out the literal string in the diagnostic.
From abc8363ef71809bd0986b752465ca6f65660ca4c Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering(a)redhat.com>
Date: Tue, 10 Nov 2009 14:31:42 +0100
Subject: [PATCH libguestfs] build: die early if we lack ocaml, ocamlfind or
ocaml-xml-light
* autogen.sh: Ensure that we fail very early when not building
from a tarball and when one of those is not installed.
---
autogen.sh | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/autogen.sh b/autogen.sh
index 9c73a2d..aff17f9 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -42,6 +42,25 @@ if [ ! -z "$BUILDDIR" ]; then
CONFIGUREDIR=..
fi
+# Ensure that an ocaml package is present for build-from sources.
+# This is *not* for anything that is required at configure-time
+# when configure is run from a distribution tarball. From those,
+# nothing ocaml-related is required.
+require_ocaml_pkg()
+{
+ pkg=$1
+ test -d .git || return 1
+ url=$(git config remote.origin.url) || return 1
+ case $url in
+ *git.et.redhat.com/libguestfs.git) ;;
+ *) return 1;; esac
+ ocamlfind query "$pkg" || return 1
+ return 0
+}
+
+require_ocaml_pkg xml-light \
+ || { echo "you must have ocaml, ocamlfind and ocaml-xml-light"; exit 1; }
+
# If no arguments were specified and configure has run before, use the previous
# arguments
if [ $# == 0 -a -x ./config.status ]; then
--
1.6.5.2.351.g0943