X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=autogen.sh;h=b31ec7bfef954aa841bb37f213a08938cdd19703;hp=55842b14e66d0746e211d6e77bbc97f06863b9ad;hb=259f78cfa70af5505b8172bb81a3d1e2d7581bb5;hpb=3ca69d9db34ebb31eba7b370ffe25a6178c83449 diff --git a/autogen.sh b/autogen.sh index 55842b1..b31ec7b 100755 --- a/autogen.sh +++ b/autogen.sh @@ -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