# Configurable variable values for building test suites.
# Generated by ./config.status.
# Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.

# The test suite will define top_srcdir=/../.. etc.
at_testdir='tests'
abs_builddir='/usr/local/google/workspace/WebKit/tools/bison-2.3/tests'
at_srcdir='.'
abs_srcdir='/usr/local/google/workspace/WebKit/tools/bison-2.3/tests'
at_top_srcdir='..'
abs_top_srcdir='/usr/local/google/workspace/WebKit/tools/bison-2.3/tests/..'
at_top_builddir='../'
abs_top_builddir='/usr/local/google/workspace/WebKit/tools/bison-2.3/tests/../.'

AUTOTEST_PATH='tests'

SHELL=${CONFIG_SHELL-'/bin/sh'}
