#!/bin/sh
# Run this to generate all the initial makefiles, etc.

if test -z "$*"; then
  echo "**Warning**: I am going to run \`configure' with no arguments."
  echo "If you wish to pass any to it, please specify them on the"
  echo \`$0\'" command line."
  echo
fi

AUTOCONF_REQUIRED_VERSION=2.52
AUTOMAKE_REQUIRED_VERSION=1.7
GLIB_REQUIRED_VERSION=2.0.0
INTLTOOL_REQUIRED_VERSION=0.22

check_version ()
{
    if expr $1 \>= $2 > /dev/null; then
        echo "yes (version $1)"
    else
        echo "Too old (found version $1)!"
        DIE=1
    fi
}

attempt_command () {
    IGNORE=$1
    shift

    echo "Running $@ ..."
    ERR="`$@ 2>&1`"
    errcode=$?
    if [ "x$IGNORE" = "x" ]; then
        ERR=`echo "$ERR"`
    else
        ERR=`echo "$ERR" | egrep -v "$IGNORE"`
    fi
    if [ "x$ERR" != "x" ]; then
        echo "$ERR" | awk '{print "  " $0}'
    fi
    if [ $errcode -gt 0 ]; then
        echo "Please fix the error conditions and try again."
        exit 1
    fi
}

srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.

DIE=0

if [ -n "$GNOME2_DIR" ]; then
	ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
	LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
	PATH="$GNOME2_DIR/bin:$PATH"
	export PATH
	export LD_LIBRARY_PATH
fi

(test -f $srcdir/configure.ac) || {
    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
    echo " top-level package directory"
    exit 1
}

echo -n "checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... "
if (autoconf --version) < /dev/null > /dev/null 2>&1; then
    VER=`autoconf --version \
         | grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
    check_version $VER $AUTOCONF_REQUIRED_VERSION
else
    echo
    echo "  You must have autoconf installed to compile $PROJECT."
    echo "  Download the appropriate package for your distribution,"
    echo "  or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
    DIE=1;
fi

(grep "^AC_PROG_INTLTOOL" $srcdir/configure.ac >/dev/null) && {
 echo -n "checking for intltool >= $INTLTOOL_REQUIRED_VERSION ... "
 if (intltoolize --version) < /dev/null > /dev/null 2>&1; then
    VER=`intltoolize --version \
         | grep intltoolize | sed "s/.* \([0-9.]*\)/\1/"`
    check_version $VER $INTLTOOL_REQUIRED_VERSION
 else
    echo
    echo "  You must have intltool installed to compile $PROJECT."
    echo "  Get the latest version from"
    echo "  ftp://ftp.gnome.org/pub/GNOME/sources/intltool/"
    DIE=1
 fi
}

(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.ac >/dev/null) && {
  (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || {
    echo
    echo "**Error**: You must have \`xml-i18n-toolize' installed."
    echo "You can get it from:"
    echo "  ftp://ftp.gnome.org/pub/GNOME/"
    DIE=1
  }
}

(grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && {
  (libtool --version) < /dev/null > /dev/null 2>&1 || {
    echo
    echo "**Error**: You must have \`libtool' installed."
    echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
    DIE=1
  }
}

(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.ac >/dev/null) && {
  (grep "sed.*POTFILES" $srcdir/configure.ac) > /dev/null || \
  (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
    echo
    echo "**Error**: You must have \`glib' installed."
    echo "You can get it from: ftp://ftp.gtk.org/pub/gtk"
    DIE=1
  }
}

echo -n "checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... "
# Prefer earlier versions just so that the earliest supported version gets test coverage by developers.
if (automake-1.7 --version) < /dev/null > /dev/null 2>&1; then
   AUTOMAKE=automake-1.7
   ACLOCAL=aclocal-1.7
elif (automake-1.8 --version) < /dev/null > /dev/null 2>&1; then
   AUTOMAKE=automake-1.8
   ACLOCAL=aclocal-1.8
elif (automake --version) < /dev/null > /dev/null 2>&1; then
   # Leave unversioned automake for a last resort: it may be a version earlier
   # than what we require.
   # (In particular, it might mean automake 1.4: that version didn't default to
   #  installing a versioned name.)
   AUTOMAKE=automake
   ACLOCAL=aclocal
else
    echo
    echo "  You must have automake 1.7 or newer installed to compile $PROJECT."
    echo "  Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.8.5.tar.gz"
    echo "  (or a newer version of 1.8 if it is available; note that 1.9 is bugg
y)"
    DIE=1
    NO_AUTOMAKE=1
fi
if test x$AUTOMAKE != x; then
    VER=`$AUTOMAKE --version \
         | grep automake | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
    check_version $VER $AUTOMAKE_REQUIRED_VERSION
fi

# if no automake, don't bother testing for aclocal
test x$AUTOMAKE == x || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
  echo
  echo "**Error**: Missing \`aclocal'.  The version of \`automake'"
  echo "installed doesn't appear recent enough."
  echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
  DIE=1
}

if test "$DIE" -eq 1; then
  exit 1
fi

case $CC in
xlc )
  am_opt=--include-deps;;
esac

for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.ac -print`
do 
  dr=`dirname $coin`
  if test -f $dr/NO-AUTO-GEN; then
    echo skipping $dr -- flagged as no auto-gen
  else
    echo processing $dr
    ( cd $dr

      aclocalinclude="$ACLOCAL_FLAGS"

	if grep "^AM_GLIB_GNU_GETTEXT" configure.ac >/dev/null; then
		echo "Creating $dr/aclocal.m4 ..."
		test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
#		echo "Running glib-gettextize...  Ignore non-fatal messages."
		attempt_command '^(Please add the files|  codeset|  progtest|from the|or directly|You will also|ftp://ftp.gnu.org|$)' \
			glib-gettextize --copy --force
		#echo "no" | glib-gettextize --force --copy
		echo "Making $dr/aclocal.m4 writable ..."
		test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
	fi
	if grep "^AC_PROG_INTLTOOL" configure.ac >/dev/null; then
		attempt_command '' intltoolize --copy --force --automake
	fi
	if grep "^AM_PROG_XML_I18N_TOOLS" configure.ac >/dev/null; then
		attempt_command '' xml-i18n-toolize --copy --force --automake
	fi
	if grep "^AM_PROG_LIBTOOL" configure.ac >/dev/null; then
		if test -z "$NO_LIBTOOLIZE" ; then 
			attempt_command '' libtoolize --force --copy
		fi
	fi
	attempt_command 'underquoted definition of|[\)\#]Extending' \
		$ACLOCAL $aclocalinclude
	if grep "^AM_CONFIG_HEADER" configure.ac >/dev/null; then
		attempt_command '' autoheader
	fi
	attempt_command '' $AUTOMAKE --add-missing --gnu $am_opt
	attempt_command '' autoconf
    )
  fi
done

conf_flags="--enable-maintainer-mode"

if test x$NOCONFIGURE = x; then
  echo Running $srcdir/configure $conf_flags "$@" ...
  $srcdir/configure $conf_flags "$@" \
  && echo Now type \`make\' to compile. || exit 1
else
  echo Skipping configure process.
fi
