#!/bin/sh
# Run this to bootstrap the files

PACKAGE=dbus-c++

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

DIE=0

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

# check for autoconf
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
  echo
  echo "**Error**: You must have \`autoconf' installed."
  echo "Download the appropriate package for your distribution,"
  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
  DIE=1
}

# check for libtool
(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
}

# check for automake
(automake --version) < /dev/null > /dev/null 2>&1 || {
  echo
  echo "**Error**: You must have \`automake' installed."
  echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
  DIE=1
  NO_AUTOMAKE=yes
}


# if no automake, don't bother testing for aclocal
test -n "$NO_AUTOMAKE" || (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

echo "Running libtoolize..."
libtoolize --force --copy

aclocalinclude="$ACLOCAL_FLAGS -I m4"
echo "Running aclocal $aclocalinclude ..."
aclocal $aclocalinclude
 
echo "Running autoheader..."
autoheader

echo "Running automake..."
automake --add-missing --foreign  $am_opt

echo "Running autoconf ..."
autoconf

echo "You could now exec ./configure --help to see available options"

