summaryrefslogtreecommitdiff
path: root/tests/defs.in
diff options
context:
space:
mode:
Diffstat (limited to 'tests/defs.in')
-rw-r--r--tests/defs.in244
1 files changed, 244 insertions, 0 deletions
diff --git a/tests/defs.in b/tests/defs.in
new file mode 100644
index 000000000..e2c0997f8
--- /dev/null
+++ b/tests/defs.in
@@ -0,0 +1,244 @@
+# -*- shell-script -*-
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Automake.
+#
+# GNU Automake is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Automake is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with autoconf; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Defines for Automake testing environment.
+# Tom Tromey <tromey@cygnus.com>
+
+# Ensure we are running from the right directory.
+test -f ./defs || {
+ echo "defs: not found in current directory" 1>&2
+ exit 1
+}
+
+# If srcdir is not set, then we are not running from `make check', be verbose.
+if test -z "$srcdir"; then
+ test -z "$VERBOSE" && VERBOSE=x
+ # compute $srcdir.
+ srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'`
+ test $srcdir = $0 && srcdir=.
+fi
+
+# Ensure $srcdir is set correctly.
+test -f $srcdir/defs.in || {
+ echo "$srcdir/defs.in not found, check \$srcdir" 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
+}
+
+# User can override various tools used.
+#est -z "$SHELL" && SHELL=/bin/sh
+test -z "$PERL" && PERL='@PERL@'
+test -z "$MAKE" && MAKE=make
+test -z "$AUTOCONF" && AUTOCONF="@AUTOCONF@"
+test -z "$AUTOHEADER" && AUTOHEADER="@AUTOHEADER@"
+test -z "$AUTOUPDATE" && AUTOUPDATE=autoupdate
+
+if test -n "$required"
+then
+ for tool in $required
+ do
+ # Check that each required tool is present.
+ case $tool in
+ bison)
+ # Since bison is required, we pick YACC for ./configure.
+ YACC='bison -y'
+ export YACC
+ echo "$me: running bison --version"
+ ( bison --version ) || exit 77
+ ;;
+ GNUmake)
+ echo "$me: running $MAKE --version"
+ ( $MAKE --version ) || exit 77
+ ;;
+ gcc)
+ # When gcc is required, export `CC=gcc' so that ./configure
+ # always use it. This is important only when the user
+ # has defined CC in his environment, otherwise ./configure will
+ # prefer gcc to other compilers.
+ CC=gcc
+ export CC
+ echo "$me: running $CC --version"
+ ( $CC --version ) || exit 77
+ ;;
+ g++)
+ CXX=g++
+ export CXX
+ echo "$me: running $CXX --version"
+ ( $CXX --version ) || exit 77
+ ;;
+ non-root)
+ # Skip this test case if the user is root.
+ # We try to append to a read-only file to detect this.
+ priv_check_temp=priv-check.$$
+ touch $priv_check_temp || exit 1
+ chmod a-w $priv_check_temp || exit 1
+ (echo foo >> $priv_check_temp) >/dev/null 2>&1
+ overwrite_status=$?
+ rm -f $priv_check_temp
+ test $overwrite_status = 0 && exit 77
+ ;;
+ # Generic case: the tool must support --version.
+ *)
+ echo "$me: running $tool --version"
+ ( $tool --version ) || exit 77
+ ;;
+ esac
+ # Additional variables to define if some $tool is required.
+ case $tool in
+ gcc)
+ ;;
+ esac
+ 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
+
+# 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
+
+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
+ # Use -Wall -Werror by default. Tests for which this is inappropriate
+ # (e.g. when testing that a warning is enabled by a specific switch)
+ # should use -Wnone or/and -Wno-error
+ AUTOMAKE="$PERL `pwd`/../../automake --libdir=$srcdir/../lib --foreign -Werror -Wall"
+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 `pwd`/../../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`
+extra_includes=""
+if [ -f $aclocaldir/dirlist ] ; then
+ extra_includes=`(tmp_inc=""
+ while read LINE ; do
+ tmp_inc="$tmp_inc -I $LINE"
+ done
+ echo $tmp_inc) < $aclocaldir/dirlist`
+fi
+case $required in
+ *libtool* )
+ libtool_found=no
+ for d in $extra_includes $aclocaldir ; do
+ if [ "x$d" != "x-I" ] && [ -f "$d/libtool.m4" ] ; then
+ libtool_found=yes
+ fi
+ done
+ test "x$libtool_found" = "xyes" || exit 77
+ ACLOCAL="$ACLOCAL -I $srcdir/../m4 $extra_includes -I $aclocaldir"
+ ;;
+ *gettext* )
+ gettext_found=no
+ for d in $extra_includes $aclocaldir ; do
+ if [ "x$d" != "x-I" ] && [ -f "$d/gettext.m4" ] ; then
+ gettext_found=yes
+ fi
+ done
+ test "x$gettext_found" = "xyes" || exit 77
+ ACLOCAL="$ACLOCAL -I $srcdir/../m4 $extra_includes -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
+
+# POSIX no longer requires 'egrep' and 'fgrep',
+# but some hosts lack 'grep -E' and 'grep -F'.
+EGREP='@EGREP@'
+FGREP='@FGREP@'
+
+# 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
+pwd