m4_define([_m4_divert(SCRIPT)], 100)
m4_divert_push([SCRIPT])# @configure_input@
# defs -- Defines for Libtool testing environment.
#
#   Copyright (C) 2003, 2004, 2005, 2007, 2008 Free Software
#   Foundation, Inc.
#   Written by Gord Matzigkeit, 1996
#   Rewritten by Gary V. Vaughan, 2003
#
#   This file is part of GNU Libtool.
#
# GNU Libtool 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 of
# the License, or (at your option) any later version.
#
# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
####

AS_SHELL_SANITIZE
$as_unset CDPATH

m4_include([general.m4sh])

M4SH_VERBATIM([[
: ${AUTOCONF="autoconf"}
: ${AUTORECONF="autoreconf"}
: ${LIBTOOL="./libtool"}

# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed="$SED -e 1s/^X//"

# Disable usage of config.site for autoconf, unless DJGPP is present.
# The DJGPP port of autoconf requires config.site, to work correctly.
if test -z "$DJGPP"; then
    CONFIG_SITE=/nonexistent
fi

# How verbose should we be?  Default is no test output.
# Setting VERBOSE=yes enables test output.
# Setting VERBOSE=debug also puts the shell in debug mode.
opt_debug=:
test "${VERBOSE+set}" != "set" && VERBOSE=no
case "$VERBOSE" in
NO | no | 0 | "")
  exec > /dev/null 2>&1
  ;;
DEBUG | debug )
  opt_debug='set -x'
  $opt_debug
  ;;
esac

if test -z "$srcdir"; then
  srcdir=`$ECHO "X$0" | $Xsed -e "$dirname"`
  test "$srcdir" = "$0" && srcdir=.
fi

# func_msg arg...
# Echo message with prefix.
func_msg ()
{
    func_echo "=== " ${1+"$@"}
}

# func_skip arg...
# Echo message to standard error, and skip the rest of this test.
func_skip ()
{
    func_error ${1+"$@"}
    exit $EXIT_SKIP
}

# func_fail arg...
# Echo message to standard error, and fail this test.
func_fail ()
{
    func_fatal_error ${1+"$@"}
}

# func_get_config varname_list src [failp] [regex]
func_get_config ()
{
  $opt_debug
  my_varname_list="$1"
  my_src="$2"
  my_failp="false";  test -z "$3" || my_failp=:
  my_regex="$4"

  my_exitp=false
  if test -z "$my_regex"; then
    my_regex="^("
    my_build_regex=:
  else
    my_build_regex=false
  fi
  my_first=:
  
  for my_varname in $my_varname_list; do
    if $my_build_regex; then
      $my_first || my_regex="$my_regex|"
      my_first=false
      my_regex="$my_regex$my_varname"
    fi
    eval $my_varname=NONE
  done
  $my_build_regex && my_regex="$my_regex)="
  eval `eval "$my_src" | eval "$EGREP \"$my_regex\""`

  for my_varname in $my_varname_list; do
    if eval test x\"\$$my_varname\" = xNONE; then
      func_error "$my_varname not set in \`$my_src'"
      $my_failp && my_exitp=:
    fi
  done

  $my_exitp && exit $EXIT_FAILURE
}


# Extract some variables from the libtool configuration.
func_get_config "objext
objdir
CC
host
host_alias
build
build_alias" "$LIBTOOL --config" ": fatal"


# func_mkprefixdir
func_mkprefixdir ()
{
    $opt_debug
    # An absolute path to a test installation directory.
    func_mkdir_p "$prefix"
    prefix=`cd $prefix && pwd`
}

# func_rmprefixdir
func_rmprefixdir ()
{
    $opt_debug
    test -d $prefix && rm -rf $prefix
    prefix=NONE
}

# func_cd dir
# Make sure a directory exists, and then change to it.
func_cd ()
{
    $opt_debug
    my_dir="$1"

    # Maybe we have a VPATH build, in which case, create a new subdir.
    func_mkdir_p "$my_dir"

    # Change to our build directory.
    cd "$my_dir" || func_fatal_error "couldn't cd to \`$my_dir'"
}


# func_require prereq file [...]
# If FILE does not exist, give a fatal error regarding running PREREQ first.
func_require ()
{
    $opt_debug
    my_prereq="$1"; shift
    my_files=${1+"$@"}

    for my_file in $my_files; do
      test -f "$my_file" \
        || func_skip "You must run ${my_prereq}.test before running $0"
    done
}

# func_configure_nofail [args ...]
# Configure the demonstration.
func_configure_nofail ()
{
    $opt_debug
    my_args=${1+"$@"}
    my_dir=`pwd | $SED "$basename"`
    my_testdir="$srcdir/tests/$my_dir"
    conf_status=$EXIT_FAILURE

    test -n "$my_args" && my_args=" $my_args"
    my_args="--srcdir="\""$my_testdir"\"" --prefix="\""$prefix"\""$my_args"
    test -n "$host_alias" && my_args="$my_args --host=\"$host_alias\""
    test -n "$build_alias" && my_args="$my_args --build=\"$build_alias\""

    func_msg "Configuring in $my_dir"

    test -f "$my_testdir/configure" || ${AUTORECONF} --force --install $my_testdir
    if test -f "$my_testdir/configure"; then

      eval func_msg $SHELL "$my_testdir/configure" $my_args
      if eval $SHELL "$my_testdir/configure" $my_args; then
	conf_status=$EXIT_SUCCESS
      else
	func_msg "FAILED: Configuring in $my_testdir"
	ls -ltr $my_testdir
      fi
    fi
}

# func_configure [args ...]
# Configure the demonstration, fail on error.
func_configure ()
{
    func_configure_nofail ${1+"$@"}
    if test "$conf_status" -eq "$EXIT_FAILURE"; then
      exit $EXIT_FAILURE
    fi
}

# func_check_static_shared staticp sharedp
# Determine whether the generated libtool script is configured properly
# for the expected STATICP and SHAREDP library building
func_check_static_shared ()
{
    $opt_debug
    my_staticp="$1"
    my_sharedp="$2"

    if func_grep "^build_old_libs=$staticp" libtool &&
       func_grep "^build_libtool_libs=$sharedp" libtool; then :
    else
      rm -f Makefile
      exit $EXIT_FAIL
    fi
}


# func_make [args ...]
# Do the actual build.
func_make ()
{
    $opt_debug
    my_args=${1+"$@"}
    my_dir=`pwd | $SED "$basename"`

    func_msg "Running \`$MAKE $my_args' in $my_dir"

    eval $MAKE $my_args || exit $EXIT_FAIL
}


# func_distclean
# Possibly clean up the distribution.
func_make_distclean ()
{
    $opt_debug
    if test -f Makefile; then
      func_make distclean
    fi
    rm -rf autom4te.cache config.cache
}


# func_make_uninstall
# See that there were no files leftover in $prefix.
# Ignore dotfiles, so that .nfsXXX files don't screw up the test.
func_make_uninstall ()
{
    $opt_debug
    func_make uninstall

    leftovers=`find $prefix ! -type d ! -name '.*' -print`
    if test -n "$leftovers"; then
      func_msg "Leftover after make uninstall:"
      ls -l $leftovers
      exit 1
    fi
}


# func_exec_init mode
func_exec_init ()
{
    $opt_debug
    func_msg "Executing $1 programs in $my_dir"

    # Windows hosts search for dlls in the command path
    PATH=$prefix/lib:$PATH

    exec_status=$EXIT_SUCCESS
}

# func_exec_check program [msg ...]
# Check to see if PROGRAM was built. If not display MSG.
func_exec_check ()
{
    $opt_debug
    my_program="$1"

    if test -f "$my_program"; then :
    else
      shift
      func_error "$0: $my_program did not build ${1+$@}"
      exec_status=$EXIT_FAILURE
    fi
}

# func_exec program [exp_output] [msg ...]
# Check to see if PROGRAM really runs, and produces EXP_OUTPUT if given.
# If not display MSG.
func_exec ()
{
    $opt_debug
    my_program="$1"
    my_exp_output="$2"
    my_dir=`pwd | $SED "$basename"`

    test -n "$my_exp_output" \
      && my_exp_output="| $EGREP -e "\""$my_exp_output"\"

    if eval $my_program $my_exp_output; then :
    else
      shift
      test "x$1" = x || shift
      func_error "$0: cannot execute $my_program ${1+$@}"

      if test "$build" != "$host"; then
        func_msg "This may be ok since you seem to be cross-compiling."
	exec_status=$EXIT_SKIP
      else
	# Simple check to see if they are superuser.
	if test $exec_status = $EXIT_FAILURE || test -w /; then :
	else
	  func_msg "You may need to run $0 as the superuser."
	fi
	exec_status=$EXIT_FAILURE
      fi
    fi
}

# Shared global variables for test scripts
prefix="./_inst"
srcdir=`cd $srcdir && pwd`
m4dir=$srcdir/libltdl/m4
auxdir=$srcdir/libltdl/config
scripts="$auxdir/ltmain.sh ./libtoolize"

func_msg "Running $progname"

# Local Variables:
# mode:shell-script
# sh-indentation:2
# End:
]])

