X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=autogen.sh;h=b31ec7bfef954aa841bb37f213a08938cdd19703;hp=649ca7be3e8fadf1ea10a34a9985a980677182c5;hb=83eb2cf2fddbe3e06f50c18d5e651853f8d86813;hpb=f482e7ea665938152518fe15cd71cfe882dd2b30 diff --git a/autogen.sh b/autogen.sh index 649ca7b..b31ec7b 100755 --- a/autogen.sh +++ b/autogen.sh @@ -32,13 +32,6 @@ else ./bootstrap && echo "$t" > $curr_status fi -mkdir -p daemon/m4 - -# Remove this file, so autoreconf doesn't complain about it being -# locally modified. -rm -f build-aux/config.rpath -autoreconf -i - CONFIGUREDIR=. # Run configure in BUILDDIR if it's set @@ -49,6 +42,32 @@ 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. +# 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 + 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 + return 0 +} + +{ 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 if [ $# == 0 -a -x ./config.status ]; then