roentgen b75cab
roentgen b75cab
# libtool (GNU libtool) 2.4.2
roentgen b75cab
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
roentgen b75cab
roentgen b75cab
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
roentgen b75cab
# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
roentgen b75cab
# This is free software; see the source for copying conditions.  There is NO
roentgen b75cab
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
roentgen b75cab
roentgen b75cab
# GNU Libtool is free software; you can redistribute it and/or modify
roentgen b75cab
# it under the terms of the GNU General Public License as published by
roentgen b75cab
# the Free Software Foundation; either version 2 of the License, or
roentgen b75cab
# (at your option) any later version.
roentgen b75cab
#
roentgen b75cab
# As a special exception to the GNU General Public License,
roentgen b75cab
# if you distribute this file as part of a program or library that
roentgen b75cab
# is built using GNU Libtool, you may include this file under the
roentgen b75cab
# same distribution terms that you use for the rest of that program.
roentgen b75cab
#
roentgen b75cab
# GNU Libtool is distributed in the hope that it will be useful, but
roentgen b75cab
# WITHOUT ANY WARRANTY; without even the implied warranty of
roentgen b75cab
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
roentgen b75cab
# General Public License for more details.
roentgen b75cab
#
roentgen b75cab
# You should have received a copy of the GNU General Public License
roentgen b75cab
# along with GNU Libtool; see the file COPYING.  If not, a copy
roentgen b75cab
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
roentgen b75cab
# or obtained by writing to the Free Software Foundation, Inc.,
roentgen b75cab
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
roentgen b75cab
roentgen b75cab
# Usage: $progname [OPTION]... [MODE-ARG]...
roentgen b75cab
#
roentgen b75cab
# Provide generalized library-building support services.
roentgen b75cab
#
roentgen b75cab
#       --config             show all configuration variables
roentgen b75cab
#       --debug              enable verbose shell tracing
roentgen b75cab
#   -n, --dry-run            display commands without modifying any files
roentgen b75cab
#       --features           display basic configuration information and exit
roentgen b75cab
#       --mode=MODE          use operation mode MODE
roentgen b75cab
#       --preserve-dup-deps  don't remove duplicate dependency libraries
roentgen b75cab
#       --quiet, --silent    don't print informational messages
roentgen b75cab
#       --no-quiet, --no-silent
roentgen b75cab
#                            print informational messages (default)
roentgen b75cab
#       --no-warn            don't display warning messages
roentgen b75cab
#       --tag=TAG            use configuration variables from tag TAG
roentgen b75cab
#   -v, --verbose            print more informational messages than default
roentgen b75cab
#       --no-verbose         don't print the extra informational messages
roentgen b75cab
#       --version            print version information
roentgen b75cab
#   -h, --help, --help-all   print short, long, or detailed help message
roentgen b75cab
#
roentgen b75cab
# MODE must be one of the following:
roentgen b75cab
#
roentgen b75cab
#         clean              remove files from the build directory
roentgen b75cab
#         compile            compile a source file into a libtool object
roentgen b75cab
#         execute            automatically set library path, then run a program
roentgen b75cab
#         finish             complete the installation of libtool libraries
roentgen b75cab
#         install            install libraries or executables
roentgen b75cab
#         link               create a library or an executable
roentgen b75cab
#         uninstall          remove libraries from an installed directory
roentgen b75cab
#
roentgen b75cab
# MODE-ARGS vary depending on the MODE.  When passed as first option,
roentgen b75cab
# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
roentgen b75cab
# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
roentgen b75cab
#
roentgen b75cab
# When reporting a bug, please describe a test case to reproduce it and
roentgen b75cab
# include the following information:
roentgen b75cab
#
roentgen b75cab
#         host-triplet:	$host
roentgen b75cab
#         shell:		$SHELL
roentgen b75cab
#         compiler:		$LTCC
roentgen b75cab
#         compiler flags:		$LTCFLAGS
roentgen b75cab
#         linker:		$LD (gnu? $with_gnu_ld)
roentgen b75cab
#         $progname:	(GNU libtool) 2.4.2
roentgen b75cab
#         automake:	$automake_version
roentgen b75cab
#         autoconf:	$autoconf_version
roentgen b75cab
#
roentgen b75cab
# Report bugs to <bug-libtool@gnu.org>.
roentgen b75cab
# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
roentgen b75cab
# General help using GNU software: <http://www.gnu.org/gethelp/>.
roentgen b75cab
roentgen b75cab
PROGRAM=libtool
roentgen b75cab
PACKAGE=libtool
roentgen b75cab
VERSION=2.4.2
roentgen b75cab
TIMESTAMP=""
roentgen b75cab
package_revision=1.3337
roentgen b75cab
roentgen b75cab
# Be Bourne compatible
roentgen b75cab
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
roentgen b75cab
  emulate sh
roentgen b75cab
  NULLCMD=:
roentgen b75cab
  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
roentgen b75cab
  # is contrary to our usage.  Disable this feature.
roentgen b75cab
  alias -g '${1+"$@"}'='"$@"'
roentgen b75cab
  setopt NO_GLOB_SUBST
roentgen b75cab
else
roentgen b75cab
  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
roentgen b75cab
fi
roentgen b75cab
BIN_SH=xpg4; export BIN_SH # for Tru64
roentgen b75cab
DUALCASE=1; export DUALCASE # for MKS sh
roentgen b75cab
roentgen b75cab
# A function that is used when there is no print builtin or printf.
roentgen b75cab
func_fallback_echo ()
roentgen b75cab
{
roentgen b75cab
  eval 'cat <<_LTECHO_EOF
roentgen b75cab
$1
roentgen b75cab
_LTECHO_EOF'
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# NLS nuisances: We save the old values to restore during execute mode.
roentgen b75cab
lt_user_locale=
roentgen b75cab
lt_safe_locale=
roentgen b75cab
for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
roentgen b75cab
do
roentgen b75cab
  eval "if test \"\${$lt_var+set}\" = set; then
roentgen b75cab
          save_$lt_var=\$$lt_var
roentgen b75cab
          $lt_var=C
roentgen b75cab
	  export $lt_var
roentgen b75cab
	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
roentgen b75cab
	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
roentgen b75cab
	fi"
roentgen b75cab
done
roentgen b75cab
LC_ALL=C
roentgen b75cab
LANGUAGE=C
roentgen b75cab
export LANGUAGE LC_ALL
roentgen b75cab
roentgen b75cab
$lt_unset CDPATH
roentgen b75cab
roentgen b75cab
roentgen b75cab
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
roentgen b75cab
# is ksh but when the shell is invoked as "sh" and the current value of
roentgen b75cab
# the _XPG environment variable is not equal to 1 (one), the special
roentgen b75cab
# positional parameter $0, within a function call, is the name of the
roentgen b75cab
# function.
roentgen b75cab
progpath="$0"
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
: ${CP="cp -f"}
roentgen b75cab
test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
roentgen b75cab
: ${MAKE="make"}
roentgen b75cab
: ${MKDIR="mkdir"}
roentgen b75cab
: ${MV="mv -f"}
roentgen b75cab
: ${RM="rm -f"}
roentgen b75cab
: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
roentgen b75cab
: ${Xsed="$SED -e 1s/^X//"}
roentgen b75cab
roentgen b75cab
# Global variables:
roentgen b75cab
EXIT_SUCCESS=0
roentgen b75cab
EXIT_FAILURE=1
roentgen b75cab
EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
roentgen b75cab
EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
roentgen b75cab
roentgen b75cab
exit_status=$EXIT_SUCCESS
roentgen b75cab
roentgen b75cab
# Make sure IFS has a sensible default
roentgen b75cab
lt_nl='
roentgen b75cab
'
roentgen b75cab
IFS=" 	$lt_nl"
roentgen b75cab
roentgen b75cab
dirname="s,/[^/]*$,,"
roentgen b75cab
basename="s,^.*/,,"
roentgen b75cab
roentgen b75cab
# func_dirname file append nondir_replacement
roentgen b75cab
# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
roentgen b75cab
# otherwise set result to NONDIR_REPLACEMENT.
roentgen b75cab
func_dirname ()
roentgen b75cab
{
roentgen b75cab
    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
roentgen b75cab
    if test "X$func_dirname_result" = "X${1}"; then
roentgen b75cab
      func_dirname_result="${3}"
roentgen b75cab
    else
roentgen b75cab
      func_dirname_result="$func_dirname_result${2}"
roentgen b75cab
    fi
roentgen b75cab
} # func_dirname may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_basename file
roentgen b75cab
func_basename ()
roentgen b75cab
{
roentgen b75cab
    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
roentgen b75cab
} # func_basename may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_dirname_and_basename file append nondir_replacement
roentgen b75cab
# perform func_basename and func_dirname in a single function
roentgen b75cab
# call:
roentgen b75cab
#   dirname:  Compute the dirname of FILE.  If nonempty,
roentgen b75cab
#             add APPEND to the result, otherwise set result
roentgen b75cab
#             to NONDIR_REPLACEMENT.
roentgen b75cab
#             value returned in "$func_dirname_result"
roentgen b75cab
#   basename: Compute filename of FILE.
roentgen b75cab
#             value retuned in "$func_basename_result"
roentgen b75cab
# Implementation must be kept synchronized with func_dirname
roentgen b75cab
# and func_basename. For efficiency, we do not delegate to
roentgen b75cab
# those functions but instead duplicate the functionality here.
roentgen b75cab
func_dirname_and_basename ()
roentgen b75cab
{
roentgen b75cab
    # Extract subdirectory from the argument.
roentgen b75cab
    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
roentgen b75cab
    if test "X$func_dirname_result" = "X${1}"; then
roentgen b75cab
      func_dirname_result="${3}"
roentgen b75cab
    else
roentgen b75cab
      func_dirname_result="$func_dirname_result${2}"
roentgen b75cab
    fi
roentgen b75cab
    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
roentgen b75cab
} # func_dirname_and_basename may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_stripname prefix suffix name
roentgen b75cab
# strip PREFIX and SUFFIX off of NAME.
roentgen b75cab
# PREFIX and SUFFIX must not contain globbing or regex special
roentgen b75cab
# characters, hashes, percent signs, but SUFFIX may contain a leading
roentgen b75cab
# dot (in which case that matches only a dot).
roentgen b75cab
# func_strip_suffix prefix name
roentgen b75cab
func_stripname ()
roentgen b75cab
{
roentgen b75cab
    case ${2} in
roentgen b75cab
      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
roentgen b75cab
      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
roentgen b75cab
    esac
roentgen b75cab
} # func_stripname may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# These SED scripts presuppose an absolute path with a trailing slash.
roentgen b75cab
pathcar='s,^/\([^/]*\).*$,\1,'
roentgen b75cab
pathcdr='s,^/[^/]*,,'
roentgen b75cab
removedotparts=':dotsl
roentgen b75cab
		s@/\./@/@g
roentgen b75cab
		t dotsl
roentgen b75cab
		s,/\.$,/,'
roentgen b75cab
collapseslashes='s@/\{1,\}@/@g'
roentgen b75cab
finalslash='s,/*$,/,'
roentgen b75cab
roentgen b75cab
# func_normal_abspath PATH
roentgen b75cab
# Remove doubled-up and trailing slashes, "." path components,
roentgen b75cab
# and cancel out any ".." path components in PATH after making
roentgen b75cab
# it an absolute path.
roentgen b75cab
#             value returned in "$func_normal_abspath_result"
roentgen b75cab
func_normal_abspath ()
roentgen b75cab
{
roentgen b75cab
  # Start from root dir and reassemble the path.
roentgen b75cab
  func_normal_abspath_result=
roentgen b75cab
  func_normal_abspath_tpath=$1
roentgen b75cab
  func_normal_abspath_altnamespace=
roentgen b75cab
  case $func_normal_abspath_tpath in
roentgen b75cab
    "")
roentgen b75cab
      # Empty path, that just means $cwd.
roentgen b75cab
      func_stripname '' '/' "`pwd`"
roentgen b75cab
      func_normal_abspath_result=$func_stripname_result
roentgen b75cab
      return
roentgen b75cab
    ;;
roentgen b75cab
    # The next three entries are used to spot a run of precisely
roentgen b75cab
    # two leading slashes without using negated character classes;
roentgen b75cab
    # we take advantage of case's first-match behaviour.
roentgen b75cab
    ///*)
roentgen b75cab
      # Unusual form of absolute path, do nothing.
roentgen b75cab
    ;;
roentgen b75cab
    //*)
roentgen b75cab
      # Not necessarily an ordinary path; POSIX reserves leading '//'
roentgen b75cab
      # and for example Cygwin uses it to access remote file shares
roentgen b75cab
      # over CIFS/SMB, so we conserve a leading double slash if found.
roentgen b75cab
      func_normal_abspath_altnamespace=/
roentgen b75cab
    ;;
roentgen b75cab
    /*)
roentgen b75cab
      # Absolute path, do nothing.
roentgen b75cab
    ;;
roentgen b75cab
    *)
roentgen b75cab
      # Relative path, prepend $cwd.
roentgen b75cab
      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
roentgen b75cab
    ;;
roentgen b75cab
  esac
roentgen b75cab
  # Cancel out all the simple stuff to save iterations.  We also want
roentgen b75cab
  # the path to end with a slash for ease of parsing, so make sure
roentgen b75cab
  # there is one (and only one) here.
roentgen b75cab
  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
roentgen b75cab
        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
roentgen b75cab
  while :; do
roentgen b75cab
    # Processed it all yet?
roentgen b75cab
    if test "$func_normal_abspath_tpath" = / ; then
roentgen b75cab
      # If we ascended to the root using ".." the result may be empty now.
roentgen b75cab
      if test -z "$func_normal_abspath_result" ; then
roentgen b75cab
        func_normal_abspath_result=/
roentgen b75cab
      fi
roentgen b75cab
      break
roentgen b75cab
    fi
roentgen b75cab
    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
roentgen b75cab
        -e "$pathcar"`
roentgen b75cab
    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
roentgen b75cab
        -e "$pathcdr"`
roentgen b75cab
    # Figure out what to do with it
roentgen b75cab
    case $func_normal_abspath_tcomponent in
roentgen b75cab
      "")
roentgen b75cab
        # Trailing empty path component, ignore it.
roentgen b75cab
      ;;
roentgen b75cab
      ..)
roentgen b75cab
        # Parent dir; strip last assembled component from result.
roentgen b75cab
        func_dirname "$func_normal_abspath_result"
roentgen b75cab
        func_normal_abspath_result=$func_dirname_result
roentgen b75cab
      ;;
roentgen b75cab
      *)
roentgen b75cab
        # Actual path component, append it.
roentgen b75cab
        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
  done
roentgen b75cab
  # Restore leading double-slash if one was found on entry.
roentgen b75cab
  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_relative_path SRCDIR DSTDIR
roentgen b75cab
# generates a relative path from SRCDIR to DSTDIR, with a trailing
roentgen b75cab
# slash if non-empty, suitable for immediately appending a filename
roentgen b75cab
# without needing to append a separator.
roentgen b75cab
#             value returned in "$func_relative_path_result"
roentgen b75cab
func_relative_path ()
roentgen b75cab
{
roentgen b75cab
  func_relative_path_result=
roentgen b75cab
  func_normal_abspath "$1"
roentgen b75cab
  func_relative_path_tlibdir=$func_normal_abspath_result
roentgen b75cab
  func_normal_abspath "$2"
roentgen b75cab
  func_relative_path_tbindir=$func_normal_abspath_result
roentgen b75cab
roentgen b75cab
  # Ascend the tree starting from libdir
roentgen b75cab
  while :; do
roentgen b75cab
    # check if we have found a prefix of bindir
roentgen b75cab
    case $func_relative_path_tbindir in
roentgen b75cab
      $func_relative_path_tlibdir)
roentgen b75cab
        # found an exact match
roentgen b75cab
        func_relative_path_tcancelled=
roentgen b75cab
        break
roentgen b75cab
        ;;
roentgen b75cab
      $func_relative_path_tlibdir*)
roentgen b75cab
        # found a matching prefix
roentgen b75cab
        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
roentgen b75cab
        func_relative_path_tcancelled=$func_stripname_result
roentgen b75cab
        if test -z "$func_relative_path_result"; then
roentgen b75cab
          func_relative_path_result=.
roentgen b75cab
        fi
roentgen b75cab
        break
roentgen b75cab
        ;;
roentgen b75cab
      *)
roentgen b75cab
        func_dirname $func_relative_path_tlibdir
roentgen b75cab
        func_relative_path_tlibdir=${func_dirname_result}
roentgen b75cab
        if test "x$func_relative_path_tlibdir" = x ; then
roentgen b75cab
          # Have to descend all the way to the root!
roentgen b75cab
          func_relative_path_result=../$func_relative_path_result
roentgen b75cab
          func_relative_path_tcancelled=$func_relative_path_tbindir
roentgen b75cab
          break
roentgen b75cab
        fi
roentgen b75cab
        func_relative_path_result=../$func_relative_path_result
roentgen b75cab
        ;;
roentgen b75cab
    esac
roentgen b75cab
  done
roentgen b75cab
roentgen b75cab
  # Now calculate path; take care to avoid doubling-up slashes.
roentgen b75cab
  func_stripname '' '/' "$func_relative_path_result"
roentgen b75cab
  func_relative_path_result=$func_stripname_result
roentgen b75cab
  func_stripname '/' '/' "$func_relative_path_tcancelled"
roentgen b75cab
  if test "x$func_stripname_result" != x ; then
roentgen b75cab
    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
roentgen b75cab
  fi
roentgen b75cab
roentgen b75cab
  # Normalisation. If bindir is libdir, return empty string,
roentgen b75cab
  # else relative path ending with a slash; either way, target
roentgen b75cab
  # file name can be directly appended.
roentgen b75cab
  if test ! -z "$func_relative_path_result"; then
roentgen b75cab
    func_stripname './' '' "$func_relative_path_result/"
roentgen b75cab
    func_relative_path_result=$func_stripname_result
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# The name of this program:
roentgen b75cab
func_dirname_and_basename "$progpath"
roentgen b75cab
progname=$func_basename_result
roentgen b75cab
roentgen b75cab
# Make sure we have an absolute path for reexecution:
roentgen b75cab
case $progpath in
roentgen b75cab
  [\\/]*|[A-Za-z]:\\*) ;;
roentgen b75cab
  *[\\/]*)
roentgen b75cab
     progdir=$func_dirname_result
roentgen b75cab
     progdir=`cd "$progdir" && pwd`
roentgen b75cab
     progpath="$progdir/$progname"
roentgen b75cab
     ;;
roentgen b75cab
  *)
roentgen b75cab
     save_IFS="$IFS"
roentgen b75cab
     IFS=${PATH_SEPARATOR-:}
roentgen b75cab
     for progdir in $PATH; do
roentgen b75cab
       IFS="$save_IFS"
roentgen b75cab
       test -x "$progdir/$progname" && break
roentgen b75cab
     done
roentgen b75cab
     IFS="$save_IFS"
roentgen b75cab
     test -n "$progdir" || progdir=`pwd`
roentgen b75cab
     progpath="$progdir/$progname"
roentgen b75cab
     ;;
roentgen b75cab
esac
roentgen b75cab
roentgen b75cab
# Sed substitution that helps us do robust quoting.  It backslashifies
roentgen b75cab
# metacharacters that are still active within double-quoted strings.
roentgen b75cab
Xsed="${SED}"' -e 1s/^X//'
roentgen b75cab
sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
roentgen b75cab
roentgen b75cab
# Same as above, but do not quote variable references.
roentgen b75cab
double_quote_subst='s/\(["`\\]\)/\\\1/g'
roentgen b75cab
roentgen b75cab
# Sed substitution that turns a string into a regex matching for the
roentgen b75cab
# string literally.
roentgen b75cab
sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
roentgen b75cab
roentgen b75cab
# Sed substitution that converts a w32 file name or path
roentgen b75cab
# which contains forward slashes, into one that contains
roentgen b75cab
# (escaped) backslashes.  A very naive implementation.
roentgen b75cab
lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
roentgen b75cab
roentgen b75cab
# Re-`\' parameter expansions in output of double_quote_subst that were
roentgen b75cab
# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
roentgen b75cab
# in input to double_quote_subst, that '$' was protected from expansion.
roentgen b75cab
# Since each input `\' is now two `\'s, look for any number of runs of
roentgen b75cab
# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
roentgen b75cab
bs='\\'
roentgen b75cab
bs2='\\\\'
roentgen b75cab
bs4='\\\\\\\\'
roentgen b75cab
dollar='\$'
roentgen b75cab
sed_double_backslash="\
roentgen b75cab
  s/$bs4/&\\
roentgen b75cab
/g
roentgen b75cab
  s/^$bs2$dollar/$bs&/
roentgen b75cab
  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
roentgen b75cab
  s/\n//g"
roentgen b75cab
roentgen b75cab
# Standard options:
roentgen b75cab
opt_dry_run=false
roentgen b75cab
opt_help=false
roentgen b75cab
opt_quiet=false
roentgen b75cab
opt_verbose=false
roentgen b75cab
opt_warning=:
roentgen b75cab
roentgen b75cab
# func_echo arg...
roentgen b75cab
# Echo program name prefixed message, along with the current mode
roentgen b75cab
# name if it has been set yet.
roentgen b75cab
func_echo ()
roentgen b75cab
{
roentgen b75cab
    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_verbose arg...
roentgen b75cab
# Echo program name prefixed message in verbose mode only.
roentgen b75cab
func_verbose ()
roentgen b75cab
{
roentgen b75cab
    $opt_verbose && func_echo ${1+"$@"}
roentgen b75cab
roentgen b75cab
    # A bug in bash halts the script if the last line of a function
roentgen b75cab
    # fails when set -e is in force, so we need another command to
roentgen b75cab
    # work around that:
roentgen b75cab
    :
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_echo_all arg...
roentgen b75cab
# Invoke $ECHO with all args, space-separated.
roentgen b75cab
func_echo_all ()
roentgen b75cab
{
roentgen b75cab
    $ECHO "$*"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_error arg...
roentgen b75cab
# Echo program name prefixed message to standard error.
roentgen b75cab
func_error ()
roentgen b75cab
{
roentgen b75cab
    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_warning arg...
roentgen b75cab
# Echo program name prefixed warning message to standard error.
roentgen b75cab
func_warning ()
roentgen b75cab
{
roentgen b75cab
    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
roentgen b75cab
roentgen b75cab
    # bash bug again:
roentgen b75cab
    :
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_fatal_error arg...
roentgen b75cab
# Echo program name prefixed message to standard error, and exit.
roentgen b75cab
func_fatal_error ()
roentgen b75cab
{
roentgen b75cab
    func_error ${1+"$@"}
roentgen b75cab
    exit $EXIT_FAILURE
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_fatal_help arg...
roentgen b75cab
# Echo program name prefixed message to standard error, followed by
roentgen b75cab
# a help hint, and exit.
roentgen b75cab
func_fatal_help ()
roentgen b75cab
{
roentgen b75cab
    func_error ${1+"$@"}
roentgen b75cab
    func_fatal_error "$help"
roentgen b75cab
}
roentgen b75cab
help="Try \`$progname --help' for more information."  ## default
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_grep expression filename
roentgen b75cab
# Check whether EXPRESSION matches any line of FILENAME, without output.
roentgen b75cab
func_grep ()
roentgen b75cab
{
roentgen b75cab
    $GREP "$1" "$2" >/dev/null 2>&1
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_mkdir_p directory-path
roentgen b75cab
# Make sure the entire path to DIRECTORY-PATH is available.
roentgen b75cab
func_mkdir_p ()
roentgen b75cab
{
roentgen b75cab
    my_directory_path="$1"
roentgen b75cab
    my_dir_list=
roentgen b75cab
roentgen b75cab
    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
roentgen b75cab
roentgen b75cab
      # Protect directory names starting with `-'
roentgen b75cab
      case $my_directory_path in
roentgen b75cab
        -*) my_directory_path="./$my_directory_path" ;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      # While some portion of DIR does not yet exist...
roentgen b75cab
      while test ! -d "$my_directory_path"; do
roentgen b75cab
        # ...make a list in topmost first order.  Use a colon delimited
roentgen b75cab
	# list incase some portion of path contains whitespace.
roentgen b75cab
        my_dir_list="$my_directory_path:$my_dir_list"
roentgen b75cab
roentgen b75cab
        # If the last portion added has no slash in it, the list is done
roentgen b75cab
        case $my_directory_path in */*) ;; *) break ;; esac
roentgen b75cab
roentgen b75cab
        # ...otherwise throw away the child directory and loop
roentgen b75cab
        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
roentgen b75cab
      done
roentgen b75cab
      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
roentgen b75cab
roentgen b75cab
      save_mkdir_p_IFS="$IFS"; IFS=':'
roentgen b75cab
      for my_dir in $my_dir_list; do
roentgen b75cab
	IFS="$save_mkdir_p_IFS"
roentgen b75cab
        # mkdir can fail with a `File exist' error if two processes
roentgen b75cab
        # try to create one of the directories concurrently.  Don't
roentgen b75cab
        # stop in that case!
roentgen b75cab
        $MKDIR "$my_dir" 2>/dev/null || :
roentgen b75cab
      done
roentgen b75cab
      IFS="$save_mkdir_p_IFS"
roentgen b75cab
roentgen b75cab
      # Bail out if we (or some other process) failed to create a directory.
roentgen b75cab
      test -d "$my_directory_path" || \
roentgen b75cab
        func_fatal_error "Failed to create \`$1'"
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_mktempdir [string]
roentgen b75cab
# Make a temporary directory that won't clash with other running
roentgen b75cab
# libtool processes, and avoids race conditions if possible.  If
roentgen b75cab
# given, STRING is the basename for that directory.
roentgen b75cab
func_mktempdir ()
roentgen b75cab
{
roentgen b75cab
    my_template="${TMPDIR-/tmp}/${1-$progname}"
roentgen b75cab
roentgen b75cab
    if test "$opt_dry_run" = ":"; then
roentgen b75cab
      # Return a directory name, but don't create it in dry-run mode
roentgen b75cab
      my_tmpdir="${my_template}-$$"
roentgen b75cab
    else
roentgen b75cab
roentgen b75cab
      # If mktemp works, use that first and foremost
roentgen b75cab
      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
roentgen b75cab
roentgen b75cab
      if test ! -d "$my_tmpdir"; then
roentgen b75cab
        # Failing that, at least try and use $RANDOM to avoid a race
roentgen b75cab
        my_tmpdir="${my_template}-${RANDOM-0}$$"
roentgen b75cab
roentgen b75cab
        save_mktempdir_umask=`umask`
roentgen b75cab
        umask 0077
roentgen b75cab
        $MKDIR "$my_tmpdir"
roentgen b75cab
        umask $save_mktempdir_umask
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # If we're not in dry-run mode, bomb out on failure
roentgen b75cab
      test -d "$my_tmpdir" || \
roentgen b75cab
        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    $ECHO "$my_tmpdir"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_quote_for_eval arg
roentgen b75cab
# Aesthetically quote ARG to be evaled later.
roentgen b75cab
# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
roentgen b75cab
# is double-quoted, suitable for a subsequent eval, whereas
roentgen b75cab
# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
roentgen b75cab
# which are still active within double quotes backslashified.
roentgen b75cab
func_quote_for_eval ()
roentgen b75cab
{
roentgen b75cab
    case $1 in
roentgen b75cab
      *[\\\`\"\$]*)
roentgen b75cab
	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
roentgen b75cab
      *)
roentgen b75cab
        func_quote_for_eval_unquoted_result="$1" ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    case $func_quote_for_eval_unquoted_result in
roentgen b75cab
      # Double-quote args containing shell metacharacters to delay
roentgen b75cab
      # word splitting, command substitution and and variable
roentgen b75cab
      # expansion for a subsequent eval.
roentgen b75cab
      # Many Bourne shells cannot handle close brackets correctly
roentgen b75cab
      # in scan sets, so we specify it separately.
roentgen b75cab
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
roentgen b75cab
        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
roentgen b75cab
        ;;
roentgen b75cab
      *)
roentgen b75cab
        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
roentgen b75cab
    esac
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_quote_for_expand arg
roentgen b75cab
# Aesthetically quote ARG to be evaled later; same as above,
roentgen b75cab
# but do not quote variable references.
roentgen b75cab
func_quote_for_expand ()
roentgen b75cab
{
roentgen b75cab
    case $1 in
roentgen b75cab
      *[\\\`\"]*)
roentgen b75cab
	my_arg=`$ECHO "$1" | $SED \
roentgen b75cab
	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
roentgen b75cab
      *)
roentgen b75cab
        my_arg="$1" ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    case $my_arg in
roentgen b75cab
      # Double-quote args containing shell metacharacters to delay
roentgen b75cab
      # word splitting and command substitution for a subsequent eval.
roentgen b75cab
      # Many Bourne shells cannot handle close brackets correctly
roentgen b75cab
      # in scan sets, so we specify it separately.
roentgen b75cab
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
roentgen b75cab
        my_arg="\"$my_arg\""
roentgen b75cab
        ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    func_quote_for_expand_result="$my_arg"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_show_eval cmd [fail_exp]
roentgen b75cab
# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
roentgen b75cab
# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
roentgen b75cab
# is given, then evaluate it.
roentgen b75cab
func_show_eval ()
roentgen b75cab
{
roentgen b75cab
    my_cmd="$1"
roentgen b75cab
    my_fail_exp="${2-:}"
roentgen b75cab
roentgen b75cab
    ${opt_silent-false} || {
roentgen b75cab
      func_quote_for_expand "$my_cmd"
roentgen b75cab
      eval "func_echo $func_quote_for_expand_result"
roentgen b75cab
    }
roentgen b75cab
roentgen b75cab
    if ${opt_dry_run-false}; then :; else
roentgen b75cab
      eval "$my_cmd"
roentgen b75cab
      my_status=$?
roentgen b75cab
      if test "$my_status" -eq 0; then :; else
roentgen b75cab
	eval "(exit $my_status); $my_fail_exp"
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_show_eval_locale cmd [fail_exp]
roentgen b75cab
# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
roentgen b75cab
# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
roentgen b75cab
# is given, then evaluate it.  Use the saved locale for evaluation.
roentgen b75cab
func_show_eval_locale ()
roentgen b75cab
{
roentgen b75cab
    my_cmd="$1"
roentgen b75cab
    my_fail_exp="${2-:}"
roentgen b75cab
roentgen b75cab
    ${opt_silent-false} || {
roentgen b75cab
      func_quote_for_expand "$my_cmd"
roentgen b75cab
      eval "func_echo $func_quote_for_expand_result"
roentgen b75cab
    }
roentgen b75cab
roentgen b75cab
    if ${opt_dry_run-false}; then :; else
roentgen b75cab
      eval "$lt_user_locale
roentgen b75cab
	    $my_cmd"
roentgen b75cab
      my_status=$?
roentgen b75cab
      eval "$lt_safe_locale"
roentgen b75cab
      if test "$my_status" -eq 0; then :; else
roentgen b75cab
	eval "(exit $my_status); $my_fail_exp"
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_tr_sh
roentgen b75cab
# Turn $1 into a string suitable for a shell variable name.
roentgen b75cab
# Result is stored in $func_tr_sh_result.  All characters
roentgen b75cab
# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
roentgen b75cab
# if $1 begins with a digit, a '_' is prepended as well.
roentgen b75cab
func_tr_sh ()
roentgen b75cab
{
roentgen b75cab
  case $1 in
roentgen b75cab
  [0-9]* | *[!a-zA-Z0-9_]*)
roentgen b75cab
    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
roentgen b75cab
    ;;
roentgen b75cab
  * )
roentgen b75cab
    func_tr_sh_result=$1
roentgen b75cab
    ;;
roentgen b75cab
  esac
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_version
roentgen b75cab
# Echo version message to standard output and exit.
roentgen b75cab
func_version ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
roentgen b75cab
    $SED -n '/(C)/!b go
roentgen b75cab
	:more
roentgen b75cab
	/\./!{
roentgen b75cab
	  N
roentgen b75cab
	  s/\n# / /
roentgen b75cab
	  b more
roentgen b75cab
	}
roentgen b75cab
	:go
roentgen b75cab
	/^# '$PROGRAM' (GNU /,/# warranty; / {
roentgen b75cab
        s/^# //
roentgen b75cab
	s/^# *$//
roentgen b75cab
        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
roentgen b75cab
        p
roentgen b75cab
     }' < "$progpath"
roentgen b75cab
     exit $?
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_usage
roentgen b75cab
# Echo short help message to standard output and exit.
roentgen b75cab
func_usage ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
roentgen b75cab
    $SED -n '/^# Usage:/,/^#  *.*--help/ {
roentgen b75cab
        s/^# //
roentgen b75cab
	s/^# *$//
roentgen b75cab
	s/\$progname/'$progname'/
roentgen b75cab
	p
roentgen b75cab
    }' < "$progpath"
roentgen b75cab
    echo
roentgen b75cab
    $ECHO "run \`$progname --help | more' for full usage"
roentgen b75cab
    exit $?
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_help [NOEXIT]
roentgen b75cab
# Echo long help message to standard output and exit,
roentgen b75cab
# unless 'noexit' is passed as argument.
roentgen b75cab
func_help ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
roentgen b75cab
    $SED -n '/^# Usage:/,/# Report bugs to/ {
roentgen b75cab
	:print
roentgen b75cab
        s/^# //
roentgen b75cab
	s/^# *$//
roentgen b75cab
	s*\$progname*'$progname'*
roentgen b75cab
	s*\$host*'"$host"'*
roentgen b75cab
	s*\$SHELL*'"$SHELL"'*
roentgen b75cab
	s*\$LTCC*'"$LTCC"'*
roentgen b75cab
	s*\$LTCFLAGS*'"$LTCFLAGS"'*
roentgen b75cab
	s*\$LD*'"$LD"'*
roentgen b75cab
	s/\$with_gnu_ld/'"$with_gnu_ld"'/
roentgen b75cab
	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
roentgen b75cab
	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
roentgen b75cab
	p
roentgen b75cab
	d
roentgen b75cab
     }
roentgen b75cab
     /^# .* home page:/b print
roentgen b75cab
     /^# General help using/b print
roentgen b75cab
     ' < "$progpath"
roentgen b75cab
    ret=$?
roentgen b75cab
    if test -z "$1"; then
roentgen b75cab
      exit $ret
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_missing_arg argname
roentgen b75cab
# Echo program name prefixed message to standard error and set global
roentgen b75cab
# exit_cmd.
roentgen b75cab
func_missing_arg ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
roentgen b75cab
    func_error "missing argument for $1."
roentgen b75cab
    exit_cmd=exit
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_split_short_opt shortopt
roentgen b75cab
# Set func_split_short_opt_name and func_split_short_opt_arg shell
roentgen b75cab
# variables after splitting SHORTOPT after the 2nd character.
roentgen b75cab
func_split_short_opt ()
roentgen b75cab
{
roentgen b75cab
    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
roentgen b75cab
    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
roentgen b75cab
roentgen b75cab
    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
roentgen b75cab
    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
roentgen b75cab
} # func_split_short_opt may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_split_long_opt longopt
roentgen b75cab
# Set func_split_long_opt_name and func_split_long_opt_arg shell
roentgen b75cab
# variables after splitting LONGOPT at the `=' sign.
roentgen b75cab
func_split_long_opt ()
roentgen b75cab
{
roentgen b75cab
    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
roentgen b75cab
    my_sed_long_arg='1s/^--[^=]*=//'
roentgen b75cab
roentgen b75cab
    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
roentgen b75cab
    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
roentgen b75cab
} # func_split_long_opt may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
exit_cmd=:
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
magic="%%%MAGIC variable%%%"
roentgen b75cab
magic_exe="%%%MAGIC EXE variable%%%"
roentgen b75cab
roentgen b75cab
# Global variables.
roentgen b75cab
nonopt=
roentgen b75cab
preserve_args=
roentgen b75cab
lo2o="s/\\.lo\$/.${objext}/"
roentgen b75cab
o2lo="s/\\.${objext}\$/.lo/"
roentgen b75cab
extracted_archives=
roentgen b75cab
extracted_serial=0
roentgen b75cab
roentgen b75cab
# If this variable is set in any of the actions, the command in it
roentgen b75cab
# will be execed at the end.  This prevents here-documents from being
roentgen b75cab
# left over by shells.
roentgen b75cab
exec_cmd=
roentgen b75cab
roentgen b75cab
# func_append var value
roentgen b75cab
# Append VALUE to the end of shell variable VAR.
roentgen b75cab
func_append ()
roentgen b75cab
{
roentgen b75cab
    eval "${1}=\$${1}\${2}"
roentgen b75cab
} # func_append may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
# func_append_quoted var value
roentgen b75cab
# Quote VALUE and append to the end of shell variable VAR, separated
roentgen b75cab
# by a space.
roentgen b75cab
func_append_quoted ()
roentgen b75cab
{
roentgen b75cab
    func_quote_for_eval "${2}"
roentgen b75cab
    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
roentgen b75cab
} # func_append_quoted may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_arith arithmetic-term...
roentgen b75cab
func_arith ()
roentgen b75cab
{
roentgen b75cab
    func_arith_result=`expr "${@}"`
roentgen b75cab
} # func_arith may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_len string
roentgen b75cab
# STRING may not start with a hyphen.
roentgen b75cab
func_len ()
roentgen b75cab
{
roentgen b75cab
    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
roentgen b75cab
} # func_len may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_lo2o object
roentgen b75cab
func_lo2o ()
roentgen b75cab
{
roentgen b75cab
    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
roentgen b75cab
} # func_lo2o may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_xform libobj-or-source
roentgen b75cab
func_xform ()
roentgen b75cab
{
roentgen b75cab
    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
roentgen b75cab
} # func_xform may be replaced by extended shell implementation
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_fatal_configuration arg...
roentgen b75cab
# Echo program name prefixed message to standard error, followed by
roentgen b75cab
# a configuration failure hint, and exit.
roentgen b75cab
func_fatal_configuration ()
roentgen b75cab
{
roentgen b75cab
    func_error ${1+"$@"}
roentgen b75cab
    func_error "See the $PACKAGE documentation for more information."
roentgen b75cab
    func_fatal_error "Fatal configuration error."
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_config
roentgen b75cab
# Display the configuration for all the tags in this script.
roentgen b75cab
func_config ()
roentgen b75cab
{
roentgen b75cab
    re_begincf='^# ### BEGIN LIBTOOL'
roentgen b75cab
    re_endcf='^# ### END LIBTOOL'
roentgen b75cab
roentgen b75cab
    # Default configuration.
roentgen b75cab
    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
roentgen b75cab
roentgen b75cab
    # Now print the configurations for the tags.
roentgen b75cab
    for tagname in $taglist; do
roentgen b75cab
      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    exit $?
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_features
roentgen b75cab
# Display the features supported by this script.
roentgen b75cab
func_features ()
roentgen b75cab
{
roentgen b75cab
    echo "host: $host"
roentgen b75cab
    if test "$build_libtool_libs" = yes; then
roentgen b75cab
      echo "enable shared libraries"
roentgen b75cab
    else
roentgen b75cab
      echo "disable shared libraries"
roentgen b75cab
    fi
roentgen b75cab
    if test "$build_old_libs" = yes; then
roentgen b75cab
      echo "enable static libraries"
roentgen b75cab
    else
roentgen b75cab
      echo "disable static libraries"
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    exit $?
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_enable_tag tagname
roentgen b75cab
# Verify that TAGNAME is valid, and either flag an error and exit, or
roentgen b75cab
# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
roentgen b75cab
# variable here.
roentgen b75cab
func_enable_tag ()
roentgen b75cab
{
roentgen b75cab
  # Global variable:
roentgen b75cab
  tagname="$1"
roentgen b75cab
roentgen b75cab
  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
roentgen b75cab
  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
roentgen b75cab
  sed_extractcf="/$re_begincf/,/$re_endcf/p"
roentgen b75cab
roentgen b75cab
  # Validate tagname.
roentgen b75cab
  case $tagname in
roentgen b75cab
    *[!-_A-Za-z0-9,/]*)
roentgen b75cab
      func_fatal_error "invalid tag name: $tagname"
roentgen b75cab
      ;;
roentgen b75cab
  esac
roentgen b75cab
roentgen b75cab
  # Don't test for the "default" C tag, as we know it's
roentgen b75cab
  # there but not specially marked.
roentgen b75cab
  case $tagname in
roentgen b75cab
    CC) ;;
roentgen b75cab
    *)
roentgen b75cab
      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
roentgen b75cab
	taglist="$taglist $tagname"
roentgen b75cab
roentgen b75cab
	# Evaluate the configuration.  Be careful to quote the path
roentgen b75cab
	# and the sed script, to avoid splitting on whitespace, but
roentgen b75cab
	# also don't use non-portable quotes within backquotes within
roentgen b75cab
	# quotes we have to do it in 2 steps:
roentgen b75cab
	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
roentgen b75cab
	eval "$extractedcf"
roentgen b75cab
      else
roentgen b75cab
	func_error "ignoring unknown tag $tagname"
roentgen b75cab
      fi
roentgen b75cab
      ;;
roentgen b75cab
  esac
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_check_version_match
roentgen b75cab
# Ensure that we are using m4 macros, and libtool script from the same
roentgen b75cab
# release of libtool.
roentgen b75cab
func_check_version_match ()
roentgen b75cab
{
roentgen b75cab
  if test "$package_revision" != "$macro_revision"; then
roentgen b75cab
    if test "$VERSION" != "$macro_version"; then
roentgen b75cab
      if test -z "$macro_version"; then
roentgen b75cab
        cat >&2 <<_LT_EOF
roentgen b75cab
$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
roentgen b75cab
$progname: definition of this LT_INIT comes from an older release.
roentgen b75cab
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
roentgen b75cab
$progname: and run autoconf again.
roentgen b75cab
_LT_EOF
roentgen b75cab
      else
roentgen b75cab
        cat >&2 <<_LT_EOF
roentgen b75cab
$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
roentgen b75cab
$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
roentgen b75cab
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
roentgen b75cab
$progname: and run autoconf again.
roentgen b75cab
_LT_EOF
roentgen b75cab
      fi
roentgen b75cab
    else
roentgen b75cab
      cat >&2 <<_LT_EOF
roentgen b75cab
$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
roentgen b75cab
$progname: but the definition of this LT_INIT comes from revision $macro_revision.
roentgen b75cab
$progname: You should recreate aclocal.m4 with macros from revision $package_revision
roentgen b75cab
$progname: of $PACKAGE $VERSION and run autoconf again.
roentgen b75cab
_LT_EOF
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    exit $EXIT_MISMATCH
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# Shorthand for --mode=foo, only valid as the first argument
roentgen b75cab
case $1 in
roentgen b75cab
clean|clea|cle|cl)
roentgen b75cab
  shift; set dummy --mode clean ${1+"$@"}; shift
roentgen b75cab
  ;;
roentgen b75cab
compile|compil|compi|comp|com|co|c)
roentgen b75cab
  shift; set dummy --mode compile ${1+"$@"}; shift
roentgen b75cab
  ;;
roentgen b75cab
execute|execut|execu|exec|exe|ex|e)
roentgen b75cab
  shift; set dummy --mode execute ${1+"$@"}; shift
roentgen b75cab
  ;;
roentgen b75cab
finish|finis|fini|fin|fi|f)
roentgen b75cab
  shift; set dummy --mode finish ${1+"$@"}; shift
roentgen b75cab
  ;;
roentgen b75cab
install|instal|insta|inst|ins|in|i)
roentgen b75cab
  shift; set dummy --mode install ${1+"$@"}; shift
roentgen b75cab
  ;;
roentgen b75cab
link|lin|li|l)
roentgen b75cab
  shift; set dummy --mode link ${1+"$@"}; shift
roentgen b75cab
  ;;
roentgen b75cab
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
roentgen b75cab
  shift; set dummy --mode uninstall ${1+"$@"}; shift
roentgen b75cab
  ;;
roentgen b75cab
esac
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
# Option defaults:
roentgen b75cab
opt_debug=:
roentgen b75cab
opt_dry_run=false
roentgen b75cab
opt_config=false
roentgen b75cab
opt_preserve_dup_deps=false
roentgen b75cab
opt_features=false
roentgen b75cab
opt_finish=false
roentgen b75cab
opt_help=false
roentgen b75cab
opt_help_all=false
roentgen b75cab
opt_silent=:
roentgen b75cab
opt_warning=:
roentgen b75cab
opt_verbose=:
roentgen b75cab
opt_silent=false
roentgen b75cab
opt_verbose=false
roentgen b75cab
roentgen b75cab
roentgen b75cab
# Parse options once, thoroughly.  This comes as soon as possible in the
roentgen b75cab
# script to make things like `--version' happen as quickly as we can.
roentgen b75cab
{
roentgen b75cab
  # this just eases exit handling
roentgen b75cab
  while test $# -gt 0; do
roentgen b75cab
    opt="$1"
roentgen b75cab
    shift
roentgen b75cab
    case $opt in
roentgen b75cab
      --debug|-x)	opt_debug='set -x'
roentgen b75cab
			func_echo "enabling shell trace mode"
roentgen b75cab
			$opt_debug
roentgen b75cab
			;;
roentgen b75cab
      --dry-run|--dryrun|-n)
roentgen b75cab
			opt_dry_run=:
roentgen b75cab
			;;
roentgen b75cab
      --config)
roentgen b75cab
			opt_config=:
roentgen b75cab
func_config
roentgen b75cab
			;;
roentgen b75cab
      --dlopen|-dlopen)
roentgen b75cab
			optarg="$1"
roentgen b75cab
			opt_dlopen="${opt_dlopen+$opt_dlopen
roentgen b75cab
}$optarg"
roentgen b75cab
			shift
roentgen b75cab
			;;
roentgen b75cab
      --preserve-dup-deps)
roentgen b75cab
			opt_preserve_dup_deps=:
roentgen b75cab
			;;
roentgen b75cab
      --features)
roentgen b75cab
			opt_features=:
roentgen b75cab
func_features
roentgen b75cab
			;;
roentgen b75cab
      --finish)
roentgen b75cab
			opt_finish=:
roentgen b75cab
set dummy --mode finish ${1+"$@"}; shift
roentgen b75cab
			;;
roentgen b75cab
      --help)
roentgen b75cab
			opt_help=:
roentgen b75cab
			;;
roentgen b75cab
      --help-all)
roentgen b75cab
			opt_help_all=:
roentgen b75cab
opt_help=': help-all'
roentgen b75cab
			;;
roentgen b75cab
      --mode)
roentgen b75cab
			test $# = 0 && func_missing_arg $opt && break
roentgen b75cab
			optarg="$1"
roentgen b75cab
			opt_mode="$optarg"
roentgen b75cab
case $optarg in
roentgen b75cab
  # Valid mode arguments:
roentgen b75cab
  clean|compile|execute|finish|install|link|relink|uninstall) ;;
roentgen b75cab
roentgen b75cab
  # Catch anything else as an error
roentgen b75cab
  *) func_error "invalid argument for $opt"
roentgen b75cab
     exit_cmd=exit
roentgen b75cab
     break
roentgen b75cab
     ;;
roentgen b75cab
esac
roentgen b75cab
			shift
roentgen b75cab
			;;
roentgen b75cab
      --no-silent|--no-quiet)
roentgen b75cab
			opt_silent=false
roentgen b75cab
func_append preserve_args " $opt"
roentgen b75cab
			;;
roentgen b75cab
      --no-warning|--no-warn)
roentgen b75cab
			opt_warning=false
roentgen b75cab
func_append preserve_args " $opt"
roentgen b75cab
			;;
roentgen b75cab
      --no-verbose)
roentgen b75cab
			opt_verbose=false
roentgen b75cab
func_append preserve_args " $opt"
roentgen b75cab
			;;
roentgen b75cab
      --silent|--quiet)
roentgen b75cab
			opt_silent=:
roentgen b75cab
func_append preserve_args " $opt"
roentgen b75cab
        opt_verbose=false
roentgen b75cab
			;;
roentgen b75cab
      --verbose|-v)
roentgen b75cab
			opt_verbose=:
roentgen b75cab
func_append preserve_args " $opt"
roentgen b75cab
opt_silent=false
roentgen b75cab
			;;
roentgen b75cab
      --tag)
roentgen b75cab
			test $# = 0 && func_missing_arg $opt && break
roentgen b75cab
			optarg="$1"
roentgen b75cab
			opt_tag="$optarg"
roentgen b75cab
func_append preserve_args " $opt $optarg"
roentgen b75cab
func_enable_tag "$optarg"
roentgen b75cab
			shift
roentgen b75cab
			;;
roentgen b75cab
roentgen b75cab
      -\?|-h)		func_usage				;;
roentgen b75cab
      --help)		func_help				;;
roentgen b75cab
      --version)	func_version				;;
roentgen b75cab
roentgen b75cab
      # Separate optargs to long options:
roentgen b75cab
      --*=*)
roentgen b75cab
			func_split_long_opt "$opt"
roentgen b75cab
			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
roentgen b75cab
			shift
roentgen b75cab
			;;
roentgen b75cab
roentgen b75cab
      # Separate non-argument short options:
roentgen b75cab
      -\?*|-h*|-n*|-v*)
roentgen b75cab
			func_split_short_opt "$opt"
roentgen b75cab
			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
roentgen b75cab
			shift
roentgen b75cab
			;;
roentgen b75cab
roentgen b75cab
      --)		break					;;
roentgen b75cab
      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
roentgen b75cab
      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
roentgen b75cab
    esac
roentgen b75cab
  done
roentgen b75cab
roentgen b75cab
  # Validate options:
roentgen b75cab
roentgen b75cab
  # save first non-option argument
roentgen b75cab
  if test "$#" -gt 0; then
roentgen b75cab
    nonopt="$opt"
roentgen b75cab
    shift
roentgen b75cab
  fi
roentgen b75cab
roentgen b75cab
  # preserve --debug
roentgen b75cab
  test "$opt_debug" = : || func_append preserve_args " --debug"
roentgen b75cab
roentgen b75cab
  case $host in
roentgen b75cab
    *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2*)
roentgen b75cab
      # don't eliminate duplications in $postdeps and $predeps
roentgen b75cab
      opt_duplicate_compiler_generated_deps=:
roentgen b75cab
      ;;
roentgen b75cab
    *)
roentgen b75cab
      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
roentgen b75cab
      ;;
roentgen b75cab
  esac
roentgen b75cab
roentgen b75cab
  $opt_help || {
roentgen b75cab
    # Sanity checks first:
roentgen b75cab
    func_check_version_match
roentgen b75cab
roentgen b75cab
    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
roentgen b75cab
      func_fatal_configuration "not configured to build any kind of library"
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # Darwin sucks
roentgen b75cab
    eval std_shrext=\"$shrext_cmds\"
roentgen b75cab
roentgen b75cab
    # Only execute mode is allowed to have -dlopen flags.
roentgen b75cab
    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
roentgen b75cab
      func_error "unrecognized option \`-dlopen'"
roentgen b75cab
      $ECHO "$help" 1>&2
roentgen b75cab
      exit $EXIT_FAILURE
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # Change the help message to a mode-specific one.
roentgen b75cab
    generic_help="$help"
roentgen b75cab
    help="Try \`$progname --help --mode=$opt_mode' for more information."
roentgen b75cab
  }
roentgen b75cab
roentgen b75cab
roentgen b75cab
  # Bail if the options were screwed
roentgen b75cab
  $exit_cmd $EXIT_FAILURE
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
## ----------- ##
roentgen b75cab
##    Main.    ##
roentgen b75cab
## ----------- ##
roentgen b75cab
roentgen b75cab
# func_lalib_p file
roentgen b75cab
# True iff FILE is a libtool `.la' library or `.lo' object file.
roentgen b75cab
# This function is only a basic sanity check; it will hardly flush out
roentgen b75cab
# determined imposters.
roentgen b75cab
func_lalib_p ()
roentgen b75cab
{
roentgen b75cab
    test -f "$1" &&
roentgen b75cab
      $SED -e 4q "$1" 2>/dev/null \
roentgen b75cab
        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_lalib_unsafe_p file
roentgen b75cab
# True iff FILE is a libtool `.la' library or `.lo' object file.
roentgen b75cab
# This function implements the same check as func_lalib_p without
roentgen b75cab
# resorting to external programs.  To this end, it redirects stdin and
roentgen b75cab
# closes it afterwards, without saving the original file descriptor.
roentgen b75cab
# As a safety measure, use it only where a negative result would be
roentgen b75cab
# fatal anyway.  Works if `file' does not exist.
roentgen b75cab
func_lalib_unsafe_p ()
roentgen b75cab
{
roentgen b75cab
    lalib_p=no
roentgen b75cab
    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
roentgen b75cab
	for lalib_p_l in 1 2 3 4
roentgen b75cab
	do
roentgen b75cab
	    read lalib_p_line
roentgen b75cab
	    case "$lalib_p_line" in
roentgen b75cab
		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
roentgen b75cab
	    esac
roentgen b75cab
	done
roentgen b75cab
	exec 0<&5 5<&-
roentgen b75cab
    fi
roentgen b75cab
    test "$lalib_p" = yes
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_ltwrapper_script_p file
roentgen b75cab
# True iff FILE is a libtool wrapper script
roentgen b75cab
# This function is only a basic sanity check; it will hardly flush out
roentgen b75cab
# determined imposters.
roentgen b75cab
func_ltwrapper_script_p ()
roentgen b75cab
{
roentgen b75cab
    func_lalib_p "$1"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_ltwrapper_executable_p file
roentgen b75cab
# True iff FILE is a libtool wrapper executable
roentgen b75cab
# This function is only a basic sanity check; it will hardly flush out
roentgen b75cab
# determined imposters.
roentgen b75cab
func_ltwrapper_executable_p ()
roentgen b75cab
{
roentgen b75cab
    func_ltwrapper_exec_suffix=
roentgen b75cab
    case $1 in
roentgen b75cab
    *.exe) ;;
roentgen b75cab
    *) func_ltwrapper_exec_suffix=.exe ;;
roentgen b75cab
    esac
roentgen b75cab
    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_ltwrapper_scriptname file
roentgen b75cab
# Assumes file is an ltwrapper_executable
roentgen b75cab
# uses $file to determine the appropriate filename for a
roentgen b75cab
# temporary ltwrapper_script.
roentgen b75cab
func_ltwrapper_scriptname ()
roentgen b75cab
{
roentgen b75cab
    func_dirname_and_basename "$1" "" "."
roentgen b75cab
    func_stripname '' '.exe' "$func_basename_result"
roentgen b75cab
    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_ltwrapper_p file
roentgen b75cab
# True iff FILE is a libtool wrapper script or wrapper executable
roentgen b75cab
# This function is only a basic sanity check; it will hardly flush out
roentgen b75cab
# determined imposters.
roentgen b75cab
func_ltwrapper_p ()
roentgen b75cab
{
roentgen b75cab
    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_execute_cmds commands fail_cmd
roentgen b75cab
# Execute tilde-delimited COMMANDS.
roentgen b75cab
# If FAIL_CMD is given, eval that upon failure.
roentgen b75cab
# FAIL_CMD may read-access the current command in variable CMD!
roentgen b75cab
func_execute_cmds ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    save_ifs=$IFS; IFS='~'
roentgen b75cab
    for cmd in $1; do
roentgen b75cab
      IFS=$save_ifs
roentgen b75cab
      eval cmd=\"$cmd\"
roentgen b75cab
      func_show_eval "$cmd" "${2-:}"
roentgen b75cab
    done
roentgen b75cab
    IFS=$save_ifs
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_source file
roentgen b75cab
# Source FILE, adding directory component if necessary.
roentgen b75cab
# Note that it is not necessary on cygwin/mingw to append a dot to
roentgen b75cab
# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
roentgen b75cab
# behavior happens only for exec(3), not for open(2)!  Also, sourcing
roentgen b75cab
# `FILE.' does not work on cygwin managed mounts.
roentgen b75cab
func_source ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    case $1 in
roentgen b75cab
    */* | *\\*)	. "$1" ;;
roentgen b75cab
    *)		. "./$1" ;;
roentgen b75cab
    esac
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_resolve_sysroot PATH
roentgen b75cab
# Replace a leading = in PATH with a sysroot.  Store the result into
roentgen b75cab
# func_resolve_sysroot_result
roentgen b75cab
func_resolve_sysroot ()
roentgen b75cab
{
roentgen b75cab
  func_resolve_sysroot_result=$1
roentgen b75cab
  case $func_resolve_sysroot_result in
roentgen b75cab
  =*)
roentgen b75cab
    func_stripname '=' '' "$func_resolve_sysroot_result"
roentgen b75cab
    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
roentgen b75cab
    ;;
roentgen b75cab
  esac
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_replace_sysroot PATH
roentgen b75cab
# If PATH begins with the sysroot, replace it with = and
roentgen b75cab
# store the result into func_replace_sysroot_result.
roentgen b75cab
func_replace_sysroot ()
roentgen b75cab
{
roentgen b75cab
  case "$lt_sysroot:$1" in
roentgen b75cab
  ?*:"$lt_sysroot"*)
roentgen b75cab
    func_stripname "$lt_sysroot" '' "$1"
roentgen b75cab
    func_replace_sysroot_result="=$func_stripname_result"
roentgen b75cab
    ;;
roentgen b75cab
  *)
roentgen b75cab
    # Including no sysroot.
roentgen b75cab
    func_replace_sysroot_result=$1
roentgen b75cab
    ;;
roentgen b75cab
  esac
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_infer_tag arg
roentgen b75cab
# Infer tagged configuration to use if any are available and
roentgen b75cab
# if one wasn't chosen via the "--tag" command line option.
roentgen b75cab
# Only attempt this if the compiler in the base compile
roentgen b75cab
# command doesn't match the default compiler.
roentgen b75cab
# arg is usually of the form 'gcc ...'
roentgen b75cab
func_infer_tag ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    if test -n "$available_tags" && test -z "$tagname"; then
roentgen b75cab
      CC_quoted=
roentgen b75cab
      for arg in $CC; do
roentgen b75cab
	func_append_quoted CC_quoted "$arg"
roentgen b75cab
      done
roentgen b75cab
      CC_expanded=`func_echo_all $CC`
roentgen b75cab
      CC_quoted_expanded=`func_echo_all $CC_quoted`
roentgen b75cab
      case $@ in
roentgen b75cab
      # Blanks in the command may have been stripped by the calling shell,
roentgen b75cab
      # but not from the CC environment variable when configure was run.
roentgen b75cab
      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
roentgen b75cab
      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
roentgen b75cab
      # Blanks at the start of $base_compile will cause this to fail
roentgen b75cab
      # if we don't check for them as well.
roentgen b75cab
      *)
roentgen b75cab
	for z in $available_tags; do
roentgen b75cab
	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
roentgen b75cab
	    # Evaluate the configuration.
roentgen b75cab
	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
roentgen b75cab
	    CC_quoted=
roentgen b75cab
	    for arg in $CC; do
roentgen b75cab
	      # Double-quote args containing other shell metacharacters.
roentgen b75cab
	      func_append_quoted CC_quoted "$arg"
roentgen b75cab
	    done
roentgen b75cab
	    CC_expanded=`func_echo_all $CC`
roentgen b75cab
	    CC_quoted_expanded=`func_echo_all $CC_quoted`
roentgen b75cab
	    case "$@ " in
roentgen b75cab
	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
roentgen b75cab
	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
roentgen b75cab
	      # The compiler in the base compile command matches
roentgen b75cab
	      # the one in the tagged configuration.
roentgen b75cab
	      # Assume this is the tagged configuration we want.
roentgen b75cab
	      tagname=$z
roentgen b75cab
	      break
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	  fi
roentgen b75cab
	done
roentgen b75cab
	# If $tagname still isn't set, then no tagged configuration
roentgen b75cab
	# was found and let the user know that the "--tag" command
roentgen b75cab
	# line option must be used.
roentgen b75cab
	if test -z "$tagname"; then
roentgen b75cab
	  func_echo "unable to infer tagged configuration"
roentgen b75cab
	  func_fatal_error "specify a tag with \`--tag'"
roentgen b75cab
#	else
roentgen b75cab
#	  func_verbose "using $tagname tagged configuration"
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_write_libtool_object output_name pic_name nonpic_name
roentgen b75cab
# Create a libtool object file (analogous to a ".la" file),
roentgen b75cab
# but don't create it if we're doing a dry run.
roentgen b75cab
func_write_libtool_object ()
roentgen b75cab
{
roentgen b75cab
    write_libobj=${1}
roentgen b75cab
    if test "$build_libtool_libs" = yes; then
roentgen b75cab
      write_lobj=\'${2}\'
roentgen b75cab
    else
roentgen b75cab
      write_lobj=none
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    if test "$build_old_libs" = yes; then
roentgen b75cab
      write_oldobj=\'${3}\'
roentgen b75cab
    else
roentgen b75cab
      write_oldobj=none
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    $opt_dry_run || {
roentgen b75cab
      cat >${write_libobj}T <<EOF
roentgen b75cab
# $write_libobj - a libtool object file
roentgen b75cab
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
roentgen b75cab
#
roentgen b75cab
# Please DO NOT delete this file!
roentgen b75cab
# It is necessary for linking the library.
roentgen b75cab
roentgen b75cab
# Name of the PIC object.
roentgen b75cab
pic_object=$write_lobj
roentgen b75cab
roentgen b75cab
# Name of the non-PIC object
roentgen b75cab
non_pic_object=$write_oldobj
roentgen b75cab
roentgen b75cab
EOF
roentgen b75cab
      $MV "${write_libobj}T" "${write_libobj}"
roentgen b75cab
    }
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
##################################################
roentgen b75cab
# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
roentgen b75cab
##################################################
roentgen b75cab
roentgen b75cab
# func_convert_core_file_wine_to_w32 ARG
roentgen b75cab
# Helper function used by file name conversion functions when $build is *nix,
roentgen b75cab
# and $host is mingw, cygwin, or some other w32 environment. Relies on a
roentgen b75cab
# correctly configured wine environment available, with the winepath program
roentgen b75cab
# in $build's $PATH.
roentgen b75cab
#
roentgen b75cab
# ARG is the $build file name to be converted to w32 format.
roentgen b75cab
# Result is available in $func_convert_core_file_wine_to_w32_result, and will
roentgen b75cab
# be empty on error (or when ARG is empty)
roentgen b75cab
func_convert_core_file_wine_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_convert_core_file_wine_to_w32_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    # Unfortunately, winepath does not exit with a non-zero error code, so we
roentgen b75cab
    # are forced to check the contents of stdout. On the other hand, if the
roentgen b75cab
    # command is not found, the shell will set an exit code of 127 and print
roentgen b75cab
    # *an error message* to stdout. So we must check for both error code of
roentgen b75cab
    # zero AND non-empty stdout, which explains the odd construction:
roentgen b75cab
    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
roentgen b75cab
    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
roentgen b75cab
      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
roentgen b75cab
        $SED -e "$lt_sed_naive_backslashify"`
roentgen b75cab
    else
roentgen b75cab
      func_convert_core_file_wine_to_w32_result=
roentgen b75cab
    fi
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end: func_convert_core_file_wine_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_core_path_wine_to_w32 ARG
roentgen b75cab
# Helper function used by path conversion functions when $build is *nix, and
roentgen b75cab
# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
roentgen b75cab
# configured wine environment available, with the winepath program in $build's
roentgen b75cab
# $PATH. Assumes ARG has no leading or trailing path separator characters.
roentgen b75cab
#
roentgen b75cab
# ARG is path to be converted from $build format to win32.
roentgen b75cab
# Result is available in $func_convert_core_path_wine_to_w32_result.
roentgen b75cab
# Unconvertible file (directory) names in ARG are skipped; if no directory names
roentgen b75cab
# are convertible, then the result may be empty.
roentgen b75cab
func_convert_core_path_wine_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  # unfortunately, winepath doesn't convert paths, only file names
roentgen b75cab
  func_convert_core_path_wine_to_w32_result=""
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    oldIFS=$IFS
roentgen b75cab
    IFS=:
roentgen b75cab
    for func_convert_core_path_wine_to_w32_f in $1; do
roentgen b75cab
      IFS=$oldIFS
roentgen b75cab
      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
roentgen b75cab
      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
roentgen b75cab
        if test -z "$func_convert_core_path_wine_to_w32_result"; then
roentgen b75cab
          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
roentgen b75cab
        else
roentgen b75cab
          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
roentgen b75cab
        fi
roentgen b75cab
      fi
roentgen b75cab
    done
roentgen b75cab
    IFS=$oldIFS
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end: func_convert_core_path_wine_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_cygpath ARGS...
roentgen b75cab
# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
roentgen b75cab
# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
roentgen b75cab
# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
roentgen b75cab
# (2), returns the Cygwin file name or path in func_cygpath_result (input
roentgen b75cab
# file name or path is assumed to be in w32 format, as previously converted
roentgen b75cab
# from $build's *nix or MSYS format). In case (3), returns the w32 file name
roentgen b75cab
# or path in func_cygpath_result (input file name or path is assumed to be in
roentgen b75cab
# Cygwin format). Returns an empty string on error.
roentgen b75cab
#
roentgen b75cab
# ARGS are passed to cygpath, with the last one being the file name or path to
roentgen b75cab
# be converted.
roentgen b75cab
#
roentgen b75cab
# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
roentgen b75cab
# environment variable; do not put it in $PATH.
roentgen b75cab
func_cygpath ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
roentgen b75cab
    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
roentgen b75cab
    if test "$?" -ne 0; then
roentgen b75cab
      # on failure, ensure result is empty
roentgen b75cab
      func_cygpath_result=
roentgen b75cab
    fi
roentgen b75cab
  else
roentgen b75cab
    func_cygpath_result=
roentgen b75cab
    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
#end: func_cygpath
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_core_msys_to_w32 ARG
roentgen b75cab
# Convert file name or path ARG from MSYS format to w32 format.  Return
roentgen b75cab
# result in func_convert_core_msys_to_w32_result.
roentgen b75cab
func_convert_core_msys_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  # awkward: cmd appends spaces to result
roentgen b75cab
  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
roentgen b75cab
    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
roentgen b75cab
}
roentgen b75cab
#end: func_convert_core_msys_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_file_check ARG1 ARG2
roentgen b75cab
# Verify that ARG1 (a file name in $build format) was converted to $host
roentgen b75cab
# format in ARG2. Otherwise, emit an error message, but continue (resetting
roentgen b75cab
# func_to_host_file_result to ARG1).
roentgen b75cab
func_convert_file_check ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  if test -z "$2" && test -n "$1" ; then
roentgen b75cab
    func_error "Could not determine host file name corresponding to"
roentgen b75cab
    func_error "  \`$1'"
roentgen b75cab
    func_error "Continuing, but uninstalled executables may not work."
roentgen b75cab
    # Fallback:
roentgen b75cab
    func_to_host_file_result="$1"
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end func_convert_file_check
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
roentgen b75cab
# Verify that FROM_PATH (a path in $build format) was converted to $host
roentgen b75cab
# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
roentgen b75cab
# func_to_host_file_result to a simplistic fallback value (see below).
roentgen b75cab
func_convert_path_check ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  if test -z "$4" && test -n "$3"; then
roentgen b75cab
    func_error "Could not determine the host path corresponding to"
roentgen b75cab
    func_error "  \`$3'"
roentgen b75cab
    func_error "Continuing, but uninstalled executables may not work."
roentgen b75cab
    # Fallback.  This is a deliberately simplistic "conversion" and
roentgen b75cab
    # should not be "improved".  See libtool.info.
roentgen b75cab
    if test "x$1" != "x$2"; then
roentgen b75cab
      lt_replace_pathsep_chars="s|$1|$2|g"
roentgen b75cab
      func_to_host_path_result=`echo "$3" |
roentgen b75cab
        $SED -e "$lt_replace_pathsep_chars"`
roentgen b75cab
    else
roentgen b75cab
      func_to_host_path_result="$3"
roentgen b75cab
    fi
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end func_convert_path_check
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
roentgen b75cab
# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
roentgen b75cab
# and appending REPL if ORIG matches BACKPAT.
roentgen b75cab
func_convert_path_front_back_pathsep ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  case $4 in
roentgen b75cab
  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
roentgen b75cab
    ;;
roentgen b75cab
  esac
roentgen b75cab
  case $4 in
roentgen b75cab
  $2 ) func_append func_to_host_path_result "$3"
roentgen b75cab
    ;;
roentgen b75cab
  esac
roentgen b75cab
}
roentgen b75cab
# end func_convert_path_front_back_pathsep
roentgen b75cab
roentgen b75cab
roentgen b75cab
##################################################
roentgen b75cab
# $build to $host FILE NAME CONVERSION FUNCTIONS #
roentgen b75cab
##################################################
roentgen b75cab
# invoked via `$to_host_file_cmd ARG'
roentgen b75cab
#
roentgen b75cab
# In each case, ARG is the path to be converted from $build to $host format.
roentgen b75cab
# Result will be available in $func_to_host_file_result.
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_to_host_file ARG
roentgen b75cab
# Converts the file name ARG from $build format to $host format. Return result
roentgen b75cab
# in func_to_host_file_result.
roentgen b75cab
func_to_host_file ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  $to_host_file_cmd "$1"
roentgen b75cab
}
roentgen b75cab
# end func_to_host_file
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_to_tool_file ARG LAZY
roentgen b75cab
# converts the file name ARG from $build format to toolchain format. Return
roentgen b75cab
# result in func_to_tool_file_result.  If the conversion in use is listed
roentgen b75cab
# in (the comma separated) LAZY, no conversion takes place.
roentgen b75cab
func_to_tool_file ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  case ,$2, in
roentgen b75cab
    *,"$to_tool_file_cmd",*)
roentgen b75cab
      func_to_tool_file_result=$1
roentgen b75cab
      ;;
roentgen b75cab
    *)
roentgen b75cab
      $to_tool_file_cmd "$1"
roentgen b75cab
      func_to_tool_file_result=$func_to_host_file_result
roentgen b75cab
      ;;
roentgen b75cab
  esac
roentgen b75cab
}
roentgen b75cab
# end func_to_tool_file
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_file_noop ARG
roentgen b75cab
# Copy ARG to func_to_host_file_result.
roentgen b75cab
func_convert_file_noop ()
roentgen b75cab
{
roentgen b75cab
  func_to_host_file_result="$1"
roentgen b75cab
}
roentgen b75cab
# end func_convert_file_noop
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_file_msys_to_w32 ARG
roentgen b75cab
# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
roentgen b75cab
# conversion to w32 is not available inside the cwrapper.  Returns result in
roentgen b75cab
# func_to_host_file_result.
roentgen b75cab
func_convert_file_msys_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_file_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    func_convert_core_msys_to_w32 "$1"
roentgen b75cab
    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
roentgen b75cab
  fi
roentgen b75cab
  func_convert_file_check "$1" "$func_to_host_file_result"
roentgen b75cab
}
roentgen b75cab
# end func_convert_file_msys_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_file_cygwin_to_w32 ARG
roentgen b75cab
# Convert file name ARG from Cygwin to w32 format.  Returns result in
roentgen b75cab
# func_to_host_file_result.
roentgen b75cab
func_convert_file_cygwin_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_file_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
roentgen b75cab
    # LT_CYGPATH in this case.
roentgen b75cab
    func_to_host_file_result=`cygpath -m "$1"`
roentgen b75cab
  fi
roentgen b75cab
  func_convert_file_check "$1" "$func_to_host_file_result"
roentgen b75cab
}
roentgen b75cab
# end func_convert_file_cygwin_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_file_nix_to_w32 ARG
roentgen b75cab
# Convert file name ARG from *nix to w32 format.  Requires a wine environment
roentgen b75cab
# and a working winepath. Returns result in func_to_host_file_result.
roentgen b75cab
func_convert_file_nix_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_file_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    func_convert_core_file_wine_to_w32 "$1"
roentgen b75cab
    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
roentgen b75cab
  fi
roentgen b75cab
  func_convert_file_check "$1" "$func_to_host_file_result"
roentgen b75cab
}
roentgen b75cab
# end func_convert_file_nix_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_file_msys_to_cygwin ARG
roentgen b75cab
# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
roentgen b75cab
# Returns result in func_to_host_file_result.
roentgen b75cab
func_convert_file_msys_to_cygwin ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_file_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    func_convert_core_msys_to_w32 "$1"
roentgen b75cab
    func_cygpath -u "$func_convert_core_msys_to_w32_result"
roentgen b75cab
    func_to_host_file_result="$func_cygpath_result"
roentgen b75cab
  fi
roentgen b75cab
  func_convert_file_check "$1" "$func_to_host_file_result"
roentgen b75cab
}
roentgen b75cab
# end func_convert_file_msys_to_cygwin
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_file_nix_to_cygwin ARG
roentgen b75cab
# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
roentgen b75cab
# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
roentgen b75cab
# in func_to_host_file_result.
roentgen b75cab
func_convert_file_nix_to_cygwin ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_file_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
roentgen b75cab
    func_convert_core_file_wine_to_w32 "$1"
roentgen b75cab
    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
roentgen b75cab
    func_to_host_file_result="$func_cygpath_result"
roentgen b75cab
  fi
roentgen b75cab
  func_convert_file_check "$1" "$func_to_host_file_result"
roentgen b75cab
}
roentgen b75cab
# end func_convert_file_nix_to_cygwin
roentgen b75cab
roentgen b75cab
roentgen b75cab
#############################################
roentgen b75cab
# $build to $host PATH CONVERSION FUNCTIONS #
roentgen b75cab
#############################################
roentgen b75cab
# invoked via `$to_host_path_cmd ARG'
roentgen b75cab
#
roentgen b75cab
# In each case, ARG is the path to be converted from $build to $host format.
roentgen b75cab
# The result will be available in $func_to_host_path_result.
roentgen b75cab
#
roentgen b75cab
# Path separators are also converted from $build format to $host format.  If
roentgen b75cab
# ARG begins or ends with a path separator character, it is preserved (but
roentgen b75cab
# converted to $host format) on output.
roentgen b75cab
#
roentgen b75cab
# All path conversion functions are named using the following convention:
roentgen b75cab
#   file name conversion function    : func_convert_file_X_to_Y ()
roentgen b75cab
#   path conversion function         : func_convert_path_X_to_Y ()
roentgen b75cab
# where, for any given $build/$host combination the 'X_to_Y' value is the
roentgen b75cab
# same.  If conversion functions are added for new $build/$host combinations,
roentgen b75cab
# the two new functions must follow this pattern, or func_init_to_host_path_cmd
roentgen b75cab
# will break.
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_init_to_host_path_cmd
roentgen b75cab
# Ensures that function "pointer" variable $to_host_path_cmd is set to the
roentgen b75cab
# appropriate value, based on the value of $to_host_file_cmd.
roentgen b75cab
to_host_path_cmd=
roentgen b75cab
func_init_to_host_path_cmd ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  if test -z "$to_host_path_cmd"; then
roentgen b75cab
    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
roentgen b75cab
    to_host_path_cmd="func_convert_path_${func_stripname_result}"
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_to_host_path ARG
roentgen b75cab
# Converts the path ARG from $build format to $host format. Return result
roentgen b75cab
# in func_to_host_path_result.
roentgen b75cab
func_to_host_path ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_init_to_host_path_cmd
roentgen b75cab
  $to_host_path_cmd "$1"
roentgen b75cab
}
roentgen b75cab
# end func_to_host_path
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_path_noop ARG
roentgen b75cab
# Copy ARG to func_to_host_path_result.
roentgen b75cab
func_convert_path_noop ()
roentgen b75cab
{
roentgen b75cab
  func_to_host_path_result="$1"
roentgen b75cab
}
roentgen b75cab
# end func_convert_path_noop
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_path_msys_to_w32 ARG
roentgen b75cab
# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
roentgen b75cab
# conversion to w32 is not available inside the cwrapper.  Returns result in
roentgen b75cab
# func_to_host_path_result.
roentgen b75cab
func_convert_path_msys_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_path_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    # Remove leading and trailing path separator characters from ARG.  MSYS
roentgen b75cab
    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
roentgen b75cab
    # and winepath ignores them completely.
roentgen b75cab
    func_stripname : : "$1"
roentgen b75cab
    func_to_host_path_tmp1=$func_stripname_result
roentgen b75cab
    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
roentgen b75cab
    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
roentgen b75cab
    func_convert_path_check : ";" \
roentgen b75cab
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
roentgen b75cab
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end func_convert_path_msys_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_path_cygwin_to_w32 ARG
roentgen b75cab
# Convert path ARG from Cygwin to w32 format.  Returns result in
roentgen b75cab
# func_to_host_file_result.
roentgen b75cab
func_convert_path_cygwin_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_path_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    # See func_convert_path_msys_to_w32:
roentgen b75cab
    func_stripname : : "$1"
roentgen b75cab
    func_to_host_path_tmp1=$func_stripname_result
roentgen b75cab
    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
roentgen b75cab
    func_convert_path_check : ";" \
roentgen b75cab
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
roentgen b75cab
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end func_convert_path_cygwin_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_path_nix_to_w32 ARG
roentgen b75cab
# Convert path ARG from *nix to w32 format.  Requires a wine environment and
roentgen b75cab
# a working winepath.  Returns result in func_to_host_file_result.
roentgen b75cab
func_convert_path_nix_to_w32 ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_path_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    # See func_convert_path_msys_to_w32:
roentgen b75cab
    func_stripname : : "$1"
roentgen b75cab
    func_to_host_path_tmp1=$func_stripname_result
roentgen b75cab
    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
roentgen b75cab
    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
roentgen b75cab
    func_convert_path_check : ";" \
roentgen b75cab
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
roentgen b75cab
    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end func_convert_path_nix_to_w32
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_path_msys_to_cygwin ARG
roentgen b75cab
# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
roentgen b75cab
# Returns result in func_to_host_file_result.
roentgen b75cab
func_convert_path_msys_to_cygwin ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_path_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    # See func_convert_path_msys_to_w32:
roentgen b75cab
    func_stripname : : "$1"
roentgen b75cab
    func_to_host_path_tmp1=$func_stripname_result
roentgen b75cab
    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
roentgen b75cab
    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
roentgen b75cab
    func_to_host_path_result="$func_cygpath_result"
roentgen b75cab
    func_convert_path_check : : \
roentgen b75cab
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
roentgen b75cab
    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end func_convert_path_msys_to_cygwin
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_convert_path_nix_to_cygwin ARG
roentgen b75cab
# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
roentgen b75cab
# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
roentgen b75cab
# func_to_host_file_result.
roentgen b75cab
func_convert_path_nix_to_cygwin ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_host_path_result="$1"
roentgen b75cab
  if test -n "$1"; then
roentgen b75cab
    # Remove leading and trailing path separator characters from
roentgen b75cab
    # ARG. msys behavior is inconsistent here, cygpath turns them
roentgen b75cab
    # into '.;' and ';.', and winepath ignores them completely.
roentgen b75cab
    func_stripname : : "$1"
roentgen b75cab
    func_to_host_path_tmp1=$func_stripname_result
roentgen b75cab
    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
roentgen b75cab
    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
roentgen b75cab
    func_to_host_path_result="$func_cygpath_result"
roentgen b75cab
    func_convert_path_check : : \
roentgen b75cab
      "$func_to_host_path_tmp1" "$func_to_host_path_result"
roentgen b75cab
    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
# end func_convert_path_nix_to_cygwin
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_mode_compile arg...
roentgen b75cab
func_mode_compile ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    # Get the compilation command and the source file.
roentgen b75cab
    base_compile=
roentgen b75cab
    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
roentgen b75cab
    suppress_opt=yes
roentgen b75cab
    suppress_output=
roentgen b75cab
    arg_mode=normal
roentgen b75cab
    libobj=
roentgen b75cab
    later=
roentgen b75cab
    pie_flag=
roentgen b75cab
roentgen b75cab
    for arg
roentgen b75cab
    do
roentgen b75cab
      case $arg_mode in
roentgen b75cab
      arg  )
roentgen b75cab
	# do not "continue".  Instead, add this to base_compile
roentgen b75cab
	lastarg="$arg"
roentgen b75cab
	arg_mode=normal
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      target )
roentgen b75cab
	libobj="$arg"
roentgen b75cab
	arg_mode=normal
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      normal )
roentgen b75cab
	# Accept any command-line options.
roentgen b75cab
	case $arg in
roentgen b75cab
	-o)
roentgen b75cab
	  test -n "$libobj" && \
roentgen b75cab
	    func_fatal_error "you cannot specify \`-o' more than once"
roentgen b75cab
	  arg_mode=target
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	-pie | -fpie | -fPIE)
roentgen b75cab
          func_append pie_flag " $arg"
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	-shared | -static | -prefer-pic | -prefer-non-pic)
roentgen b75cab
	  func_append later " $arg"
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	-no-suppress)
roentgen b75cab
	  suppress_opt=no
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	-Xcompiler)
roentgen b75cab
	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
roentgen b75cab
	  continue      #  The current "srcfile" will either be retained or
roentgen b75cab
	  ;;            #  replaced later.  I would guess that would be a bug.
roentgen b75cab
roentgen b75cab
	-Wc,*)
roentgen b75cab
	  func_stripname '-Wc,' '' "$arg"
roentgen b75cab
	  args=$func_stripname_result
roentgen b75cab
	  lastarg=
roentgen b75cab
	  save_ifs="$IFS"; IFS=','
roentgen b75cab
	  for arg in $args; do
roentgen b75cab
	    IFS="$save_ifs"
roentgen b75cab
	    func_append_quoted lastarg "$arg"
roentgen b75cab
	  done
roentgen b75cab
	  IFS="$save_ifs"
roentgen b75cab
	  func_stripname ' ' '' "$lastarg"
roentgen b75cab
	  lastarg=$func_stripname_result
roentgen b75cab
roentgen b75cab
	  # Add the arguments to base_compile.
roentgen b75cab
	  func_append base_compile " $lastarg"
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	*)
roentgen b75cab
	  # Accept the current argument as the source file.
roentgen b75cab
	  # The previous "srcfile" becomes the current argument.
roentgen b75cab
	  #
roentgen b75cab
	  lastarg="$srcfile"
roentgen b75cab
	  srcfile="$arg"
roentgen b75cab
	  ;;
roentgen b75cab
	esac  #  case $arg
roentgen b75cab
	;;
roentgen b75cab
      esac    #  case $arg_mode
roentgen b75cab
roentgen b75cab
      # Aesthetically quote the previous argument.
roentgen b75cab
      func_append_quoted base_compile "$lastarg"
roentgen b75cab
    done # for arg
roentgen b75cab
roentgen b75cab
    case $arg_mode in
roentgen b75cab
    arg)
roentgen b75cab
      func_fatal_error "you must specify an argument for -Xcompile"
roentgen b75cab
      ;;
roentgen b75cab
    target)
roentgen b75cab
      func_fatal_error "you must specify a target with \`-o'"
roentgen b75cab
      ;;
roentgen b75cab
    *)
roentgen b75cab
      # Get the name of the library object.
roentgen b75cab
      test -z "$libobj" && {
roentgen b75cab
	func_basename "$srcfile"
roentgen b75cab
	libobj="$func_basename_result"
roentgen b75cab
      }
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    # Recognize several different file suffixes.
roentgen b75cab
    # If the user specifies -o file.o, it is replaced with file.lo
roentgen b75cab
    case $libobj in
roentgen b75cab
    *.[cCFSifmso] | \
roentgen b75cab
    *.ada | *.adb | *.ads | *.asm | \
roentgen b75cab
    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
roentgen b75cab
    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
roentgen b75cab
      func_xform "$libobj"
roentgen b75cab
      libobj=$func_xform_result
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    case $libobj in
roentgen b75cab
    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
roentgen b75cab
    *)
roentgen b75cab
      func_fatal_error "cannot determine name of library object from \`$libobj'"
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    func_infer_tag $base_compile
roentgen b75cab
roentgen b75cab
    for arg in $later; do
roentgen b75cab
      case $arg in
roentgen b75cab
      -shared)
roentgen b75cab
	test "$build_libtool_libs" != yes && \
roentgen b75cab
	  func_fatal_configuration "can not build a shared library"
roentgen b75cab
	build_old_libs=no
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -static)
roentgen b75cab
	build_libtool_libs=no
roentgen b75cab
	build_old_libs=yes
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -prefer-pic)
roentgen b75cab
	pic_mode=yes
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -prefer-non-pic)
roentgen b75cab
	pic_mode=no
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    func_quote_for_eval "$libobj"
roentgen b75cab
    test "X$libobj" != "X$func_quote_for_eval_result" \
roentgen b75cab
      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
roentgen b75cab
      && func_warning "libobj name \`$libobj' may not contain shell special characters."
roentgen b75cab
    func_dirname_and_basename "$obj" "/" ""
roentgen b75cab
    objname="$func_basename_result"
roentgen b75cab
    xdir="$func_dirname_result"
roentgen b75cab
    lobj=${xdir}$objdir/$objname
roentgen b75cab
roentgen b75cab
    test -z "$base_compile" && \
roentgen b75cab
      func_fatal_help "you must specify a compilation command"
roentgen b75cab
roentgen b75cab
    # Delete any leftover library objects.
roentgen b75cab
    if test "$build_old_libs" = yes; then
roentgen b75cab
      removelist="$obj $lobj $libobj ${libobj}T"
roentgen b75cab
    else
roentgen b75cab
      removelist="$lobj $libobj ${libobj}T"
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # On Cygwin there's no "real" PIC flag so we must build both object types
roentgen b75cab
    case $host_os in
roentgen b75cab
    cygwin* | mingw* | pw32* | os2* | cegcc*)
roentgen b75cab
      pic_mode=default
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
roentgen b75cab
      # non-PIC code in shared libraries is not supported
roentgen b75cab
      pic_mode=default
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # Calculate the filename of the output object if compiler does
roentgen b75cab
    # not support -o with -c
roentgen b75cab
    if test "$compiler_c_o" = no; then
roentgen b75cab
      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
roentgen b75cab
      lockfile="$output_obj.lock"
roentgen b75cab
    else
roentgen b75cab
      output_obj=
roentgen b75cab
      need_locks=no
roentgen b75cab
      lockfile=
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # Lock this critical section if it is needed
roentgen b75cab
    # We use this script file to make the link, it avoids creating a new file
roentgen b75cab
    if test "$need_locks" = yes; then
roentgen b75cab
      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
roentgen b75cab
	func_echo "Waiting for $lockfile to be removed"
roentgen b75cab
	sleep 2
roentgen b75cab
      done
roentgen b75cab
    elif test "$need_locks" = warn; then
roentgen b75cab
      if test -f "$lockfile"; then
roentgen b75cab
	$ECHO "\
roentgen b75cab
*** ERROR, $lockfile exists and contains:
roentgen b75cab
`cat $lockfile 2>/dev/null`
roentgen b75cab
roentgen b75cab
This indicates that another process is trying to use the same
roentgen b75cab
temporary object file, and libtool could not work around it because
roentgen b75cab
your compiler does not support \`-c' and \`-o' together.  If you
roentgen b75cab
repeat this compilation, it may succeed, by chance, but you had better
roentgen b75cab
avoid parallel builds (make -j) in this platform, or get a better
roentgen b75cab
compiler."
roentgen b75cab
roentgen b75cab
	$opt_dry_run || $RM $removelist
roentgen b75cab
	exit $EXIT_FAILURE
roentgen b75cab
      fi
roentgen b75cab
      func_append removelist " $output_obj"
roentgen b75cab
      $ECHO "$srcfile" > "$lockfile"
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    $opt_dry_run || $RM $removelist
roentgen b75cab
    func_append removelist " $lockfile"
roentgen b75cab
    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
roentgen b75cab
roentgen b75cab
    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
roentgen b75cab
    srcfile=$func_to_tool_file_result
roentgen b75cab
    func_quote_for_eval "$srcfile"
roentgen b75cab
    qsrcfile=$func_quote_for_eval_result
roentgen b75cab
roentgen b75cab
    # Only build a PIC object if we are building libtool libraries.
roentgen b75cab
    if test "$build_libtool_libs" = yes; then
roentgen b75cab
      # Without this assignment, base_compile gets emptied.
roentgen b75cab
      fbsd_hideous_sh_bug=$base_compile
roentgen b75cab
roentgen b75cab
      if test "$pic_mode" != no; then
roentgen b75cab
	command="$base_compile $qsrcfile $pic_flag"
roentgen b75cab
      else
roentgen b75cab
	# Don't build PIC code
roentgen b75cab
	command="$base_compile $qsrcfile"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      func_mkdir_p "$xdir$objdir"
roentgen b75cab
roentgen b75cab
      if test -z "$output_obj"; then
roentgen b75cab
	# Place PIC objects in $objdir
roentgen b75cab
	func_append command " -o $lobj"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      func_show_eval_locale "$command"	\
roentgen b75cab
          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
roentgen b75cab
roentgen b75cab
      if test "$need_locks" = warn &&
roentgen b75cab
	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
roentgen b75cab
	$ECHO "\
roentgen b75cab
*** ERROR, $lockfile contains:
roentgen b75cab
`cat $lockfile 2>/dev/null`
roentgen b75cab
roentgen b75cab
but it should contain:
roentgen b75cab
$srcfile
roentgen b75cab
roentgen b75cab
This indicates that another process is trying to use the same
roentgen b75cab
temporary object file, and libtool could not work around it because
roentgen b75cab
your compiler does not support \`-c' and \`-o' together.  If you
roentgen b75cab
repeat this compilation, it may succeed, by chance, but you had better
roentgen b75cab
avoid parallel builds (make -j) in this platform, or get a better
roentgen b75cab
compiler."
roentgen b75cab
roentgen b75cab
	$opt_dry_run || $RM $removelist
roentgen b75cab
	exit $EXIT_FAILURE
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Just move the object if needed, then go on to compile the next one
roentgen b75cab
      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
roentgen b75cab
	func_show_eval '$MV "$output_obj" "$lobj"' \
roentgen b75cab
	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Allow error messages only from the first compilation.
roentgen b75cab
      if test "$suppress_opt" = yes; then
roentgen b75cab
	suppress_output=' >/dev/null 2>&1'
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # Only build a position-dependent object if we build old libraries.
roentgen b75cab
    if test "$build_old_libs" = yes; then
roentgen b75cab
      if test "$pic_mode" != yes; then
roentgen b75cab
	# Don't build PIC code
roentgen b75cab
	command="$base_compile $qsrcfile$pie_flag"
roentgen b75cab
      else
roentgen b75cab
	command="$base_compile $qsrcfile $pic_flag"
roentgen b75cab
      fi
roentgen b75cab
      if test "$compiler_c_o" = yes; then
roentgen b75cab
	func_append command " -o $obj"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Suppress compiler output if we already did a PIC compilation.
roentgen b75cab
      func_append command "$suppress_output"
roentgen b75cab
      func_show_eval_locale "$command" \
roentgen b75cab
        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
roentgen b75cab
roentgen b75cab
      if test "$need_locks" = warn &&
roentgen b75cab
	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
roentgen b75cab
	$ECHO "\
roentgen b75cab
*** ERROR, $lockfile contains:
roentgen b75cab
`cat $lockfile 2>/dev/null`
roentgen b75cab
roentgen b75cab
but it should contain:
roentgen b75cab
$srcfile
roentgen b75cab
roentgen b75cab
This indicates that another process is trying to use the same
roentgen b75cab
temporary object file, and libtool could not work around it because
roentgen b75cab
your compiler does not support \`-c' and \`-o' together.  If you
roentgen b75cab
repeat this compilation, it may succeed, by chance, but you had better
roentgen b75cab
avoid parallel builds (make -j) in this platform, or get a better
roentgen b75cab
compiler."
roentgen b75cab
roentgen b75cab
	$opt_dry_run || $RM $removelist
roentgen b75cab
	exit $EXIT_FAILURE
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Just move the object if needed
roentgen b75cab
      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
roentgen b75cab
	func_show_eval '$MV "$output_obj" "$obj"' \
roentgen b75cab
	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    $opt_dry_run || {
roentgen b75cab
      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
roentgen b75cab
roentgen b75cab
      # Unlock the critical section if it was locked
roentgen b75cab
      if test "$need_locks" != no; then
roentgen b75cab
	removelist=$lockfile
roentgen b75cab
        $RM "$lockfile"
roentgen b75cab
      fi
roentgen b75cab
    }
roentgen b75cab
roentgen b75cab
    exit $EXIT_SUCCESS
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
$opt_help || {
roentgen b75cab
  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
func_mode_help ()
roentgen b75cab
{
roentgen b75cab
    # We need to display help for each of the modes.
roentgen b75cab
    case $opt_mode in
roentgen b75cab
      "")
roentgen b75cab
        # Generic help is extracted from the usage comments
roentgen b75cab
        # at the start of this file.
roentgen b75cab
        func_help
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      clean)
roentgen b75cab
        $ECHO \
roentgen b75cab
"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
roentgen b75cab
roentgen b75cab
Remove files from the build directory.
roentgen b75cab
roentgen b75cab
RM is the name of the program to use to delete files associated with each FILE
roentgen b75cab
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
roentgen b75cab
to RM.
roentgen b75cab
roentgen b75cab
If FILE is a libtool library, object or program, all the files associated
roentgen b75cab
with it are deleted. Otherwise, only FILE itself is deleted using RM."
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      compile)
roentgen b75cab
      $ECHO \
roentgen b75cab
"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
roentgen b75cab
roentgen b75cab
Compile a source file into a libtool library object.
roentgen b75cab
roentgen b75cab
This mode accepts the following additional options:
roentgen b75cab
roentgen b75cab
  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
roentgen b75cab
  -no-suppress      do not suppress compiler output for multiple passes
roentgen b75cab
  -prefer-pic       try to build PIC objects only
roentgen b75cab
  -prefer-non-pic   try to build non-PIC objects only
roentgen b75cab
  -shared           do not build a \`.o' file suitable for static linking
roentgen b75cab
  -static           only build a \`.o' file suitable for static linking
roentgen b75cab
  -Wc,FLAG          pass FLAG directly to the compiler
roentgen b75cab
roentgen b75cab
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
roentgen b75cab
from the given SOURCEFILE.
roentgen b75cab
roentgen b75cab
The output file name is determined by removing the directory component from
roentgen b75cab
SOURCEFILE, then substituting the C source code suffix \`.c' with the
roentgen b75cab
library object suffix, \`.lo'."
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      execute)
roentgen b75cab
        $ECHO \
roentgen b75cab
"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
roentgen b75cab
roentgen b75cab
Automatically set library path, then run a program.
roentgen b75cab
roentgen b75cab
This mode accepts the following additional options:
roentgen b75cab
roentgen b75cab
  -dlopen FILE      add the directory containing FILE to the library path
roentgen b75cab
roentgen b75cab
This mode sets the library path environment variable according to \`-dlopen'
roentgen b75cab
flags.
roentgen b75cab
roentgen b75cab
If any of the ARGS are libtool executable wrappers, then they are translated
roentgen b75cab
into their corresponding uninstalled binary, and any of their required library
roentgen b75cab
directories are added to the library path.
roentgen b75cab
roentgen b75cab
Then, COMMAND is executed, with ARGS as arguments."
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      finish)
roentgen b75cab
        $ECHO \
roentgen b75cab
"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
roentgen b75cab
roentgen b75cab
Complete the installation of libtool libraries.
roentgen b75cab
roentgen b75cab
Each LIBDIR is a directory that contains libtool libraries.
roentgen b75cab
roentgen b75cab
The commands that this mode executes may require superuser privileges.  Use
roentgen b75cab
the \`--dry-run' option if you just want to see what would be executed."
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      install)
roentgen b75cab
        $ECHO \
roentgen b75cab
"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
roentgen b75cab
roentgen b75cab
Install executables or libraries.
roentgen b75cab
roentgen b75cab
INSTALL-COMMAND is the installation command.  The first component should be
roentgen b75cab
either the \`install' or \`cp' program.
roentgen b75cab
roentgen b75cab
The following components of INSTALL-COMMAND are treated specially:
roentgen b75cab
roentgen b75cab
  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
roentgen b75cab
roentgen b75cab
The rest of the components are interpreted as arguments to that command (only
roentgen b75cab
BSD-compatible install options are recognized)."
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      link)
roentgen b75cab
        $ECHO \
roentgen b75cab
"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
roentgen b75cab
roentgen b75cab
Link object files or libraries together to form another library, or to
roentgen b75cab
create an executable program.
roentgen b75cab
roentgen b75cab
LINK-COMMAND is a command using the C compiler that you would use to create
roentgen b75cab
a program from several object files.
roentgen b75cab
roentgen b75cab
The following components of LINK-COMMAND are treated specially:
roentgen b75cab
roentgen b75cab
  -all-static       do not do any dynamic linking at all
roentgen b75cab
  -avoid-version    do not add a version suffix if possible
roentgen b75cab
  -bindir BINDIR    specify path to binaries directory (for systems where
roentgen b75cab
                    libraries must be found in the PATH setting at runtime)
roentgen b75cab
  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
roentgen b75cab
  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
roentgen b75cab
  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
roentgen b75cab
  -export-symbols SYMFILE
roentgen b75cab
                    try to export only the symbols listed in SYMFILE
roentgen b75cab
  -export-symbols-regex REGEX
roentgen b75cab
                    try to export only the symbols matching REGEX
roentgen b75cab
  -LLIBDIR          search LIBDIR for required installed libraries
roentgen b75cab
  -lNAME            OUTPUT-FILE requires the installed library libNAME
roentgen b75cab
  -module           build a library that can dlopened
roentgen b75cab
  -no-fast-install  disable the fast-install mode
roentgen b75cab
  -no-install       link a not-installable executable
roentgen b75cab
  -no-undefined     declare that a library does not refer to external symbols
roentgen b75cab
  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
roentgen b75cab
  -objectlist FILE  Use a list of object files found in FILE to specify objects
roentgen b75cab
  -precious-files-regex REGEX
roentgen b75cab
                    don't remove output files matching REGEX
roentgen b75cab
  -release RELEASE  specify package release information
roentgen b75cab
  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
roentgen b75cab
  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
roentgen b75cab
  -shared           only do dynamic linking of libtool libraries
roentgen b75cab
  -shrext SUFFIX    override the standard shared library file extension
roentgen b75cab
  -static           do not do any dynamic linking of uninstalled libtool libraries
roentgen b75cab
  -static-libtool-libs
roentgen b75cab
                    do not do any dynamic linking of libtool libraries
roentgen b75cab
  -version-info CURRENT[:REVISION[:AGE]]
roentgen b75cab
                    specify library version info [each variable defaults to 0]
roentgen b75cab
  -weak LIBNAME     declare that the target provides the LIBNAME interface
roentgen b75cab
  -Wc,FLAG
roentgen b75cab
  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
roentgen b75cab
  -Wl,FLAG
roentgen b75cab
  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
roentgen b75cab
  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
roentgen b75cab
roentgen b75cab
All other options (arguments beginning with \`-') are ignored.
roentgen b75cab
roentgen b75cab
Every other argument is treated as a filename.  Files ending in \`.la' are
roentgen b75cab
treated as uninstalled libtool libraries, other files are standard or library
roentgen b75cab
object files.
roentgen b75cab
roentgen b75cab
If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
roentgen b75cab
only library objects (\`.lo' files) may be specified, and \`-rpath' is
roentgen b75cab
required, except when creating a convenience library.
roentgen b75cab
roentgen b75cab
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
roentgen b75cab
using \`ar' and \`ranlib', or on Windows using \`lib'.
roentgen b75cab
roentgen b75cab
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
roentgen b75cab
is created, otherwise an executable program is created."
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      uninstall)
roentgen b75cab
        $ECHO \
roentgen b75cab
"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
roentgen b75cab
roentgen b75cab
Remove libraries from an installation directory.
roentgen b75cab
roentgen b75cab
RM is the name of the program to use to delete files associated with each FILE
roentgen b75cab
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
roentgen b75cab
to RM.
roentgen b75cab
roentgen b75cab
If FILE is a libtool library, all the files associated with it are deleted.
roentgen b75cab
Otherwise, only FILE itself is deleted using RM."
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      *)
roentgen b75cab
        func_fatal_help "invalid operation mode \`$opt_mode'"
roentgen b75cab
        ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    echo
roentgen b75cab
    $ECHO "Try \`$progname --help' for more information about other modes."
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# Now that we've collected a possible --mode arg, show help if necessary
roentgen b75cab
if $opt_help; then
roentgen b75cab
  if test "$opt_help" = :; then
roentgen b75cab
    func_mode_help
roentgen b75cab
  else
roentgen b75cab
    {
roentgen b75cab
      func_help noexit
roentgen b75cab
      for opt_mode in compile link execute install finish uninstall clean; do
roentgen b75cab
	func_mode_help
roentgen b75cab
      done
roentgen b75cab
    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
roentgen b75cab
    {
roentgen b75cab
      func_help noexit
roentgen b75cab
      for opt_mode in compile link execute install finish uninstall clean; do
roentgen b75cab
	echo
roentgen b75cab
	func_mode_help
roentgen b75cab
      done
roentgen b75cab
    } |
roentgen b75cab
    sed '1d
roentgen b75cab
      /^When reporting/,/^Report/{
roentgen b75cab
	H
roentgen b75cab
	d
roentgen b75cab
      }
roentgen b75cab
      $x
roentgen b75cab
      /information about other modes/d
roentgen b75cab
      /more detailed .*MODE/d
roentgen b75cab
      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
roentgen b75cab
  fi
roentgen b75cab
  exit $?
roentgen b75cab
fi
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_mode_execute arg...
roentgen b75cab
func_mode_execute ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    # The first argument is the command name.
roentgen b75cab
    cmd="$nonopt"
roentgen b75cab
    test -z "$cmd" && \
roentgen b75cab
      func_fatal_help "you must specify a COMMAND"
roentgen b75cab
roentgen b75cab
    # Handle -dlopen flags immediately.
roentgen b75cab
    for file in $opt_dlopen; do
roentgen b75cab
      test -f "$file" \
roentgen b75cab
	|| func_fatal_help "\`$file' is not a file"
roentgen b75cab
roentgen b75cab
      dir=
roentgen b75cab
      case $file in
roentgen b75cab
      *.la)
roentgen b75cab
	func_resolve_sysroot "$file"
roentgen b75cab
	file=$func_resolve_sysroot_result
roentgen b75cab
roentgen b75cab
	# Check to see that this really is a libtool archive.
roentgen b75cab
	func_lalib_unsafe_p "$file" \
roentgen b75cab
	  || func_fatal_help "\`$lib' is not a valid libtool archive"
roentgen b75cab
roentgen b75cab
	# Read the libtool library.
roentgen b75cab
	dlname=
roentgen b75cab
	library_names=
roentgen b75cab
	func_source "$file"
roentgen b75cab
roentgen b75cab
	# Skip this library if it cannot be dlopened.
roentgen b75cab
	if test -z "$dlname"; then
roentgen b75cab
	  # Warn if it was a shared library.
roentgen b75cab
	  test -n "$library_names" && \
roentgen b75cab
	    func_warning "\`$file' was not linked with \`-export-dynamic'"
roentgen b75cab
	  continue
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	func_dirname "$file" "" "."
roentgen b75cab
	dir="$func_dirname_result"
roentgen b75cab
roentgen b75cab
	if test -f "$dir/$objdir/$dlname"; then
roentgen b75cab
	  func_append dir "/$objdir"
roentgen b75cab
	else
roentgen b75cab
	  if test ! -f "$dir/$dlname"; then
roentgen b75cab
	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *.lo)
roentgen b75cab
	# Just add the directory containing the .lo file.
roentgen b75cab
	func_dirname "$file" "" "."
roentgen b75cab
	dir="$func_dirname_result"
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *)
roentgen b75cab
	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      # Get the absolute pathname.
roentgen b75cab
      absdir=`cd "$dir" && pwd`
roentgen b75cab
      test -n "$absdir" && dir="$absdir"
roentgen b75cab
roentgen b75cab
      # Now add the directory to shlibpath_var.
roentgen b75cab
      if eval "test -z \"\$$shlibpath_var\""; then
roentgen b75cab
	eval "$shlibpath_var=\"\$dir\""
roentgen b75cab
      else
roentgen b75cab
	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
roentgen b75cab
      fi
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    # This variable tells wrapper scripts just to set shlibpath_var
roentgen b75cab
    # rather than running their programs.
roentgen b75cab
    libtool_execute_magic="$magic"
roentgen b75cab
roentgen b75cab
    # Check if any of the arguments is a wrapper script.
roentgen b75cab
    args=
roentgen b75cab
    for file
roentgen b75cab
    do
roentgen b75cab
      case $file in
roentgen b75cab
      -* | *.la | *.lo ) ;;
roentgen b75cab
      *)
roentgen b75cab
	# Do a test to see if this is really a libtool program.
roentgen b75cab
	if func_ltwrapper_script_p "$file"; then
roentgen b75cab
	  func_source "$file"
roentgen b75cab
	  # Transform arg to wrapped name.
roentgen b75cab
	  file="$progdir/$program"
roentgen b75cab
	elif func_ltwrapper_executable_p "$file"; then
roentgen b75cab
	  func_ltwrapper_scriptname "$file"
roentgen b75cab
	  func_source "$func_ltwrapper_scriptname_result"
roentgen b75cab
	  # Transform arg to wrapped name.
roentgen b75cab
	  file="$progdir/$program"
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
      # Quote arguments (to preserve shell metacharacters).
roentgen b75cab
      func_append_quoted args "$file"
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    if test "X$opt_dry_run" = Xfalse; then
roentgen b75cab
      if test -n "$shlibpath_var"; then
roentgen b75cab
	# Export the shlibpath_var.
roentgen b75cab
	eval "export $shlibpath_var"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Restore saved environment variables
roentgen b75cab
      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
roentgen b75cab
      do
roentgen b75cab
	eval "if test \"\${save_$lt_var+set}\" = set; then
roentgen b75cab
                $lt_var=\$save_$lt_var; export $lt_var
roentgen b75cab
	      else
roentgen b75cab
		$lt_unset $lt_var
roentgen b75cab
	      fi"
roentgen b75cab
      done
roentgen b75cab
roentgen b75cab
      # Now prepare to actually exec the command.
roentgen b75cab
      exec_cmd="\$cmd$args"
roentgen b75cab
    else
roentgen b75cab
      # Display what would be done.
roentgen b75cab
      if test -n "$shlibpath_var"; then
roentgen b75cab
	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
roentgen b75cab
	echo "export $shlibpath_var"
roentgen b75cab
      fi
roentgen b75cab
      $ECHO "$cmd$args"
roentgen b75cab
      exit $EXIT_SUCCESS
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_mode_finish arg...
roentgen b75cab
func_mode_finish ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    libs=
roentgen b75cab
    libdirs=
roentgen b75cab
    admincmds=
roentgen b75cab
roentgen b75cab
    for opt in "$nonopt" ${1+"$@"}
roentgen b75cab
    do
roentgen b75cab
      if test -d "$opt"; then
roentgen b75cab
	func_append libdirs " $opt"
roentgen b75cab
roentgen b75cab
      elif test -f "$opt"; then
roentgen b75cab
	if func_lalib_unsafe_p "$opt"; then
roentgen b75cab
	  func_append libs " $opt"
roentgen b75cab
	else
roentgen b75cab
	  func_warning "\`$opt' is not a valid libtool archive"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
      else
roentgen b75cab
	func_fatal_error "invalid argument \`$opt'"
roentgen b75cab
      fi
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    if test -n "$libs"; then
roentgen b75cab
      if test -n "$lt_sysroot"; then
roentgen b75cab
        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
roentgen b75cab
        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
roentgen b75cab
      else
roentgen b75cab
        sysroot_cmd=
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Remove sysroot references
roentgen b75cab
      if $opt_dry_run; then
roentgen b75cab
        for lib in $libs; do
roentgen b75cab
          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
roentgen b75cab
        done
roentgen b75cab
      else
roentgen b75cab
        tmpdir=`func_mktempdir`
roentgen b75cab
        for lib in $libs; do
roentgen b75cab
	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
roentgen b75cab
	    > $tmpdir/tmp-la
roentgen b75cab
	  mv -f $tmpdir/tmp-la $lib
roentgen b75cab
	done
roentgen b75cab
        ${RM}r "$tmpdir"
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
roentgen b75cab
      for libdir in $libdirs; do
roentgen b75cab
	if test -n "$finish_cmds"; then
roentgen b75cab
	  # Do each command in the finish commands.
roentgen b75cab
	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
roentgen b75cab
'"$cmd"'"'
roentgen b75cab
	fi
roentgen b75cab
	if test -n "$finish_eval"; then
roentgen b75cab
	  # Do the single finish_eval.
roentgen b75cab
	  eval cmds=\"$finish_eval\"
roentgen b75cab
	  $opt_dry_run || eval "$cmds" || func_append admincmds "
roentgen b75cab
       $cmds"
roentgen b75cab
	fi
roentgen b75cab
      done
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # Exit here if they wanted silent mode.
roentgen b75cab
    $opt_silent && exit $EXIT_SUCCESS
roentgen b75cab
roentgen b75cab
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
roentgen b75cab
      echo "----------------------------------------------------------------------"
roentgen b75cab
      echo "Libraries have been installed in:"
roentgen b75cab
      for libdir in $libdirs; do
roentgen b75cab
	$ECHO "   $libdir"
roentgen b75cab
      done
roentgen b75cab
      echo
roentgen b75cab
      echo "If you ever happen to want to link against installed libraries"
roentgen b75cab
      echo "in a given directory, LIBDIR, you must either use libtool, and"
roentgen b75cab
      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
roentgen b75cab
      echo "flag during linking and do at least one of the following:"
roentgen b75cab
      if test -n "$shlibpath_var"; then
roentgen b75cab
	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
roentgen b75cab
	echo "     during execution"
roentgen b75cab
      fi
roentgen b75cab
      if test -n "$runpath_var"; then
roentgen b75cab
	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
roentgen b75cab
	echo "     during linking"
roentgen b75cab
      fi
roentgen b75cab
      if test -n "$hardcode_libdir_flag_spec"; then
roentgen b75cab
	libdir=LIBDIR
roentgen b75cab
	eval flag=\"$hardcode_libdir_flag_spec\"
roentgen b75cab
roentgen b75cab
	$ECHO "   - use the \`$flag' linker flag"
roentgen b75cab
      fi
roentgen b75cab
      if test -n "$admincmds"; then
roentgen b75cab
	$ECHO "   - have your system administrator run these commands:$admincmds"
roentgen b75cab
      fi
roentgen b75cab
      if test -f /etc/ld.so.conf; then
roentgen b75cab
	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
roentgen b75cab
      fi
roentgen b75cab
      echo
roentgen b75cab
roentgen b75cab
      echo "See any operating system documentation about shared libraries for"
roentgen b75cab
      case $host in
roentgen b75cab
	solaris2.[6789]|solaris2.1[0-9])
roentgen b75cab
	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
roentgen b75cab
	  echo "pages."
roentgen b75cab
	  ;;
roentgen b75cab
	*)
roentgen b75cab
	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
roentgen b75cab
	  ;;
roentgen b75cab
      esac
roentgen b75cab
      echo "----------------------------------------------------------------------"
roentgen b75cab
    fi
roentgen b75cab
    exit $EXIT_SUCCESS
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_mode_install arg...
roentgen b75cab
func_mode_install ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    # There may be an optional sh(1) argument at the beginning of
roentgen b75cab
    # install_prog (especially on Windows NT).
roentgen b75cab
    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
roentgen b75cab
       # Allow the use of GNU shtool's install command.
roentgen b75cab
       case $nonopt in *shtool*) :;; *) false;; esac; then
roentgen b75cab
      # Aesthetically quote it.
roentgen b75cab
      func_quote_for_eval "$nonopt"
roentgen b75cab
      install_prog="$func_quote_for_eval_result "
roentgen b75cab
      arg=$1
roentgen b75cab
      shift
roentgen b75cab
    else
roentgen b75cab
      install_prog=
roentgen b75cab
      arg=$nonopt
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # The real first argument should be the name of the installation program.
roentgen b75cab
    # Aesthetically quote it.
roentgen b75cab
    func_quote_for_eval "$arg"
roentgen b75cab
    func_append install_prog "$func_quote_for_eval_result"
roentgen b75cab
    install_shared_prog=$install_prog
roentgen b75cab
    case " $install_prog " in
roentgen b75cab
      *[\\\ /]cp\ *) install_cp=: ;;
roentgen b75cab
      *) install_cp=false ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    # We need to accept at least all the BSD install flags.
roentgen b75cab
    dest=
roentgen b75cab
    files=
roentgen b75cab
    opts=
roentgen b75cab
    prev=
roentgen b75cab
    install_type=
roentgen b75cab
    isdir=no
roentgen b75cab
    stripme=
roentgen b75cab
    no_mode=:
roentgen b75cab
    for arg
roentgen b75cab
    do
roentgen b75cab
      arg2=
roentgen b75cab
      if test -n "$dest"; then
roentgen b75cab
	func_append files " $dest"
roentgen b75cab
	dest=$arg
roentgen b75cab
	continue
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      case $arg in
roentgen b75cab
      -d) isdir=yes ;;
roentgen b75cab
      -f)
roentgen b75cab
	if $install_cp; then :; else
roentgen b75cab
	  prev=$arg
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
      -g | -m | -o)
roentgen b75cab
	prev=$arg
roentgen b75cab
	;;
roentgen b75cab
      -s)
roentgen b75cab
	stripme=" -s"
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
      -*)
roentgen b75cab
	;;
roentgen b75cab
      *)
roentgen b75cab
	# If the previous option needed an argument, then skip it.
roentgen b75cab
	if test -n "$prev"; then
roentgen b75cab
	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
roentgen b75cab
	    arg2=$install_override_mode
roentgen b75cab
	    no_mode=false
roentgen b75cab
	  fi
roentgen b75cab
	  prev=
roentgen b75cab
	else
roentgen b75cab
	  dest=$arg
roentgen b75cab
	  continue
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      # Aesthetically quote the argument.
roentgen b75cab
      func_quote_for_eval "$arg"
roentgen b75cab
      func_append install_prog " $func_quote_for_eval_result"
roentgen b75cab
      if test -n "$arg2"; then
roentgen b75cab
	func_quote_for_eval "$arg2"
roentgen b75cab
      fi
roentgen b75cab
      func_append install_shared_prog " $func_quote_for_eval_result"
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    test -z "$install_prog" && \
roentgen b75cab
      func_fatal_help "you must specify an install program"
roentgen b75cab
roentgen b75cab
    test -n "$prev" && \
roentgen b75cab
      func_fatal_help "the \`$prev' option requires an argument"
roentgen b75cab
roentgen b75cab
    if test -n "$install_override_mode" && $no_mode; then
roentgen b75cab
      if $install_cp; then :; else
roentgen b75cab
	func_quote_for_eval "$install_override_mode"
roentgen b75cab
	func_append install_shared_prog " -m $func_quote_for_eval_result"
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    if test -z "$files"; then
roentgen b75cab
      if test -z "$dest"; then
roentgen b75cab
	func_fatal_help "no file or destination specified"
roentgen b75cab
      else
roentgen b75cab
	func_fatal_help "you must specify a destination"
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    # Strip any trailing slash from the destination.
roentgen b75cab
    func_stripname '' '/' "$dest"
roentgen b75cab
    dest=$func_stripname_result
roentgen b75cab
roentgen b75cab
    # Check to see that the destination is a directory.
roentgen b75cab
    test -d "$dest" && isdir=yes
roentgen b75cab
    if test "$isdir" = yes; then
roentgen b75cab
      destdir="$dest"
roentgen b75cab
      destname=
roentgen b75cab
    else
roentgen b75cab
      func_dirname_and_basename "$dest" "" "."
roentgen b75cab
      destdir="$func_dirname_result"
roentgen b75cab
      destname="$func_basename_result"
roentgen b75cab
roentgen b75cab
      # Not a directory, so check to see that there is only one file specified.
roentgen b75cab
      set dummy $files; shift
roentgen b75cab
      test "$#" -gt 1 && \
roentgen b75cab
	func_fatal_help "\`$dest' is not a directory"
roentgen b75cab
    fi
roentgen b75cab
    case $destdir in
roentgen b75cab
    [\\/]* | [A-Za-z]:[\\/]*) ;;
roentgen b75cab
    *)
roentgen b75cab
      for file in $files; do
roentgen b75cab
	case $file in
roentgen b75cab
	*.lo) ;;
roentgen b75cab
	*)
roentgen b75cab
	  func_fatal_help "\`$destdir' must be an absolute directory name"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    # This variable tells wrapper scripts just to set variables rather
roentgen b75cab
    # than running their programs.
roentgen b75cab
    libtool_install_magic="$magic"
roentgen b75cab
roentgen b75cab
    staticlibs=
roentgen b75cab
    future_libdirs=
roentgen b75cab
    current_libdirs=
roentgen b75cab
    for file in $files; do
roentgen b75cab
roentgen b75cab
      # Do each installation.
roentgen b75cab
      case $file in
roentgen b75cab
      *.$libext)
roentgen b75cab
	# Do the static libraries later.
roentgen b75cab
	func_append staticlibs " $file"
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *.la)
roentgen b75cab
	func_resolve_sysroot "$file"
roentgen b75cab
	file=$func_resolve_sysroot_result
roentgen b75cab
roentgen b75cab
	# Check to see that this really is a libtool archive.
roentgen b75cab
	func_lalib_unsafe_p "$file" \
roentgen b75cab
	  || func_fatal_help "\`$file' is not a valid libtool archive"
roentgen b75cab
roentgen b75cab
	library_names=
roentgen b75cab
	old_library=
roentgen b75cab
	relink_command=
roentgen b75cab
	func_source "$file"
roentgen b75cab
roentgen b75cab
	# Add the libdir to current_libdirs if it is the destination.
roentgen b75cab
	if test "X$destdir" = "X$libdir"; then
roentgen b75cab
	  case "$current_libdirs " in
roentgen b75cab
	  *" $libdir "*) ;;
roentgen b75cab
	  *) func_append current_libdirs " $libdir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	else
roentgen b75cab
	  # Note the libdir as a future libdir.
roentgen b75cab
	  case "$future_libdirs " in
roentgen b75cab
	  *" $libdir "*) ;;
roentgen b75cab
	  *) func_append future_libdirs " $libdir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	func_dirname "$file" "/" ""
roentgen b75cab
	dir="$func_dirname_result"
roentgen b75cab
	func_append dir "$objdir"
roentgen b75cab
roentgen b75cab
	if test -n "$relink_command"; then
roentgen b75cab
	  # Determine the prefix the user has applied to our future dir.
roentgen b75cab
	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
roentgen b75cab
roentgen b75cab
	  # Don't allow the user to place us outside of our expected
roentgen b75cab
	  # location b/c this prevents finding dependent libraries that
roentgen b75cab
	  # are installed to the same prefix.
roentgen b75cab
	  # At present, this check doesn't affect windows .dll's that
roentgen b75cab
	  # are installed into $libdir/../bin (currently, that works fine)
roentgen b75cab
	  # but it's something to keep an eye on.
roentgen b75cab
	  test "$inst_prefix_dir" = "$destdir" && \
roentgen b75cab
	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
roentgen b75cab
roentgen b75cab
	  if test -n "$inst_prefix_dir"; then
roentgen b75cab
	    # Stick the inst_prefix_dir data into the link command.
roentgen b75cab
	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
roentgen b75cab
	  else
roentgen b75cab
	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  func_warning "relinking \`$file'"
roentgen b75cab
	  func_show_eval "$relink_command" \
roentgen b75cab
	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# See the names of the shared library.
roentgen b75cab
	set dummy $library_names; shift
roentgen b75cab
	if test -n "$1"; then
roentgen b75cab
	  realname="$1"
roentgen b75cab
	  shift
roentgen b75cab
roentgen b75cab
	  srcname="$realname"
roentgen b75cab
	  test -n "$relink_command" && srcname="$realname"T
roentgen b75cab
roentgen b75cab
	  # Install the shared library and build the symlinks.
roentgen b75cab
	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
roentgen b75cab
	      'exit $?'
roentgen b75cab
	  tstripme="$stripme"
roentgen b75cab
	  case $host_os in
roentgen b75cab
	  cygwin* | mingw* | pw32* | cegcc*)
roentgen b75cab
	    case $realname in
roentgen b75cab
	    *.dll.a)
roentgen b75cab
	      tstripme=""
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  if test -n "$tstripme" && test -n "$striplib"; then
roentgen b75cab
	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  if test "$#" -gt 0; then
roentgen b75cab
	    # Delete the old symlinks, and create new ones.
roentgen b75cab
	    # Try `ln -sf' first, because the `ln' binary might depend on
roentgen b75cab
	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
roentgen b75cab
	    # so we also need to try rm && ln -s.
roentgen b75cab
	    for linkname
roentgen b75cab
	    do
roentgen b75cab
	      test "$linkname" != "$realname" \
roentgen b75cab
		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
roentgen b75cab
	    done
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  # Do each command in the postinstall commands.
roentgen b75cab
	  lib="$destdir/$realname"
roentgen b75cab
	  func_execute_cmds "$postinstall_cmds" 'exit $?'
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Install the pseudo-library for information purposes.
roentgen b75cab
	func_basename "$file"
roentgen b75cab
	name="$func_basename_result"
roentgen b75cab
	instname="$dir/$name"i
roentgen b75cab
	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
roentgen b75cab
roentgen b75cab
	# Maybe install the static library, too.
roentgen b75cab
	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *.lo)
roentgen b75cab
	# Install (i.e. copy) a libtool object.
roentgen b75cab
roentgen b75cab
	# Figure out destination file name, if it wasn't already specified.
roentgen b75cab
	if test -n "$destname"; then
roentgen b75cab
	  destfile="$destdir/$destname"
roentgen b75cab
	else
roentgen b75cab
	  func_basename "$file"
roentgen b75cab
	  destfile="$func_basename_result"
roentgen b75cab
	  destfile="$destdir/$destfile"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Deduce the name of the destination old-style object file.
roentgen b75cab
	case $destfile in
roentgen b75cab
	*.lo)
roentgen b75cab
	  func_lo2o "$destfile"
roentgen b75cab
	  staticdest=$func_lo2o_result
roentgen b75cab
	  ;;
roentgen b75cab
	*.$objext)
roentgen b75cab
	  staticdest="$destfile"
roentgen b75cab
	  destfile=
roentgen b75cab
	  ;;
roentgen b75cab
	*)
roentgen b75cab
	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	# Install the libtool object if requested.
roentgen b75cab
	test -n "$destfile" && \
roentgen b75cab
	  func_show_eval "$install_prog $file $destfile" 'exit $?'
roentgen b75cab
roentgen b75cab
	# Install the old object if enabled.
roentgen b75cab
	if test "$build_old_libs" = yes; then
roentgen b75cab
	  # Deduce the name of the old-style object file.
roentgen b75cab
	  func_lo2o "$file"
roentgen b75cab
	  staticobj=$func_lo2o_result
roentgen b75cab
	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
roentgen b75cab
	fi
roentgen b75cab
	exit $EXIT_SUCCESS
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *)
roentgen b75cab
	# Figure out destination file name, if it wasn't already specified.
roentgen b75cab
	if test -n "$destname"; then
roentgen b75cab
	  destfile="$destdir/$destname"
roentgen b75cab
	else
roentgen b75cab
	  func_basename "$file"
roentgen b75cab
	  destfile="$func_basename_result"
roentgen b75cab
	  destfile="$destdir/$destfile"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# If the file is missing, and there is a .exe on the end, strip it
roentgen b75cab
	# because it is most likely a libtool script we actually want to
roentgen b75cab
	# install
roentgen b75cab
	stripped_ext=""
roentgen b75cab
	case $file in
roentgen b75cab
	  *.exe)
roentgen b75cab
	    if test ! -f "$file"; then
roentgen b75cab
	      func_stripname '' '.exe' "$file"
roentgen b75cab
	      file=$func_stripname_result
roentgen b75cab
	      stripped_ext=".exe"
roentgen b75cab
	    fi
roentgen b75cab
	    ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	# Do a test to see if this is really a libtool program.
roentgen b75cab
	case $host in
roentgen b75cab
	*cygwin* | *mingw*)
roentgen b75cab
	    if func_ltwrapper_executable_p "$file"; then
roentgen b75cab
	      func_ltwrapper_scriptname "$file"
roentgen b75cab
	      wrapper=$func_ltwrapper_scriptname_result
roentgen b75cab
	    else
roentgen b75cab
	      func_stripname '' '.exe' "$file"
roentgen b75cab
	      wrapper=$func_stripname_result
roentgen b75cab
	    fi
roentgen b75cab
	    ;;
roentgen b75cab
	*)
roentgen b75cab
	    wrapper=$file
roentgen b75cab
	    ;;
roentgen b75cab
	esac
roentgen b75cab
	if func_ltwrapper_script_p "$wrapper"; then
roentgen b75cab
	  notinst_deplibs=
roentgen b75cab
	  relink_command=
roentgen b75cab
roentgen b75cab
	  func_source "$wrapper"
roentgen b75cab
roentgen b75cab
	  # Check the variables that should have been set.
roentgen b75cab
	  test -z "$generated_by_libtool_version" && \
roentgen b75cab
	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
roentgen b75cab
roentgen b75cab
	  finalize=yes
roentgen b75cab
	  for lib in $notinst_deplibs; do
roentgen b75cab
	    # Check to see that each library is installed.
roentgen b75cab
	    libdir=
roentgen b75cab
	    if test -f "$lib"; then
roentgen b75cab
	      func_source "$lib"
roentgen b75cab
	    fi
roentgen b75cab
	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
roentgen b75cab
	    if test -n "$libdir" && test ! -f "$libfile"; then
roentgen b75cab
	      func_warning "\`$lib' has not been installed in \`$libdir'"
roentgen b75cab
	      finalize=no
roentgen b75cab
	    fi
roentgen b75cab
	  done
roentgen b75cab
roentgen b75cab
	  relink_command=
roentgen b75cab
	  func_source "$wrapper"
roentgen b75cab
roentgen b75cab
	  outputname=
roentgen b75cab
	  if test "$fast_install" = no && test -n "$relink_command"; then
roentgen b75cab
	    $opt_dry_run || {
roentgen b75cab
	      if test "$finalize" = yes; then
roentgen b75cab
	        tmpdir=`func_mktempdir`
roentgen b75cab
		func_basename "$file$stripped_ext"
roentgen b75cab
		file="$func_basename_result"
roentgen b75cab
	        outputname="$tmpdir/$file"
roentgen b75cab
	        # Replace the output file specification.
roentgen b75cab
	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
roentgen b75cab
roentgen b75cab
	        $opt_silent || {
roentgen b75cab
	          func_quote_for_expand "$relink_command"
roentgen b75cab
		  eval "func_echo $func_quote_for_expand_result"
roentgen b75cab
	        }
roentgen b75cab
	        if eval "$relink_command"; then :
roentgen b75cab
	          else
roentgen b75cab
		  func_error "error: relink \`$file' with the above command before installing it"
roentgen b75cab
		  $opt_dry_run || ${RM}r "$tmpdir"
roentgen b75cab
		  continue
roentgen b75cab
	        fi
roentgen b75cab
	        file="$outputname"
roentgen b75cab
	      else
roentgen b75cab
	        func_warning "cannot relink \`$file'"
roentgen b75cab
	      fi
roentgen b75cab
	    }
roentgen b75cab
	  else
roentgen b75cab
	    # Install the binary that we compiled earlier.
roentgen b75cab
	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# remove .exe since cygwin /usr/bin/install will append another
roentgen b75cab
	# one anyway
roentgen b75cab
	case $install_prog,$host in
roentgen b75cab
	*/usr/bin/install*,*cygwin*)
roentgen b75cab
	  case $file:$destfile in
roentgen b75cab
	  *.exe:*.exe)
roentgen b75cab
	    # this is ok
roentgen b75cab
	    ;;
roentgen b75cab
	  *.exe:*)
roentgen b75cab
	    destfile=$destfile.exe
roentgen b75cab
	    ;;
roentgen b75cab
	  *:*.exe)
roentgen b75cab
	    func_stripname '' '.exe' "$destfile"
roentgen b75cab
	    destfile=$func_stripname_result
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
roentgen b75cab
	$opt_dry_run || if test -n "$outputname"; then
roentgen b75cab
	  ${RM}r "$tmpdir"
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    for file in $staticlibs; do
roentgen b75cab
      func_basename "$file"
roentgen b75cab
      name="$func_basename_result"
roentgen b75cab
roentgen b75cab
      # Set up the ranlib parameters.
roentgen b75cab
      oldlib="$destdir/$name"
roentgen b75cab
      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
roentgen b75cab
      tool_oldlib=$func_to_tool_file_result
roentgen b75cab
roentgen b75cab
      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
roentgen b75cab
roentgen b75cab
      if test -n "$stripme" && test -n "$old_striplib"; then
roentgen b75cab
	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Do each command in the postinstall commands.
roentgen b75cab
      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    test -n "$future_libdirs" && \
roentgen b75cab
      func_warning "remember to run \`$progname --finish$future_libdirs'"
roentgen b75cab
roentgen b75cab
    if test -n "$current_libdirs"; then
roentgen b75cab
      # Maybe just do a dry run.
roentgen b75cab
      $opt_dry_run && current_libdirs=" -n$current_libdirs"
roentgen b75cab
      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
roentgen b75cab
    else
roentgen b75cab
      exit $EXIT_SUCCESS
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
test "$opt_mode" = install && func_mode_install ${1+"$@"}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_generate_dlsyms outputname originator pic_p
roentgen b75cab
# Extract symbols from dlprefiles and create ${outputname}S.o with
roentgen b75cab
# a dlpreopen symbol table.
roentgen b75cab
func_generate_dlsyms ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    my_outputname="$1"
roentgen b75cab
    my_originator="$2"
roentgen b75cab
    my_pic_p="${3-no}"
roentgen b75cab
    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
roentgen b75cab
    my_dlsyms=
roentgen b75cab
roentgen b75cab
    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
roentgen b75cab
      if test -n "$NM" && test -n "$global_symbol_pipe"; then
roentgen b75cab
	my_dlsyms="${my_outputname}S.c"
roentgen b75cab
      else
roentgen b75cab
	func_error "not configured to extract global symbols from dlpreopened files"
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    if test -n "$my_dlsyms"; then
roentgen b75cab
      case $my_dlsyms in
roentgen b75cab
      "") ;;
roentgen b75cab
      *.c)
roentgen b75cab
	# Discover the nlist of each of the dlfiles.
roentgen b75cab
	nlist="$output_objdir/${my_outputname}.nm"
roentgen b75cab
roentgen b75cab
	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
roentgen b75cab
roentgen b75cab
	# Parse the name list into a source file.
roentgen b75cab
	func_verbose "creating $output_objdir/$my_dlsyms"
roentgen b75cab
roentgen b75cab
	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
roentgen b75cab
/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
roentgen b75cab
/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
roentgen b75cab
roentgen b75cab
#ifdef __cplusplus
roentgen b75cab
extern \"C\" {
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
roentgen b75cab
#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
roentgen b75cab
#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
roentgen b75cab
/* DATA imports from DLLs on WIN32 con't be const, because runtime
roentgen b75cab
   relocations are performed -- see ld's documentation on pseudo-relocs.  */
roentgen b75cab
# define LT_DLSYM_CONST
roentgen b75cab
#elif defined(__osf__)
roentgen b75cab
/* This system does not cope well with relocations in const data.  */
roentgen b75cab
# define LT_DLSYM_CONST
roentgen b75cab
#else
roentgen b75cab
# define LT_DLSYM_CONST const
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
/* External symbol declarations for the compiler. */\
roentgen b75cab
"
roentgen b75cab
roentgen b75cab
	if test "$dlself" = yes; then
roentgen b75cab
	  func_verbose "generating symbol list for \`$output'"
roentgen b75cab
roentgen b75cab
	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
roentgen b75cab
roentgen b75cab
	  # Add our own program objects to the symbol list.
roentgen b75cab
	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
roentgen b75cab
	  for progfile in $progfiles; do
roentgen b75cab
	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
roentgen b75cab
	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
roentgen b75cab
	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
roentgen b75cab
	  done
roentgen b75cab
roentgen b75cab
	  if test -n "$exclude_expsyms"; then
roentgen b75cab
	    $opt_dry_run || {
roentgen b75cab
	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
roentgen b75cab
	      eval '$MV "$nlist"T "$nlist"'
roentgen b75cab
	    }
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  if test -n "$export_symbols_regex"; then
roentgen b75cab
	    $opt_dry_run || {
roentgen b75cab
	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
roentgen b75cab
	      eval '$MV "$nlist"T "$nlist"'
roentgen b75cab
	    }
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  # Prepare the list of exported symbols
roentgen b75cab
	  if test -z "$export_symbols"; then
roentgen b75cab
	    export_symbols="$output_objdir/$outputname.exp"
roentgen b75cab
	    $opt_dry_run || {
roentgen b75cab
	      $RM $export_symbols
roentgen b75cab
	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
roentgen b75cab
	      case $host in
roentgen b75cab
	      *cygwin* | *mingw* | *cegcc* )
roentgen b75cab
                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
roentgen b75cab
                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
roentgen b75cab
	        ;;
roentgen b75cab
	      esac
roentgen b75cab
	    }
roentgen b75cab
	  else
roentgen b75cab
	    $opt_dry_run || {
roentgen b75cab
	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
roentgen b75cab
	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
roentgen b75cab
	      eval '$MV "$nlist"T "$nlist"'
roentgen b75cab
	      case $host in
roentgen b75cab
	        *cygwin* | *mingw* | *cegcc* )
roentgen b75cab
	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
roentgen b75cab
	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
roentgen b75cab
	          ;;
roentgen b75cab
	      esac
roentgen b75cab
	    }
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	for dlprefile in $dlprefiles; do
roentgen b75cab
	  func_verbose "extracting global C symbols from \`$dlprefile'"
roentgen b75cab
	  func_basename "$dlprefile"
roentgen b75cab
	  name="$func_basename_result"
roentgen b75cab
          case $host in
roentgen b75cab
	    *cygwin* | *mingw* | *cegcc* )
roentgen b75cab
	      # if an import library, we need to obtain dlname
roentgen b75cab
	      if func_win32_import_lib_p "$dlprefile"; then
roentgen b75cab
	        func_tr_sh "$dlprefile"
roentgen b75cab
	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
roentgen b75cab
	        dlprefile_dlbasename=""
roentgen b75cab
	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
roentgen b75cab
	          # Use subshell, to avoid clobbering current variable values
roentgen b75cab
	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
roentgen b75cab
	          if test -n "$dlprefile_dlname" ; then
roentgen b75cab
	            func_basename "$dlprefile_dlname"
roentgen b75cab
	            dlprefile_dlbasename="$func_basename_result"
roentgen b75cab
	          else
roentgen b75cab
	            # no lafile. user explicitly requested -dlpreopen <import library>.
roentgen b75cab
	            $sharedlib_from_linklib_cmd "$dlprefile"
roentgen b75cab
	            dlprefile_dlbasename=$sharedlib_from_linklib_result
roentgen b75cab
	          fi
roentgen b75cab
	        fi
roentgen b75cab
	        $opt_dry_run || {
roentgen b75cab
	          if test -n "$dlprefile_dlbasename" ; then
roentgen b75cab
	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
roentgen b75cab
	          else
roentgen b75cab
	            func_warning "Could not compute DLL name from $name"
roentgen b75cab
	            eval '$ECHO ": $name " >> "$nlist"'
roentgen b75cab
	          fi
roentgen b75cab
	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
roentgen b75cab
	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
roentgen b75cab
	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
roentgen b75cab
	        }
roentgen b75cab
	      else # not an import lib
roentgen b75cab
	        $opt_dry_run || {
roentgen b75cab
	          eval '$ECHO ": $name " >> "$nlist"'
roentgen b75cab
	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
roentgen b75cab
	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
roentgen b75cab
	        }
roentgen b75cab
	      fi
roentgen b75cab
	    ;;
roentgen b75cab
	    *)
roentgen b75cab
	      $opt_dry_run || {
roentgen b75cab
	        eval '$ECHO ": $name " >> "$nlist"'
roentgen b75cab
	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
roentgen b75cab
	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
roentgen b75cab
	      }
roentgen b75cab
	    ;;
roentgen b75cab
          esac
roentgen b75cab
	done
roentgen b75cab
roentgen b75cab
	$opt_dry_run || {
roentgen b75cab
	  # Make sure we have at least an empty file.
roentgen b75cab
	  test -f "$nlist" || : > "$nlist"
roentgen b75cab
roentgen b75cab
	  if test -n "$exclude_expsyms"; then
roentgen b75cab
	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
roentgen b75cab
	    $MV "$nlist"T "$nlist"
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  # Try sorting and uniquifying the output.
roentgen b75cab
	  if $GREP -v "^: " < "$nlist" |
roentgen b75cab
	      if sort -k 3 </dev/null >/dev/null 2>&1; then
roentgen b75cab
		sort -k 3
roentgen b75cab
	      else
roentgen b75cab
		sort +2
roentgen b75cab
	      fi |
roentgen b75cab
	      uniq > "$nlist"S; then
roentgen b75cab
	    :
roentgen b75cab
	  else
roentgen b75cab
	    $GREP -v "^: " < "$nlist" > "$nlist"S
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  if test -f "$nlist"S; then
roentgen b75cab
	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
roentgen b75cab
	  else
roentgen b75cab
	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  echo >> "$output_objdir/$my_dlsyms" "\
roentgen b75cab
roentgen b75cab
/* The mapping between symbol names and symbols.  */
roentgen b75cab
typedef struct {
roentgen b75cab
  const char *name;
roentgen b75cab
  void *address;
roentgen b75cab
} lt_dlsymlist;
roentgen b75cab
extern LT_DLSYM_CONST lt_dlsymlist
roentgen b75cab
lt_${my_prefix}_LTX_preloaded_symbols[];
roentgen b75cab
LT_DLSYM_CONST lt_dlsymlist
roentgen b75cab
lt_${my_prefix}_LTX_preloaded_symbols[] =
roentgen b75cab
{\
roentgen b75cab
  { \"$my_originator\", (void *) 0 },"
roentgen b75cab
roentgen b75cab
	  case $need_lib_prefix in
roentgen b75cab
	  no)
roentgen b75cab
	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
roentgen b75cab
	    ;;
roentgen b75cab
	  *)
roentgen b75cab
	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  echo >> "$output_objdir/$my_dlsyms" "\
roentgen b75cab
  {0, (void *) 0}
roentgen b75cab
};
roentgen b75cab
roentgen b75cab
/* This works around a problem in FreeBSD linker */
roentgen b75cab
#ifdef FREEBSD_WORKAROUND
roentgen b75cab
static const void *lt_preloaded_setup() {
roentgen b75cab
  return lt_${my_prefix}_LTX_preloaded_symbols;
roentgen b75cab
}
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
#ifdef __cplusplus
roentgen b75cab
}
roentgen b75cab
#endif\
roentgen b75cab
"
roentgen b75cab
	} # !$opt_dry_run
roentgen b75cab
roentgen b75cab
	pic_flag_for_symtable=
roentgen b75cab
	case "$compile_command " in
roentgen b75cab
	*" -static "*) ;;
roentgen b75cab
	*)
roentgen b75cab
	  case $host in
roentgen b75cab
	  # compiling the symbol table file with pic_flag works around
roentgen b75cab
	  # a FreeBSD bug that causes programs to crash when -lm is
roentgen b75cab
	  # linked before any other PIC object.  But we must not use
roentgen b75cab
	  # pic_flag when linking with -static.  The problem exists in
roentgen b75cab
	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
roentgen b75cab
	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
roentgen b75cab
	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
roentgen b75cab
	  *-*-hpux*)
roentgen b75cab
	    pic_flag_for_symtable=" $pic_flag"  ;;
roentgen b75cab
	  *)
roentgen b75cab
	    if test "X$my_pic_p" != Xno; then
roentgen b75cab
	      pic_flag_for_symtable=" $pic_flag"
roentgen b75cab
	    fi
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	symtab_cflags=
roentgen b75cab
	for arg in $LTCFLAGS; do
roentgen b75cab
	  case $arg in
roentgen b75cab
	  -pie | -fpie | -fPIE) ;;
roentgen b75cab
	  *) func_append symtab_cflags " $arg" ;;
roentgen b75cab
	  esac
roentgen b75cab
	done
roentgen b75cab
roentgen b75cab
	# Now compile the dynamic symbol file.
roentgen b75cab
	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
roentgen b75cab
roentgen b75cab
	# Clean up the generated files.
roentgen b75cab
	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
roentgen b75cab
roentgen b75cab
	# Transform the symbol file into the correct name.
roentgen b75cab
	symfileobj="$output_objdir/${my_outputname}S.$objext"
roentgen b75cab
	case $host in
roentgen b75cab
	*cygwin* | *mingw* | *cegcc* )
roentgen b75cab
	  if test -f "$output_objdir/$my_outputname.def"; then
roentgen b75cab
	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
roentgen b75cab
	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
roentgen b75cab
	  else
roentgen b75cab
	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
roentgen b75cab
	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
roentgen b75cab
	  fi
roentgen b75cab
	  ;;
roentgen b75cab
	*)
roentgen b75cab
	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
roentgen b75cab
	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	;;
roentgen b75cab
      *)
roentgen b75cab
	func_fatal_error "unknown suffix for \`$my_dlsyms'"
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
    else
roentgen b75cab
      # We keep going just in case the user didn't refer to
roentgen b75cab
      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
roentgen b75cab
      # really was required.
roentgen b75cab
roentgen b75cab
      # Nullify the symbol file.
roentgen b75cab
      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
roentgen b75cab
      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_win32_libid arg
roentgen b75cab
# return the library type of file 'arg'
roentgen b75cab
#
roentgen b75cab
# Need a lot of goo to handle *both* DLLs and import libs
roentgen b75cab
# Has to be a shell function in order to 'eat' the argument
roentgen b75cab
# that is supplied when $file_magic_command is called.
roentgen b75cab
# Despite the name, also deal with 64 bit binaries.
roentgen b75cab
func_win32_libid ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  win32_libid_type="unknown"
roentgen b75cab
  win32_fileres=`file -L $1 2>/dev/null`
roentgen b75cab
  case $win32_fileres in
roentgen b75cab
  *ar\ archive\ import\ library*) # definitely import
roentgen b75cab
    win32_libid_type="x86 archive import"
roentgen b75cab
    ;;
roentgen b75cab
  *ar\ archive*) # could be an import, or static
roentgen b75cab
    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
roentgen b75cab
    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
roentgen b75cab
       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
roentgen b75cab
      func_to_tool_file "$1" func_convert_file_msys_to_w32
roentgen b75cab
      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
roentgen b75cab
	$SED -n -e '
roentgen b75cab
	    1,100{
roentgen b75cab
		/ I /{
roentgen b75cab
		    s,.*,import,
roentgen b75cab
		    p
roentgen b75cab
		    q
roentgen b75cab
		}
roentgen b75cab
	    }'`
roentgen b75cab
      case $win32_nmres in
roentgen b75cab
      import*)  win32_libid_type="x86 archive import";;
roentgen b75cab
      *)        win32_libid_type="x86 archive static";;
roentgen b75cab
      esac
roentgen b75cab
    fi
roentgen b75cab
    ;;
roentgen b75cab
  *DLL*)
roentgen b75cab
    win32_libid_type="x86 DLL"
roentgen b75cab
    ;;
roentgen b75cab
  *executable*) # but shell scripts are "executable" too...
roentgen b75cab
    case $win32_fileres in
roentgen b75cab
    *MS\ Windows\ PE\ Intel*)
roentgen b75cab
      win32_libid_type="x86 DLL"
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
    ;;
roentgen b75cab
  esac
roentgen b75cab
  $ECHO "$win32_libid_type"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_cygming_dll_for_implib ARG
roentgen b75cab
#
roentgen b75cab
# Platform-specific function to extract the
roentgen b75cab
# name of the DLL associated with the specified
roentgen b75cab
# import library ARG.
roentgen b75cab
# Invoked by eval'ing the libtool variable
roentgen b75cab
#    $sharedlib_from_linklib_cmd
roentgen b75cab
# Result is available in the variable
roentgen b75cab
#    $sharedlib_from_linklib_result
roentgen b75cab
func_cygming_dll_for_implib ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
roentgen b75cab
#
roentgen b75cab
# The is the core of a fallback implementation of a
roentgen b75cab
# platform-specific function to extract the name of the
roentgen b75cab
# DLL associated with the specified import library LIBNAME.
roentgen b75cab
#
roentgen b75cab
# SECTION_NAME is either .idata$6 or .idata$7, depending
roentgen b75cab
# on the platform and compiler that created the implib.
roentgen b75cab
#
roentgen b75cab
# Echos the name of the DLL associated with the
roentgen b75cab
# specified import library.
roentgen b75cab
func_cygming_dll_for_implib_fallback_core ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
roentgen b75cab
  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
roentgen b75cab
    $SED '/^Contents of section '"$match_literal"':/{
roentgen b75cab
      # Place marker at beginning of archive member dllname section
roentgen b75cab
      s/.*/====MARK====/
roentgen b75cab
      p
roentgen b75cab
      d
roentgen b75cab
    }
roentgen b75cab
    # These lines can sometimes be longer than 43 characters, but
roentgen b75cab
    # are always uninteresting
roentgen b75cab
    /:[	 ]*file format pe[i]\{,1\}-/d
roentgen b75cab
    /^In archive [^:]*:/d
roentgen b75cab
    # Ensure marker is printed
roentgen b75cab
    /^====MARK====/p
roentgen b75cab
    # Remove all lines with less than 43 characters
roentgen b75cab
    /^.\{43\}/!d
roentgen b75cab
    # From remaining lines, remove first 43 characters
roentgen b75cab
    s/^.\{43\}//' |
roentgen b75cab
    $SED -n '
roentgen b75cab
      # Join marker and all lines until next marker into a single line
roentgen b75cab
      /^====MARK====/ b para
roentgen b75cab
      H
roentgen b75cab
      $ b para
roentgen b75cab
      b
roentgen b75cab
      :para
roentgen b75cab
      x
roentgen b75cab
      s/\n//g
roentgen b75cab
      # Remove the marker
roentgen b75cab
      s/^====MARK====//
roentgen b75cab
      # Remove trailing dots and whitespace
roentgen b75cab
      s/[\. \t]*$//
roentgen b75cab
      # Print
roentgen b75cab
      /./p' |
roentgen b75cab
    # we now have a list, one entry per line, of the stringified
roentgen b75cab
    # contents of the appropriate section of all members of the
roentgen b75cab
    # archive which possess that section. Heuristic: eliminate
roentgen b75cab
    # all those which have a first or second character that is
roentgen b75cab
    # a '.' (that is, objdump's representation of an unprintable
roentgen b75cab
    # character.) This should work for all archives with less than
roentgen b75cab
    # 0x302f exports -- but will fail for DLLs whose name actually
roentgen b75cab
    # begins with a literal '.' or a single character followed by
roentgen b75cab
    # a '.'.
roentgen b75cab
    #
roentgen b75cab
    # Of those that remain, print the first one.
roentgen b75cab
    $SED -e '/^\./d;/^.\./d;q'
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_cygming_gnu_implib_p ARG
roentgen b75cab
# This predicate returns with zero status (TRUE) if
roentgen b75cab
# ARG is a GNU/binutils-style import library. Returns
roentgen b75cab
# with nonzero status (FALSE) otherwise.
roentgen b75cab
func_cygming_gnu_implib_p ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_tool_file "$1" func_convert_file_msys_to_w32
roentgen b75cab
  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
roentgen b75cab
  test -n "$func_cygming_gnu_implib_tmp"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_cygming_ms_implib_p ARG
roentgen b75cab
# This predicate returns with zero status (TRUE) if
roentgen b75cab
# ARG is an MS-style import library. Returns
roentgen b75cab
# with nonzero status (FALSE) otherwise.
roentgen b75cab
func_cygming_ms_implib_p ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  func_to_tool_file "$1" func_convert_file_msys_to_w32
roentgen b75cab
  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
roentgen b75cab
  test -n "$func_cygming_ms_implib_tmp"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_cygming_dll_for_implib_fallback ARG
roentgen b75cab
# Platform-specific function to extract the
roentgen b75cab
# name of the DLL associated with the specified
roentgen b75cab
# import library ARG.
roentgen b75cab
#
roentgen b75cab
# This fallback implementation is for use when $DLLTOOL
roentgen b75cab
# does not support the --identify-strict option.
roentgen b75cab
# Invoked by eval'ing the libtool variable
roentgen b75cab
#    $sharedlib_from_linklib_cmd
roentgen b75cab
# Result is available in the variable
roentgen b75cab
#    $sharedlib_from_linklib_result
roentgen b75cab
func_cygming_dll_for_implib_fallback ()
roentgen b75cab
{
roentgen b75cab
  $opt_debug
roentgen b75cab
  if func_cygming_gnu_implib_p "$1" ; then
roentgen b75cab
    # binutils import library
roentgen b75cab
    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
roentgen b75cab
  elif func_cygming_ms_implib_p "$1" ; then
roentgen b75cab
    # ms-generated import library
roentgen b75cab
    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
roentgen b75cab
  else
roentgen b75cab
    # unknown
roentgen b75cab
    sharedlib_from_linklib_result=""
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_extract_an_archive dir oldlib
roentgen b75cab
func_extract_an_archive ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    f_ex_an_ar_dir="$1"; shift
roentgen b75cab
    f_ex_an_ar_oldlib="$1"
roentgen b75cab
    if test "$lock_old_archive_extraction" = yes; then
roentgen b75cab
      lockfile=$f_ex_an_ar_oldlib.lock
roentgen b75cab
      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
roentgen b75cab
	func_echo "Waiting for $lockfile to be removed"
roentgen b75cab
	sleep 2
roentgen b75cab
      done
roentgen b75cab
    fi
roentgen b75cab
    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
roentgen b75cab
		   'stat=$?; rm -f "$lockfile"; exit $stat'
roentgen b75cab
    if test "$lock_old_archive_extraction" = yes; then
roentgen b75cab
      $opt_dry_run || rm -f "$lockfile"
roentgen b75cab
    fi
roentgen b75cab
    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
roentgen b75cab
     :
roentgen b75cab
    else
roentgen b75cab
      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
roentgen b75cab
    fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_extract_archives gentop oldlib ...
roentgen b75cab
func_extract_archives ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    my_gentop="$1"; shift
roentgen b75cab
    my_oldlibs=${1+"$@"}
roentgen b75cab
    my_oldobjs=""
roentgen b75cab
    my_xlib=""
roentgen b75cab
    my_xabs=""
roentgen b75cab
    my_xdir=""
roentgen b75cab
roentgen b75cab
    for my_xlib in $my_oldlibs; do
roentgen b75cab
      # Extract the objects.
roentgen b75cab
      case $my_xlib in
roentgen b75cab
	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
roentgen b75cab
	*) my_xabs=`pwd`"/$my_xlib" ;;
roentgen b75cab
      esac
roentgen b75cab
      func_basename "$my_xlib"
roentgen b75cab
      my_xlib="$func_basename_result"
roentgen b75cab
      my_xlib_u=$my_xlib
roentgen b75cab
      while :; do
roentgen b75cab
        case " $extracted_archives " in
roentgen b75cab
	*" $my_xlib_u "*)
roentgen b75cab
	  func_arith $extracted_serial + 1
roentgen b75cab
	  extracted_serial=$func_arith_result
roentgen b75cab
	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
roentgen b75cab
	*) break ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
      extracted_archives="$extracted_archives $my_xlib_u"
roentgen b75cab
      my_xdir="$my_gentop/$my_xlib_u"
roentgen b75cab
roentgen b75cab
      func_mkdir_p "$my_xdir"
roentgen b75cab
roentgen b75cab
      case $host in
roentgen b75cab
      *-darwin*)
roentgen b75cab
	func_verbose "Extracting $my_xabs"
roentgen b75cab
	# Do not bother doing anything if just a dry run
roentgen b75cab
	$opt_dry_run || {
roentgen b75cab
	  darwin_orig_dir=`pwd`
roentgen b75cab
	  cd $my_xdir || exit $?
roentgen b75cab
	  darwin_archive=$my_xabs
roentgen b75cab
	  darwin_curdir=`pwd`
roentgen b75cab
	  darwin_base_archive=`basename "$darwin_archive"`
roentgen b75cab
	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
roentgen b75cab
	  if test -n "$darwin_arches"; then
roentgen b75cab
	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
roentgen b75cab
	    darwin_arch=
roentgen b75cab
	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
roentgen b75cab
	    for darwin_arch in  $darwin_arches ; do
roentgen b75cab
	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
roentgen b75cab
	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
roentgen b75cab
	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
roentgen b75cab
	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
roentgen b75cab
	      cd "$darwin_curdir"
roentgen b75cab
	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
roentgen b75cab
	    done # $darwin_arches
roentgen b75cab
            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
roentgen b75cab
	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
roentgen b75cab
	    darwin_file=
roentgen b75cab
	    darwin_files=
roentgen b75cab
	    for darwin_file in $darwin_filelist; do
roentgen b75cab
	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
roentgen b75cab
	      $LIPO -create -output "$darwin_file" $darwin_files
roentgen b75cab
	    done # $darwin_filelist
roentgen b75cab
	    $RM -rf unfat-$$
roentgen b75cab
	    cd "$darwin_orig_dir"
roentgen b75cab
	  else
roentgen b75cab
	    cd $darwin_orig_dir
roentgen b75cab
	    func_extract_an_archive "$my_xdir" "$my_xabs"
roentgen b75cab
	  fi # $darwin_arches
roentgen b75cab
	} # !$opt_dry_run
roentgen b75cab
	;;
roentgen b75cab
      *)
roentgen b75cab
        func_extract_an_archive "$my_xdir" "$my_xabs"
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    func_extract_archives_result="$my_oldobjs"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_emit_wrapper [arg=no]
roentgen b75cab
#
roentgen b75cab
# Emit a libtool wrapper script on stdout.
roentgen b75cab
# Don't directly open a file because we may want to
roentgen b75cab
# incorporate the script contents within a cygwin/mingw
roentgen b75cab
# wrapper executable.  Must ONLY be called from within
roentgen b75cab
# func_mode_link because it depends on a number of variables
roentgen b75cab
# set therein.
roentgen b75cab
#
roentgen b75cab
# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
roentgen b75cab
# variable will take.  If 'yes', then the emitted script
roentgen b75cab
# will assume that the directory in which it is stored is
roentgen b75cab
# the $objdir directory.  This is a cygwin/mingw-specific
roentgen b75cab
# behavior.
roentgen b75cab
func_emit_wrapper ()
roentgen b75cab
{
roentgen b75cab
	func_emit_wrapper_arg1=${1-no}
roentgen b75cab
roentgen b75cab
	$ECHO "\
roentgen b75cab
#! $SHELL
roentgen b75cab
roentgen b75cab
# $output - temporary wrapper script for $objdir/$outputname
roentgen b75cab
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
roentgen b75cab
#
roentgen b75cab
# The $output program cannot be directly executed until all the libtool
roentgen b75cab
# libraries that it depends on are installed.
roentgen b75cab
#
roentgen b75cab
# This wrapper script should never be moved out of the build directory.
roentgen b75cab
# If it is, it will not operate correctly.
roentgen b75cab
roentgen b75cab
# Sed substitution that helps us do robust quoting.  It backslashifies
roentgen b75cab
# metacharacters that are still active within double-quoted strings.
roentgen b75cab
sed_quote_subst='$sed_quote_subst'
roentgen b75cab
roentgen b75cab
# Be Bourne compatible
roentgen b75cab
if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
roentgen b75cab
  emulate sh
roentgen b75cab
  NULLCMD=:
roentgen b75cab
  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
roentgen b75cab
  # is contrary to our usage.  Disable this feature.
roentgen b75cab
  alias -g '\${1+\"\$@\"}'='\"\$@\"'
roentgen b75cab
  setopt NO_GLOB_SUBST
roentgen b75cab
else
roentgen b75cab
  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
roentgen b75cab
fi
roentgen b75cab
BIN_SH=xpg4; export BIN_SH # for Tru64
roentgen b75cab
DUALCASE=1; export DUALCASE # for MKS sh
roentgen b75cab
roentgen b75cab
# The HP-UX ksh and POSIX shell print the target directory to stdout
roentgen b75cab
# if CDPATH is set.
roentgen b75cab
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
roentgen b75cab
roentgen b75cab
relink_command=\"$relink_command\"
roentgen b75cab
roentgen b75cab
# This environment variable determines our operation mode.
roentgen b75cab
if test \"\$libtool_install_magic\" = \"$magic\"; then
roentgen b75cab
  # install mode needs the following variables:
roentgen b75cab
  generated_by_libtool_version='$macro_version'
roentgen b75cab
  notinst_deplibs='$notinst_deplibs'
roentgen b75cab
else
roentgen b75cab
  # When we are sourced in execute mode, \$file and \$ECHO are already set.
roentgen b75cab
  if test \"\$libtool_execute_magic\" != \"$magic\"; then
roentgen b75cab
    file=\"\$0\""
roentgen b75cab
roentgen b75cab
    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
roentgen b75cab
    $ECHO "\
roentgen b75cab
roentgen b75cab
# A function that is used when there is no print builtin or printf.
roentgen b75cab
func_fallback_echo ()
roentgen b75cab
{
roentgen b75cab
  eval 'cat <<_LTECHO_EOF
roentgen b75cab
\$1
roentgen b75cab
_LTECHO_EOF'
roentgen b75cab
}
roentgen b75cab
    ECHO=\"$qECHO\"
roentgen b75cab
  fi
roentgen b75cab
roentgen b75cab
# Very basic option parsing. These options are (a) specific to
roentgen b75cab
# the libtool wrapper, (b) are identical between the wrapper
roentgen b75cab
# /script/ and the wrapper /executable/ which is used only on
roentgen b75cab
# windows platforms, and (c) all begin with the string "--lt-"
roentgen b75cab
# (application programs are unlikely to have options which match
roentgen b75cab
# this pattern).
roentgen b75cab
#
roentgen b75cab
# There are only two supported options: --lt-debug and
roentgen b75cab
# --lt-dump-script. There is, deliberately, no --lt-help.
roentgen b75cab
#
roentgen b75cab
# The first argument to this parsing function should be the
roentgen b75cab
# script's $0 value, followed by "$@".
roentgen b75cab
lt_option_debug=
roentgen b75cab
func_parse_lt_options ()
roentgen b75cab
{
roentgen b75cab
  lt_script_arg0=\$0
roentgen b75cab
  shift
roentgen b75cab
  for lt_opt
roentgen b75cab
  do
roentgen b75cab
    case \"\$lt_opt\" in
roentgen b75cab
    --lt-debug) lt_option_debug=1 ;;
roentgen b75cab
    --lt-dump-script)
roentgen b75cab
        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
roentgen b75cab
        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
roentgen b75cab
        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
roentgen b75cab
        cat \"\$lt_dump_D/\$lt_dump_F\"
roentgen b75cab
        exit 0
roentgen b75cab
      ;;
roentgen b75cab
    --lt-*)
roentgen b75cab
        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
roentgen b75cab
        exit 1
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
  done
roentgen b75cab
roentgen b75cab
  # Print the debug banner immediately:
roentgen b75cab
  if test -n \"\$lt_option_debug\"; then
roentgen b75cab
    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
roentgen b75cab
  fi
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# Used when --lt-debug. Prints its arguments to stdout
roentgen b75cab
# (redirection is the responsibility of the caller)
roentgen b75cab
func_lt_dump_args ()
roentgen b75cab
{
roentgen b75cab
  lt_dump_args_N=1;
roentgen b75cab
  for lt_arg
roentgen b75cab
  do
roentgen b75cab
    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
roentgen b75cab
    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
roentgen b75cab
  done
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# Core function for launching the target application
roentgen b75cab
func_exec_program_core ()
roentgen b75cab
{
roentgen b75cab
"
roentgen b75cab
  case $host in
roentgen b75cab
  # Backslashes separate directories on plain windows
roentgen b75cab
  *-*-mingw | *-*-os2* | *-cegcc*)
roentgen b75cab
    $ECHO "\
roentgen b75cab
      if test -n \"\$lt_option_debug\"; then
roentgen b75cab
        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
roentgen b75cab
        func_lt_dump_args \${1+\"\$@\"} 1>&2
roentgen b75cab
      fi
roentgen b75cab
      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
roentgen b75cab
"
roentgen b75cab
    ;;
roentgen b75cab
roentgen b75cab
  *)
roentgen b75cab
    $ECHO "\
roentgen b75cab
      if test -n \"\$lt_option_debug\"; then
roentgen b75cab
        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
roentgen b75cab
        func_lt_dump_args \${1+\"\$@\"} 1>&2
roentgen b75cab
      fi
roentgen b75cab
      exec \"\$progdir/\$program\" \${1+\"\$@\"}
roentgen b75cab
"
roentgen b75cab
    ;;
roentgen b75cab
  esac
roentgen b75cab
  $ECHO "\
roentgen b75cab
      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
roentgen b75cab
      exit 1
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# A function to encapsulate launching the target application
roentgen b75cab
# Strips options in the --lt-* namespace from \$@ and
roentgen b75cab
# launches target application with the remaining arguments.
roentgen b75cab
func_exec_program ()
roentgen b75cab
{
roentgen b75cab
  case \" \$* \" in
roentgen b75cab
  *\\ --lt-*)
roentgen b75cab
    for lt_wr_arg
roentgen b75cab
    do
roentgen b75cab
      case \$lt_wr_arg in
roentgen b75cab
      --lt-*) ;;
roentgen b75cab
      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
roentgen b75cab
      esac
roentgen b75cab
      shift
roentgen b75cab
    done ;;
roentgen b75cab
  esac
roentgen b75cab
  func_exec_program_core \${1+\"\$@\"}
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
  # Parse options
roentgen b75cab
  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
roentgen b75cab
roentgen b75cab
  # Find the directory that this script lives in.
roentgen b75cab
  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
roentgen b75cab
  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
roentgen b75cab
roentgen b75cab
  # Follow symbolic links until we get to the real thisdir.
roentgen b75cab
  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
roentgen b75cab
  while test -n \"\$file\"; do
roentgen b75cab
    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
roentgen b75cab
roentgen b75cab
    # If there was a directory component, then change thisdir.
roentgen b75cab
    if test \"x\$destdir\" != \"x\$file\"; then
roentgen b75cab
      case \"\$destdir\" in
roentgen b75cab
      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
roentgen b75cab
      *) thisdir=\"\$thisdir/\$destdir\" ;;
roentgen b75cab
      esac
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
roentgen b75cab
    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
roentgen b75cab
  done
roentgen b75cab
roentgen b75cab
  # Usually 'no', except on cygwin/mingw when embedded into
roentgen b75cab
  # the cwrapper.
roentgen b75cab
  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
roentgen b75cab
  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
roentgen b75cab
    # special case for '.'
roentgen b75cab
    if test \"\$thisdir\" = \".\"; then
roentgen b75cab
      thisdir=\`pwd\`
roentgen b75cab
    fi
roentgen b75cab
    # remove .libs from thisdir
roentgen b75cab
    case \"\$thisdir\" in
roentgen b75cab
    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
roentgen b75cab
    $objdir )   thisdir=. ;;
roentgen b75cab
    esac
roentgen b75cab
  fi
roentgen b75cab
roentgen b75cab
  # Try to get the absolute directory name.
roentgen b75cab
  absdir=\`cd \"\$thisdir\" && pwd\`
roentgen b75cab
  test -n \"\$absdir\" && thisdir=\"\$absdir\"
roentgen b75cab
"
roentgen b75cab
roentgen b75cab
	if test "$fast_install" = yes; then
roentgen b75cab
	  $ECHO "\
roentgen b75cab
  program=lt-'$outputname'$exeext
roentgen b75cab
  progdir=\"\$thisdir/$objdir\"
roentgen b75cab
roentgen b75cab
  if test ! -f \"\$progdir/\$program\" ||
roentgen b75cab
     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
roentgen b75cab
       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
roentgen b75cab
roentgen b75cab
    file=\"\$\$-\$program\"
roentgen b75cab
roentgen b75cab
    if test ! -d \"\$progdir\"; then
roentgen b75cab
      $MKDIR \"\$progdir\"
roentgen b75cab
    else
roentgen b75cab
      $RM \"\$progdir/\$file\"
roentgen b75cab
    fi"
roentgen b75cab
roentgen b75cab
	  $ECHO "\
roentgen b75cab
roentgen b75cab
    # relink executable if necessary
roentgen b75cab
    if test -n \"\$relink_command\"; then
roentgen b75cab
      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
roentgen b75cab
      else
roentgen b75cab
	$ECHO \"\$relink_command_output\" >&2
roentgen b75cab
	$RM \"\$progdir/\$file\"
roentgen b75cab
	exit 1
roentgen b75cab
      fi
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
roentgen b75cab
    { $RM \"\$progdir/\$program\";
roentgen b75cab
      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
roentgen b75cab
    $RM \"\$progdir/\$file\"
roentgen b75cab
  fi"
roentgen b75cab
	else
roentgen b75cab
	  $ECHO "\
roentgen b75cab
  program='$outputname'
roentgen b75cab
  progdir=\"\$thisdir/$objdir\"
roentgen b75cab
"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	$ECHO "\
roentgen b75cab
roentgen b75cab
  if test -f \"\$progdir/\$program\"; then"
roentgen b75cab
roentgen b75cab
	# fixup the dll searchpath if we need to.
roentgen b75cab
	#
roentgen b75cab
	# Fix the DLL searchpath if we need to.  Do this before prepending
roentgen b75cab
	# to shlibpath, because on Windows, both are PATH and uninstalled
roentgen b75cab
	# libraries must come first.
roentgen b75cab
	if test -n "$dllsearchpath"; then
roentgen b75cab
	  $ECHO "\
roentgen b75cab
    # Add the dll search path components to the executable PATH
roentgen b75cab
    PATH=$dllsearchpath:\$PATH
roentgen b75cab
"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Export our shlibpath_var if we have one.
roentgen b75cab
	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
roentgen b75cab
	  $ECHO "\
roentgen b75cab
    # Add our own library path to $shlibpath_var
roentgen b75cab
    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
roentgen b75cab
roentgen b75cab
    # Some systems cannot cope with colon-terminated $shlibpath_var
roentgen b75cab
    # The second colon is a workaround for a bug in BeOS R4 sed
roentgen b75cab
    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
roentgen b75cab
roentgen b75cab
    export $shlibpath_var
roentgen b75cab
"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	$ECHO "\
roentgen b75cab
    if test \"\$libtool_execute_magic\" != \"$magic\"; then
roentgen b75cab
      # Run the actual program with our arguments.
roentgen b75cab
      func_exec_program \${1+\"\$@\"}
roentgen b75cab
    fi
roentgen b75cab
  else
roentgen b75cab
    # The program doesn't exist.
roentgen b75cab
    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
roentgen b75cab
    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
roentgen b75cab
    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
roentgen b75cab
    exit 1
roentgen b75cab
  fi
roentgen b75cab
fi\
roentgen b75cab
"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_emit_cwrapperexe_src
roentgen b75cab
# emit the source code for a wrapper executable on stdout
roentgen b75cab
# Must ONLY be called from within func_mode_link because
roentgen b75cab
# it depends on a number of variable set therein.
roentgen b75cab
func_emit_cwrapperexe_src ()
roentgen b75cab
{
roentgen b75cab
	cat <<EOF
roentgen b75cab
roentgen b75cab
/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
roentgen b75cab
   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
roentgen b75cab
roentgen b75cab
   The $output program cannot be directly executed until all the libtool
roentgen b75cab
   libraries that it depends on are installed.
roentgen b75cab
roentgen b75cab
   This wrapper executable should never be moved out of the build directory.
roentgen b75cab
   If it is, it will not operate correctly.
roentgen b75cab
*/
roentgen b75cab
EOF
roentgen b75cab
	    cat <<"EOF"
roentgen b75cab
#ifdef _MSC_VER
roentgen b75cab
# define _CRT_SECURE_NO_DEPRECATE 1
roentgen b75cab
#endif
roentgen b75cab
#include <stdio.h>
roentgen b75cab
#include <stdlib.h>
roentgen b75cab
#ifdef _MSC_VER
roentgen b75cab
# include <direct.h>
roentgen b75cab
# include <process.h>
roentgen b75cab
# include <io.h>
roentgen b75cab
#else
roentgen b75cab
# include <unistd.h>
roentgen b75cab
# include <stdint.h>
roentgen b75cab
# ifdef __CYGWIN__
roentgen b75cab
#  include <io.h>
roentgen b75cab
# endif
roentgen b75cab
#endif
roentgen b75cab
#include <malloc.h>
roentgen b75cab
#include <stdarg.h>
roentgen b75cab
#include <assert.h>
roentgen b75cab
#include <string.h>
roentgen b75cab
#include <ctype.h>
roentgen b75cab
#include <errno.h>
roentgen b75cab
#include <fcntl.h>
roentgen b75cab
#include <sys/stat.h>
roentgen b75cab
roentgen b75cab
/* declarations of non-ANSI functions */
roentgen b75cab
#if defined(__MINGW32__)
roentgen b75cab
# ifdef __STRICT_ANSI__
roentgen b75cab
int _putenv (const char *);
roentgen b75cab
# endif
roentgen b75cab
#elif defined(__CYGWIN__)
roentgen b75cab
# ifdef __STRICT_ANSI__
roentgen b75cab
char *realpath (const char *, char *);
roentgen b75cab
int putenv (char *);
roentgen b75cab
int setenv (const char *, const char *, int);
roentgen b75cab
# endif
roentgen b75cab
/* #elif defined (other platforms) ... */
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
/* portability defines, excluding path handling macros */
roentgen b75cab
#if defined(_MSC_VER)
roentgen b75cab
# define setmode _setmode
roentgen b75cab
# define stat    _stat
roentgen b75cab
# define chmod   _chmod
roentgen b75cab
# define getcwd  _getcwd
roentgen b75cab
# define putenv  _putenv
roentgen b75cab
# define S_IXUSR _S_IEXEC
roentgen b75cab
# ifndef _INTPTR_T_DEFINED
roentgen b75cab
#  define _INTPTR_T_DEFINED
roentgen b75cab
#  define intptr_t int
roentgen b75cab
# endif
roentgen b75cab
#elif defined(__MINGW32__)
roentgen b75cab
# define setmode _setmode
roentgen b75cab
# define stat    _stat
roentgen b75cab
# define chmod   _chmod
roentgen b75cab
# define getcwd  _getcwd
roentgen b75cab
# define putenv  _putenv
roentgen b75cab
#elif defined(__CYGWIN__)
roentgen b75cab
# define HAVE_SETENV
roentgen b75cab
# define FOPEN_WB "wb"
roentgen b75cab
/* #elif defined (other platforms) ... */
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
#if defined(PATH_MAX)
roentgen b75cab
# define LT_PATHMAX PATH_MAX
roentgen b75cab
#elif defined(MAXPATHLEN)
roentgen b75cab
# define LT_PATHMAX MAXPATHLEN
roentgen b75cab
#else
roentgen b75cab
# define LT_PATHMAX 1024
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
#ifndef S_IXOTH
roentgen b75cab
# define S_IXOTH 0
roentgen b75cab
#endif
roentgen b75cab
#ifndef S_IXGRP
roentgen b75cab
# define S_IXGRP 0
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
/* path handling portability macros */
roentgen b75cab
#ifndef DIR_SEPARATOR
roentgen b75cab
# define DIR_SEPARATOR '/'
roentgen b75cab
# define PATH_SEPARATOR ':'
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
roentgen b75cab
  defined (__OS2__)
roentgen b75cab
# define HAVE_DOS_BASED_FILE_SYSTEM
roentgen b75cab
# define FOPEN_WB "wb"
roentgen b75cab
# ifndef DIR_SEPARATOR_2
roentgen b75cab
#  define DIR_SEPARATOR_2 '\\'
roentgen b75cab
# endif
roentgen b75cab
# ifndef PATH_SEPARATOR_2
roentgen b75cab
#  define PATH_SEPARATOR_2 ';'
roentgen b75cab
# endif
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
#ifndef DIR_SEPARATOR_2
roentgen b75cab
# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
roentgen b75cab
#else /* DIR_SEPARATOR_2 */
roentgen b75cab
# define IS_DIR_SEPARATOR(ch) \
roentgen b75cab
	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
roentgen b75cab
#endif /* DIR_SEPARATOR_2 */
roentgen b75cab
roentgen b75cab
#ifndef PATH_SEPARATOR_2
roentgen b75cab
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
roentgen b75cab
#else /* PATH_SEPARATOR_2 */
roentgen b75cab
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
roentgen b75cab
#endif /* PATH_SEPARATOR_2 */
roentgen b75cab
roentgen b75cab
#ifndef FOPEN_WB
roentgen b75cab
# define FOPEN_WB "w"
roentgen b75cab
#endif
roentgen b75cab
#ifndef _O_BINARY
roentgen b75cab
# define _O_BINARY 0
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
roentgen b75cab
#define XFREE(stale) do { \
roentgen b75cab
  if (stale) { free ((void *) stale); stale = 0; } \
roentgen b75cab
} while (0)
roentgen b75cab
roentgen b75cab
#if defined(LT_DEBUGWRAPPER)
roentgen b75cab
static int lt_debug = 1;
roentgen b75cab
#else
roentgen b75cab
static int lt_debug = 0;
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
roentgen b75cab
roentgen b75cab
void *xmalloc (size_t num);
roentgen b75cab
char *xstrdup (const char *string);
roentgen b75cab
const char *base_name (const char *name);
roentgen b75cab
char *find_executable (const char *wrapper);
roentgen b75cab
char *chase_symlinks (const char *pathspec);
roentgen b75cab
int make_executable (const char *path);
roentgen b75cab
int check_executable (const char *path);
roentgen b75cab
char *strendzap (char *str, const char *pat);
roentgen b75cab
void lt_debugprintf (const char *file, int line, const char *fmt, ...);
roentgen b75cab
void lt_fatal (const char *file, int line, const char *message, ...);
roentgen b75cab
static const char *nonnull (const char *s);
roentgen b75cab
static const char *nonempty (const char *s);
roentgen b75cab
void lt_setenv (const char *name, const char *value);
roentgen b75cab
char *lt_extend_str (const char *orig_value, const char *add, int to_end);
roentgen b75cab
void lt_update_exe_path (const char *name, const char *value);
roentgen b75cab
void lt_update_lib_path (const char *name, const char *value);
roentgen b75cab
char **prepare_spawn (char **argv);
roentgen b75cab
void lt_dump_script (FILE *f);
roentgen b75cab
EOF
roentgen b75cab
roentgen b75cab
	    cat <<EOF
roentgen b75cab
volatile const char * MAGIC_EXE = "$magic_exe";
roentgen b75cab
const char * LIB_PATH_VARNAME = "$shlibpath_var";
roentgen b75cab
EOF
roentgen b75cab
roentgen b75cab
	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
roentgen b75cab
              func_to_host_path "$temp_rpath"
roentgen b75cab
	      cat <<EOF
roentgen b75cab
const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
roentgen b75cab
EOF
roentgen b75cab
	    else
roentgen b75cab
	      cat <<"EOF"
roentgen b75cab
const char * LIB_PATH_VALUE   = "";
roentgen b75cab
EOF
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    if test -n "$dllsearchpath"; then
roentgen b75cab
              func_to_host_path "$dllsearchpath:"
roentgen b75cab
	      cat <<EOF
roentgen b75cab
const char * EXE_PATH_VARNAME = "PATH";
roentgen b75cab
const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
roentgen b75cab
EOF
roentgen b75cab
	    else
roentgen b75cab
	      cat <<"EOF"
roentgen b75cab
const char * EXE_PATH_VARNAME = "";
roentgen b75cab
const char * EXE_PATH_VALUE   = "";
roentgen b75cab
EOF
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    if test "$fast_install" = yes; then
roentgen b75cab
	      cat <<EOF
roentgen b75cab
const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
roentgen b75cab
EOF
roentgen b75cab
	    else
roentgen b75cab
	      cat <<EOF
roentgen b75cab
const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
roentgen b75cab
EOF
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
roentgen b75cab
	    cat <<"EOF"
roentgen b75cab
roentgen b75cab
#define LTWRAPPER_OPTION_PREFIX         "--lt-"
roentgen b75cab
roentgen b75cab
static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
roentgen b75cab
static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
roentgen b75cab
static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
roentgen b75cab
roentgen b75cab
int
roentgen b75cab
main (int argc, char *argv[])
roentgen b75cab
{
roentgen b75cab
  char **newargz;
roentgen b75cab
  int  newargc;
roentgen b75cab
  char *tmp_pathspec;
roentgen b75cab
  char *actual_cwrapper_path;
roentgen b75cab
  char *actual_cwrapper_name;
roentgen b75cab
  char *target_name;
roentgen b75cab
  char *lt_argv_zero;
roentgen b75cab
  intptr_t rval = 127;
roentgen b75cab
roentgen b75cab
  int i;
roentgen b75cab
roentgen b75cab
  program_name = (char *) xstrdup (base_name (argv[0]));
roentgen b75cab
  newargz = XMALLOC (char *, argc + 1);
roentgen b75cab
roentgen b75cab
  /* very simple arg parsing; don't want to rely on getopt
roentgen b75cab
   * also, copy all non cwrapper options to newargz, except
roentgen b75cab
   * argz[0], which is handled differently
roentgen b75cab
   */
roentgen b75cab
  newargc=0;
roentgen b75cab
  for (i = 1; i < argc; i++)
roentgen b75cab
    {
roentgen b75cab
      if (strcmp (argv[i], dumpscript_opt) == 0)
roentgen b75cab
	{
roentgen b75cab
EOF
roentgen b75cab
	    case "$host" in
roentgen b75cab
	      *mingw* | *cygwin* )
roentgen b75cab
		# make stdout use "unix" line endings
roentgen b75cab
		echo "          setmode(1,_O_BINARY);"
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
roentgen b75cab
	    cat <<"EOF"
roentgen b75cab
	  lt_dump_script (stdout);
roentgen b75cab
	  return 0;
roentgen b75cab
	}
roentgen b75cab
      if (strcmp (argv[i], debug_opt) == 0)
roentgen b75cab
	{
roentgen b75cab
          lt_debug = 1;
roentgen b75cab
          continue;
roentgen b75cab
	}
roentgen b75cab
      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
roentgen b75cab
        {
roentgen b75cab
          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
roentgen b75cab
             namespace, but it is not one of the ones we know about and
roentgen b75cab
             have already dealt with, above (inluding dump-script), then
roentgen b75cab
             report an error. Otherwise, targets might begin to believe
roentgen b75cab
             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
roentgen b75cab
             namespace. The first time any user complains about this, we'll
roentgen b75cab
             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
roentgen b75cab
             or a configure.ac-settable value.
roentgen b75cab
           */
roentgen b75cab
          lt_fatal (__FILE__, __LINE__,
roentgen b75cab
		    "unrecognized %s option: '%s'",
roentgen b75cab
                    ltwrapper_option_prefix, argv[i]);
roentgen b75cab
        }
roentgen b75cab
      /* otherwise ... */
roentgen b75cab
      newargz[++newargc] = xstrdup (argv[i]);
roentgen b75cab
    }
roentgen b75cab
  newargz[++newargc] = NULL;
roentgen b75cab
roentgen b75cab
EOF
roentgen b75cab
	    cat <<EOF
roentgen b75cab
  /* The GNU banner must be the first non-error debug message */
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
roentgen b75cab
EOF
roentgen b75cab
	    cat <<"EOF"
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
roentgen b75cab
roentgen b75cab
  tmp_pathspec = find_executable (argv[0]);
roentgen b75cab
  if (tmp_pathspec == NULL)
roentgen b75cab
    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__,
roentgen b75cab
                  "(main) found exe (before symlink chase) at: %s\n",
roentgen b75cab
		  tmp_pathspec);
roentgen b75cab
roentgen b75cab
  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__,
roentgen b75cab
                  "(main) found exe (after symlink chase) at: %s\n",
roentgen b75cab
		  actual_cwrapper_path);
roentgen b75cab
  XFREE (tmp_pathspec);
roentgen b75cab
roentgen b75cab
  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
roentgen b75cab
  strendzap (actual_cwrapper_path, actual_cwrapper_name);
roentgen b75cab
roentgen b75cab
  /* wrapper name transforms */
roentgen b75cab
  strendzap (actual_cwrapper_name, ".exe");
roentgen b75cab
  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
roentgen b75cab
  XFREE (actual_cwrapper_name);
roentgen b75cab
  actual_cwrapper_name = tmp_pathspec;
roentgen b75cab
  tmp_pathspec = 0;
roentgen b75cab
roentgen b75cab
  /* target_name transforms -- use actual target program name; might have lt- prefix */
roentgen b75cab
  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
roentgen b75cab
  strendzap (target_name, ".exe");
roentgen b75cab
  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
roentgen b75cab
  XFREE (target_name);
roentgen b75cab
  target_name = tmp_pathspec;
roentgen b75cab
  tmp_pathspec = 0;
roentgen b75cab
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__,
roentgen b75cab
		  "(main) libtool target name: %s\n",
roentgen b75cab
		  target_name);
roentgen b75cab
EOF
roentgen b75cab
roentgen b75cab
	    cat <<EOF
roentgen b75cab
  newargz[0] =
roentgen b75cab
    XMALLOC (char, (strlen (actual_cwrapper_path) +
roentgen b75cab
		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
roentgen b75cab
  strcpy (newargz[0], actual_cwrapper_path);
roentgen b75cab
  strcat (newargz[0], "$objdir");
roentgen b75cab
  strcat (newargz[0], "/");
roentgen b75cab
EOF
roentgen b75cab
roentgen b75cab
	    cat <<"EOF"
roentgen b75cab
  /* stop here, and copy so we don't have to do this twice */
roentgen b75cab
  tmp_pathspec = xstrdup (newargz[0]);
roentgen b75cab
roentgen b75cab
  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
roentgen b75cab
  strcat (newargz[0], actual_cwrapper_name);
roentgen b75cab
roentgen b75cab
  /* DO want the lt- prefix here if it exists, so use target_name */
roentgen b75cab
  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
roentgen b75cab
  XFREE (tmp_pathspec);
roentgen b75cab
  tmp_pathspec = NULL;
roentgen b75cab
EOF
roentgen b75cab
roentgen b75cab
	    case $host_os in
roentgen b75cab
	      mingw*)
roentgen b75cab
	    cat <<"EOF"
roentgen b75cab
  {
roentgen b75cab
    char* p;
roentgen b75cab
    while ((p = strchr (newargz[0], '\\')) != NULL)
roentgen b75cab
      {
roentgen b75cab
	*p = '/';
roentgen b75cab
      }
roentgen b75cab
    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
roentgen b75cab
      {
roentgen b75cab
	*p = '/';
roentgen b75cab
      }
roentgen b75cab
  }
roentgen b75cab
EOF
roentgen b75cab
	    ;;
roentgen b75cab
	    esac
roentgen b75cab
roentgen b75cab
	    cat <<"EOF"
roentgen b75cab
  XFREE (target_name);
roentgen b75cab
  XFREE (actual_cwrapper_path);
roentgen b75cab
  XFREE (actual_cwrapper_name);
roentgen b75cab
roentgen b75cab
  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
roentgen b75cab
  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
roentgen b75cab
  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
roentgen b75cab
     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
roentgen b75cab
     because on Windows, both *_VARNAMEs are PATH but uninstalled
roentgen b75cab
     libraries must come first. */
roentgen b75cab
  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
roentgen b75cab
  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
roentgen b75cab
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
roentgen b75cab
		  nonnull (lt_argv_zero));
roentgen b75cab
  for (i = 0; i < newargc; i++)
roentgen b75cab
    {
roentgen b75cab
      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
roentgen b75cab
		      i, nonnull (newargz[i]));
roentgen b75cab
    }
roentgen b75cab
roentgen b75cab
EOF
roentgen b75cab
roentgen b75cab
	    case $host_os in
roentgen b75cab
	      mingw*)
roentgen b75cab
		cat <<"EOF"
roentgen b75cab
  /* execv doesn't actually work on mingw as expected on unix */
roentgen b75cab
  newargz = prepare_spawn (newargz);
roentgen b75cab
  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
roentgen b75cab
  if (rval == -1)
roentgen b75cab
    {
roentgen b75cab
      /* failed to start process */
roentgen b75cab
      lt_debugprintf (__FILE__, __LINE__,
roentgen b75cab
		      "(main) failed to launch target \"%s\": %s\n",
roentgen b75cab
		      lt_argv_zero, nonnull (strerror (errno)));
roentgen b75cab
      return 127;
roentgen b75cab
    }
roentgen b75cab
  return rval;
roentgen b75cab
EOF
roentgen b75cab
		;;
roentgen b75cab
	      *)
roentgen b75cab
		cat <<"EOF"
roentgen b75cab
  execv (lt_argv_zero, newargz);
roentgen b75cab
  return rval; /* =127, but avoids unused variable warning */
roentgen b75cab
EOF
roentgen b75cab
		;;
roentgen b75cab
	    esac
roentgen b75cab
roentgen b75cab
	    cat <<"EOF"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
void *
roentgen b75cab
xmalloc (size_t num)
roentgen b75cab
{
roentgen b75cab
  void *p = (void *) malloc (num);
roentgen b75cab
  if (!p)
roentgen b75cab
    lt_fatal (__FILE__, __LINE__, "memory exhausted");
roentgen b75cab
roentgen b75cab
  return p;
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
char *
roentgen b75cab
xstrdup (const char *string)
roentgen b75cab
{
roentgen b75cab
  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
roentgen b75cab
			  string) : NULL;
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
const char *
roentgen b75cab
base_name (const char *name)
roentgen b75cab
{
roentgen b75cab
  const char *base;
roentgen b75cab
roentgen b75cab
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
roentgen b75cab
  /* Skip over the disk name in MSDOS pathnames. */
roentgen b75cab
  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
roentgen b75cab
    name += 2;
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
  for (base = name; *name; name++)
roentgen b75cab
    if (IS_DIR_SEPARATOR (*name))
roentgen b75cab
      base = name + 1;
roentgen b75cab
  return base;
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
int
roentgen b75cab
check_executable (const char *path)
roentgen b75cab
{
roentgen b75cab
  struct stat st;
roentgen b75cab
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
roentgen b75cab
                  nonempty (path));
roentgen b75cab
  if ((!path) || (!*path))
roentgen b75cab
    return 0;
roentgen b75cab
roentgen b75cab
  if ((stat (path, &st) >= 0)
roentgen b75cab
      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
roentgen b75cab
    return 1;
roentgen b75cab
  else
roentgen b75cab
    return 0;
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
int
roentgen b75cab
make_executable (const char *path)
roentgen b75cab
{
roentgen b75cab
  int rval = 0;
roentgen b75cab
  struct stat st;
roentgen b75cab
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
roentgen b75cab
                  nonempty (path));
roentgen b75cab
  if ((!path) || (!*path))
roentgen b75cab
    return 0;
roentgen b75cab
roentgen b75cab
  if (stat (path, &st) >= 0)
roentgen b75cab
    {
roentgen b75cab
      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
roentgen b75cab
    }
roentgen b75cab
  return rval;
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
/* Searches for the full path of the wrapper.  Returns
roentgen b75cab
   newly allocated full path name if found, NULL otherwise
roentgen b75cab
   Does not chase symlinks, even on platforms that support them.
roentgen b75cab
*/
roentgen b75cab
char *
roentgen b75cab
find_executable (const char *wrapper)
roentgen b75cab
{
roentgen b75cab
  int has_slash = 0;
roentgen b75cab
  const char *p;
roentgen b75cab
  const char *p_next;
roentgen b75cab
  /* static buffer for getcwd */
roentgen b75cab
  char tmp[LT_PATHMAX + 1];
roentgen b75cab
  int tmp_len;
roentgen b75cab
  char *concat_name;
roentgen b75cab
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
roentgen b75cab
                  nonempty (wrapper));
roentgen b75cab
roentgen b75cab
  if ((wrapper == NULL) || (*wrapper == '\0'))
roentgen b75cab
    return NULL;
roentgen b75cab
roentgen b75cab
  /* Absolute path? */
roentgen b75cab
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
roentgen b75cab
  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
roentgen b75cab
    {
roentgen b75cab
      concat_name = xstrdup (wrapper);
roentgen b75cab
      if (check_executable (concat_name))
roentgen b75cab
	return concat_name;
roentgen b75cab
      XFREE (concat_name);
roentgen b75cab
    }
roentgen b75cab
  else
roentgen b75cab
    {
roentgen b75cab
#endif
roentgen b75cab
      if (IS_DIR_SEPARATOR (wrapper[0]))
roentgen b75cab
	{
roentgen b75cab
	  concat_name = xstrdup (wrapper);
roentgen b75cab
	  if (check_executable (concat_name))
roentgen b75cab
	    return concat_name;
roentgen b75cab
	  XFREE (concat_name);
roentgen b75cab
	}
roentgen b75cab
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
roentgen b75cab
    }
roentgen b75cab
#endif
roentgen b75cab
roentgen b75cab
  for (p = wrapper; *p; p++)
roentgen b75cab
    if (*p == '/')
roentgen b75cab
      {
roentgen b75cab
	has_slash = 1;
roentgen b75cab
	break;
roentgen b75cab
      }
roentgen b75cab
  if (!has_slash)
roentgen b75cab
    {
roentgen b75cab
      /* no slashes; search PATH */
roentgen b75cab
      const char *path = getenv ("PATH");
roentgen b75cab
      if (path != NULL)
roentgen b75cab
	{
roentgen b75cab
	  for (p = path; *p; p = p_next)
roentgen b75cab
	    {
roentgen b75cab
	      const char *q;
roentgen b75cab
	      size_t p_len;
roentgen b75cab
	      for (q = p; *q; q++)
roentgen b75cab
		if (IS_PATH_SEPARATOR (*q))
roentgen b75cab
		  break;
roentgen b75cab
	      p_len = q - p;
roentgen b75cab
	      p_next = (*q == '\0' ? q : q + 1);
roentgen b75cab
	      if (p_len == 0)
roentgen b75cab
		{
roentgen b75cab
		  /* empty path: current directory */
roentgen b75cab
		  if (getcwd (tmp, LT_PATHMAX) == NULL)
roentgen b75cab
		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
roentgen b75cab
                              nonnull (strerror (errno)));
roentgen b75cab
		  tmp_len = strlen (tmp);
roentgen b75cab
		  concat_name =
roentgen b75cab
		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
roentgen b75cab
		  memcpy (concat_name, tmp, tmp_len);
roentgen b75cab
		  concat_name[tmp_len] = '/';
roentgen b75cab
		  strcpy (concat_name + tmp_len + 1, wrapper);
roentgen b75cab
		}
roentgen b75cab
	      else
roentgen b75cab
		{
roentgen b75cab
		  concat_name =
roentgen b75cab
		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
roentgen b75cab
		  memcpy (concat_name, p, p_len);
roentgen b75cab
		  concat_name[p_len] = '/';
roentgen b75cab
		  strcpy (concat_name + p_len + 1, wrapper);
roentgen b75cab
		}
roentgen b75cab
	      if (check_executable (concat_name))
roentgen b75cab
		return concat_name;
roentgen b75cab
	      XFREE (concat_name);
roentgen b75cab
	    }
roentgen b75cab
	}
roentgen b75cab
      /* not found in PATH; assume curdir */
roentgen b75cab
    }
roentgen b75cab
  /* Relative path | not found in path: prepend cwd */
roentgen b75cab
  if (getcwd (tmp, LT_PATHMAX) == NULL)
roentgen b75cab
    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
roentgen b75cab
              nonnull (strerror (errno)));
roentgen b75cab
  tmp_len = strlen (tmp);
roentgen b75cab
  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
roentgen b75cab
  memcpy (concat_name, tmp, tmp_len);
roentgen b75cab
  concat_name[tmp_len] = '/';
roentgen b75cab
  strcpy (concat_name + tmp_len + 1, wrapper);
roentgen b75cab
roentgen b75cab
  if (check_executable (concat_name))
roentgen b75cab
    return concat_name;
roentgen b75cab
  XFREE (concat_name);
roentgen b75cab
  return NULL;
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
char *
roentgen b75cab
chase_symlinks (const char *pathspec)
roentgen b75cab
{
roentgen b75cab
#ifndef S_ISLNK
roentgen b75cab
  return xstrdup (pathspec);
roentgen b75cab
#else
roentgen b75cab
  char buf[LT_PATHMAX];
roentgen b75cab
  struct stat s;
roentgen b75cab
  char *tmp_pathspec = xstrdup (pathspec);
roentgen b75cab
  char *p;
roentgen b75cab
  int has_symlinks = 0;
roentgen b75cab
  while (strlen (tmp_pathspec) && !has_symlinks)
roentgen b75cab
    {
roentgen b75cab
      lt_debugprintf (__FILE__, __LINE__,
roentgen b75cab
		      "checking path component for symlinks: %s\n",
roentgen b75cab
		      tmp_pathspec);
roentgen b75cab
      if (lstat (tmp_pathspec, &s) == 0)
roentgen b75cab
	{
roentgen b75cab
	  if (S_ISLNK (s.st_mode) != 0)
roentgen b75cab
	    {
roentgen b75cab
	      has_symlinks = 1;
roentgen b75cab
	      break;
roentgen b75cab
	    }
roentgen b75cab
roentgen b75cab
	  /* search backwards for last DIR_SEPARATOR */
roentgen b75cab
	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
roentgen b75cab
	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
roentgen b75cab
	    p--;
roentgen b75cab
	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
roentgen b75cab
	    {
roentgen b75cab
	      /* no more DIR_SEPARATORS left */
roentgen b75cab
	      break;
roentgen b75cab
	    }
roentgen b75cab
	  *p = '\0';
roentgen b75cab
	}
roentgen b75cab
      else
roentgen b75cab
	{
roentgen b75cab
	  lt_fatal (__FILE__, __LINE__,
roentgen b75cab
		    "error accessing file \"%s\": %s",
roentgen b75cab
		    tmp_pathspec, nonnull (strerror (errno)));
roentgen b75cab
	}
roentgen b75cab
    }
roentgen b75cab
  XFREE (tmp_pathspec);
roentgen b75cab
roentgen b75cab
  if (!has_symlinks)
roentgen b75cab
    {
roentgen b75cab
      return xstrdup (pathspec);
roentgen b75cab
    }
roentgen b75cab
roentgen b75cab
  tmp_pathspec = realpath (pathspec, buf);
roentgen b75cab
  if (tmp_pathspec == 0)
roentgen b75cab
    {
roentgen b75cab
      lt_fatal (__FILE__, __LINE__,
roentgen b75cab
		"could not follow symlinks for %s", pathspec);
roentgen b75cab
    }
roentgen b75cab
  return xstrdup (tmp_pathspec);
roentgen b75cab
#endif
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
char *
roentgen b75cab
strendzap (char *str, const char *pat)
roentgen b75cab
{
roentgen b75cab
  size_t len, patlen;
roentgen b75cab
roentgen b75cab
  assert (str != NULL);
roentgen b75cab
  assert (pat != NULL);
roentgen b75cab
roentgen b75cab
  len = strlen (str);
roentgen b75cab
  patlen = strlen (pat);
roentgen b75cab
roentgen b75cab
  if (patlen <= len)
roentgen b75cab
    {
roentgen b75cab
      str += len - patlen;
roentgen b75cab
      if (strcmp (str, pat) == 0)
roentgen b75cab
	*str = '\0';
roentgen b75cab
    }
roentgen b75cab
  return str;
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
void
roentgen b75cab
lt_debugprintf (const char *file, int line, const char *fmt, ...)
roentgen b75cab
{
roentgen b75cab
  va_list args;
roentgen b75cab
  if (lt_debug)
roentgen b75cab
    {
roentgen b75cab
      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
roentgen b75cab
      va_start (args, fmt);
roentgen b75cab
      (void) vfprintf (stderr, fmt, args);
roentgen b75cab
      va_end (args);
roentgen b75cab
    }
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
static void
roentgen b75cab
lt_error_core (int exit_status, const char *file,
roentgen b75cab
	       int line, const char *mode,
roentgen b75cab
	       const char *message, va_list ap)
roentgen b75cab
{
roentgen b75cab
  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
roentgen b75cab
  vfprintf (stderr, message, ap);
roentgen b75cab
  fprintf (stderr, ".\n");
roentgen b75cab
roentgen b75cab
  if (exit_status >= 0)
roentgen b75cab
    exit (exit_status);
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
void
roentgen b75cab
lt_fatal (const char *file, int line, const char *message, ...)
roentgen b75cab
{
roentgen b75cab
  va_list ap;
roentgen b75cab
  va_start (ap, message);
roentgen b75cab
  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
roentgen b75cab
  va_end (ap);
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
static const char *
roentgen b75cab
nonnull (const char *s)
roentgen b75cab
{
roentgen b75cab
  return s ? s : "(null)";
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
static const char *
roentgen b75cab
nonempty (const char *s)
roentgen b75cab
{
roentgen b75cab
  return (s && !*s) ? "(empty)" : nonnull (s);
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
void
roentgen b75cab
lt_setenv (const char *name, const char *value)
roentgen b75cab
{
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__,
roentgen b75cab
		  "(lt_setenv) setting '%s' to '%s'\n",
roentgen b75cab
                  nonnull (name), nonnull (value));
roentgen b75cab
  {
roentgen b75cab
#ifdef HAVE_SETENV
roentgen b75cab
    /* always make a copy, for consistency with !HAVE_SETENV */
roentgen b75cab
    char *str = xstrdup (value);
roentgen b75cab
    setenv (name, str, 1);
roentgen b75cab
#else
roentgen b75cab
    int len = strlen (name) + 1 + strlen (value) + 1;
roentgen b75cab
    char *str = XMALLOC (char, len);
roentgen b75cab
    sprintf (str, "%s=%s", name, value);
roentgen b75cab
    if (putenv (str) != EXIT_SUCCESS)
roentgen b75cab
      {
roentgen b75cab
        XFREE (str);
roentgen b75cab
      }
roentgen b75cab
#endif
roentgen b75cab
  }
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
char *
roentgen b75cab
lt_extend_str (const char *orig_value, const char *add, int to_end)
roentgen b75cab
{
roentgen b75cab
  char *new_value;
roentgen b75cab
  if (orig_value && *orig_value)
roentgen b75cab
    {
roentgen b75cab
      int orig_value_len = strlen (orig_value);
roentgen b75cab
      int add_len = strlen (add);
roentgen b75cab
      new_value = XMALLOC (char, add_len + orig_value_len + 1);
roentgen b75cab
      if (to_end)
roentgen b75cab
        {
roentgen b75cab
          strcpy (new_value, orig_value);
roentgen b75cab
          strcpy (new_value + orig_value_len, add);
roentgen b75cab
        }
roentgen b75cab
      else
roentgen b75cab
        {
roentgen b75cab
          strcpy (new_value, add);
roentgen b75cab
          strcpy (new_value + add_len, orig_value);
roentgen b75cab
        }
roentgen b75cab
    }
roentgen b75cab
  else
roentgen b75cab
    {
roentgen b75cab
      new_value = xstrdup (add);
roentgen b75cab
    }
roentgen b75cab
  return new_value;
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
void
roentgen b75cab
lt_update_exe_path (const char *name, const char *value)
roentgen b75cab
{
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__,
roentgen b75cab
		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
roentgen b75cab
                  nonnull (name), nonnull (value));
roentgen b75cab
roentgen b75cab
  if (name && *name && value && *value)
roentgen b75cab
    {
roentgen b75cab
      char *new_value = lt_extend_str (getenv (name), value, 0);
roentgen b75cab
      /* some systems can't cope with a ':'-terminated path #' */
roentgen b75cab
      int len = strlen (new_value);
roentgen b75cab
      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
roentgen b75cab
        {
roentgen b75cab
          new_value[len-1] = '\0';
roentgen b75cab
        }
roentgen b75cab
      lt_setenv (name, new_value);
roentgen b75cab
      XFREE (new_value);
roentgen b75cab
    }
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
void
roentgen b75cab
lt_update_lib_path (const char *name, const char *value)
roentgen b75cab
{
roentgen b75cab
  lt_debugprintf (__FILE__, __LINE__,
roentgen b75cab
		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
roentgen b75cab
                  nonnull (name), nonnull (value));
roentgen b75cab
roentgen b75cab
  if (name && *name && value && *value)
roentgen b75cab
    {
roentgen b75cab
      char *new_value = lt_extend_str (getenv (name), value, 0);
roentgen b75cab
      lt_setenv (name, new_value);
roentgen b75cab
      XFREE (new_value);
roentgen b75cab
    }
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
EOF
roentgen b75cab
	    case $host_os in
roentgen b75cab
	      mingw*)
roentgen b75cab
		cat <<"EOF"
roentgen b75cab
roentgen b75cab
/* Prepares an argument vector before calling spawn().
roentgen b75cab
   Note that spawn() does not by itself call the command interpreter
roentgen b75cab
     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
roentgen b75cab
      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
roentgen b75cab
         GetVersionEx(&v);
roentgen b75cab
         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
roentgen b75cab
      }) ? "cmd.exe" : "command.com").
roentgen b75cab
   Instead it simply concatenates the arguments, separated by ' ', and calls
roentgen b75cab
   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
roentgen b75cab
   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
roentgen b75cab
   special way:
roentgen b75cab
   - Space and tab are interpreted as delimiters. They are not treated as
roentgen b75cab
     delimiters if they are surrounded by double quotes: "...".
roentgen b75cab
   - Unescaped double quotes are removed from the input. Their only effect is
roentgen b75cab
     that within double quotes, space and tab are treated like normal
roentgen b75cab
     characters.
roentgen b75cab
   - Backslashes not followed by double quotes are not special.
roentgen b75cab
   - But 2*n+1 backslashes followed by a double quote become
roentgen b75cab
     n backslashes followed by a double quote (n >= 0):
roentgen b75cab
       \" -> "
roentgen b75cab
       \\\" -> \"
roentgen b75cab
       \\\\\" -> \\"
roentgen b75cab
 */
roentgen b75cab
#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
roentgen b75cab
#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
roentgen b75cab
char **
roentgen b75cab
prepare_spawn (char **argv)
roentgen b75cab
{
roentgen b75cab
  size_t argc;
roentgen b75cab
  char **new_argv;
roentgen b75cab
  size_t i;
roentgen b75cab
roentgen b75cab
  /* Count number of arguments.  */
roentgen b75cab
  for (argc = 0; argv[argc] != NULL; argc++)
roentgen b75cab
    ;
roentgen b75cab
roentgen b75cab
  /* Allocate new argument vector.  */
roentgen b75cab
  new_argv = XMALLOC (char *, argc + 1);
roentgen b75cab
roentgen b75cab
  /* Put quoted arguments into the new argument vector.  */
roentgen b75cab
  for (i = 0; i < argc; i++)
roentgen b75cab
    {
roentgen b75cab
      const char *string = argv[i];
roentgen b75cab
roentgen b75cab
      if (string[0] == '\0')
roentgen b75cab
	new_argv[i] = xstrdup ("\"\"");
roentgen b75cab
      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
roentgen b75cab
	{
roentgen b75cab
	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
roentgen b75cab
	  size_t length;
roentgen b75cab
	  unsigned int backslashes;
roentgen b75cab
	  const char *s;
roentgen b75cab
	  char *quoted_string;
roentgen b75cab
	  char *p;
roentgen b75cab
roentgen b75cab
	  length = 0;
roentgen b75cab
	  backslashes = 0;
roentgen b75cab
	  if (quote_around)
roentgen b75cab
	    length++;
roentgen b75cab
	  for (s = string; *s != '\0'; s++)
roentgen b75cab
	    {
roentgen b75cab
	      char c = *s;
roentgen b75cab
	      if (c == '"')
roentgen b75cab
		length += backslashes + 1;
roentgen b75cab
	      length++;
roentgen b75cab
	      if (c == '\\')
roentgen b75cab
		backslashes++;
roentgen b75cab
	      else
roentgen b75cab
		backslashes = 0;
roentgen b75cab
	    }
roentgen b75cab
	  if (quote_around)
roentgen b75cab
	    length += backslashes + 1;
roentgen b75cab
roentgen b75cab
	  quoted_string = XMALLOC (char, length + 1);
roentgen b75cab
roentgen b75cab
	  p = quoted_string;
roentgen b75cab
	  backslashes = 0;
roentgen b75cab
	  if (quote_around)
roentgen b75cab
	    *p++ = '"';
roentgen b75cab
	  for (s = string; *s != '\0'; s++)
roentgen b75cab
	    {
roentgen b75cab
	      char c = *s;
roentgen b75cab
	      if (c == '"')
roentgen b75cab
		{
roentgen b75cab
		  unsigned int j;
roentgen b75cab
		  for (j = backslashes + 1; j > 0; j--)
roentgen b75cab
		    *p++ = '\\';
roentgen b75cab
		}
roentgen b75cab
	      *p++ = c;
roentgen b75cab
	      if (c == '\\')
roentgen b75cab
		backslashes++;
roentgen b75cab
	      else
roentgen b75cab
		backslashes = 0;
roentgen b75cab
	    }
roentgen b75cab
	  if (quote_around)
roentgen b75cab
	    {
roentgen b75cab
	      unsigned int j;
roentgen b75cab
	      for (j = backslashes; j > 0; j--)
roentgen b75cab
		*p++ = '\\';
roentgen b75cab
	      *p++ = '"';
roentgen b75cab
	    }
roentgen b75cab
	  *p = '\0';
roentgen b75cab
roentgen b75cab
	  new_argv[i] = quoted_string;
roentgen b75cab
	}
roentgen b75cab
      else
roentgen b75cab
	new_argv[i] = (char *) string;
roentgen b75cab
    }
roentgen b75cab
  new_argv[argc] = NULL;
roentgen b75cab
roentgen b75cab
  return new_argv;
roentgen b75cab
}
roentgen b75cab
EOF
roentgen b75cab
		;;
roentgen b75cab
	    esac
roentgen b75cab
roentgen b75cab
            cat <<"EOF"
roentgen b75cab
void lt_dump_script (FILE* f)
roentgen b75cab
{
roentgen b75cab
EOF
roentgen b75cab
	    func_emit_wrapper yes |
roentgen b75cab
	      $SED -n -e '
roentgen b75cab
s/^\(.\{79\}\)\(..*\)/\1\
roentgen b75cab
\2/
roentgen b75cab
h
roentgen b75cab
s/\([\\"]\)/\\\1/g
roentgen b75cab
s/$/\\n/
roentgen b75cab
s/\([^\n]*\).*/  fputs ("\1", f);/p
roentgen b75cab
g
roentgen b75cab
D'
roentgen b75cab
            cat <<"EOF"
roentgen b75cab
}
roentgen b75cab
EOF
roentgen b75cab
}
roentgen b75cab
# end: func_emit_cwrapperexe_src
roentgen b75cab
roentgen b75cab
# func_win32_import_lib_p ARG
roentgen b75cab
# True if ARG is an import lib, as indicated by $file_magic_cmd
roentgen b75cab
func_win32_import_lib_p ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
roentgen b75cab
    *import*) : ;;
roentgen b75cab
    *) false ;;
roentgen b75cab
    esac
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
# func_mode_link arg...
roentgen b75cab
func_mode_link ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    case $host in
roentgen b75cab
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
roentgen b75cab
      # It is impossible to link a dll without this setting, and
roentgen b75cab
      # we shouldn't force the makefile maintainer to figure out
roentgen b75cab
      # which system we are compiling for in order to pass an extra
roentgen b75cab
      # flag for every libtool invocation.
roentgen b75cab
      # allow_undefined=no
roentgen b75cab
roentgen b75cab
      # FIXME: Unfortunately, there are problems with the above when trying
roentgen b75cab
      # to make a dll which has undefined symbols, in which case not
roentgen b75cab
      # even a static library is built.  For now, we need to specify
roentgen b75cab
      # -no-undefined on the libtool link line when we can be certain
roentgen b75cab
      # that all symbols are satisfied, otherwise we get a static library.
roentgen b75cab
      allow_undefined=yes
roentgen b75cab
      ;;
roentgen b75cab
    *)
roentgen b75cab
      allow_undefined=yes
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
    libtool_args=$nonopt
roentgen b75cab
    base_compile="$nonopt $@"
roentgen b75cab
    compile_command=$nonopt
roentgen b75cab
    finalize_command=$nonopt
roentgen b75cab
roentgen b75cab
    compile_rpath=
roentgen b75cab
    finalize_rpath=
roentgen b75cab
    compile_shlibpath=
roentgen b75cab
    finalize_shlibpath=
roentgen b75cab
    convenience=
roentgen b75cab
    old_convenience=
roentgen b75cab
    deplibs=
roentgen b75cab
    old_deplibs=
roentgen b75cab
    compiler_flags=
roentgen b75cab
    linker_flags=
roentgen b75cab
    dllsearchpath=
roentgen b75cab
    lib_search_path=`pwd`
roentgen b75cab
    inst_prefix_dir=
roentgen b75cab
    new_inherited_linker_flags=
roentgen b75cab
roentgen b75cab
    avoid_version=no
roentgen b75cab
    bindir=
roentgen b75cab
    dlfiles=
roentgen b75cab
    dlprefiles=
roentgen b75cab
    dlself=no
roentgen b75cab
    export_dynamic=no
roentgen b75cab
    export_symbols=
roentgen b75cab
    export_symbols_regex=
roentgen b75cab
    generated=
roentgen b75cab
    libobjs=
roentgen b75cab
    ltlibs=
roentgen b75cab
    module=no
roentgen b75cab
    no_install=no
roentgen b75cab
    objs=
roentgen b75cab
    non_pic_objects=
roentgen b75cab
    precious_files_regex=
roentgen b75cab
    prefer_static_libs=no
roentgen b75cab
    preload=no
roentgen b75cab
    prev=
roentgen b75cab
    prevarg=
roentgen b75cab
    release=
roentgen b75cab
    rpath=
roentgen b75cab
    xrpath=
roentgen b75cab
    perm_rpath=
roentgen b75cab
    temp_rpath=
roentgen b75cab
    thread_safe=no
roentgen b75cab
    vinfo=
roentgen b75cab
    vinfo_number=no
roentgen b75cab
    weak_libs=
roentgen b75cab
    single_module="${wl}-single_module"
roentgen b75cab
    func_infer_tag $base_compile
roentgen b75cab
roentgen b75cab
    # We need to know -static, to get the right output filenames.
roentgen b75cab
    for arg
roentgen b75cab
    do
roentgen b75cab
      case $arg in
roentgen b75cab
      -shared)
roentgen b75cab
	test "$build_libtool_libs" != yes && \
roentgen b75cab
	  func_fatal_configuration "can not build a shared library"
roentgen b75cab
	build_old_libs=no
roentgen b75cab
	break
roentgen b75cab
	;;
roentgen b75cab
      -all-static | -static | -static-libtool-libs)
roentgen b75cab
	case $arg in
roentgen b75cab
	-all-static)
roentgen b75cab
	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
roentgen b75cab
	    func_warning "complete static linking is impossible in this configuration"
roentgen b75cab
	  fi
roentgen b75cab
	  if test -n "$link_static_flag"; then
roentgen b75cab
	    dlopen_self=$dlopen_self_static
roentgen b75cab
	  fi
roentgen b75cab
	  prefer_static_libs=yes
roentgen b75cab
	  ;;
roentgen b75cab
	-static)
roentgen b75cab
	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
roentgen b75cab
	    dlopen_self=$dlopen_self_static
roentgen b75cab
	  fi
roentgen b75cab
	  prefer_static_libs=built
roentgen b75cab
	  ;;
roentgen b75cab
	-static-libtool-libs)
roentgen b75cab
	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
roentgen b75cab
	    dlopen_self=$dlopen_self_static
roentgen b75cab
	  fi
roentgen b75cab
	  prefer_static_libs=yes
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	build_libtool_libs=no
roentgen b75cab
	build_old_libs=yes
roentgen b75cab
	break
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    # See if our shared archives depend on static archives.
roentgen b75cab
    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
roentgen b75cab
roentgen b75cab
    # Go through the arguments, transforming them on the way.
roentgen b75cab
    while test "$#" -gt 0; do
roentgen b75cab
      arg="$1"
roentgen b75cab
      shift
roentgen b75cab
      func_quote_for_eval "$arg"
roentgen b75cab
      qarg=$func_quote_for_eval_unquoted_result
roentgen b75cab
      func_append libtool_args " $func_quote_for_eval_result"
roentgen b75cab
roentgen b75cab
      # If the previous option needs an argument, assign it.
roentgen b75cab
      if test -n "$prev"; then
roentgen b75cab
	case $prev in
roentgen b75cab
	output)
roentgen b75cab
	  func_append compile_command " @OUTPUT@"
roentgen b75cab
	  func_append finalize_command " @OUTPUT@"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	case $prev in
roentgen b75cab
	bindir)
roentgen b75cab
	  bindir="$arg"
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	dlfiles|dlprefiles)
roentgen b75cab
	  if test "$preload" = no; then
roentgen b75cab
	    # Add the symbol object into the linking commands.
roentgen b75cab
	    func_append compile_command " @SYMFILE@"
roentgen b75cab
	    func_append finalize_command " @SYMFILE@"
roentgen b75cab
	    preload=yes
roentgen b75cab
	  fi
roentgen b75cab
	  case $arg in
roentgen b75cab
	  *.la | *.lo) ;;  # We handle these cases below.
roentgen b75cab
	  force)
roentgen b75cab
	    if test "$dlself" = no; then
roentgen b75cab
	      dlself=needless
roentgen b75cab
	      export_dynamic=yes
roentgen b75cab
	    fi
roentgen b75cab
	    prev=
roentgen b75cab
	    continue
roentgen b75cab
	    ;;
roentgen b75cab
	  self)
roentgen b75cab
	    if test "$prev" = dlprefiles; then
roentgen b75cab
	      dlself=yes
roentgen b75cab
	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
roentgen b75cab
	      dlself=yes
roentgen b75cab
	    else
roentgen b75cab
	      dlself=needless
roentgen b75cab
	      export_dynamic=yes
roentgen b75cab
	    fi
roentgen b75cab
	    prev=
roentgen b75cab
	    continue
roentgen b75cab
	    ;;
roentgen b75cab
	  *)
roentgen b75cab
	    if test "$prev" = dlfiles; then
roentgen b75cab
	      func_append dlfiles " $arg"
roentgen b75cab
	    else
roentgen b75cab
	      func_append dlprefiles " $arg"
roentgen b75cab
	    fi
roentgen b75cab
	    prev=
roentgen b75cab
	    continue
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	expsyms)
roentgen b75cab
	  export_symbols="$arg"
roentgen b75cab
	  test -f "$arg" \
roentgen b75cab
	    || func_fatal_error "symbol file \`$arg' does not exist"
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	expsyms_regex)
roentgen b75cab
	  export_symbols_regex="$arg"
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	framework)
roentgen b75cab
	  case $host in
roentgen b75cab
	    *-*-darwin*)
roentgen b75cab
	      case "$deplibs " in
roentgen b75cab
		*" $qarg.ltframework "*) ;;
roentgen b75cab
		*) func_append deplibs " $qarg.ltframework" # this is fixed later
roentgen b75cab
		   ;;
roentgen b75cab
	      esac
roentgen b75cab
	      ;;
roentgen b75cab
	  esac
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	inst_prefix)
roentgen b75cab
	  inst_prefix_dir="$arg"
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	objectlist)
roentgen b75cab
	  if test -f "$arg"; then
roentgen b75cab
	    save_arg=$arg
roentgen b75cab
	    moreargs=
roentgen b75cab
	    for fil in `cat "$save_arg"`
roentgen b75cab
	    do
roentgen b75cab
#	      func_append moreargs " $fil"
roentgen b75cab
	      arg=$fil
roentgen b75cab
	      # A libtool-controlled object.
roentgen b75cab
roentgen b75cab
	      # Check to see that this really is a libtool object.
roentgen b75cab
	      if func_lalib_unsafe_p "$arg"; then
roentgen b75cab
		pic_object=
roentgen b75cab
		non_pic_object=
roentgen b75cab
roentgen b75cab
		# Read the .lo file
roentgen b75cab
		func_source "$arg"
roentgen b75cab
roentgen b75cab
		if test -z "$pic_object" ||
roentgen b75cab
		   test -z "$non_pic_object" ||
roentgen b75cab
		   test "$pic_object" = none &&
roentgen b75cab
		   test "$non_pic_object" = none; then
roentgen b75cab
		  func_fatal_error "cannot find name of object for \`$arg'"
roentgen b75cab
		fi
roentgen b75cab
roentgen b75cab
		# Extract subdirectory from the argument.
roentgen b75cab
		func_dirname "$arg" "/" ""
roentgen b75cab
		xdir="$func_dirname_result"
roentgen b75cab
roentgen b75cab
		if test "$pic_object" != none; then
roentgen b75cab
		  # Prepend the subdirectory the object is found in.
roentgen b75cab
		  pic_object="$xdir$pic_object"
roentgen b75cab
roentgen b75cab
		  if test "$prev" = dlfiles; then
roentgen b75cab
		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
roentgen b75cab
		      func_append dlfiles " $pic_object"
roentgen b75cab
		      prev=
roentgen b75cab
		      continue
roentgen b75cab
		    else
roentgen b75cab
		      # If libtool objects are unsupported, then we need to preload.
roentgen b75cab
		      prev=dlprefiles
roentgen b75cab
		    fi
roentgen b75cab
		  fi
roentgen b75cab
roentgen b75cab
		  # CHECK ME:  I think I busted this.  -Ossama
roentgen b75cab
		  if test "$prev" = dlprefiles; then
roentgen b75cab
		    # Preload the old-style object.
roentgen b75cab
		    func_append dlprefiles " $pic_object"
roentgen b75cab
		    prev=
roentgen b75cab
		  fi
roentgen b75cab
roentgen b75cab
		  # A PIC object.
roentgen b75cab
		  func_append libobjs " $pic_object"
roentgen b75cab
		  arg="$pic_object"
roentgen b75cab
		fi
roentgen b75cab
roentgen b75cab
		# Non-PIC object.
roentgen b75cab
		if test "$non_pic_object" != none; then
roentgen b75cab
		  # Prepend the subdirectory the object is found in.
roentgen b75cab
		  non_pic_object="$xdir$non_pic_object"
roentgen b75cab
roentgen b75cab
		  # A standard non-PIC object
roentgen b75cab
		  func_append non_pic_objects " $non_pic_object"
roentgen b75cab
		  if test -z "$pic_object" || test "$pic_object" = none ; then
roentgen b75cab
		    arg="$non_pic_object"
roentgen b75cab
		  fi
roentgen b75cab
		else
roentgen b75cab
		  # If the PIC object exists, use it instead.
roentgen b75cab
		  # $xdir was prepended to $pic_object above.
roentgen b75cab
		  non_pic_object="$pic_object"
roentgen b75cab
		  func_append non_pic_objects " $non_pic_object"
roentgen b75cab
		fi
roentgen b75cab
	      else
roentgen b75cab
		# Only an error if not doing a dry-run.
roentgen b75cab
		if $opt_dry_run; then
roentgen b75cab
		  # Extract subdirectory from the argument.
roentgen b75cab
		  func_dirname "$arg" "/" ""
roentgen b75cab
		  xdir="$func_dirname_result"
roentgen b75cab
roentgen b75cab
		  func_lo2o "$arg"
roentgen b75cab
		  pic_object=$xdir$objdir/$func_lo2o_result
roentgen b75cab
		  non_pic_object=$xdir$func_lo2o_result
roentgen b75cab
		  func_append libobjs " $pic_object"
roentgen b75cab
		  func_append non_pic_objects " $non_pic_object"
roentgen b75cab
	        else
roentgen b75cab
		  func_fatal_error "\`$arg' is not a valid libtool object"
roentgen b75cab
		fi
roentgen b75cab
	      fi
roentgen b75cab
	    done
roentgen b75cab
	  else
roentgen b75cab
	    func_fatal_error "link input file \`$arg' does not exist"
roentgen b75cab
	  fi
roentgen b75cab
	  arg=$save_arg
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	precious_regex)
roentgen b75cab
	  precious_files_regex="$arg"
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	release)
roentgen b75cab
	  release="-$arg"
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	rpath | xrpath)
roentgen b75cab
	  # We need an absolute path.
roentgen b75cab
	  case $arg in
roentgen b75cab
	  [\\/]* | [A-Za-z]:[\\/]*) ;;
roentgen b75cab
	  *)
roentgen b75cab
	    func_fatal_error "only absolute run-paths are allowed"
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  if test "$prev" = rpath; then
roentgen b75cab
	    case "$rpath " in
roentgen b75cab
	    *" $arg "*) ;;
roentgen b75cab
	    *) func_append rpath " $arg" ;;
roentgen b75cab
	    esac
roentgen b75cab
	  else
roentgen b75cab
	    case "$xrpath " in
roentgen b75cab
	    *" $arg "*) ;;
roentgen b75cab
	    *) func_append xrpath " $arg" ;;
roentgen b75cab
	    esac
roentgen b75cab
	  fi
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	shrext)
roentgen b75cab
	  shrext_cmds="$arg"
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	weak)
roentgen b75cab
	  func_append weak_libs " $arg"
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	xcclinker)
roentgen b75cab
	  func_append linker_flags " $qarg"
roentgen b75cab
	  func_append compiler_flags " $qarg"
roentgen b75cab
	  prev=
roentgen b75cab
	  func_append compile_command " $qarg"
roentgen b75cab
	  func_append finalize_command " $qarg"
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	xcompiler)
roentgen b75cab
	  func_append compiler_flags " $qarg"
roentgen b75cab
	  prev=
roentgen b75cab
	  func_append compile_command " $qarg"
roentgen b75cab
	  func_append finalize_command " $qarg"
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	xlinker)
roentgen b75cab
	  func_append linker_flags " $qarg"
roentgen b75cab
	  func_append compiler_flags " $wl$qarg"
roentgen b75cab
	  prev=
roentgen b75cab
	  func_append compile_command " $wl$qarg"
roentgen b75cab
	  func_append finalize_command " $wl$qarg"
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	*)
roentgen b75cab
	  eval "$prev=\"\$arg\""
roentgen b75cab
	  prev=
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
      fi # test -n "$prev"
roentgen b75cab
roentgen b75cab
      prevarg="$arg"
roentgen b75cab
roentgen b75cab
      case $arg in
roentgen b75cab
      -all-static)
roentgen b75cab
	if test -n "$link_static_flag"; then
roentgen b75cab
	  # See comment for -static flag below, for more details.
roentgen b75cab
	  func_append compile_command " $link_static_flag"
roentgen b75cab
	  func_append finalize_command " $link_static_flag"
roentgen b75cab
	fi
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -allow-undefined)
roentgen b75cab
	# FIXME: remove this flag sometime in the future.
roentgen b75cab
	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -avoid-version)
roentgen b75cab
	avoid_version=yes
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -bindir)
roentgen b75cab
	prev=bindir
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -dlopen)
roentgen b75cab
	prev=dlfiles
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -dlpreopen)
roentgen b75cab
	prev=dlprefiles
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -export-dynamic)
roentgen b75cab
	export_dynamic=yes
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -export-symbols | -export-symbols-regex)
roentgen b75cab
	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
roentgen b75cab
	  func_fatal_error "more than one -exported-symbols argument is not allowed"
roentgen b75cab
	fi
roentgen b75cab
	if test "X$arg" = "X-export-symbols"; then
roentgen b75cab
	  prev=expsyms
roentgen b75cab
	else
roentgen b75cab
	  prev=expsyms_regex
roentgen b75cab
	fi
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -framework)
roentgen b75cab
	prev=framework
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -inst-prefix-dir)
roentgen b75cab
	prev=inst_prefix
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
roentgen b75cab
      # so, if we see these flags be careful not to treat them like -L
roentgen b75cab
      -L[A-Z][A-Z]*:*)
roentgen b75cab
	case $with_gcc/$host in
roentgen b75cab
	no/*-*-irix* | /*-*-irix*)
roentgen b75cab
	  func_append compile_command " $arg"
roentgen b75cab
	  func_append finalize_command " $arg"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -L*)
roentgen b75cab
	func_stripname "-L" '' "$arg"
roentgen b75cab
	if test -z "$func_stripname_result"; then
roentgen b75cab
	  if test "$#" -gt 0; then
roentgen b75cab
	    func_fatal_error "require no space between \`-L' and \`$1'"
roentgen b75cab
	  else
roentgen b75cab
	    func_fatal_error "need path for \`-L' option"
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
	func_resolve_sysroot "$func_stripname_result"
roentgen b75cab
	dir=$func_resolve_sysroot_result
roentgen b75cab
	# We need an absolute path.
roentgen b75cab
	case $dir in
roentgen b75cab
	[\\/]* | [A-Za-z]:[\\/]*) ;;
roentgen b75cab
	*)
roentgen b75cab
	  absdir=`cd "$dir" && pwd`
roentgen b75cab
	  test -z "$absdir" && \
roentgen b75cab
	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
roentgen b75cab
	  dir="$absdir"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	case "$deplibs " in
roentgen b75cab
	*" -L$dir "* | *" $arg "*)
roentgen b75cab
	  # Will only happen for absolute or sysroot arguments
roentgen b75cab
	  ;;
roentgen b75cab
	*)
roentgen b75cab
	  # Preserve sysroot, but never include relative directories
roentgen b75cab
	  case $dir in
roentgen b75cab
	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
roentgen b75cab
	    *) func_append deplibs " -L$dir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	  func_append lib_search_path " $dir"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	case $host in
roentgen b75cab
	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
roentgen b75cab
	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
roentgen b75cab
	  case :$dllsearchpath: in
roentgen b75cab
	  *":$dir:"*) ;;
roentgen b75cab
	  ::) dllsearchpath=$dir;;
roentgen b75cab
	  *) func_append dllsearchpath ":$dir";;
roentgen b75cab
	  esac
roentgen b75cab
	  case :$dllsearchpath: in
roentgen b75cab
	  *":$testbindir:"*) ;;
roentgen b75cab
	  ::) dllsearchpath=$testbindir;;
roentgen b75cab
	  *) func_append dllsearchpath ":$testbindir";;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -l*)
roentgen b75cab
	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
roentgen b75cab
	  case $host in
roentgen b75cab
	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
roentgen b75cab
	    # These systems don't actually have a C or math library (as such)
roentgen b75cab
	    continue
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-os2*)
roentgen b75cab
	    # These systems don't actually have a C library (as such)
roentgen b75cab
	    test "X$arg" = "X-lc" && continue
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
roentgen b75cab
	    # Do not include libc due to us having libc/libc_r.
roentgen b75cab
	    test "X$arg" = "X-lc" && continue
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-rhapsody* | *-*-darwin1.[012])
roentgen b75cab
	    # Rhapsody C and math libraries are in the System framework
roentgen b75cab
	    func_append deplibs " System.ltframework"
roentgen b75cab
	    continue
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-sco3.2v5* | *-*-sco5v6*)
roentgen b75cab
	    # Causes problems with __ctype
roentgen b75cab
	    test "X$arg" = "X-lc" && continue
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
roentgen b75cab
	    # Compiler inserts libc in the correct place for threads to work
roentgen b75cab
	    test "X$arg" = "X-lc" && continue
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	elif test "X$arg" = "X-lc_r"; then
roentgen b75cab
	 case $host in
roentgen b75cab
	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
roentgen b75cab
	   # Do not include libc_r directly, use -pthread flag.
roentgen b75cab
	   continue
roentgen b75cab
	   ;;
roentgen b75cab
	 esac
roentgen b75cab
	fi
roentgen b75cab
	func_append deplibs " $arg"
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -module)
roentgen b75cab
	module=yes
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      # Tru64 UNIX uses -model [arg] to determine the layout of C++
roentgen b75cab
      # classes, name mangling, and exception handling.
roentgen b75cab
      # Darwin uses the -arch flag to determine output architecture.
roentgen b75cab
      -model|-arch|-isysroot|--sysroot)
roentgen b75cab
	func_append compiler_flags " $arg"
roentgen b75cab
	func_append compile_command " $arg"
roentgen b75cab
	func_append finalize_command " $arg"
roentgen b75cab
	prev=xcompiler
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
roentgen b75cab
      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
roentgen b75cab
	func_append compiler_flags " $arg"
roentgen b75cab
	func_append compile_command " $arg"
roentgen b75cab
	func_append finalize_command " $arg"
roentgen b75cab
	case "$new_inherited_linker_flags " in
roentgen b75cab
	    *" $arg "*) ;;
roentgen b75cab
	    * ) func_append new_inherited_linker_flags " $arg" ;;
roentgen b75cab
	esac
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -multi_module)
roentgen b75cab
	single_module="${wl}-multi_module"
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -no-fast-install)
roentgen b75cab
	fast_install=no
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -no-install)
roentgen b75cab
	case $host in
roentgen b75cab
	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
roentgen b75cab
	  # The PATH hackery in wrapper scripts is required on Windows
roentgen b75cab
	  # and Darwin in order for the loader to find any dlls it needs.
roentgen b75cab
	  func_warning "\`-no-install' is ignored for $host"
roentgen b75cab
	  func_warning "assuming \`-no-fast-install' instead"
roentgen b75cab
	  fast_install=no
roentgen b75cab
	  ;;
roentgen b75cab
	*) no_install=yes ;;
roentgen b75cab
	esac
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -no-undefined)
roentgen b75cab
	allow_undefined=no
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -objectlist)
roentgen b75cab
	prev=objectlist
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -o) prev=output ;;
roentgen b75cab
roentgen b75cab
      -precious-files-regex)
roentgen b75cab
	prev=precious_regex
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -release)
roentgen b75cab
	prev=release
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -rpath)
roentgen b75cab
	prev=rpath
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -R)
roentgen b75cab
	prev=xrpath
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -R*)
roentgen b75cab
	func_stripname '-R' '' "$arg"
roentgen b75cab
	dir=$func_stripname_result
roentgen b75cab
	# We need an absolute path.
roentgen b75cab
	case $dir in
roentgen b75cab
	[\\/]* | [A-Za-z]:[\\/]*) ;;
roentgen b75cab
	=*)
roentgen b75cab
	  func_stripname '=' '' "$dir"
roentgen b75cab
	  dir=$lt_sysroot$func_stripname_result
roentgen b75cab
	  ;;
roentgen b75cab
	*)
roentgen b75cab
	  func_fatal_error "only absolute run-paths are allowed"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	case "$xrpath " in
roentgen b75cab
	*" $dir "*) ;;
roentgen b75cab
	*) func_append xrpath " $dir" ;;
roentgen b75cab
	esac
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -shared)
roentgen b75cab
	# The effects of -shared are defined in a previous loop.
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -shrext)
roentgen b75cab
	prev=shrext
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -static | -static-libtool-libs)
roentgen b75cab
	# The effects of -static are defined in a previous loop.
roentgen b75cab
	# We used to do the same as -all-static on platforms that
roentgen b75cab
	# didn't have a PIC flag, but the assumption that the effects
roentgen b75cab
	# would be equivalent was wrong.  It would break on at least
roentgen b75cab
	# Digital Unix and AIX.
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -thread-safe)
roentgen b75cab
	thread_safe=yes
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -version-info)
roentgen b75cab
	prev=vinfo
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -version-number)
roentgen b75cab
	prev=vinfo
roentgen b75cab
	vinfo_number=yes
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -weak)
roentgen b75cab
        prev=weak
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -Wc,*)
roentgen b75cab
	func_stripname '-Wc,' '' "$arg"
roentgen b75cab
	args=$func_stripname_result
roentgen b75cab
	arg=
roentgen b75cab
	save_ifs="$IFS"; IFS=','
roentgen b75cab
	for flag in $args; do
roentgen b75cab
	  IFS="$save_ifs"
roentgen b75cab
          func_quote_for_eval "$flag"
roentgen b75cab
	  func_append arg " $func_quote_for_eval_result"
roentgen b75cab
	  func_append compiler_flags " $func_quote_for_eval_result"
roentgen b75cab
	done
roentgen b75cab
	IFS="$save_ifs"
roentgen b75cab
	func_stripname ' ' '' "$arg"
roentgen b75cab
	arg=$func_stripname_result
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -Wl,*)
roentgen b75cab
	func_stripname '-Wl,' '' "$arg"
roentgen b75cab
	args=$func_stripname_result
roentgen b75cab
	arg=
roentgen b75cab
	save_ifs="$IFS"; IFS=','
roentgen b75cab
	for flag in $args; do
roentgen b75cab
	  IFS="$save_ifs"
roentgen b75cab
          func_quote_for_eval "$flag"
roentgen b75cab
	  func_append arg " $wl$func_quote_for_eval_result"
roentgen b75cab
	  func_append compiler_flags " $wl$func_quote_for_eval_result"
roentgen b75cab
	  func_append linker_flags " $func_quote_for_eval_result"
roentgen b75cab
	done
roentgen b75cab
	IFS="$save_ifs"
roentgen b75cab
	func_stripname ' ' '' "$arg"
roentgen b75cab
	arg=$func_stripname_result
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -Xcompiler)
roentgen b75cab
	prev=xcompiler
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -Xlinker)
roentgen b75cab
	prev=xlinker
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      -XCClinker)
roentgen b75cab
	prev=xcclinker
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      # -msg_* for osf cc
roentgen b75cab
      -msg_*)
roentgen b75cab
	func_quote_for_eval "$arg"
roentgen b75cab
	arg="$func_quote_for_eval_result"
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      # Flags to be passed through unchanged, with rationale:
roentgen b75cab
      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
roentgen b75cab
      # -r[0-9][0-9]*        specify processor for the SGI compiler
roentgen b75cab
      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
roentgen b75cab
      # +DA*, +DD*           enable 64-bit mode for the HP compiler
roentgen b75cab
      # -q*                  compiler args for the IBM compiler
roentgen b75cab
      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
roentgen b75cab
      # -F/path              path to uninstalled frameworks, gcc on darwin
roentgen b75cab
      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
roentgen b75cab
      # @file                GCC response files
roentgen b75cab
      # -tp=*                Portland pgcc target processor selection
roentgen b75cab
      # --sysroot=*          for sysroot support
roentgen b75cab
      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
roentgen b75cab
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
roentgen b75cab
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
roentgen b75cab
      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
roentgen b75cab
        func_quote_for_eval "$arg"
roentgen b75cab
	arg="$func_quote_for_eval_result"
roentgen b75cab
        func_append compile_command " $arg"
roentgen b75cab
        func_append finalize_command " $arg"
roentgen b75cab
        func_append compiler_flags " $arg"
roentgen b75cab
        continue
roentgen b75cab
        ;;
roentgen b75cab
roentgen b75cab
      # Some other compiler flag.
roentgen b75cab
      -* | +*)
roentgen b75cab
        func_quote_for_eval "$arg"
roentgen b75cab
	arg="$func_quote_for_eval_result"
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *.$objext)
roentgen b75cab
	# A standard object.
roentgen b75cab
	func_append objs " $arg"
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *.lo)
roentgen b75cab
	# A libtool-controlled object.
roentgen b75cab
roentgen b75cab
	# Check to see that this really is a libtool object.
roentgen b75cab
	if func_lalib_unsafe_p "$arg"; then
roentgen b75cab
	  pic_object=
roentgen b75cab
	  non_pic_object=
roentgen b75cab
roentgen b75cab
	  # Read the .lo file
roentgen b75cab
	  func_source "$arg"
roentgen b75cab
roentgen b75cab
	  if test -z "$pic_object" ||
roentgen b75cab
	     test -z "$non_pic_object" ||
roentgen b75cab
	     test "$pic_object" = none &&
roentgen b75cab
	     test "$non_pic_object" = none; then
roentgen b75cab
	    func_fatal_error "cannot find name of object for \`$arg'"
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  # Extract subdirectory from the argument.
roentgen b75cab
	  func_dirname "$arg" "/" ""
roentgen b75cab
	  xdir="$func_dirname_result"
roentgen b75cab
roentgen b75cab
	  if test "$pic_object" != none; then
roentgen b75cab
	    # Prepend the subdirectory the object is found in.
roentgen b75cab
	    pic_object="$xdir$pic_object"
roentgen b75cab
roentgen b75cab
	    if test "$prev" = dlfiles; then
roentgen b75cab
	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
roentgen b75cab
		func_append dlfiles " $pic_object"
roentgen b75cab
		prev=
roentgen b75cab
		continue
roentgen b75cab
	      else
roentgen b75cab
		# If libtool objects are unsupported, then we need to preload.
roentgen b75cab
		prev=dlprefiles
roentgen b75cab
	      fi
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    # CHECK ME:  I think I busted this.  -Ossama
roentgen b75cab
	    if test "$prev" = dlprefiles; then
roentgen b75cab
	      # Preload the old-style object.
roentgen b75cab
	      func_append dlprefiles " $pic_object"
roentgen b75cab
	      prev=
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    # A PIC object.
roentgen b75cab
	    func_append libobjs " $pic_object"
roentgen b75cab
	    arg="$pic_object"
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  # Non-PIC object.
roentgen b75cab
	  if test "$non_pic_object" != none; then
roentgen b75cab
	    # Prepend the subdirectory the object is found in.
roentgen b75cab
	    non_pic_object="$xdir$non_pic_object"
roentgen b75cab
roentgen b75cab
	    # A standard non-PIC object
roentgen b75cab
	    func_append non_pic_objects " $non_pic_object"
roentgen b75cab
	    if test -z "$pic_object" || test "$pic_object" = none ; then
roentgen b75cab
	      arg="$non_pic_object"
roentgen b75cab
	    fi
roentgen b75cab
	  else
roentgen b75cab
	    # If the PIC object exists, use it instead.
roentgen b75cab
	    # $xdir was prepended to $pic_object above.
roentgen b75cab
	    non_pic_object="$pic_object"
roentgen b75cab
	    func_append non_pic_objects " $non_pic_object"
roentgen b75cab
	  fi
roentgen b75cab
	else
roentgen b75cab
	  # Only an error if not doing a dry-run.
roentgen b75cab
	  if $opt_dry_run; then
roentgen b75cab
	    # Extract subdirectory from the argument.
roentgen b75cab
	    func_dirname "$arg" "/" ""
roentgen b75cab
	    xdir="$func_dirname_result"
roentgen b75cab
roentgen b75cab
	    func_lo2o "$arg"
roentgen b75cab
	    pic_object=$xdir$objdir/$func_lo2o_result
roentgen b75cab
	    non_pic_object=$xdir$func_lo2o_result
roentgen b75cab
	    func_append libobjs " $pic_object"
roentgen b75cab
	    func_append non_pic_objects " $non_pic_object"
roentgen b75cab
	  else
roentgen b75cab
	    func_fatal_error "\`$arg' is not a valid libtool object"
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *.$libext)
roentgen b75cab
	# An archive.
roentgen b75cab
	func_append deplibs " $arg"
roentgen b75cab
	func_append old_deplibs " $arg"
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *.la)
roentgen b75cab
	# A libtool-controlled library.
roentgen b75cab
roentgen b75cab
	func_resolve_sysroot "$arg"
roentgen b75cab
	if test "$prev" = dlfiles; then
roentgen b75cab
	  # This library was specified with -dlopen.
roentgen b75cab
	  func_append dlfiles " $func_resolve_sysroot_result"
roentgen b75cab
	  prev=
roentgen b75cab
	elif test "$prev" = dlprefiles; then
roentgen b75cab
	  # The library was specified with -dlpreopen.
roentgen b75cab
	  func_append dlprefiles " $func_resolve_sysroot_result"
roentgen b75cab
	  prev=
roentgen b75cab
	else
roentgen b75cab
	  func_append deplibs " $func_resolve_sysroot_result"
roentgen b75cab
	fi
roentgen b75cab
	continue
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      # Some other compiler argument.
roentgen b75cab
      *)
roentgen b75cab
	# Unknown arguments in both finalize_command and compile_command need
roentgen b75cab
	# to be aesthetically quoted because they are evaled later.
roentgen b75cab
	func_quote_for_eval "$arg"
roentgen b75cab
	arg="$func_quote_for_eval_result"
roentgen b75cab
	;;
roentgen b75cab
      esac # arg
roentgen b75cab
roentgen b75cab
      # Now actually substitute the argument into the commands.
roentgen b75cab
      if test -n "$arg"; then
roentgen b75cab
	func_append compile_command " $arg"
roentgen b75cab
	func_append finalize_command " $arg"
roentgen b75cab
      fi
roentgen b75cab
    done # argument parsing loop
roentgen b75cab
roentgen b75cab
    test -n "$prev" && \
roentgen b75cab
      func_fatal_help "the \`$prevarg' option requires an argument"
roentgen b75cab
roentgen b75cab
    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
roentgen b75cab
      eval arg=\"$export_dynamic_flag_spec\"
roentgen b75cab
      func_append compile_command " $arg"
roentgen b75cab
      func_append finalize_command " $arg"
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    oldlibs=
roentgen b75cab
    # calculate the name of the file, without its directory
roentgen b75cab
    func_basename "$output"
roentgen b75cab
    outputname="$func_basename_result"
roentgen b75cab
    libobjs_save="$libobjs"
roentgen b75cab
roentgen b75cab
    if test -n "$shlibpath_var"; then
roentgen b75cab
      # get the directories listed in $shlibpath_var
roentgen b75cab
      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
roentgen b75cab
    else
roentgen b75cab
      shlib_search_path=
roentgen b75cab
    fi
roentgen b75cab
    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
roentgen b75cab
    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
roentgen b75cab
roentgen b75cab
    func_dirname "$output" "/" ""
roentgen b75cab
    output_objdir="$func_dirname_result$objdir"
roentgen b75cab
    func_to_tool_file "$output_objdir/"
roentgen b75cab
    tool_output_objdir=$func_to_tool_file_result
roentgen b75cab
    # Create the object directory.
roentgen b75cab
    func_mkdir_p "$output_objdir"
roentgen b75cab
roentgen b75cab
    # Determine the type of output
roentgen b75cab
    case $output in
roentgen b75cab
    "")
roentgen b75cab
      func_fatal_help "you must specify an output file"
roentgen b75cab
      ;;
roentgen b75cab
    *.$libext) linkmode=oldlib ;;
roentgen b75cab
    *.lo | *.$objext) linkmode=obj ;;
roentgen b75cab
    *.la) linkmode=lib ;;
roentgen b75cab
    *) linkmode=prog ;; # Anything else should be a program.
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    specialdeplibs=
roentgen b75cab
roentgen b75cab
    libs=
roentgen b75cab
    # Find all interdependent deplibs by searching for libraries
roentgen b75cab
    # that are linked more than once (e.g. -la -lb -la)
roentgen b75cab
    for deplib in $deplibs; do
roentgen b75cab
      if $opt_preserve_dup_deps ; then
roentgen b75cab
	case "$libs " in
roentgen b75cab
	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
roentgen b75cab
	esac
roentgen b75cab
      fi
roentgen b75cab
      func_append libs " $deplib"
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    if test "$linkmode" = lib; then
roentgen b75cab
      libs="$predeps $libs $compiler_lib_search_path $postdeps"
roentgen b75cab
roentgen b75cab
      # Compute libraries that are listed more than once in $predeps
roentgen b75cab
      # $postdeps and mark them as special (i.e., whose duplicates are
roentgen b75cab
      # not to be eliminated).
roentgen b75cab
      pre_post_deps=
roentgen b75cab
      if $opt_duplicate_compiler_generated_deps; then
roentgen b75cab
	for pre_post_dep in $predeps $postdeps; do
roentgen b75cab
	  case "$pre_post_deps " in
roentgen b75cab
	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
roentgen b75cab
	  esac
roentgen b75cab
	  func_append pre_post_deps " $pre_post_dep"
roentgen b75cab
	done
roentgen b75cab
      fi
roentgen b75cab
      pre_post_deps=
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    deplibs=
roentgen b75cab
    newdependency_libs=
roentgen b75cab
    newlib_search_path=
roentgen b75cab
    need_relink=no # whether we're linking any uninstalled libtool libraries
roentgen b75cab
    notinst_deplibs= # not-installed libtool libraries
roentgen b75cab
    notinst_path= # paths that contain not-installed libtool libraries
roentgen b75cab
roentgen b75cab
    case $linkmode in
roentgen b75cab
    lib)
roentgen b75cab
	passes="conv dlpreopen link"
roentgen b75cab
	for file in $dlfiles $dlprefiles; do
roentgen b75cab
	  case $file in
roentgen b75cab
	  *.la) ;;
roentgen b75cab
	  *)
roentgen b75cab
	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	done
roentgen b75cab
	;;
roentgen b75cab
    prog)
roentgen b75cab
	compile_deplibs=
roentgen b75cab
	finalize_deplibs=
roentgen b75cab
	alldeplibs=no
roentgen b75cab
	newdlfiles=
roentgen b75cab
	newdlprefiles=
roentgen b75cab
	passes="conv scan dlopen dlpreopen link"
roentgen b75cab
	;;
roentgen b75cab
    *)  passes="conv"
roentgen b75cab
	;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    for pass in $passes; do
roentgen b75cab
      # The preopen pass in lib mode reverses $deplibs; put it back here
roentgen b75cab
      # so that -L comes before libs that need it for instance...
roentgen b75cab
      if test "$linkmode,$pass" = "lib,link"; then
roentgen b75cab
	## FIXME: Find the place where the list is rebuilt in the wrong
roentgen b75cab
	##        order, and fix it there properly
roentgen b75cab
        tmp_deplibs=
roentgen b75cab
	for deplib in $deplibs; do
roentgen b75cab
	  tmp_deplibs="$deplib $tmp_deplibs"
roentgen b75cab
	done
roentgen b75cab
	deplibs="$tmp_deplibs"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      if test "$linkmode,$pass" = "lib,link" ||
roentgen b75cab
	 test "$linkmode,$pass" = "prog,scan"; then
roentgen b75cab
	libs="$deplibs"
roentgen b75cab
	deplibs=
roentgen b75cab
      fi
roentgen b75cab
      if test "$linkmode" = prog; then
roentgen b75cab
	case $pass in
roentgen b75cab
	dlopen) libs="$dlfiles" ;;
roentgen b75cab
	dlpreopen) libs="$dlprefiles" ;;
roentgen b75cab
	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
roentgen b75cab
	esac
roentgen b75cab
      fi
roentgen b75cab
      if test "$linkmode,$pass" = "lib,dlpreopen"; then
roentgen b75cab
	# Collect and forward deplibs of preopened libtool libs
roentgen b75cab
	for lib in $dlprefiles; do
roentgen b75cab
	  # Ignore non-libtool-libs
roentgen b75cab
	  dependency_libs=
roentgen b75cab
	  func_resolve_sysroot "$lib"
roentgen b75cab
	  case $lib in
roentgen b75cab
	  *.la)	func_source "$func_resolve_sysroot_result" ;;
roentgen b75cab
	  esac
roentgen b75cab
roentgen b75cab
	  # Collect preopened libtool deplibs, except any this library
roentgen b75cab
	  # has declared as weak libs
roentgen b75cab
	  for deplib in $dependency_libs; do
roentgen b75cab
	    func_basename "$deplib"
roentgen b75cab
            deplib_base=$func_basename_result
roentgen b75cab
	    case " $weak_libs " in
roentgen b75cab
	    *" $deplib_base "*) ;;
roentgen b75cab
	    *) func_append deplibs " $deplib" ;;
roentgen b75cab
	    esac
roentgen b75cab
	  done
roentgen b75cab
	done
roentgen b75cab
	libs="$dlprefiles"
roentgen b75cab
      fi
roentgen b75cab
      if test "$pass" = dlopen; then
roentgen b75cab
	# Collect dlpreopened libraries
roentgen b75cab
	save_deplibs="$deplibs"
roentgen b75cab
	deplibs=
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      for deplib in $libs; do
roentgen b75cab
	lib=
roentgen b75cab
	found=no
roentgen b75cab
	case $deplib in
roentgen b75cab
	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
roentgen b75cab
        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
roentgen b75cab
	  if test "$linkmode,$pass" = "prog,link"; then
roentgen b75cab
	    compile_deplibs="$deplib $compile_deplibs"
roentgen b75cab
	    finalize_deplibs="$deplib $finalize_deplibs"
roentgen b75cab
	  else
roentgen b75cab
	    func_append compiler_flags " $deplib"
roentgen b75cab
	    if test "$linkmode" = lib ; then
roentgen b75cab
		case "$new_inherited_linker_flags " in
roentgen b75cab
		    *" $deplib "*) ;;
roentgen b75cab
		    * ) func_append new_inherited_linker_flags " $deplib" ;;
roentgen b75cab
		esac
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	-l*)
roentgen b75cab
	  if test "$linkmode" != lib && test "$linkmode" != prog; then
roentgen b75cab
	    func_warning "\`-l' is ignored for archives/objects"
roentgen b75cab
	    continue
roentgen b75cab
	  fi
roentgen b75cab
	  func_stripname '-l' '' "$deplib"
roentgen b75cab
	  name=$func_stripname_result
roentgen b75cab
	  if test "$linkmode" = lib; then
roentgen b75cab
	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
roentgen b75cab
	  else
roentgen b75cab
	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
roentgen b75cab
	  fi
roentgen b75cab
	  for searchdir in $searchdirs; do
roentgen b75cab
	    for search_ext in .la $std_shrext .so .a; do
roentgen b75cab
	      # Search the libtool library
roentgen b75cab
	      lib="$searchdir/lib${name}${search_ext}"
roentgen b75cab
	      if test -f "$lib"; then
roentgen b75cab
		if test "$search_ext" = ".la"; then
roentgen b75cab
		  found=yes
roentgen b75cab
		else
roentgen b75cab
		  found=no
roentgen b75cab
		fi
roentgen b75cab
		break 2
roentgen b75cab
	      fi
roentgen b75cab
	    done
roentgen b75cab
	  done
roentgen b75cab
	  if test "$found" != yes; then
roentgen b75cab
	    # deplib doesn't seem to be a libtool library
roentgen b75cab
	    if test "$linkmode,$pass" = "prog,link"; then
roentgen b75cab
	      compile_deplibs="$deplib $compile_deplibs"
roentgen b75cab
	      finalize_deplibs="$deplib $finalize_deplibs"
roentgen b75cab
	    else
roentgen b75cab
	      deplibs="$deplib $deplibs"
roentgen b75cab
	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
roentgen b75cab
	    fi
roentgen b75cab
	    continue
roentgen b75cab
	  else # deplib is a libtool library
roentgen b75cab
	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
roentgen b75cab
	    # We need to do some special things here, and not later.
roentgen b75cab
	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
roentgen b75cab
	      case " $predeps $postdeps " in
roentgen b75cab
	      *" $deplib "*)
roentgen b75cab
		if func_lalib_p "$lib"; then
roentgen b75cab
		  library_names=
roentgen b75cab
		  old_library=
roentgen b75cab
		  func_source "$lib"
roentgen b75cab
		  for l in $old_library $library_names; do
roentgen b75cab
		    ll="$l"
roentgen b75cab
		  done
roentgen b75cab
		  if test "X$ll" = "X$old_library" ; then # only static version available
roentgen b75cab
		    found=no
roentgen b75cab
		    func_dirname "$lib" "" "."
roentgen b75cab
		    ladir="$func_dirname_result"
roentgen b75cab
		    lib=$ladir/$old_library
roentgen b75cab
		    if test "$linkmode,$pass" = "prog,link"; then
roentgen b75cab
		      compile_deplibs="$deplib $compile_deplibs"
roentgen b75cab
		      finalize_deplibs="$deplib $finalize_deplibs"
roentgen b75cab
		    else
roentgen b75cab
		      deplibs="$deplib $deplibs"
roentgen b75cab
		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
roentgen b75cab
		    fi
roentgen b75cab
		    continue
roentgen b75cab
		  fi
roentgen b75cab
		fi
roentgen b75cab
		;;
roentgen b75cab
	      *) ;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	  ;; # -l
roentgen b75cab
	*.ltframework)
roentgen b75cab
	  if test "$linkmode,$pass" = "prog,link"; then
roentgen b75cab
	    compile_deplibs="$deplib $compile_deplibs"
roentgen b75cab
	    finalize_deplibs="$deplib $finalize_deplibs"
roentgen b75cab
	  else
roentgen b75cab
	    deplibs="$deplib $deplibs"
roentgen b75cab
	    if test "$linkmode" = lib ; then
roentgen b75cab
		case "$new_inherited_linker_flags " in
roentgen b75cab
		    *" $deplib "*) ;;
roentgen b75cab
		    * ) func_append new_inherited_linker_flags " $deplib" ;;
roentgen b75cab
		esac
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	-L*)
roentgen b75cab
	  case $linkmode in
roentgen b75cab
	  lib)
roentgen b75cab
	    deplibs="$deplib $deplibs"
roentgen b75cab
	    test "$pass" = conv && continue
roentgen b75cab
	    newdependency_libs="$deplib $newdependency_libs"
roentgen b75cab
	    func_stripname '-L' '' "$deplib"
roentgen b75cab
	    func_resolve_sysroot "$func_stripname_result"
roentgen b75cab
	    func_append newlib_search_path " $func_resolve_sysroot_result"
roentgen b75cab
	    ;;
roentgen b75cab
	  prog)
roentgen b75cab
	    if test "$pass" = conv; then
roentgen b75cab
	      deplibs="$deplib $deplibs"
roentgen b75cab
	      continue
roentgen b75cab
	    fi
roentgen b75cab
	    if test "$pass" = scan; then
roentgen b75cab
	      deplibs="$deplib $deplibs"
roentgen b75cab
	    else
roentgen b75cab
	      compile_deplibs="$deplib $compile_deplibs"
roentgen b75cab
	      finalize_deplibs="$deplib $finalize_deplibs"
roentgen b75cab
	    fi
roentgen b75cab
	    func_stripname '-L' '' "$deplib"
roentgen b75cab
	    func_resolve_sysroot "$func_stripname_result"
roentgen b75cab
	    func_append newlib_search_path " $func_resolve_sysroot_result"
roentgen b75cab
	    ;;
roentgen b75cab
	  *)
roentgen b75cab
	    func_warning "\`-L' is ignored for archives/objects"
roentgen b75cab
	    ;;
roentgen b75cab
	  esac # linkmode
roentgen b75cab
	  continue
roentgen b75cab
	  ;; # -L
roentgen b75cab
	-R*)
roentgen b75cab
	  if test "$pass" = link; then
roentgen b75cab
	    func_stripname '-R' '' "$deplib"
roentgen b75cab
	    func_resolve_sysroot "$func_stripname_result"
roentgen b75cab
	    dir=$func_resolve_sysroot_result
roentgen b75cab
	    # Make sure the xrpath contains only unique directories.
roentgen b75cab
	    case "$xrpath " in
roentgen b75cab
	    *" $dir "*) ;;
roentgen b75cab
	    *) func_append xrpath " $dir" ;;
roentgen b75cab
	    esac
roentgen b75cab
	  fi
roentgen b75cab
	  deplibs="$deplib $deplibs"
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	*.la)
roentgen b75cab
	  func_resolve_sysroot "$deplib"
roentgen b75cab
	  lib=$func_resolve_sysroot_result
roentgen b75cab
	  ;;
roentgen b75cab
	*.$libext)
roentgen b75cab
	  if test "$pass" = conv; then
roentgen b75cab
	    deplibs="$deplib $deplibs"
roentgen b75cab
	    continue
roentgen b75cab
	  fi
roentgen b75cab
	  case $linkmode in
roentgen b75cab
	  lib)
roentgen b75cab
	    # Linking convenience modules into shared libraries is allowed,
roentgen b75cab
	    # but linking other static libraries is non-portable.
roentgen b75cab
	    case " $dlpreconveniencelibs " in
roentgen b75cab
	    *" $deplib "*) ;;
roentgen b75cab
	    *)
roentgen b75cab
	      valid_a_lib=no
roentgen b75cab
	      case $deplibs_check_method in
roentgen b75cab
		match_pattern*)
roentgen b75cab
		  set dummy $deplibs_check_method; shift
roentgen b75cab
		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
roentgen b75cab
		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
roentgen b75cab
		    | $EGREP "$match_pattern_regex" > /dev/null; then
roentgen b75cab
		    valid_a_lib=yes
roentgen b75cab
		  fi
roentgen b75cab
		;;
roentgen b75cab
		pass_all)
roentgen b75cab
		  valid_a_lib=yes
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	      if test "$valid_a_lib" != yes; then
roentgen b75cab
		echo
roentgen b75cab
		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
roentgen b75cab
		echo "*** I have the capability to make that library automatically link in when"
roentgen b75cab
		echo "*** you link to this library.  But I can only do this if you have a"
roentgen b75cab
		echo "*** shared version of the library, which you do not appear to have"
roentgen b75cab
		echo "*** because the file extensions .$libext of this argument makes me believe"
roentgen b75cab
		echo "*** that it is just a static archive that I should not use here."
roentgen b75cab
	      else
roentgen b75cab
		echo
roentgen b75cab
		$ECHO "*** Warning: Linking the shared library $output against the"
roentgen b75cab
		$ECHO "*** static library $deplib is not portable!"
roentgen b75cab
		deplibs="$deplib $deplibs"
roentgen b75cab
	      fi
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	    continue
roentgen b75cab
	    ;;
roentgen b75cab
	  prog)
roentgen b75cab
	    if test "$pass" != link; then
roentgen b75cab
	      deplibs="$deplib $deplibs"
roentgen b75cab
	    else
roentgen b75cab
	      compile_deplibs="$deplib $compile_deplibs"
roentgen b75cab
	      finalize_deplibs="$deplib $finalize_deplibs"
roentgen b75cab
	    fi
roentgen b75cab
	    continue
roentgen b75cab
	    ;;
roentgen b75cab
	  esac # linkmode
roentgen b75cab
	  ;; # *.$libext
roentgen b75cab
	*.lo | *.$objext)
roentgen b75cab
	  if test "$pass" = conv; then
roentgen b75cab
	    deplibs="$deplib $deplibs"
roentgen b75cab
	  elif test "$linkmode" = prog; then
roentgen b75cab
	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
roentgen b75cab
	      # If there is no dlopen support or we're linking statically,
roentgen b75cab
	      # we need to preload.
roentgen b75cab
	      func_append newdlprefiles " $deplib"
roentgen b75cab
	      compile_deplibs="$deplib $compile_deplibs"
roentgen b75cab
	      finalize_deplibs="$deplib $finalize_deplibs"
roentgen b75cab
	    else
roentgen b75cab
	      func_append newdlfiles " $deplib"
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	%DEPLIBS%)
roentgen b75cab
	  alldeplibs=yes
roentgen b75cab
	  continue
roentgen b75cab
	  ;;
roentgen b75cab
	esac # case $deplib
roentgen b75cab
roentgen b75cab
	if test "$found" = yes || test -f "$lib"; then :
roentgen b75cab
	else
roentgen b75cab
	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Check to see that this really is a libtool archive.
roentgen b75cab
	func_lalib_unsafe_p "$lib" \
roentgen b75cab
	  || func_fatal_error "\`$lib' is not a valid libtool archive"
roentgen b75cab
roentgen b75cab
	func_dirname "$lib" "" "."
roentgen b75cab
	ladir="$func_dirname_result"
roentgen b75cab
roentgen b75cab
	dlname=
roentgen b75cab
	dlopen=
roentgen b75cab
	dlpreopen=
roentgen b75cab
	libdir=
roentgen b75cab
	library_names=
roentgen b75cab
	old_library=
roentgen b75cab
	inherited_linker_flags=
roentgen b75cab
	# If the library was installed with an old release of libtool,
roentgen b75cab
	# it will not redefine variables installed, or shouldnotlink
roentgen b75cab
	installed=yes
roentgen b75cab
	shouldnotlink=no
roentgen b75cab
	avoidtemprpath=
roentgen b75cab
roentgen b75cab
roentgen b75cab
	# Read the .la file
roentgen b75cab
	func_source "$lib"
roentgen b75cab
roentgen b75cab
	# Convert "-framework foo" to "foo.ltframework"
roentgen b75cab
	if test -n "$inherited_linker_flags"; then
roentgen b75cab
	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
roentgen b75cab
	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
roentgen b75cab
	    case " $new_inherited_linker_flags " in
roentgen b75cab
	      *" $tmp_inherited_linker_flag "*) ;;
roentgen b75cab
	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
roentgen b75cab
	    esac
roentgen b75cab
	  done
roentgen b75cab
	fi
roentgen b75cab
	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
roentgen b75cab
	if test "$linkmode,$pass" = "lib,link" ||
roentgen b75cab
	   test "$linkmode,$pass" = "prog,scan" ||
roentgen b75cab
	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
roentgen b75cab
	  test -n "$dlopen" && func_append dlfiles " $dlopen"
roentgen b75cab
	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	if test "$pass" = conv; then
roentgen b75cab
	  # Only check for convenience libraries
roentgen b75cab
	  deplibs="$lib $deplibs"
roentgen b75cab
	  if test -z "$libdir"; then
roentgen b75cab
	    if test -z "$old_library"; then
roentgen b75cab
	      func_fatal_error "cannot find name of link library for \`$lib'"
roentgen b75cab
	    fi
roentgen b75cab
	    # It is a libtool convenience library, so add in its objects.
roentgen b75cab
	    func_append convenience " $ladir/$objdir/$old_library"
roentgen b75cab
	    func_append old_convenience " $ladir/$objdir/$old_library"
roentgen b75cab
	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
roentgen b75cab
	    func_fatal_error "\`$lib' is not a convenience library"
roentgen b75cab
	  fi
roentgen b75cab
	  tmp_libs=
roentgen b75cab
	  for deplib in $dependency_libs; do
roentgen b75cab
	    deplibs="$deplib $deplibs"
roentgen b75cab
	    if $opt_preserve_dup_deps ; then
roentgen b75cab
	      case "$tmp_libs " in
roentgen b75cab
	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
	    func_append tmp_libs " $deplib"
roentgen b75cab
	  done
roentgen b75cab
	  continue
roentgen b75cab
	fi # $pass = conv
roentgen b75cab
roentgen b75cab
roentgen b75cab
	# Get the name of the library we link against.
roentgen b75cab
	linklib=
roentgen b75cab
	if test -n "$old_library" &&
roentgen b75cab
	   { test "$prefer_static_libs" = yes ||
roentgen b75cab
	     test "$prefer_static_libs,$installed" = "built,no"; }; then
roentgen b75cab
	  linklib=$old_library
roentgen b75cab
	else
roentgen b75cab
	  for l in $old_library $library_names; do
roentgen b75cab
	    linklib="$l"
roentgen b75cab
	  done
roentgen b75cab
	fi
roentgen b75cab
	if test -z "$linklib"; then
roentgen b75cab
	  func_fatal_error "cannot find name of link library for \`$lib'"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# This library was specified with -dlopen.
roentgen b75cab
	if test "$pass" = dlopen; then
roentgen b75cab
	  if test -z "$libdir"; then
roentgen b75cab
	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
roentgen b75cab
	  fi
roentgen b75cab
	  if test -z "$dlname" ||
roentgen b75cab
	     test "$dlopen_support" != yes ||
roentgen b75cab
	     test "$build_libtool_libs" = no; then
roentgen b75cab
	    # If there is no dlname, no dlopen support or we're linking
roentgen b75cab
	    # statically, we need to preload.  We also need to preload any
roentgen b75cab
	    # dependent libraries so libltdl's deplib preloader doesn't
roentgen b75cab
	    # bomb out in the load deplibs phase.
roentgen b75cab
	    func_append dlprefiles " $lib $dependency_libs"
roentgen b75cab
	  else
roentgen b75cab
	    func_append newdlfiles " $lib"
roentgen b75cab
	  fi
roentgen b75cab
	  continue
roentgen b75cab
	fi # $pass = dlopen
roentgen b75cab
roentgen b75cab
	# We need an absolute path.
roentgen b75cab
	case $ladir in
roentgen b75cab
	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
roentgen b75cab
	*)
roentgen b75cab
	  abs_ladir=`cd "$ladir" && pwd`
roentgen b75cab
	  if test -z "$abs_ladir"; then
roentgen b75cab
	    func_warning "cannot determine absolute directory name of \`$ladir'"
roentgen b75cab
	    func_warning "passing it literally to the linker, although it might fail"
roentgen b75cab
	    abs_ladir="$ladir"
roentgen b75cab
	  fi
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	func_basename "$lib"
roentgen b75cab
	laname="$func_basename_result"
roentgen b75cab
roentgen b75cab
	# Find the relevant object directory and library name.
roentgen b75cab
	if test "X$installed" = Xyes; then
roentgen b75cab
	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
roentgen b75cab
	    func_warning "library \`$lib' was moved."
roentgen b75cab
	    dir="$ladir"
roentgen b75cab
	    absdir="$abs_ladir"
roentgen b75cab
	    libdir="$abs_ladir"
roentgen b75cab
	  else
roentgen b75cab
	    dir="$lt_sysroot$libdir"
roentgen b75cab
	    absdir="$lt_sysroot$libdir"
roentgen b75cab
	  fi
roentgen b75cab
	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
roentgen b75cab
	else
roentgen b75cab
	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
roentgen b75cab
	    dir="$ladir"
roentgen b75cab
	    absdir="$abs_ladir"
roentgen b75cab
	    # Remove this search path later
roentgen b75cab
	    func_append notinst_path " $abs_ladir"
roentgen b75cab
	  else
roentgen b75cab
	    dir="$ladir/$objdir"
roentgen b75cab
	    absdir="$abs_ladir/$objdir"
roentgen b75cab
	    # Remove this search path later
roentgen b75cab
	    func_append notinst_path " $abs_ladir"
roentgen b75cab
	  fi
roentgen b75cab
	fi # $installed = yes
roentgen b75cab
	func_stripname 'lib' '.la' "$laname"
roentgen b75cab
	name=$func_stripname_result
roentgen b75cab
roentgen b75cab
	# This library was specified with -dlpreopen.
roentgen b75cab
	if test "$pass" = dlpreopen; then
roentgen b75cab
	  if test -z "$libdir" && test "$linkmode" = prog; then
roentgen b75cab
	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
roentgen b75cab
	  fi
roentgen b75cab
	  case "$host" in
roentgen b75cab
	    # special handling for platforms with PE-DLLs.
roentgen b75cab
	    *cygwin* | *mingw* | *cegcc* )
roentgen b75cab
	      # Linker will automatically link against shared library if both
roentgen b75cab
	      # static and shared are present.  Therefore, ensure we extract
roentgen b75cab
	      # symbols from the import library if a shared library is present
roentgen b75cab
	      # (otherwise, the dlopen module name will be incorrect).  We do
roentgen b75cab
	      # this by putting the import library name into $newdlprefiles.
roentgen b75cab
	      # We recover the dlopen module name by 'saving' the la file
roentgen b75cab
	      # name in a special purpose variable, and (later) extracting the
roentgen b75cab
	      # dlname from the la file.
roentgen b75cab
	      if test -n "$dlname"; then
roentgen b75cab
	        func_tr_sh "$dir/$linklib"
roentgen b75cab
	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
roentgen b75cab
	        func_append newdlprefiles " $dir/$linklib"
roentgen b75cab
	      else
roentgen b75cab
	        func_append newdlprefiles " $dir/$old_library"
roentgen b75cab
	        # Keep a list of preopened convenience libraries to check
roentgen b75cab
	        # that they are being used correctly in the link pass.
roentgen b75cab
	        test -z "$libdir" && \
roentgen b75cab
	          func_append dlpreconveniencelibs " $dir/$old_library"
roentgen b75cab
	      fi
roentgen b75cab
	    ;;
roentgen b75cab
	    * )
roentgen b75cab
	      # Prefer using a static library (so that no silly _DYNAMIC symbols
roentgen b75cab
	      # are required to link).
roentgen b75cab
	      if test -n "$old_library"; then
roentgen b75cab
	        func_append newdlprefiles " $dir/$old_library"
roentgen b75cab
	        # Keep a list of preopened convenience libraries to check
roentgen b75cab
	        # that they are being used correctly in the link pass.
roentgen b75cab
	        test -z "$libdir" && \
roentgen b75cab
	          func_append dlpreconveniencelibs " $dir/$old_library"
roentgen b75cab
	      # Otherwise, use the dlname, so that lt_dlopen finds it.
roentgen b75cab
	      elif test -n "$dlname"; then
roentgen b75cab
	        func_append newdlprefiles " $dir/$dlname"
roentgen b75cab
	      else
roentgen b75cab
	        func_append newdlprefiles " $dir/$linklib"
roentgen b75cab
	      fi
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	fi # $pass = dlpreopen
roentgen b75cab
roentgen b75cab
	if test -z "$libdir"; then
roentgen b75cab
	  # Link the convenience library
roentgen b75cab
	  if test "$linkmode" = lib; then
roentgen b75cab
	    deplibs="$dir/$old_library $deplibs"
roentgen b75cab
	  elif test "$linkmode,$pass" = "prog,link"; then
roentgen b75cab
	    compile_deplibs="$dir/$old_library $compile_deplibs"
roentgen b75cab
	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
roentgen b75cab
	  else
roentgen b75cab
	    deplibs="$lib $deplibs" # used for prog,scan pass
roentgen b75cab
	  fi
roentgen b75cab
	  continue
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
roentgen b75cab
	if test "$linkmode" = prog && test "$pass" != link; then
roentgen b75cab
	  func_append newlib_search_path " $ladir"
roentgen b75cab
	  deplibs="$lib $deplibs"
roentgen b75cab
roentgen b75cab
	  linkalldeplibs=no
roentgen b75cab
	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
roentgen b75cab
	     test "$build_libtool_libs" = no; then
roentgen b75cab
	    linkalldeplibs=yes
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  tmp_libs=
roentgen b75cab
	  for deplib in $dependency_libs; do
roentgen b75cab
	    case $deplib in
roentgen b75cab
	    -L*) func_stripname '-L' '' "$deplib"
roentgen b75cab
	         func_resolve_sysroot "$func_stripname_result"
roentgen b75cab
	         func_append newlib_search_path " $func_resolve_sysroot_result"
roentgen b75cab
		 ;;
roentgen b75cab
	    esac
roentgen b75cab
	    # Need to link against all dependency_libs?
roentgen b75cab
	    if test "$linkalldeplibs" = yes; then
roentgen b75cab
	      deplibs="$deplib $deplibs"
roentgen b75cab
	    else
roentgen b75cab
	      # Need to hardcode shared library paths
roentgen b75cab
	      # or/and link against static libraries
roentgen b75cab
	      newdependency_libs="$deplib $newdependency_libs"
roentgen b75cab
	    fi
roentgen b75cab
	    if $opt_preserve_dup_deps ; then
roentgen b75cab
	      case "$tmp_libs " in
roentgen b75cab
	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
	    func_append tmp_libs " $deplib"
roentgen b75cab
	  done # for deplib
roentgen b75cab
	  continue
roentgen b75cab
	fi # $linkmode = prog...
roentgen b75cab
roentgen b75cab
	if test "$linkmode,$pass" = "prog,link"; then
roentgen b75cab
	  if test -n "$library_names" &&
roentgen b75cab
	     { { test "$prefer_static_libs" = no ||
roentgen b75cab
	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
roentgen b75cab
	       test -z "$old_library"; }; then
roentgen b75cab
	    # We need to hardcode the library path
roentgen b75cab
	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
roentgen b75cab
	      # Make sure the rpath contains only unique directories.
roentgen b75cab
	      case "$temp_rpath:" in
roentgen b75cab
	      *"$absdir:"*) ;;
roentgen b75cab
	      *) func_append temp_rpath "$absdir:" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    # Hardcode the library path.
roentgen b75cab
	    # Skip directories that are in the system default run-time
roentgen b75cab
	    # search path.
roentgen b75cab
	    case " $sys_lib_dlsearch_path " in
roentgen b75cab
	    *" $absdir "*) ;;
roentgen b75cab
	    *)
roentgen b75cab
	      case "$compile_rpath " in
roentgen b75cab
	      *" $absdir "*) ;;
roentgen b75cab
	      *) func_append compile_rpath " $absdir" ;;
roentgen b75cab
	      esac
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	    case " $sys_lib_dlsearch_path " in
roentgen b75cab
	    *" $libdir "*) ;;
roentgen b75cab
	    *)
roentgen b75cab
	      case "$finalize_rpath " in
roentgen b75cab
	      *" $libdir "*) ;;
roentgen b75cab
	      *) func_append finalize_rpath " $libdir" ;;
roentgen b75cab
	      esac
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	  fi # $linkmode,$pass = prog,link...
roentgen b75cab
roentgen b75cab
	  if test "$alldeplibs" = yes &&
roentgen b75cab
	     { test "$deplibs_check_method" = pass_all ||
roentgen b75cab
	       { test "$build_libtool_libs" = yes &&
roentgen b75cab
		 test -n "$library_names"; }; }; then
roentgen b75cab
	    # We only need to search for static libraries
roentgen b75cab
	    continue
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	link_static=no # Whether the deplib will be linked statically
roentgen b75cab
	use_static_libs=$prefer_static_libs
roentgen b75cab
	if test "$use_static_libs" = built && test "$installed" = yes; then
roentgen b75cab
	  use_static_libs=no
roentgen b75cab
	fi
roentgen b75cab
	if test -n "$library_names" &&
roentgen b75cab
	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
roentgen b75cab
	  case $host in
roentgen b75cab
	  *cygwin* | *mingw* | *cegcc*)
roentgen b75cab
	      # No point in relinking DLLs because paths are not encoded
roentgen b75cab
	      func_append notinst_deplibs " $lib"
roentgen b75cab
	      need_relink=no
roentgen b75cab
	    ;;
roentgen b75cab
	  *)
roentgen b75cab
	    if test "$installed" = no; then
roentgen b75cab
	      func_append notinst_deplibs " $lib"
roentgen b75cab
	      need_relink=yes
roentgen b75cab
	    fi
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  # This is a shared library
roentgen b75cab
roentgen b75cab
	  # Warn about portability, can't link against -module's on some
roentgen b75cab
	  # systems (darwin).  Don't bleat about dlopened modules though!
roentgen b75cab
	  dlopenmodule=""
roentgen b75cab
	  for dlpremoduletest in $dlprefiles; do
roentgen b75cab
	    if test "X$dlpremoduletest" = "X$lib"; then
roentgen b75cab
	      dlopenmodule="$dlpremoduletest"
roentgen b75cab
	      break
roentgen b75cab
	    fi
roentgen b75cab
	  done
roentgen b75cab
	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
roentgen b75cab
	    echo
roentgen b75cab
	    if test "$linkmode" = prog; then
roentgen b75cab
	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
roentgen b75cab
	    else
roentgen b75cab
	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
roentgen b75cab
	    fi
roentgen b75cab
	    $ECHO "*** $linklib is not portable!"
roentgen b75cab
	  fi
roentgen b75cab
	  if test "$linkmode" = lib &&
roentgen b75cab
	     test "$hardcode_into_libs" = yes; then
roentgen b75cab
	    # Hardcode the library path.
roentgen b75cab
	    # Skip directories that are in the system default run-time
roentgen b75cab
	    # search path.
roentgen b75cab
	    case " $sys_lib_dlsearch_path " in
roentgen b75cab
	    *" $absdir "*) ;;
roentgen b75cab
	    *)
roentgen b75cab
	      case "$compile_rpath " in
roentgen b75cab
	      *" $absdir "*) ;;
roentgen b75cab
	      *) func_append compile_rpath " $absdir" ;;
roentgen b75cab
	      esac
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	    case " $sys_lib_dlsearch_path " in
roentgen b75cab
	    *" $libdir "*) ;;
roentgen b75cab
	    *)
roentgen b75cab
	      case "$finalize_rpath " in
roentgen b75cab
	      *" $libdir "*) ;;
roentgen b75cab
	      *) func_append finalize_rpath " $libdir" ;;
roentgen b75cab
	      esac
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  if test -n "$old_archive_from_expsyms_cmds"; then
roentgen b75cab
	    # figure out the soname
roentgen b75cab
	    set dummy $library_names
roentgen b75cab
	    shift
roentgen b75cab
	    realname="$1"
roentgen b75cab
	    shift
roentgen b75cab
	    libname=`eval "\\$ECHO \"$libname_spec\""`
roentgen b75cab
	    # use dlname if we got it. it's perfectly good, no?
roentgen b75cab
	    if test -n "$dlname"; then
roentgen b75cab
	      soname="$dlname"
roentgen b75cab
	    elif test -n "$soname_spec"; then
roentgen b75cab
	      # bleh windows
roentgen b75cab
	      case $host in
roentgen b75cab
	      *cygwin* | mingw* | *cegcc*)
roentgen b75cab
	        func_arith $current - $age
roentgen b75cab
		major=$func_arith_result
roentgen b75cab
		versuffix="-$major"
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	      eval soname=\"$soname_spec\"
roentgen b75cab
	    else
roentgen b75cab
	      soname="$realname"
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    # Make a new name for the extract_expsyms_cmds to use
roentgen b75cab
	    soroot="$soname"
roentgen b75cab
	    func_basename "$soroot"
roentgen b75cab
	    soname="$func_basename_result"
roentgen b75cab
	    func_stripname 'lib' '.dll' "$soname"
roentgen b75cab
	    newlib=libimp-$func_stripname_result.a
roentgen b75cab
roentgen b75cab
	    # If the library has no export list, then create one now
roentgen b75cab
	    if test -f "$output_objdir/$soname-def"; then :
roentgen b75cab
	    else
roentgen b75cab
	      func_verbose "extracting exported symbol list from \`$soname'"
roentgen b75cab
	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    # Create $newlib
roentgen b75cab
	    if test -f "$output_objdir/$newlib"; then :; else
roentgen b75cab
	      func_verbose "generating import library for \`$soname'"
roentgen b75cab
	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
roentgen b75cab
	    fi
roentgen b75cab
	    # make sure the library variables are pointing to the new library
roentgen b75cab
	    dir=$output_objdir
roentgen b75cab
	    linklib=$newlib
roentgen b75cab
	  fi # test -n "$old_archive_from_expsyms_cmds"
roentgen b75cab
roentgen b75cab
	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
roentgen b75cab
	    add_shlibpath=
roentgen b75cab
	    add_dir=
roentgen b75cab
	    add=
roentgen b75cab
	    lib_linked=yes
roentgen b75cab
	    case $hardcode_action in
roentgen b75cab
	    immediate | unsupported)
roentgen b75cab
	      if test "$hardcode_direct" = no; then
roentgen b75cab
		add="$dir/$linklib"
roentgen b75cab
		case $host in
roentgen b75cab
		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
roentgen b75cab
		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
roentgen b75cab
		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
roentgen b75cab
		    *-*-unixware7*) add_dir="-L$dir" ;;
roentgen b75cab
		  *-*-darwin* )
roentgen b75cab
		    # if the lib is a (non-dlopened) module then we can not
roentgen b75cab
		    # link against it, someone is ignoring the earlier warnings
roentgen b75cab
		    if /usr/bin/file -L $add 2> /dev/null |
roentgen b75cab
			 $GREP ": [^:]* bundle" >/dev/null ; then
roentgen b75cab
		      if test "X$dlopenmodule" != "X$lib"; then
roentgen b75cab
			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
roentgen b75cab
			if test -z "$old_library" ; then
roentgen b75cab
			  echo
roentgen b75cab
			  echo "*** And there doesn't seem to be a static archive available"
roentgen b75cab
			  echo "*** The link will probably fail, sorry"
roentgen b75cab
			else
roentgen b75cab
			  add="$dir/$old_library"
roentgen b75cab
			fi
roentgen b75cab
		      elif test -n "$old_library"; then
roentgen b75cab
			add="$dir/$old_library"
roentgen b75cab
		      fi
roentgen b75cab
		    fi
roentgen b75cab
		esac
roentgen b75cab
	      elif test "$hardcode_minus_L" = no; then
roentgen b75cab
		case $host in
roentgen b75cab
		*-*-sunos*) add_shlibpath="$dir" ;;
roentgen b75cab
		esac
roentgen b75cab
		add_dir="-L$dir"
roentgen b75cab
		add="-l$name"
roentgen b75cab
	      elif test "$hardcode_shlibpath_var" = no; then
roentgen b75cab
		add_shlibpath="$dir"
roentgen b75cab
		add="-l$name"
roentgen b75cab
	      else
roentgen b75cab
		lib_linked=no
roentgen b75cab
	      fi
roentgen b75cab
	      ;;
roentgen b75cab
	    relink)
roentgen b75cab
	      if test "$hardcode_direct" = yes &&
roentgen b75cab
	         test "$hardcode_direct_absolute" = no; then
roentgen b75cab
		add="$dir/$linklib"
roentgen b75cab
	      elif test "$hardcode_minus_L" = yes; then
roentgen b75cab
		add_dir="-L$absdir"
roentgen b75cab
		# Try looking first in the location we're being installed to.
roentgen b75cab
		if test -n "$inst_prefix_dir"; then
roentgen b75cab
		  case $libdir in
roentgen b75cab
		    [\\/]*)
roentgen b75cab
		      func_append add_dir " -L$inst_prefix_dir$libdir"
roentgen b75cab
		      ;;
roentgen b75cab
		  esac
roentgen b75cab
		fi
roentgen b75cab
		add="-l$name"
roentgen b75cab
	      elif test "$hardcode_shlibpath_var" = yes; then
roentgen b75cab
		add_shlibpath="$dir"
roentgen b75cab
		add="-l$name"
roentgen b75cab
	      else
roentgen b75cab
		lib_linked=no
roentgen b75cab
	      fi
roentgen b75cab
	      ;;
roentgen b75cab
	    *) lib_linked=no ;;
roentgen b75cab
	    esac
roentgen b75cab
roentgen b75cab
	    if test "$lib_linked" != yes; then
roentgen b75cab
	      func_fatal_configuration "unsupported hardcode properties"
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    if test -n "$add_shlibpath"; then
roentgen b75cab
	      case :$compile_shlibpath: in
roentgen b75cab
	      *":$add_shlibpath:"*) ;;
roentgen b75cab
	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
	    if test "$linkmode" = prog; then
roentgen b75cab
	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
roentgen b75cab
	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
roentgen b75cab
	    else
roentgen b75cab
	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
roentgen b75cab
	      test -n "$add" && deplibs="$add $deplibs"
roentgen b75cab
	      if test "$hardcode_direct" != yes &&
roentgen b75cab
		 test "$hardcode_minus_L" != yes &&
roentgen b75cab
		 test "$hardcode_shlibpath_var" = yes; then
roentgen b75cab
		case :$finalize_shlibpath: in
roentgen b75cab
		*":$libdir:"*) ;;
roentgen b75cab
		*) func_append finalize_shlibpath "$libdir:" ;;
roentgen b75cab
		esac
roentgen b75cab
	      fi
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
roentgen b75cab
	    add_shlibpath=
roentgen b75cab
	    add_dir=
roentgen b75cab
	    add=
roentgen b75cab
	    # Finalize command for both is simple: just hardcode it.
roentgen b75cab
	    if test "$hardcode_direct" = yes &&
roentgen b75cab
	       test "$hardcode_direct_absolute" = no; then
roentgen b75cab
	      add="$libdir/$linklib"
roentgen b75cab
	    elif test "$hardcode_minus_L" = yes; then
roentgen b75cab
	      add_dir="-L$libdir"
roentgen b75cab
	      add="-l$name"
roentgen b75cab
	    elif test "$hardcode_shlibpath_var" = yes; then
roentgen b75cab
	      case :$finalize_shlibpath: in
roentgen b75cab
	      *":$libdir:"*) ;;
roentgen b75cab
	      *) func_append finalize_shlibpath "$libdir:" ;;
roentgen b75cab
	      esac
roentgen b75cab
	      add="-l$name"
roentgen b75cab
	    elif test "$hardcode_automatic" = yes; then
roentgen b75cab
	      if test -n "$inst_prefix_dir" &&
roentgen b75cab
		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
roentgen b75cab
		add="$inst_prefix_dir$libdir/$linklib"
roentgen b75cab
	      else
roentgen b75cab
		add="$libdir/$linklib"
roentgen b75cab
	      fi
roentgen b75cab
	    else
roentgen b75cab
	      # We cannot seem to hardcode it, guess we'll fake it.
roentgen b75cab
	      add_dir="-L$libdir"
roentgen b75cab
	      # Try looking first in the location we're being installed to.
roentgen b75cab
	      if test -n "$inst_prefix_dir"; then
roentgen b75cab
		case $libdir in
roentgen b75cab
		  [\\/]*)
roentgen b75cab
		    func_append add_dir " -L$inst_prefix_dir$libdir"
roentgen b75cab
		    ;;
roentgen b75cab
		esac
roentgen b75cab
	      fi
roentgen b75cab
	      add="-l$name"
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    if test "$linkmode" = prog; then
roentgen b75cab
	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
roentgen b75cab
	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
roentgen b75cab
	    else
roentgen b75cab
	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
roentgen b75cab
	      test -n "$add" && deplibs="$add $deplibs"
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	elif test "$linkmode" = prog; then
roentgen b75cab
	  # Here we assume that one of hardcode_direct or hardcode_minus_L
roentgen b75cab
	  # is not unsupported.  This is valid on all known static and
roentgen b75cab
	  # shared platforms.
roentgen b75cab
	  if test "$hardcode_direct" != unsupported; then
roentgen b75cab
	    test -n "$old_library" && linklib="$old_library"
roentgen b75cab
	    compile_deplibs="$dir/$linklib $compile_deplibs"
roentgen b75cab
	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
roentgen b75cab
	  else
roentgen b75cab
	    compile_deplibs="-l$name -L$dir $compile_deplibs"
roentgen b75cab
	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
roentgen b75cab
	  fi
roentgen b75cab
	elif test "$build_libtool_libs" = yes; then
roentgen b75cab
	  # Not a shared library
roentgen b75cab
	  if test "$deplibs_check_method" != pass_all; then
roentgen b75cab
	    # We're trying link a shared library against a static one
roentgen b75cab
	    # but the system doesn't support it.
roentgen b75cab
roentgen b75cab
	    # Just print a warning and add the library to dependency_libs so
roentgen b75cab
	    # that the program can be linked against the static library.
roentgen b75cab
	    echo
roentgen b75cab
	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
roentgen b75cab
	    echo "*** I have the capability to make that library automatically link in when"
roentgen b75cab
	    echo "*** you link to this library.  But I can only do this if you have a"
roentgen b75cab
	    echo "*** shared version of the library, which you do not appear to have."
roentgen b75cab
	    if test "$module" = yes; then
roentgen b75cab
	      echo "*** But as you try to build a module library, libtool will still create "
roentgen b75cab
	      echo "*** a static module, that should work as long as the dlopening application"
roentgen b75cab
	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
roentgen b75cab
	      if test -z "$global_symbol_pipe"; then
roentgen b75cab
		echo
roentgen b75cab
		echo "*** However, this would only work if libtool was able to extract symbol"
roentgen b75cab
		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
roentgen b75cab
		echo "*** not find such a program.  So, this module is probably useless."
roentgen b75cab
		echo "*** \`nm' from GNU binutils and a full rebuild may help."
roentgen b75cab
	      fi
roentgen b75cab
	      if test "$build_old_libs" = no; then
roentgen b75cab
		build_libtool_libs=module
roentgen b75cab
		build_old_libs=yes
roentgen b75cab
	      else
roentgen b75cab
		build_libtool_libs=no
roentgen b75cab
	      fi
roentgen b75cab
	    fi
roentgen b75cab
	  else
roentgen b75cab
	    deplibs="$dir/$old_library $deplibs"
roentgen b75cab
	    link_static=yes
roentgen b75cab
	  fi
roentgen b75cab
	fi # link shared/static library?
roentgen b75cab
roentgen b75cab
	if test "$linkmode" = lib; then
roentgen b75cab
	  if test -n "$dependency_libs" &&
roentgen b75cab
	     { test "$hardcode_into_libs" != yes ||
roentgen b75cab
	       test "$build_old_libs" = yes ||
roentgen b75cab
	       test "$link_static" = yes; }; then
roentgen b75cab
	    # Extract -R from dependency_libs
roentgen b75cab
	    temp_deplibs=
roentgen b75cab
	    for libdir in $dependency_libs; do
roentgen b75cab
	      case $libdir in
roentgen b75cab
	      -R*) func_stripname '-R' '' "$libdir"
roentgen b75cab
	           temp_xrpath=$func_stripname_result
roentgen b75cab
		   case " $xrpath " in
roentgen b75cab
		   *" $temp_xrpath "*) ;;
roentgen b75cab
		   *) func_append xrpath " $temp_xrpath";;
roentgen b75cab
		   esac;;
roentgen b75cab
	      *) func_append temp_deplibs " $libdir";;
roentgen b75cab
	      esac
roentgen b75cab
	    done
roentgen b75cab
	    dependency_libs="$temp_deplibs"
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  func_append newlib_search_path " $absdir"
roentgen b75cab
	  # Link against this library
roentgen b75cab
	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
roentgen b75cab
	  # ... and its dependency_libs
roentgen b75cab
	  tmp_libs=
roentgen b75cab
	  for deplib in $dependency_libs; do
roentgen b75cab
	    newdependency_libs="$deplib $newdependency_libs"
roentgen b75cab
	    case $deplib in
roentgen b75cab
              -L*) func_stripname '-L' '' "$deplib"
roentgen b75cab
                   func_resolve_sysroot "$func_stripname_result";;
roentgen b75cab
              *) func_resolve_sysroot "$deplib" ;;
roentgen b75cab
            esac
roentgen b75cab
	    if $opt_preserve_dup_deps ; then
roentgen b75cab
	      case "$tmp_libs " in
roentgen b75cab
	      *" $func_resolve_sysroot_result "*)
roentgen b75cab
                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
	    func_append tmp_libs " $func_resolve_sysroot_result"
roentgen b75cab
	  done
roentgen b75cab
roentgen b75cab
	  if test "$link_all_deplibs" != no; then
roentgen b75cab
	    # Add the search paths of all dependency libraries
roentgen b75cab
	    for deplib in $dependency_libs; do
roentgen b75cab
	      path=
roentgen b75cab
	      case $deplib in
roentgen b75cab
	      -L*) path="$deplib" ;;
roentgen b75cab
	      *.la)
roentgen b75cab
	        func_resolve_sysroot "$deplib"
roentgen b75cab
	        deplib=$func_resolve_sysroot_result
roentgen b75cab
	        func_dirname "$deplib" "" "."
roentgen b75cab
		dir=$func_dirname_result
roentgen b75cab
		# We need an absolute path.
roentgen b75cab
		case $dir in
roentgen b75cab
		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
roentgen b75cab
		*)
roentgen b75cab
		  absdir=`cd "$dir" && pwd`
roentgen b75cab
		  if test -z "$absdir"; then
roentgen b75cab
		    func_warning "cannot determine absolute directory name of \`$dir'"
roentgen b75cab
		    absdir="$dir"
roentgen b75cab
		  fi
roentgen b75cab
		  ;;
roentgen b75cab
		esac
roentgen b75cab
		if $GREP "^installed=no" $deplib > /dev/null; then
roentgen b75cab
		case $host in
roentgen b75cab
		*-*-darwin*)
roentgen b75cab
		  depdepl=
roentgen b75cab
		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
roentgen b75cab
		  if test -n "$deplibrary_names" ; then
roentgen b75cab
		    for tmp in $deplibrary_names ; do
roentgen b75cab
		      depdepl=$tmp
roentgen b75cab
		    done
roentgen b75cab
		    if test -f "$absdir/$objdir/$depdepl" ; then
roentgen b75cab
		      depdepl="$absdir/$objdir/$depdepl"
roentgen b75cab
		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
roentgen b75cab
                      if test -z "$darwin_install_name"; then
roentgen b75cab
                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
roentgen b75cab
                      fi
roentgen b75cab
		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
roentgen b75cab
		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
roentgen b75cab
		      path=
roentgen b75cab
		    fi
roentgen b75cab
		  fi
roentgen b75cab
		  ;;
roentgen b75cab
		*)
roentgen b75cab
		  path="-L$absdir/$objdir"
roentgen b75cab
		  ;;
roentgen b75cab
		esac
roentgen b75cab
		else
roentgen b75cab
		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
roentgen b75cab
		  test -z "$libdir" && \
roentgen b75cab
		    func_fatal_error "\`$deplib' is not a valid libtool archive"
roentgen b75cab
		  test "$absdir" != "$libdir" && \
roentgen b75cab
		    func_warning "\`$deplib' seems to be moved"
roentgen b75cab
roentgen b75cab
		  path="-L$absdir"
roentgen b75cab
		fi
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	      case " $deplibs " in
roentgen b75cab
	      *" $path "*) ;;
roentgen b75cab
	      *) deplibs="$path $deplibs" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    done
roentgen b75cab
	  fi # link_all_deplibs != no
roentgen b75cab
	fi # linkmode = lib
roentgen b75cab
      done # for deplib in $libs
roentgen b75cab
      if test "$pass" = link; then
roentgen b75cab
	if test "$linkmode" = "prog"; then
roentgen b75cab
	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
roentgen b75cab
	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
roentgen b75cab
	else
roentgen b75cab
	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
roentgen b75cab
	fi
roentgen b75cab
      fi
roentgen b75cab
      dependency_libs="$newdependency_libs"
roentgen b75cab
      if test "$pass" = dlpreopen; then
roentgen b75cab
	# Link the dlpreopened libraries before other libraries
roentgen b75cab
	for deplib in $save_deplibs; do
roentgen b75cab
	  deplibs="$deplib $deplibs"
roentgen b75cab
	done
roentgen b75cab
      fi
roentgen b75cab
      if test "$pass" != dlopen; then
roentgen b75cab
	if test "$pass" != conv; then
roentgen b75cab
	  # Make sure lib_search_path contains only unique directories.
roentgen b75cab
	  lib_search_path=
roentgen b75cab
	  for dir in $newlib_search_path; do
roentgen b75cab
	    case "$lib_search_path " in
roentgen b75cab
	    *" $dir "*) ;;
roentgen b75cab
	    *) func_append lib_search_path " $dir" ;;
roentgen b75cab
	    esac
roentgen b75cab
	  done
roentgen b75cab
	  newlib_search_path=
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	if test "$linkmode,$pass" != "prog,link"; then
roentgen b75cab
	  vars="deplibs"
roentgen b75cab
	else
roentgen b75cab
	  vars="compile_deplibs finalize_deplibs"
roentgen b75cab
	fi
roentgen b75cab
	for var in $vars dependency_libs; do
roentgen b75cab
	  # Add libraries to $var in reverse order
roentgen b75cab
	  eval tmp_libs=\"\$$var\"
roentgen b75cab
	  new_libs=
roentgen b75cab
	  for deplib in $tmp_libs; do
roentgen b75cab
	    # FIXME: Pedantically, this is the right thing to do, so
roentgen b75cab
	    #        that some nasty dependency loop isn't accidentally
roentgen b75cab
	    #        broken:
roentgen b75cab
	    #new_libs="$deplib $new_libs"
roentgen b75cab
	    # Pragmatically, this seems to cause very few problems in
roentgen b75cab
	    # practice:
roentgen b75cab
	    case $deplib in
roentgen b75cab
	    -L*) new_libs="$deplib $new_libs" ;;
roentgen b75cab
	    -R*) ;;
roentgen b75cab
	    *)
roentgen b75cab
	      # And here is the reason: when a library appears more
roentgen b75cab
	      # than once as an explicit dependence of a library, or
roentgen b75cab
	      # is implicitly linked in more than once by the
roentgen b75cab
	      # compiler, it is considered special, and multiple
roentgen b75cab
	      # occurrences thereof are not removed.  Compare this
roentgen b75cab
	      # with having the same library being listed as a
roentgen b75cab
	      # dependency of multiple other libraries: in this case,
roentgen b75cab
	      # we know (pedantically, we assume) the library does not
roentgen b75cab
	      # need to be listed more than once, so we keep only the
roentgen b75cab
	      # last copy.  This is not always right, but it is rare
roentgen b75cab
	      # enough that we require users that really mean to play
roentgen b75cab
	      # such unportable linking tricks to link the library
roentgen b75cab
	      # using -Wl,-lname, so that libtool does not consider it
roentgen b75cab
	      # for duplicate removal.
roentgen b75cab
	      case " $specialdeplibs " in
roentgen b75cab
	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
roentgen b75cab
	      *)
roentgen b75cab
		case " $new_libs " in
roentgen b75cab
		*" $deplib "*) ;;
roentgen b75cab
		*) new_libs="$deplib $new_libs" ;;
roentgen b75cab
		esac
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	  done
roentgen b75cab
	  tmp_libs=
roentgen b75cab
	  for deplib in $new_libs; do
roentgen b75cab
	    case $deplib in
roentgen b75cab
	    -L*)
roentgen b75cab
	      case " $tmp_libs " in
roentgen b75cab
	      *" $deplib "*) ;;
roentgen b75cab
	      *) func_append tmp_libs " $deplib" ;;
roentgen b75cab
	      esac
roentgen b75cab
	      ;;
roentgen b75cab
	    *) func_append tmp_libs " $deplib" ;;
roentgen b75cab
	    esac
roentgen b75cab
	  done
roentgen b75cab
	  eval $var=\"$tmp_libs\"
roentgen b75cab
	done # for var
roentgen b75cab
      fi
roentgen b75cab
      # Last step: remove runtime libs from dependency_libs
roentgen b75cab
      # (they stay in deplibs)
roentgen b75cab
      tmp_libs=
roentgen b75cab
      for i in $dependency_libs ; do
roentgen b75cab
	case " $predeps $postdeps $compiler_lib_search_path " in
roentgen b75cab
	*" $i "*)
roentgen b75cab
	  i=""
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	if test -n "$i" ; then
roentgen b75cab
	  func_append tmp_libs " $i"
roentgen b75cab
	fi
roentgen b75cab
      done
roentgen b75cab
      dependency_libs=$tmp_libs
roentgen b75cab
    done # for pass
roentgen b75cab
    if test "$linkmode" = prog; then
roentgen b75cab
      dlfiles="$newdlfiles"
roentgen b75cab
    fi
roentgen b75cab
    if test "$linkmode" = prog || test "$linkmode" = lib; then
roentgen b75cab
      dlprefiles="$newdlprefiles"
roentgen b75cab
    fi
roentgen b75cab
roentgen b75cab
    case $linkmode in
roentgen b75cab
    oldlib)
roentgen b75cab
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
roentgen b75cab
	func_warning "\`-dlopen' is ignored for archives"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      case " $deplibs" in
roentgen b75cab
      *\ -l* | *\ -L*)
roentgen b75cab
	func_warning "\`-l' and \`-L' are ignored for archives" ;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      test -n "$rpath" && \
roentgen b75cab
	func_warning "\`-rpath' is ignored for archives"
roentgen b75cab
roentgen b75cab
      test -n "$xrpath" && \
roentgen b75cab
	func_warning "\`-R' is ignored for archives"
roentgen b75cab
roentgen b75cab
      test -n "$vinfo" && \
roentgen b75cab
	func_warning "\`-version-info/-version-number' is ignored for archives"
roentgen b75cab
roentgen b75cab
      test -n "$release" && \
roentgen b75cab
	func_warning "\`-release' is ignored for archives"
roentgen b75cab
roentgen b75cab
      test -n "$export_symbols$export_symbols_regex" && \
roentgen b75cab
	func_warning "\`-export-symbols' is ignored for archives"
roentgen b75cab
roentgen b75cab
      # Now set the variables for building old libraries.
roentgen b75cab
      build_libtool_libs=no
roentgen b75cab
      oldlibs="$output"
roentgen b75cab
      func_append objs "$old_deplibs"
roentgen b75cab
      ;;
roentgen b75cab
roentgen b75cab
    lib)
roentgen b75cab
      # Make sure we only generate libraries of the form `libNAME.la'.
roentgen b75cab
      case $outputname in
roentgen b75cab
      lib*)
roentgen b75cab
	func_stripname 'lib' '.la' "$outputname"
roentgen b75cab
	name=$func_stripname_result
roentgen b75cab
	eval shared_ext=\"$shrext_cmds\"
roentgen b75cab
	eval libname=\"$libname_spec\"
roentgen b75cab
	;;
roentgen b75cab
      *)
roentgen b75cab
	test "$module" = no && \
roentgen b75cab
	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
roentgen b75cab
roentgen b75cab
	if test "$need_lib_prefix" != no; then
roentgen b75cab
	  # Add the "lib" prefix for modules if required
roentgen b75cab
	  func_stripname '' '.la' "$outputname"
roentgen b75cab
	  name=$func_stripname_result
roentgen b75cab
	  eval shared_ext=\"$shrext_cmds\"
roentgen b75cab
	  eval libname=\"$libname_spec\"
roentgen b75cab
	else
roentgen b75cab
	  func_stripname '' '.la' "$outputname"
roentgen b75cab
	  libname=$func_stripname_result
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      if test -n "$objs"; then
roentgen b75cab
	if test "$deplibs_check_method" != pass_all; then
roentgen b75cab
	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
roentgen b75cab
	else
roentgen b75cab
	  echo
roentgen b75cab
	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
roentgen b75cab
	  $ECHO "*** objects $objs is not portable!"
roentgen b75cab
	  func_append libobjs " $objs"
roentgen b75cab
	fi
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      test "$dlself" != no && \
roentgen b75cab
	func_warning "\`-dlopen self' is ignored for libtool libraries"
roentgen b75cab
roentgen b75cab
      set dummy $rpath
roentgen b75cab
      shift
roentgen b75cab
      test "$#" -gt 1 && \
roentgen b75cab
	func_warning "ignoring multiple \`-rpath's for a libtool library"
roentgen b75cab
roentgen b75cab
      install_libdir="$1"
roentgen b75cab
roentgen b75cab
      oldlibs=
roentgen b75cab
      if test -z "$rpath"; then
roentgen b75cab
	if test "$build_libtool_libs" = yes; then
roentgen b75cab
	  # Building a libtool convenience library.
roentgen b75cab
	  # Some compilers have problems with a `.al' extension so
roentgen b75cab
	  # convenience libraries should have the same extension an
roentgen b75cab
	  # archive normally would.
roentgen b75cab
	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
roentgen b75cab
	  build_libtool_libs=convenience
roentgen b75cab
	  build_old_libs=yes
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	test -n "$vinfo" && \
roentgen b75cab
	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
roentgen b75cab
roentgen b75cab
	test -n "$release" && \
roentgen b75cab
	  func_warning "\`-release' is ignored for convenience libraries"
roentgen b75cab
      else
roentgen b75cab
roentgen b75cab
	# Parse the version information argument.
roentgen b75cab
	save_ifs="$IFS"; IFS=':'
roentgen b75cab
	set dummy $vinfo 0 0 0
roentgen b75cab
	shift
roentgen b75cab
	IFS="$save_ifs"
roentgen b75cab
roentgen b75cab
	test -n "$7" && \
roentgen b75cab
	  func_fatal_help "too many parameters to \`-version-info'"
roentgen b75cab
roentgen b75cab
	# convert absolute version numbers to libtool ages
roentgen b75cab
	# this retains compatibility with .la files and attempts
roentgen b75cab
	# to make the code below a bit more comprehensible
roentgen b75cab
roentgen b75cab
	case $vinfo_number in
roentgen b75cab
	yes)
roentgen b75cab
	  number_major="$1"
roentgen b75cab
	  number_minor="$2"
roentgen b75cab
	  number_revision="$3"
roentgen b75cab
	  #
roentgen b75cab
	  # There are really only two kinds -- those that
roentgen b75cab
	  # use the current revision as the major version
roentgen b75cab
	  # and those that subtract age and use age as
roentgen b75cab
	  # a minor version.  But, then there is irix
roentgen b75cab
	  # which has an extra 1 added just for fun
roentgen b75cab
	  #
roentgen b75cab
	  case $version_type in
roentgen b75cab
	  # correct linux to gnu/linux during the next big refactor
roentgen b75cab
	  darwin|linux|osf|windows|none)
roentgen b75cab
	    func_arith $number_major + $number_minor
roentgen b75cab
	    current=$func_arith_result
roentgen b75cab
	    age="$number_minor"
roentgen b75cab
	    revision="$number_revision"
roentgen b75cab
	    ;;
roentgen b75cab
	  freebsd-aout|freebsd-elf|qnx|sunos)
roentgen b75cab
	    current="$number_major"
roentgen b75cab
	    revision="$number_minor"
roentgen b75cab
	    age="0"
roentgen b75cab
	    ;;
roentgen b75cab
	  irix|nonstopux)
roentgen b75cab
	    func_arith $number_major + $number_minor
roentgen b75cab
	    current=$func_arith_result
roentgen b75cab
	    age="$number_minor"
roentgen b75cab
	    revision="$number_minor"
roentgen b75cab
	    lt_irix_increment=no
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	no)
roentgen b75cab
	  current="$1"
roentgen b75cab
	  revision="$2"
roentgen b75cab
	  age="$3"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	# Check that each of the things are valid numbers.
roentgen b75cab
	case $current in
roentgen b75cab
	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
roentgen b75cab
	*)
roentgen b75cab
	  func_error "CURRENT \`$current' must be a nonnegative integer"
roentgen b75cab
	  func_fatal_error "\`$vinfo' is not valid version information"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	case $revision in
roentgen b75cab
	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
roentgen b75cab
	*)
roentgen b75cab
	  func_error "REVISION \`$revision' must be a nonnegative integer"
roentgen b75cab
	  func_fatal_error "\`$vinfo' is not valid version information"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	case $age in
roentgen b75cab
	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
roentgen b75cab
	*)
roentgen b75cab
	  func_error "AGE \`$age' must be a nonnegative integer"
roentgen b75cab
	  func_fatal_error "\`$vinfo' is not valid version information"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	if test "$age" -gt "$current"; then
roentgen b75cab
	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
roentgen b75cab
	  func_fatal_error "\`$vinfo' is not valid version information"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Calculate the version variables.
roentgen b75cab
	major=
roentgen b75cab
	versuffix=
roentgen b75cab
	verstring=
roentgen b75cab
	case $version_type in
roentgen b75cab
	none) ;;
roentgen b75cab
roentgen b75cab
	darwin)
roentgen b75cab
	  # Like Linux, but with the current version available in
roentgen b75cab
	  # verstring for coding it into the library header
roentgen b75cab
	  func_arith $current - $age
roentgen b75cab
	  major=.$func_arith_result
roentgen b75cab
	  versuffix="$major.$age.$revision"
roentgen b75cab
	  # Darwin ld doesn't like 0 for these options...
roentgen b75cab
	  func_arith $current + 1
roentgen b75cab
	  minor_current=$func_arith_result
roentgen b75cab
	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
roentgen b75cab
	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	freebsd-aout)
roentgen b75cab
	  major=".$current"
roentgen b75cab
	  versuffix=".$current.$revision";
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	freebsd-elf)
roentgen b75cab
	  major=".$current"
roentgen b75cab
	  versuffix=".$current"
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	irix | nonstopux)
roentgen b75cab
	  if test "X$lt_irix_increment" = "Xno"; then
roentgen b75cab
	    func_arith $current - $age
roentgen b75cab
	  else
roentgen b75cab
	    func_arith $current - $age + 1
roentgen b75cab
	  fi
roentgen b75cab
	  major=$func_arith_result
roentgen b75cab
roentgen b75cab
	  case $version_type in
roentgen b75cab
	    nonstopux) verstring_prefix=nonstopux ;;
roentgen b75cab
	    *)         verstring_prefix=sgi ;;
roentgen b75cab
	  esac
roentgen b75cab
	  verstring="$verstring_prefix$major.$revision"
roentgen b75cab
roentgen b75cab
	  # Add in all the interfaces that we are compatible with.
roentgen b75cab
	  loop=$revision
roentgen b75cab
	  while test "$loop" -ne 0; do
roentgen b75cab
	    func_arith $revision - $loop
roentgen b75cab
	    iface=$func_arith_result
roentgen b75cab
	    func_arith $loop - 1
roentgen b75cab
	    loop=$func_arith_result
roentgen b75cab
	    verstring="$verstring_prefix$major.$iface:$verstring"
roentgen b75cab
	  done
roentgen b75cab
roentgen b75cab
	  # Before this point, $major must not contain `.'.
roentgen b75cab
	  major=.$major
roentgen b75cab
	  versuffix="$major.$revision"
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	linux) # correct to gnu/linux during the next big refactor
roentgen b75cab
	  func_arith $current - $age
roentgen b75cab
	  major=.$func_arith_result
roentgen b75cab
	  versuffix="$major.$age.$revision"
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	osf)
roentgen b75cab
	  func_arith $current - $age
roentgen b75cab
	  major=.$func_arith_result
roentgen b75cab
	  versuffix=".$current.$age.$revision"
roentgen b75cab
	  verstring="$current.$age.$revision"
roentgen b75cab
roentgen b75cab
	  # Add in all the interfaces that we are compatible with.
roentgen b75cab
	  loop=$age
roentgen b75cab
	  while test "$loop" -ne 0; do
roentgen b75cab
	    func_arith $current - $loop
roentgen b75cab
	    iface=$func_arith_result
roentgen b75cab
	    func_arith $loop - 1
roentgen b75cab
	    loop=$func_arith_result
roentgen b75cab
	    verstring="$verstring:${iface}.0"
roentgen b75cab
	  done
roentgen b75cab
roentgen b75cab
	  # Make executables depend on our current version.
roentgen b75cab
	  func_append verstring ":${current}.0"
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	qnx)
roentgen b75cab
	  major=".$current"
roentgen b75cab
	  versuffix=".$current"
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	sunos)
roentgen b75cab
	  major=".$current"
roentgen b75cab
	  versuffix=".$current.$revision"
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	windows)
roentgen b75cab
	  # Use '-' rather than '.', since we only want one
roentgen b75cab
	  # extension on DOS 8.3 filesystems.
roentgen b75cab
	  func_arith $current - $age
roentgen b75cab
	  major=$func_arith_result
roentgen b75cab
	  versuffix="-$major"
roentgen b75cab
	  ;;
roentgen b75cab
roentgen b75cab
	*)
roentgen b75cab
	  func_fatal_configuration "unknown library version type \`$version_type'"
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	# Clear the version info if we defaulted, and they specified a release.
roentgen b75cab
	if test -z "$vinfo" && test -n "$release"; then
roentgen b75cab
	  major=
roentgen b75cab
	  case $version_type in
roentgen b75cab
	  darwin)
roentgen b75cab
	    # we can't check for "0.0" in archive_cmds due to quoting
roentgen b75cab
	    # problems, so we reset it completely
roentgen b75cab
	    verstring=
roentgen b75cab
	    ;;
roentgen b75cab
	  *)
roentgen b75cab
	    verstring="0.0"
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  if test "$need_version" = no; then
roentgen b75cab
	    versuffix=
roentgen b75cab
	  else
roentgen b75cab
	    versuffix=".0.0"
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Remove version info from name if versioning should be avoided
roentgen b75cab
	if test "$avoid_version" = yes && test "$need_version" = no; then
roentgen b75cab
	  major=
roentgen b75cab
	  versuffix=
roentgen b75cab
	  verstring=""
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Check to see if the archive will have undefined symbols.
roentgen b75cab
	if test "$allow_undefined" = yes; then
roentgen b75cab
	  if test "$allow_undefined_flag" = unsupported; then
roentgen b75cab
	    func_warning "undefined symbols not allowed in $host shared libraries"
roentgen b75cab
	    build_libtool_libs=no
roentgen b75cab
	    build_old_libs=yes
roentgen b75cab
	  fi
roentgen b75cab
	else
roentgen b75cab
	  # Don't allow undefined symbols.
roentgen b75cab
	  allow_undefined_flag="$no_undefined_flag"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      func_generate_dlsyms "$libname" "$libname" "yes"
roentgen b75cab
      func_append libobjs " $symfileobj"
roentgen b75cab
      test "X$libobjs" = "X " && libobjs=
roentgen b75cab
roentgen b75cab
      if test "$opt_mode" != relink; then
roentgen b75cab
	# Remove our outputs, but don't remove object files since they
roentgen b75cab
	# may have been created when compiling PIC objects.
roentgen b75cab
	removelist=
roentgen b75cab
	tempremovelist=`$ECHO "$output_objdir/*"`
roentgen b75cab
	for p in $tempremovelist; do
roentgen b75cab
	  case $p in
roentgen b75cab
	    *.$objext | *.gcno)
roentgen b75cab
	       ;;
roentgen b75cab
	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
roentgen b75cab
	       if test "X$precious_files_regex" != "X"; then
roentgen b75cab
		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
roentgen b75cab
		 then
roentgen b75cab
		   continue
roentgen b75cab
		 fi
roentgen b75cab
	       fi
roentgen b75cab
	       func_append removelist " $p"
roentgen b75cab
	       ;;
roentgen b75cab
	    *) ;;
roentgen b75cab
	  esac
roentgen b75cab
	done
roentgen b75cab
	test -n "$removelist" && \
roentgen b75cab
	  func_show_eval "${RM}r \$removelist"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Now set the variables for building old libraries.
roentgen b75cab
      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
roentgen b75cab
	func_append oldlibs " $output_objdir/$libname.$libext"
roentgen b75cab
roentgen b75cab
	# Transform .lo files to .o files.
roentgen b75cab
	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Eliminate all temporary directories.
roentgen b75cab
      #for path in $notinst_path; do
roentgen b75cab
      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
roentgen b75cab
      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
roentgen b75cab
      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
roentgen b75cab
      #done
roentgen b75cab
roentgen b75cab
      if test -n "$xrpath"; then
roentgen b75cab
	# If the user specified any rpath flags, then add them.
roentgen b75cab
	temp_xrpath=
roentgen b75cab
	for libdir in $xrpath; do
roentgen b75cab
	  func_replace_sysroot "$libdir"
roentgen b75cab
	  func_append temp_xrpath " -R$func_replace_sysroot_result"
roentgen b75cab
	  case "$finalize_rpath " in
roentgen b75cab
	  *" $libdir "*) ;;
roentgen b75cab
	  *) func_append finalize_rpath " $libdir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	done
roentgen b75cab
	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
roentgen b75cab
	  dependency_libs="$temp_xrpath $dependency_libs"
roentgen b75cab
	fi
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Make sure dlfiles contains only unique files that won't be dlpreopened
roentgen b75cab
      old_dlfiles="$dlfiles"
roentgen b75cab
      dlfiles=
roentgen b75cab
      for lib in $old_dlfiles; do
roentgen b75cab
	case " $dlprefiles $dlfiles " in
roentgen b75cab
	*" $lib "*) ;;
roentgen b75cab
	*) func_append dlfiles " $lib" ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
roentgen b75cab
      # Make sure dlprefiles contains only unique files
roentgen b75cab
      old_dlprefiles="$dlprefiles"
roentgen b75cab
      dlprefiles=
roentgen b75cab
      for lib in $old_dlprefiles; do
roentgen b75cab
	case "$dlprefiles " in
roentgen b75cab
	*" $lib "*) ;;
roentgen b75cab
	*) func_append dlprefiles " $lib" ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
roentgen b75cab
      if test "$build_libtool_libs" = yes; then
roentgen b75cab
	if test -n "$rpath"; then
roentgen b75cab
	  case $host in
roentgen b75cab
	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
roentgen b75cab
	    # these systems don't actually have a c library (as such)!
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-rhapsody* | *-*-darwin1.[012])
roentgen b75cab
	    # Rhapsody C library is in the System framework
roentgen b75cab
	    func_append deplibs " System.ltframework"
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-netbsd*)
roentgen b75cab
	    # Don't link with libc until the a.out ld.so is fixed.
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
roentgen b75cab
	    # Do not include libc due to us having libc/libc_r.
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-sco3.2v5* | *-*-sco5v6*)
roentgen b75cab
	    # Causes problems with __ctype
roentgen b75cab
	    ;;
roentgen b75cab
	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
roentgen b75cab
	    # Compiler inserts libc in the correct place for threads to work
roentgen b75cab
	    ;;
roentgen b75cab
	  *)
roentgen b75cab
	    # Add libc to deplibs on all other systems if necessary.
roentgen b75cab
	    if test "$build_libtool_need_lc" = "yes"; then
roentgen b75cab
	      func_append deplibs " -lc"
roentgen b75cab
	    fi
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Transform deplibs into only deplibs that can be linked in shared.
roentgen b75cab
	name_save=$name
roentgen b75cab
	libname_save=$libname
roentgen b75cab
	release_save=$release
roentgen b75cab
	versuffix_save=$versuffix
roentgen b75cab
	major_save=$major
roentgen b75cab
	# I'm not sure if I'm treating the release correctly.  I think
roentgen b75cab
	# release should show up in the -l (ie -lgmp5) so we don't want to
roentgen b75cab
	# add it in twice.  Is that correct?
roentgen b75cab
	release=""
roentgen b75cab
	versuffix=""
roentgen b75cab
	major=""
roentgen b75cab
	newdeplibs=
roentgen b75cab
	droppeddeps=no
roentgen b75cab
	case $deplibs_check_method in
roentgen b75cab
	pass_all)
roentgen b75cab
	  # Don't check for shared/static.  Everything works.
roentgen b75cab
	  # This might be a little naive.  We might want to check
roentgen b75cab
	  # whether the library exists or not.  But this is on
roentgen b75cab
	  # osf3 & osf4 and I'm not really sure... Just
roentgen b75cab
	  # implementing what was already the behavior.
roentgen b75cab
	  newdeplibs=$deplibs
roentgen b75cab
	  ;;
roentgen b75cab
	test_compile)
roentgen b75cab
	  # This code stresses the "libraries are programs" paradigm to its
roentgen b75cab
	  # limits. Maybe even breaks it.  We compile a program, linking it
roentgen b75cab
	  # against the deplibs as a proxy for the library.  Then we can check
roentgen b75cab
	  # whether they linked in statically or dynamically with ldd.
roentgen b75cab
	  $opt_dry_run || $RM conftest.c
roentgen b75cab
	  cat > conftest.c <<EOF
roentgen b75cab
	  int main() { return 0; }
roentgen b75cab
EOF
roentgen b75cab
	  $opt_dry_run || $RM conftest
roentgen b75cab
	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
roentgen b75cab
	    ldd_output=`ldd conftest`
roentgen b75cab
	    for i in $deplibs; do
roentgen b75cab
	      case $i in
roentgen b75cab
	      -l*)
roentgen b75cab
		func_stripname -l '' "$i"
roentgen b75cab
		name=$func_stripname_result
roentgen b75cab
		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
roentgen b75cab
		  case " $predeps $postdeps " in
roentgen b75cab
		  *" $i "*)
roentgen b75cab
		    func_append newdeplibs " $i"
roentgen b75cab
		    i=""
roentgen b75cab
		    ;;
roentgen b75cab
		  esac
roentgen b75cab
		fi
roentgen b75cab
		if test -n "$i" ; then
roentgen b75cab
		  libname=`eval "\\$ECHO \"$libname_spec\""`
roentgen b75cab
		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
roentgen b75cab
		  set dummy $deplib_matches; shift
roentgen b75cab
		  deplib_match=$1
roentgen b75cab
		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
roentgen b75cab
		    func_append newdeplibs " $i"
roentgen b75cab
		  else
roentgen b75cab
		    droppeddeps=yes
roentgen b75cab
		    echo
roentgen b75cab
		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
roentgen b75cab
		    echo "*** I have the capability to make that library automatically link in when"
roentgen b75cab
		    echo "*** you link to this library.  But I can only do this if you have a"
roentgen b75cab
		    echo "*** shared version of the library, which I believe you do not have"
roentgen b75cab
		    echo "*** because a test_compile did reveal that the linker did not use it for"
roentgen b75cab
		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
roentgen b75cab
		  fi
roentgen b75cab
		fi
roentgen b75cab
		;;
roentgen b75cab
	      *)
roentgen b75cab
		func_append newdeplibs " $i"
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	    done
roentgen b75cab
	  else
roentgen b75cab
	    # Error occurred in the first compile.  Let's try to salvage
roentgen b75cab
	    # the situation: Compile a separate program for each library.
roentgen b75cab
	    for i in $deplibs; do
roentgen b75cab
	      case $i in
roentgen b75cab
	      -l*)
roentgen b75cab
		func_stripname -l '' "$i"
roentgen b75cab
		name=$func_stripname_result
roentgen b75cab
		$opt_dry_run || $RM conftest
roentgen b75cab
		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
roentgen b75cab
		  ldd_output=`ldd conftest`
roentgen b75cab
		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
roentgen b75cab
		    case " $predeps $postdeps " in
roentgen b75cab
		    *" $i "*)
roentgen b75cab
		      func_append newdeplibs " $i"
roentgen b75cab
		      i=""
roentgen b75cab
		      ;;
roentgen b75cab
		    esac
roentgen b75cab
		  fi
roentgen b75cab
		  if test -n "$i" ; then
roentgen b75cab
		    libname=`eval "\\$ECHO \"$libname_spec\""`
roentgen b75cab
		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
roentgen b75cab
		    set dummy $deplib_matches; shift
roentgen b75cab
		    deplib_match=$1
roentgen b75cab
		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
roentgen b75cab
		      func_append newdeplibs " $i"
roentgen b75cab
		    else
roentgen b75cab
		      droppeddeps=yes
roentgen b75cab
		      echo
roentgen b75cab
		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
roentgen b75cab
		      echo "*** I have the capability to make that library automatically link in when"
roentgen b75cab
		      echo "*** you link to this library.  But I can only do this if you have a"
roentgen b75cab
		      echo "*** shared version of the library, which you do not appear to have"
roentgen b75cab
		      echo "*** because a test_compile did reveal that the linker did not use this one"
roentgen b75cab
		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
roentgen b75cab
		    fi
roentgen b75cab
		  fi
roentgen b75cab
		else
roentgen b75cab
		  droppeddeps=yes
roentgen b75cab
		  echo
roentgen b75cab
		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
roentgen b75cab
		  echo "*** make it link in!  You will probably need to install it or some"
roentgen b75cab
		  echo "*** library that it depends on before this library will be fully"
roentgen b75cab
		  echo "*** functional.  Installing it before continuing would be even better."
roentgen b75cab
		fi
roentgen b75cab
		;;
roentgen b75cab
	      *)
roentgen b75cab
		func_append newdeplibs " $i"
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	    done
roentgen b75cab
	  fi
roentgen b75cab
	  ;;
roentgen b75cab
	file_magic*)
roentgen b75cab
	  set dummy $deplibs_check_method; shift
roentgen b75cab
	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
roentgen b75cab
	  for a_deplib in $deplibs; do
roentgen b75cab
	    case $a_deplib in
roentgen b75cab
	    -l*)
roentgen b75cab
	      func_stripname -l '' "$a_deplib"
roentgen b75cab
	      name=$func_stripname_result
roentgen b75cab
	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
roentgen b75cab
		case " $predeps $postdeps " in
roentgen b75cab
		*" $a_deplib "*)
roentgen b75cab
		  func_append newdeplibs " $a_deplib"
roentgen b75cab
		  a_deplib=""
roentgen b75cab
		  ;;
roentgen b75cab
		esac
roentgen b75cab
	      fi
roentgen b75cab
	      if test -n "$a_deplib" ; then
roentgen b75cab
		libname=`eval "\\$ECHO \"$libname_spec\""`
roentgen b75cab
		if test -n "$file_magic_glob"; then
roentgen b75cab
		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
roentgen b75cab
		else
roentgen b75cab
		  libnameglob=$libname
roentgen b75cab
		fi
roentgen b75cab
		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
roentgen b75cab
		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
roentgen b75cab
		  if test "$want_nocaseglob" = yes; then
roentgen b75cab
		    shopt -s nocaseglob
roentgen b75cab
		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
roentgen b75cab
		    $nocaseglob
roentgen b75cab
		  else
roentgen b75cab
		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
roentgen b75cab
		  fi
roentgen b75cab
		  for potent_lib in $potential_libs; do
roentgen b75cab
		      # Follow soft links.
roentgen b75cab
		      if ls -lLd "$potent_lib" 2>/dev/null |
roentgen b75cab
			 $GREP " -> " >/dev/null; then
roentgen b75cab
			continue
roentgen b75cab
		      fi
roentgen b75cab
		      # The statement above tries to avoid entering an
roentgen b75cab
		      # endless loop below, in case of cyclic links.
roentgen b75cab
		      # We might still enter an endless loop, since a link
roentgen b75cab
		      # loop can be closed while we follow links,
roentgen b75cab
		      # but so what?
roentgen b75cab
		      potlib="$potent_lib"
roentgen b75cab
		      while test -h "$potlib" 2>/dev/null; do
roentgen b75cab
			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
roentgen b75cab
			case $potliblink in
roentgen b75cab
			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
roentgen b75cab
			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
roentgen b75cab
			esac
roentgen b75cab
		      done
roentgen b75cab
		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
roentgen b75cab
			 $SED -e 10q |
roentgen b75cab
			 $EGREP "$file_magic_regex" > /dev/null; then
roentgen b75cab
			func_append newdeplibs " $a_deplib"
roentgen b75cab
			a_deplib=""
roentgen b75cab
			break 2
roentgen b75cab
		      fi
roentgen b75cab
		  done
roentgen b75cab
		done
roentgen b75cab
	      fi
roentgen b75cab
	      if test -n "$a_deplib" ; then
roentgen b75cab
		droppeddeps=yes
roentgen b75cab
		echo
roentgen b75cab
		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
roentgen b75cab
		echo "*** I have the capability to make that library automatically link in when"
roentgen b75cab
		echo "*** you link to this library.  But I can only do this if you have a"
roentgen b75cab
		echo "*** shared version of the library, which you do not appear to have"
roentgen b75cab
		echo "*** because I did check the linker path looking for a file starting"
roentgen b75cab
		if test -z "$potlib" ; then
roentgen b75cab
		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
roentgen b75cab
		else
roentgen b75cab
		  $ECHO "*** with $libname and none of the candidates passed a file format test"
roentgen b75cab
		  $ECHO "*** using a file magic. Last file checked: $potlib"
roentgen b75cab
		fi
roentgen b75cab
	      fi
roentgen b75cab
	      ;;
roentgen b75cab
	    *)
roentgen b75cab
	      # Add a -L argument.
roentgen b75cab
	      func_append newdeplibs " $a_deplib"
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	  done # Gone through all deplibs.
roentgen b75cab
	  ;;
roentgen b75cab
	match_pattern*)
roentgen b75cab
	  set dummy $deplibs_check_method; shift
roentgen b75cab
	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
roentgen b75cab
	  for a_deplib in $deplibs; do
roentgen b75cab
	    case $a_deplib in
roentgen b75cab
	    -l*)
roentgen b75cab
	      func_stripname -l '' "$a_deplib"
roentgen b75cab
	      name=$func_stripname_result
roentgen b75cab
	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
roentgen b75cab
		case " $predeps $postdeps " in
roentgen b75cab
		*" $a_deplib "*)
roentgen b75cab
		  func_append newdeplibs " $a_deplib"
roentgen b75cab
		  a_deplib=""
roentgen b75cab
		  ;;
roentgen b75cab
		esac
roentgen b75cab
	      fi
roentgen b75cab
	      if test -n "$a_deplib" ; then
roentgen b75cab
		libname=`eval "\\$ECHO \"$libname_spec\""`
roentgen b75cab
		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
roentgen b75cab
		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
roentgen b75cab
		  for potent_lib in $potential_libs; do
roentgen b75cab
		    potlib="$potent_lib" # see symlink-check above in file_magic test
roentgen b75cab
		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
roentgen b75cab
		       $EGREP "$match_pattern_regex" > /dev/null; then
roentgen b75cab
		      func_append newdeplibs " $a_deplib"
roentgen b75cab
		      a_deplib=""
roentgen b75cab
		      break 2
roentgen b75cab
		    fi
roentgen b75cab
		  done
roentgen b75cab
		done
roentgen b75cab
	      fi
roentgen b75cab
	      if test -n "$a_deplib" ; then
roentgen b75cab
		droppeddeps=yes
roentgen b75cab
		echo
roentgen b75cab
		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
roentgen b75cab
		echo "*** I have the capability to make that library automatically link in when"
roentgen b75cab
		echo "*** you link to this library.  But I can only do this if you have a"
roentgen b75cab
		echo "*** shared version of the library, which you do not appear to have"
roentgen b75cab
		echo "*** because I did check the linker path looking for a file starting"
roentgen b75cab
		if test -z "$potlib" ; then
roentgen b75cab
		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
roentgen b75cab
		else
roentgen b75cab
		  $ECHO "*** with $libname and none of the candidates passed a file format test"
roentgen b75cab
		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
roentgen b75cab
		fi
roentgen b75cab
	      fi
roentgen b75cab
	      ;;
roentgen b75cab
	    *)
roentgen b75cab
	      # Add a -L argument.
roentgen b75cab
	      func_append newdeplibs " $a_deplib"
roentgen b75cab
	      ;;
roentgen b75cab
	    esac
roentgen b75cab
	  done # Gone through all deplibs.
roentgen b75cab
	  ;;
roentgen b75cab
	none | unknown | *)
roentgen b75cab
	  newdeplibs=""
roentgen b75cab
	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
roentgen b75cab
	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
roentgen b75cab
	    for i in $predeps $postdeps ; do
roentgen b75cab
	      # can't use Xsed below, because $i might contain '/'
roentgen b75cab
	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
roentgen b75cab
	    done
roentgen b75cab
	  fi
roentgen b75cab
	  case $tmp_deplibs in
roentgen b75cab
	  *[!\	\ ]*)
roentgen b75cab
	    echo
roentgen b75cab
	    if test "X$deplibs_check_method" = "Xnone"; then
roentgen b75cab
	      echo "*** Warning: inter-library dependencies are not supported in this platform."
roentgen b75cab
	    else
roentgen b75cab
	      echo "*** Warning: inter-library dependencies are not known to be supported."
roentgen b75cab
	    fi
roentgen b75cab
	    echo "*** All declared inter-library dependencies are being dropped."
roentgen b75cab
	    droppeddeps=yes
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
	versuffix=$versuffix_save
roentgen b75cab
	major=$major_save
roentgen b75cab
	release=$release_save
roentgen b75cab
	libname=$libname_save
roentgen b75cab
	name=$name_save
roentgen b75cab
roentgen b75cab
	case $host in
roentgen b75cab
	*-*-rhapsody* | *-*-darwin1.[012])
roentgen b75cab
	  # On Rhapsody replace the C library with the System framework
roentgen b75cab
	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	if test "$droppeddeps" = yes; then
roentgen b75cab
	  if test "$module" = yes; then
roentgen b75cab
	    echo
roentgen b75cab
	    echo "*** Warning: libtool could not satisfy all declared inter-library"
roentgen b75cab
	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
roentgen b75cab
	    echo "*** a static module, that should work as long as the dlopening"
roentgen b75cab
	    echo "*** application is linked with the -dlopen flag."
roentgen b75cab
	    if test -z "$global_symbol_pipe"; then
roentgen b75cab
	      echo
roentgen b75cab
	      echo "*** However, this would only work if libtool was able to extract symbol"
roentgen b75cab
	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
roentgen b75cab
	      echo "*** not find such a program.  So, this module is probably useless."
roentgen b75cab
	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
roentgen b75cab
	    fi
roentgen b75cab
	    if test "$build_old_libs" = no; then
roentgen b75cab
	      oldlibs="$output_objdir/$libname.$libext"
roentgen b75cab
	      build_libtool_libs=module
roentgen b75cab
	      build_old_libs=yes
roentgen b75cab
	    else
roentgen b75cab
	      build_libtool_libs=no
roentgen b75cab
	    fi
roentgen b75cab
	  else
roentgen b75cab
	    echo "*** The inter-library dependencies that have been dropped here will be"
roentgen b75cab
	    echo "*** automatically added whenever a program is linked with this library"
roentgen b75cab
	    echo "*** or is declared to -dlopen it."
roentgen b75cab
roentgen b75cab
	    if test "$allow_undefined" = no; then
roentgen b75cab
	      echo
roentgen b75cab
	      echo "*** Since this library must not contain undefined symbols,"
roentgen b75cab
	      echo "*** because either the platform does not support them or"
roentgen b75cab
	      echo "*** it was explicitly requested with -no-undefined,"
roentgen b75cab
	      echo "*** libtool will only create a static version of it."
roentgen b75cab
	      if test "$build_old_libs" = no; then
roentgen b75cab
		oldlibs="$output_objdir/$libname.$libext"
roentgen b75cab
		build_libtool_libs=module
roentgen b75cab
		build_old_libs=yes
roentgen b75cab
	      else
roentgen b75cab
		build_libtool_libs=no
roentgen b75cab
	      fi
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
	# Done checking deplibs!
roentgen b75cab
	deplibs=$newdeplibs
roentgen b75cab
      fi
roentgen b75cab
      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
roentgen b75cab
      case $host in
roentgen b75cab
	*-*-darwin*)
roentgen b75cab
	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
roentgen b75cab
	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
roentgen b75cab
	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
roentgen b75cab
	  ;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      # move library search paths that coincide with paths to not yet
roentgen b75cab
      # installed libraries to the beginning of the library search list
roentgen b75cab
      new_libs=
roentgen b75cab
      for path in $notinst_path; do
roentgen b75cab
	case " $new_libs " in
roentgen b75cab
	*" -L$path/$objdir "*) ;;
roentgen b75cab
	*)
roentgen b75cab
	  case " $deplibs " in
roentgen b75cab
	  *" -L$path/$objdir "*)
roentgen b75cab
	    func_append new_libs " -L$path/$objdir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
      for deplib in $deplibs; do
roentgen b75cab
	case $deplib in
roentgen b75cab
	-L*)
roentgen b75cab
	  case " $new_libs " in
roentgen b75cab
	  *" $deplib "*) ;;
roentgen b75cab
	  *) func_append new_libs " $deplib" ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	*) func_append new_libs " $deplib" ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
      deplibs="$new_libs"
roentgen b75cab
roentgen b75cab
      # All the library-specific variables (install_libdir is set above).
roentgen b75cab
      library_names=
roentgen b75cab
      old_library=
roentgen b75cab
      dlname=
roentgen b75cab
roentgen b75cab
      # Test again, we may have decided not to build it any more
roentgen b75cab
      if test "$build_libtool_libs" = yes; then
roentgen b75cab
	# Remove ${wl} instances when linking with ld.
roentgen b75cab
	# FIXME: should test the right _cmds variable.
roentgen b75cab
	case $archive_cmds in
roentgen b75cab
	  *\$LD\ *) wl= ;;
roentgen b75cab
        esac
roentgen b75cab
	if test "$hardcode_into_libs" = yes; then
roentgen b75cab
	  # Hardcode the library paths
roentgen b75cab
	  hardcode_libdirs=
roentgen b75cab
	  dep_rpath=
roentgen b75cab
	  rpath="$finalize_rpath"
roentgen b75cab
	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
roentgen b75cab
	  for libdir in $rpath; do
roentgen b75cab
	    if test -n "$hardcode_libdir_flag_spec"; then
roentgen b75cab
	      if test -n "$hardcode_libdir_separator"; then
roentgen b75cab
		func_replace_sysroot "$libdir"
roentgen b75cab
		libdir=$func_replace_sysroot_result
roentgen b75cab
		if test -z "$hardcode_libdirs"; then
roentgen b75cab
		  hardcode_libdirs="$libdir"
roentgen b75cab
		else
roentgen b75cab
		  # Just accumulate the unique libdirs.
roentgen b75cab
		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
roentgen b75cab
		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
roentgen b75cab
		    ;;
roentgen b75cab
		  *)
roentgen b75cab
		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
roentgen b75cab
		    ;;
roentgen b75cab
		  esac
roentgen b75cab
		fi
roentgen b75cab
	      else
roentgen b75cab
		eval flag=\"$hardcode_libdir_flag_spec\"
roentgen b75cab
		func_append dep_rpath " $flag"
roentgen b75cab
	      fi
roentgen b75cab
	    elif test -n "$runpath_var"; then
roentgen b75cab
	      case "$perm_rpath " in
roentgen b75cab
	      *" $libdir "*) ;;
roentgen b75cab
	      *) func_append perm_rpath " $libdir" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
	  done
roentgen b75cab
	  # Substitute the hardcoded libdirs into the rpath.
roentgen b75cab
	  if test -n "$hardcode_libdir_separator" &&
roentgen b75cab
	     test -n "$hardcode_libdirs"; then
roentgen b75cab
	    libdir="$hardcode_libdirs"
roentgen b75cab
	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
roentgen b75cab
	  fi
roentgen b75cab
	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
roentgen b75cab
	    # We should set the runpath_var.
roentgen b75cab
	    rpath=
roentgen b75cab
	    for dir in $perm_rpath; do
roentgen b75cab
	      func_append rpath "$dir:"
roentgen b75cab
	    done
roentgen b75cab
	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
roentgen b75cab
	  fi
roentgen b75cab
	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	shlibpath="$finalize_shlibpath"
roentgen b75cab
	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
roentgen b75cab
	if test -n "$shlibpath"; then
roentgen b75cab
	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Get the real and link names of the library.
roentgen b75cab
	eval shared_ext=\"$shrext_cmds\"
roentgen b75cab
	eval library_names=\"$library_names_spec\"
roentgen b75cab
	set dummy $library_names
roentgen b75cab
	shift
roentgen b75cab
	realname="$1"
roentgen b75cab
	shift
roentgen b75cab
roentgen b75cab
	if test -n "$soname_spec"; then
roentgen b75cab
	  eval soname=\"$soname_spec\"
roentgen b75cab
	else
roentgen b75cab
	  soname="$realname"
roentgen b75cab
	fi
roentgen b75cab
	if test -z "$dlname"; then
roentgen b75cab
	  dlname=$soname
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	lib="$output_objdir/$realname"
roentgen b75cab
	linknames=
roentgen b75cab
	for link
roentgen b75cab
	do
roentgen b75cab
	  func_append linknames " $link"
roentgen b75cab
	done
roentgen b75cab
roentgen b75cab
	# Use standard objects if they are pic
roentgen b75cab
	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
roentgen b75cab
	test "X$libobjs" = "X " && libobjs=
roentgen b75cab
roentgen b75cab
	delfiles=
roentgen b75cab
	if test -n "$export_symbols" && test -n "$include_expsyms"; then
roentgen b75cab
	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
roentgen b75cab
	  export_symbols="$output_objdir/$libname.uexp"
roentgen b75cab
	  func_append delfiles " $export_symbols"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	orig_export_symbols=
roentgen b75cab
	case $host_os in
roentgen b75cab
	cygwin* | mingw* | cegcc*)
roentgen b75cab
	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
roentgen b75cab
	    # exporting using user supplied symfile
roentgen b75cab
	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
roentgen b75cab
	      # and it's NOT already a .def file. Must figure out
roentgen b75cab
	      # which of the given symbols are data symbols and tag
roentgen b75cab
	      # them as such. So, trigger use of export_symbols_cmds.
roentgen b75cab
	      # export_symbols gets reassigned inside the "prepare
roentgen b75cab
	      # the list of exported symbols" if statement, so the
roentgen b75cab
	      # include_expsyms logic still works.
roentgen b75cab
	      orig_export_symbols="$export_symbols"
roentgen b75cab
	      export_symbols=
roentgen b75cab
	      always_export_symbols=yes
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
roentgen b75cab
	# Prepare the list of exported symbols
roentgen b75cab
	if test -z "$export_symbols"; then
roentgen b75cab
	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
roentgen b75cab
	    func_verbose "generating symbol list for \`$libname.la'"
roentgen b75cab
	    export_symbols="$output_objdir/$libname.exp"
roentgen b75cab
	    $opt_dry_run || $RM $export_symbols
roentgen b75cab
	    cmds=$export_symbols_cmds
roentgen b75cab
	    save_ifs="$IFS"; IFS='~'
roentgen b75cab
	    for cmd1 in $cmds; do
roentgen b75cab
	      IFS="$save_ifs"
roentgen b75cab
	      # Take the normal branch if the nm_file_list_spec branch
roentgen b75cab
	      # doesn't work or if tool conversion is not needed.
roentgen b75cab
	      case $nm_file_list_spec~$to_tool_file_cmd in
roentgen b75cab
		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
roentgen b75cab
		  try_normal_branch=yes
roentgen b75cab
		  eval cmd=\"$cmd1\"
roentgen b75cab
		  func_len " $cmd"
roentgen b75cab
		  len=$func_len_result
roentgen b75cab
		  ;;
roentgen b75cab
		*)
roentgen b75cab
		  try_normal_branch=no
roentgen b75cab
		  ;;
roentgen b75cab
	      esac
roentgen b75cab
	      if test "$try_normal_branch" = yes \
roentgen b75cab
		 && { test "$len" -lt "$max_cmd_len" \
roentgen b75cab
		      || test "$max_cmd_len" -le -1; }
roentgen b75cab
	      then
roentgen b75cab
		func_show_eval "$cmd" 'exit $?'
roentgen b75cab
		skipped_export=false
roentgen b75cab
	      elif test -n "$nm_file_list_spec"; then
roentgen b75cab
		func_basename "$output"
roentgen b75cab
		output_la=$func_basename_result
roentgen b75cab
		save_libobjs=$libobjs
roentgen b75cab
		save_output=$output
roentgen b75cab
		output=${output_objdir}/${output_la}.nm
roentgen b75cab
		func_to_tool_file "$output"
roentgen b75cab
		libobjs=$nm_file_list_spec$func_to_tool_file_result
roentgen b75cab
		func_append delfiles " $output"
roentgen b75cab
		func_verbose "creating $NM input file list: $output"
roentgen b75cab
		for obj in $save_libobjs; do
roentgen b75cab
		  func_to_tool_file "$obj"
roentgen b75cab
		  $ECHO "$func_to_tool_file_result"
roentgen b75cab
		done > "$output"
roentgen b75cab
		eval cmd=\"$cmd1\"
roentgen b75cab
		func_show_eval "$cmd" 'exit $?'
roentgen b75cab
		output=$save_output
roentgen b75cab
		libobjs=$save_libobjs
roentgen b75cab
		skipped_export=false
roentgen b75cab
	      else
roentgen b75cab
		# The command line is too long to execute in one step.
roentgen b75cab
		func_verbose "using reloadable object file for export list..."
roentgen b75cab
		skipped_export=:
roentgen b75cab
		# Break out early, otherwise skipped_export may be
roentgen b75cab
		# set to false by a later but shorter cmd.
roentgen b75cab
		break
roentgen b75cab
	      fi
roentgen b75cab
	    done
roentgen b75cab
	    IFS="$save_ifs"
roentgen b75cab
	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
roentgen b75cab
	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
roentgen b75cab
	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	if test -n "$export_symbols" && test -n "$include_expsyms"; then
roentgen b75cab
	  tmp_export_symbols="$export_symbols"
roentgen b75cab
	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
roentgen b75cab
	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
roentgen b75cab
	  # The given exports_symbols file has to be filtered, so filter it.
roentgen b75cab
	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
roentgen b75cab
	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
roentgen b75cab
	  # 's' commands which not all seds can handle. GNU sed should be fine
roentgen b75cab
	  # though. Also, the filter scales superlinearly with the number of
roentgen b75cab
	  # global variables. join(1) would be nice here, but unfortunately
roentgen b75cab
	  # isn't a blessed tool.
roentgen b75cab
	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
roentgen b75cab
	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
roentgen b75cab
	  export_symbols=$output_objdir/$libname.def
roentgen b75cab
	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	tmp_deplibs=
roentgen b75cab
	for test_deplib in $deplibs; do
roentgen b75cab
	  case " $convenience " in
roentgen b75cab
	  *" $test_deplib "*) ;;
roentgen b75cab
	  *)
roentgen b75cab
	    func_append tmp_deplibs " $test_deplib"
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	done
roentgen b75cab
	deplibs="$tmp_deplibs"
roentgen b75cab
roentgen b75cab
	if test -n "$convenience"; then
roentgen b75cab
	  if test -n "$whole_archive_flag_spec" &&
roentgen b75cab
	    test "$compiler_needs_object" = yes &&
roentgen b75cab
	    test -z "$libobjs"; then
roentgen b75cab
	    # extract the archives, so we have objects to list.
roentgen b75cab
	    # TODO: could optimize this to just extract one archive.
roentgen b75cab
	    whole_archive_flag_spec=
roentgen b75cab
	  fi
roentgen b75cab
	  if test -n "$whole_archive_flag_spec"; then
roentgen b75cab
	    save_libobjs=$libobjs
roentgen b75cab
	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
roentgen b75cab
	    test "X$libobjs" = "X " && libobjs=
roentgen b75cab
	  else
roentgen b75cab
	    gentop="$output_objdir/${outputname}x"
roentgen b75cab
	    func_append generated " $gentop"
roentgen b75cab
roentgen b75cab
	    func_extract_archives $gentop $convenience
roentgen b75cab
	    func_append libobjs " $func_extract_archives_result"
roentgen b75cab
	    test "X$libobjs" = "X " && libobjs=
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
roentgen b75cab
	  eval flag=\"$thread_safe_flag_spec\"
roentgen b75cab
	  func_append linker_flags " $flag"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Make a backup of the uninstalled library when relinking
roentgen b75cab
	if test "$opt_mode" = relink; then
roentgen b75cab
	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Do each of the archive commands.
roentgen b75cab
	if test "$module" = yes && test -n "$module_cmds" ; then
roentgen b75cab
	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
roentgen b75cab
	    eval test_cmds=\"$module_expsym_cmds\"
roentgen b75cab
	    cmds=$module_expsym_cmds
roentgen b75cab
	  else
roentgen b75cab
	    eval test_cmds=\"$module_cmds\"
roentgen b75cab
	    cmds=$module_cmds
roentgen b75cab
	  fi
roentgen b75cab
	else
roentgen b75cab
	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
roentgen b75cab
	    eval test_cmds=\"$archive_expsym_cmds\"
roentgen b75cab
	    cmds=$archive_expsym_cmds
roentgen b75cab
	  else
roentgen b75cab
	    eval test_cmds=\"$archive_cmds\"
roentgen b75cab
	    cmds=$archive_cmds
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	if test "X$skipped_export" != "X:" &&
roentgen b75cab
	   func_len " $test_cmds" &&
roentgen b75cab
	   len=$func_len_result &&
roentgen b75cab
	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
roentgen b75cab
	  :
roentgen b75cab
	else
roentgen b75cab
	  # The command line is too long to link in one step, link piecewise
roentgen b75cab
	  # or, if using GNU ld and skipped_export is not :, use a linker
roentgen b75cab
	  # script.
roentgen b75cab
roentgen b75cab
	  # Save the value of $output and $libobjs because we want to
roentgen b75cab
	  # use them later.  If we have whole_archive_flag_spec, we
roentgen b75cab
	  # want to use save_libobjs as it was before
roentgen b75cab
	  # whole_archive_flag_spec was expanded, because we can't
roentgen b75cab
	  # assume the linker understands whole_archive_flag_spec.
roentgen b75cab
	  # This may have to be revisited, in case too many
roentgen b75cab
	  # convenience libraries get linked in and end up exceeding
roentgen b75cab
	  # the spec.
roentgen b75cab
	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
roentgen b75cab
	    save_libobjs=$libobjs
roentgen b75cab
	  fi
roentgen b75cab
	  save_output=$output
roentgen b75cab
	  func_basename "$output"
roentgen b75cab
	  output_la=$func_basename_result
roentgen b75cab
roentgen b75cab
	  # Clear the reloadable object creation command queue and
roentgen b75cab
	  # initialize k to one.
roentgen b75cab
	  test_cmds=
roentgen b75cab
	  concat_cmds=
roentgen b75cab
	  objlist=
roentgen b75cab
	  last_robj=
roentgen b75cab
	  k=1
roentgen b75cab
roentgen b75cab
	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
roentgen b75cab
	    output=${output_objdir}/${output_la}.lnkscript
roentgen b75cab
	    func_verbose "creating GNU ld script: $output"
roentgen b75cab
	    echo 'INPUT (' > $output
roentgen b75cab
	    for obj in $save_libobjs
roentgen b75cab
	    do
roentgen b75cab
	      func_to_tool_file "$obj"
roentgen b75cab
	      $ECHO "$func_to_tool_file_result" >> $output
roentgen b75cab
	    done
roentgen b75cab
	    echo ')' >> $output
roentgen b75cab
	    func_append delfiles " $output"
roentgen b75cab
	    func_to_tool_file "$output"
roentgen b75cab
	    output=$func_to_tool_file_result
roentgen b75cab
	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
roentgen b75cab
	    output=${output_objdir}/${output_la}.lnk
roentgen b75cab
	    func_verbose "creating linker input file list: $output"
roentgen b75cab
	    : > $output
roentgen b75cab
	    set x $save_libobjs
roentgen b75cab
	    shift
roentgen b75cab
	    firstobj=
roentgen b75cab
	    if test "$compiler_needs_object" = yes; then
roentgen b75cab
	      firstobj="$1 "
roentgen b75cab
	      shift
roentgen b75cab
	    fi
roentgen b75cab
	    for obj
roentgen b75cab
	    do
roentgen b75cab
	      func_to_tool_file "$obj"
roentgen b75cab
	      $ECHO "$func_to_tool_file_result" >> $output
roentgen b75cab
	    done
roentgen b75cab
	    func_append delfiles " $output"
roentgen b75cab
	    func_to_tool_file "$output"
roentgen b75cab
	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
roentgen b75cab
	  else
roentgen b75cab
	    if test -n "$save_libobjs"; then
roentgen b75cab
	      func_verbose "creating reloadable object files..."
roentgen b75cab
	      output=$output_objdir/$output_la-${k}.$objext
roentgen b75cab
	      eval test_cmds=\"$reload_cmds\"
roentgen b75cab
	      func_len " $test_cmds"
roentgen b75cab
	      len0=$func_len_result
roentgen b75cab
	      len=$len0
roentgen b75cab
roentgen b75cab
	      # Loop over the list of objects to be linked.
roentgen b75cab
	      for obj in $save_libobjs
roentgen b75cab
	      do
roentgen b75cab
		func_len " $obj"
roentgen b75cab
		func_arith $len + $func_len_result
roentgen b75cab
		len=$func_arith_result
roentgen b75cab
		if test "X$objlist" = X ||
roentgen b75cab
		   test "$len" -lt "$max_cmd_len"; then
roentgen b75cab
		  func_append objlist " $obj"
roentgen b75cab
		else
roentgen b75cab
		  # The command $test_cmds is almost too long, add a
roentgen b75cab
		  # command to the queue.
roentgen b75cab
		  if test "$k" -eq 1 ; then
roentgen b75cab
		    # The first file doesn't have a previous command to add.
roentgen b75cab
		    reload_objs=$objlist
roentgen b75cab
		    eval concat_cmds=\"$reload_cmds\"
roentgen b75cab
		  else
roentgen b75cab
		    # All subsequent reloadable object files will link in
roentgen b75cab
		    # the last one created.
roentgen b75cab
		    reload_objs="$objlist $last_robj"
roentgen b75cab
		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
roentgen b75cab
		  fi
roentgen b75cab
		  last_robj=$output_objdir/$output_la-${k}.$objext
roentgen b75cab
		  func_arith $k + 1
roentgen b75cab
		  k=$func_arith_result
roentgen b75cab
		  output=$output_objdir/$output_la-${k}.$objext
roentgen b75cab
		  objlist=" $obj"
roentgen b75cab
		  func_len " $last_robj"
roentgen b75cab
		  func_arith $len0 + $func_len_result
roentgen b75cab
		  len=$func_arith_result
roentgen b75cab
		fi
roentgen b75cab
	      done
roentgen b75cab
	      # Handle the remaining objects by creating one last
roentgen b75cab
	      # reloadable object file.  All subsequent reloadable object
roentgen b75cab
	      # files will link in the last one created.
roentgen b75cab
	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
roentgen b75cab
	      reload_objs="$objlist $last_robj"
roentgen b75cab
	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
roentgen b75cab
	      if test -n "$last_robj"; then
roentgen b75cab
	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
roentgen b75cab
	      fi
roentgen b75cab
	      func_append delfiles " $output"
roentgen b75cab
roentgen b75cab
	    else
roentgen b75cab
	      output=
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    if ${skipped_export-false}; then
roentgen b75cab
	      func_verbose "generating symbol list for \`$libname.la'"
roentgen b75cab
	      export_symbols="$output_objdir/$libname.exp"
roentgen b75cab
	      $opt_dry_run || $RM $export_symbols
roentgen b75cab
	      libobjs=$output
roentgen b75cab
	      # Append the command to create the export file.
roentgen b75cab
	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
roentgen b75cab
	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
roentgen b75cab
	      if test -n "$last_robj"; then
roentgen b75cab
		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
roentgen b75cab
	      fi
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    test -n "$save_libobjs" &&
roentgen b75cab
	      func_verbose "creating a temporary reloadable object file: $output"
roentgen b75cab
roentgen b75cab
	    # Loop through the commands generated above and execute them.
roentgen b75cab
	    save_ifs="$IFS"; IFS='~'
roentgen b75cab
	    for cmd in $concat_cmds; do
roentgen b75cab
	      IFS="$save_ifs"
roentgen b75cab
	      $opt_silent || {
roentgen b75cab
		  func_quote_for_expand "$cmd"
roentgen b75cab
		  eval "func_echo $func_quote_for_expand_result"
roentgen b75cab
	      }
roentgen b75cab
	      $opt_dry_run || eval "$cmd" || {
roentgen b75cab
		lt_exit=$?
roentgen b75cab
roentgen b75cab
		# Restore the uninstalled library and exit
roentgen b75cab
		if test "$opt_mode" = relink; then
roentgen b75cab
		  ( cd "$output_objdir" && \
roentgen b75cab
		    $RM "${realname}T" && \
roentgen b75cab
		    $MV "${realname}U" "$realname" )
roentgen b75cab
		fi
roentgen b75cab
roentgen b75cab
		exit $lt_exit
roentgen b75cab
	      }
roentgen b75cab
	    done
roentgen b75cab
	    IFS="$save_ifs"
roentgen b75cab
roentgen b75cab
	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
roentgen b75cab
	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
roentgen b75cab
	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
          if ${skipped_export-false}; then
roentgen b75cab
	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
roentgen b75cab
	      tmp_export_symbols="$export_symbols"
roentgen b75cab
	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
roentgen b75cab
	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    if test -n "$orig_export_symbols"; then
roentgen b75cab
	      # The given exports_symbols file has to be filtered, so filter it.
roentgen b75cab
	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
roentgen b75cab
	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
roentgen b75cab
	      # 's' commands which not all seds can handle. GNU sed should be fine
roentgen b75cab
	      # though. Also, the filter scales superlinearly with the number of
roentgen b75cab
	      # global variables. join(1) would be nice here, but unfortunately
roentgen b75cab
	      # isn't a blessed tool.
roentgen b75cab
	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
roentgen b75cab
	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
roentgen b75cab
	      export_symbols=$output_objdir/$libname.def
roentgen b75cab
	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  libobjs=$output
roentgen b75cab
	  # Restore the value of output.
roentgen b75cab
	  output=$save_output
roentgen b75cab
roentgen b75cab
	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
roentgen b75cab
	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
roentgen b75cab
	    test "X$libobjs" = "X " && libobjs=
roentgen b75cab
	  fi
roentgen b75cab
	  # Expand the library linking commands again to reset the
roentgen b75cab
	  # value of $libobjs for piecewise linking.
roentgen b75cab
roentgen b75cab
	  # Do each of the archive commands.
roentgen b75cab
	  if test "$module" = yes && test -n "$module_cmds" ; then
roentgen b75cab
	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
roentgen b75cab
	      cmds=$module_expsym_cmds
roentgen b75cab
	    else
roentgen b75cab
	      cmds=$module_cmds
roentgen b75cab
	    fi
roentgen b75cab
	  else
roentgen b75cab
	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
roentgen b75cab
	      cmds=$archive_expsym_cmds
roentgen b75cab
	    else
roentgen b75cab
	      cmds=$archive_cmds
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	if test -n "$delfiles"; then
roentgen b75cab
	  # Append the command to remove temporary files to $cmds.
roentgen b75cab
	  eval cmds=\"\$cmds~\$RM $delfiles\"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Add any objects from preloaded convenience libraries
roentgen b75cab
	if test -n "$dlprefiles"; then
roentgen b75cab
	  gentop="$output_objdir/${outputname}x"
roentgen b75cab
	  func_append generated " $gentop"
roentgen b75cab
roentgen b75cab
	  func_extract_archives $gentop $dlprefiles
roentgen b75cab
	  func_append libobjs " $func_extract_archives_result"
roentgen b75cab
	  test "X$libobjs" = "X " && libobjs=
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	save_ifs="$IFS"; IFS='~'
roentgen b75cab
	for cmd in $cmds; do
roentgen b75cab
	  IFS="$save_ifs"
roentgen b75cab
	  eval cmd=\"$cmd\"
roentgen b75cab
	  $opt_silent || {
roentgen b75cab
	    func_quote_for_expand "$cmd"
roentgen b75cab
	    eval "func_echo $func_quote_for_expand_result"
roentgen b75cab
	  }
roentgen b75cab
	  $opt_dry_run || eval "$cmd" || {
roentgen b75cab
	    lt_exit=$?
roentgen b75cab
roentgen b75cab
	    # Restore the uninstalled library and exit
roentgen b75cab
	    if test "$opt_mode" = relink; then
roentgen b75cab
	      ( cd "$output_objdir" && \
roentgen b75cab
	        $RM "${realname}T" && \
roentgen b75cab
		$MV "${realname}U" "$realname" )
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    exit $lt_exit
roentgen b75cab
	  }
roentgen b75cab
	done
roentgen b75cab
	IFS="$save_ifs"
roentgen b75cab
roentgen b75cab
	# Restore the uninstalled library and exit
roentgen b75cab
	if test "$opt_mode" = relink; then
roentgen b75cab
	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
roentgen b75cab
roentgen b75cab
	  if test -n "$convenience"; then
roentgen b75cab
	    if test -z "$whole_archive_flag_spec"; then
roentgen b75cab
	      func_show_eval '${RM}r "$gentop"'
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  exit $EXIT_SUCCESS
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Create links to the real library.
roentgen b75cab
	for linkname in $linknames; do
roentgen b75cab
	  if test "$realname" != "$linkname"; then
roentgen b75cab
	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
roentgen b75cab
	  fi
roentgen b75cab
	done
roentgen b75cab
roentgen b75cab
	# If -module or -export-dynamic was specified, set the dlname.
roentgen b75cab
	if test "$module" = yes || test "$export_dynamic" = yes; then
roentgen b75cab
	  # On all known operating systems, these are identical.
roentgen b75cab
	  dlname="$soname"
roentgen b75cab
	fi
roentgen b75cab
      fi
roentgen b75cab
      ;;
roentgen b75cab
roentgen b75cab
    obj)
roentgen b75cab
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
roentgen b75cab
	func_warning "\`-dlopen' is ignored for objects"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      case " $deplibs" in
roentgen b75cab
      *\ -l* | *\ -L*)
roentgen b75cab
	func_warning "\`-l' and \`-L' are ignored for objects" ;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      test -n "$rpath" && \
roentgen b75cab
	func_warning "\`-rpath' is ignored for objects"
roentgen b75cab
roentgen b75cab
      test -n "$xrpath" && \
roentgen b75cab
	func_warning "\`-R' is ignored for objects"
roentgen b75cab
roentgen b75cab
      test -n "$vinfo" && \
roentgen b75cab
	func_warning "\`-version-info' is ignored for objects"
roentgen b75cab
roentgen b75cab
      test -n "$release" && \
roentgen b75cab
	func_warning "\`-release' is ignored for objects"
roentgen b75cab
roentgen b75cab
      case $output in
roentgen b75cab
      *.lo)
roentgen b75cab
	test -n "$objs$old_deplibs" && \
roentgen b75cab
	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
roentgen b75cab
roentgen b75cab
	libobj=$output
roentgen b75cab
	func_lo2o "$libobj"
roentgen b75cab
	obj=$func_lo2o_result
roentgen b75cab
	;;
roentgen b75cab
      *)
roentgen b75cab
	libobj=
roentgen b75cab
	obj="$output"
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      # Delete the old objects.
roentgen b75cab
      $opt_dry_run || $RM $obj $libobj
roentgen b75cab
roentgen b75cab
      # Objects from convenience libraries.  This assumes
roentgen b75cab
      # single-version convenience libraries.  Whenever we create
roentgen b75cab
      # different ones for PIC/non-PIC, this we'll have to duplicate
roentgen b75cab
      # the extraction.
roentgen b75cab
      reload_conv_objs=
roentgen b75cab
      gentop=
roentgen b75cab
      # reload_cmds runs $LD directly, so let us get rid of
roentgen b75cab
      # -Wl from whole_archive_flag_spec and hope we can get by with
roentgen b75cab
      # turning comma into space..
roentgen b75cab
      wl=
roentgen b75cab
roentgen b75cab
      if test -n "$convenience"; then
roentgen b75cab
	if test -n "$whole_archive_flag_spec"; then
roentgen b75cab
	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
roentgen b75cab
	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
roentgen b75cab
	else
roentgen b75cab
	  gentop="$output_objdir/${obj}x"
roentgen b75cab
	  func_append generated " $gentop"
roentgen b75cab
roentgen b75cab
	  func_extract_archives $gentop $convenience
roentgen b75cab
	  reload_conv_objs="$reload_objs $func_extract_archives_result"
roentgen b75cab
	fi
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # If we're not building shared, we need to use non_pic_objs
roentgen b75cab
      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
roentgen b75cab
roentgen b75cab
      # Create the old-style object.
roentgen b75cab
      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
roentgen b75cab
roentgen b75cab
      output="$obj"
roentgen b75cab
      func_execute_cmds "$reload_cmds" 'exit $?'
roentgen b75cab
roentgen b75cab
      # Exit if we aren't doing a library object file.
roentgen b75cab
      if test -z "$libobj"; then
roentgen b75cab
	if test -n "$gentop"; then
roentgen b75cab
	  func_show_eval '${RM}r "$gentop"'
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	exit $EXIT_SUCCESS
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      if test "$build_libtool_libs" != yes; then
roentgen b75cab
	if test -n "$gentop"; then
roentgen b75cab
	  func_show_eval '${RM}r "$gentop"'
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Create an invalid libtool object if no PIC, so that we don't
roentgen b75cab
	# accidentally link it into a program.
roentgen b75cab
	# $show "echo timestamp > $libobj"
roentgen b75cab
	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
roentgen b75cab
	exit $EXIT_SUCCESS
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      if test -n "$pic_flag" || test "$pic_mode" != default; then
roentgen b75cab
	# Only do commands if we really have different PIC objects.
roentgen b75cab
	reload_objs="$libobjs $reload_conv_objs"
roentgen b75cab
	output="$libobj"
roentgen b75cab
	func_execute_cmds "$reload_cmds" 'exit $?'
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      if test -n "$gentop"; then
roentgen b75cab
	func_show_eval '${RM}r "$gentop"'
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      exit $EXIT_SUCCESS
roentgen b75cab
      ;;
roentgen b75cab
roentgen b75cab
    prog)
roentgen b75cab
      case $host in
roentgen b75cab
	*cygwin*) func_stripname '' '.exe' "$output"
roentgen b75cab
	          output=$func_stripname_result.exe;;
roentgen b75cab
      esac
roentgen b75cab
      test -n "$vinfo" && \
roentgen b75cab
	func_warning "\`-version-info' is ignored for programs"
roentgen b75cab
roentgen b75cab
      test -n "$release" && \
roentgen b75cab
	func_warning "\`-release' is ignored for programs"
roentgen b75cab
roentgen b75cab
      test "$preload" = yes \
roentgen b75cab
        && test "$dlopen_support" = unknown \
roentgen b75cab
	&& test "$dlopen_self" = unknown \
roentgen b75cab
	&& test "$dlopen_self_static" = unknown && \
roentgen b75cab
	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
roentgen b75cab
roentgen b75cab
      case $host in
roentgen b75cab
      *-*-rhapsody* | *-*-darwin1.[012])
roentgen b75cab
	# On Rhapsody replace the C library is the System framework
roentgen b75cab
	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
roentgen b75cab
	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
      case $host in
roentgen b75cab
      *-*-darwin*)
roentgen b75cab
	# Don't allow lazy linking, it breaks C++ global constructors
roentgen b75cab
	# But is supposedly fixed on 10.4 or later (yay!).
roentgen b75cab
	if test "$tagname" = CXX ; then
roentgen b75cab
	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
roentgen b75cab
	    10.[0123])
roentgen b75cab
	      func_append compile_command " ${wl}-bind_at_load"
roentgen b75cab
	      func_append finalize_command " ${wl}-bind_at_load"
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	fi
roentgen b75cab
	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
roentgen b75cab
	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
roentgen b75cab
	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
roentgen b75cab
roentgen b75cab
      # move library search paths that coincide with paths to not yet
roentgen b75cab
      # installed libraries to the beginning of the library search list
roentgen b75cab
      new_libs=
roentgen b75cab
      for path in $notinst_path; do
roentgen b75cab
	case " $new_libs " in
roentgen b75cab
	*" -L$path/$objdir "*) ;;
roentgen b75cab
	*)
roentgen b75cab
	  case " $compile_deplibs " in
roentgen b75cab
	  *" -L$path/$objdir "*)
roentgen b75cab
	    func_append new_libs " -L$path/$objdir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
      for deplib in $compile_deplibs; do
roentgen b75cab
	case $deplib in
roentgen b75cab
	-L*)
roentgen b75cab
	  case " $new_libs " in
roentgen b75cab
	  *" $deplib "*) ;;
roentgen b75cab
	  *) func_append new_libs " $deplib" ;;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	*) func_append new_libs " $deplib" ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
      compile_deplibs="$new_libs"
roentgen b75cab
roentgen b75cab
roentgen b75cab
      func_append compile_command " $compile_deplibs"
roentgen b75cab
      func_append finalize_command " $finalize_deplibs"
roentgen b75cab
roentgen b75cab
      if test -n "$rpath$xrpath"; then
roentgen b75cab
	# If the user specified any rpath flags, then add them.
roentgen b75cab
	for libdir in $rpath $xrpath; do
roentgen b75cab
	  # This is the magic to use -rpath.
roentgen b75cab
	  case "$finalize_rpath " in
roentgen b75cab
	  *" $libdir "*) ;;
roentgen b75cab
	  *) func_append finalize_rpath " $libdir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	done
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Now hardcode the library paths
roentgen b75cab
      rpath=
roentgen b75cab
      hardcode_libdirs=
roentgen b75cab
      for libdir in $compile_rpath $finalize_rpath; do
roentgen b75cab
	if test -n "$hardcode_libdir_flag_spec"; then
roentgen b75cab
	  if test -n "$hardcode_libdir_separator"; then
roentgen b75cab
	    if test -z "$hardcode_libdirs"; then
roentgen b75cab
	      hardcode_libdirs="$libdir"
roentgen b75cab
	    else
roentgen b75cab
	      # Just accumulate the unique libdirs.
roentgen b75cab
	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
roentgen b75cab
	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
roentgen b75cab
		;;
roentgen b75cab
	      *)
roentgen b75cab
		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
	  else
roentgen b75cab
	    eval flag=\"$hardcode_libdir_flag_spec\"
roentgen b75cab
	    func_append rpath " $flag"
roentgen b75cab
	  fi
roentgen b75cab
	elif test -n "$runpath_var"; then
roentgen b75cab
	  case "$perm_rpath " in
roentgen b75cab
	  *" $libdir "*) ;;
roentgen b75cab
	  *) func_append perm_rpath " $libdir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	fi
roentgen b75cab
	case $host in
roentgen b75cab
	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
roentgen b75cab
	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
roentgen b75cab
	  case :$dllsearchpath: in
roentgen b75cab
	  *":$libdir:"*) ;;
roentgen b75cab
	  ::) dllsearchpath=$libdir;;
roentgen b75cab
	  *) func_append dllsearchpath ":$libdir";;
roentgen b75cab
	  esac
roentgen b75cab
	  case :$dllsearchpath: in
roentgen b75cab
	  *":$testbindir:"*) ;;
roentgen b75cab
	  ::) dllsearchpath=$testbindir;;
roentgen b75cab
	  *) func_append dllsearchpath ":$testbindir";;
roentgen b75cab
	  esac
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
      done
roentgen b75cab
      # Substitute the hardcoded libdirs into the rpath.
roentgen b75cab
      if test -n "$hardcode_libdir_separator" &&
roentgen b75cab
	 test -n "$hardcode_libdirs"; then
roentgen b75cab
	libdir="$hardcode_libdirs"
roentgen b75cab
	eval rpath=\" $hardcode_libdir_flag_spec\"
roentgen b75cab
      fi
roentgen b75cab
      compile_rpath="$rpath"
roentgen b75cab
roentgen b75cab
      rpath=
roentgen b75cab
      hardcode_libdirs=
roentgen b75cab
      for libdir in $finalize_rpath; do
roentgen b75cab
	if test -n "$hardcode_libdir_flag_spec"; then
roentgen b75cab
	  if test -n "$hardcode_libdir_separator"; then
roentgen b75cab
	    if test -z "$hardcode_libdirs"; then
roentgen b75cab
	      hardcode_libdirs="$libdir"
roentgen b75cab
	    else
roentgen b75cab
	      # Just accumulate the unique libdirs.
roentgen b75cab
	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
roentgen b75cab
	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
roentgen b75cab
		;;
roentgen b75cab
	      *)
roentgen b75cab
		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	    fi
roentgen b75cab
	  else
roentgen b75cab
	    eval flag=\"$hardcode_libdir_flag_spec\"
roentgen b75cab
	    func_append rpath " $flag"
roentgen b75cab
	  fi
roentgen b75cab
	elif test -n "$runpath_var"; then
roentgen b75cab
	  case "$finalize_perm_rpath " in
roentgen b75cab
	  *" $libdir "*) ;;
roentgen b75cab
	  *) func_append finalize_perm_rpath " $libdir" ;;
roentgen b75cab
	  esac
roentgen b75cab
	fi
roentgen b75cab
      done
roentgen b75cab
      # Substitute the hardcoded libdirs into the rpath.
roentgen b75cab
      if test -n "$hardcode_libdir_separator" &&
roentgen b75cab
	 test -n "$hardcode_libdirs"; then
roentgen b75cab
	libdir="$hardcode_libdirs"
roentgen b75cab
	eval rpath=\" $hardcode_libdir_flag_spec\"
roentgen b75cab
      fi
roentgen b75cab
      finalize_rpath="$rpath"
roentgen b75cab
roentgen b75cab
      if test -n "$libobjs" && test "$build_old_libs" = yes; then
roentgen b75cab
	# Transform all the library objects into standard objects.
roentgen b75cab
	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
roentgen b75cab
	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
roentgen b75cab
roentgen b75cab
      # template prelinking step
roentgen b75cab
      if test -n "$prelink_cmds"; then
roentgen b75cab
	func_execute_cmds "$prelink_cmds" 'exit $?'
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      wrappers_required=yes
roentgen b75cab
      case $host in
roentgen b75cab
      *cegcc* | *mingw32ce*)
roentgen b75cab
        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
roentgen b75cab
        wrappers_required=no
roentgen b75cab
        ;;
roentgen b75cab
      *cygwin* | *mingw* )
roentgen b75cab
        if test "$build_libtool_libs" != yes; then
roentgen b75cab
          wrappers_required=no
roentgen b75cab
        fi
roentgen b75cab
        ;;
roentgen b75cab
      *)
roentgen b75cab
        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
roentgen b75cab
          wrappers_required=no
roentgen b75cab
        fi
roentgen b75cab
        ;;
roentgen b75cab
      esac
roentgen b75cab
      if test "$wrappers_required" = no; then
roentgen b75cab
	# Replace the output file specification.
roentgen b75cab
	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
roentgen b75cab
	link_command="$compile_command$compile_rpath"
roentgen b75cab
roentgen b75cab
	# We have no uninstalled library dependencies, so finalize right now.
roentgen b75cab
	exit_status=0
roentgen b75cab
	func_show_eval "$link_command" 'exit_status=$?'
roentgen b75cab
roentgen b75cab
	if test -n "$postlink_cmds"; then
roentgen b75cab
	  func_to_tool_file "$output"
roentgen b75cab
	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
roentgen b75cab
	  func_execute_cmds "$postlink_cmds" 'exit $?'
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# Delete the generated files.
roentgen b75cab
	if test -f "$output_objdir/${outputname}S.${objext}"; then
roentgen b75cab
	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	exit $exit_status
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      if test -n "$compile_shlibpath$finalize_shlibpath"; then
roentgen b75cab
	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
roentgen b75cab
      fi
roentgen b75cab
      if test -n "$finalize_shlibpath"; then
roentgen b75cab
	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      compile_var=
roentgen b75cab
      finalize_var=
roentgen b75cab
      if test -n "$runpath_var"; then
roentgen b75cab
	if test -n "$perm_rpath"; then
roentgen b75cab
	  # We should set the runpath_var.
roentgen b75cab
	  rpath=
roentgen b75cab
	  for dir in $perm_rpath; do
roentgen b75cab
	    func_append rpath "$dir:"
roentgen b75cab
	  done
roentgen b75cab
	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
roentgen b75cab
	fi
roentgen b75cab
	if test -n "$finalize_perm_rpath"; then
roentgen b75cab
	  # We should set the runpath_var.
roentgen b75cab
	  rpath=
roentgen b75cab
	  for dir in $finalize_perm_rpath; do
roentgen b75cab
	    func_append rpath "$dir:"
roentgen b75cab
	  done
roentgen b75cab
	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
roentgen b75cab
	fi
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      if test "$no_install" = yes; then
roentgen b75cab
	# We don't need to create a wrapper script.
roentgen b75cab
	link_command="$compile_var$compile_command$compile_rpath"
roentgen b75cab
	# Replace the output file specification.
roentgen b75cab
	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
roentgen b75cab
	# Delete the old output file.
roentgen b75cab
	$opt_dry_run || $RM $output
roentgen b75cab
	# Link the executable and exit
roentgen b75cab
	func_show_eval "$link_command" 'exit $?'
roentgen b75cab
roentgen b75cab
	if test -n "$postlink_cmds"; then
roentgen b75cab
	  func_to_tool_file "$output"
roentgen b75cab
	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
roentgen b75cab
	  func_execute_cmds "$postlink_cmds" 'exit $?'
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	exit $EXIT_SUCCESS
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      if test "$hardcode_action" = relink; then
roentgen b75cab
	# Fast installation is not supported
roentgen b75cab
	link_command="$compile_var$compile_command$compile_rpath"
roentgen b75cab
	relink_command="$finalize_var$finalize_command$finalize_rpath"
roentgen b75cab
roentgen b75cab
	func_warning "this platform does not like uninstalled shared libraries"
roentgen b75cab
	func_warning "\`$output' will be relinked during installation"
roentgen b75cab
      else
roentgen b75cab
	if test "$fast_install" != no; then
roentgen b75cab
	  link_command="$finalize_var$compile_command$finalize_rpath"
roentgen b75cab
	  if test "$fast_install" = yes; then
roentgen b75cab
	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
roentgen b75cab
	  else
roentgen b75cab
	    # fast_install is set to needless
roentgen b75cab
	    relink_command=
roentgen b75cab
	  fi
roentgen b75cab
	else
roentgen b75cab
	  link_command="$compile_var$compile_command$compile_rpath"
roentgen b75cab
	  relink_command="$finalize_var$finalize_command$finalize_rpath"
roentgen b75cab
	fi
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Replace the output file specification.
roentgen b75cab
      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
roentgen b75cab
roentgen b75cab
      # Delete the old output files.
roentgen b75cab
      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
roentgen b75cab
roentgen b75cab
      func_show_eval "$link_command" 'exit $?'
roentgen b75cab
roentgen b75cab
      if test -n "$postlink_cmds"; then
roentgen b75cab
	func_to_tool_file "$output_objdir/$outputname"
roentgen b75cab
	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
roentgen b75cab
	func_execute_cmds "$postlink_cmds" 'exit $?'
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Now create the wrapper script.
roentgen b75cab
      func_verbose "creating $output"
roentgen b75cab
roentgen b75cab
      # Quote the relink command for shipping.
roentgen b75cab
      if test -n "$relink_command"; then
roentgen b75cab
	# Preserve any variables that may affect compiler behavior
roentgen b75cab
	for var in $variables_saved_for_relink; do
roentgen b75cab
	  if eval test -z \"\${$var+set}\"; then
roentgen b75cab
	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
roentgen b75cab
	  elif eval var_value=\$$var; test -z "$var_value"; then
roentgen b75cab
	    relink_command="$var=; export $var; $relink_command"
roentgen b75cab
	  else
roentgen b75cab
	    func_quote_for_eval "$var_value"
roentgen b75cab
	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
roentgen b75cab
	  fi
roentgen b75cab
	done
roentgen b75cab
	relink_command="(cd `pwd`; $relink_command)"
roentgen b75cab
	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Only actually do things if not in dry run mode.
roentgen b75cab
      $opt_dry_run || {
roentgen b75cab
	# win32 will think the script is a binary if it has
roentgen b75cab
	# a .exe suffix, so we strip it off here.
roentgen b75cab
	case $output in
roentgen b75cab
	  *.exe) func_stripname '' '.exe' "$output"
roentgen b75cab
	         output=$func_stripname_result ;;
roentgen b75cab
	esac
roentgen b75cab
	# test for cygwin because mv fails w/o .exe extensions
roentgen b75cab
	case $host in
roentgen b75cab
	  *cygwin*)
roentgen b75cab
	    exeext=.exe
roentgen b75cab
	    func_stripname '' '.exe' "$outputname"
roentgen b75cab
	    outputname=$func_stripname_result ;;
roentgen b75cab
	  *) exeext= ;;
roentgen b75cab
	esac
roentgen b75cab
	case $host in
roentgen b75cab
	  *cygwin* | *mingw* )
roentgen b75cab
	    func_dirname_and_basename "$output" "" "."
roentgen b75cab
	    output_name=$func_basename_result
roentgen b75cab
	    output_path=$func_dirname_result
roentgen b75cab
	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
roentgen b75cab
	    cwrapper="$output_path/$output_name.exe"
roentgen b75cab
	    $RM $cwrappersource $cwrapper
roentgen b75cab
	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
roentgen b75cab
roentgen b75cab
	    func_emit_cwrapperexe_src > $cwrappersource
roentgen b75cab
roentgen b75cab
	    # The wrapper executable is built using the $host compiler,
roentgen b75cab
	    # because it contains $host paths and files. If cross-
roentgen b75cab
	    # compiling, it, like the target executable, must be
roentgen b75cab
	    # executed on the $host or under an emulation environment.
roentgen b75cab
	    $opt_dry_run || {
roentgen b75cab
	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
roentgen b75cab
	      $STRIP $cwrapper
roentgen b75cab
	    }
roentgen b75cab
roentgen b75cab
	    # Now, create the wrapper script for func_source use:
roentgen b75cab
	    func_ltwrapper_scriptname $cwrapper
roentgen b75cab
	    $RM $func_ltwrapper_scriptname_result
roentgen b75cab
	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
roentgen b75cab
	    $opt_dry_run || {
roentgen b75cab
	      # note: this script will not be executed, so do not chmod.
roentgen b75cab
	      if test "x$build" = "x$host" ; then
roentgen b75cab
		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
roentgen b75cab
	      else
roentgen b75cab
		func_emit_wrapper no > $func_ltwrapper_scriptname_result
roentgen b75cab
	      fi
roentgen b75cab
	    }
roentgen b75cab
	  ;;
roentgen b75cab
	  * )
roentgen b75cab
	    $RM $output
roentgen b75cab
	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
roentgen b75cab
roentgen b75cab
	    func_emit_wrapper no > $output
roentgen b75cab
	    chmod +x $output
roentgen b75cab
	  ;;
roentgen b75cab
	esac
roentgen b75cab
      }
roentgen b75cab
      exit $EXIT_SUCCESS
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
roentgen b75cab
    # See if we need to build an old-fashioned archive.
roentgen b75cab
    for oldlib in $oldlibs; do
roentgen b75cab
roentgen b75cab
      if test "$build_libtool_libs" = convenience; then
roentgen b75cab
	oldobjs="$libobjs_save $symfileobj"
roentgen b75cab
	addlibs="$convenience"
roentgen b75cab
	build_libtool_libs=no
roentgen b75cab
      else
roentgen b75cab
	if test "$build_libtool_libs" = module; then
roentgen b75cab
	  oldobjs="$libobjs_save"
roentgen b75cab
	  build_libtool_libs=no
roentgen b75cab
	else
roentgen b75cab
	  oldobjs="$old_deplibs $non_pic_objects"
roentgen b75cab
	  if test "$preload" = yes && test -f "$symfileobj"; then
roentgen b75cab
	    func_append oldobjs " $symfileobj"
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
	addlibs="$old_convenience"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      if test -n "$addlibs"; then
roentgen b75cab
	gentop="$output_objdir/${outputname}x"
roentgen b75cab
	func_append generated " $gentop"
roentgen b75cab
roentgen b75cab
	func_extract_archives $gentop $addlibs
roentgen b75cab
	func_append oldobjs " $func_extract_archives_result"
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Do each command in the archive commands.
roentgen b75cab
      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
roentgen b75cab
	cmds=$old_archive_from_new_cmds
roentgen b75cab
      else
roentgen b75cab
roentgen b75cab
	# Add any objects from preloaded convenience libraries
roentgen b75cab
	if test -n "$dlprefiles"; then
roentgen b75cab
	  gentop="$output_objdir/${outputname}x"
roentgen b75cab
	  func_append generated " $gentop"
roentgen b75cab
roentgen b75cab
	  func_extract_archives $gentop $dlprefiles
roentgen b75cab
	  func_append oldobjs " $func_extract_archives_result"
roentgen b75cab
	fi
roentgen b75cab
roentgen b75cab
	# POSIX demands no paths to be encoded in archives.  We have
roentgen b75cab
	# to avoid creating archives with duplicate basenames if we
roentgen b75cab
	# might have to extract them afterwards, e.g., when creating a
roentgen b75cab
	# static archive out of a convenience library, or when linking
roentgen b75cab
	# the entirety of a libtool archive into another (currently
roentgen b75cab
	# not supported by libtool).
roentgen b75cab
	if (for obj in $oldobjs
roentgen b75cab
	    do
roentgen b75cab
	      func_basename "$obj"
roentgen b75cab
	      $ECHO "$func_basename_result"
roentgen b75cab
	    done | sort | sort -uc >/dev/null 2>&1); then
roentgen b75cab
	  :
roentgen b75cab
	else
roentgen b75cab
	  echo "copying selected object files to avoid basename conflicts..."
roentgen b75cab
	  gentop="$output_objdir/${outputname}x"
roentgen b75cab
	  func_append generated " $gentop"
roentgen b75cab
	  func_mkdir_p "$gentop"
roentgen b75cab
	  save_oldobjs=$oldobjs
roentgen b75cab
	  oldobjs=
roentgen b75cab
	  counter=1
roentgen b75cab
	  for obj in $save_oldobjs
roentgen b75cab
	  do
roentgen b75cab
	    func_basename "$obj"
roentgen b75cab
	    objbase="$func_basename_result"
roentgen b75cab
	    case " $oldobjs " in
roentgen b75cab
	    " ") oldobjs=$obj ;;
roentgen b75cab
	    *[\ /]"$objbase "*)
roentgen b75cab
	      while :; do
roentgen b75cab
		# Make sure we don't pick an alternate name that also
roentgen b75cab
		# overlaps.
roentgen b75cab
		newobj=lt$counter-$objbase
roentgen b75cab
		func_arith $counter + 1
roentgen b75cab
		counter=$func_arith_result
roentgen b75cab
		case " $oldobjs " in
roentgen b75cab
		*[\ /]"$newobj "*) ;;
roentgen b75cab
		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
roentgen b75cab
		esac
roentgen b75cab
	      done
roentgen b75cab
	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
roentgen b75cab
	      func_append oldobjs " $gentop/$newobj"
roentgen b75cab
	      ;;
roentgen b75cab
	    *) func_append oldobjs " $obj" ;;
roentgen b75cab
	    esac
roentgen b75cab
	  done
roentgen b75cab
	fi
roentgen b75cab
	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
roentgen b75cab
	tool_oldlib=$func_to_tool_file_result
roentgen b75cab
	eval cmds=\"$old_archive_cmds\"
roentgen b75cab
roentgen b75cab
	func_len " $cmds"
roentgen b75cab
	len=$func_len_result
roentgen b75cab
	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
roentgen b75cab
	  cmds=$old_archive_cmds
roentgen b75cab
	elif test -n "$archiver_list_spec"; then
roentgen b75cab
	  func_verbose "using command file archive linking..."
roentgen b75cab
	  for obj in $oldobjs
roentgen b75cab
	  do
roentgen b75cab
	    func_to_tool_file "$obj"
roentgen b75cab
	    $ECHO "$func_to_tool_file_result"
roentgen b75cab
	  done > $output_objdir/$libname.libcmd
roentgen b75cab
	  func_to_tool_file "$output_objdir/$libname.libcmd"
roentgen b75cab
	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
roentgen b75cab
	  cmds=$old_archive_cmds
roentgen b75cab
	else
roentgen b75cab
	  # the command line is too long to link in one step, link in parts
roentgen b75cab
	  func_verbose "using piecewise archive linking..."
roentgen b75cab
	  save_RANLIB=$RANLIB
roentgen b75cab
	  RANLIB=:
roentgen b75cab
	  objlist=
roentgen b75cab
	  concat_cmds=
roentgen b75cab
	  save_oldobjs=$oldobjs
roentgen b75cab
	  oldobjs=
roentgen b75cab
	  # Is there a better way of finding the last object in the list?
roentgen b75cab
	  for obj in $save_oldobjs
roentgen b75cab
	  do
roentgen b75cab
	    last_oldobj=$obj
roentgen b75cab
	  done
roentgen b75cab
	  eval test_cmds=\"$old_archive_cmds\"
roentgen b75cab
	  func_len " $test_cmds"
roentgen b75cab
	  len0=$func_len_result
roentgen b75cab
	  len=$len0
roentgen b75cab
	  for obj in $save_oldobjs
roentgen b75cab
	  do
roentgen b75cab
	    func_len " $obj"
roentgen b75cab
	    func_arith $len + $func_len_result
roentgen b75cab
	    len=$func_arith_result
roentgen b75cab
	    func_append objlist " $obj"
roentgen b75cab
	    if test "$len" -lt "$max_cmd_len"; then
roentgen b75cab
	      :
roentgen b75cab
	    else
roentgen b75cab
	      # the above command should be used before it gets too long
roentgen b75cab
	      oldobjs=$objlist
roentgen b75cab
	      if test "$obj" = "$last_oldobj" ; then
roentgen b75cab
		RANLIB=$save_RANLIB
roentgen b75cab
	      fi
roentgen b75cab
	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
roentgen b75cab
	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
roentgen b75cab
	      objlist=
roentgen b75cab
	      len=$len0
roentgen b75cab
	    fi
roentgen b75cab
	  done
roentgen b75cab
	  RANLIB=$save_RANLIB
roentgen b75cab
	  oldobjs=$objlist
roentgen b75cab
	  if test "X$oldobjs" = "X" ; then
roentgen b75cab
	    eval cmds=\"\$concat_cmds\"
roentgen b75cab
	  else
roentgen b75cab
	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
      fi
roentgen b75cab
      func_execute_cmds "$cmds" 'exit $?'
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    test -n "$generated" && \
roentgen b75cab
      func_show_eval "${RM}r$generated"
roentgen b75cab
roentgen b75cab
    # Now create the libtool archive.
roentgen b75cab
    case $output in
roentgen b75cab
    *.la)
roentgen b75cab
      old_library=
roentgen b75cab
      test "$build_old_libs" = yes && old_library="$libname.$libext"
roentgen b75cab
      func_verbose "creating $output"
roentgen b75cab
roentgen b75cab
      # Preserve any variables that may affect compiler behavior
roentgen b75cab
      for var in $variables_saved_for_relink; do
roentgen b75cab
	if eval test -z \"\${$var+set}\"; then
roentgen b75cab
	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
roentgen b75cab
	elif eval var_value=\$$var; test -z "$var_value"; then
roentgen b75cab
	  relink_command="$var=; export $var; $relink_command"
roentgen b75cab
	else
roentgen b75cab
	  func_quote_for_eval "$var_value"
roentgen b75cab
	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
roentgen b75cab
	fi
roentgen b75cab
      done
roentgen b75cab
      # Quote the link command for shipping.
roentgen b75cab
      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
roentgen b75cab
      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
roentgen b75cab
      if test "$hardcode_automatic" = yes ; then
roentgen b75cab
	relink_command=
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Only create the output if not a dry run.
roentgen b75cab
      $opt_dry_run || {
roentgen b75cab
	for installed in no yes; do
roentgen b75cab
	  if test "$installed" = yes; then
roentgen b75cab
	    if test -z "$install_libdir"; then
roentgen b75cab
	      break
roentgen b75cab
	    fi
roentgen b75cab
	    output="$output_objdir/$outputname"i
roentgen b75cab
	    # Replace all uninstalled libtool libraries with the installed ones
roentgen b75cab
	    newdependency_libs=
roentgen b75cab
	    for deplib in $dependency_libs; do
roentgen b75cab
	      case $deplib in
roentgen b75cab
	      *.la)
roentgen b75cab
		func_basename "$deplib"
roentgen b75cab
		name="$func_basename_result"
roentgen b75cab
		func_resolve_sysroot "$deplib"
roentgen b75cab
		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
roentgen b75cab
		test -z "$libdir" && \
roentgen b75cab
		  func_fatal_error "\`$deplib' is not a valid libtool archive"
roentgen b75cab
		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
roentgen b75cab
		;;
roentgen b75cab
	      -L*)
roentgen b75cab
		func_stripname -L '' "$deplib"
roentgen b75cab
		func_replace_sysroot "$func_stripname_result"
roentgen b75cab
		func_append newdependency_libs " -L$func_replace_sysroot_result"
roentgen b75cab
		;;
roentgen b75cab
	      -R*)
roentgen b75cab
		func_stripname -R '' "$deplib"
roentgen b75cab
		func_replace_sysroot "$func_stripname_result"
roentgen b75cab
		func_append newdependency_libs " -R$func_replace_sysroot_result"
roentgen b75cab
		;;
roentgen b75cab
	      *) func_append newdependency_libs " $deplib" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    done
roentgen b75cab
	    dependency_libs="$newdependency_libs"
roentgen b75cab
	    newdlfiles=
roentgen b75cab
roentgen b75cab
	    for lib in $dlfiles; do
roentgen b75cab
	      case $lib in
roentgen b75cab
	      *.la)
roentgen b75cab
	        func_basename "$lib"
roentgen b75cab
		name="$func_basename_result"
roentgen b75cab
		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
roentgen b75cab
		test -z "$libdir" && \
roentgen b75cab
		  func_fatal_error "\`$lib' is not a valid libtool archive"
roentgen b75cab
		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
roentgen b75cab
		;;
roentgen b75cab
	      *) func_append newdlfiles " $lib" ;;
roentgen b75cab
	      esac
roentgen b75cab
	    done
roentgen b75cab
	    dlfiles="$newdlfiles"
roentgen b75cab
	    newdlprefiles=
roentgen b75cab
	    for lib in $dlprefiles; do
roentgen b75cab
	      case $lib in
roentgen b75cab
	      *.la)
roentgen b75cab
		# Only pass preopened files to the pseudo-archive (for
roentgen b75cab
		# eventual linking with the app. that links it) if we
roentgen b75cab
		# didn't already link the preopened objects directly into
roentgen b75cab
		# the library:
roentgen b75cab
		func_basename "$lib"
roentgen b75cab
		name="$func_basename_result"
roentgen b75cab
		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
roentgen b75cab
		test -z "$libdir" && \
roentgen b75cab
		  func_fatal_error "\`$lib' is not a valid libtool archive"
roentgen b75cab
		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
roentgen b75cab
		;;
roentgen b75cab
	      esac
roentgen b75cab
	    done
roentgen b75cab
	    dlprefiles="$newdlprefiles"
roentgen b75cab
	  else
roentgen b75cab
	    newdlfiles=
roentgen b75cab
	    for lib in $dlfiles; do
roentgen b75cab
	      case $lib in
roentgen b75cab
		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
roentgen b75cab
		*) abs=`pwd`"/$lib" ;;
roentgen b75cab
	      esac
roentgen b75cab
	      func_append newdlfiles " $abs"
roentgen b75cab
	    done
roentgen b75cab
	    dlfiles="$newdlfiles"
roentgen b75cab
	    newdlprefiles=
roentgen b75cab
	    for lib in $dlprefiles; do
roentgen b75cab
	      case $lib in
roentgen b75cab
		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
roentgen b75cab
		*) abs=`pwd`"/$lib" ;;
roentgen b75cab
	      esac
roentgen b75cab
	      func_append newdlprefiles " $abs"
roentgen b75cab
	    done
roentgen b75cab
	    dlprefiles="$newdlprefiles"
roentgen b75cab
	  fi
roentgen b75cab
	  $RM $output
roentgen b75cab
	  # place dlname in correct position for cygwin
roentgen b75cab
	  # In fact, it would be nice if we could use this code for all target
roentgen b75cab
	  # systems that can't hard-code library paths into their executables
roentgen b75cab
	  # and that have no shared library path variable independent of PATH,
roentgen b75cab
	  # but it turns out we can't easily determine that from inspecting
roentgen b75cab
	  # libtool variables, so we have to hard-code the OSs to which it
roentgen b75cab
	  # applies here; at the moment, that means platforms that use the PE
roentgen b75cab
	  # object format with DLL files.  See the long comment at the top of
roentgen b75cab
	  # tests/bindir.at for full details.
roentgen b75cab
	  tdlname=$dlname
roentgen b75cab
	  case $host,$output,$installed,$module,$dlname in
roentgen b75cab
	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
roentgen b75cab
	      # If a -bindir argument was supplied, place the dll there.
roentgen b75cab
	      if test "x$bindir" != x ;
roentgen b75cab
	      then
roentgen b75cab
		func_relative_path "$install_libdir" "$bindir"
roentgen b75cab
		tdlname=$func_relative_path_result$dlname
roentgen b75cab
	      else
roentgen b75cab
		# Otherwise fall back on heuristic.
roentgen b75cab
		tdlname=../bin/$dlname
roentgen b75cab
	      fi
roentgen b75cab
	      ;;
roentgen b75cab
	  esac
roentgen b75cab
	  $ECHO > $output "\
roentgen b75cab
# $outputname - a libtool library file
roentgen b75cab
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
roentgen b75cab
#
roentgen b75cab
# Please DO NOT delete this file!
roentgen b75cab
# It is necessary for linking the library.
roentgen b75cab
roentgen b75cab
# The name that we can dlopen(3).
roentgen b75cab
dlname='$tdlname'
roentgen b75cab
roentgen b75cab
# Names of this library.
roentgen b75cab
library_names='$library_names'
roentgen b75cab
roentgen b75cab
# The name of the static archive.
roentgen b75cab
old_library='$old_library'
roentgen b75cab
roentgen b75cab
# Linker flags that can not go in dependency_libs.
roentgen b75cab
inherited_linker_flags='$new_inherited_linker_flags'
roentgen b75cab
roentgen b75cab
# Libraries that this one depends upon.
roentgen b75cab
dependency_libs='$dependency_libs'
roentgen b75cab
roentgen b75cab
# Names of additional weak libraries provided by this library
roentgen b75cab
weak_library_names='$weak_libs'
roentgen b75cab
roentgen b75cab
# Version information for $libname.
roentgen b75cab
current=$current
roentgen b75cab
age=$age
roentgen b75cab
revision=$revision
roentgen b75cab
roentgen b75cab
# Is this an already installed library?
roentgen b75cab
installed=$installed
roentgen b75cab
roentgen b75cab
# Should we warn about portability when linking against -modules?
roentgen b75cab
shouldnotlink=$module
roentgen b75cab
roentgen b75cab
# Files to dlopen/dlpreopen
roentgen b75cab
dlopen='$dlfiles'
roentgen b75cab
dlpreopen='$dlprefiles'
roentgen b75cab
roentgen b75cab
# Directory that this library needs to be installed in:
roentgen b75cab
libdir='$install_libdir'"
roentgen b75cab
	  if test "$installed" = no && test "$need_relink" = yes; then
roentgen b75cab
	    $ECHO >> $output "\
roentgen b75cab
relink_command=\"$relink_command\""
roentgen b75cab
	  fi
roentgen b75cab
	done
roentgen b75cab
      }
roentgen b75cab
roentgen b75cab
      # Do a symbolic link so that the libtool archive can be found in
roentgen b75cab
      # LD_LIBRARY_PATH before the program is installed.
roentgen b75cab
      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
roentgen b75cab
      ;;
roentgen b75cab
    esac
roentgen b75cab
    exit $EXIT_SUCCESS
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
roentgen b75cab
    func_mode_link ${1+"$@"}
roentgen b75cab
roentgen b75cab
roentgen b75cab
# func_mode_uninstall arg...
roentgen b75cab
func_mode_uninstall ()
roentgen b75cab
{
roentgen b75cab
    $opt_debug
roentgen b75cab
    RM="$nonopt"
roentgen b75cab
    files=
roentgen b75cab
    rmforce=
roentgen b75cab
    exit_status=0
roentgen b75cab
roentgen b75cab
    # This variable tells wrapper scripts just to set variables rather
roentgen b75cab
    # than running their programs.
roentgen b75cab
    libtool_install_magic="$magic"
roentgen b75cab
roentgen b75cab
    for arg
roentgen b75cab
    do
roentgen b75cab
      case $arg in
roentgen b75cab
      -f) func_append RM " $arg"; rmforce=yes ;;
roentgen b75cab
      -*) func_append RM " $arg" ;;
roentgen b75cab
      *) func_append files " $arg" ;;
roentgen b75cab
      esac
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    test -z "$RM" && \
roentgen b75cab
      func_fatal_help "you must specify an RM program"
roentgen b75cab
roentgen b75cab
    rmdirs=
roentgen b75cab
roentgen b75cab
    for file in $files; do
roentgen b75cab
      func_dirname "$file" "" "."
roentgen b75cab
      dir="$func_dirname_result"
roentgen b75cab
      if test "X$dir" = X.; then
roentgen b75cab
	odir="$objdir"
roentgen b75cab
      else
roentgen b75cab
	odir="$dir/$objdir"
roentgen b75cab
      fi
roentgen b75cab
      func_basename "$file"
roentgen b75cab
      name="$func_basename_result"
roentgen b75cab
      test "$opt_mode" = uninstall && odir="$dir"
roentgen b75cab
roentgen b75cab
      # Remember odir for removal later, being careful to avoid duplicates
roentgen b75cab
      if test "$opt_mode" = clean; then
roentgen b75cab
	case " $rmdirs " in
roentgen b75cab
	  *" $odir "*) ;;
roentgen b75cab
	  *) func_append rmdirs " $odir" ;;
roentgen b75cab
	esac
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      # Don't error if the file doesn't exist and rm -f was used.
roentgen b75cab
      if { test -L "$file"; } >/dev/null 2>&1 ||
roentgen b75cab
	 { test -h "$file"; } >/dev/null 2>&1 ||
roentgen b75cab
	 test -f "$file"; then
roentgen b75cab
	:
roentgen b75cab
      elif test -d "$file"; then
roentgen b75cab
	exit_status=1
roentgen b75cab
	continue
roentgen b75cab
      elif test "$rmforce" = yes; then
roentgen b75cab
	continue
roentgen b75cab
      fi
roentgen b75cab
roentgen b75cab
      rmfiles="$file"
roentgen b75cab
roentgen b75cab
      case $name in
roentgen b75cab
      *.la)
roentgen b75cab
	# Possibly a libtool archive, so verify it.
roentgen b75cab
	if func_lalib_p "$file"; then
roentgen b75cab
	  func_source $dir/$name
roentgen b75cab
roentgen b75cab
	  # Delete the libtool libraries and symlinks.
roentgen b75cab
	  for n in $library_names; do
roentgen b75cab
	    func_append rmfiles " $odir/$n"
roentgen b75cab
	  done
roentgen b75cab
	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
roentgen b75cab
roentgen b75cab
	  case "$opt_mode" in
roentgen b75cab
	  clean)
roentgen b75cab
	    case " $library_names " in
roentgen b75cab
	    *" $dlname "*) ;;
roentgen b75cab
	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
roentgen b75cab
	    esac
roentgen b75cab
	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
roentgen b75cab
	    ;;
roentgen b75cab
	  uninstall)
roentgen b75cab
	    if test -n "$library_names"; then
roentgen b75cab
	      # Do each command in the postuninstall commands.
roentgen b75cab
	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    if test -n "$old_library"; then
roentgen b75cab
	      # Do each command in the old_postuninstall commands.
roentgen b75cab
	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
roentgen b75cab
	    fi
roentgen b75cab
	    # FIXME: should reinstall the best remaining shared library.
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *.lo)
roentgen b75cab
	# Possibly a libtool object, so verify it.
roentgen b75cab
	if func_lalib_p "$file"; then
roentgen b75cab
roentgen b75cab
	  # Read the .lo file
roentgen b75cab
	  func_source $dir/$name
roentgen b75cab
roentgen b75cab
	  # Add PIC object to the list of files to remove.
roentgen b75cab
	  if test -n "$pic_object" &&
roentgen b75cab
	     test "$pic_object" != none; then
roentgen b75cab
	    func_append rmfiles " $dir/$pic_object"
roentgen b75cab
	  fi
roentgen b75cab
roentgen b75cab
	  # Add non-PIC object to the list of files to remove.
roentgen b75cab
	  if test -n "$non_pic_object" &&
roentgen b75cab
	     test "$non_pic_object" != none; then
roentgen b75cab
	    func_append rmfiles " $dir/$non_pic_object"
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
roentgen b75cab
      *)
roentgen b75cab
	if test "$opt_mode" = clean ; then
roentgen b75cab
	  noexename=$name
roentgen b75cab
	  case $file in
roentgen b75cab
	  *.exe)
roentgen b75cab
	    func_stripname '' '.exe' "$file"
roentgen b75cab
	    file=$func_stripname_result
roentgen b75cab
	    func_stripname '' '.exe' "$name"
roentgen b75cab
	    noexename=$func_stripname_result
roentgen b75cab
	    # $file with .exe has already been added to rmfiles,
roentgen b75cab
	    # add $file without .exe
roentgen b75cab
	    func_append rmfiles " $file"
roentgen b75cab
	    ;;
roentgen b75cab
	  esac
roentgen b75cab
	  # Do a test to see if this is a libtool program.
roentgen b75cab
	  if func_ltwrapper_p "$file"; then
roentgen b75cab
	    if func_ltwrapper_executable_p "$file"; then
roentgen b75cab
	      func_ltwrapper_scriptname "$file"
roentgen b75cab
	      relink_command=
roentgen b75cab
	      func_source $func_ltwrapper_scriptname_result
roentgen b75cab
	      func_append rmfiles " $func_ltwrapper_scriptname_result"
roentgen b75cab
	    else
roentgen b75cab
	      relink_command=
roentgen b75cab
	      func_source $dir/$noexename
roentgen b75cab
	    fi
roentgen b75cab
roentgen b75cab
	    # note $name still contains .exe if it was in $file originally
roentgen b75cab
	    # as does the version of $file that was added into $rmfiles
roentgen b75cab
	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
roentgen b75cab
	    if test "$fast_install" = yes && test -n "$relink_command"; then
roentgen b75cab
	      func_append rmfiles " $odir/lt-$name"
roentgen b75cab
	    fi
roentgen b75cab
	    if test "X$noexename" != "X$name" ; then
roentgen b75cab
	      func_append rmfiles " $odir/lt-${noexename}.c"
roentgen b75cab
	    fi
roentgen b75cab
	  fi
roentgen b75cab
	fi
roentgen b75cab
	;;
roentgen b75cab
      esac
roentgen b75cab
      func_show_eval "$RM $rmfiles" 'exit_status=1'
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    # Try to remove the ${objdir}s in the directories where we deleted files
roentgen b75cab
    for dir in $rmdirs; do
roentgen b75cab
      if test -d "$dir"; then
roentgen b75cab
	func_show_eval "rmdir $dir >/dev/null 2>&1"
roentgen b75cab
      fi
roentgen b75cab
    done
roentgen b75cab
roentgen b75cab
    exit $exit_status
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
roentgen b75cab
    func_mode_uninstall ${1+"$@"}
roentgen b75cab
roentgen b75cab
test -z "$opt_mode" && {
roentgen b75cab
  help="$generic_help"
roentgen b75cab
  func_fatal_help "you must specify a MODE"
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
test -z "$exec_cmd" && \
roentgen b75cab
  func_fatal_help "invalid operation mode \`$opt_mode'"
roentgen b75cab
roentgen b75cab
if test -n "$exec_cmd"; then
roentgen b75cab
  eval exec "$exec_cmd"
roentgen b75cab
  exit $EXIT_FAILURE
roentgen b75cab
fi
roentgen b75cab
roentgen b75cab
exit $exit_status
roentgen b75cab
roentgen b75cab
roentgen b75cab
# The TAGs below are defined such that we never get into a situation
roentgen b75cab
# in which we disable both kinds of libraries.  Given conflicting
roentgen b75cab
# choices, we go for a static library, that is the most portable,
roentgen b75cab
# since we can't tell whether shared libraries were disabled because
roentgen b75cab
# the user asked for that or because the platform doesn't support
roentgen b75cab
# them.  This is particularly important on AIX, because we don't
roentgen b75cab
# support having both static and shared libraries enabled at the same
roentgen b75cab
# time on that platform, so we default to a shared-only configuration.
roentgen b75cab
# If a disable-shared tag is given, we'll fallback to a static-only
roentgen b75cab
# configuration.  But we'll never go from static-only to shared-only.
roentgen b75cab
roentgen b75cab
# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
roentgen b75cab
build_libtool_libs=no
roentgen b75cab
build_old_libs=yes
roentgen b75cab
# ### END LIBTOOL TAG CONFIG: disable-shared
roentgen b75cab
roentgen b75cab
# ### BEGIN LIBTOOL TAG CONFIG: disable-static
roentgen b75cab
build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
roentgen b75cab
# ### END LIBTOOL TAG CONFIG: disable-static
roentgen b75cab
roentgen b75cab
# Local Variables:
roentgen b75cab
# mode:shell-script
roentgen b75cab
# sh-indentation:2
roentgen b75cab
# End:
roentgen b75cab
# vi:sw=2
roentgen b75cab