#! /bin/sh
# Generated from libtoolize.m4sh; do not edit by hand

# libtoolize (GNU libtool) 1.9f
# Written by Gary V. Vaughan <gary@gnu.org>, 2003

# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions.  There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# This program 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.
#
# This program 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 this program; if not, a copy can be downloaded from
# http://www.gnu.org/copyleft/gpl.html, or by writing to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
# MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.

# Usage: $progname [OPTION]...
#
# Prepare a package to use libtool.
#
# -c, --copy            copy files rather than symlinking them
#     --debug           enable verbose shell tracing
# -n, --dry-run         print commands rather than running them
# -f, --force           replace existing files
# -i, --install         copy missing auxiliary files
#     --ltdl[=DIR]      install libltdl in a subdirectory [default: libltdl]
# -q, --quiet           work silently
# -v, --verbose         verbosely report processing
#     --version         print version information and exit
# -h, --help            print short or long help message
#
# You must `cd' to the top directory of your package before you run
# `$progname'.
#
# When reporting a bug, please describe a test case to reproduce it and
# include the following information:
#
#       host-triplet:	i686-pc-cygwin
#       $progname:	(GNU libtool) 1.9f
#       automake:		$automake_version
#       autoconf:		$autoconf_version
#
# Report bugs to <bug-libtool@gnu.org>.

PROGRAM=libtoolize

## --------------------- ##
## M4sh Initialization.  ##
## --------------------- ##

# Be Bourne compatible
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  emulate sh
  NULLCMD=:
  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
  set -o posix
fi
DUALCASE=1; export DUALCASE # for MKS sh

# Support unset when possible.
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
  as_unset=unset
else
  as_unset=false
fi


# Work around bugs in pre-3.0 UWIN ksh.
$as_unset ENV MAIL MAILPATH
PS1='$ '
PS2='> '
PS4='+ '

# NLS nuisances.
for as_var in \
  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
  LC_TELEPHONE LC_TIME
do
  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
    eval $as_var=C; export $as_var
  else
    $as_unset $as_var
  fi
done

# Required to use basename.
if expr a : '\(a\)' >/dev/null 2>&1; then
  as_expr=expr
else
  as_expr=false
fi

if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi


# Name of the executable.
as_me=`$as_basename "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)$' \| \
	 .     : '\(.\)' 2>/dev/null ||
echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
  	  /^X\/\(\/\).*/{ s//\1/; q; }
  	  s/.*/./; q'`


$as_unset CDPATH



: ${CP="cp -f"}
: ${ECHO="echo"}
: ${EGREP="grep -E"}
: ${FGREP="grep -F"}
: ${GREP="grep"}
: ${LN_S="ln -s"}
: ${MAKE="make"}
: ${MKDIR="mkdir"}
: ${MV="mv -f"}
: ${RM="rm -f"}
: ${SED="/bin/sed"}
: ${Xsed="$SED -e s/^X//"}

# Global variables:
EXIT_SUCCESS=0
EXIT_FAILURE=1
EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.

exit_status=$EXIT_SUCCESS

# Make sure IFS has a sensible default
: ${IFS="
 	"}

dirname="s,/[^/]*$,,"
basename="s,^.*/,,g"

# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
# is ksh but when the shell is invoked as "sh" and the current value of
# the _XPG environment variable is not equal to 1 (one), the special
# positional parameter $0, within a function call, is the name of the
# function.
progpath="$0"

# The name of this program:
# In the unlikely event $progname began with a '-', it would play havoc with
# func_echo (imagine progname=-n), so we prepend ./ in that case:
progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`

# Make sure we have an absolute path for reexecution:
case $progpath in
  [\\/]*|[A-Za-z]:\\*) ;;
  *[\\/]*)
     progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
     progdir=`cd "$progdir" && pwd`
     progpath="$progdir/$progname"
     ;;
  *)
     save_IFS="$IFS"
     IFS=:
     for progdir in $PATH; do
       IFS="$save_IFS"
       test -x "$progdir/$progname" && break
     done
     IFS="$save_IFS"
     test -n "$progdir" || progdir=`pwd`
     progpath="$progdir/$progname"
     ;;
esac

# Sed substitution that helps us do robust quoting.  It backslashifies
# metacharacters that are still active within double-quoted strings.
Xsed="${SED}"' -e 1s/^X//'
sed_quote_subst='s/\([`"$\\]\)/\\\1/g'

# Same as above, but do not quote variable references.
double_quote_subst='s/\(["`\\]\)/\\\1/g'

# Re-`\' parameter expansions in output of double_quote_subst that were
# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
# in input to double_quote_subst, that '$' was protected from expansion.
# Since each input `\' is now two `\'s, look for any number of runs of
# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.  Note
# that the embedded single quotes serve only to enhance readability.
sed_double_backslash='s/^\(\(''\\\\''\\\\''\)*''\\\\''\)\$/\1\\$/;
                s/\([^\\]\(''\\\\''\\\\''\)*''\\\\''\)\$/\1\\$/g'

# test EBCDIC or ASCII
case `$ECHO A|tr A '\301'` in
 A) # EBCDIC based system
  SP2NL="tr '\100' '\n'"
  NL2SP="tr '\r\n' '\100\100'"
  ;;
 *) # Assume ASCII based system
  SP2NL="tr '\040' '\012'"
  NL2SP="tr '\015\012' '\040\040'"
  ;;
esac

# Standard options:
opt_dry_run=false
opt_help=false
opt_quiet=false
opt_verbose=false

# func_echo arg...
# Echo program name prefixed message, along with the current mode
# name if it has been set yet.
func_echo ()
{
    $ECHO "$progname${mode+: }$mode: "${1+"$@"}
}

# func_verbose arg...
# Echo program name prefixed message in verbose mode only.
func_verbose ()
{
    $opt_verbose && func_echo ${1+"$@"}

    # A bug in bash halts the script if the last line of a function
    # fails when set -e is in force, so we need another command to
    # work around that:
    :
}

# func_error arg...
# Echo program name prefixed message to standard error.
func_error ()
{
    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
}

# func_warning arg...
# Echo program name prefixed warning message to standard error.
func_warning ()
{
    $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
}

# func_fatal_error arg...
# Echo program name prefixed message to standard error, and exit.
func_fatal_error ()
{
    func_error ${1+"$@"}
    exit $EXIT_FAILURE
}

# func_fatal_help arg...
# Echo program name prefixed message to standard error, followed by
# a help hint, and exit.
func_fatal_help ()
{
    func_error ${1+"$@"}
    func_fatal_error "$help"
}
help="Try \`$progname --help' for more information."  ## default


# func_grep expression filename
# Check whether EXPRESSION matches any line of FILENAME, without output.
func_grep ()
{
    $GREP "$1" "$2" >/dev/null 2>&1
}


# func_mkdir_p directory-path
# Make sure the entire path to DIRECTORY-PATH is available.
func_mkdir_p ()
{
    my_directory_path="$1"
    my_dir_list=

    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then

      # Protect directory names starting with `-'
      case $my_directory_path in
        -*) my_directory_path="./$my_directory_path" ;;
      esac

      # While some portion of DIR does not yet exist...
      while test ! -d "$my_directory_path"; do
        # ...make a list in topmost first order.  Use a colon delimited
	# list incase some portion of path contains whitespace.
        my_dir_list="$my_directory_path:$my_dir_list"

        # If the last portion added has no slash in it, the list is done
        case $my_directory_path in */*) ;; *) break ;; esac

        # ...otherwise throw away the child directory and loop
        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
      done
      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`

      save_mkdir_p_IFS="$IFS"; IFS=':'
      for my_dir in $my_dir_list; do
	IFS="$save_mkdir_p_IFS"
        # mkdir can fail with a `File exist' error if two processes
        # try to create one of the directories concurrently.  Don't
        # stop in that case!
        $MKDIR "$my_dir" 2>/dev/null || :
      done
      IFS="$save_mkdir_p_IFS"

      # Bail out if we (or some other process) failed to create a directory.
      test -d "$my_directory_path" || \
        func_fatal_error "Failed to create \`$1'"
    fi
}


# func_mktempdir
# Make a temporary directory that won't clash with other running
# libtool processes, and avoids race conditions if possible
func_mktempdir ()
{
    my_template="${TMPDIR-/tmp}/libtool"

    if test "$opt_dry_run" = ":"; then
      # Return a directory name, but don't create it in dry-run mode
      my_tmpdir="${my_template}-$$"
    else

      # If mktemp works, use that first and foremost
      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`

      if test ! -d "$my_tmpdir"; then
        # Failing that, at least try and use $RANDOM to avoid a race
        my_tmpdir="${my_template}-${RANDOM-0}$$"

        save_mktempdir_umask=`umask`
        umask 0077
        $MKDIR "$my_tmpdir"
        umask $save_mktempdir_umask
      fi

      # If we're not in dry-run mode, bomb out on failure
      test -d "$my_tmpdir" || \
        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
    fi

    $ECHO "X$my_tmpdir" | $Xsed
}


# func_quote_for_eval arg
# Aesthetically quote ARG to be evaled later.
func_quote_for_eval ()
{
    my_arg=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"`

    case $my_arg in
      # Double-quote args containing shell metacharacters to delay
      # word splitting, command substitution and and variable
      # expansion for a subsequent eval.
      # Many Bourne shells cannot handle close brackets correctly
      # in scan sets, so we specify it separately.
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
        my_arg="\"$my_arg\""
        ;;
    esac

    func_quote_for_eval_result="$my_arg"
}


# func_quote_for_expand arg
# Aesthetically quote ARG to be evaled later; same as above,
# but do not quote variable references.
func_quote_for_expand ()
{
    my_arg=`$ECHO "X$1" | $Xsed \
        -e "$double_quote_subst" -e "$sed_double_backslash"`

    case $my_arg in
      # Double-quote args containing shell metacharacters to delay
      # word splitting and command substitution for a subsequent eval.
      # Many Bourne shells cannot handle close brackets correctly
      # in scan sets, so we specify it separately.
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
        my_arg="\"$my_arg\""
        ;;
    esac

    func_quote_for_expand_result="$my_arg"
}


# func_show_eval cmd [fail_exp]
# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
# is given, then evaluate it.
func_show_eval ()
{
    my_cmd="$1"
    my_fail_exp="${2-:}"

    ${opt_silent-false} || {
      func_quote_for_expand "$my_cmd"
      eval "func_echo $func_quote_for_expand_result"
    }

    ${opt_dry_run-false} || eval "$my_cmd" || eval "$my_fail_exp"
}


# func_version
# Echo version message to standard output and exit.
func_version ()
{
    $SED '/^# '$PROGRAM' (GNU /,/# warranty; / {
        s/^# //; s/^# *$//;
        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/;
        p;
     }; d' < "$progpath"
     exit $EXIT_SUCCESS
}

# func_usage
# Echo short help message to standard output and exit.
func_usage ()
{
    $SED '/^# Usage:/,/# -h/ {
        s/^# //; s/^# *$//;
	s/\$progname/'$progname'/;
	p;
    }; d' < "$progpath"
    $ECHO
    $ECHO "run \`$progname --help | more' for full usage"
    exit $EXIT_SUCCESS
}

# func_help
# Echo long help message to standard output and exit.
func_help ()
{
    $SED '/^# Usage:/,/# Report bugs to/ {
        s/^# //; s/^# *$//;
	s*\$progname*'$progname'*;
	s*\$SHELL*'"$SHELL"'*;
	s*\$LTCC*'"$LTCC"'*;
	s*\$LTCFLAGS*'"$LTCFLAGS"'*;
	s*\$LD*'"$LD"'*;
	s/\$with_gnu_ld/'"$with_gnu_ld"'/;
	s/\$automake_version/'"`automake --version 2>/dev/null |$SED 1q`"'/;
	s/\$autoconf_version/'"`autoconf --version 2>/dev/null |$SED 1q`"'/;
	p;
     }; d' < "$progpath"
    exit $EXIT_SUCCESS
}

# func_missing_arg argname
# Echo program name prefixed message to standard error and set global
# exit_cmd.
func_missing_arg ()
{
    func_error "missing argument for $1"
    exit_cmd=exit
}

exit_cmd=:


# Command line options:
opt_force=false
opt_install=false
opt_link=:

seen_libtool=false
seen_ltdl=false

# Collect flags to pass into libltdl libtoolize
libtoolize_flags=

# Locations for important files:
prefix=/usr/autotool/devel
datadir=/usr/autotool/devel/share
pkgdatadir=/usr/autotool/devel/share/libtool
aclocaldir=/usr/autotool/devel/share/aclocal
auxdir=
m4dir=
ltdldir=
configure_ac=configure.in


# Parse options once, thoroughly.  This comes as soon as possible in
# the script to make things like `libtoolize --version' happen quickly.
{
  # sed scripts:
  my_sed_single_opt='1s/^\(..\).*$/\1/;q'
  my_sed_single_rest='1s/^..\(.*\)$/\1/;q'
  my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
  my_sed_long_arg='1s/^--[^=]*=//'

  while test "$#" -gt 0; do
    opt="$1"
    shift
    case $opt in
      --copy|-c)	opt_link=false
      			libtoolize_flags="$libtoolize_flags --copy"
	    		;;

      --debug)		func_echo "enabling shell trace mode"
			set -x
			;;

      --dry-run|-n)	if $opt_dry_run; then :; else
			  opt_dry_run=:
			  RM="$ECHO $RM"
			  test -n "$LN_S" && LN_S="$ECHO $LN_S"
			  CP="$ECHO $CP"
			  MKDIR="$ECHO $MKDIR"
			fi
      			libtoolize_flags="${libtoolize_flags} --dry-run"
			;;

      --force|-f)	opt_force=:
      			libtoolize_flags="${libtoolize_flags} --force"
			;;

      --install|-i)	opt_install=:
      			libtoolize_flags="${libtoolize_flags} --install"
			;;

      --ltdl)		ltdldir=libltdl
      			if test "$#" -gt 0; then
			  case $1 in
			    -*)				;;
			    *)  ltdldir="$1"; shift	;;
			  esac
			fi
			;;

      --quiet|--automake|-q) # --automake is for 1.5 compatibility
			opt_quiet=:
      			libtoolize_flags="${libtoolize_flags} --quiet"
			;;

      --verbose|-v)	opt_verbose=:
      			libtoolize_flags="${libtoolize_flags} --verbose"
			;;

      # Separate optargs to long options:
      --ltdl=*)
      			arg=`$ECHO "X$opt" | $Xsed -e "$my_sed_long_arg"`
			opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_long_opt"`
			set -- "$opt" "$arg" ${1+"$@"}
			;;

      # Separate non-argument short options:
      -c*|-i*|-f*|-n*|-q*|-v*)
			rest=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_rest"`
			opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_opt"`
			set -- "$opt" "-$rest" ${1+"$@"}
			;;

      -\?|-h)		func_usage					;;
      --help)		func_help					;;
      --version)	func_version					;;
      --)		break						;;
      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
      *)		func_fatal_help "too many arguments"		;;
    esac
  done
}


# func_copy srcfile destfile
# If option `--copy' was specified, or soft-linking SRCFILE to DESTFILE fails,
# then try to copy SRCFILE to DESTFILE.
func_copy ()
{
    my_srcfile="$1"
    my_destfile="$2"
    my_return_status=1

    func_mkdir_p `$ECHO "X$my_destfile" | $Xsed -e "$dirname"`

    $RM "$my_destfile"
    if $opt_link && $LN_S "$my_srcfile" "$my_destfile"; then
      $opt_quiet || func_echo "copying file \`$my_destfile'"
      my_return_status=0
    elif $CP "$my_srcfile" "$my_destfile"; then
      $opt_quiet || func_echo "copying file \`$my_destfile'"
      my_return_status=0
    else
      func_error "can not copy \`$my_srcfile' to \`$my_destfile'"
      exit_status=$EXIT_FAILURE
    fi

    return $my_return_status
}

# func_copy_all_files [-r] srcdir destdir [glob_exclude] [copy_cb=func_copy]
# For each file in SRCDIR, then try to copy the file to DESTDIR by calling
# COPY_CB with the src and dest files.  With the `-r' option, recurse into
# subdirectories of srcdir too.  If GLOB_EXCLUDE is given, exclude any
# matching filenames from the copy.  If COPY_CB is passed, then the check
# for overwriting without opt_force is the callbacks responsibility:  This
# allows using callbacks like func_serial_update, which perform their own
# checks to decide whether to overwrite the dest file.
func_copy_all_files ()
{
    my_opt_recurse=false
    if test "X$1" = X-r; then
      my_opt_recurse=:
      shift
    fi

    my_srcdir="$1"
    my_destdir="$2"
    my_glob_exclude="$3"
    my_copy_cb="${4-func_copy}"

    my_srcfiles=
    my_basedir="$my_srcdir"
    my_srcdirs="$my_srcdir"
    my_save_IFS="$IFS"
    IFS=:
    while test -n "$my_srcdirs"; do

      IFS="$my_save_IFS"
      my_srcdir=`$ECHO "X$my_srcdirs" | $Xsed -e 's,:.*,,g'`
      my_srcdirs=`$ECHO "X$my_srcdirs" | $Xsed -e 's,:*[^:][^:]*:*,,'`

      for my_filename in `cd "$my_srcdir" && ls`; do

        # ignore excluded filenames
        if test -n "$my_glob_exclude"; then
          eval 'case $my_filename in '$my_glob_exclude') continue ;; esac'
        fi

	# Add to the appropriate list
	if test -f "$my_srcdir/$my_filename"; then
	  my_srcfile=`$ECHO "X$my_srcdir/$my_filename" | $Xsed \
	      -e "s,^$my_basedir/*,,"`
	  my_srcfiles="$my_srcfiles${my_srcfiles:+:}$my_srcfile"
	elif $my_opt_recurse && test -d "$my_srcdir/$my_filename"; then
	  my_srcdirs="$my_srcdirs${my_srcdirs:+:}$my_srcdir/$my_filename"
	fi

      done
    done
    IFS="$my_save_IFS"

    func_copy_some_files "$my_basedir" "$my_srcfiles" \
      "$my_destdir" "$my_copy_cb"
}


# func_copy_some_files srcdir srcfile_spec destdir [copy_cb=func_copy]
# Call COPY_CB for each regular file in SRCDIR named by the ':' delimited
# names in SRCFILE_SPEC.  The odd calling convention is needed to allow
# spaces in file and directory names.
func_copy_some_files ()
{
    my_srcdir="$1"
    my_srcfile_spec="$2"
    my_destdir="$3"
    my_copy_cb="${4-func_copy}"

    my_save_IFS="$IFS"
    IFS=:
    for my_filename in $my_srcfile_spec; do

      IFS="$my_save_IFS"
      if test -f "$my_srcdir/$my_filename"; then
        if test "X$my_copy_cb" = Xfunc_copy; then
	  $opt_force || if test -f "$my_destdir/$my_filename"; then
  	    $opt_quiet \
	      || func_error "\`$my_destdir/$my_filename' exists: use \`--force' to overwrite"
	    continue
	  fi
        fi
      else
        # Not a regular file
        continue
      fi

      $my_copy_cb "$my_srcdir/$my_filename" "$my_destdir/$my_filename"
    done
    IFS="$my_save_IFS"
}

# func_scan_files
# Scan configure.(ac|in) and aclocal.m4 (if present) for use of libltdl
# and libtool.  Possibly running some of these tools if necessary.
# Libtoolize affects the contents of aclocal.m4, and should be run before
# aclocal, so we can't use configure --trace which relies on a consistent
# configure.(ac|in) and aclocal.m4.
func_scan_files ()
{
    # Prefer configure.ac to configure.in
    test -f configure.ac && configure_ac=configure.ac
    test -f "$configure_ac" \
        || func_fatal_help "\`$configure_ac' does not exist"

    test -n "`cd $pkgdatadir && ls`" \
        || func_fatal_error "can not list files in \`$pkgdatadir'"


    # Set local variables to reflect contents of configure.ac
    my_uses_autoconf=false
    my_sed_scan_configure_ac='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
	/AC_INIT/ { s,^.*$,my_uses_autoconf=:,; p; };
	d'
    eval `$SED "$my_sed_scan_configure_ac" "$configure_ac"`

    $my_uses_autoconf || {
        func_verbose "$configure_ac: not using Autoconf"
	return
    }

    # ---------------------------------------------------- #
    # Probe macro usage in configure.ac and/or aclocal.m4. #
    # ---------------------------------------------------- #

    my_sed_traces='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
    	/AC_CONFIG_AUX_DIR[^_]/  {
	    s,^.*AC_CONFIG_AUX_DIR([[ 	]*\([^])]*\).*$,auxdir=\1,; p;
        };
    	/AC_CONFIG_MACRO_DIR/   {
	    s,^.*AC_CONFIG_MACRO_DIR([[ 	]*\([^])]*\).*$,m4dir=\1,; p;
        };
	/A[CM]_PROG_LIBTOOL/ { s,^.*$,seen_libtool=:,; p; };
	/LT_INIT/	     { s,^.*$,seen_libtool=:,; p; };
	/LTDL_INIT/          { s,^.*$,seen_ltdl=:,; p; };
	/LT_WITH_LTDL/       { s,^.*$,seen_ltdl=:,; p; };
	/AC_LIB_LTDL/        { s,^.*$,seen_ltdl=:,; p; };
	/AC_WITH_LTDL/       { s,^.*$,seen_ltdl=:,; p; };
	d;'
    eval `cat aclocal.m4 "$configure_ac" 2>/dev/null | $SED "$my_sed_traces"`


    # ---------------- #
    # Validate auxdir. #
    # ---------------- #

    if test -n "$auxdir"; then
      # If $configure_ac contains AC_CONFIG_AUX_DIR, check that it was
      # not given in terms of a shell variable!
      case "$auxdir" in
      *\$*)
        func_fatal_error "can not handle variables in AC_CONFIG_AUX_DIR"
        ;;
      *);;
      esac
    else
      # Try to discover auxdir the same way it is discovered by configure.
      # Note that we default to the current directory.
      for dir in . .. ../..; do
        if test -f "$dir/install-sh"; then
          auxdir=$dir
          break
        elif test -f "$dir/install.sh"; then
          auxdir="$dir"
          break
        fi
      done
    fi

    # Just use the current directory if all else fails.
    test -n "$auxdir" || auxdir=.


    # ------------------------------ #
    # Find local m4 macro directory. #
    # ------------------------------ #

    # If AC_CONFIG_MACRO_DIR turned nothing up, we hunt for ACLOCAL_AMFLAGS
    # in `Makefile.am' for a `-I' argument.

    my_sed_aclocal_flags='/^[ 	]*ACLOCAL_[A-Z_]*FLAGS[ 	]*=/ {
	s,^[^=]*=[ 	]*\(.*\), \1,; q; }; d'
    if test ! -n "$m4dir" && test -f Makefile.am; then
      my_m4dir_is_next=false
      for arg in `$SED "$my_sed_aclocal_flags" Makefile.am`; do
        if $my_m4dir_is_next; then
          m4dir="$arg"
          break
        else
          if test "X$arg" = "X-I"; then
            my_m4dir_is_next=:
          else
            my_m4dir_is_next=false
          fi
        fi
      done
    fi
}

# func_included_files searchfile
# Output INCLUDEFILE if SEARCHFILE m4_includes it, else output SEARCHFILE.
func_included_files ()
{
    my_searchfile="$1"

    my_include_regex=
    my_sed_include='
        /^m4_include(\[.*\])$/ { s,^m4_include(\[\(.*\)\])$,\1,; p; };
        d'

    if test -f "$my_searchfile"; then
      $ECHO "X$my_searchfile" | $Xsed
    fi

    # Only recurse when we don't care if all the variables we use get
    # trashed, since they are in global scope.
    for my_filename in `$SED "$my_sed_include" "$my_searchfile"`; do
      func_included_files $my_filename
    done
}

# func_serial filename [macro_regex]
# Output the value of the serial number comment in FILENAME, where the
# comment line must also match MACRO_REGEX, if given.
func_serial ()
{
    my_filename="$1"
    my_macro_regex="$2"
    my_sed_serial='/^# serial [1-9][0-9]*[ 	]*'"$my_macro_regex"'[ 	]*$/ {
	  s,^# serial \([1-9][0-9]*\).*$,\1,; q;
	}; d'

    # Search FILENAME and all the files it m4_includes for a serial number
    # in the file that AC_DEFUNs MACRO_REGEX.
    my_serial=
    for my_file in `func_included_files "$my_filename"`; do
      if test -z "$my_macro_regex" ||
         func_grep '^AC_DEFUN(\['"$my_macro_regex" "$my_file"
      then
        my_serial=`$SED -e "$my_sed_serial" "$my_file"`
	break
      fi
    done

    # If the file has no serial number, we assume it's ancient.
    test -n "$my_serial" || my_serial=0

    $ECHO $my_serial
}

# func_serial_update srcfile destfile [macro_regex] [old_macro_regex]
# Copy SRCFILE to DESTFILE provided SRCFILE has a newer serial number, or
# DESTFILE does not yet exist, or the user specified `--force'.  If given,
# MACRO_REGEX or OLD_MACRO_REGEX must match any text after "# serial N" in
# both files.
func_serial_update ()
{
    my_srcfile="$1"
    my_destfile="$2"
    my_macro_regex="$3"
    my_old_macro_regex="$4"

    my_return_status=1
    my_update_p=:

    if test -f "$my_destfile"; then
      my_src_serial=`func_serial "$my_srcfile" "$my_macro_regex"`
      # Strictly, this libtoolize ought not to have to deal with ancient
      # serial formats, but we accept them here to be complete:
      test "$my_src_serial" -eq 0 &&
        my_src_serial=`func_serial "$my_srcfile" "$my_old_macro_regex"`

      my_dest_serial=`func_serial "$my_destfile" "$my_macro_regex"`
      test "$my_dest_serial" -eq 0 &&
        my_dest_serial=`func_serial "$my_destfile" "$my_old_macro_regex"`

      test "$my_src_serial" -eq 0 && {
        func_error "warning: no serial number on \`$my_srcfile', not copying."
	return
      }

      # Only perform the file update if the destination has an older serial.
      test "$my_src_serial" -gt "$my_dest_serial" || my_update_p=false

      test "$my_src_serial" -gt "$my_dest_serial" \
        && func_verbose "\`$my_srcfile' is serial $my_srcserial, greater than $my_destserial in \`$my_destfile'"

      if test "$my_src_serial" -lt "$my_dest_serial"; then
        func_error "\`$my_srcfile' is serial $my_srcserial, less than $my_destserial in \`$my_destfile'"
	$opt_force \
          || func_fatal_error "Use \`--force' to replace newer libtool files with this version."
      fi
    fi

    if $my_update_p || $opt_force; then
      func_copy "$my_srcfile" "$my_destfile"
      my_return_status=$?
    else
      $opt_quiet \
        || func_echo "\`$my_destfile' is already up to date."
    fi

    # Do this after the copy for hand maintained `aclocal.m4', incase
    # it has `m4_include([DESTFILE])', so the copy effectively already
    # updated `aclocal.m4'.
    $use_aclocal || if test -f aclocal.m4; then
      test "$my_src_serial" -gt `func_serial aclocal.m4 "$my_macro_regex"` \
	  && func_echo "You should add the contents of \'$my_destfile' to \`aclocal.m4'."
    fi

    return $my_return_status
}

# func_check_macros
# Sanity check macros from aclocal.m4 against installed versions.
func_check_macros ()
{
    # Don't trace for this, we're just checking the user didn't invoke it
    # directly from configure.ac.
    $SED 's,dnl .*$,,; s,# .*$,,' "$configure_ac" | grep AC_PROG_RANLIB \
      && func_echo "\`AC_PROG_RANLIB' is rendered obsolete by \`LT_INIT'"

    $seen_libtool \
      || func_echo "Remember to add \`LT_INIT' to \`$configure_ac'."

    # FIXME: Ensure ltmain.sh, libtool.m4 and ltdl.m4 are from the same release
}

# func_ltmain_update srcfile destfile
# Copy SRCFILE to DESTFILE provided SRCFILE has a newer VERSION/TIMESTAMP,
# or DESTFILE does not yet exist, or the user specified `--force'.
func_ltmain_update ()
{
    my_srcfile="$1"
    my_destfile="$2"
    my_sed_ltmain='
	s,^VERSION=[^0-9]*\(.*\)[ 	]*$,\1,; t
	s,^TIMESTAMP=[^0-9]*\([.0-9]*\) .*$,\1,; t
	d'

    if test -f "$my_srcfile"; then :
    else
      func_error "\`$my_srcfile' does not exist."
      return
    fi

    # FIXME:  check versions, and only downgrade with --force
    cmp -s  "$my_srcfile" "$my_destfile"
    if test "$?" -ne 0 || $opt_force; then
      func_copy "$my_srcfile" "$my_destfile"
    else
      $opt_quiet \
        || func_echo "\`$my_destfile' is already up to date."
    fi
}

# func_config_update srcfile destfile
# Copy SRCFILE to DESTFILE provided SRCFILE has a newer TIMESTAMP,
# or DESTFILE does not yet exist, or the user specified `--force'.
func_config_update ()
{
    my_srcfile="$1"
    my_destfile="$2"
    my_sed_config='s,^timestamp=[^0-9]*\([.0-9-]*\)[^0-9].*$,\1,; t; d'

    if test -f "$my_srcfile"; then :
    else
      func_error "\`$my_srcfile' does not exist."
      return
    fi

    # FIXME:  check versions, and only downgrade with --force
    cmp -s  "$my_srcfile" "$my_destfile"
    if test "$?" -ne 0 || $opt_force; then
      func_copy "$my_srcfile" "$my_destfile"
    else
      $opt_quiet \
        || func_echo "\`$my_destfile' is already up to date."
    fi
}



## ----------- ##
##    Main.    ##
## ----------- ##

{
  rerun_aclocal=false

  # NOTE: PKGMACRO_FILES must be kept in synch with aclocal_DATA in the
  #       libtool top_srcdir/Makefile.am (libtool.m4 and ltdl.m4 are handled
  #       specially below though, so don't add them here):
  pkgmacro_files='argz.m4:ltoptions.m4:ltsugar.m4:ltversion.m4'

  glob_exclude_pkgaux_files='config.guess|config.sub|ltmain.sh'

  func_scan_files
  $opt_quiet || func_check_macros

  # Copy all the files from installed libltdl to this project, if the
  # user specified `--ltdl'.
  if test -n "$ltdldir"; then
    eval func_copy_all_files -r "$pkgdatadir/libltdl" "$ltdldir"

    # libtoolize the newly copied libltdl tree
    ( cd "$ltdldir" && "$progpath" $libtoolize_flags ) || exit $EXIT_FAILURE
  fi

  # Copy all the installed utility files to the auxiliary directory if
  # `--install' was passed, or else copy just ltmain.sh.
  $opt_quiet || if test "$auxdir" != .; then
    func_echo "putting files in AC_CONFIG_AUX_DIR, \`$auxdir'."
  fi
  if $opt_install || $opt_force; then
    func_copy_all_files "$pkgdatadir" "$auxdir" "$glob_exclude_pkgaux_files"
    func_config_update "$pkgdatadir/config.guess" "$auxdir/config.guess"
    test -f "$pkgdatadir/config.sub" \
      && func_config_update "$pkgdatadir/config.sub" "$auxdir/config.sub"
  fi
  func_ltmain_update "$pkgdatadir/ltmain.sh" "$auxdir/ltmain.sh"

  # Copy libtool's m4 macros to the macro directory, if they are newer.
  if test -n "$m4dir"; then
    libtool_m4="$aclocaldir/libtool.m4"
    ltdl_m4="$aclocaldir/ltdl.m4"

    $opt_quiet || func_echo "putting macros in AC_CONFIG_MACRO_DIR, \`$m4dir'."

    func_serial_update  "$libtool_m4" "$m4dir/libtool.m4" \
      LT_INIT 'A[CM]_PROG_LIBTOOL'

    if $seen_ltdl; then
      func_serial_update "$ltdl_m4" "$m4dir/ltdl.m4" 'LTDL_INIT'
    else
      func_verbose "Not copying \`$ltdl_m4', libltdl not used."
    fi

    func_copy_some_files "$aclocaldir" "$pkgmacro_files" \
      "$m4dir" func_serial_update
  fi
}

exit $exit_status

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