X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=autogen.sh;h=bd15a271ea2d2335ebfae1721f47d9698afc8464;hb=28d74ee234bebaab552a662eb0700a36413b68b5;hp=8d86dbeabdffc3193cfc223e4dff364232ebd146;hpb=b6233d1fff5d9a6bbc61e7123a57bdd7d8cbc792;p=libguestfs.git diff --git a/autogen.sh b/autogen.sh index 8d86dbe..bd15a27 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,4 +1,4 @@ -#!/bin/sh - +#!/bin/bash - # libguestfs # Copyright (C) 2009 Red Hat Inc. # @@ -20,9 +20,52 @@ set -e set -v -export AUTOMAKE='automake --foreign' -aclocal -libtoolize -autoreconf -cd daemon -autoreconf \ No newline at end of file + +# Ensure that whenever we pull in a gnulib update or otherwise change to a +# different version (i.e., when switching branches), we also rerun ./bootstrap. +curr_status=.git-module-status +t=$(git submodule status) +if test "$t" = "$(cat $curr_status 2>/dev/null)"; then + : # good, it's up to date +else + echo running bootstrap... + ./bootstrap && echo "$t" > $curr_status +fi + +CONFIGUREDIR=. + +# Run configure in BUILDDIR if it's set +if [ ! -z "$BUILDDIR" ]; then + mkdir -p $BUILDDIR + cd $BUILDDIR + + 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 + ./config.status --recheck +else + $CONFIGUREDIR/configure "$@" +fi