build: revive the ocaml package tests
[libguestfs.git] / autogen.sh
index 55842b1..b31ec7b 100755 (executable)
@@ -46,22 +46,27 @@ fi
 # 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.
+# ocamlfind cannot detect the presence of -devel packages directly,
+# so if $pkg ends in -devel, first check for the base package, and
+# if that's found, check for the existence of $base.cmxa in the
+# resulting directory.
 require_ocaml_pkg()
 {
   pkg=$1
-  test -d .git || return 1
-  url=$(git config remote.origin.url) || return 1
-  case $url in
-    *et.redhat.com/*) ;;
-    *) return 1;;
+  case $pkg in
+    *-devel)
+      local base=${pkg%%-devel}
+      local dir=$(ocamlfind query "$base") || return 1
+      test -f "$dir/$base.cmxa" || return 1
+      ;;
+    *) ocamlfind query "$pkg" > /dev/null 2>&1 || return 1;;
   esac
-  ocamlfind query $pkg || return 1
-  test -f "$(ocamlfind query $pkg)/xml-light.cmxa" || return 1
   return 0
 }
 
-require_ocaml_pkg xml-light \
-  || { echo "you must have ocaml, ocamlfind, ocaml-xml-light and ocaml-xml-light-devel"; exit 1; }
+{ require_ocaml_pkg xml-light && require_ocaml_pkg xml-light-devel; } \
+  || { echo "you must have ocaml, ocamlfind, ocaml-xml-light" \
+         "and ocaml-xml-light-devel" >&2; exit 1; }
 
 # If no arguments were specified and configure has run before, use the previous
 # arguments