# -*- shell-script -*-
# Defines for Automake testing environment.
# Tom Tromey <tromey@cygnus.com>

# Ensure $srcdir set correctly.
test -f $srcdir/defs || {
   echo "defs: installation error" 1>&2
   exit 1
}

me=`echo "$0" | sed -e 's,.*[\\/],,;s/\.test$//'`

# See how redirections should work.  User can set VERBOSE to see all
# output.
test -z "$VERBOSE" && {
   exec > /dev/null 2>&1
}

if test -n "$required"
then
  for tool in $required
  do
    echo "$me: running $tool --version"
    ( $tool --version ) || exit 77
  done
fi

# Always use an absolute srcdir.  Otherwise symlinks made in subdirs
# of the test dir just won't work.
case "$srcdir" in
 [\\/]* | ?:[\\/]*)
    ;;

 *)
    srcdir=`CDPATH=: && cd "$srcdir" && pwd`
    ;;
esac

chmod -R a+rwx testSubDir > /dev/null 2>&1
rm -rf testSubDir > /dev/null 2>&1
mkdir testSubDir

# Copy in some files we need.
for file in install-sh mkinstalldirs missing depcomp; do
   cp $srcdir/../lib/$file testSubDir/$file || exit 1
done

cd ./testSubDir

# Build appropriate environment in test directory.  Eg create
# configure.in, touch all necessary files, etc.
# Don't use AC_OUTPUT, but AC_CONFIG_FILES so that appending
# still produces a valid configure.ac.  But then, tests running
# config.status really need to append AC_OUTPUT.
cat > configure.in << END
AC_INIT($me, 1.0)
AM_INIT_AUTOMAKE
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_CONFIG_FILES(Makefile)
END

# User can set PERL to change the perl interpreter used.
test -z "$PERL" && PERL=perl

# User can set MAKE to choose which make to use.  Must use GNU make.
test -z "$MAKE" && MAKE=make

# Unset some MAKE... variables that may cause $MAKE to act like a
# recursively invoked sub-make.  Any $MAKE invocation in a test is
# conceptually an independent invocation, not part of the main
# 'automake' build.
unset MFLAGS
unset MAKEFLAGS
unset MAKELEVEL
unset DESTDIR

if ($MAKE --version) > /dev/null 2>&1; then
   needs_gnu_make=:
else
   needs_gnu_make='exit 77'
fi

# User can set which tools from Autoconf to use.
test -z "$AUTOCONF" && AUTOCONF=autoconf


echo "=== Running test $0"

# See how Automake should be run.  We put --foreign as the default
# strictness to avoid having to create lots and lots of files.  A test
# can override this by specifying a different strictness.
if test -z "$AUTOMAKE"; then
   perllibdir=$srcdir/../lib
   export perllibdir
   AUTOMAKE="$PERL ../../automake --libdir=$srcdir/../lib --foreign --Werror"
fi

# See how aclocal should be run.
if test -z "$ACLOCAL"; then
   perllibdir=$srcdir/../lib
   export perllibdir
   # Most of the files are in $srcdir/../m4.  However amversion.m4 is
   # generated in ../m4, so we include that directory in the search
   # path too.
   ACLOCAL="$PERL ../../aclocal -I `pwd`/../../m4 --acdir=$srcdir/../m4"
fi

# We might need extra macros, e.g., from Libtool or Gettext.
# Find them on the system.
# Use `-I $srcdir/../m4' in addition to `--acdir', because the
# other `-I' directories added for libtool and gettext might contain
# files from an old version of Automake that we don't want to use.
aclocaldir=`(aclocal --print-ac-dir) 2>/dev/null`
case $required in
  *libtool* )
    test -f "$aclocaldir/libtool.m4" || exit 77
    ACLOCAL="$ACLOCAL -I $srcdir/../m4 -I $aclocaldir"
    ;;
  *gettext* )
    test -f "$aclocaldir/gettext.m4" || exit 77
    ACLOCAL="$ACLOCAL -I $srcdir/../m4 -I $aclocaldir"
    ;;
esac

# Export AUTOMAKE and ACLOCAL so that rebuild rules in Makefiles
# generated for the tests do not use the installed tools.
export AUTOMAKE ACLOCAL

# The tests call `make -e' but we do not want $srcdir from the evironment
# to override the definition from the Makefile.
testsrcdir=$srcdir
unset srcdir

# Turn on shell traces when VERBOSE=x.
if test "x$VERBOSE" = xx; then
  set -x
else
  :
fi
