Diff for /embedaddon/confuse/support/ltmain.sh between versions 1.1 and 1.1.1.2

version 1.1, 2017/01/24 14:48:56 version 1.1.1.2, 2021/03/17 00:49:17
Line 1 Line 1
# Generated from ltmain.m4sh.#! /bin/sh
 ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
 ##               by inline-source v2014-01-03.01
   
# ltmain.sh (GNU libtool) 2.2.6b# libtool (GNU libtool) 2.4.6
 # Provide generalized library-building support services.
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996  # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
   
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.# Copyright (C) 1996-2015 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO  # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   
Line 23 Line 26
 # General Public License for more details.  # General Public License for more details.
 #  #
 # You should have received a copy of the GNU General Public License  # You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING.  If not, a copy# along with this program.  If not, see <http://www.gnu.org/licenses/>.
# can be downloaded from http://www.gnu.org/licenses/gpl.html, 
# or obtained by writing to the Free Software Foundation, Inc., 
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
   
# Usage: $progname [OPTION]... [MODE-ARG]...
 PROGRAM=libtool
 PACKAGE=libtool
 VERSION="2.4.6 Debian-2.4.6-14"
 package_revision=2.4.6
 
 
 ## ------ ##
 ## Usage. ##
 ## ------ ##
 
 # Run './libtool --help' for help with using this script from the
 # command line.
 
 
 ## ------------------------------- ##
 ## User overridable command paths. ##
 ## ------------------------------- ##
 
 # After configure completes, it has a better idea of some of the
 # shell tools we need than the defaults used by the functions shared
 # with bootstrap, so set those here where they can still be over-
 # ridden by the user, but otherwise take precedence.
 
 : ${AUTOCONF="autoconf"}
 : ${AUTOMAKE="automake"}
 
 
 ## -------------------------- ##
 ## Source external libraries. ##
 ## -------------------------- ##
 
 # Much of our low-level functionality needs to be sourced from external
 # libraries, which are installed to $pkgauxdir.
 
 # Set a version string for this script.
 scriptversion=2015-01-20.17; # UTC
 
 # General shell script boiler plate, and helper functions.
 # Written by Gary V. Vaughan, 2004
 
 # Copyright (C) 2004-2015 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 
 # As a special exception to the GNU General Public License, if you distribute
 # this file as part of a program or library that is built using GNU Libtool,
 # you may include this file under the same distribution terms that you use
 # for the rest of that program.
 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
 # General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
 
 # Please report bugs or propose patches to gary@gnu.org.
 
 
 ## ------ ##
 ## Usage. ##
 ## ------ ##
 
 # Evaluate this file near the top of your script to gain access to
 # the functions and variables defined here:
 #  #
# Provide generalized library-building support services.#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
 #  #
#     --config             show all configuration variables# If you need to override any of the default environment variable
#     --debug              enable verbose shell tracing# settings, do that before evaluating this file.
# -n, --dry-run            display commands without modifying any files 
#     --features           display basic configuration information and exit 
#     --mode=MODE          use operation mode MODE 
#     --preserve-dup-deps  don't remove duplicate dependency libraries 
#     --quiet, --silent    don't print informational messages 
#     --tag=TAG            use configuration variables from tag TAG 
# -v, --verbose            print informational messages (default) 
#     --version            print version information 
# -h, --help               print short or long help message 
# 
# MODE must be one of the following: 
# 
#       clean              remove files from the build directory 
#       compile            compile a source file into a libtool object 
#       execute            automatically set library path, then run a program 
#       finish             complete the installation of libtool libraries 
#       install            install libraries or executables 
#       link               create a library or an executable 
#       uninstall          remove libraries from an installed directory 
# 
# MODE-ARGS vary depending on the MODE. 
# Try `$progname --help --mode=MODE' for a more detailed description of MODE. 
# 
# When reporting a bug, please describe a test case to reproduce it and 
# include the following information: 
# 
#       host-triplet:   $host 
#       shell:          $SHELL 
#       compiler:               $LTCC 
#       compiler flags:         $LTCFLAGS 
#       linker:         $LD (gnu? $with_gnu_ld) 
#       $progname:              (GNU libtool) 2.2.6b 
#       automake:               $automake_version 
#       autoconf:               $autoconf_version 
# 
# Report bugs to <bug-libtool@gnu.org>. 
   
 PROGRAM=ltmain.sh  
 PACKAGE=libtool  
 VERSION=2.2.6b  
 TIMESTAMP=""  
 package_revision=1.3017  
   
# Be Bourne compatible## -------------------- ##
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then## Shell normalisation. ##
 ## -------------------- ##
 
 # Some shells need a little help to be as Bourne compatible as possible.
 # Before doing anything else, make sure all that help has been provided!
 
 DUALCASE=1; export DUALCASE # for MKS sh
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh    emulate sh
   NULLCMD=:    NULLCMD=:
  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.    # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'    alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST    setopt NO_GLOB_SUBST
 else  else
  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
 fi  fi
 BIN_SH=xpg4; export BIN_SH # for Tru64  
 DUALCASE=1; export DUALCASE # for MKS sh  
   
# NLS nuisances: We save the old values to restore during execute mode.# NLS nuisances: We save the old values in case they are required later.
# Only set LANG and LC_ALL to C if already set._G_user_locale=
# These must not be set unconditionally because not all systems understand_G_safe_locale=
# e.g. LANG=C (notably SCO).for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
lt_user_locale= 
lt_safe_locale= 
for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 
 do  do
  eval "if test \"\${$lt_var+set}\" = set; then  eval "if test set = \"\${$_G_var+set}\"; then
          save_$lt_var=\$$lt_var          save_$_G_var=\$$_G_var
          $lt_var=C          $_G_var=C
          export $lt_var          export $_G_var
          lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"          _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
          lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"          _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
         fi"          fi"
 done  done
   
$lt_unset CDPATH# CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
   
   # Make sure IFS has a sensible default
   sp=' '
   nl='
   '
   IFS="$sp        $nl"
   
   # There are apparently some retarded systems that use ';' as a PATH separator!
   if test "${PATH_SEPARATOR+set}" != set; then
     PATH_SEPARATOR=:
     (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
       (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
         PATH_SEPARATOR=';'
     }
   fi
   
   
   
   ## ------------------------- ##
   ## Locate command utilities. ##
   ## ------------------------- ##
   
   
   # func_executable_p FILE
   # ----------------------
   # Check that FILE is an executable regular file.
   func_executable_p ()
   {
       test -f "$1" && test -x "$1"
   }
   
   
   # func_path_progs PROGS_LIST CHECK_FUNC [PATH]
   # --------------------------------------------
   # Search for either a program that responds to --version with output
   # containing "GNU", or else returned by CHECK_FUNC otherwise, by
   # trying all the directories in PATH with each of the elements of
   # PROGS_LIST.
   #
   # CHECK_FUNC should accept the path to a candidate program, and
   # set $func_check_prog_result if it truncates its output less than
   # $_G_path_prog_max characters.
   func_path_progs ()
   {
       _G_progs_list=$1
       _G_check_func=$2
       _G_PATH=${3-"$PATH"}
   
       _G_path_prog_max=0
       _G_path_prog_found=false
       _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
       for _G_dir in $_G_PATH; do
         IFS=$_G_save_IFS
         test -z "$_G_dir" && _G_dir=.
         for _G_prog_name in $_G_progs_list; do
           for _exeext in '' .EXE; do
             _G_path_prog=$_G_dir/$_G_prog_name$_exeext
             func_executable_p "$_G_path_prog" || continue
             case `"$_G_path_prog" --version 2>&1` in
               *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
               *)     $_G_check_func $_G_path_prog
                      func_path_progs_result=$func_check_prog_result
                      ;;
             esac
             $_G_path_prog_found && break 3
           done
         done
       done
       IFS=$_G_save_IFS
       test -z "$func_path_progs_result" && {
         echo "no acceptable sed could be found in \$PATH" >&2
         exit 1
       }
   }
   
   
   # We want to be able to use the functions in this file before configure
   # has figured out where the best binaries are kept, which means we have
   # to search for them ourselves - except when the results are already set
   # where we skip the searches.
   
   # Unless the user overrides by setting SED, search the path for either GNU
   # sed, or the sed that truncates its output the least.
   test -z "$SED" && {
     _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
     for _G_i in 1 2 3 4 5 6 7; do
       _G_sed_script=$_G_sed_script$nl$_G_sed_script
     done
     echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
     _G_sed_script=
   
     func_check_prog_sed ()
     {
       _G_path_prog=$1
   
       _G_count=0
       printf 0123456789 >conftest.in
       while :
       do
         cat conftest.in conftest.in >conftest.tmp
         mv conftest.tmp conftest.in
         cp conftest.in conftest.nl
         echo '' >> conftest.nl
         "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
         diff conftest.out conftest.nl >/dev/null 2>&1 || break
         _G_count=`expr $_G_count + 1`
         if test "$_G_count" -gt "$_G_path_prog_max"; then
           # Best one so far, save it but keep looking for a better one
           func_check_prog_result=$_G_path_prog
           _G_path_prog_max=$_G_count
         fi
         # 10*(2^10) chars as input seems more than enough
         test 10 -lt "$_G_count" && break
       done
       rm -f conftest.in conftest.tmp conftest.nl conftest.out
     }
   
     func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
     rm -f conftest.sed
     SED=$func_path_progs_result
   }
   
   
   # Unless the user overrides by setting GREP, search the path for either GNU
   # grep, or the grep that truncates its output the least.
   test -z "$GREP" && {
     func_check_prog_grep ()
     {
       _G_path_prog=$1
   
       _G_count=0
       _G_path_prog_max=0
       printf 0123456789 >conftest.in
       while :
       do
         cat conftest.in conftest.in >conftest.tmp
         mv conftest.tmp conftest.in
         cp conftest.in conftest.nl
         echo 'GREP' >> conftest.nl
         "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
         diff conftest.out conftest.nl >/dev/null 2>&1 || break
         _G_count=`expr $_G_count + 1`
         if test "$_G_count" -gt "$_G_path_prog_max"; then
           # Best one so far, save it but keep looking for a better one
           func_check_prog_result=$_G_path_prog
           _G_path_prog_max=$_G_count
         fi
         # 10*(2^10) chars as input seems more than enough
         test 10 -lt "$_G_count" && break
       done
       rm -f conftest.in conftest.tmp conftest.nl conftest.out
     }
   
     func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
     GREP=$func_path_progs_result
   }
   
   
   ## ------------------------------- ##
   ## User overridable command paths. ##
   ## ------------------------------- ##
   
   # All uppercase variable names are used for environment variables.  These
   # variables can be overridden by the user before calling a script that
   # uses them if a suitable command of that name is not already available
   # in the command search PATH.
   
 : ${CP="cp -f"}  : ${CP="cp -f"}
: ${ECHO="echo"}: ${ECHO="printf %s\n"}
: ${EGREP="/bin/grep -E"}: ${EGREP="$GREP -E"}
: ${FGREP="/bin/grep -F"}: ${FGREP="$GREP -F"}
: ${GREP="/bin/grep"} 
 : ${LN_S="ln -s"}  : ${LN_S="ln -s"}
 : ${MAKE="make"}  : ${MAKE="make"}
 : ${MKDIR="mkdir"}  : ${MKDIR="mkdir"}
 : ${MV="mv -f"}  : ${MV="mv -f"}
 : ${RM="rm -f"}  : ${RM="rm -f"}
 : ${SED="/bin/sed"}  
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}  : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}  
   
# Global variables:
 ## -------------------- ##
 ## Useful sed snippets. ##
 ## -------------------- ##
 
 sed_dirname='s|/[^/]*$||'
 sed_basename='s|^.*/||'
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
 sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
 
 # Same as above, but do not quote variable references.
 sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
 # Sed substitution that turns a string into a regex matching for the
 # string literally.
 sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
 
 # Sed substitution that converts a w32 file name or path
 # that contains forward slashes, into one that contains
 # (escaped) backslashes.  A very naive implementation.
 sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
 
 # Re-'\' parameter expansions in output of sed_double_quote_subst that
 # were '\'-ed in input to the same.  If an odd number of '\' preceded a
 # '$' in input to sed_double_quote_subst, that '$' was protected from
 # expansion.  Since each input '\' is now two '\'s, look for any number
 # of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
 _G_bs='\\'
 _G_bs2='\\\\'
 _G_bs4='\\\\\\\\'
 _G_dollar='\$'
 sed_double_backslash="\
   s/$_G_bs4/&\\
 /g
   s/^$_G_bs2$_G_dollar/$_G_bs&/
   s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
   s/\n//g"
 
 
 ## ----------------- ##
 ## Global variables. ##
 ## ----------------- ##
 
 # Except for the global variables explicitly listed below, the following
 # functions in the '^func_' namespace, and the '^require_' namespace
 # variables initialised in the 'Resource management' section, sourcing
 # this file will not pollute your global namespace with anything
 # else. There's no portable way to scope variables in Bourne shell
 # though, so actually running these functions will sometimes place
 # results into a variable named after the function, and often use
 # temporary variables in the '^_G_' namespace. If you are careful to
 # avoid using those namespaces casually in your sourcing script, things
 # should continue to work as you expect. And, of course, you can freely
 # overwrite any of the functions or variables defined here before
 # calling anything to customize them.
 
 EXIT_SUCCESS=0  EXIT_SUCCESS=0
 EXIT_FAILURE=1  EXIT_FAILURE=1
 EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.  EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
 EXIT_SKIP=77      # $? = 77 is used to indicate a skipped test to automake.  EXIT_SKIP=77      # $? = 77 is used to indicate a skipped test to automake.
   
   # Allow overriding, eg assuming that you follow the convention of
   # putting '$debug_cmd' at the start of all your functions, you can get
   # bash to show function call trace with:
   #
   #    debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
   debug_cmd=${debug_cmd-":"}
   exit_cmd=:
   
   # By convention, finish your script with:
   #
   #    exit $exit_status
   #
   # so that you can set exit_status to non-zero if you want to indicate
   # something went wrong during execution without actually bailing out at
   # the point of failure.
 exit_status=$EXIT_SUCCESS  exit_status=$EXIT_SUCCESS
   
 # Make sure IFS has a sensible default  
 lt_nl='  
 '  
 IFS="   $lt_nl"  
   
 dirname="s,/[^/]*$,,"  
 basename="s,^.*/,,"  
   
 # func_dirname_and_basename file append nondir_replacement  
 # perform func_basename and func_dirname in a single function  
 # call:  
 #   dirname:  Compute the dirname of FILE.  If nonempty,  
 #             add APPEND to the result, otherwise set result  
 #             to NONDIR_REPLACEMENT.  
 #             value returned in "$func_dirname_result"  
 #   basename: Compute filename of FILE.  
 #             value retuned in "$func_basename_result"  
 # Implementation must be kept synchronized with func_dirname  
 # and func_basename. For efficiency, we do not delegate to  
 # those functions but instead duplicate the functionality here.  
 func_dirname_and_basename ()  
 {  
   # Extract subdirectory from the argument.  
   func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`  
   if test "X$func_dirname_result" = "X${1}"; then  
     func_dirname_result="${3}"  
   else  
     func_dirname_result="$func_dirname_result${2}"  
   fi  
   func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`  
 }  
   
 # Generated shell functions inserted here.  
   
 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh  # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 # is ksh but when the shell is invoked as "sh" and the current value of  # is ksh but when the shell is invoked as "sh" and the current value of
 # the _XPG environment variable is not equal to 1 (one), the special  # the _XPG environment variable is not equal to 1 (one), the special
 # positional parameter $0, within a function call, is the name of the  # positional parameter $0, within a function call, is the name of the
 # function.  # function.
progpath="$0"progpath=$0
   
# The name of this program:# The name of this program.
# In the unlikely event $progname began with a '-', it would play havoc withprogname=`$ECHO "$progpath" |$SED "$sed_basename"`
# func_echo (imagine progname=-n), so we prepend ./ in that case: 
func_dirname_and_basename "$progpath" 
progname=$func_basename_result 
case $progname in 
  -*) progname=./$progname ;; 
esac 
   
# Make sure we have an absolute path for reexecution:# Make sure we have an absolute progpath for reexecution:
 case $progpath in  case $progpath in
   [\\/]*|[A-Za-z]:\\*) ;;    [\\/]*|[A-Za-z]:\\*) ;;
   *[\\/]*)    *[\\/]*)
     progdir=$func_dirname_result     progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
      progdir=`cd "$progdir" && pwd`       progdir=`cd "$progdir" && pwd`
     progpath="$progdir/$progname"     progpath=$progdir/$progname
      ;;       ;;
   *)    *)
     save_IFS="$IFS"     _G_IFS=$IFS
     IFS=:     IFS=${PATH_SEPARATOR-:}
      for progdir in $PATH; do       for progdir in $PATH; do
       IFS="$save_IFS"       IFS=$_G_IFS
        test -x "$progdir/$progname" && break         test -x "$progdir/$progname" && break
      done       done
     IFS="$save_IFS"     IFS=$_G_IFS
      test -n "$progdir" || progdir=`pwd`       test -n "$progdir" || progdir=`pwd`
     progpath="$progdir/$progname"     progpath=$progdir/$progname
      ;;       ;;
 esac  esac
   
 # Sed substitution that helps us do robust quoting.  It backslashifies  
 # metacharacters that are still active within double-quoted strings.  
 Xsed="${SED}"' -e 1s/^X//'  
 sed_quote_subst='s/\([`"$\\]\)/\\\1/g'  
   
# Same as above, but do not quote variable references.## ----------------- ##
double_quote_subst='s/\(["`\\]\)/\\\1/g'## Standard options. ##
 ## ----------------- ##
   
# Re-`\' parameter expansions in output of double_quote_subst that were# The following options affect the operation of the functions defined
# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'# below, and should be set appropriately depending on run-time para-
# in input to double_quote_subst, that '$' was protected from expansion.# meters passed on the command line.
# Since each input `\' is now two `\'s, look for any number of runs of 
# four `\'s followed by two `\'s and then a '$'.  `\' that '$'. 
bs='\\' 
bs2='\\\\' 
bs4='\\\\\\\\' 
dollar='\$' 
sed_double_backslash="\ 
  s/$bs4/&\\ 
/g 
  s/^$bs2$dollar/$bs&/ 
  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g 
  s/\n//g" 
   
 # Standard options:  
 opt_dry_run=false  opt_dry_run=false
 opt_help=false  
 opt_quiet=false  opt_quiet=false
 opt_verbose=false  opt_verbose=false
 opt_warning=:  
   
# func_echo arg...# Categories 'all' and 'none' are always available.  Append any others
# Echo program name prefixed message, along with the current mode# you will pass as the first argument to func_warning from your own
# name if it has been set yet.# code.
 warning_categories=
 
 # By default, display warnings according to 'opt_warning_types'.  Set
 # 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
 # treat the next displayed warning as a fatal error.
 warning_func=func_warn_and_continue
 
 # Set to 'all' to display all warnings, 'none' to suppress all
 # warnings, or a space delimited list of some subset of
 # 'warning_categories' to display only the listed warnings.
 opt_warning_types=all
 
 
 ## -------------------- ##
 ## Resource management. ##
 ## -------------------- ##
 
 # This section contains definitions for functions that each ensure a
 # particular resource (a file, or a non-empty configuration variable for
 # example) is available, and if appropriate to extract default values
 # from pertinent package files. Call them using their associated
 # 'require_*' variable to ensure that they are executed, at most, once.
 #
 # It's entirely deliberate that calling these functions can set
 # variables that don't obey the namespace limitations obeyed by the rest
 # of this file, in order that that they be as useful as possible to
 # callers.
 
 
 # require_term_colors
 # -------------------
 # Allow display of bold text on terminals that support it.
 require_term_colors=func_require_term_colors
 func_require_term_colors ()
 {
     $debug_cmd
 
     test -t 1 && {
       # COLORTERM and USE_ANSI_COLORS environment variables take
       # precedence, because most terminfo databases neglect to describe
       # whether color sequences are supported.
       test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
 
       if test 1 = "$USE_ANSI_COLORS"; then
         # Standard ANSI escape sequences
         tc_reset=''
         tc_bold='';   tc_standout=''
         tc_red='';   tc_green=''
         tc_blue='';  tc_cyan=''
       else
         # Otherwise trust the terminfo database after all.
         test -n "`tput sgr0 2>/dev/null`" && {
           tc_reset=`tput sgr0`
           test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
           tc_standout=$tc_bold
           test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
           test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
           test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
           test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
           test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
         }
       fi
     }
 
     require_term_colors=:
 }
 
 
 ## ----------------- ##
 ## Function library. ##
 ## ----------------- ##
 
 # This section contains a variety of useful functions to call in your
 # scripts. Take note of the portable wrappers for features provided by
 # some modern shells, which will fall back to slower equivalents on
 # less featureful shells.
 
 
 # func_append VAR VALUE
 # ---------------------
 # Append VALUE onto the existing contents of VAR.
 
   # We should try to minimise forks, especially on Windows where they are
   # unreasonably slow, so skip the feature probes when bash or zsh are
   # being used:
   if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
     : ${_G_HAVE_ARITH_OP="yes"}
     : ${_G_HAVE_XSI_OPS="yes"}
     # The += operator was introduced in bash 3.1
     case $BASH_VERSION in
       [12].* | 3.0 | 3.0*) ;;
       *)
         : ${_G_HAVE_PLUSEQ_OP="yes"}
         ;;
     esac
   fi
 
   # _G_HAVE_PLUSEQ_OP
   # Can be empty, in which case the shell is probed, "yes" if += is
   # useable or anything else if it does not work.
   test -z "$_G_HAVE_PLUSEQ_OP" \
     && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
     && _G_HAVE_PLUSEQ_OP=yes
 
 if test yes = "$_G_HAVE_PLUSEQ_OP"
 then
   # This is an XSI compatible shell, allowing a faster implementation...
   eval 'func_append ()
   {
     $debug_cmd
 
     eval "$1+=\$2"
   }'
 else
   # ...otherwise fall back to using expr, which is often a shell builtin.
   func_append ()
   {
     $debug_cmd
 
     eval "$1=\$$1\$2"
   }
 fi
 
 
 # func_append_quoted VAR VALUE
 # ----------------------------
 # Quote VALUE and append to the end of shell variable VAR, separated
 # by a space.
 if test yes = "$_G_HAVE_PLUSEQ_OP"; then
   eval 'func_append_quoted ()
   {
     $debug_cmd
 
     func_quote_for_eval "$2"
     eval "$1+=\\ \$func_quote_for_eval_result"
   }'
 else
   func_append_quoted ()
   {
     $debug_cmd
 
     func_quote_for_eval "$2"
     eval "$1=\$$1\\ \$func_quote_for_eval_result"
   }
 fi
 
 
 # func_append_uniq VAR VALUE
 # --------------------------
 # Append unique VALUE onto the existing contents of VAR, assuming
 # entries are delimited by the first character of VALUE.  For example:
 #
 #   func_append_uniq options " --another-option option-argument"
 #
 # will only append to $options if " --another-option option-argument "
 # is not already present somewhere in $options already (note spaces at
 # each end implied by leading space in second argument).
 func_append_uniq ()
 {
     $debug_cmd
 
     eval _G_current_value='`$ECHO $'$1'`'
     _G_delim=`expr "$2" : '\(.\)'`
 
     case $_G_delim$_G_current_value$_G_delim in
       *"$2$_G_delim"*) ;;
       *) func_append "$@" ;;
     esac
 }
 
 
 # func_arith TERM...
 # ------------------
 # Set func_arith_result to the result of evaluating TERMs.
   test -z "$_G_HAVE_ARITH_OP" \
     && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
     && _G_HAVE_ARITH_OP=yes
 
 if test yes = "$_G_HAVE_ARITH_OP"; then
   eval 'func_arith ()
   {
     $debug_cmd
 
     func_arith_result=$(( $* ))
   }'
 else
   func_arith ()
   {
     $debug_cmd
 
     func_arith_result=`expr "$@"`
   }
 fi
 
 
 # func_basename FILE
 # ------------------
 # Set func_basename_result to FILE with everything up to and including
 # the last / stripped.
 if test yes = "$_G_HAVE_XSI_OPS"; then
   # If this shell supports suffix pattern removal, then use it to avoid
   # forking. Hide the definitions single quotes in case the shell chokes
   # on unsupported syntax...
   _b='func_basename_result=${1##*/}'
   _d='case $1 in
         */*) func_dirname_result=${1%/*}$2 ;;
         *  ) func_dirname_result=$3        ;;
       esac'
 
 else
   # ...otherwise fall back to using sed.
   _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
   _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
       if test "X$func_dirname_result" = "X$1"; then
         func_dirname_result=$3
       else
         func_append func_dirname_result "$2"
       fi'
 fi
 
 eval 'func_basename ()
 {
     $debug_cmd
 
     '"$_b"'
 }'
 
 
 # func_dirname FILE APPEND NONDIR_REPLACEMENT
 # -------------------------------------------
 # Compute the dirname of FILE.  If nonempty, add APPEND to the result,
 # otherwise set result to NONDIR_REPLACEMENT.
 eval 'func_dirname ()
 {
     $debug_cmd
 
     '"$_d"'
 }'
 
 
 # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
 # --------------------------------------------------------
 # Perform func_basename and func_dirname in a single function
 # call:
 #   dirname:  Compute the dirname of FILE.  If nonempty,
 #             add APPEND to the result, otherwise set result
 #             to NONDIR_REPLACEMENT.
 #             value returned in "$func_dirname_result"
 #   basename: Compute filename of FILE.
 #             value retuned in "$func_basename_result"
 # For efficiency, we do not delegate to the functions above but instead
 # duplicate the functionality here.
 eval 'func_dirname_and_basename ()
 {
     $debug_cmd
 
     '"$_b"'
     '"$_d"'
 }'
 
 
 # func_echo ARG...
 # ----------------
 # Echo program name prefixed message.
 func_echo ()  func_echo ()
 {  {
    $ECHO "$progname${mode+: }$mode: $*"    $debug_cmd
 
     _G_message=$*
 
     func_echo_IFS=$IFS
     IFS=$nl
     for _G_line in $_G_message; do
       IFS=$func_echo_IFS
       $ECHO "$progname: $_G_line"
     done
     IFS=$func_echo_IFS
 }  }
   
# func_verbose arg...
Echo program name prefixed message in verbose mode only.# func_echo_all ARG...
func_verbose ()--------------------
 # Invoke $ECHO with all args, space-separated.
 func_echo_all ()
 {  {
    $opt_verbose && func_echo ${1+"$@"}    $ECHO "$*"
 }
   
    # A bug in bash halts the script if the last line of a function
    # fails when set -e is in force, so we need another command to# func_echo_infix_1 INFIX ARG...
    # work around that:# ------------------------------
    :# Echo program name, followed by INFIX on the first line, with any
 # additional lines not showing INFIX.
 func_echo_infix_1 ()
 {
     $debug_cmd
 
     $require_term_colors
 
     _G_infix=$1; shift
     _G_indent=$_G_infix
     _G_prefix="$progname: $_G_infix: "
     _G_message=$*
 
     # Strip color escape sequences before counting printable length
     for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
     do
       test -n "$_G_tc" && {
         _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
         _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
       }
     done
     _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
 
     func_echo_infix_1_IFS=$IFS
     IFS=$nl
     for _G_line in $_G_message; do
       IFS=$func_echo_infix_1_IFS
       $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
       _G_prefix=$_G_indent
     done
     IFS=$func_echo_infix_1_IFS
 }  }
   
# func_error arg...
 # func_error ARG...
 # -----------------
 # Echo program name prefixed message to standard error.  # Echo program name prefixed message to standard error.
 func_error ()  func_error ()
 {  {
    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2    $debug_cmd
} 
   
# func_warning arg...    $require_term_colors
# Echo program name prefixed warning message to standard error. 
func_warning () 
{ 
    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 
   
    # bash bug again:    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
    : 
 }  }
   
# func_fatal_error arg...
 # func_fatal_error ARG...
 # -----------------------
 # Echo program name prefixed message to standard error, and exit.  # Echo program name prefixed message to standard error, and exit.
 func_fatal_error ()  func_fatal_error ()
 {  {
    func_error ${1+"$@"}    $debug_cmd
 
     func_error "$*"
     exit $EXIT_FAILURE      exit $EXIT_FAILURE
 }  }
   
 # func_fatal_help arg...  
 # Echo program name prefixed message to standard error, followed by  
 # a help hint, and exit.  
 func_fatal_help ()  
 {  
     func_error ${1+"$@"}  
     func_fatal_error "$help"  
 }  
 help="Try \`$progname --help' for more information."  ## default  
   
# func_grep EXPRESSION FILENAME
# func_grep expression filename# -----------------------------
 # Check whether EXPRESSION matches any line of FILENAME, without output.  # Check whether EXPRESSION matches any line of FILENAME, without output.
 func_grep ()  func_grep ()
 {  {
       $debug_cmd
   
     $GREP "$1" "$2" >/dev/null 2>&1      $GREP "$1" "$2" >/dev/null 2>&1
 }  }
   
   
# func_mkdir_p directory-path# func_len STRING
 # ---------------
 # Set func_len_result to the length of STRING. STRING may not
 # start with a hyphen.
   test -z "$_G_HAVE_XSI_OPS" \
     && (eval 'x=a/b/c;
       test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
     && _G_HAVE_XSI_OPS=yes
 
 if test yes = "$_G_HAVE_XSI_OPS"; then
   eval 'func_len ()
   {
     $debug_cmd
 
     func_len_result=${#1}
   }'
 else
   func_len ()
   {
     $debug_cmd
 
     func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
   }
 fi
 
 
 # func_mkdir_p DIRECTORY-PATH
 # ---------------------------
 # Make sure the entire path to DIRECTORY-PATH is available.  # Make sure the entire path to DIRECTORY-PATH is available.
 func_mkdir_p ()  func_mkdir_p ()
 {  {
    my_directory_path="$1"    $debug_cmd
    my_dir_list= 
   
    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then    _G_directory_path=$1
     _G_dir_list=
   
      # Protect directory names starting with `-'    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
      case $my_directory_path in
        -*) my_directory_path="./$my_directory_path" ;;      # Protect directory names starting with '-'
       case $_G_directory_path in
         -*) _G_directory_path=./$_G_directory_path ;;
       esac        esac
   
       # While some portion of DIR does not yet exist...        # While some portion of DIR does not yet exist...
      while test ! -d "$my_directory_path"; do      while test ! -d "$_G_directory_path"; do
         # ...make a list in topmost first order.  Use a colon delimited          # ...make a list in topmost first order.  Use a colon delimited
         # list incase some portion of path contains whitespace.          # list incase some portion of path contains whitespace.
        my_dir_list="$my_directory_path:$my_dir_list"        _G_dir_list=$_G_directory_path:$_G_dir_list
   
         # If the last portion added has no slash in it, the list is done          # If the last portion added has no slash in it, the list is done
        case $my_directory_path in */*) ;; *) break ;; esac        case $_G_directory_path in */*) ;; *) break ;; esac
   
         # ...otherwise throw away the child directory and loop          # ...otherwise throw away the child directory and loop
        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
       done        done
      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
   
      save_mkdir_p_IFS="$IFS"; IFS=':'      func_mkdir_p_IFS=$IFS; IFS=:
      for my_dir in $my_dir_list; do      for _G_dir in $_G_dir_list; do
        IFS="$save_mkdir_p_IFS"        IFS=$func_mkdir_p_IFS
        # mkdir can fail with a `File exist' error if two processes        # mkdir can fail with a 'File exist' error if two processes
         # try to create one of the directories concurrently.  Don't          # try to create one of the directories concurrently.  Don't
         # stop in that case!          # stop in that case!
        $MKDIR "$my_dir" 2>/dev/null || :        $MKDIR "$_G_dir" 2>/dev/null || :
       done        done
      IFS="$save_mkdir_p_IFS"      IFS=$func_mkdir_p_IFS
   
       # Bail out if we (or some other process) failed to create a directory.        # Bail out if we (or some other process) failed to create a directory.
      test -d "$my_directory_path" || \      test -d "$_G_directory_path" || \
        func_fatal_error "Failed to create \`$1'"        func_fatal_error "Failed to create '$1'"
     fi      fi
 }  }
   
   
# func_mktempdir [string]# func_mktempdir [BASENAME]
 # -------------------------
 # Make a temporary directory that won't clash with other running  # Make a temporary directory that won't clash with other running
 # libtool processes, and avoids race conditions if possible.  If  # libtool processes, and avoids race conditions if possible.  If
# given, STRING is the basename for that directory.# given, BASENAME is the basename for that directory.
 func_mktempdir ()  func_mktempdir ()
 {  {
    my_template="${TMPDIR-/tmp}/${1-$progname}"    $debug_cmd
   
    if test "$opt_dry_run" = ":"; then    _G_template=${TMPDIR-/tmp}/${1-$progname}
 
     if test : = "$opt_dry_run"; then
       # Return a directory name, but don't create it in dry-run mode        # Return a directory name, but don't create it in dry-run mode
      my_tmpdir="${my_template}-$$"      _G_tmpdir=$_G_template-$$
     else      else
   
       # If mktemp works, use that first and foremost        # If mktemp works, use that first and foremost
      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
   
      if test ! -d "$my_tmpdir"; then      if test ! -d "$_G_tmpdir"; then
         # Failing that, at least try and use $RANDOM to avoid a race          # Failing that, at least try and use $RANDOM to avoid a race
        my_tmpdir="${my_template}-${RANDOM-0}$$"        _G_tmpdir=$_G_template-${RANDOM-0}$$
   
        save_mktempdir_umask=`umask`        func_mktempdir_umask=`umask`
         umask 0077          umask 0077
        $MKDIR "$my_tmpdir"        $MKDIR "$_G_tmpdir"
        umask $save_mktempdir_umask        umask $func_mktempdir_umask
       fi        fi
   
       # If we're not in dry-run mode, bomb out on failure        # If we're not in dry-run mode, bomb out on failure
      test -d "$my_tmpdir" || \      test -d "$_G_tmpdir" || \
        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
     fi      fi
   
    $ECHO "X$my_tmpdir" | $Xsed    $ECHO "$_G_tmpdir"
 }  }
   
   
# func_quote_for_eval arg# func_normal_abspath PATH
# Aesthetically quote ARG to be evaled later.# ------------------------
# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT# Remove doubled-up and trailing slashes, "." path components,
# is double-quoted, suitable for a subsequent eval, whereas# and cancel out any ".." path components in PATH after making
# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters# it an absolute path.
# which are still active within double quotes backslashified.func_normal_abspath ()
func_quote_for_eval () 
 {  {
    case $1 in    $debug_cmd
      *[\\\`\"\$]*) 
        func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; 
      *) 
        func_quote_for_eval_unquoted_result="$1" ;; 
    esac 
   
    case $func_quote_for_eval_unquoted_result in    # These SED scripts presuppose an absolute path with a trailing slash.
      # Double-quote args containing shell metacharacters to delay    _G_pathcar='s|^/\([^/]*\).*$|\1|'
      # word splitting, command substitution and and variable    _G_pathcdr='s|^/[^/]*||'
      # expansion for a subsequent eval.    _G_removedotparts=':dotsl
      # Many Bourne shells cannot handle close brackets correctly                s|/\./|/|g
      # in scan sets, so we specify it separately.                t dotsl
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")                s|/\.$|/|'
        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""    _G_collapseslashes='s|/\{1,\}|/|g'
     _G_finalslash='s|/*$|/|'
 
     # Start from root dir and reassemble the path.
     func_normal_abspath_result=
     func_normal_abspath_tpath=$1
     func_normal_abspath_altnamespace=
     case $func_normal_abspath_tpath in
       "")
         # Empty path, that just means $cwd.
         func_stripname '' '/' "`pwd`"
         func_normal_abspath_result=$func_stripname_result
         return
         ;;          ;;
         # The next three entries are used to spot a run of precisely
         # two leading slashes without using negated character classes;
         # we take advantage of case's first-match behaviour.
         ///*)
           # Unusual form of absolute path, do nothing.
           ;;
         //*)
           # Not necessarily an ordinary path; POSIX reserves leading '//'
           # and for example Cygwin uses it to access remote file shares
           # over CIFS/SMB, so we conserve a leading double slash if found.
           func_normal_abspath_altnamespace=/
           ;;
         /*)
           # Absolute path, do nothing.
           ;;
       *)        *)
        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"        # Relative path, prepend $cwd.
         func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
         ;;
     esac      esac
   
       # Cancel out all the simple stuff to save iterations.  We also want
       # the path to end with a slash for ease of parsing, so make sure
       # there is one (and only one) here.
       func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
             -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
       while :; do
         # Processed it all yet?
         if test / = "$func_normal_abspath_tpath"; then
           # If we ascended to the root using ".." the result may be empty now.
           if test -z "$func_normal_abspath_result"; then
             func_normal_abspath_result=/
           fi
           break
         fi
         func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
             -e "$_G_pathcar"`
         func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
             -e "$_G_pathcdr"`
         # Figure out what to do with it
         case $func_normal_abspath_tcomponent in
           "")
             # Trailing empty path component, ignore it.
             ;;
           ..)
             # Parent dir; strip last assembled component from result.
             func_dirname "$func_normal_abspath_result"
             func_normal_abspath_result=$func_dirname_result
             ;;
           *)
             # Actual path component, append it.
             func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
             ;;
         esac
       done
       # Restore leading double-slash if one was found on entry.
       func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 }  }
   
   
# func_quote_for_expand arg# func_notquiet ARG...
 # --------------------
 # Echo program name prefixed message only when not in quiet mode.
 func_notquiet ()
 {
     $debug_cmd
 
     $opt_quiet || func_echo ${1+"$@"}
 
     # A bug in bash halts the script if the last line of a function
     # fails when set -e is in force, so we need another command to
     # work around that:
     :
 }
 
 
 # func_relative_path SRCDIR DSTDIR
 # --------------------------------
 # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
 func_relative_path ()
 {
     $debug_cmd
 
     func_relative_path_result=
     func_normal_abspath "$1"
     func_relative_path_tlibdir=$func_normal_abspath_result
     func_normal_abspath "$2"
     func_relative_path_tbindir=$func_normal_abspath_result
 
     # Ascend the tree starting from libdir
     while :; do
       # check if we have found a prefix of bindir
       case $func_relative_path_tbindir in
         $func_relative_path_tlibdir)
           # found an exact match
           func_relative_path_tcancelled=
           break
           ;;
         $func_relative_path_tlibdir*)
           # found a matching prefix
           func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
           func_relative_path_tcancelled=$func_stripname_result
           if test -z "$func_relative_path_result"; then
             func_relative_path_result=.
           fi
           break
           ;;
         *)
           func_dirname $func_relative_path_tlibdir
           func_relative_path_tlibdir=$func_dirname_result
           if test -z "$func_relative_path_tlibdir"; then
             # Have to descend all the way to the root!
             func_relative_path_result=../$func_relative_path_result
             func_relative_path_tcancelled=$func_relative_path_tbindir
             break
           fi
           func_relative_path_result=../$func_relative_path_result
           ;;
       esac
     done
 
     # Now calculate path; take care to avoid doubling-up slashes.
     func_stripname '' '/' "$func_relative_path_result"
     func_relative_path_result=$func_stripname_result
     func_stripname '/' '/' "$func_relative_path_tcancelled"
     if test -n "$func_stripname_result"; then
       func_append func_relative_path_result "/$func_stripname_result"
     fi
 
     # Normalisation. If bindir is libdir, return '.' else relative path.
     if test -n "$func_relative_path_result"; then
       func_stripname './' '' "$func_relative_path_result"
       func_relative_path_result=$func_stripname_result
     fi
 
     test -n "$func_relative_path_result" || func_relative_path_result=.
 
     :
 }
 
 
 # func_quote_for_eval ARG...
 # --------------------------
 # Aesthetically quote ARGs to be evaled later.
 # This function returns two values:
 #   i) func_quote_for_eval_result
 #      double-quoted, suitable for a subsequent eval
 #  ii) func_quote_for_eval_unquoted_result
 #      has all characters that are still active within double
 #      quotes backslashified.
 func_quote_for_eval ()
 {
     $debug_cmd
 
     func_quote_for_eval_unquoted_result=
     func_quote_for_eval_result=
     while test 0 -lt $#; do
       case $1 in
         *[\\\`\"\$]*)
           _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
         *)
           _G_unquoted_arg=$1 ;;
       esac
       if test -n "$func_quote_for_eval_unquoted_result"; then
         func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
       else
         func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
       fi
 
       case $_G_unquoted_arg in
         # Double-quote args containing shell metacharacters to delay
         # word splitting, command substitution and variable expansion
         # for a subsequent eval.
         # Many Bourne shells cannot handle close brackets correctly
         # in scan sets, so we specify it separately.
         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
           _G_quoted_arg=\"$_G_unquoted_arg\"
           ;;
         *)
           _G_quoted_arg=$_G_unquoted_arg
           ;;
       esac
 
       if test -n "$func_quote_for_eval_result"; then
         func_append func_quote_for_eval_result " $_G_quoted_arg"
       else
         func_append func_quote_for_eval_result "$_G_quoted_arg"
       fi
       shift
     done
 }
 
 
 # func_quote_for_expand ARG
 # -------------------------
 # Aesthetically quote ARG to be evaled later; same as above,  # Aesthetically quote ARG to be evaled later; same as above,
 # but do not quote variable references.  # but do not quote variable references.
 func_quote_for_expand ()  func_quote_for_expand ()
 {  {
       $debug_cmd
   
     case $1 in      case $1 in
       *[\\\`\"]*)        *[\\\`\"]*)
        my_arg=`$ECHO "X$1" | $Xsed \        _G_arg=`$ECHO "$1" | $SED \
            -e "$double_quote_subst" -e "$sed_double_backslash"` ;;            -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
       *)        *)
        my_arg="$1" ;;        _G_arg=$1 ;;
     esac      esac
   
    case $my_arg in    case $_G_arg in
       # Double-quote args containing shell metacharacters to delay        # Double-quote args containing shell metacharacters to delay
       # word splitting and command substitution for a subsequent eval.        # word splitting and command substitution for a subsequent eval.
       # Many Bourne shells cannot handle close brackets correctly        # Many Bourne shells cannot handle close brackets correctly
       # in scan sets, so we specify it separately.        # in scan sets, so we specify it separately.
       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
        my_arg="\"$my_arg\""        _G_arg=\"$_G_arg\"
         ;;          ;;
     esac      esac
   
    func_quote_for_expand_result="$my_arg"    func_quote_for_expand_result=$_G_arg
 }  }
   
   
# func_show_eval cmd [fail_exp]# func_stripname PREFIX SUFFIX NAME
# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is# ---------------------------------
 # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
 # PREFIX and SUFFIX must not contain globbing or regex special
 # characters, hashes, percent signs, but SUFFIX may contain a leading
 # dot (in which case that matches only a dot).
 if test yes = "$_G_HAVE_XSI_OPS"; then
   eval 'func_stripname ()
   {
     $debug_cmd
 
     # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
     # positional parameters, so assign one to ordinary variable first.
     func_stripname_result=$3
     func_stripname_result=${func_stripname_result#"$1"}
     func_stripname_result=${func_stripname_result%"$2"}
   }'
 else
   func_stripname ()
   {
     $debug_cmd
 
     case $2 in
       .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
       *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
     esac
   }
 fi
 
 
 # func_show_eval CMD [FAIL_EXP]
 # -----------------------------
 # Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
 # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP  # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 # is given, then evaluate it.  # is given, then evaluate it.
 func_show_eval ()  func_show_eval ()
 {  {
    my_cmd="$1"    $debug_cmd
    my_fail_exp="${2-:}" 
   
    ${opt_silent-false} || {    _G_cmd=$1
      func_quote_for_expand "$my_cmd"    _G_fail_exp=${2-':'}
      eval "func_echo $func_quote_for_expand_result" 
    } 
   
    if ${opt_dry_run-false}; then :; else    func_quote_for_expand "$_G_cmd"
      eval "$my_cmd"    eval "func_notquiet $func_quote_for_expand_result"
      my_status=$?
      if test "$my_status" -eq 0; then :; else    $opt_dry_run || {
        eval "(exit $my_status); $my_fail_exp"      eval "$_G_cmd"
       _G_status=$?
       if test 0 -ne "$_G_status"; then
         eval "(exit $_G_status); $_G_fail_exp"
       fi        fi
    fi    }
 }  }
   
   
# func_show_eval_locale cmd [fail_exp]# func_show_eval_locale CMD [FAIL_EXP]
# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is# ------------------------------------
 # Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
 # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP  # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
 # is given, then evaluate it.  Use the saved locale for evaluation.  # is given, then evaluate it.  Use the saved locale for evaluation.
 func_show_eval_locale ()  func_show_eval_locale ()
 {  {
    my_cmd="$1"    $debug_cmd
    my_fail_exp="${2-:}" 
   
    ${opt_silent-false} || {    _G_cmd=$1
      func_quote_for_expand "$my_cmd"    _G_fail_exp=${2-':'}
 
     $opt_quiet || {
       func_quote_for_expand "$_G_cmd"
       eval "func_echo $func_quote_for_expand_result"        eval "func_echo $func_quote_for_expand_result"
     }      }
   
    if ${opt_dry_run-false}; then :; else    $opt_dry_run || {
      eval "$lt_user_locale      eval "$_G_user_locale
            $my_cmd"            $_G_cmd"
      my_status=$?      _G_status=$?
      eval "$lt_safe_locale"      eval "$_G_safe_locale"
      if test "$my_status" -eq 0; then :; else      if test 0 -ne "$_G_status"; then
        eval "(exit $my_status); $my_fail_exp"        eval "(exit $_G_status); $_G_fail_exp"
       fi        fi
       }
   }
   
   
   # func_tr_sh
   # ----------
   # Turn $1 into a string suitable for a shell variable name.
   # Result is stored in $func_tr_sh_result.  All characters
   # not in the set a-zA-Z0-9_ are replaced with '_'. Further,
   # if $1 begins with a digit, a '_' is prepended as well.
   func_tr_sh ()
   {
       $debug_cmd
   
       case $1 in
       [0-9]* | *[!a-zA-Z0-9_]*)
         func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
         ;;
       * )
         func_tr_sh_result=$1
         ;;
       esac
   }
   
   
   # func_verbose ARG...
   # -------------------
   # Echo program name prefixed message in verbose mode only.
   func_verbose ()
   {
       $debug_cmd
   
       $opt_verbose && func_echo "$*"
   
       :
   }
   
   
   # func_warn_and_continue ARG...
   # -----------------------------
   # Echo program name prefixed warning message to standard error.
   func_warn_and_continue ()
   {
       $debug_cmd
   
       $require_term_colors
   
       func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
   }
   
   
   # func_warning CATEGORY ARG...
   # ----------------------------
   # Echo program name prefixed warning message to standard error. Warning
   # messages can be filtered according to CATEGORY, where this function
   # elides messages where CATEGORY is not listed in the global variable
   # 'opt_warning_types'.
   func_warning ()
   {
       $debug_cmd
   
       # CATEGORY must be in the warning_categories list!
       case " $warning_categories " in
         *" $1 "*) ;;
         *) func_internal_error "invalid warning category '$1'" ;;
       esac
   
       _G_category=$1
       shift
   
       case " $opt_warning_types " in
         *" $_G_category "*) $warning_func ${1+"$@"} ;;
       esac
   }
   
   
   # func_sort_ver VER1 VER2
   # -----------------------
   # 'sort -V' is not generally available.
   # Note this deviates from the version comparison in automake
   # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
   # but this should suffice as we won't be specifying old
   # version formats or redundant trailing .0 in bootstrap.conf.
   # If we did want full compatibility then we should probably
   # use m4_version_compare from autoconf.
   func_sort_ver ()
   {
       $debug_cmd
   
       printf '%s\n%s\n' "$1" "$2" \
         | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
   }
   
   # func_lt_ver PREV CURR
   # ---------------------
   # Return true if PREV and CURR are in the correct order according to
   # func_sort_ver, otherwise false.  Use it like this:
   #
   #  func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
   func_lt_ver ()
   {
       $debug_cmd
   
       test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
   }
   
   
   # Local variables:
   # mode: shell-script
   # sh-indentation: 2
   # eval: (add-hook 'before-save-hook 'time-stamp)
   # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
   # time-stamp-time-zone: "UTC"
   # End:
   #! /bin/sh
   
   # Set a version string for this script.
   scriptversion=2015-10-07.11; # UTC
   
   # A portable, pluggable option parser for Bourne shell.
   # Written by Gary V. Vaughan, 2010
   
   # Copyright (C) 2010-2015 Free Software Foundation, Inc.
   # This is free software; see the source for copying conditions.  There is NO
   # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   
   # This program is free software: you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation, either version 3 of the License, or
   # (at your option) any later version.
   
   # This program is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   
   # You should have received a copy of the GNU General Public License
   # along with this program.  If not, see <http://www.gnu.org/licenses/>.
   
   # Please report bugs or propose patches to gary@gnu.org.
   
   
   ## ------ ##
   ## Usage. ##
   ## ------ ##
   
   # This file is a library for parsing options in your shell scripts along
   # with assorted other useful supporting features that you can make use
   # of too.
   #
   # For the simplest scripts you might need only:
   #
   #   #!/bin/sh
   #   . relative/path/to/funclib.sh
   #   . relative/path/to/options-parser
   #   scriptversion=1.0
   #   func_options ${1+"$@"}
   #   eval set dummy "$func_options_result"; shift
   #   ...rest of your script...
   #
   # In order for the '--version' option to work, you will need to have a
   # suitably formatted comment like the one at the top of this file
   # starting with '# Written by ' and ending with '# warranty; '.
   #
   # For '-h' and '--help' to work, you will also need a one line
   # description of your script's purpose in a comment directly above the
   # '# Written by ' line, like the one at the top of this file.
   #
   # The default options also support '--debug', which will turn on shell
   # execution tracing (see the comment above debug_cmd below for another
   # use), and '--verbose' and the func_verbose function to allow your script
   # to display verbose messages only when your user has specified
   # '--verbose'.
   #
   # After sourcing this file, you can plug processing for additional
   # options by amending the variables from the 'Configuration' section
   # below, and following the instructions in the 'Option parsing'
   # section further down.
   
   ## -------------- ##
   ## Configuration. ##
   ## -------------- ##
   
   # You should override these variables in your script after sourcing this
   # file so that they reflect the customisations you have added to the
   # option parser.
   
   # The usage line for option parsing errors and the start of '-h' and
   # '--help' output messages. You can embed shell variables for delayed
   # expansion at the time the message is displayed, but you will need to
   # quote other shell meta-characters carefully to prevent them being
   # expanded when the contents are evaled.
   usage='$progpath [OPTION]...'
   
   # Short help message in response to '-h' and '--help'.  Add to this or
   # override it after sourcing this library to reflect the full set of
   # options your script accepts.
   usage_message="\
          --debug        enable verbose shell tracing
      -W, --warnings=CATEGORY
                         report the warnings falling in CATEGORY [all]
      -v, --verbose      verbosely report processing
          --version      print version information and exit
      -h, --help         print short or long help message and exit
   "
   
   # Additional text appended to 'usage_message' in response to '--help'.
   long_help_message="
   Warning categories include:
          'all'          show all warnings
          'none'         turn off all the warnings
          'error'        warnings are treated as fatal errors"
   
   # Help message printed before fatal option parsing errors.
   fatal_help="Try '\$progname --help' for more information."
   
   
   
   ## ------------------------- ##
   ## Hook function management. ##
   ## ------------------------- ##
   
   # This section contains functions for adding, removing, and running hooks
   # to the main code.  A hook is just a named list of of function, that can
   # be run in order later on.
   
   # func_hookable FUNC_NAME
   # -----------------------
   # Declare that FUNC_NAME will run hooks added with
   # 'func_add_hook FUNC_NAME ...'.
   func_hookable ()
   {
       $debug_cmd
   
       func_append hookable_fns " $1"
   }
   
   
   # func_add_hook FUNC_NAME HOOK_FUNC
   # ---------------------------------
   # Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
   # first have been declared "hookable" by a call to 'func_hookable'.
   func_add_hook ()
   {
       $debug_cmd
   
       case " $hookable_fns " in
         *" $1 "*) ;;
         *) func_fatal_error "'$1' does not accept hook functions." ;;
       esac
   
       eval func_append ${1}_hooks '" $2"'
   }
   
   
   # func_remove_hook FUNC_NAME HOOK_FUNC
   # ------------------------------------
   # Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
   func_remove_hook ()
   {
       $debug_cmd
   
       eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
   }
   
   
   # func_run_hooks FUNC_NAME [ARG]...
   # ---------------------------------
   # Run all hook functions registered to FUNC_NAME.
   # It is assumed that the list of hook functions contains nothing more
   # than a whitespace-delimited list of legal shell function names, and
   # no effort is wasted trying to catch shell meta-characters or preserve
   # whitespace.
   func_run_hooks ()
   {
       $debug_cmd
   
       _G_rc_run_hooks=false
   
       case " $hookable_fns " in
         *" $1 "*) ;;
         *) func_fatal_error "'$1' does not support hook funcions.n" ;;
       esac
   
       eval _G_hook_fns=\$$1_hooks; shift
   
       for _G_hook in $_G_hook_fns; do
         if eval $_G_hook '"$@"'; then
           # store returned options list back into positional
           # parameters for next 'cmd' execution.
           eval _G_hook_result=\$${_G_hook}_result
           eval set dummy "$_G_hook_result"; shift
           _G_rc_run_hooks=:
         fi
       done
   
       $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result
   }
   
   
   
   ## --------------- ##
   ## Option parsing. ##
   ## --------------- ##
   
   # In order to add your own option parsing hooks, you must accept the
   # full positional parameter list in your hook function, you may remove/edit
   # any options that you action, and then pass back the remaining unprocessed
   # options in '<hooked_function_name>_result', escaped suitably for
   # 'eval'.  In this case you also must return $EXIT_SUCCESS to let the
   # hook's caller know that it should pay attention to
   # '<hooked_function_name>_result'.  Returning $EXIT_FAILURE signalizes that
   # arguments are left untouched by the hook and therefore caller will ignore the
   # result variable.
   #
   # Like this:
   #
   #    my_options_prep ()
   #    {
   #        $debug_cmd
   #
   #        # Extend the existing usage message.
   #        usage_message=$usage_message'
   #      -s, --silent       don'\''t print informational messages
   #    '
   #        # No change in '$@' (ignored completely by this hook).  There is
   #        # no need to do the equivalent (but slower) action:
   #        # func_quote_for_eval ${1+"$@"}
   #        # my_options_prep_result=$func_quote_for_eval_result
   #        false
   #    }
   #    func_add_hook func_options_prep my_options_prep
   #
   #
   #    my_silent_option ()
   #    {
   #        $debug_cmd
   #
   #        args_changed=false
   #
   #        # Note that for efficiency, we parse as many options as we can
   #        # recognise in a loop before passing the remainder back to the
   #        # caller on the first unrecognised argument we encounter.
   #        while test $# -gt 0; do
   #          opt=$1; shift
   #          case $opt in
   #            --silent|-s) opt_silent=:
   #                         args_changed=:
   #                         ;;
   #            # Separate non-argument short options:
   #            -s*)         func_split_short_opt "$_G_opt"
   #                         set dummy "$func_split_short_opt_name" \
   #                             "-$func_split_short_opt_arg" ${1+"$@"}
   #                         shift
   #                         args_changed=:
   #                         ;;
   #            *)           # Make sure the first unrecognised option "$_G_opt"
   #                         # is added back to "$@", we could need that later
   #                         # if $args_changed is true.
   #                         set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
   #          esac
   #        done
   #
   #        if $args_changed; then
   #          func_quote_for_eval ${1+"$@"}
   #          my_silent_option_result=$func_quote_for_eval_result
   #        fi
   #
   #        $args_changed
   #    }
   #    func_add_hook func_parse_options my_silent_option
   #
   #
   #    my_option_validation ()
   #    {
   #        $debug_cmd
   #
   #        $opt_silent && $opt_verbose && func_fatal_help "\
   #    '--silent' and '--verbose' options are mutually exclusive."
   #
   #        false
   #    }
   #    func_add_hook func_validate_options my_option_validation
   #
   # You'll also need to manually amend $usage_message to reflect the extra
   # options you parse.  It's preferable to append if you can, so that
   # multiple option parsing hooks can be added safely.
   
   
   # func_options_finish [ARG]...
   # ----------------------------
   # Finishing the option parse loop (call 'func_options' hooks ATM).
   func_options_finish ()
   {
       $debug_cmd
   
       _G_func_options_finish_exit=false
       if func_run_hooks func_options ${1+"$@"}; then
         func_options_finish_result=$func_run_hooks_result
         _G_func_options_finish_exit=:
     fi      fi
   
       $_G_func_options_finish_exit
 }  }
   
   
   # func_options [ARG]...
   # ---------------------
   # All the functions called inside func_options are hookable. See the
   # individual implementations for details.
   func_hookable func_options
   func_options ()
   {
       $debug_cmd
   
       _G_rc_options=false
   
       for my_func in options_prep parse_options validate_options options_finish
       do
         if eval func_$my_func '${1+"$@"}'; then
           eval _G_res_var='$'"func_${my_func}_result"
           eval set dummy "$_G_res_var" ; shift
           _G_rc_options=:
         fi
       done
   
# func_version    # Save modified positional parameters for caller.  As a top-level
# Echo version message to standard output and exit.    # options-parser function we always need to set the 'func_options_result'
func_version ()    # variable (regardless the $_G_rc_options value).
     if $_G_rc_options; then
       func_options_result=$_G_res_var
     else
       func_quote_for_eval ${1+"$@"}
       func_options_result=$func_quote_for_eval_result
     fi
 
     $_G_rc_options
 }
 
 
 # func_options_prep [ARG]...
 # --------------------------
 # All initialisations required before starting the option parse loop.
 # Note that when calling hook functions, we pass through the list of
 # positional parameters.  If a hook function modifies that list, and
 # needs to propagate that back to rest of this script, then the complete
 # modified list must be put in 'func_run_hooks_result' before
 # returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned).
 func_hookable func_options_prep
 func_options_prep ()
 {  {
    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {    $debug_cmd
        s/^# //
        s/^# *$//    # Option defaults:
        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/    opt_verbose=false
        p    opt_warning_types=
     }' < "$progpath"
     exit $?    _G_rc_options_prep=false
     if func_run_hooks func_options_prep ${1+"$@"}; then
       _G_rc_options_prep=:
       # save modified positional parameters for caller
       func_options_prep_result=$func_run_hooks_result
     fi
 
     $_G_rc_options_prep
 }  }
   
# func_usage
# Echo short help message to standard output and exit.# func_parse_options [ARG]...
func_usage ()# ---------------------------
 # The main option parsing loop.
 func_hookable func_parse_options
 func_parse_options ()
 {  {
    $SED -n '/^# Usage:/,/# -h/ {    $debug_cmd
        s/^# //
        s/^# *$//    func_parse_options_result=
        s/\$progname/'$progname'/
        p    _G_rc_parse_options=false
    }' < "$progpath"    # this just eases exit handling
    $ECHO    while test $# -gt 0; do
    $ECHO "run \`$progname --help | more' for full usage"      # Defer to hook functions for initial option parsing, so they
    exit $?      # get priority in the event of reusing an option name.
       if func_run_hooks func_parse_options ${1+"$@"}; then
         eval set dummy "$func_run_hooks_result"; shift
         _G_rc_parse_options=:
       fi
 
       # Break out of the loop if we already parsed every option.
       test $# -gt 0 || break
 
       _G_match_parse_options=:
       _G_opt=$1
       shift
       case $_G_opt in
         --debug|-x)   debug_cmd='set -x'
                       func_echo "enabling shell trace mode"
                       $debug_cmd
                       ;;
 
         --no-warnings|--no-warning|--no-warn)
                       set dummy --warnings none ${1+"$@"}
                       shift
                       ;;
 
         --warnings|--warning|-W)
                       if test $# = 0 && func_missing_arg $_G_opt; then
                         _G_rc_parse_options=:
                         break
                       fi
                       case " $warning_categories $1" in
                         *" $1 "*)
                           # trailing space prevents matching last $1 above
                           func_append_uniq opt_warning_types " $1"
                           ;;
                         *all)
                           opt_warning_types=$warning_categories
                           ;;
                         *none)
                           opt_warning_types=none
                           warning_func=:
                           ;;
                         *error)
                           opt_warning_types=$warning_categories
                           warning_func=func_fatal_error
                           ;;
                         *)
                           func_fatal_error \
                              "unsupported warning category: '$1'"
                           ;;
                       esac
                       shift
                       ;;
 
         --verbose|-v) opt_verbose=: ;;
         --version)    func_version ;;
         -\?|-h)       func_usage ;;
         --help)       func_help ;;
 
         # Separate optargs to long options (plugins may need this):
         --*=*)        func_split_equals "$_G_opt"
                       set dummy "$func_split_equals_lhs" \
                           "$func_split_equals_rhs" ${1+"$@"}
                       shift
                       ;;
 
        # Separate optargs to short options:
         -W*)
                       func_split_short_opt "$_G_opt"
                       set dummy "$func_split_short_opt_name" \
                           "$func_split_short_opt_arg" ${1+"$@"}
                       shift
                       ;;
 
         # Separate non-argument short options:
         -\?*|-h*|-v*|-x*)
                       func_split_short_opt "$_G_opt"
                       set dummy "$func_split_short_opt_name" \
                           "-$func_split_short_opt_arg" ${1+"$@"}
                       shift
                       ;;
 
         --)           _G_rc_parse_options=: ; break ;;
         -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
         *)            set dummy "$_G_opt" ${1+"$@"}; shift
                       _G_match_parse_options=false
                       break
                       ;;
       esac
 
       $_G_match_parse_options && _G_rc_parse_options=:
     done
 
 
     if $_G_rc_parse_options; then
       # save modified positional parameters for caller
       func_quote_for_eval ${1+"$@"}
       func_parse_options_result=$func_quote_for_eval_result
     fi
 
     $_G_rc_parse_options
 }  }
   
   
   # func_validate_options [ARG]...
   # ------------------------------
   # Perform any sanity checks on option settings and/or unconsumed
   # arguments.
   func_hookable func_validate_options
   func_validate_options ()
   {
       $debug_cmd
   
       _G_rc_validate_options=false
   
       # Display all warnings if -W was not given.
       test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
   
       if func_run_hooks func_validate_options ${1+"$@"}; then
         # save modified positional parameters for caller
         func_validate_options_result=$func_run_hooks_result
         _G_rc_validate_options=:
       fi
   
       # Bail if the options were screwed!
       $exit_cmd $EXIT_FAILURE
   
       $_G_rc_validate_options
   }
   
   
   
   ## ----------------- ##
   ## Helper functions. ##
   ## ----------------- ##
   
   # This section contains the helper functions used by the rest of the
   # hookable option parser framework in ascii-betical order.
   
   
   # func_fatal_help ARG...
   # ----------------------
   # Echo program name prefixed message to standard error, followed by
   # a help hint, and exit.
   func_fatal_help ()
   {
       $debug_cmd
   
       eval \$ECHO \""Usage: $usage"\"
       eval \$ECHO \""$fatal_help"\"
       func_error ${1+"$@"}
       exit $EXIT_FAILURE
   }
   
   
 # func_help  # func_help
   # ---------
 # Echo long help message to standard output and exit.  # Echo long help message to standard output and exit.
 func_help ()  func_help ()
 {  {
    $SED -n '/^# Usage:/,/# Report bugs to/ {    $debug_cmd
        s/^# //
        s/^# *$//    func_usage_message
        s*\$progname*'$progname'*    $ECHO "$long_help_message"
        s*\$host*'"$host"'*    exit 0
        s*\$SHELL*'"$SHELL"'* 
        s*\$LTCC*'"$LTCC"'* 
        s*\$LTCFLAGS*'"$LTCFLAGS"'* 
        s*\$LD*'"$LD"'* 
        s/\$with_gnu_ld/'"$with_gnu_ld"'/ 
        s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ 
        s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ 
        p 
     }' < "$progpath" 
    exit $? 
 }  }
   
# func_missing_arg argname
 # func_missing_arg ARGNAME
 # ------------------------
 # Echo program name prefixed message to standard error and set global  # Echo program name prefixed message to standard error and set global
 # exit_cmd.  # exit_cmd.
 func_missing_arg ()  func_missing_arg ()
 {  {
    func_error "missing argument for $1"    $debug_cmd
 
     func_error "Missing argument for '$1'."
     exit_cmd=exit      exit_cmd=exit
 }  }
   
 exit_cmd=:  
   
   # func_split_equals STRING
   # ------------------------
   # Set func_split_equals_lhs and func_split_equals_rhs shell variables after
   # splitting STRING at the '=' sign.
   test -z "$_G_HAVE_XSI_OPS" \
       && (eval 'x=a/b/c;
         test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
       && _G_HAVE_XSI_OPS=yes
   
   if test yes = "$_G_HAVE_XSI_OPS"
   then
     # This is an XSI compatible shell, allowing a faster implementation...
     eval 'func_split_equals ()
     {
         $debug_cmd
   
         func_split_equals_lhs=${1%%=*}
         func_split_equals_rhs=${1#*=}
         test "x$func_split_equals_lhs" = "x$1" \
           && func_split_equals_rhs=
     }'
   else
     # ...otherwise fall back to using expr, which is often a shell builtin.
     func_split_equals ()
     {
         $debug_cmd
   
         func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
         func_split_equals_rhs=
         test "x$func_split_equals_lhs" = "x$1" \
           || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
     }
   fi #func_split_equals
   
# Check that we have a working $ECHO.
if test "X$1" = X--no-reexec; then# func_split_short_opt SHORTOPT
  # Discard the --no-reexec flag, and continue.# -----------------------------
  shift# Set func_split_short_opt_name and func_split_short_opt_arg shell
elif test "X$1" = X--fallback-echo; then# variables after splitting SHORTOPT after the 2nd character.
  # Avoid inline document here, it may be left overif test yes = "$_G_HAVE_XSI_OPS"
  :then
elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then  # This is an XSI compatible shell, allowing a faster implementation...
  # Yippee, $ECHO works!  eval 'func_split_short_opt ()
  :  {
       $debug_cmd
 
       func_split_short_opt_arg=${1#??}
       func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
   }'
 else  else
  # Restart under the correct shell, and then maybe $ECHO will work.  # ...otherwise fall back to using expr, which is often a shell builtin.
  exec $SHELL "$progpath" --no-reexec ${1+"$@"}  func_split_short_opt ()
fi  {
       $debug_cmd
   
if test "X$1" = X--fallback-echo; then      func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
  # used as fallback echo      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
  shift  }
  cat <<EOFfi #func_split_short_opt
$* 
EOF 
  exit $EXIT_SUCCESS 
fi 
   
 magic="%%%MAGIC variable%%%"  
 magic_exe="%%%MAGIC EXE variable%%%"  
   
# Global variables.# func_usage
# $mode is unset# ----------
nonopt=# Echo short help message to standard output and exit.
execute_dlfiles=func_usage ()
preserve_args={
lo2o="s/\\.lo\$/.${objext}/"    $debug_cmd
o2lo="s/\\.${objext}\$/.lo/" 
extracted_archives= 
extracted_serial=0 
   
opt_dry_run=false    func_usage_message
opt_duplicate_deps=false    $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
opt_silent=false    exit 0
opt_debug=:}
   
 # If this variable is set in any of the actions, the command in it  
 # will be execed at the end.  This prevents here-documents from being  
 # left over by shells.  
 exec_cmd=  
   
# func_fatal_configuration arg...# func_usage_message
 # ------------------
 # Echo short help message to standard output.
 func_usage_message ()
 {
     $debug_cmd
 
     eval \$ECHO \""Usage: $usage"\"
     echo
     $SED -n 's|^# ||
         /^Written by/{
           x;p;x
         }
         h
         /^Written by/q' < "$progpath"
     echo
     eval \$ECHO \""$usage_message"\"
 }
 
 
 # func_version
 # ------------
 # Echo version message to standard output and exit.
 func_version ()
 {
     $debug_cmd
 
     printf '%s\n' "$progname $scriptversion"
     $SED -n '
         /(C)/!b go
         :more
         /\./!{
           N
           s|\n# | |
           b more
         }
         :go
         /^# Written by /,/# warranty; / {
           s|^# ||
           s|^# *$||
           s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
           p
         }
         /^# Written by / {
           s|^# ||
           p
         }
         /^warranty; /q' < "$progpath"
 
     exit $?
 }
 
 
 # Local variables:
 # mode: shell-script
 # sh-indentation: 2
 # eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
 # time-stamp-time-zone: "UTC"
 # End:
 
 # Set a version string.
 scriptversion='(GNU libtool) 2.4.6'
 
 
 # func_echo ARG...
 # ----------------
 # Libtool also displays the current mode in messages, so override
 # funclib.sh func_echo with this custom definition.
 func_echo ()
 {
     $debug_cmd
 
     _G_message=$*
 
     func_echo_IFS=$IFS
     IFS=$nl
     for _G_line in $_G_message; do
       IFS=$func_echo_IFS
       $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
     done
     IFS=$func_echo_IFS
 }
 
 
 # func_warning ARG...
 # -------------------
 # Libtool warnings are not categorized, so override funclib.sh
 # func_warning with this simpler definition.
 func_warning ()
 {
     $debug_cmd
 
     $warning_func ${1+"$@"}
 }
 
 
 ## ---------------- ##
 ## Options parsing. ##
 ## ---------------- ##
 
 # Hook in the functions to make sure our own options are parsed during
 # the option parsing loop.
 
 usage='$progpath [OPTION]... [MODE-ARG]...'
 
 # Short help message in response to '-h'.
 usage_message="Options:
        --config             show all configuration variables
        --debug              enable verbose shell tracing
    -n, --dry-run            display commands without modifying any files
        --features           display basic configuration information and exit
        --mode=MODE          use operation mode MODE
        --no-warnings        equivalent to '-Wnone'
        --preserve-dup-deps  don't remove duplicate dependency libraries
        --quiet, --silent    don't print informational messages
        --tag=TAG            use configuration variables from tag TAG
    -v, --verbose            print more informational messages than default
        --version            print version information
    -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
    -h, --help, --help-all   print short, long, or detailed help message
 "
 
 # Additional text appended to 'usage_message' in response to '--help'.
 func_help ()
 {
     $debug_cmd
 
     func_usage_message
     $ECHO "$long_help_message
 
 MODE must be one of the following:
 
        clean           remove files from the build directory
        compile         compile a source file into a libtool object
        execute         automatically set library path, then run a program
        finish          complete the installation of libtool libraries
        install         install libraries or executables
        link            create a library or an executable
        uninstall       remove libraries from an installed directory
 
 MODE-ARGS vary depending on the MODE.  When passed as first option,
 '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
 Try '$progname --help --mode=MODE' for a more detailed description of MODE.
 
 When reporting a bug, please describe a test case to reproduce it and
 include the following information:
 
        host-triplet:   $host
        shell:          $SHELL
        compiler:       $LTCC
        compiler flags: $LTCFLAGS
        linker:         $LD (gnu? $with_gnu_ld)
        version:        $progname $scriptversion Debian-2.4.6-14
        automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
        autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
 
 Report bugs to <bug-libtool@gnu.org>.
 GNU libtool home page: <http://www.gnu.org/s/libtool/>.
 General help using GNU software: <http://www.gnu.org/gethelp/>."
     exit 0
 }
 
 
 # func_lo2o OBJECT-NAME
 # ---------------------
 # Transform OBJECT-NAME from a '.lo' suffix to the platform specific
 # object suffix.
 
 lo2o=s/\\.lo\$/.$objext/
 o2lo=s/\\.$objext\$/.lo/
 
 if test yes = "$_G_HAVE_XSI_OPS"; then
   eval 'func_lo2o ()
   {
     case $1 in
       *.lo) func_lo2o_result=${1%.lo}.$objext ;;
       *   ) func_lo2o_result=$1               ;;
     esac
   }'
 
   # func_xform LIBOBJ-OR-SOURCE
   # ---------------------------
   # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
   # suffix to a '.lo' libtool-object suffix.
   eval 'func_xform ()
   {
     func_xform_result=${1%.*}.lo
   }'
 else
   # ...otherwise fall back to using sed.
   func_lo2o ()
   {
     func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
   }
 
   func_xform ()
   {
     func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
   }
 fi
 
 
 # func_fatal_configuration ARG...
 # -------------------------------
 # Echo program name prefixed message to standard error, followed by  # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.  # a configuration failure hint, and exit.
 func_fatal_configuration ()  func_fatal_configuration ()
 {  {
    func_error ${1+"$@"}    func__fatal_error ${1+"$@"} \
    func_error "See the $PACKAGE documentation for more information."      "See the $PACKAGE documentation for more information." \
    func_fatal_error "Fatal configuration error."      "Fatal configuration error."
 }  }
   
   
 # func_config  # func_config
   # -----------
 # Display the configuration for all the tags in this script.  # Display the configuration for all the tags in this script.
 func_config ()  func_config ()
 {  {
Line 632  func_config () Line 2222  func_config ()
     exit $?      exit $?
 }  }
   
   
 # func_features  # func_features
   # -------------
 # Display the features supported by this script.  # Display the features supported by this script.
 func_features ()  func_features ()
 {  {
    $ECHO "host: $host"    echo "host: $host"
    if test "$build_libtool_libs" = yes; then    if test yes = "$build_libtool_libs"; then
      $ECHO "enable shared libraries"      echo "enable shared libraries"
     else      else
      $ECHO "disable shared libraries"      echo "disable shared libraries"
     fi      fi
    if test "$build_old_libs" = yes; then    if test yes = "$build_old_libs"; then
      $ECHO "enable static libraries"      echo "enable static libraries"
     else      else
      $ECHO "disable static libraries"      echo "disable static libraries"
     fi      fi
   
     exit $?      exit $?
 }  }
   
# func_enable_tag tagname
 # func_enable_tag TAGNAME
 # -----------------------
 # Verify that TAGNAME is valid, and either flag an error and exit, or  # Verify that TAGNAME is valid, and either flag an error and exit, or
 # enable the TAGNAME tag.  We also add TAGNAME to the global $taglist  # enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
 # variable here.  # variable here.
 func_enable_tag ()  func_enable_tag ()
 {  {
  # Global variable:    # Global variable:
  tagname="$1"    tagname=$1
   
  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
  sed_extractcf="/$re_begincf/,/$re_endcf/p"    sed_extractcf=/$re_begincf/,/$re_endcf/p
   
  # Validate tagname.    # Validate tagname.
  case $tagname in    case $tagname in
    *[!-_A-Za-z0-9,/]*)      *[!-_A-Za-z0-9,/]*)
      func_fatal_error "invalid tag name: $tagname"        func_fatal_error "invalid tag name: $tagname"
      ;;        ;;
  esac    esac
   
  # Don't test for the "default" C tag, as we know it's    # Don't test for the "default" C tag, as we know it's
  # there but not specially marked.    # there but not specially marked.
  case $tagname in    case $tagname in
    CC) ;;        CC) ;;
     *)      *)
      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
        taglist="$taglist $tagname"          taglist="$taglist $tagname"
   
        # Evaluate the configuration.  Be careful to quote the path          # Evaluate the configuration.  Be careful to quote the path
        # and the sed script, to avoid splitting on whitespace, but          # and the sed script, to avoid splitting on whitespace, but
        # also don't use non-portable quotes within backquotes within          # also don't use non-portable quotes within backquotes within
        # quotes we have to do it in 2 steps:          # quotes we have to do it in 2 steps:
        extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`          extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
        eval "$extractedcf"          eval "$extractedcf"
         else
           func_error "ignoring unknown tag $tagname"
         fi
         ;;
     esac
 }
 
 
 # func_check_version_match
 # ------------------------
 # Ensure that we are using m4 macros, and libtool script from the same
 # release of libtool.
 func_check_version_match ()
 {
     if test "$package_revision" != "$macro_revision"; then
       if test "$VERSION" != "$macro_version"; then
         if test -z "$macro_version"; then
           cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 $progname: definition of this LT_INIT comes from an older release.
 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 $progname: and run autoconf again.
 _LT_EOF
         else
           cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
 $progname: and run autoconf again.
 _LT_EOF
         fi
       else        else
        func_error "ignoring unknown tag $tagname"        cat >&2 <<_LT_EOF
 $progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
 $progname: of $PACKAGE $VERSION and run autoconf again.
 _LT_EOF
       fi        fi
   
         exit $EXIT_MISMATCH
       fi
   }
   
   
   # libtool_options_prep [ARG]...
   # -----------------------------
   # Preparation for options parsed by libtool.
   libtool_options_prep ()
   {
       $debug_mode
   
       # Option defaults:
       opt_config=false
       opt_dlopen=
       opt_dry_run=false
       opt_help=false
       opt_mode=
       opt_preserve_dup_deps=false
       opt_quiet=false
   
       nonopt=
       preserve_args=
   
       _G_rc_lt_options_prep=:
   
       # Shorthand for --mode=foo, only valid as the first argument
       case $1 in
       clean|clea|cle|cl)
         shift; set dummy --mode clean ${1+"$@"}; shift
       ;;        ;;
  esac    compile|compil|compi|comp|com|co|c)
       shift; set dummy --mode compile ${1+"$@"}; shift
       ;;
     execute|execut|execu|exec|exe|ex|e)
       shift; set dummy --mode execute ${1+"$@"}; shift
       ;;
     finish|finis|fini|fin|fi|f)
       shift; set dummy --mode finish ${1+"$@"}; shift
       ;;
     install|instal|insta|inst|ins|in|i)
       shift; set dummy --mode install ${1+"$@"}; shift
       ;;
     link|lin|li|l)
       shift; set dummy --mode link ${1+"$@"}; shift
       ;;
     uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
       shift; set dummy --mode uninstall ${1+"$@"}; shift
       ;;
     *)
       _G_rc_lt_options_prep=false
       ;;
     esac
 
     if $_G_rc_lt_options_prep; then
       # Pass back the list of options.
       func_quote_for_eval ${1+"$@"}
       libtool_options_prep_result=$func_quote_for_eval_result
     fi
 
     $_G_rc_lt_options_prep
 }  }
   func_add_hook func_options_prep libtool_options_prep
   
# Parse options once, thoroughly.  This comes as soon as possible in
# the script to make things like `libtool --version' happen quickly.# libtool_parse_options [ARG]...
 # ---------------------------------
 # Provide handling for libtool specific options.
 libtool_parse_options ()
 {  {
       $debug_cmd
   
  # Shorthand for --mode=foo, only valid as the first argument    _G_rc_lt_parse_options=false
  case $1 in 
  clean|clea|cle|cl) 
    shift; set dummy --mode clean ${1+"$@"}; shift 
    ;; 
  compile|compil|compi|comp|com|co|c) 
    shift; set dummy --mode compile ${1+"$@"}; shift 
    ;; 
  execute|execut|execu|exec|exe|ex|e) 
    shift; set dummy --mode execute ${1+"$@"}; shift 
    ;; 
  finish|finis|fini|fin|fi|f) 
    shift; set dummy --mode finish ${1+"$@"}; shift 
    ;; 
  install|instal|insta|inst|ins|in|i) 
    shift; set dummy --mode install ${1+"$@"}; shift 
    ;; 
  link|lin|li|l) 
    shift; set dummy --mode link ${1+"$@"}; shift 
    ;; 
  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) 
    shift; set dummy --mode uninstall ${1+"$@"}; shift 
    ;; 
  esac 
   
  # Parse non-mode specific arguments:    # Perform our own loop to consume as many options as possible in
  while test "$#" -gt 0; do    # each iteration.
    opt="$1"    while test $# -gt 0; do
    shift      _G_match_lt_parse_options=:
       _G_opt=$1
       shift
       case $_G_opt in
         --dry-run|--dryrun|-n)
                         opt_dry_run=:
                         ;;
   
    case $opt in        --config)       func_config ;;
      --config)         func_config                                     ;; 
   
      --debug)          preserve_args="$preserve_args $opt"        --dlopen|-dlopen)
                        func_echo "enabling shell trace mode"                        opt_dlopen="${opt_dlopen+$opt_dlopen
                        opt_debug='set -x'}$1"
                        $opt_debug                        shift
                        ;;                        ;;
   
      -dlopen)          test "$#" -eq 0 && func_missing_arg "$opt" && break        --preserve-dup-deps)
                        execute_dlfiles="$execute_dlfiles $1"                        opt_preserve_dup_deps=: ;;
                        shift 
                        ;; 
   
      --dry-run | -n)   opt_dry_run=:                                   ;;        --features)     func_features ;;
      --features)       func_features                                   ;; 
      --finish)         mode="finish"                                   ;; 
   
      --mode)           test "$#" -eq 0 && func_missing_arg "$opt" && break        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
                        case $1 in 
                          # Valid mode arguments: 
                          clean)        ;; 
                          compile)      ;; 
                          execute)      ;; 
                          finish)       ;; 
                          install)      ;; 
                          link)         ;; 
                          relink)       ;; 
                          uninstall)    ;; 
   
                          # Catch anything else as an error        --help)         opt_help=: ;;
                          *) func_error "invalid argument for $opt" 
                             exit_cmd=exit 
                             break 
                             ;; 
                        esac 
   
                        mode="$1"        --help-all)     opt_help=': help-all' ;;
                        shift 
                        ;; 
   
      --preserve-dup-deps)        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
                        opt_duplicate_deps=:                                ;;                        opt_mode=$1
                         case $1 in
                           # Valid mode arguments:
                           clean|compile|execute|finish|install|link|relink|uninstall) ;;
   
      --quiet|--silent) preserve_args="$preserve_args $opt"                          # Catch anything else as an error
                        opt_silent=:                          *) func_error "invalid argument for $_G_opt"
                        ;;                             exit_cmd=exit
                              break
                              ;;
                         esac
                         shift
                         ;;
   
      --verbose| -v)    preserve_args="$preserve_args $opt"        --no-silent|--no-quiet)
                        opt_silent=false                        opt_quiet=false
                        ;;                        func_append preserve_args " $_G_opt"
                         ;;
   
      --tag)            test "$#" -eq 0 && func_missing_arg "$opt" && break        --no-warnings|--no-warning|--no-warn)
                        preserve_args="$preserve_args $opt $1"                        opt_warning=false
                        func_enable_tag "$1"    # tagname is set here                        func_append preserve_args " $_G_opt"
                        shift                        ;;
                        ;; 
   
      # Separate optargs to long options:        --no-verbose)
      -dlopen=*|--mode=*|--tag=*)                        opt_verbose=false
                        func_opt_split "$opt"                        func_append preserve_args " $_G_opt"
                        set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}                        ;;
                        shift 
                        ;; 
   
      -\?|-h)                func_usage                                   ;;        --silent|--quiet)
      --help)           opt_help=:                                      ;;                        opt_quiet=:
      --version)        func_version                                    ;;                        opt_verbose=false
                         func_append preserve_args " $_G_opt"
                         ;;
   
      -*)                func_fatal_help "unrecognized option \`$opt'"        ;;        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
                         opt_tag=$1
                         func_append preserve_args " $_G_opt $1"
                         func_enable_tag "$1"
                         shift
                         ;;
   
      *)                nonopt="$opt"        --verbose|-v)   opt_quiet=false
                        break                        opt_verbose=:
                        ;;                        func_append preserve_args " $_G_opt"
    esac                        ;;
  done 
   
           # An option not handled by this hook function:
           *)              set dummy "$_G_opt" ${1+"$@"} ; shift
                           _G_match_lt_parse_options=false
                           break
                           ;;
         esac
         $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
       done
   
  case $host in    if $_G_rc_lt_parse_options; then
    *cygwin* | *mingw* | *pw32* | *cegcc*)      # save modified positional parameters for caller
      # don't eliminate duplications in $postdeps and $predeps      func_quote_for_eval ${1+"$@"}
      opt_duplicate_compiler_generated_deps=:      libtool_parse_options_result=$func_quote_for_eval_result
      ;;    fi
    *) 
      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps 
      ;; 
  esac 
   
  # Having warned about all mis-specified options, bail out if    $_G_rc_lt_parse_options
  # anything was wrong. 
  $exit_cmd $EXIT_FAILURE 
 }  }
   func_add_hook func_parse_options libtool_parse_options
   
# func_check_version_match
# Ensure that we are using m4 macros, and libtool script from the same
# release of libtool.# libtool_validate_options [ARG]...
func_check_version_match ()# ---------------------------------
 # Perform any sanity checks on option settings and/or unconsumed
 # arguments.
 libtool_validate_options ()
 {  {
  if test "$package_revision" != "$macro_revision"; then    # save first non-option argument
    if test "$VERSION" != "$macro_version"; then    if test 0 -lt $#; then
      if test -z "$macro_version"; then      nonopt=$1
        cat >&2 <<_LT_EOF      shift
$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the 
$progname: definition of this LT_INIT comes from an older release. 
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 
$progname: and run autoconf again. 
_LT_EOF 
      else 
        cat >&2 <<_LT_EOF 
$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the 
$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. 
$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 
$progname: and run autoconf again. 
_LT_EOF 
      fi 
    else 
      cat >&2 <<_LT_EOF 
$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision, 
$progname: but the definition of this LT_INIT comes from revision $macro_revision. 
$progname: You should recreate aclocal.m4 with macros from revision $package_revision 
$progname: of $PACKAGE $VERSION and run autoconf again. 
_LT_EOF 
     fi      fi
   
    exit $EXIT_MISMATCH    # preserve --debug
  fi    test : = "$debug_cmd" || func_append preserve_args " --debug"
 
     case $host in
       # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
       # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
       *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
         # don't eliminate duplications in $postdeps and $predeps
         opt_duplicate_compiler_generated_deps=:
         ;;
       *)
         opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
         ;;
     esac
 
     $opt_help || {
       # Sanity checks first:
       func_check_version_match
 
       test yes != "$build_libtool_libs" \
         && test yes != "$build_old_libs" \
         && func_fatal_configuration "not configured to build any kind of library"
 
       # Darwin sucks
       eval std_shrext=\"$shrext_cmds\"
 
       # Only execute mode is allowed to have -dlopen flags.
       if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
         func_error "unrecognized option '-dlopen'"
         $ECHO "$help" 1>&2
         exit $EXIT_FAILURE
       fi
 
       # Change the help message to a mode-specific one.
       generic_help=$help
       help="Try '$progname --help --mode=$opt_mode' for more information."
     }
 
     # Pass back the unparsed argument list
     func_quote_for_eval ${1+"$@"}
     libtool_validate_options_result=$func_quote_for_eval_result
 }  }
   func_add_hook func_validate_options libtool_validate_options
   
   
   # Process options as early as possible so that --help and --version
   # can return quickly.
   func_options ${1+"$@"}
   eval set dummy "$func_options_result"; shift
   
   
   
 ## ----------- ##  ## ----------- ##
 ##    Main.    ##  ##    Main.    ##
 ## ----------- ##  ## ----------- ##
   
$opt_help || {magic='%%%MAGIC variable%%%'
  # Sanity checks first:magic_exe='%%%MAGIC EXE variable%%%'
  func_check_version_match 
   
  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then# Global variables.
    func_fatal_configuration "not configured to build any kind of library"extracted_archives=
  fiextracted_serial=0
   
  test -z "$mode" && func_fatal_error "error: you must specify a MODE."# If this variable is set in any of the actions, the command in it
 # will be execed at the end.  This prevents here-documents from being
 # left over by shells.
 exec_cmd=
   
   
  # Darwin sucks# A function that is used when there is no print builtin or printf.
  eval std_shrext=\"$shrext_cmds\"func_fallback_echo ()
 {
   eval 'cat <<_LTECHO_EOF
 $1
 _LTECHO_EOF'
 }
   
# func_generated_by_libtool
  # Only execute mode is allowed to have -dlopen flags.# True iff stdin has been generated by Libtool. This function is only
  if test -n "$execute_dlfiles" && test "$mode" != execute; then# a basic sanity check; it will hardly flush out determined imposters.
    func_error "unrecognized option \`-dlopen'"func_generated_by_libtool_p ()
    $ECHO "$help" 1>&2{
    exit $EXIT_FAILURE  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
  fi 
 
  # Change the help message to a mode-specific one. 
  generic_help="$help" 
  help="Try \`$progname --help --mode=$mode' for more information." 
 }  }
   
   
 # func_lalib_p file  # func_lalib_p file
# True iff FILE is a libtool `.la' library or `.lo' object file.# True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function is only a basic sanity check; it will hardly flush out  # This function is only a basic sanity check; it will hardly flush out
 # determined imposters.  # determined imposters.
 func_lalib_p ()  func_lalib_p ()
 {  {
     test -f "$1" &&      test -f "$1" &&
      $SED -e 4q "$1" 2>/dev/null \      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 
 }  }
   
 # func_lalib_unsafe_p file  # func_lalib_unsafe_p file
# True iff FILE is a libtool `.la' library or `.lo' object file.# True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function implements the same check as func_lalib_p without  # This function implements the same check as func_lalib_p without
 # resorting to external programs.  To this end, it redirects stdin and  # resorting to external programs.  To this end, it redirects stdin and
 # closes it afterwards, without saving the original file descriptor.  # closes it afterwards, without saving the original file descriptor.
 # As a safety measure, use it only where a negative result would be  # As a safety measure, use it only where a negative result would be
# fatal anyway.  Works if `file' does not exist.# fatal anyway.  Works if 'file' does not exist.
 func_lalib_unsafe_p ()  func_lalib_unsafe_p ()
 {  {
     lalib_p=no      lalib_p=no
Line 912  func_lalib_unsafe_p () Line 2613  func_lalib_unsafe_p ()
         for lalib_p_l in 1 2 3 4          for lalib_p_l in 1 2 3 4
         do          do
             read lalib_p_line              read lalib_p_line
            case "$lalib_p_line" in            case $lalib_p_line in
                 \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;                  \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
             esac              esac
         done          done
         exec 0<&5 5<&-          exec 0<&5 5<&-
     fi      fi
    test "$lalib_p" = yes    test yes = "$lalib_p"
 }  }
   
 # func_ltwrapper_script_p file  # func_ltwrapper_script_p file
Line 927  func_lalib_unsafe_p () Line 2628  func_lalib_unsafe_p ()
 # determined imposters.  # determined imposters.
 func_ltwrapper_script_p ()  func_ltwrapper_script_p ()
 {  {
    func_lalib_p "$1"    test -f "$1" &&
       $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
 }  }
   
 # func_ltwrapper_executable_p file  # func_ltwrapper_executable_p file
Line 950  func_ltwrapper_executable_p () Line 2652  func_ltwrapper_executable_p ()
 # temporary ltwrapper_script.  # temporary ltwrapper_script.
 func_ltwrapper_scriptname ()  func_ltwrapper_scriptname ()
 {  {
    func_ltwrapper_scriptname_result=""    func_dirname_and_basename "$1" "" "."
    if func_ltwrapper_executable_p "$1"; then    func_stripname '' '.exe' "$func_basename_result"
        func_dirname_and_basename "$1" "" "."    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
        func_stripname '' '.exe' "$func_basename_result" 
        func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" 
    fi 
 }  }
   
 # func_ltwrapper_p file  # func_ltwrapper_p file
Line 974  func_ltwrapper_p () Line 2673  func_ltwrapper_p ()
 # FAIL_CMD may read-access the current command in variable CMD!  # FAIL_CMD may read-access the current command in variable CMD!
 func_execute_cmds ()  func_execute_cmds ()
 {  {
    $opt_debug    $debug_cmd
 
     save_ifs=$IFS; IFS='~'      save_ifs=$IFS; IFS='~'
     for cmd in $1; do      for cmd in $1; do
      IFS=$save_ifs      IFS=$sp$nl
       eval cmd=\"$cmd\"        eval cmd=\"$cmd\"
         IFS=$save_ifs
       func_show_eval "$cmd" "${2-:}"        func_show_eval "$cmd" "${2-:}"
     done      done
     IFS=$save_ifs      IFS=$save_ifs
Line 990  func_execute_cmds () Line 2691  func_execute_cmds ()
 # Note that it is not necessary on cygwin/mingw to append a dot to  # Note that it is not necessary on cygwin/mingw to append a dot to
 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe  # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
 # behavior happens only for exec(3), not for open(2)!  Also, sourcing  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
# `FILE.' does not work on cygwin managed mounts.# 'FILE.' does not work on cygwin managed mounts.
 func_source ()  func_source ()
 {  {
    $opt_debug    $debug_cmd
 
     case $1 in      case $1 in
     */* | *\\*) . "$1" ;;      */* | *\\*) . "$1" ;;
     *)          . "./$1" ;;      *)          . "./$1" ;;
Line 1001  func_source () Line 2703  func_source ()
 }  }
   
   
   # func_resolve_sysroot PATH
   # Replace a leading = in PATH with a sysroot.  Store the result into
   # func_resolve_sysroot_result
   func_resolve_sysroot ()
   {
     func_resolve_sysroot_result=$1
     case $func_resolve_sysroot_result in
     =*)
       func_stripname '=' '' "$func_resolve_sysroot_result"
       func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
       ;;
     esac
   }
   
   # func_replace_sysroot PATH
   # If PATH begins with the sysroot, replace it with = and
   # store the result into func_replace_sysroot_result.
   func_replace_sysroot ()
   {
     case $lt_sysroot:$1 in
     ?*:"$lt_sysroot"*)
       func_stripname "$lt_sysroot" '' "$1"
       func_replace_sysroot_result='='$func_stripname_result
       ;;
     *)
       # Including no sysroot.
       func_replace_sysroot_result=$1
       ;;
     esac
   }
   
 # func_infer_tag arg  # func_infer_tag arg
 # Infer tagged configuration to use if any are available and  # Infer tagged configuration to use if any are available and
 # if one wasn't chosen via the "--tag" command line option.  # if one wasn't chosen via the "--tag" command line option.
Line 1009  func_source () Line 2742  func_source ()
 # arg is usually of the form 'gcc ...'  # arg is usually of the form 'gcc ...'
 func_infer_tag ()  func_infer_tag ()
 {  {
    $opt_debug    $debug_cmd
 
     if test -n "$available_tags" && test -z "$tagname"; then      if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=        CC_quoted=
       for arg in $CC; do        for arg in $CC; do
        func_quote_for_eval "$arg"        func_append_quoted CC_quoted "$arg"
        CC_quoted="$CC_quoted $func_quote_for_eval_result" 
       done        done
         CC_expanded=`func_echo_all $CC`
         CC_quoted_expanded=`func_echo_all $CC_quoted`
       case $@ in        case $@ in
       # Blanks in the command may have been stripped by the calling shell,        # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when configure was run.        # but not from the CC environment variable when configure was run.
      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
       " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
       # Blanks at the start of $base_compile will cause this to fail        # Blanks at the start of $base_compile will cause this to fail
       # if we don't check for them as well.        # if we don't check for them as well.
       *)        *)
         for z in $available_tags; do          for z in $available_tags; do
           if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then            if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
             # Evaluate the configuration.              # Evaluate the configuration.
            eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"            eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
             CC_quoted=              CC_quoted=
             for arg in $CC; do              for arg in $CC; do
               # Double-quote args containing other shell metacharacters.                # Double-quote args containing other shell metacharacters.
              func_quote_for_eval "$arg"              func_append_quoted CC_quoted "$arg"
              CC_quoted="$CC_quoted $func_quote_for_eval_result" 
             done              done
               CC_expanded=`func_echo_all $CC`
               CC_quoted_expanded=`func_echo_all $CC_quoted`
             case "$@ " in              case "$@ " in
              " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)            " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
             " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
               # The compiler in the base compile command matches                # The compiler in the base compile command matches
               # the one in the tagged configuration.                # the one in the tagged configuration.
               # Assume this is the tagged configuration we want.                # Assume this is the tagged configuration we want.
Line 1049  func_infer_tag () Line 2787  func_infer_tag ()
         # line option must be used.          # line option must be used.
         if test -z "$tagname"; then          if test -z "$tagname"; then
           func_echo "unable to infer tagged configuration"            func_echo "unable to infer tagged configuration"
          func_fatal_error "specify a tag with \`--tag'"          func_fatal_error "specify a tag with '--tag'"
 #       else  #       else
 #         func_verbose "using $tagname tagged configuration"  #         func_verbose "using $tagname tagged configuration"
         fi          fi
Line 1065  func_infer_tag () Line 2803  func_infer_tag ()
 # but don't create it if we're doing a dry run.  # but don't create it if we're doing a dry run.
 func_write_libtool_object ()  func_write_libtool_object ()
 {  {
    write_libobj=${1}    write_libobj=$1
    if test "$build_libtool_libs" = yes; then    if test yes = "$build_libtool_libs"; then
      write_lobj=\'${2}\'      write_lobj=\'$2\'
     else      else
       write_lobj=none        write_lobj=none
     fi      fi
   
    if test "$build_old_libs" = yes; then    if test yes = "$build_old_libs"; then
      write_oldobj=\'${3}\'      write_oldobj=\'$3\'
     else      else
       write_oldobj=none        write_oldobj=none
     fi      fi
Line 1081  func_write_libtool_object () Line 2819  func_write_libtool_object ()
     $opt_dry_run || {      $opt_dry_run || {
       cat >${write_libobj}T <<EOF        cat >${write_libobj}T <<EOF
 # $write_libobj - a libtool object file  # $write_libobj - a libtool object file
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #  #
 # Please DO NOT delete this file!  # Please DO NOT delete this file!
 # It is necessary for linking the library.  # It is necessary for linking the library.
Line 1093  pic_object=$write_lobj Line 2831  pic_object=$write_lobj
 non_pic_object=$write_oldobj  non_pic_object=$write_oldobj
   
 EOF  EOF
      $MV "${write_libobj}T" "${write_libobj}"      $MV "${write_libobj}T" "$write_libobj"
     }      }
 }  }
   
   
   ##################################################
   # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
   ##################################################
   
   # func_convert_core_file_wine_to_w32 ARG
   # Helper function used by file name conversion functions when $build is *nix,
   # and $host is mingw, cygwin, or some other w32 environment. Relies on a
   # correctly configured wine environment available, with the winepath program
   # in $build's $PATH.
   #
   # ARG is the $build file name to be converted to w32 format.
   # Result is available in $func_convert_core_file_wine_to_w32_result, and will
   # be empty on error (or when ARG is empty)
   func_convert_core_file_wine_to_w32 ()
   {
     $debug_cmd
   
     func_convert_core_file_wine_to_w32_result=$1
     if test -n "$1"; then
       # Unfortunately, winepath does not exit with a non-zero error code, so we
       # are forced to check the contents of stdout. On the other hand, if the
       # command is not found, the shell will set an exit code of 127 and print
       # *an error message* to stdout. So we must check for both error code of
       # zero AND non-empty stdout, which explains the odd construction:
       func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
       if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
         func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
           $SED -e "$sed_naive_backslashify"`
       else
         func_convert_core_file_wine_to_w32_result=
       fi
     fi
   }
   # end: func_convert_core_file_wine_to_w32
   
   
   # func_convert_core_path_wine_to_w32 ARG
   # Helper function used by path conversion functions when $build is *nix, and
   # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
   # configured wine environment available, with the winepath program in $build's
   # $PATH. Assumes ARG has no leading or trailing path separator characters.
   #
   # ARG is path to be converted from $build format to win32.
   # Result is available in $func_convert_core_path_wine_to_w32_result.
   # Unconvertible file (directory) names in ARG are skipped; if no directory names
   # are convertible, then the result may be empty.
   func_convert_core_path_wine_to_w32 ()
   {
     $debug_cmd
   
     # unfortunately, winepath doesn't convert paths, only file names
     func_convert_core_path_wine_to_w32_result=
     if test -n "$1"; then
       oldIFS=$IFS
       IFS=:
       for func_convert_core_path_wine_to_w32_f in $1; do
         IFS=$oldIFS
         func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
         if test -n "$func_convert_core_file_wine_to_w32_result"; then
           if test -z "$func_convert_core_path_wine_to_w32_result"; then
             func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
           else
             func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
           fi
         fi
       done
       IFS=$oldIFS
     fi
   }
   # end: func_convert_core_path_wine_to_w32
   
   
   # func_cygpath ARGS...
   # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
   # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
   # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
   # (2), returns the Cygwin file name or path in func_cygpath_result (input
   # file name or path is assumed to be in w32 format, as previously converted
   # from $build's *nix or MSYS format). In case (3), returns the w32 file name
   # or path in func_cygpath_result (input file name or path is assumed to be in
   # Cygwin format). Returns an empty string on error.
   #
   # ARGS are passed to cygpath, with the last one being the file name or path to
   # be converted.
   #
   # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
   # environment variable; do not put it in $PATH.
   func_cygpath ()
   {
     $debug_cmd
   
     if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
       func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
       if test "$?" -ne 0; then
         # on failure, ensure result is empty
         func_cygpath_result=
       fi
     else
       func_cygpath_result=
       func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
     fi
   }
   #end: func_cygpath
   
   
   # func_convert_core_msys_to_w32 ARG
   # Convert file name or path ARG from MSYS format to w32 format.  Return
   # result in func_convert_core_msys_to_w32_result.
   func_convert_core_msys_to_w32 ()
   {
     $debug_cmd
   
     # awkward: cmd appends spaces to result
     func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
       $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
   }
   #end: func_convert_core_msys_to_w32
   
   
   # func_convert_file_check ARG1 ARG2
   # Verify that ARG1 (a file name in $build format) was converted to $host
   # format in ARG2. Otherwise, emit an error message, but continue (resetting
   # func_to_host_file_result to ARG1).
   func_convert_file_check ()
   {
     $debug_cmd
   
     if test -z "$2" && test -n "$1"; then
       func_error "Could not determine host file name corresponding to"
       func_error "  '$1'"
       func_error "Continuing, but uninstalled executables may not work."
       # Fallback:
       func_to_host_file_result=$1
     fi
   }
   # end func_convert_file_check
   
   
   # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
   # Verify that FROM_PATH (a path in $build format) was converted to $host
   # format in TO_PATH. Otherwise, emit an error message, but continue, resetting
   # func_to_host_file_result to a simplistic fallback value (see below).
   func_convert_path_check ()
   {
     $debug_cmd
   
     if test -z "$4" && test -n "$3"; then
       func_error "Could not determine the host path corresponding to"
       func_error "  '$3'"
       func_error "Continuing, but uninstalled executables may not work."
       # Fallback.  This is a deliberately simplistic "conversion" and
       # should not be "improved".  See libtool.info.
       if test "x$1" != "x$2"; then
         lt_replace_pathsep_chars="s|$1|$2|g"
         func_to_host_path_result=`echo "$3" |
           $SED -e "$lt_replace_pathsep_chars"`
       else
         func_to_host_path_result=$3
       fi
     fi
   }
   # end func_convert_path_check
   
   
   # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
   # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
   # and appending REPL if ORIG matches BACKPAT.
   func_convert_path_front_back_pathsep ()
   {
     $debug_cmd
   
     case $4 in
     $1 ) func_to_host_path_result=$3$func_to_host_path_result
       ;;
     esac
     case $4 in
     $2 ) func_append func_to_host_path_result "$3"
       ;;
     esac
   }
   # end func_convert_path_front_back_pathsep
   
   
   ##################################################
   # $build to $host FILE NAME CONVERSION FUNCTIONS #
   ##################################################
   # invoked via '$to_host_file_cmd ARG'
   #
   # In each case, ARG is the path to be converted from $build to $host format.
   # Result will be available in $func_to_host_file_result.
   
   
   # func_to_host_file ARG
   # Converts the file name ARG from $build format to $host format. Return result
   # in func_to_host_file_result.
   func_to_host_file ()
   {
     $debug_cmd
   
     $to_host_file_cmd "$1"
   }
   # end func_to_host_file
   
   
   # func_to_tool_file ARG LAZY
   # converts the file name ARG from $build format to toolchain format. Return
   # result in func_to_tool_file_result.  If the conversion in use is listed
   # in (the comma separated) LAZY, no conversion takes place.
   func_to_tool_file ()
   {
     $debug_cmd
   
     case ,$2, in
       *,"$to_tool_file_cmd",*)
         func_to_tool_file_result=$1
         ;;
       *)
         $to_tool_file_cmd "$1"
         func_to_tool_file_result=$func_to_host_file_result
         ;;
     esac
   }
   # end func_to_tool_file
   
   
   # func_convert_file_noop ARG
   # Copy ARG to func_to_host_file_result.
   func_convert_file_noop ()
   {
     func_to_host_file_result=$1
   }
   # end func_convert_file_noop
   
   
   # func_convert_file_msys_to_w32 ARG
   # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
   # conversion to w32 is not available inside the cwrapper.  Returns result in
   # func_to_host_file_result.
   func_convert_file_msys_to_w32 ()
   {
     $debug_cmd
   
     func_to_host_file_result=$1
     if test -n "$1"; then
       func_convert_core_msys_to_w32 "$1"
       func_to_host_file_result=$func_convert_core_msys_to_w32_result
     fi
     func_convert_file_check "$1" "$func_to_host_file_result"
   }
   # end func_convert_file_msys_to_w32
   
   
   # func_convert_file_cygwin_to_w32 ARG
   # Convert file name ARG from Cygwin to w32 format.  Returns result in
   # func_to_host_file_result.
   func_convert_file_cygwin_to_w32 ()
   {
     $debug_cmd
   
     func_to_host_file_result=$1
     if test -n "$1"; then
       # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
       # LT_CYGPATH in this case.
       func_to_host_file_result=`cygpath -m "$1"`
     fi
     func_convert_file_check "$1" "$func_to_host_file_result"
   }
   # end func_convert_file_cygwin_to_w32
   
   
   # func_convert_file_nix_to_w32 ARG
   # Convert file name ARG from *nix to w32 format.  Requires a wine environment
   # and a working winepath. Returns result in func_to_host_file_result.
   func_convert_file_nix_to_w32 ()
   {
     $debug_cmd
   
     func_to_host_file_result=$1
     if test -n "$1"; then
       func_convert_core_file_wine_to_w32 "$1"
       func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
     fi
     func_convert_file_check "$1" "$func_to_host_file_result"
   }
   # end func_convert_file_nix_to_w32
   
   
   # func_convert_file_msys_to_cygwin ARG
   # Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
   # Returns result in func_to_host_file_result.
   func_convert_file_msys_to_cygwin ()
   {
     $debug_cmd
   
     func_to_host_file_result=$1
     if test -n "$1"; then
       func_convert_core_msys_to_w32 "$1"
       func_cygpath -u "$func_convert_core_msys_to_w32_result"
       func_to_host_file_result=$func_cygpath_result
     fi
     func_convert_file_check "$1" "$func_to_host_file_result"
   }
   # end func_convert_file_msys_to_cygwin
   
   
   # func_convert_file_nix_to_cygwin ARG
   # Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
   # in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
   # in func_to_host_file_result.
   func_convert_file_nix_to_cygwin ()
   {
     $debug_cmd
   
     func_to_host_file_result=$1
     if test -n "$1"; then
       # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
       func_convert_core_file_wine_to_w32 "$1"
       func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
       func_to_host_file_result=$func_cygpath_result
     fi
     func_convert_file_check "$1" "$func_to_host_file_result"
   }
   # end func_convert_file_nix_to_cygwin
   
   
   #############################################
   # $build to $host PATH CONVERSION FUNCTIONS #
   #############################################
   # invoked via '$to_host_path_cmd ARG'
   #
   # In each case, ARG is the path to be converted from $build to $host format.
   # The result will be available in $func_to_host_path_result.
   #
   # Path separators are also converted from $build format to $host format.  If
   # ARG begins or ends with a path separator character, it is preserved (but
   # converted to $host format) on output.
   #
   # All path conversion functions are named using the following convention:
   #   file name conversion function    : func_convert_file_X_to_Y ()
   #   path conversion function         : func_convert_path_X_to_Y ()
   # where, for any given $build/$host combination the 'X_to_Y' value is the
   # same.  If conversion functions are added for new $build/$host combinations,
   # the two new functions must follow this pattern, or func_init_to_host_path_cmd
   # will break.
   
   
   # func_init_to_host_path_cmd
   # Ensures that function "pointer" variable $to_host_path_cmd is set to the
   # appropriate value, based on the value of $to_host_file_cmd.
   to_host_path_cmd=
   func_init_to_host_path_cmd ()
   {
     $debug_cmd
   
     if test -z "$to_host_path_cmd"; then
       func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
       to_host_path_cmd=func_convert_path_$func_stripname_result
     fi
   }
   
   
   # func_to_host_path ARG
   # Converts the path ARG from $build format to $host format. Return result
   # in func_to_host_path_result.
   func_to_host_path ()
   {
     $debug_cmd
   
     func_init_to_host_path_cmd
     $to_host_path_cmd "$1"
   }
   # end func_to_host_path
   
   
   # func_convert_path_noop ARG
   # Copy ARG to func_to_host_path_result.
   func_convert_path_noop ()
   {
     func_to_host_path_result=$1
   }
   # end func_convert_path_noop
   
   
   # func_convert_path_msys_to_w32 ARG
   # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
   # conversion to w32 is not available inside the cwrapper.  Returns result in
   # func_to_host_path_result.
   func_convert_path_msys_to_w32 ()
   {
     $debug_cmd
   
     func_to_host_path_result=$1
     if test -n "$1"; then
       # Remove leading and trailing path separator characters from ARG.  MSYS
       # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
       # and winepath ignores them completely.
       func_stripname : : "$1"
       func_to_host_path_tmp1=$func_stripname_result
       func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
       func_to_host_path_result=$func_convert_core_msys_to_w32_result
       func_convert_path_check : ";" \
         "$func_to_host_path_tmp1" "$func_to_host_path_result"
       func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
     fi
   }
   # end func_convert_path_msys_to_w32
   
   
   # func_convert_path_cygwin_to_w32 ARG
   # Convert path ARG from Cygwin to w32 format.  Returns result in
   # func_to_host_file_result.
   func_convert_path_cygwin_to_w32 ()
   {
     $debug_cmd
   
     func_to_host_path_result=$1
     if test -n "$1"; then
       # See func_convert_path_msys_to_w32:
       func_stripname : : "$1"
       func_to_host_path_tmp1=$func_stripname_result
       func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
       func_convert_path_check : ";" \
         "$func_to_host_path_tmp1" "$func_to_host_path_result"
       func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
     fi
   }
   # end func_convert_path_cygwin_to_w32
   
   
   # func_convert_path_nix_to_w32 ARG
   # Convert path ARG from *nix to w32 format.  Requires a wine environment and
   # a working winepath.  Returns result in func_to_host_file_result.
   func_convert_path_nix_to_w32 ()
   {
     $debug_cmd
   
     func_to_host_path_result=$1
     if test -n "$1"; then
       # See func_convert_path_msys_to_w32:
       func_stripname : : "$1"
       func_to_host_path_tmp1=$func_stripname_result
       func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
       func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
       func_convert_path_check : ";" \
         "$func_to_host_path_tmp1" "$func_to_host_path_result"
       func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
     fi
   }
   # end func_convert_path_nix_to_w32
   
   
   # func_convert_path_msys_to_cygwin ARG
   # Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
   # Returns result in func_to_host_file_result.
   func_convert_path_msys_to_cygwin ()
   {
     $debug_cmd
   
     func_to_host_path_result=$1
     if test -n "$1"; then
       # See func_convert_path_msys_to_w32:
       func_stripname : : "$1"
       func_to_host_path_tmp1=$func_stripname_result
       func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
       func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
       func_to_host_path_result=$func_cygpath_result
       func_convert_path_check : : \
         "$func_to_host_path_tmp1" "$func_to_host_path_result"
       func_convert_path_front_back_pathsep ":*" "*:" : "$1"
     fi
   }
   # end func_convert_path_msys_to_cygwin
   
   
   # func_convert_path_nix_to_cygwin ARG
   # Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
   # a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
   # func_to_host_file_result.
   func_convert_path_nix_to_cygwin ()
   {
     $debug_cmd
   
     func_to_host_path_result=$1
     if test -n "$1"; then
       # Remove leading and trailing path separator characters from
       # ARG. msys behavior is inconsistent here, cygpath turns them
       # into '.;' and ';.', and winepath ignores them completely.
       func_stripname : : "$1"
       func_to_host_path_tmp1=$func_stripname_result
       func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
       func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
       func_to_host_path_result=$func_cygpath_result
       func_convert_path_check : : \
         "$func_to_host_path_tmp1" "$func_to_host_path_result"
       func_convert_path_front_back_pathsep ":*" "*:" : "$1"
     fi
   }
   # end func_convert_path_nix_to_cygwin
   
   
   # func_dll_def_p FILE
   # True iff FILE is a Windows DLL '.def' file.
   # Keep in sync with _LT_DLL_DEF_P in libtool.m4
   func_dll_def_p ()
   {
     $debug_cmd
   
     func_dll_def_p_tmp=`$SED -n \
       -e 's/^[     ]*//' \
       -e '/^\(;.*\)*$/d' \
       -e 's/^\(EXPORTS\|LIBRARY\)\([       ].*\)*$/DEF/p' \
       -e q \
       "$1"`
     test DEF = "$func_dll_def_p_tmp"
   }
   
   
 # func_mode_compile arg...  # func_mode_compile arg...
 func_mode_compile ()  func_mode_compile ()
 {  {
    $opt_debug    $debug_cmd
 
     # Get the compilation command and the source file.      # Get the compilation command and the source file.
     base_compile=      base_compile=
    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
     suppress_opt=yes      suppress_opt=yes
     suppress_output=      suppress_output=
     arg_mode=normal      arg_mode=normal
Line 1116  func_mode_compile () Line 3373  func_mode_compile ()
       case $arg_mode in        case $arg_mode in
       arg  )        arg  )
         # do not "continue".  Instead, add this to base_compile          # do not "continue".  Instead, add this to base_compile
        lastarg="$arg"        lastarg=$arg
         arg_mode=normal          arg_mode=normal
         ;;          ;;
   
       target )        target )
        libobj="$arg"        libobj=$arg
         arg_mode=normal          arg_mode=normal
         continue          continue
         ;;          ;;
Line 1131  func_mode_compile () Line 3388  func_mode_compile ()
         case $arg in          case $arg in
         -o)          -o)
           test -n "$libobj" && \            test -n "$libobj" && \
            func_fatal_error "you cannot specify \`-o' more than once"            func_fatal_error "you cannot specify '-o' more than once"
           arg_mode=target            arg_mode=target
           continue            continue
           ;;            ;;
   
         -pie | -fpie | -fPIE)          -pie | -fpie | -fPIE)
          pie_flag="$pie_flag $arg"          func_append pie_flag " $arg"
           continue            continue
           ;;            ;;
   
         -shared | -static | -prefer-pic | -prefer-non-pic)          -shared | -static | -prefer-pic | -prefer-non-pic)
          later="$later $arg"          func_append later " $arg"
           continue            continue
           ;;            ;;
   
Line 1160  func_mode_compile () Line 3417  func_mode_compile ()
           func_stripname '-Wc,' '' "$arg"            func_stripname '-Wc,' '' "$arg"
           args=$func_stripname_result            args=$func_stripname_result
           lastarg=            lastarg=
          save_ifs="$IFS"; IFS=','          save_ifs=$IFS; IFS=,
           for arg in $args; do            for arg in $args; do
            IFS="$save_ifs"            IFS=$save_ifs
            func_quote_for_eval "$arg"            func_append_quoted lastarg "$arg"
            lastarg="$lastarg $func_quote_for_eval_result" 
           done            done
          IFS="$save_ifs"          IFS=$save_ifs
           func_stripname ' ' '' "$lastarg"            func_stripname ' ' '' "$lastarg"
           lastarg=$func_stripname_result            lastarg=$func_stripname_result
   
           # Add the arguments to base_compile.            # Add the arguments to base_compile.
          base_compile="$base_compile $lastarg"          func_append base_compile " $lastarg"
           continue            continue
           ;;            ;;
   
Line 1179  func_mode_compile () Line 3435  func_mode_compile ()
           # Accept the current argument as the source file.            # Accept the current argument as the source file.
           # The previous "srcfile" becomes the current argument.            # The previous "srcfile" becomes the current argument.
           #            #
          lastarg="$srcfile"          lastarg=$srcfile
          srcfile="$arg"          srcfile=$arg
           ;;            ;;
         esac  #  case $arg          esac  #  case $arg
         ;;          ;;
       esac    #  case $arg_mode        esac    #  case $arg_mode
   
       # Aesthetically quote the previous argument.        # Aesthetically quote the previous argument.
      func_quote_for_eval "$lastarg"      func_append_quoted base_compile "$lastarg"
      base_compile="$base_compile $func_quote_for_eval_result" 
     done # for arg      done # for arg
   
     case $arg_mode in      case $arg_mode in
Line 1196  func_mode_compile () Line 3451  func_mode_compile ()
       func_fatal_error "you must specify an argument for -Xcompile"        func_fatal_error "you must specify an argument for -Xcompile"
       ;;        ;;
     target)      target)
      func_fatal_error "you must specify a target with \`-o'"      func_fatal_error "you must specify a target with '-o'"
       ;;        ;;
     *)      *)
       # Get the name of the library object.        # Get the name of the library object.
       test -z "$libobj" && {        test -z "$libobj" && {
         func_basename "$srcfile"          func_basename "$srcfile"
        libobj="$func_basename_result"        libobj=$func_basename_result
       }        }
       ;;        ;;
     esac      esac
Line 1213  func_mode_compile () Line 3468  func_mode_compile ()
     *.[cCFSifmso] | \      *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \      *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \      *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
    *.[fF][09]? | *.for | *.java | *.obj | *.sx)    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"        func_xform "$libobj"
       libobj=$func_xform_result        libobj=$func_xform_result
       ;;        ;;
Line 1222  func_mode_compile () Line 3477  func_mode_compile ()
     case $libobj in      case $libobj in
     *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;      *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
     *)      *)
      func_fatal_error "cannot determine name of library object from \`$libobj'"      func_fatal_error "cannot determine name of library object from '$libobj'"
       ;;        ;;
     esac      esac
   
Line 1231  func_mode_compile () Line 3486  func_mode_compile ()
     for arg in $later; do      for arg in $later; do
       case $arg in        case $arg in
       -shared)        -shared)
        test "$build_libtool_libs" != yes && \        test yes = "$build_libtool_libs" \
          func_fatal_configuration "can not build a shared library"          || func_fatal_configuration "cannot build a shared library"
         build_old_libs=no          build_old_libs=no
         continue          continue
         ;;          ;;
Line 1258  func_mode_compile () Line 3513  func_mode_compile ()
     func_quote_for_eval "$libobj"      func_quote_for_eval "$libobj"
     test "X$libobj" != "X$func_quote_for_eval_result" \      test "X$libobj" != "X$func_quote_for_eval_result" \
       && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'    &()|`$[]' \        && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'    &()|`$[]' \
      && func_warning "libobj name \`$libobj' may not contain shell special characters."      && func_warning "libobj name '$libobj' may not contain shell special characters."
     func_dirname_and_basename "$obj" "/" ""      func_dirname_and_basename "$obj" "/" ""
    objname="$func_basename_result"    objname=$func_basename_result
    xdir="$func_dirname_result"    xdir=$func_dirname_result
    lobj=${xdir}$objdir/$objname    lobj=$xdir$objdir/$objname
   
     test -z "$base_compile" && \      test -z "$base_compile" && \
       func_fatal_help "you must specify a compilation command"        func_fatal_help "you must specify a compilation command"
   
     # Delete any leftover library objects.      # Delete any leftover library objects.
    if test "$build_old_libs" = yes; then    if test yes = "$build_old_libs"; then
       removelist="$obj $lobj $libobj ${libobj}T"        removelist="$obj $lobj $libobj ${libobj}T"
     else      else
       removelist="$lobj $libobj ${libobj}T"        removelist="$lobj $libobj ${libobj}T"
Line 1280  func_mode_compile () Line 3535  func_mode_compile ()
       pic_mode=default        pic_mode=default
       ;;        ;;
     esac      esac
    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then    if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
       # non-PIC code in shared libraries is not supported        # non-PIC code in shared libraries is not supported
       pic_mode=default        pic_mode=default
     fi      fi
   
     # Calculate the filename of the output object if compiler does      # Calculate the filename of the output object if compiler does
     # not support -o with -c      # not support -o with -c
    if test "$compiler_c_o" = no; then    if test no = "$compiler_c_o"; then
      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
      lockfile="$output_obj.lock"      lockfile=$output_obj.lock
     else      else
       output_obj=        output_obj=
       need_locks=no        need_locks=no
Line 1298  func_mode_compile () Line 3553  func_mode_compile ()
   
     # Lock this critical section if it is needed      # Lock this critical section if it is needed
     # We use this script file to make the link, it avoids creating a new file      # We use this script file to make the link, it avoids creating a new file
    if test "$need_locks" = yes; then    if test yes = "$need_locks"; then
       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do        until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
         func_echo "Waiting for $lockfile to be removed"          func_echo "Waiting for $lockfile to be removed"
         sleep 2          sleep 2
       done        done
    elif test "$need_locks" = warn; then    elif test warn = "$need_locks"; then
       if test -f "$lockfile"; then        if test -f "$lockfile"; then
         $ECHO "\          $ECHO "\
 *** ERROR, $lockfile exists and contains:  *** ERROR, $lockfile exists and contains:
Line 1311  func_mode_compile () Line 3566  func_mode_compile ()
   
 This indicates that another process is trying to use the same  This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because  temporary object file, and libtool could not work around it because
your compiler does not support \`-c' and \`-o' together.  If youyour compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better  repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better  avoid parallel builds (make -j) in this platform, or get a better
 compiler."  compiler."
Line 1319  compiler." Line 3574  compiler."
         $opt_dry_run || $RM $removelist          $opt_dry_run || $RM $removelist
         exit $EXIT_FAILURE          exit $EXIT_FAILURE
       fi        fi
      removelist="$removelist $output_obj"      func_append removelist " $output_obj"
       $ECHO "$srcfile" > "$lockfile"        $ECHO "$srcfile" > "$lockfile"
     fi      fi
   
     $opt_dry_run || $RM $removelist      $opt_dry_run || $RM $removelist
    removelist="$removelist $lockfile"    func_append removelist " $lockfile"
     trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15      trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
   
    if test -n "$fix_srcfile_path"; then    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
      eval srcfile=\"$fix_srcfile_path\"    srcfile=$func_to_tool_file_result
    fi 
     func_quote_for_eval "$srcfile"      func_quote_for_eval "$srcfile"
     qsrcfile=$func_quote_for_eval_result      qsrcfile=$func_quote_for_eval_result
   
     # Only build a PIC object if we are building libtool libraries.      # Only build a PIC object if we are building libtool libraries.
    if test "$build_libtool_libs" = yes; then    if test yes = "$build_libtool_libs"; then
       # Without this assignment, base_compile gets emptied.        # Without this assignment, base_compile gets emptied.
       fbsd_hideous_sh_bug=$base_compile        fbsd_hideous_sh_bug=$base_compile
   
      if test "$pic_mode" != no; then      if test no != "$pic_mode"; then
         command="$base_compile $qsrcfile $pic_flag"          command="$base_compile $qsrcfile $pic_flag"
       else        else
         # Don't build PIC code          # Don't build PIC code
Line 1349  compiler." Line 3603  compiler."
   
       if test -z "$output_obj"; then        if test -z "$output_obj"; then
         # Place PIC objects in $objdir          # Place PIC objects in $objdir
        command="$command -o $lobj"        func_append command " -o $lobj"
       fi        fi
   
       func_show_eval_locale "$command"  \        func_show_eval_locale "$command"  \
           'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'            'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
   
      if test "$need_locks" = warn &&      if test warn = "$need_locks" &&
          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then           test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
         $ECHO "\          $ECHO "\
 *** ERROR, $lockfile contains:  *** ERROR, $lockfile contains:
Line 1366  $srcfile Line 3620  $srcfile
   
 This indicates that another process is trying to use the same  This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because  temporary object file, and libtool could not work around it because
your compiler does not support \`-c' and \`-o' together.  If youyour compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better  repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better  avoid parallel builds (make -j) in this platform, or get a better
 compiler."  compiler."
Line 1382  compiler." Line 3636  compiler."
       fi        fi
   
       # Allow error messages only from the first compilation.        # Allow error messages only from the first compilation.
      if test "$suppress_opt" = yes; then      if test yes = "$suppress_opt"; then
         suppress_output=' >/dev/null 2>&1'          suppress_output=' >/dev/null 2>&1'
       fi        fi
     fi      fi
   
     # Only build a position-dependent object if we build old libraries.      # Only build a position-dependent object if we build old libraries.
    if test "$build_old_libs" = yes; then    if test yes = "$build_old_libs"; then
      if test "$pic_mode" != yes; then      if test yes != "$pic_mode"; then
         # Don't build PIC code          # Don't build PIC code
         command="$base_compile $qsrcfile$pie_flag"          command="$base_compile $qsrcfile$pie_flag"
       else        else
         command="$base_compile $qsrcfile $pic_flag"          command="$base_compile $qsrcfile $pic_flag"
       fi        fi
      if test "$compiler_c_o" = yes; then      if test yes = "$compiler_c_o"; then
        command="$command -o $obj"        func_append command " -o $obj"
       fi        fi
   
       # Suppress compiler output if we already did a PIC compilation.        # Suppress compiler output if we already did a PIC compilation.
      command="$command$suppress_output"      func_append command "$suppress_output"
       func_show_eval_locale "$command" \        func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'          '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
   
      if test "$need_locks" = warn &&      if test warn = "$need_locks" &&
          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then           test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
         $ECHO "\          $ECHO "\
 *** ERROR, $lockfile contains:  *** ERROR, $lockfile contains:
Line 1415  $srcfile Line 3669  $srcfile
   
 This indicates that another process is trying to use the same  This indicates that another process is trying to use the same
 temporary object file, and libtool could not work around it because  temporary object file, and libtool could not work around it because
your compiler does not support \`-c' and \`-o' together.  If youyour compiler does not support '-c' and '-o' together.  If you
 repeat this compilation, it may succeed, by chance, but you had better  repeat this compilation, it may succeed, by chance, but you had better
 avoid parallel builds (make -j) in this platform, or get a better  avoid parallel builds (make -j) in this platform, or get a better
 compiler."  compiler."
Line 1435  compiler." Line 3689  compiler."
       func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"        func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
   
       # Unlock the critical section if it was locked        # Unlock the critical section if it was locked
      if test "$need_locks" != no; then      if test no != "$need_locks"; then
         removelist=$lockfile          removelist=$lockfile
         $RM "$lockfile"          $RM "$lockfile"
       fi        fi
Line 1445  compiler." Line 3699  compiler."
 }  }
   
 $opt_help || {  $opt_help || {
test "$mode" = compile && func_mode_compile ${1+"$@"}  test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
 }  }
   
 func_mode_help ()  func_mode_help ()
 {  {
     # We need to display help for each of the modes.      # We need to display help for each of the modes.
    case $mode in    case $opt_mode in
       "")        "")
         # Generic help is extracted from the usage comments          # Generic help is extracted from the usage comments
         # at the start of this file.          # at the start of this file.
Line 1465  func_mode_help () Line 3719  func_mode_help ()
 Remove files from the build directory.  Remove files from the build directory.
   
 RM is the name of the program to use to delete files associated with each FILE  RM is the name of the program to use to delete files associated with each FILE
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
 to RM.  to RM.
   
 If FILE is a libtool library, object or program, all the files associated  If FILE is a libtool library, object or program, all the files associated
Line 1482  This mode accepts the following additional options: Line 3736  This mode accepts the following additional options:
   
   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE    -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
   -no-suppress      do not suppress compiler output for multiple passes    -no-suppress      do not suppress compiler output for multiple passes
  -prefer-pic       try to building PIC objects only  -prefer-pic       try to build PIC objects only
  -prefer-non-pic   try to building non-PIC objects only  -prefer-non-pic   try to build non-PIC objects only
  -shared           do not build a \`.o' file suitable for static linking  -shared           do not build a '.o' file suitable for static linking
  -static           only build a \`.o' file suitable for static linking  -static           only build a '.o' file suitable for static linking
   -Wc,FLAG          pass FLAG directly to the compiler
   
COMPILE-COMMAND is a command to be used in creating a \`standard' object fileCOMPILE-COMMAND is a command to be used in creating a 'standard' object file
 from the given SOURCEFILE.  from the given SOURCEFILE.
   
 The output file name is determined by removing the directory component from  The output file name is determined by removing the directory component from
SOURCEFILE, then substituting the C source code suffix \`.c' with theSOURCEFILE, then substituting the C source code suffix '.c' with the
library object suffix, \`.lo'."library object suffix, '.lo'."
         ;;          ;;
   
       execute)        execute)
Line 1505  This mode accepts the following additional options: Line 3760  This mode accepts the following additional options:
   
   -dlopen FILE      add the directory containing FILE to the library path    -dlopen FILE      add the directory containing FILE to the library path
   
This mode sets the library path environment variable according to \`-dlopen'This mode sets the library path environment variable according to '-dlopen'
 flags.  flags.
   
 If any of the ARGS are libtool executable wrappers, then they are translated  If any of the ARGS are libtool executable wrappers, then they are translated
Line 1524  Complete the installation of libtool libraries. Line 3779  Complete the installation of libtool libraries.
 Each LIBDIR is a directory that contains libtool libraries.  Each LIBDIR is a directory that contains libtool libraries.
   
 The commands that this mode executes may require superuser privileges.  Use  The commands that this mode executes may require superuser privileges.  Use
the \`--dry-run' option if you just want to see what would be executed."the '--dry-run' option if you just want to see what would be executed."
         ;;          ;;
   
       install)        install)
Line 1534  the \`--dry-run' option if you just want to see what w Line 3789  the \`--dry-run' option if you just want to see what w
 Install executables or libraries.  Install executables or libraries.
   
 INSTALL-COMMAND is the installation command.  The first component should be  INSTALL-COMMAND is the installation command.  The first component should be
either the \`install' or \`cp' program.either the 'install' or 'cp' program.
   
 The following components of INSTALL-COMMAND are treated specially:  The following components of INSTALL-COMMAND are treated specially:
   
  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
   
 The rest of the components are interpreted as arguments to that command (only  The rest of the components are interpreted as arguments to that command (only
 BSD-compatible install options are recognized)."  BSD-compatible install options are recognized)."
Line 1558  The following components of LINK-COMMAND are treated s Line 3813  The following components of LINK-COMMAND are treated s
   
   -all-static       do not do any dynamic linking at all    -all-static       do not do any dynamic linking at all
   -avoid-version    do not add a version suffix if possible    -avoid-version    do not add a version suffix if possible
  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime  -bindir BINDIR    specify path to binaries directory (for systems where
                     libraries must be found in the PATH setting at runtime)
   -dlopen FILE      '-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols    -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)    -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   -export-symbols SYMFILE    -export-symbols SYMFILE
Line 1572  The following components of LINK-COMMAND are treated s Line 3829  The following components of LINK-COMMAND are treated s
   -no-install       link a not-installable executable    -no-install       link a not-installable executable
   -no-undefined     declare that a library does not refer to external symbols    -no-undefined     declare that a library does not refer to external symbols
   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects    -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
  -objectlist FILE  Use a list of object files found in FILE to specify objects  -objectlist FILE  use a list of object files found in FILE to specify objects
   -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)
   -precious-files-regex REGEX    -precious-files-regex REGEX
                     don't remove output files matching REGEX                      don't remove output files matching REGEX
   -release RELEASE  specify package release information    -release RELEASE  specify package release information
Line 1586  The following components of LINK-COMMAND are treated s Line 3844  The following components of LINK-COMMAND are treated s
   -version-info CURRENT[:REVISION[:AGE]]    -version-info CURRENT[:REVISION[:AGE]]
                     specify library version info [each variable defaults to 0]                      specify library version info [each variable defaults to 0]
   -weak LIBNAME     declare that the target provides the LIBNAME interface    -weak LIBNAME     declare that the target provides the LIBNAME interface
     -Wc,FLAG
     -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
     -Wl,FLAG
     -Xlinker FLAG     pass linker-specific FLAG directly to the linker
     -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
   
All other options (arguments beginning with \`-') are ignored.All other options (arguments beginning with '-') are ignored.
   
Every other argument is treated as a filename.  Files ending in \`.la' areEvery other argument is treated as a filename.  Files ending in '.la' are
 treated as uninstalled libtool libraries, other files are standard or library  treated as uninstalled libtool libraries, other files are standard or library
 object files.  object files.
   
If the OUTPUT-FILE ends in \`.la', then a libtool library is created,If the OUTPUT-FILE ends in '.la', then a libtool library is created,
only library objects (\`.lo' files) may be specified, and \`-rpath' isonly library objects ('.lo' files) may be specified, and '-rpath' is
 required, except when creating a convenience library.  required, except when creating a convenience library.
   
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is createdIf OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
using \`ar' and \`ranlib', or on Windows using \`lib'.using 'ar' and 'ranlib', or on Windows using 'lib'.
   
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object fileIf OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
 is created, otherwise an executable program is created."  is created, otherwise an executable program is created."
         ;;          ;;
   
Line 1611  is created, otherwise an executable program is created Line 3874  is created, otherwise an executable program is created
 Remove libraries from an installation directory.  Remove libraries from an installation directory.
   
 RM is the name of the program to use to delete files associated with each FILE  RM is the name of the program to use to delete files associated with each FILE
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
 to RM.  to RM.
   
 If FILE is a libtool library, all the files associated with it are deleted.  If FILE is a libtool library, all the files associated with it are deleted.
Line 1619  Otherwise, only FILE itself is deleted using RM." Line 3882  Otherwise, only FILE itself is deleted using RM."
         ;;          ;;
   
       *)        *)
        func_fatal_help "invalid operation mode \`$mode'"        func_fatal_help "invalid operation mode '$opt_mode'"
         ;;          ;;
     esac      esac
   
    $ECHO    echo
    $ECHO "Try \`$progname --help' for more information about other modes."    $ECHO "Try '$progname --help' for more information about other modes."
 
    exit $? 
 }  }
   
  # Now that we've collected a possible --mode arg, show help if necessary# Now that we've collected a possible --mode arg, show help if necessary
  $opt_help && func_mode_helpif $opt_help; then
   if test : = "$opt_help"; then
     func_mode_help
   else
     {
       func_help noexit
       for opt_mode in compile link execute install finish uninstall clean; do
         func_mode_help
       done
     } | $SED -n '1p; 2,$s/^Usage:/  or: /p'
     {
       func_help noexit
       for opt_mode in compile link execute install finish uninstall clean; do
         echo
         func_mode_help
       done
     } |
     $SED '1d
       /^When reporting/,/^Report/{
         H
         d
       }
       $x
       /information about other modes/d
       /more detailed .*MODE/d
       s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
   fi
   exit $?
 fi
   
   
 # func_mode_execute arg...  # func_mode_execute arg...
 func_mode_execute ()  func_mode_execute ()
 {  {
    $opt_debug    $debug_cmd
 
     # The first argument is the command name.      # The first argument is the command name.
    cmd="$nonopt"    cmd=$nonopt
     test -z "$cmd" && \      test -z "$cmd" && \
       func_fatal_help "you must specify a COMMAND"        func_fatal_help "you must specify a COMMAND"
   
     # Handle -dlopen flags immediately.      # Handle -dlopen flags immediately.
    for file in $execute_dlfiles; do    for file in $opt_dlopen; do
       test -f "$file" \        test -f "$file" \
        || func_fatal_help "\`$file' is not a file"        || func_fatal_help "'$file' is not a file"
   
       dir=        dir=
       case $file in        case $file in
       *.la)        *.la)
           func_resolve_sysroot "$file"
           file=$func_resolve_sysroot_result
   
         # Check to see that this really is a libtool archive.          # Check to see that this really is a libtool archive.
         func_lalib_unsafe_p "$file" \          func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$lib' is not a valid libtool archive"          || func_fatal_help "'$lib' is not a valid libtool archive"
   
         # Read the libtool library.          # Read the libtool library.
         dlname=          dlname=
Line 1663  func_mode_execute () Line 3956  func_mode_execute ()
         if test -z "$dlname"; then          if test -z "$dlname"; then
           # Warn if it was a shared library.            # Warn if it was a shared library.
           test -n "$library_names" && \            test -n "$library_names" && \
            func_warning "\`$file' was not linked with \`-export-dynamic'"            func_warning "'$file' was not linked with '-export-dynamic'"
           continue            continue
         fi          fi
   
         func_dirname "$file" "" "."          func_dirname "$file" "" "."
        dir="$func_dirname_result"        dir=$func_dirname_result
   
         if test -f "$dir/$objdir/$dlname"; then          if test -f "$dir/$objdir/$dlname"; then
          dir="$dir/$objdir"          func_append dir "/$objdir"
         else          else
           if test ! -f "$dir/$dlname"; then            if test ! -f "$dir/$dlname"; then
            func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"            func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
           fi            fi
         fi          fi
         ;;          ;;
Line 1682  func_mode_execute () Line 3975  func_mode_execute ()
       *.lo)        *.lo)
         # Just add the directory containing the .lo file.          # Just add the directory containing the .lo file.
         func_dirname "$file" "" "."          func_dirname "$file" "" "."
        dir="$func_dirname_result"        dir=$func_dirname_result
         ;;          ;;
   
       *)        *)
        func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"        func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
         continue          continue
         ;;          ;;
       esac        esac
   
       # Get the absolute pathname.        # Get the absolute pathname.
       absdir=`cd "$dir" && pwd`        absdir=`cd "$dir" && pwd`
      test -n "$absdir" && dir="$absdir"      test -n "$absdir" && dir=$absdir
   
       # Now add the directory to shlibpath_var.        # Now add the directory to shlibpath_var.
       if eval "test -z \"\$$shlibpath_var\""; then        if eval "test -z \"\$$shlibpath_var\""; then
Line 1705  func_mode_execute () Line 3998  func_mode_execute ()
   
     # This variable tells wrapper scripts just to set shlibpath_var      # This variable tells wrapper scripts just to set shlibpath_var
     # rather than running their programs.      # rather than running their programs.
    libtool_execute_magic="$magic"    libtool_execute_magic=$magic
   
     # Check if any of the arguments is a wrapper script.      # Check if any of the arguments is a wrapper script.
     args=      args=
     for file      for file
     do      do
       case $file in        case $file in
      -*) ;;      -* | *.la | *.lo ) ;;
       *)        *)
         # Do a test to see if this is really a libtool program.          # Do a test to see if this is really a libtool program.
         if func_ltwrapper_script_p "$file"; then          if func_ltwrapper_script_p "$file"; then
           func_source "$file"            func_source "$file"
           # Transform arg to wrapped name.            # Transform arg to wrapped name.
          file="$progdir/$program"          file=$progdir/$program
         elif func_ltwrapper_executable_p "$file"; then          elif func_ltwrapper_executable_p "$file"; then
           func_ltwrapper_scriptname "$file"            func_ltwrapper_scriptname "$file"
           func_source "$func_ltwrapper_scriptname_result"            func_source "$func_ltwrapper_scriptname_result"
           # Transform arg to wrapped name.            # Transform arg to wrapped name.
          file="$progdir/$program"          file=$progdir/$program
         fi          fi
         ;;          ;;
       esac        esac
       # Quote arguments (to preserve shell metacharacters).        # Quote arguments (to preserve shell metacharacters).
      func_quote_for_eval "$file"      func_append_quoted args "$file"
      args="$args $func_quote_for_eval_result" 
     done      done
   
    if test "X$opt_dry_run" = Xfalse; then    if $opt_dry_run; then
       # Display what would be done.
       if test -n "$shlibpath_var"; then        if test -n "$shlibpath_var"; then
           eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
           echo "export $shlibpath_var"
         fi
         $ECHO "$cmd$args"
         exit $EXIT_SUCCESS
       else
         if test -n "$shlibpath_var"; then
         # Export the shlibpath_var.          # Export the shlibpath_var.
         eval "export $shlibpath_var"          eval "export $shlibpath_var"
       fi        fi
Line 1749  func_mode_execute () Line 4049  func_mode_execute ()
       done        done
   
       # Now prepare to actually exec the command.        # Now prepare to actually exec the command.
      exec_cmd="\$cmd$args"      exec_cmd=\$cmd$args
    else 
      # Display what would be done. 
      if test -n "$shlibpath_var"; then 
        eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" 
        $ECHO "export $shlibpath_var" 
      fi 
      $ECHO "$cmd$args" 
      exit $EXIT_SUCCESS 
     fi      fi
 }  }
   
test "$mode" = execute && func_mode_execute ${1+"$@"}test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
   
   
 # func_mode_finish arg...  # func_mode_finish arg...
 func_mode_finish ()  func_mode_finish ()
 {  {
    $opt_debug    $debug_cmd
    libdirs="$nonopt"
     libs=
     libdirs=
     admincmds=      admincmds=
   
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then    for opt in "$nonopt" ${1+"$@"}
      for dir    do
      do      if test -d "$opt"; then
        libdirs="$libdirs $dir"        func_append libdirs " $opt"
      done 
   
         elif test -f "$opt"; then
           if func_lalib_unsafe_p "$opt"; then
             func_append libs " $opt"
           else
             func_warning "'$opt' is not a valid libtool archive"
           fi
   
         else
           func_fatal_error "invalid argument '$opt'"
         fi
       done
   
       if test -n "$libs"; then
         if test -n "$lt_sysroot"; then
           sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
           sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
         else
           sysroot_cmd=
         fi
   
         # Remove sysroot references
         if $opt_dry_run; then
           for lib in $libs; do
             echo "removing references to $lt_sysroot and '=' prefixes from $lib"
           done
         else
           tmpdir=`func_mktempdir`
           for lib in $libs; do
             $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
               > $tmpdir/tmp-la
             mv -f $tmpdir/tmp-la $lib
           done
           ${RM}r "$tmpdir"
         fi
       fi
   
       if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       for libdir in $libdirs; do        for libdir in $libdirs; do
         if test -n "$finish_cmds"; then          if test -n "$finish_cmds"; then
           # Do each command in the finish commands.            # Do each command in the finish commands.
Line 1786  func_mode_finish () Line 4116  func_mode_finish ()
         if test -n "$finish_eval"; then          if test -n "$finish_eval"; then
           # Do the single finish_eval.            # Do the single finish_eval.
           eval cmds=\"$finish_eval\"            eval cmds=\"$finish_eval\"
          $opt_dry_run || eval "$cmds" || admincmds="$admincmds          $opt_dry_run || eval "$cmds" || func_append admincmds "
        $cmds"         $cmds"
         fi          fi
       done        done
     fi      fi
   
     # Exit here if they wanted silent mode.      # Exit here if they wanted silent mode.
    $opt_silent && exit $EXIT_SUCCESS    $opt_quiet && exit $EXIT_SUCCESS
   
    $ECHO "X----------------------------------------------------------------------" | $Xsed    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
    $ECHO "Libraries have been installed in:"      echo "----------------------------------------------------------------------"
    for libdir in $libdirs; do      echo "Libraries have been installed in:"
      $ECHO "   $libdir"      for libdir in $libdirs; do
    done        $ECHO "   $libdir"
    $ECHO      done
    $ECHO "If you ever happen to want to link against installed libraries"      echo
    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"      echo "If you ever happen to want to link against installed libraries"
    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"      echo "in a given directory, LIBDIR, you must either use libtool, and"
    $ECHO "flag during linking and do at least one of the following:"      echo "specify the full pathname of the library, or use the '-LLIBDIR'"
    if test -n "$shlibpath_var"; then      echo "flag during linking and do at least one of the following:"
      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"      if test -n "$shlibpath_var"; then
      $ECHO "     during execution"        echo "   - add LIBDIR to the '$shlibpath_var' environment variable"
    fi        echo "     during execution"
    if test -n "$runpath_var"; then      fi
      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"      if test -n "$runpath_var"; then
      $ECHO "     during linking"        echo "   - add LIBDIR to the '$runpath_var' environment variable"
    fi        echo "     during linking"
    if test -n "$hardcode_libdir_flag_spec"; then      fi
      libdir=LIBDIR      if test -n "$hardcode_libdir_flag_spec"; then
      eval flag=\"$hardcode_libdir_flag_spec\"        libdir=LIBDIR
         eval flag=\"$hardcode_libdir_flag_spec\"
   
      $ECHO "   - use the \`$flag' linker flag"        $ECHO "   - use the '$flag' linker flag"
    fi      fi
    if test -n "$admincmds"; then      if test -n "$admincmds"; then
      $ECHO "   - have your system administrator run these commands:$admincmds"        $ECHO "   - have your system administrator run these commands:$admincmds"
    fi      fi
    if test -f /etc/ld.so.conf; then      if test -f /etc/ld.so.conf; then
      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"        echo "   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
    fi      fi
    $ECHO      echo
   
    $ECHO "See any operating system documentation about shared libraries for"      echo "See any operating system documentation about shared libraries for"
    case $host in      case $host in
      solaris2.[6789]|solaris2.1[0-9])        solaris2.[6789]|solaris2.1[0-9])
        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"          echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
        $ECHO "pages."          echo "pages."
        ;;          ;;
      *)        *)
        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."          echo "more information, such as the ld(1) and ld.so(8) manual pages."
        ;;          ;;
    esac      esac
    $ECHO "X----------------------------------------------------------------------" | $Xsed      echo "----------------------------------------------------------------------"
     fi
     exit $EXIT_SUCCESS      exit $EXIT_SUCCESS
 }  }
   
test "$mode" = finish && func_mode_finish ${1+"$@"}test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
   
   
 # func_mode_install arg...  # func_mode_install arg...
 func_mode_install ()  func_mode_install ()
 {  {
    $opt_debug    $debug_cmd
 
     # There may be an optional sh(1) argument at the beginning of      # There may be an optional sh(1) argument at the beginning of
     # install_prog (especially on Windows NT).      # install_prog (especially on Windows NT).
    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||    if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
        # Allow the use of GNU shtool's install command.         # Allow the use of GNU shtool's install command.
       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then       case $nonopt in *shtool*) :;; *) false;; esac
     then
       # Aesthetically quote it.        # Aesthetically quote it.
       func_quote_for_eval "$nonopt"        func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "        install_prog="$func_quote_for_eval_result "
Line 1866  func_mode_install () Line 4200  func_mode_install ()
     # The real first argument should be the name of the installation program.      # The real first argument should be the name of the installation program.
     # Aesthetically quote it.      # Aesthetically quote it.
     func_quote_for_eval "$arg"      func_quote_for_eval "$arg"
    install_prog="$install_prog$func_quote_for_eval_result"    func_append install_prog "$func_quote_for_eval_result"
     install_shared_prog=$install_prog
     case " $install_prog " in
       *[\\\ /]cp\ *) install_cp=: ;;
       *) install_cp=false ;;
     esac
   
     # We need to accept at least all the BSD install flags.      # We need to accept at least all the BSD install flags.
     dest=      dest=
Line 1874  func_mode_install () Line 4213  func_mode_install ()
     opts=      opts=
     prev=      prev=
     install_type=      install_type=
    isdir=no    isdir=false
     stripme=      stripme=
       no_mode=:
     for arg      for arg
     do      do
         arg2=
       if test -n "$dest"; then        if test -n "$dest"; then
        files="$files $dest"        func_append files " $dest"
         dest=$arg          dest=$arg
         continue          continue
       fi        fi
   
       case $arg in        case $arg in
      -d) isdir=yes ;;      -d) isdir=: ;;
       -f)        -f)
        case " $install_prog " in        if $install_cp; then :; else
        *[\\\ /]cp\ *) ;;          prev=$arg
        *) prev=$arg ;;        fi
        esac 
         ;;          ;;
       -g | -m | -o)        -g | -m | -o)
         prev=$arg          prev=$arg
Line 1904  func_mode_install () Line 4244  func_mode_install ()
       *)        *)
         # If the previous option needed an argument, then skip it.          # If the previous option needed an argument, then skip it.
         if test -n "$prev"; then          if test -n "$prev"; then
             if test X-m = "X$prev" && test -n "$install_override_mode"; then
               arg2=$install_override_mode
               no_mode=false
             fi
           prev=            prev=
         else          else
           dest=$arg            dest=$arg
Line 1914  func_mode_install () Line 4258  func_mode_install ()
   
       # Aesthetically quote the argument.        # Aesthetically quote the argument.
       func_quote_for_eval "$arg"        func_quote_for_eval "$arg"
      install_prog="$install_prog $func_quote_for_eval_result"      func_append install_prog " $func_quote_for_eval_result"
       if test -n "$arg2"; then
         func_quote_for_eval "$arg2"
       fi
       func_append install_shared_prog " $func_quote_for_eval_result"
     done      done
   
     test -z "$install_prog" && \      test -z "$install_prog" && \
       func_fatal_help "you must specify an install program"        func_fatal_help "you must specify an install program"
   
     test -n "$prev" && \      test -n "$prev" && \
      func_fatal_help "the \`$prev' option requires an argument"      func_fatal_help "the '$prev' option requires an argument"
   
       if test -n "$install_override_mode" && $no_mode; then
         if $install_cp; then :; else
           func_quote_for_eval "$install_override_mode"
           func_append install_shared_prog " -m $func_quote_for_eval_result"
         fi
       fi
   
     if test -z "$files"; then      if test -z "$files"; then
       if test -z "$dest"; then        if test -z "$dest"; then
         func_fatal_help "no file or destination specified"          func_fatal_help "no file or destination specified"
Line 1936  func_mode_install () Line 4291  func_mode_install ()
     dest=$func_stripname_result      dest=$func_stripname_result
   
     # Check to see that the destination is a directory.      # Check to see that the destination is a directory.
    test -d "$dest" && isdir=yes    test -d "$dest" && isdir=:
    if test "$isdir" = yes; then    if $isdir; then
      destdir="$dest"      destdir=$dest
       destname=        destname=
     else      else
       func_dirname_and_basename "$dest" "" "."        func_dirname_and_basename "$dest" "" "."
      destdir="$func_dirname_result"      destdir=$func_dirname_result
      destname="$func_basename_result"      destname=$func_basename_result
   
       # Not a directory, so check to see that there is only one file specified.        # Not a directory, so check to see that there is only one file specified.
       set dummy $files; shift        set dummy $files; shift
       test "$#" -gt 1 && \        test "$#" -gt 1 && \
        func_fatal_help "\`$dest' is not a directory"        func_fatal_help "'$dest' is not a directory"
     fi      fi
     case $destdir in      case $destdir in
     [\\/]* | [A-Za-z]:[\\/]*) ;;      [\\/]* | [A-Za-z]:[\\/]*) ;;
Line 1957  func_mode_install () Line 4312  func_mode_install ()
         case $file in          case $file in
         *.lo) ;;          *.lo) ;;
         *)          *)
          func_fatal_help "\`$destdir' must be an absolute directory name"          func_fatal_help "'$destdir' must be an absolute directory name"
           ;;            ;;
         esac          esac
       done        done
Line 1966  func_mode_install () Line 4321  func_mode_install ()
   
     # This variable tells wrapper scripts just to set variables rather      # This variable tells wrapper scripts just to set variables rather
     # than running their programs.      # than running their programs.
    libtool_install_magic="$magic"    libtool_install_magic=$magic
   
     staticlibs=      staticlibs=
     future_libdirs=      future_libdirs=
Line 1977  func_mode_install () Line 4332  func_mode_install ()
       case $file in        case $file in
       *.$libext)        *.$libext)
         # Do the static libraries later.          # Do the static libraries later.
        staticlibs="$staticlibs $file"        func_append staticlibs " $file"
         ;;          ;;
   
       *.la)        *.la)
           func_resolve_sysroot "$file"
           file=$func_resolve_sysroot_result
   
         # Check to see that this really is a libtool archive.          # Check to see that this really is a libtool archive.
         func_lalib_unsafe_p "$file" \          func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$file' is not a valid libtool archive"          || func_fatal_help "'$file' is not a valid libtool archive"
   
         library_names=          library_names=
         old_library=          old_library=
Line 1994  func_mode_install () Line 4352  func_mode_install ()
         if test "X$destdir" = "X$libdir"; then          if test "X$destdir" = "X$libdir"; then
           case "$current_libdirs " in            case "$current_libdirs " in
           *" $libdir "*) ;;            *" $libdir "*) ;;
          *) current_libdirs="$current_libdirs $libdir" ;;          *) func_append current_libdirs " $libdir" ;;
           esac            esac
         else          else
           # Note the libdir as a future libdir.            # Note the libdir as a future libdir.
           case "$future_libdirs " in            case "$future_libdirs " in
           *" $libdir "*) ;;            *" $libdir "*) ;;
          *) future_libdirs="$future_libdirs $libdir" ;;          *) func_append future_libdirs " $libdir" ;;
           esac            esac
         fi          fi
   
         func_dirname "$file" "/" ""          func_dirname "$file" "/" ""
        dir="$func_dirname_result"        dir=$func_dirname_result
        dir="$dir$objdir"        func_append dir "$objdir"
   
         if test -n "$relink_command"; then          if test -n "$relink_command"; then
           # Determine the prefix the user has applied to our future dir.            # Determine the prefix the user has applied to our future dir.
          inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`          inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
   
           # Don't allow the user to place us outside of our expected            # Don't allow the user to place us outside of our expected
           # location b/c this prevents finding dependent libraries that            # location b/c this prevents finding dependent libraries that
Line 2019  func_mode_install () Line 4377  func_mode_install ()
           # are installed into $libdir/../bin (currently, that works fine)            # are installed into $libdir/../bin (currently, that works fine)
           # but it's something to keep an eye on.            # but it's something to keep an eye on.
           test "$inst_prefix_dir" = "$destdir" && \            test "$inst_prefix_dir" = "$destdir" && \
            func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"            func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
   
           if test -n "$inst_prefix_dir"; then            if test -n "$inst_prefix_dir"; then
             # Stick the inst_prefix_dir data into the link command.              # Stick the inst_prefix_dir data into the link command.
            relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
           else            else
            relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
           fi            fi
   
          func_warning "relinking \`$file'"          func_warning "relinking '$file'"
           func_show_eval "$relink_command" \            func_show_eval "$relink_command" \
            'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'            'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
         fi          fi
   
         # See the names of the shared library.          # See the names of the shared library.
         set dummy $library_names; shift          set dummy $library_names; shift
         if test -n "$1"; then          if test -n "$1"; then
          realname="$1"          realname=$1
           shift            shift
   
          srcname="$realname"          srcname=$realname
          test -n "$relink_command" && srcname="$realname"T          test -n "$relink_command" && srcname=${realname}T
   
           # Install the shared library and build the symlinks.            # Install the shared library and build the symlinks.
          func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \          func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
               'exit $?'                'exit $?'
          tstripme="$stripme"          tstripme=$stripme
           case $host_os in            case $host_os in
           cygwin* | mingw* | pw32* | cegcc*)            cygwin* | mingw* | pw32* | cegcc*)
             case $realname in              case $realname in
             *.dll.a)              *.dll.a)
              tstripme=""              tstripme=
               ;;                ;;
             esac              esac
             ;;              ;;
             os2*)
               case $realname in
               *_dll.a)
                 tstripme=
                 ;;
               esac
               ;;
           esac            esac
           if test -n "$tstripme" && test -n "$striplib"; then            if test -n "$tstripme" && test -n "$striplib"; then
             func_show_eval "$striplib $destdir/$realname" 'exit $?'              func_show_eval "$striplib $destdir/$realname" 'exit $?'
Line 2061  func_mode_install () Line 4426  func_mode_install ()
   
           if test "$#" -gt 0; then            if test "$#" -gt 0; then
             # Delete the old symlinks, and create new ones.              # Delete the old symlinks, and create new ones.
            # Try `ln -sf' first, because the `ln' binary might depend on            # Try 'ln -sf' first, because the 'ln' binary might depend on
             # the symlink we replace!  Solaris /bin/ln does not understand -f,              # the symlink we replace!  Solaris /bin/ln does not understand -f,
             # so we also need to try rm && ln -s.              # so we also need to try rm && ln -s.
             for linkname              for linkname
Line 2072  func_mode_install () Line 4437  func_mode_install ()
           fi            fi
   
           # Do each command in the postinstall commands.            # Do each command in the postinstall commands.
          lib="$destdir/$realname"          lib=$destdir/$realname
           func_execute_cmds "$postinstall_cmds" 'exit $?'            func_execute_cmds "$postinstall_cmds" 'exit $?'
         fi          fi
   
         # Install the pseudo-library for information purposes.          # Install the pseudo-library for information purposes.
         func_basename "$file"          func_basename "$file"
        name="$func_basename_result"        name=$func_basename_result
        instname="$dir/$name"i        instname=$dir/${name}i
         func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'          func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
   
         # Maybe install the static library, too.          # Maybe install the static library, too.
        test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"        test -n "$old_library" && func_append staticlibs " $dir/$old_library"
         ;;          ;;
   
       *.lo)        *.lo)
Line 2091  func_mode_install () Line 4456  func_mode_install ()
   
         # Figure out destination file name, if it wasn't already specified.          # Figure out destination file name, if it wasn't already specified.
         if test -n "$destname"; then          if test -n "$destname"; then
          destfile="$destdir/$destname"          destfile=$destdir/$destname
         else          else
           func_basename "$file"            func_basename "$file"
          destfile="$func_basename_result"          destfile=$func_basename_result
          destfile="$destdir/$destfile"          destfile=$destdir/$destfile
         fi          fi
   
         # Deduce the name of the destination old-style object file.          # Deduce the name of the destination old-style object file.
Line 2105  func_mode_install () Line 4470  func_mode_install ()
           staticdest=$func_lo2o_result            staticdest=$func_lo2o_result
           ;;            ;;
         *.$objext)          *.$objext)
          staticdest="$destfile"          staticdest=$destfile
           destfile=            destfile=
           ;;            ;;
         *)          *)
          func_fatal_help "cannot copy a libtool object to \`$destfile'"          func_fatal_help "cannot copy a libtool object to '$destfile'"
           ;;            ;;
         esac          esac
   
Line 2118  func_mode_install () Line 4483  func_mode_install ()
           func_show_eval "$install_prog $file $destfile" 'exit $?'            func_show_eval "$install_prog $file $destfile" 'exit $?'
   
         # Install the old object if enabled.          # Install the old object if enabled.
        if test "$build_old_libs" = yes; then        if test yes = "$build_old_libs"; then
           # Deduce the name of the old-style object file.            # Deduce the name of the old-style object file.
           func_lo2o "$file"            func_lo2o "$file"
           staticobj=$func_lo2o_result            staticobj=$func_lo2o_result
Line 2130  func_mode_install () Line 4495  func_mode_install ()
       *)        *)
         # Figure out destination file name, if it wasn't already specified.          # Figure out destination file name, if it wasn't already specified.
         if test -n "$destname"; then          if test -n "$destname"; then
          destfile="$destdir/$destname"          destfile=$destdir/$destname
         else          else
           func_basename "$file"            func_basename "$file"
          destfile="$func_basename_result"          destfile=$func_basename_result
          destfile="$destdir/$destfile"          destfile=$destdir/$destfile
         fi          fi
   
         # If the file is missing, and there is a .exe on the end, strip it          # If the file is missing, and there is a .exe on the end, strip it
         # because it is most likely a libtool script we actually want to          # because it is most likely a libtool script we actually want to
         # install          # install
        stripped_ext=""        stripped_ext=
         case $file in          case $file in
           *.exe)            *.exe)
             if test ! -f "$file"; then              if test ! -f "$file"; then
               func_stripname '' '.exe' "$file"                func_stripname '' '.exe' "$file"
               file=$func_stripname_result                file=$func_stripname_result
              stripped_ext=".exe"              stripped_ext=.exe
             fi              fi
             ;;              ;;
         esac          esac
Line 2174  func_mode_install () Line 4539  func_mode_install ()
   
           # Check the variables that should have been set.            # Check the variables that should have been set.
           test -z "$generated_by_libtool_version" && \            test -z "$generated_by_libtool_version" && \
            func_fatal_error "invalid libtool wrapper script \`$wrapper'"            func_fatal_error "invalid libtool wrapper script '$wrapper'"
   
          finalize=yes          finalize=:
           for lib in $notinst_deplibs; do            for lib in $notinst_deplibs; do
             # Check to see that each library is installed.              # Check to see that each library is installed.
             libdir=              libdir=
             if test -f "$lib"; then              if test -f "$lib"; then
               func_source "$lib"                func_source "$lib"
             fi              fi
            libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test            libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
             if test -n "$libdir" && test ! -f "$libfile"; then              if test -n "$libdir" && test ! -f "$libfile"; then
              func_warning "\`$lib' has not been installed in \`$libdir'"              func_warning "'$lib' has not been installed in '$libdir'"
              finalize=no              finalize=false
             fi              fi
           done            done
   
Line 2194  func_mode_install () Line 4559  func_mode_install ()
           func_source "$wrapper"            func_source "$wrapper"
   
           outputname=            outputname=
          if test "$fast_install" = no && test -n "$relink_command"; then          if test no = "$fast_install" && test -n "$relink_command"; then
             $opt_dry_run || {              $opt_dry_run || {
              if test "$finalize" = yes; then              if $finalize; then
                 tmpdir=`func_mktempdir`                  tmpdir=`func_mktempdir`
                 func_basename "$file$stripped_ext"                  func_basename "$file$stripped_ext"
                file="$func_basename_result"                file=$func_basename_result
                outputname="$tmpdir/$file"                outputname=$tmpdir/$file
                 # Replace the output file specification.                  # Replace the output file specification.
                relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`                relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
   
                $opt_silent || {                $opt_quiet || {
                   func_quote_for_expand "$relink_command"                    func_quote_for_expand "$relink_command"
                   eval "func_echo $func_quote_for_expand_result"                    eval "func_echo $func_quote_for_expand_result"
                 }                  }
                 if eval "$relink_command"; then :                  if eval "$relink_command"; then :
                   else                    else
                  func_error "error: relink \`$file' with the above command before installing it"                  func_error "error: relink '$file' with the above command before installing it"
                   $opt_dry_run || ${RM}r "$tmpdir"                    $opt_dry_run || ${RM}r "$tmpdir"
                   continue                    continue
                 fi                  fi
                file="$outputname"                file=$outputname
               else                else
                func_warning "cannot relink \`$file'"                func_warning "cannot relink '$file'"
               fi                fi
             }              }
           else            else
             # Install the binary that we compiled earlier.              # Install the binary that we compiled earlier.
            file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`            file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
           fi            fi
         fi          fi
   
Line 2253  func_mode_install () Line 4618  func_mode_install ()
   
     for file in $staticlibs; do      for file in $staticlibs; do
       func_basename "$file"        func_basename "$file"
      name="$func_basename_result"      name=$func_basename_result
   
       # Set up the ranlib parameters.        # Set up the ranlib parameters.
      oldlib="$destdir/$name"      oldlib=$destdir/$name
       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
       tool_oldlib=$func_to_tool_file_result
   
       func_show_eval "$install_prog \$file \$oldlib" 'exit $?'        func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
   
       if test -n "$stripme" && test -n "$old_striplib"; then        if test -n "$stripme" && test -n "$old_striplib"; then
        func_show_eval "$old_striplib $oldlib" 'exit $?'        func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
       fi        fi
   
       # Do each command in the postinstall commands.        # Do each command in the postinstall commands.
Line 2269  func_mode_install () Line 4636  func_mode_install ()
     done      done
   
     test -n "$future_libdirs" && \      test -n "$future_libdirs" && \
      func_warning "remember to run \`$progname --finish$future_libdirs'"      func_warning "remember to run '$progname --finish$future_libdirs'"
   
     if test -n "$current_libdirs"; then      if test -n "$current_libdirs"; then
       # Maybe just do a dry run.        # Maybe just do a dry run.
       $opt_dry_run && current_libdirs=" -n$current_libdirs"        $opt_dry_run && current_libdirs=" -n$current_libdirs"
      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'      exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
     else      else
       exit $EXIT_SUCCESS        exit $EXIT_SUCCESS
     fi      fi
 }  }
   
test "$mode" = install && func_mode_install ${1+"$@"}test install = "$opt_mode" && func_mode_install ${1+"$@"}
   
   
 # func_generate_dlsyms outputname originator pic_p  # func_generate_dlsyms outputname originator pic_p
Line 2288  test "$mode" = install && func_mode_install ${1+"$@"} Line 4655  test "$mode" = install && func_mode_install ${1+"$@"}
 # a dlpreopen symbol table.  # a dlpreopen symbol table.
 func_generate_dlsyms ()  func_generate_dlsyms ()
 {  {
    $opt_debug    $debug_cmd
    my_outputname="$1"
    my_originator="$2"    my_outputname=$1
    my_pic_p="${3-no}"    my_originator=$2
    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`    my_pic_p=${3-false}
     my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
     my_dlsyms=      my_dlsyms=
   
    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then    if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
       if test -n "$NM" && test -n "$global_symbol_pipe"; then        if test -n "$NM" && test -n "$global_symbol_pipe"; then
        my_dlsyms="${my_outputname}S.c"        my_dlsyms=${my_outputname}S.c
       else        else
         func_error "not configured to extract global symbols from dlpreopened files"          func_error "not configured to extract global symbols from dlpreopened files"
       fi        fi
Line 2308  func_generate_dlsyms () Line 4676  func_generate_dlsyms ()
       "") ;;        "") ;;
       *.c)        *.c)
         # Discover the nlist of each of the dlfiles.          # Discover the nlist of each of the dlfiles.
        nlist="$output_objdir/${my_outputname}.nm"        nlist=$output_objdir/$my_outputname.nm
   
         func_show_eval "$RM $nlist ${nlist}S ${nlist}T"          func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
   
Line 2316  func_generate_dlsyms () Line 4684  func_generate_dlsyms ()
         func_verbose "creating $output_objdir/$my_dlsyms"          func_verbose "creating $output_objdir/$my_dlsyms"
   
         $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\          $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. *//* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION *//* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
   
 #ifdef __cplusplus  #ifdef __cplusplus
 extern \"C\" {  extern \"C\" {
 #endif  #endif
   
   #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
   #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
   #endif
   
   /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
   #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
   /* DATA imports from DLLs on WIN32 can't be const, because runtime
      relocations are performed -- see ld's documentation on pseudo-relocs.  */
   # define LT_DLSYM_CONST
   #elif defined __osf__
   /* This system does not cope well with relocations in const data.  */
   # define LT_DLSYM_CONST
   #else
   # define LT_DLSYM_CONST const
   #endif
   
   #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
   
 /* External symbol declarations for the compiler. */\  /* External symbol declarations for the compiler. */\
 "  "
   
        if test "$dlself" = yes; then        if test yes = "$dlself"; then
          func_verbose "generating symbol list for \`$output'"          func_verbose "generating symbol list for '$output'"
   
           $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"            $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
   
           # Add our own program objects to the symbol list.            # Add our own program objects to the symbol list.
          progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`          progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
           for progfile in $progfiles; do            for progfile in $progfiles; do
            func_verbose "extracting global C symbols from \`$progfile'"            func_to_tool_file "$progfile" func_convert_file_msys_to_w32
            $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"            func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
             $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
           done            done
   
           if test -n "$exclude_expsyms"; then            if test -n "$exclude_expsyms"; then
Line 2354  extern \"C\" { Line 4741  extern \"C\" {
   
           # Prepare the list of exported symbols            # Prepare the list of exported symbols
           if test -z "$export_symbols"; then            if test -z "$export_symbols"; then
            export_symbols="$output_objdir/$outputname.exp"            export_symbols=$output_objdir/$outputname.exp
             $opt_dry_run || {              $opt_dry_run || {
               $RM $export_symbols                $RM $export_symbols
              eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'              eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
               case $host in                case $host in
               *cygwin* | *mingw* | *cegcc* )                *cygwin* | *mingw* | *cegcc* )
                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
Line 2367  extern \"C\" { Line 4754  extern \"C\" {
             }              }
           else            else
             $opt_dry_run || {              $opt_dry_run || {
              eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'              eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
               eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'                eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
               eval '$MV "$nlist"T "$nlist"'                eval '$MV "$nlist"T "$nlist"'
               case $host in                case $host in
                *cygwin | *mingw* | *cegcc* )                *cygwin* | *mingw* | *cegcc* )
                   eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'                    eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
                   eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'                    eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
                   ;;                    ;;
Line 2381  extern \"C\" { Line 4768  extern \"C\" {
         fi          fi
   
         for dlprefile in $dlprefiles; do          for dlprefile in $dlprefiles; do
          func_verbose "extracting global C symbols from \`$dlprefile'"          func_verbose "extracting global C symbols from '$dlprefile'"
           func_basename "$dlprefile"            func_basename "$dlprefile"
          name="$func_basename_result"          name=$func_basename_result
          $opt_dry_run || {          case $host in
            eval '$ECHO ": $name " >> "$nlist"'            *cygwin* | *mingw* | *cegcc* )
            eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"              # if an import library, we need to obtain dlname
          }              if func_win32_import_lib_p "$dlprefile"; then
                 func_tr_sh "$dlprefile"
                 eval "curr_lafile=\$libfile_$func_tr_sh_result"
                 dlprefile_dlbasename=
                 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
                   # Use subshell, to avoid clobbering current variable values
                   dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
                   if test -n "$dlprefile_dlname"; then
                     func_basename "$dlprefile_dlname"
                     dlprefile_dlbasename=$func_basename_result
                   else
                     # no lafile. user explicitly requested -dlpreopen <import library>.
                     $sharedlib_from_linklib_cmd "$dlprefile"
                     dlprefile_dlbasename=$sharedlib_from_linklib_result
                   fi
                 fi
                 $opt_dry_run || {
                   if test -n "$dlprefile_dlbasename"; then
                     eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
                   else
                     func_warning "Could not compute DLL name from $name"
                     eval '$ECHO ": $name " >> "$nlist"'
                   fi
                   func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
                   eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
                     $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
                 }
               else # not an import lib
                 $opt_dry_run || {
                   eval '$ECHO ": $name " >> "$nlist"'
                   func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
                   eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
                 }
               fi
             ;;
             *)
               $opt_dry_run || {
                 eval '$ECHO ": $name " >> "$nlist"'
                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
               }
             ;;
           esac
         done          done
   
         $opt_dry_run || {          $opt_dry_run || {
Line 2415  extern \"C\" { Line 4844  extern \"C\" {
           if test -f "$nlist"S; then            if test -f "$nlist"S; then
             eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'              eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
           else            else
            $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"            echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
           fi            fi
   
          $ECHO >> "$output_objdir/$my_dlsyms" "\          func_show_eval '$RM "${nlist}I"'
           if test -n "$global_symbol_to_import"; then
             eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
           fi
   
             echo >> "$output_objdir/$my_dlsyms" "\
   
 /* The mapping between symbol names and symbols.  */  /* The mapping between symbol names and symbols.  */
 typedef struct {  typedef struct {
   const char *name;    const char *name;
   void *address;    void *address;
 } lt_dlsymlist;  } lt_dlsymlist;
   extern LT_DLSYM_CONST lt_dlsymlist
   lt_${my_prefix}_LTX_preloaded_symbols[];\
 "  "
           case $host in  
           *cygwin* | *mingw* | *cegcc* )  
             $ECHO >> "$output_objdir/$my_dlsyms" "\  
 /* DATA imports from DLLs on WIN32 con't be const, because  
    runtime relocations are performed -- see ld's documentation  
    on pseudo-relocs.  */"  
             lt_dlsym_const= ;;  
           *osf5*)  
             echo >> "$output_objdir/$my_dlsyms" "\  
 /* This system does not cope well with relocations in const data */"  
             lt_dlsym_const= ;;  
           *)  
             lt_dlsym_const=const ;;  
           esac  
   
          $ECHO >> "$output_objdir/$my_dlsyms" "\          if test -s "$nlist"I; then
extern $lt_dlsym_const lt_dlsymlist            echo >> "$output_objdir/$my_dlsyms" "\
lt_${my_prefix}_LTX_preloaded_symbols[];static void lt_syminit(void)
$lt_dlsym_const lt_dlsymlist{
   LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
   for (; symbol->name; ++symbol)
     {"
             $SED 's/.*/      if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
             echo >> "$output_objdir/$my_dlsyms" "\
     }
 }"
           fi
           echo >> "$output_objdir/$my_dlsyms" "\
 LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =  lt_${my_prefix}_LTX_preloaded_symbols[] =
{\{ {\"$my_originator\", (void *) 0},"
  { \"$my_originator\", (void *) 0 }," 
   
             if test -s "$nlist"I; then
               echo >> "$output_objdir/$my_dlsyms" "\
     {\"@INIT@\", (void *) &lt_syminit},"
             fi
   
           case $need_lib_prefix in            case $need_lib_prefix in
           no)            no)
             eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"              eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
Line 2457  lt_${my_prefix}_LTX_preloaded_symbols[] = Line 4893  lt_${my_prefix}_LTX_preloaded_symbols[] =
             eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"              eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
             ;;              ;;
           esac            esac
          $ECHO >> "$output_objdir/$my_dlsyms" "\          echo >> "$output_objdir/$my_dlsyms" "\
   {0, (void *) 0}    {0, (void *) 0}
 };  };
   
Line 2484  static const void *lt_preloaded_setup() { Line 4920  static const void *lt_preloaded_setup() {
           # linked before any other PIC object.  But we must not use            # linked before any other PIC object.  But we must not use
           # pic_flag when linking with -static.  The problem exists in            # pic_flag when linking with -static.  The problem exists in
           # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.            # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
          *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)          *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
             pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;              pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
           *-*-hpux*)            *-*-hpux*)
             pic_flag_for_symtable=" $pic_flag"  ;;              pic_flag_for_symtable=" $pic_flag"  ;;
           *)            *)
            if test "X$my_pic_p" != Xno; then            $my_pic_p && pic_flag_for_symtable=" $pic_flag"
              pic_flag_for_symtable=" $pic_flag" 
            fi 
             ;;              ;;
           esac            esac
           ;;            ;;
Line 2500  static const void *lt_preloaded_setup() { Line 4934  static const void *lt_preloaded_setup() {
         for arg in $LTCFLAGS; do          for arg in $LTCFLAGS; do
           case $arg in            case $arg in
           -pie | -fpie | -fPIE) ;;            -pie | -fpie | -fPIE) ;;
          *) symtab_cflags="$symtab_cflags $arg" ;;          *) func_append symtab_cflags " $arg" ;;
           esac            esac
         done          done
   
Line 2508  static const void *lt_preloaded_setup() { Line 4942  static const void *lt_preloaded_setup() {
         func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'          func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
   
         # Clean up the generated files.          # Clean up the generated files.
        func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'        func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
   
         # Transform the symbol file into the correct name.          # Transform the symbol file into the correct name.
        symfileobj="$output_objdir/${my_outputname}S.$objext"        symfileobj=$output_objdir/${my_outputname}S.$objext
         case $host in          case $host in
         *cygwin* | *mingw* | *cegcc* )          *cygwin* | *mingw* | *cegcc* )
           if test -f "$output_objdir/$my_outputname.def"; then            if test -f "$output_objdir/$my_outputname.def"; then
            compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
            finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
           else            else
            compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
            finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
           fi            fi
           ;;            ;;
         *)          *)
          compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`          compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
          finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`          finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
           ;;            ;;
         esac          esac
         ;;          ;;
       *)        *)
        func_fatal_error "unknown suffix for \`$my_dlsyms'"        func_fatal_error "unknown suffix for '$my_dlsyms'"
         ;;          ;;
       esac        esac
     else      else
Line 2538  static const void *lt_preloaded_setup() { Line 4972  static const void *lt_preloaded_setup() {
       # really was required.        # really was required.
   
       # Nullify the symbol file.        # Nullify the symbol file.
      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
     fi      fi
 }  }
   
   # func_cygming_gnu_implib_p ARG
   # This predicate returns with zero status (TRUE) if
   # ARG is a GNU/binutils-style import library. Returns
   # with nonzero status (FALSE) otherwise.
   func_cygming_gnu_implib_p ()
   {
     $debug_cmd
   
     func_to_tool_file "$1" func_convert_file_msys_to_w32
     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)$'`
     test -n "$func_cygming_gnu_implib_tmp"
   }
   
   # func_cygming_ms_implib_p ARG
   # This predicate returns with zero status (TRUE) if
   # ARG is an MS-style import library. Returns
   # with nonzero status (FALSE) otherwise.
   func_cygming_ms_implib_p ()
   {
     $debug_cmd
   
     func_to_tool_file "$1" func_convert_file_msys_to_w32
     func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
     test -n "$func_cygming_ms_implib_tmp"
   }
   
 # func_win32_libid arg  # func_win32_libid arg
 # return the library type of file 'arg'  # return the library type of file 'arg'
 #  #
 # Need a lot of goo to handle *both* DLLs and import libs  # Need a lot of goo to handle *both* DLLs and import libs
 # Has to be a shell function in order to 'eat' the argument  # Has to be a shell function in order to 'eat' the argument
 # that is supplied when $file_magic_command is called.  # that is supplied when $file_magic_command is called.
   # Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()  func_win32_libid ()
 {  {
  $opt_debug  $debug_cmd
  win32_libid_type="unknown"
   win32_libid_type=unknown
   win32_fileres=`file -L $1 2>/dev/null`    win32_fileres=`file -L $1 2>/dev/null`
   case $win32_fileres in    case $win32_fileres in
   *ar\ archive\ import\ library*) # definitely import    *ar\ archive\ import\ library*) # definitely import
     win32_libid_type="x86 archive import"      win32_libid_type="x86 archive import"
     ;;      ;;
   *ar\ archive*) # could be an import, or static    *ar\ archive*) # could be an import, or static
       # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |      if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
      win32_nmres=`eval $NM -f posix -A $1 |      case $nm_interface in
        $SED -n -e '      "MS dumpbin")
         if func_cygming_ms_implib_p "$1" ||
            func_cygming_gnu_implib_p "$1"
         then
           win32_nmres=import
         else
           win32_nmres=
         fi
         ;;
       *)
         func_to_tool_file "$1" func_convert_file_msys_to_w32
         win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
           $SED -n -e '
             1,100{              1,100{
                 / I /{                  / I /{
                    s,.*,import,                    s|.*|import|
                     p                      p
                     q                      q
                 }                  }
             }'`              }'`
           ;;
         esac
       case $win32_nmres in        case $win32_nmres in
       import*)  win32_libid_type="x86 archive import";;        import*)  win32_libid_type="x86 archive import";;
       *)        win32_libid_type="x86 archive static";;        *)        win32_libid_type="x86 archive static";;
Line 2590  func_win32_libid () Line 5067  func_win32_libid ()
   $ECHO "$win32_libid_type"    $ECHO "$win32_libid_type"
 }  }
   
   # func_cygming_dll_for_implib ARG
   #
   # Platform-specific function to extract the
   # name of the DLL associated with the specified
   # import library ARG.
   # Invoked by eval'ing the libtool variable
   #    $sharedlib_from_linklib_cmd
   # Result is available in the variable
   #    $sharedlib_from_linklib_result
   func_cygming_dll_for_implib ()
   {
     $debug_cmd
   
     sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
   }
   
   # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
   #
   # The is the core of a fallback implementation of a
   # platform-specific function to extract the name of the
   # DLL associated with the specified import library LIBNAME.
   #
   # SECTION_NAME is either .idata$6 or .idata$7, depending
   # on the platform and compiler that created the implib.
   #
   # Echos the name of the DLL associated with the
   # specified import library.
   func_cygming_dll_for_implib_fallback_core ()
   {
     $debug_cmd
   
     match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
     $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
       $SED '/^Contents of section '"$match_literal"':/{
         # Place marker at beginning of archive member dllname section
         s/.*/====MARK====/
         p
         d
       }
       # These lines can sometimes be longer than 43 characters, but
       # are always uninteresting
       /:[  ]*file format pe[i]\{,1\}-/d
       /^In archive [^:]*:/d
       # Ensure marker is printed
       /^====MARK====/p
       # Remove all lines with less than 43 characters
       /^.\{43\}/!d
       # From remaining lines, remove first 43 characters
       s/^.\{43\}//' |
       $SED -n '
         # Join marker and all lines until next marker into a single line
         /^====MARK====/ b para
         H
         $ b para
         b
         :para
         x
         s/\n//g
         # Remove the marker
         s/^====MARK====//
         # Remove trailing dots and whitespace
         s/[\. \t]*$//
         # Print
         /./p' |
       # we now have a list, one entry per line, of the stringified
       # contents of the appropriate section of all members of the
       # archive that possess that section. Heuristic: eliminate
       # all those that have a first or second character that is
       # a '.' (that is, objdump's representation of an unprintable
       # character.) This should work for all archives with less than
       # 0x302f exports -- but will fail for DLLs whose name actually
       # begins with a literal '.' or a single character followed by
       # a '.'.
       #
       # Of those that remain, print the first one.
       $SED -e '/^\./d;/^.\./d;q'
   }
   
   # func_cygming_dll_for_implib_fallback ARG
   # Platform-specific function to extract the
   # name of the DLL associated with the specified
   # import library ARG.
   #
   # This fallback implementation is for use when $DLLTOOL
   # does not support the --identify-strict option.
   # Invoked by eval'ing the libtool variable
   #    $sharedlib_from_linklib_cmd
   # Result is available in the variable
   #    $sharedlib_from_linklib_result
   func_cygming_dll_for_implib_fallback ()
   {
     $debug_cmd
   
     if func_cygming_gnu_implib_p "$1"; then
       # binutils import library
       sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
     elif func_cygming_ms_implib_p "$1"; then
       # ms-generated import library
       sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
     else
       # unknown
       sharedlib_from_linklib_result=
     fi
   }
   
   
 # func_extract_an_archive dir oldlib  # func_extract_an_archive dir oldlib
 func_extract_an_archive ()  func_extract_an_archive ()
 {  {
    $opt_debug    $debug_cmd
    f_ex_an_ar_dir="$1"; shift
    f_ex_an_ar_oldlib="$1"    f_ex_an_ar_dir=$1; shift
    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'    f_ex_an_ar_oldlib=$1
     if test yes = "$lock_old_archive_extraction"; then
       lockfile=$f_ex_an_ar_oldlib.lock
       until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
         func_echo "Waiting for $lockfile to be removed"
         sleep 2
       done
     fi
     func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
                    'stat=$?; rm -f "$lockfile"; exit $stat'
     if test yes = "$lock_old_archive_extraction"; then
       $opt_dry_run || rm -f "$lockfile"
     fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then      if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
      :       :
     else      else
Line 2610  func_extract_an_archive () Line 5203  func_extract_an_archive ()
 # func_extract_archives gentop oldlib ...  # func_extract_archives gentop oldlib ...
 func_extract_archives ()  func_extract_archives ()
 {  {
    $opt_debug    $debug_cmd
    my_gentop="$1"; shift
     my_gentop=$1; shift
     my_oldlibs=${1+"$@"}      my_oldlibs=${1+"$@"}
    my_oldobjs=""    my_oldobjs=
    my_xlib=""    my_xlib=
    my_xabs=""    my_xabs=
    my_xdir=""    my_xdir=
   
     for my_xlib in $my_oldlibs; do      for my_xlib in $my_oldlibs; do
       # Extract the objects.        # Extract the objects.
       case $my_xlib in        case $my_xlib in
        [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;        [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
         *) my_xabs=`pwd`"/$my_xlib" ;;          *) my_xabs=`pwd`"/$my_xlib" ;;
       esac        esac
       func_basename "$my_xlib"        func_basename "$my_xlib"
      my_xlib="$func_basename_result"      my_xlib=$func_basename_result
       my_xlib_u=$my_xlib        my_xlib_u=$my_xlib
       while :; do        while :; do
         case " $extracted_archives " in          case " $extracted_archives " in
Line 2637  func_extract_archives () Line 5231  func_extract_archives ()
         esac          esac
       done        done
       extracted_archives="$extracted_archives $my_xlib_u"        extracted_archives="$extracted_archives $my_xlib_u"
      my_xdir="$my_gentop/$my_xlib_u"      my_xdir=$my_gentop/$my_xlib_u
   
       func_mkdir_p "$my_xdir"        func_mkdir_p "$my_xdir"
   
Line 2650  func_extract_archives () Line 5244  func_extract_archives ()
           cd $my_xdir || exit $?            cd $my_xdir || exit $?
           darwin_archive=$my_xabs            darwin_archive=$my_xabs
           darwin_curdir=`pwd`            darwin_curdir=`pwd`
          darwin_base_archive=`basename "$darwin_archive"`          func_basename "$darwin_archive"
           darwin_base_archive=$func_basename_result
           darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`            darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
           if test -n "$darwin_arches"; then            if test -n "$darwin_arches"; then
             darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`              darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
             darwin_arch=              darwin_arch=
             func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"              func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
            for darwin_arch in  $darwin_arches ; do            for darwin_arch in  $darwin_arches; do
              func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"              func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
              $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"              $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
              cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"              cd "unfat-$$/$darwin_base_archive-$darwin_arch"
              func_extract_an_archive "`pwd`" "${darwin_base_archive}"              func_extract_an_archive "`pwd`" "$darwin_base_archive"
               cd "$darwin_curdir"                cd "$darwin_curdir"
              $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"              $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
             done # $darwin_arches              done # $darwin_arches
             ## Okay now we've a bunch of thin objects, gotta fatten them up :)              ## Okay now we've a bunch of thin objects, gotta fatten them up :)
            darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`            darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
             darwin_file=              darwin_file=
             darwin_files=              darwin_files=
             for darwin_file in $darwin_filelist; do              for darwin_file in $darwin_filelist; do
              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`              darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
               $LIPO -create -output "$darwin_file" $darwin_files                $LIPO -create -output "$darwin_file" $darwin_files
             done # $darwin_filelist              done # $darwin_filelist
             $RM -rf unfat-$$              $RM -rf unfat-$$
Line 2684  func_extract_archives () Line 5279  func_extract_archives ()
         func_extract_an_archive "$my_xdir" "$my_xabs"          func_extract_an_archive "$my_xdir" "$my_xabs"
         ;;          ;;
       esac        esac
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done      done
   
    func_extract_archives_result="$my_oldobjs"    func_extract_archives_result=$my_oldobjs
 }  }
   
   
# func_emit_wrapper [arg=no]
# func_emit_wrapper_part1 [arg=no] 
 #  #
# Emit the first part of a libtool wrapper script on stdout.# Emit a libtool wrapper script on stdout.
For more information, see the description associated withDon't directly open a file because we may want to
# func_emit_wrapper(), below.# incorporate the script contents within a cygwin/mingw
func_emit_wrapper_part1 ()# wrapper executable.  Must ONLY be called from within
 # func_mode_link because it depends on a number of variables
 # set therein.
 #
 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
 # variable will take.  If 'yes', then the emitted script
 # will assume that the directory where it is stored is
 # the $objdir directory.  This is a cygwin/mingw-specific
 # behavior.
 func_emit_wrapper ()
 {  {
        func_emit_wrapper_part1_arg1=no        func_emit_wrapper_arg1=${1-no}
        if test -n "$1" ; then 
          func_emit_wrapper_part1_arg1=$1 
        fi 
   
         $ECHO "\          $ECHO "\
 #! $SHELL  #! $SHELL
   
 # $output - temporary wrapper script for $objdir/$outputname  # $output - temporary wrapper script for $objdir/$outputname
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #  #
 # The $output program cannot be directly executed until all the libtool  # The $output program cannot be directly executed until all the libtool
 # libraries that it depends on are installed.  # libraries that it depends on are installed.
Line 2718  func_emit_wrapper_part1 () Line 5318  func_emit_wrapper_part1 ()
   
 # Sed substitution that helps us do robust quoting.  It backslashifies  # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.  # metacharacters that are still active within double-quoted strings.
 Xsed='${SED} -e 1s/^X//'  
 sed_quote_subst='$sed_quote_subst'  sed_quote_subst='$sed_quote_subst'
   
 # Be Bourne compatible  # Be Bourne compatible
Line 2749  if test \"\$libtool_install_magic\" = \"$magic\"; then Line 5348  if test \"\$libtool_install_magic\" = \"$magic\"; then
 else  else
   # When we are sourced in execute mode, \$file and \$ECHO are already set.    # When we are sourced in execute mode, \$file and \$ECHO are already set.
   if test \"\$libtool_execute_magic\" != \"$magic\"; then    if test \"\$libtool_execute_magic\" != \"$magic\"; then
    ECHO=\"$qecho\"    file=\"\$0\""
    file=\"\$0\"
    # Make sure echo works.    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
    if test \"X\$1\" = X--no-reexec; then    $ECHO "\
      # Discard the --no-reexec flag, and continue.
      shift# A function that is used when there is no print builtin or printf.
    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; thenfunc_fallback_echo ()
      # Yippee, \$ECHO works!{
      :  eval 'cat <<_LTECHO_EOF
    else\$1
      # Restart under the correct shell, and then maybe \$ECHO will work._LTECHO_EOF'
      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}}
    fi    ECHO=\"$qECHO\"
  fi\  fi
 
 # Very basic option parsing. These options are (a) specific to
 # the libtool wrapper, (b) are identical between the wrapper
 # /script/ and the wrapper /executable/ that is used only on
 # windows platforms, and (c) all begin with the string "--lt-"
 # (application programs are unlikely to have options that match
 # this pattern).
 #
 # There are only two supported options: --lt-debug and
 # --lt-dump-script. There is, deliberately, no --lt-help.
 #
 # The first argument to this parsing function should be the
 # script's $0 value, followed by "$@".
 lt_option_debug=
 func_parse_lt_options ()
 {
   lt_script_arg0=\$0
   shift
   for lt_opt
   do
     case \"\$lt_opt\" in
     --lt-debug) lt_option_debug=1 ;;
     --lt-dump-script)
         lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
         test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
         lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
         cat \"\$lt_dump_D/\$lt_dump_F\"
         exit 0
       ;;
     --lt-*)
         \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
         exit 1
       ;;
     esac
   done
 
   # Print the debug banner immediately:
   if test -n \"\$lt_option_debug\"; then
     echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
   fi
 }
 
 # Used when --lt-debug. Prints its arguments to stdout
 # (redirection is the responsibility of the caller)
 func_lt_dump_args ()
 {
   lt_dump_args_N=1;
   for lt_arg
   do
     \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
     lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
   done
 }
 
 # Core function for launching the target application
 func_exec_program_core ()
 {
 "  "
        $ECHO "\  case $host in
   # Backslashes separate directories on plain windows
   *-*-mingw | *-*-os2* | *-cegcc*)
     $ECHO "\
       if test -n \"\$lt_option_debug\"; then
         \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
         func_lt_dump_args \${1+\"\$@\"} 1>&2
       fi
       exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 "
     ;;
   
     *)
       $ECHO "\
         if test -n \"\$lt_option_debug\"; then
           \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
           func_lt_dump_args \${1+\"\$@\"} 1>&2
         fi
         exec \"\$progdir/\$program\" \${1+\"\$@\"}
   "
       ;;
     esac
     $ECHO "\
         \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
         exit 1
   }
   
   # A function to encapsulate launching the target application
   # Strips options in the --lt-* namespace from \$@ and
   # launches target application with the remaining arguments.
   func_exec_program ()
   {
     case \" \$* \" in
     *\\ --lt-*)
       for lt_wr_arg
       do
         case \$lt_wr_arg in
         --lt-*) ;;
         *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
         esac
         shift
       done ;;
     esac
     func_exec_program_core \${1+\"\$@\"}
   }
   
     # Parse options
     func_parse_lt_options \"\$0\" \${1+\"\$@\"}
   
   # Find the directory that this script lives in.    # Find the directory that this script lives in.
  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
   test \"x\$thisdir\" = \"x\$file\" && thisdir=.    test \"x\$thisdir\" = \"x\$file\" && thisdir=.
   
   # Follow symbolic links until we get to the real thisdir.    # Follow symbolic links until we get to the real thisdir.
  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
   while test -n \"\$file\"; do    while test -n \"\$file\"; do
    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
   
     # If there was a directory component, then change thisdir.      # If there was a directory component, then change thisdir.
     if test \"x\$destdir\" != \"x\$file\"; then      if test \"x\$destdir\" != \"x\$file\"; then
Line 2783  else Line 5486  else
       esac        esac
     fi      fi
   
    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
   done    done
 "  
 }  
 # end: func_emit_wrapper_part1  
   
 # func_emit_wrapper_part2 [arg=no]  
 #  
 # Emit the second part of a libtool wrapper script on stdout.  
 # For more information, see the description associated with  
 # func_emit_wrapper(), below.  
 func_emit_wrapper_part2 ()  
 {  
         func_emit_wrapper_part2_arg1=no  
         if test -n "$1" ; then  
           func_emit_wrapper_part2_arg1=$1  
         fi  
   
         $ECHO "\  
   
   # Usually 'no', except on cygwin/mingw when embedded into    # Usually 'no', except on cygwin/mingw when embedded into
   # the cwrapper.    # the cwrapper.
  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
   if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then    if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
     # special case for '.'      # special case for '.'
     if test \"\$thisdir\" = \".\"; then      if test \"\$thisdir\" = \".\"; then
Line 2814  func_emit_wrapper_part2 () Line 5500  func_emit_wrapper_part2 ()
     fi      fi
     # remove .libs from thisdir      # remove .libs from thisdir
     case \"\$thisdir\" in      case \"\$thisdir\" in
    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
     $objdir )   thisdir=. ;;      $objdir )   thisdir=. ;;
     esac      esac
   fi    fi
Line 2824  func_emit_wrapper_part2 () Line 5510  func_emit_wrapper_part2 ()
   test -n \"\$absdir\" && thisdir=\"\$absdir\"    test -n \"\$absdir\" && thisdir=\"\$absdir\"
 "  "
   
        if test "$fast_install" = yes; then        if test yes = "$fast_install"; then
           $ECHO "\            $ECHO "\
   program=lt-'$outputname'$exeext    program=lt-'$outputname'$exeext
   progdir=\"\$thisdir/$objdir\"    progdir=\"\$thisdir/$objdir\"
   
   if test ! -f \"\$progdir/\$program\" ||    if test ! -f \"\$progdir/\$program\" ||
     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
        test \"X\$file\" != \"X\$progdir/\$program\"; }; then         test \"X\$file\" != \"X\$progdir/\$program\"; }; then
   
     file=\"\$\$-\$program\"      file=\"\$\$-\$program\"
Line 2847  func_emit_wrapper_part2 () Line 5533  func_emit_wrapper_part2 ()
     if test -n \"\$relink_command\"; then      if test -n \"\$relink_command\"; then
       if relink_command_output=\`eval \$relink_command 2>&1\`; then :        if relink_command_output=\`eval \$relink_command 2>&1\`; then :
       else        else
        $ECHO \"\$relink_command_output\" >&2        \$ECHO \"\$relink_command_output\" >&2
         $RM \"\$progdir/\$file\"          $RM \"\$progdir/\$file\"
         exit 1          exit 1
       fi        fi
Line 2869  func_emit_wrapper_part2 () Line 5555  func_emit_wrapper_part2 ()
   
   if test -f \"\$progdir/\$program\"; then"    if test -f \"\$progdir/\$program\"; then"
   
           # fixup the dll searchpath if we need to.
           #
           # Fix the DLL searchpath if we need to.  Do this before prepending
           # to shlibpath, because on Windows, both are PATH and uninstalled
           # libraries must come first.
           if test -n "$dllsearchpath"; then
             $ECHO "\
       # Add the dll search path components to the executable PATH
       PATH=$dllsearchpath:\$PATH
   "
           fi
   
         # Export our shlibpath_var if we have one.          # Export our shlibpath_var if we have one.
        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then        if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
           $ECHO "\            $ECHO "\
     # Add our own library path to $shlibpath_var      # Add our own library path to $shlibpath_var
     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"      $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
   
     # Some systems cannot cope with colon-terminated $shlibpath_var      # Some systems cannot cope with colon-terminated $shlibpath_var
     # The second colon is a workaround for a bug in BeOS R4 sed      # The second colon is a workaround for a bug in BeOS R4 sed
    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
   
     export $shlibpath_var      export $shlibpath_var
 "  "
         fi          fi
   
         # fixup the dll searchpath if we need to.  
         if test -n "$dllsearchpath"; then  
           $ECHO "\  
     # Add the dll search path components to the executable PATH  
     PATH=$dllsearchpath:\$PATH  
 "  
         fi  
   
         $ECHO "\          $ECHO "\
     if test \"\$libtool_execute_magic\" != \"$magic\"; then      if test \"\$libtool_execute_magic\" != \"$magic\"; then
       # Run the actual program with our arguments.        # Run the actual program with our arguments.
"      func_exec_program \${1+\"\$@\"}
        case $host in 
        # Backslashes separate directories on plain windows 
        *-*-mingw | *-*-os2* | *-cegcc*) 
          $ECHO "\ 
      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 
" 
          ;; 
 
        *) 
          $ECHO "\ 
      exec \"\$progdir/\$program\" \${1+\"\$@\"} 
" 
          ;; 
        esac 
        $ECHO "\ 
      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 
      exit 1 
     fi      fi
   else    else
     # The program doesn't exist.      # The program doesn't exist.
    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2    \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2      \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     exit 1      exit 1
   fi    fi
 fi\  fi\
 "  "
 }  }
 # end: func_emit_wrapper_part2  
   
   
 # func_emit_wrapper [arg=no]  
 #  
 # Emit a libtool wrapper script on stdout.  
 # Don't directly open a file because we may want to  
 # incorporate the script contents within a cygwin/mingw  
 # wrapper executable.  Must ONLY be called from within  
 # func_mode_link because it depends on a number of variables  
 # set therein.  
 #  
 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR  
 # variable will take.  If 'yes', then the emitted script  
 # will assume that the directory in which it is stored is  
 # the $objdir directory.  This is a cygwin/mingw-specific  
 # behavior.  
 func_emit_wrapper ()  
 {  
         func_emit_wrapper_arg1=no  
         if test -n "$1" ; then  
           func_emit_wrapper_arg1=$1  
         fi  
   
         # split this up so that func_emit_cwrapperexe_src  
         # can call each part independently.  
         func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"  
         func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"  
 }  
   
   
 # func_to_host_path arg  
 #  
 # Convert paths to host format when used with build tools.  
 # Intended for use with "native" mingw (where libtool itself  
 # is running under the msys shell), or in the following cross-  
 # build environments:  
 #    $build          $host  
 #    mingw (msys)    mingw  [e.g. native]  
 #    cygwin          mingw  
 #    *nix + wine     mingw  
 # where wine is equipped with the `winepath' executable.  
 # In the native mingw case, the (msys) shell automatically  
 # converts paths for any non-msys applications it launches,  
 # but that facility isn't available from inside the cwrapper.  
 # Similar accommodations are necessary for $host mingw and  
 # $build cygwin.  Calling this function does no harm for other  
 # $host/$build combinations not listed above.  
 #  
 # ARG is the path (on $build) that should be converted to  
 # the proper representation for $host. The result is stored  
 # in $func_to_host_path_result.  
 func_to_host_path ()  
 {  
   func_to_host_path_result="$1"  
   if test -n "$1" ; then  
     case $host in  
       *mingw* )  
         lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'  
         case $build in  
           *mingw* ) # actually, msys  
             # awkward: cmd appends spaces to result  
             lt_sed_strip_trailing_spaces="s/[ ]*\$//"  
             func_to_host_path_tmp1=`( cmd //c echo "$1" |\  
               $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`  
             func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\  
               $SED -e "$lt_sed_naive_backslashify"`  
             ;;  
           *cygwin* )  
             func_to_host_path_tmp1=`cygpath -w "$1"`  
             func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\  
               $SED -e "$lt_sed_naive_backslashify"`  
             ;;  
           * )  
             # Unfortunately, winepath does not exit with a non-zero  
             # error code, so we are forced to check the contents of  
             # stdout. On the other hand, if the command is not  
             # found, the shell will set an exit code of 127 and print  
             # *an error message* to stdout. So we must check for both  
             # error code of zero AND non-empty stdout, which explains  
             # the odd construction:  
             func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`  
             if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then  
               func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\  
                 $SED -e "$lt_sed_naive_backslashify"`  
             else  
               # Allow warning below.  
               func_to_host_path_result=""  
             fi  
             ;;  
         esac  
         if test -z "$func_to_host_path_result" ; then  
           func_error "Could not determine host path corresponding to"  
           func_error "  '$1'"  
           func_error "Continuing, but uninstalled executables may not work."  
           # Fallback:  
           func_to_host_path_result="$1"  
         fi  
         ;;  
     esac  
   fi  
 }  
 # end: func_to_host_path  
   
 # func_to_host_pathlist arg  
 #  
 # Convert pathlists to host format when used with build tools.  
 # See func_to_host_path(), above. This function supports the  
 # following $build/$host combinations (but does no harm for  
 # combinations not listed here):  
 #    $build          $host  
 #    mingw (msys)    mingw  [e.g. native]  
 #    cygwin          mingw  
 #    *nix + wine     mingw  
 #  
 # Path separators are also converted from $build format to  
 # $host format. If ARG begins or ends with a path separator  
 # character, it is preserved (but converted to $host format)  
 # on output.  
 #  
 # ARG is a pathlist (on $build) that should be converted to  
 # the proper representation on $host. The result is stored  
 # in $func_to_host_pathlist_result.  
 func_to_host_pathlist ()  
 {  
   func_to_host_pathlist_result="$1"  
   if test -n "$1" ; then  
     case $host in  
       *mingw* )  
         lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'  
         # Remove leading and trailing path separator characters from  
         # ARG. msys behavior is inconsistent here, cygpath turns them  
         # into '.;' and ';.', and winepath ignores them completely.  
         func_to_host_pathlist_tmp2="$1"  
         # Once set for this call, this variable should not be  
         # reassigned. It is used in tha fallback case.  
         func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\  
           $SED -e 's|^:*||' -e 's|:*$||'`  
         case $build in  
           *mingw* ) # Actually, msys.  
             # Awkward: cmd appends spaces to result.  
             lt_sed_strip_trailing_spaces="s/[ ]*\$//"  
             func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\  
               $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`  
             func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\  
               $SED -e "$lt_sed_naive_backslashify"`  
             ;;  
           *cygwin* )  
             func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`  
             func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\  
               $SED -e "$lt_sed_naive_backslashify"`  
             ;;  
           * )  
             # unfortunately, winepath doesn't convert pathlists  
             func_to_host_pathlist_result=""  
             func_to_host_pathlist_oldIFS=$IFS  
             IFS=:  
             for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do  
               IFS=$func_to_host_pathlist_oldIFS  
               if test -n "$func_to_host_pathlist_f" ; then  
                 func_to_host_path "$func_to_host_pathlist_f"  
                 if test -n "$func_to_host_path_result" ; then  
                   if test -z "$func_to_host_pathlist_result" ; then  
                     func_to_host_pathlist_result="$func_to_host_path_result"  
                   else  
                     func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"  
                   fi  
                 fi  
               fi  
               IFS=:  
             done  
             IFS=$func_to_host_pathlist_oldIFS  
             ;;  
         esac  
         if test -z "$func_to_host_pathlist_result" ; then  
           func_error "Could not determine the host path(s) corresponding to"  
           func_error "  '$1'"  
           func_error "Continuing, but uninstalled executables may not work."  
           # Fallback. This may break if $1 contains DOS-style drive  
           # specifications. The fix is not to complicate the expression  
           # below, but for the user to provide a working wine installation  
           # with winepath so that path translation in the cross-to-mingw  
           # case works properly.  
           lt_replace_pathsep_nix_to_dos="s|:|;|g"  
           func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\  
             $SED -e "$lt_replace_pathsep_nix_to_dos"`  
         fi  
         # Now, add the leading and trailing path separators back  
         case "$1" in  
           :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"  
             ;;  
         esac  
         case "$1" in  
           *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"  
             ;;  
         esac  
         ;;  
     esac  
   fi  
 }  
 # end: func_to_host_pathlist  
   
 # func_emit_cwrapperexe_src  # func_emit_cwrapperexe_src
 # emit the source code for a wrapper executable on stdout  # emit the source code for a wrapper executable on stdout
 # Must ONLY be called from within func_mode_link because  # Must ONLY be called from within func_mode_link because
Line 3134  func_emit_cwrapperexe_src () Line 5607  func_emit_cwrapperexe_src ()
         cat <<EOF          cat <<EOF
   
 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname  /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION   Generated by $PROGRAM (GNU $PACKAGE) $VERSION
   
    The $output program cannot be directly executed until all the libtool     The $output program cannot be directly executed until all the libtool
    libraries that it depends on are installed.     libraries that it depends on are installed.
   
    This wrapper executable should never be moved out of the build directory.     This wrapper executable should never be moved out of the build directory.
    If it is, it will not operate correctly.     If it is, it will not operate correctly.
   
    Currently, it simply execs the wrapper *script* "$SHELL $output",  
    but could eventually absorb all of the scripts functionality and  
    exec $objdir/$outputname directly.  
 */  */
 EOF  EOF
             cat <<"EOF"              cat <<"EOF"
   #ifdef _MSC_VER
   # define _CRT_SECURE_NO_DEPRECATE 1
   #endif
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #ifdef _MSC_VER  #ifdef _MSC_VER
 # include <direct.h>  # include <direct.h>
 # include <process.h>  # include <process.h>
 # include <io.h>  # include <io.h>
 # define setmode _setmode  
 #else  #else
 # include <unistd.h>  # include <unistd.h>
 # include <stdint.h>  # include <stdint.h>
 # ifdef __CYGWIN__  # ifdef __CYGWIN__
 #  include <io.h>  #  include <io.h>
 #  define HAVE_SETENV  
 #  ifdef __STRICT_ANSI__  
 char *realpath (const char *, char *);  
 int putenv (char *);  
 int setenv (const char *, const char *, int);  
 #  endif  
 # endif  # endif
 #endif  #endif
 #include <malloc.h>  #include <malloc.h>
Line 3177  int setenv (const char *, const char *, int); Line 5642  int setenv (const char *, const char *, int);
 #include <fcntl.h>  #include <fcntl.h>
 #include <sys/stat.h>  #include <sys/stat.h>
   
#if defined(PATH_MAX)#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
 
 /* declarations of non-ANSI functions */
 #if defined __MINGW32__
 # ifdef __STRICT_ANSI__
 int _putenv (const char *);
 # endif
 #elif defined __CYGWIN__
 # ifdef __STRICT_ANSI__
 char *realpath (const char *, char *);
 int putenv (char *);
 int setenv (const char *, const char *, int);
 # endif
 /* #elif defined other_platform || defined ... */
 #endif
 
 /* portability defines, excluding path handling macros */
 #if defined _MSC_VER
 # define setmode _setmode
 # define stat    _stat
 # define chmod   _chmod
 # define getcwd  _getcwd
 # define putenv  _putenv
 # define S_IXUSR _S_IEXEC
 #elif defined __MINGW32__
 # define setmode _setmode
 # define stat    _stat
 # define chmod   _chmod
 # define getcwd  _getcwd
 # define putenv  _putenv
 #elif defined __CYGWIN__
 # define HAVE_SETENV
 # define FOPEN_WB "wb"
 /* #elif defined other platforms ... */
 #endif
 
 #if defined PATH_MAX
 # define LT_PATHMAX PATH_MAX  # define LT_PATHMAX PATH_MAX
#elif defined(MAXPATHLEN)#elif defined MAXPATHLEN
 # define LT_PATHMAX MAXPATHLEN  # define LT_PATHMAX MAXPATHLEN
 #else  #else
 # define LT_PATHMAX 1024  # define LT_PATHMAX 1024
Line 3192  int setenv (const char *, const char *, int); Line 5693  int setenv (const char *, const char *, int);
 # define S_IXGRP 0  # define S_IXGRP 0
 #endif  #endif
   
#ifdef _MSC_VER/* path handling portability macros */
# define S_IXUSR _S_IEXEC 
# define stat _stat 
# ifndef _INTPTR_T_DEFINED 
#  define intptr_t int 
# endif 
#endif 
 
 #ifndef DIR_SEPARATOR  #ifndef DIR_SEPARATOR
 # define DIR_SEPARATOR '/'  # define DIR_SEPARATOR '/'
 # define PATH_SEPARATOR ':'  # define PATH_SEPARATOR ':'
 #endif  #endif
   
#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
  defined (__OS2__)  defined __OS2__
 # define HAVE_DOS_BASED_FILE_SYSTEM  # define HAVE_DOS_BASED_FILE_SYSTEM
 # define FOPEN_WB "wb"  # define FOPEN_WB "wb"
 # ifndef DIR_SEPARATOR_2  # ifndef DIR_SEPARATOR_2
Line 3230  int setenv (const char *, const char *, int); Line 5724  int setenv (const char *, const char *, int);
 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)  # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 #endif /* PATH_SEPARATOR_2 */  #endif /* PATH_SEPARATOR_2 */
   
 #ifdef __CYGWIN__  
 # define FOPEN_WB "wb"  
 #endif  
   
 #ifndef FOPEN_WB  #ifndef FOPEN_WB
 # define FOPEN_WB "w"  # define FOPEN_WB "w"
 #endif  #endif
Line 3243  int setenv (const char *, const char *, int); Line 5733  int setenv (const char *, const char *, int);
   
 #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))  #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 #define XFREE(stale) do { \  #define XFREE(stale) do { \
  if (stale) { free ((void *) stale); stale = 0; } \  if (stale) { free (stale); stale = 0; } \
 } while (0)  } while (0)
   
#undef LTWRAPPER_DEBUGPRINTF#if defined LT_DEBUGWRAPPER
#if defined DEBUGWRAPPERstatic int lt_debug = 1;
# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args 
static void 
ltwrapper_debugprintf (const char *fmt, ...) 
{ 
    va_list args; 
    va_start (args, fmt); 
    (void) vfprintf (stderr, fmt, args); 
    va_end (args); 
} 
 #else  #else
# define LTWRAPPER_DEBUGPRINTF(args)static int lt_debug = 0;
 #endif  #endif
   
const char *program_name = NULL;const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
   
 void *xmalloc (size_t num);  void *xmalloc (size_t num);
 char *xstrdup (const char *string);  char *xstrdup (const char *string);
Line 3271  char *chase_symlinks (const char *pathspec); Line 5752  char *chase_symlinks (const char *pathspec);
 int make_executable (const char *path);  int make_executable (const char *path);
 int check_executable (const char *path);  int check_executable (const char *path);
 char *strendzap (char *str, const char *pat);  char *strendzap (char *str, const char *pat);
void lt_fatal (const char *message, ...);void lt_debugprintf (const char *file, int line, const char *fmt, ...);
 void lt_fatal (const char *file, int line, const char *message, ...);
 static const char *nonnull (const char *s);
 static const char *nonempty (const char *s);
 void lt_setenv (const char *name, const char *value);  void lt_setenv (const char *name, const char *value);
 char *lt_extend_str (const char *orig_value, const char *add, int to_end);  char *lt_extend_str (const char *orig_value, const char *add, int to_end);
 void lt_opt_process_env_set (const char *arg);  
 void lt_opt_process_env_prepend (const char *arg);  
 void lt_opt_process_env_append (const char *arg);  
 int lt_split_name_value (const char *arg, char** name, char** value);  
 void lt_update_exe_path (const char *name, const char *value);  void lt_update_exe_path (const char *name, const char *value);
 void lt_update_lib_path (const char *name, const char *value);  void lt_update_lib_path (const char *name, const char *value);
char **prepare_spawn (char **argv);
static const char *script_text_part1 =void lt_dump_script (FILE *f);
 EOF  EOF
   
             func_emit_wrapper_part1 yes |  
                 $SED -e 's/\([\\"]\)/\\\1/g' \  
                      -e 's/^/  "/' -e 's/$/\\n"/'  
             echo ";"  
             cat <<EOF              cat <<EOF
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
static const char *script_text_part2 =# define externally_visible volatile
EOF#else
            func_emit_wrapper_part2 yes |# define externally_visible __attribute__((externally_visible)) volatile
                $SED -e 's/\([\\"]\)/\\\1/g' \#endif
                     -e 's/^/  "/' -e 's/$/\\n"/'externally_visible const char * MAGIC_EXE = "$magic_exe";
            echo ";" 
 
            cat <<EOF 
const char * MAGIC_EXE = "$magic_exe"; 
 const char * LIB_PATH_VARNAME = "$shlibpath_var";  const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF  EOF
   
            if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then            if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
              func_to_host_pathlist "$temp_rpath"              func_to_host_path "$temp_rpath"
               cat <<EOF                cat <<EOF
const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
 EOF  EOF
             else              else
               cat <<"EOF"                cat <<"EOF"
Line 3314  EOF Line 5786  EOF
             fi              fi
   
             if test -n "$dllsearchpath"; then              if test -n "$dllsearchpath"; then
              func_to_host_pathlist "$dllsearchpath:"              func_to_host_path "$dllsearchpath:"
               cat <<EOF                cat <<EOF
 const char * EXE_PATH_VARNAME = "PATH";  const char * EXE_PATH_VARNAME = "PATH";
const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
 EOF  EOF
             else              else
               cat <<"EOF"                cat <<"EOF"
Line 3326  const char * EXE_PATH_VALUE   = ""; Line 5798  const char * EXE_PATH_VALUE   = "";
 EOF  EOF
             fi              fi
   
            if test "$fast_install" = yes; then            if test yes = "$fast_install"; then
               cat <<EOF                cat <<EOF
 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */  const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
 EOF  EOF
Line 3340  EOF Line 5812  EOF
             cat <<"EOF"              cat <<"EOF"
   
 #define LTWRAPPER_OPTION_PREFIX         "--lt-"  #define LTWRAPPER_OPTION_PREFIX         "--lt-"
 #define LTWRAPPER_OPTION_PREFIX_LENGTH  5  
   
 static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;  
 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;  static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
   
 static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";  static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
   static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
   
 static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;  
 static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";  
   /* argument is putenv-style "foo=bar", value of foo is set to bar */  
   
 static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;  
 static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";  
   /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */  
   
 static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;  
 static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";  
   /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */  
   
 int  int
 main (int argc, char *argv[])  main (int argc, char *argv[])
 {  {
Line 3369  main (int argc, char *argv[]) Line 5827  main (int argc, char *argv[])
   char *actual_cwrapper_name;    char *actual_cwrapper_name;
   char *target_name;    char *target_name;
   char *lt_argv_zero;    char *lt_argv_zero;
  intptr_t rval = 127;  int rval = 127;
   
   int i;    int i;
   
   program_name = (char *) xstrdup (base_name (argv[0]));    program_name = (char *) xstrdup (base_name (argv[0]));
  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));  newargz = XMALLOC (char *, (size_t) argc + 1);
  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); 
   
  /* very simple arg parsing; don't want to rely on getopt */  /* very simple arg parsing; don't want to rely on getopt
    * also, copy all non cwrapper options to newargz, except
    * argz[0], which is handled differently
    */
   newargc=0;
   for (i = 1; i < argc; i++)    for (i = 1; i < argc; i++)
     {      {
      if (strcmp (argv[i], dumpscript_opt) == 0)      if (STREQ (argv[i], dumpscript_opt))
         {          {
 EOF  EOF
            case "$host" in            case $host in
               *mingw* | *cygwin* )                *mingw* | *cygwin* )
                 # make stdout use "unix" line endings                  # make stdout use "unix" line endings
                 echo "          setmode(1,_O_BINARY);"                  echo "          setmode(1,_O_BINARY);"
Line 3391  EOF Line 5852  EOF
               esac                esac
   
             cat <<"EOF"              cat <<"EOF"
          printf ("%s", script_text_part1);          lt_dump_script (stdout);
          printf ("%s", script_text_part2); 
           return 0;            return 0;
         }          }
         if (STREQ (argv[i], debug_opt))
           {
             lt_debug = 1;
             continue;
           }
         if (STREQ (argv[i], ltwrapper_option_prefix))
           {
             /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
                namespace, but it is not one of the ones we know about and
                have already dealt with, above (inluding dump-script), then
                report an error. Otherwise, targets might begin to believe
                they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
                namespace. The first time any user complains about this, we'll
                need to make LTWRAPPER_OPTION_PREFIX a configure-time option
                or a configure.ac-settable value.
              */
             lt_fatal (__FILE__, __LINE__,
                       "unrecognized %s option: '%s'",
                       ltwrapper_option_prefix, argv[i]);
           }
         /* otherwise ... */
         newargz[++newargc] = xstrdup (argv[i]);
     }      }
     newargz[++newargc] = NULL;
   
  newargz = XMALLOC (char *, argc + 1);EOF
             cat <<EOF
   /* The GNU banner must be the first non-error debug message */
   lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
 EOF
             cat <<"EOF"
   lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
   lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
 
   tmp_pathspec = find_executable (argv[0]);    tmp_pathspec = find_executable (argv[0]);
   if (tmp_pathspec == NULL)    if (tmp_pathspec == NULL)
    lt_fatal ("Couldn't find %s", argv[0]);    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",  lt_debugprintf (__FILE__, __LINE__,
                          tmp_pathspec));                  "(main) found exe (before symlink chase) at: %s\n",
                   tmp_pathspec);
   
   actual_cwrapper_path = chase_symlinks (tmp_pathspec);    actual_cwrapper_path = chase_symlinks (tmp_pathspec);
  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",  lt_debugprintf (__FILE__, __LINE__,
                          actual_cwrapper_path));                  "(main) found exe (after symlink chase) at: %s\n",
                   actual_cwrapper_path);
   XFREE (tmp_pathspec);    XFREE (tmp_pathspec);
   
  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
   strendzap (actual_cwrapper_path, actual_cwrapper_name);    strendzap (actual_cwrapper_path, actual_cwrapper_name);
   
   /* wrapper name transforms */    /* wrapper name transforms */
Line 3427  EOF Line 5920  EOF
   target_name = tmp_pathspec;    target_name = tmp_pathspec;
   tmp_pathspec = 0;    tmp_pathspec = 0;
   
  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",  lt_debugprintf (__FILE__, __LINE__,
                          target_name));                  "(main) libtool target name: %s\n",
                   target_name);
 EOF  EOF
   
             cat <<EOF              cat <<EOF
Line 3478  EOF Line 5972  EOF
   
   lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */    lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
   lt_setenv ("DUALCASE", "1");  /* for MSK sh */    lt_setenv ("DUALCASE", "1");  /* for MSK sh */
  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
      be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
      because on Windows, both *_VARNAMEs are PATH but uninstalled
      libraries must come first. */
   lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);    lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
     lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
   
  newargc=0;  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
  for (i = 1; i < argc; i++)                  nonnull (lt_argv_zero));
    { 
      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) 
        { 
          if (argv[i][env_set_opt_len] == '=') 
            { 
              const char *p = argv[i] + env_set_opt_len + 1; 
              lt_opt_process_env_set (p); 
            } 
          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) 
            { 
              lt_opt_process_env_set (argv[++i]); /* don't copy */ 
            } 
          else 
            lt_fatal ("%s missing required argument", env_set_opt); 
          continue; 
        } 
      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) 
        { 
          if (argv[i][env_prepend_opt_len] == '=') 
            { 
              const char *p = argv[i] + env_prepend_opt_len + 1; 
              lt_opt_process_env_prepend (p); 
            } 
          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) 
            { 
              lt_opt_process_env_prepend (argv[++i]); /* don't copy */ 
            } 
          else 
            lt_fatal ("%s missing required argument", env_prepend_opt); 
          continue; 
        } 
      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) 
        { 
          if (argv[i][env_append_opt_len] == '=') 
            { 
              const char *p = argv[i] + env_append_opt_len + 1; 
              lt_opt_process_env_append (p); 
            } 
          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) 
            { 
              lt_opt_process_env_append (argv[++i]); /* don't copy */ 
            } 
          else 
            lt_fatal ("%s missing required argument", env_append_opt); 
          continue; 
        } 
      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) 
        { 
          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX 
             namespace, but it is not one of the ones we know about and 
             have already dealt with, above (inluding dump-script), then 
             report an error. Otherwise, targets might begin to believe 
             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX 
             namespace. The first time any user complains about this, we'll 
             need to make LTWRAPPER_OPTION_PREFIX a configure-time option 
             or a configure.ac-settable value. 
           */ 
          lt_fatal ("Unrecognized option in %s namespace: '%s'", 
                    ltwrapper_option_prefix, argv[i]); 
        } 
      /* otherwise ... */ 
      newargz[++newargc] = xstrdup (argv[i]); 
    } 
  newargz[++newargc] = NULL; 
 
  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); 
   for (i = 0; i < newargc; i++)    for (i = 0; i < newargc; i++)
     {      {
      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
                       i, nonnull (newargz[i]));
     }      }
   
 EOF  EOF
Line 3560  EOF Line 5993  EOF
               mingw*)                mingw*)
                 cat <<"EOF"                  cat <<"EOF"
   /* execv doesn't actually work on mingw as expected on unix */    /* execv doesn't actually work on mingw as expected on unix */
  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);  newargz = prepare_spawn (newargz);
   rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   if (rval == -1)    if (rval == -1)
     {      {
       /* failed to start process */        /* failed to start process */
      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));      lt_debugprintf (__FILE__, __LINE__,
                       "(main) failed to launch target \"%s\": %s\n",
                       lt_argv_zero, nonnull (strerror (errno)));
       return 127;        return 127;
     }      }
   return rval;    return rval;
Line 3586  xmalloc (size_t num) Line 6022  xmalloc (size_t num)
 {  {
   void *p = (void *) malloc (num);    void *p = (void *) malloc (num);
   if (!p)    if (!p)
    lt_fatal ("Memory exhausted");    lt_fatal (__FILE__, __LINE__, "memory exhausted");
   
   return p;    return p;
 }  }
Line 3603  base_name (const char *name) Line 6039  base_name (const char *name)
 {  {
   const char *base;    const char *base;
   
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)#if defined HAVE_DOS_BASED_FILE_SYSTEM
   /* Skip over the disk name in MSDOS pathnames. */    /* Skip over the disk name in MSDOS pathnames. */
   if (isalpha ((unsigned char) name[0]) && name[1] == ':')    if (isalpha ((unsigned char) name[0]) && name[1] == ':')
     name += 2;      name += 2;
Line 3620  check_executable (const char *path) Line 6056  check_executable (const char *path)
 {  {
   struct stat st;    struct stat st;
   
  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
                          path ? (*path ? path : "EMPTY!") : "NULL!"));                  nonempty (path));
   if ((!path) || (!*path))    if ((!path) || (!*path))
     return 0;      return 0;
   
Line 3638  make_executable (const char *path) Line 6074  make_executable (const char *path)
   int rval = 0;    int rval = 0;
   struct stat st;    struct stat st;
   
  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
                          path ? (*path ? path : "EMPTY!") : "NULL!"));                  nonempty (path));
   if ((!path) || (!*path))    if ((!path) || (!*path))
     return 0;      return 0;
   
Line 3662  find_executable (const char *wrapper) Line 6098  find_executable (const char *wrapper)
   const char *p_next;    const char *p_next;
   /* static buffer for getcwd */    /* static buffer for getcwd */
   char tmp[LT_PATHMAX + 1];    char tmp[LT_PATHMAX + 1];
  int tmp_len;  size_t tmp_len;
   char *concat_name;    char *concat_name;
   
  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
                          wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));                  nonempty (wrapper));
   
   if ((wrapper == NULL) || (*wrapper == '\0'))    if ((wrapper == NULL) || (*wrapper == '\0'))
     return NULL;      return NULL;
   
   /* Absolute path? */    /* Absolute path? */
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)#if defined HAVE_DOS_BASED_FILE_SYSTEM
   if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')    if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
     {      {
       concat_name = xstrdup (wrapper);        concat_name = xstrdup (wrapper);
Line 3690  find_executable (const char *wrapper) Line 6126  find_executable (const char *wrapper)
             return concat_name;              return concat_name;
           XFREE (concat_name);            XFREE (concat_name);
         }          }
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)#if defined HAVE_DOS_BASED_FILE_SYSTEM
     }      }
 #endif  #endif
   
Line 3713  find_executable (const char *wrapper) Line 6149  find_executable (const char *wrapper)
               for (q = p; *q; q++)                for (q = p; *q; q++)
                 if (IS_PATH_SEPARATOR (*q))                  if (IS_PATH_SEPARATOR (*q))
                   break;                    break;
              p_len = q - p;              p_len = (size_t) (q - p);
               p_next = (*q == '\0' ? q : q + 1);                p_next = (*q == '\0' ? q : q + 1);
               if (p_len == 0)                if (p_len == 0)
                 {                  {
                   /* empty path: current directory */                    /* empty path: current directory */
                   if (getcwd (tmp, LT_PATHMAX) == NULL)                    if (getcwd (tmp, LT_PATHMAX) == NULL)
                    lt_fatal ("getcwd failed");                    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
                               nonnull (strerror (errno)));
                   tmp_len = strlen (tmp);                    tmp_len = strlen (tmp);
                   concat_name =                    concat_name =
                     XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);                      XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
Line 3744  find_executable (const char *wrapper) Line 6181  find_executable (const char *wrapper)
     }      }
   /* Relative path | not found in path: prepend cwd */    /* Relative path | not found in path: prepend cwd */
   if (getcwd (tmp, LT_PATHMAX) == NULL)    if (getcwd (tmp, LT_PATHMAX) == NULL)
    lt_fatal ("getcwd failed");    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
               nonnull (strerror (errno)));
   tmp_len = strlen (tmp);    tmp_len = strlen (tmp);
   concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);    concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   memcpy (concat_name, tmp, tmp_len);    memcpy (concat_name, tmp, tmp_len);
Line 3770  chase_symlinks (const char *pathspec) Line 6208  chase_symlinks (const char *pathspec)
   int has_symlinks = 0;    int has_symlinks = 0;
   while (strlen (tmp_pathspec) && !has_symlinks)    while (strlen (tmp_pathspec) && !has_symlinks)
     {      {
      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",      lt_debugprintf (__FILE__, __LINE__,
                              tmp_pathspec));                      "checking path component for symlinks: %s\n",
                       tmp_pathspec);
       if (lstat (tmp_pathspec, &s) == 0)        if (lstat (tmp_pathspec, &s) == 0)
         {          {
           if (S_ISLNK (s.st_mode) != 0)            if (S_ISLNK (s.st_mode) != 0)
Line 3793  chase_symlinks (const char *pathspec) Line 6232  chase_symlinks (const char *pathspec)
         }          }
       else        else
         {          {
          char *errstr = strerror (errno);          lt_fatal (__FILE__, __LINE__,
          lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);                    "error accessing file \"%s\": %s",
                     tmp_pathspec, nonnull (strerror (errno)));
         }          }
     }      }
   XFREE (tmp_pathspec);    XFREE (tmp_pathspec);
Line 3807  chase_symlinks (const char *pathspec) Line 6247  chase_symlinks (const char *pathspec)
   tmp_pathspec = realpath (pathspec, buf);    tmp_pathspec = realpath (pathspec, buf);
   if (tmp_pathspec == 0)    if (tmp_pathspec == 0)
     {      {
      lt_fatal ("Could not follow symlinks for %s", pathspec);      lt_fatal (__FILE__, __LINE__,
                 "could not follow symlinks for %s", pathspec);
     }      }
   return xstrdup (tmp_pathspec);    return xstrdup (tmp_pathspec);
 #endif  #endif
Line 3827  strendzap (char *str, const char *pat) Line 6268  strendzap (char *str, const char *pat)
   if (patlen <= len)    if (patlen <= len)
     {      {
       str += len - patlen;        str += len - patlen;
      if (strcmp (str, pat) == 0)      if (STREQ (str, pat))
         *str = '\0';          *str = '\0';
     }      }
   return str;    return str;
 }  }
   
   void
   lt_debugprintf (const char *file, int line, const char *fmt, ...)
   {
     va_list args;
     if (lt_debug)
       {
         (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
         va_start (args, fmt);
         (void) vfprintf (stderr, fmt, args);
         va_end (args);
       }
   }
   
 static void  static void
lt_error_core (int exit_status, const char *mode,lt_error_core (int exit_status, const char *file,
                int line, const char *mode,
                const char *message, va_list ap)                 const char *message, va_list ap)
 {  {
  fprintf (stderr, "%s: %s: ", program_name, mode);  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
   vfprintf (stderr, message, ap);    vfprintf (stderr, message, ap);
   fprintf (stderr, ".\n");    fprintf (stderr, ".\n");
   
Line 3846  lt_error_core (int exit_status, const char *mode, Line 6301  lt_error_core (int exit_status, const char *mode,
 }  }
   
 void  void
lt_fatal (const char *message, ...)lt_fatal (const char *file, int line, const char *message, ...)
 {  {
   va_list ap;    va_list ap;
   va_start (ap, message);    va_start (ap, message);
  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
   va_end (ap);    va_end (ap);
 }  }
   
   static const char *
   nonnull (const char *s)
   {
     return s ? s : "(null)";
   }
   
   static const char *
   nonempty (const char *s)
   {
     return (s && !*s) ? "(empty)" : nonnull (s);
   }
   
 void  void
 lt_setenv (const char *name, const char *value)  lt_setenv (const char *name, const char *value)
 {  {
  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",  lt_debugprintf (__FILE__, __LINE__,
                          (name ? name : "<NULL>"),                  "(lt_setenv) setting '%s' to '%s'\n",
                          (value ? value : "<NULL>")));                  nonnull (name), nonnull (value));
   {    {
 #ifdef HAVE_SETENV  #ifdef HAVE_SETENV
     /* always make a copy, for consistency with !HAVE_SETENV */      /* always make a copy, for consistency with !HAVE_SETENV */
     char *str = xstrdup (value);      char *str = xstrdup (value);
     setenv (name, str, 1);      setenv (name, str, 1);
 #else  #else
    int len = strlen (name) + 1 + strlen (value) + 1;    size_t len = strlen (name) + 1 + strlen (value) + 1;
     char *str = XMALLOC (char, len);      char *str = XMALLOC (char, len);
     sprintf (str, "%s=%s", name, value);      sprintf (str, "%s=%s", name, value);
     if (putenv (str) != EXIT_SUCCESS)      if (putenv (str) != EXIT_SUCCESS)
Line 3883  lt_extend_str (const char *orig_value, const char *add Line 6350  lt_extend_str (const char *orig_value, const char *add
   char *new_value;    char *new_value;
   if (orig_value && *orig_value)    if (orig_value && *orig_value)
     {      {
      int orig_value_len = strlen (orig_value);      size_t orig_value_len = strlen (orig_value);
      int add_len = strlen (add);      size_t add_len = strlen (add);
       new_value = XMALLOC (char, add_len + orig_value_len + 1);        new_value = XMALLOC (char, add_len + orig_value_len + 1);
       if (to_end)        if (to_end)
         {          {
Line 3904  lt_extend_str (const char *orig_value, const char *add Line 6371  lt_extend_str (const char *orig_value, const char *add
   return new_value;    return new_value;
 }  }
   
 int  
 lt_split_name_value (const char *arg, char** name, char** value)  
 {  
   const char *p;  
   int len;  
   if (!arg || !*arg)  
     return 1;  
   
   p = strchr (arg, (int)'=');  
   
   if (!p)  
     return 1;  
   
   *value = xstrdup (++p);  
   
   len = strlen (arg) - strlen (*value);  
   *name = XMALLOC (char, len);  
   strncpy (*name, arg, len-1);  
   (*name)[len - 1] = '\0';  
   
   return 0;  
 }  
   
 void  void
 lt_opt_process_env_set (const char *arg)  
 {  
   char *name = NULL;  
   char *value = NULL;  
   
   if (lt_split_name_value (arg, &name, &value) != 0)  
     {  
       XFREE (name);  
       XFREE (value);  
       lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);  
     }  
   
   lt_setenv (name, value);  
   XFREE (name);  
   XFREE (value);  
 }  
   
 void  
 lt_opt_process_env_prepend (const char *arg)  
 {  
   char *name = NULL;  
   char *value = NULL;  
   char *new_value = NULL;  
   
   if (lt_split_name_value (arg, &name, &value) != 0)  
     {  
       XFREE (name);  
       XFREE (value);  
       lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);  
     }  
   
   new_value = lt_extend_str (getenv (name), value, 0);  
   lt_setenv (name, new_value);  
   XFREE (new_value);  
   XFREE (name);  
   XFREE (value);  
 }  
   
 void  
 lt_opt_process_env_append (const char *arg)  
 {  
   char *name = NULL;  
   char *value = NULL;  
   char *new_value = NULL;  
   
   if (lt_split_name_value (arg, &name, &value) != 0)  
     {  
       XFREE (name);  
       XFREE (value);  
       lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);  
     }  
   
   new_value = lt_extend_str (getenv (name), value, 1);  
   lt_setenv (name, new_value);  
   XFREE (new_value);  
   XFREE (name);  
   XFREE (value);  
 }  
   
 void  
 lt_update_exe_path (const char *name, const char *value)  lt_update_exe_path (const char *name, const char *value)
 {  {
  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",  lt_debugprintf (__FILE__, __LINE__,
                          (name ? name : "<NULL>"),                  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
                          (value ? value : "<NULL>")));                  nonnull (name), nonnull (value));
   
   if (name && *name && value && *value)    if (name && *name && value && *value)
     {      {
       char *new_value = lt_extend_str (getenv (name), value, 0);        char *new_value = lt_extend_str (getenv (name), value, 0);
       /* some systems can't cope with a ':'-terminated path #' */        /* some systems can't cope with a ':'-terminated path #' */
      int len = strlen (new_value);      size_t len = strlen (new_value);
      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
         {          {
          new_value[len-1] = '\0';          new_value[--len] = '\0';
         }          }
       lt_setenv (name, new_value);        lt_setenv (name, new_value);
       XFREE (new_value);        XFREE (new_value);
Line 4011  lt_update_exe_path (const char *name, const char *valu Line 6395  lt_update_exe_path (const char *name, const char *valu
 void  void
 lt_update_lib_path (const char *name, const char *value)  lt_update_lib_path (const char *name, const char *value)
 {  {
  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",  lt_debugprintf (__FILE__, __LINE__,
                          (name ? name : "<NULL>"),                  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
                          (value ? value : "<NULL>")));                  nonnull (name), nonnull (value));
   
   if (name && *name && value && *value)    if (name && *name && value && *value)
     {      {
Line 4023  lt_update_lib_path (const char *name, const char *valu Line 6407  lt_update_lib_path (const char *name, const char *valu
     }      }
 }  }
   
   EOF
               case $host_os in
                 mingw*)
                   cat <<"EOF"
   
   /* Prepares an argument vector before calling spawn().
      Note that spawn() does not by itself call the command interpreter
        (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
         ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
            GetVersionEx(&v);
            v.dwPlatformId == VER_PLATFORM_WIN32_NT;
         }) ? "cmd.exe" : "command.com").
      Instead it simply concatenates the arguments, separated by ' ', and calls
      CreateProcess().  We must quote the arguments since Win32 CreateProcess()
      interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
      special way:
      - Space and tab are interpreted as delimiters. They are not treated as
        delimiters if they are surrounded by double quotes: "...".
      - Unescaped double quotes are removed from the input. Their only effect is
        that within double quotes, space and tab are treated like normal
        characters.
      - Backslashes not followed by double quotes are not special.
      - But 2*n+1 backslashes followed by a double quote become
        n backslashes followed by a double quote (n >= 0):
          \" -> "
          \\\" -> \"
          \\\\\" -> \\"
    */
   #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"
   #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"
   char **
   prepare_spawn (char **argv)
   {
     size_t argc;
     char **new_argv;
     size_t i;
   
     /* Count number of arguments.  */
     for (argc = 0; argv[argc] != NULL; argc++)
       ;
   
     /* Allocate new argument vector.  */
     new_argv = XMALLOC (char *, argc + 1);
   
     /* Put quoted arguments into the new argument vector.  */
     for (i = 0; i < argc; i++)
       {
         const char *string = argv[i];
   
         if (string[0] == '\0')
           new_argv[i] = xstrdup ("\"\"");
         else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
           {
             int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
             size_t length;
             unsigned int backslashes;
             const char *s;
             char *quoted_string;
             char *p;
   
             length = 0;
             backslashes = 0;
             if (quote_around)
               length++;
             for (s = string; *s != '\0'; s++)
               {
                 char c = *s;
                 if (c == '"')
                   length += backslashes + 1;
                 length++;
                 if (c == '\\')
                   backslashes++;
                 else
                   backslashes = 0;
               }
             if (quote_around)
               length += backslashes + 1;
   
             quoted_string = XMALLOC (char, length + 1);
   
             p = quoted_string;
             backslashes = 0;
             if (quote_around)
               *p++ = '"';
             for (s = string; *s != '\0'; s++)
               {
                 char c = *s;
                 if (c == '"')
                   {
                     unsigned int j;
                     for (j = backslashes + 1; j > 0; j--)
                       *p++ = '\\';
                   }
                 *p++ = c;
                 if (c == '\\')
                   backslashes++;
                 else
                   backslashes = 0;
               }
             if (quote_around)
               {
                 unsigned int j;
                 for (j = backslashes; j > 0; j--)
                   *p++ = '\\';
                 *p++ = '"';
               }
             *p = '\0';
   
             new_argv[i] = quoted_string;
           }
         else
           new_argv[i] = (char *) string;
       }
     new_argv[argc] = NULL;
   
     return new_argv;
   }
 EOF  EOF
                   ;;
               esac
   
               cat <<"EOF"
   void lt_dump_script (FILE* f)
   {
   EOF
               func_emit_wrapper yes |
                 $SED -n -e '
   s/^\(.\{79\}\)\(..*\)/\1\
   \2/
   h
   s/\([\\"]\)/\\\1/g
   s/$/\\n/
   s/\([^\n]*\).*/  fputs ("\1", f);/p
   g
   D'
               cat <<"EOF"
 }  }
   EOF
   }
 # end: func_emit_cwrapperexe_src  # end: func_emit_cwrapperexe_src
   
   # func_win32_import_lib_p ARG
   # True if ARG is an import lib, as indicated by $file_magic_cmd
   func_win32_import_lib_p ()
   {
       $debug_cmd
   
       case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
       *import*) : ;;
       *) false ;;
       esac
   }
   
   # func_suncc_cstd_abi
   # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
   # Several compiler flags select an ABI that is incompatible with the
   # Cstd library. Avoid specifying it if any are in CXXFLAGS.
   func_suncc_cstd_abi ()
   {
       $debug_cmd
   
       case " $compile_command " in
       *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
         suncc_use_cstd_abi=no
         ;;
       *)
         suncc_use_cstd_abi=yes
         ;;
       esac
   }
   
 # func_mode_link arg...  # func_mode_link arg...
 func_mode_link ()  func_mode_link ()
 {  {
    $opt_debug    $debug_cmd
 
     case $host in      case $host in
     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)      *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
       # It is impossible to link a dll without this setting, and        # It is impossible to link a dll without this setting, and
       # we shouldn't force the makefile maintainer to figure out        # we shouldn't force the makefile maintainer to figure out
      # which system we are compiling for in order to pass an extra      # what system we are compiling for in order to pass an extra
       # flag for every libtool invocation.        # flag for every libtool invocation.
       # allow_undefined=no        # allow_undefined=no
   
       # FIXME: Unfortunately, there are problems with the above when trying        # FIXME: Unfortunately, there are problems with the above when trying
      # to make a dll which has undefined symbols, in which case not      # to make a dll that has undefined symbols, in which case not
       # even a static library is built.  For now, we need to specify        # even a static library is built.  For now, we need to specify
       # -no-undefined on the libtool link line when we can be certain        # -no-undefined on the libtool link line when we can be certain
       # that all symbols are satisfied, otherwise we get a static library.        # that all symbols are satisfied, otherwise we get a static library.
Line 4072  func_mode_link () Line 6623  func_mode_link ()
     new_inherited_linker_flags=      new_inherited_linker_flags=
   
     avoid_version=no      avoid_version=no
       bindir=
     dlfiles=      dlfiles=
     dlprefiles=      dlprefiles=
     dlself=no      dlself=no
Line 4084  func_mode_link () Line 6636  func_mode_link ()
     module=no      module=no
     no_install=no      no_install=no
     objs=      objs=
       os2dllname=
     non_pic_objects=      non_pic_objects=
     precious_files_regex=      precious_files_regex=
     prefer_static_libs=no      prefer_static_libs=no
    preload=no    preload=false
     prev=      prev=
     prevarg=      prevarg=
     release=      release=
Line 4099  func_mode_link () Line 6652  func_mode_link ()
     vinfo=      vinfo=
     vinfo_number=no      vinfo_number=no
     weak_libs=      weak_libs=
    single_module="${wl}-single_module"    single_module=$wl-single_module
     func_infer_tag $base_compile      func_infer_tag $base_compile
   
     # We need to know -static, to get the right output filenames.      # We need to know -static, to get the right output filenames.
Line 4107  func_mode_link () Line 6660  func_mode_link ()
     do      do
       case $arg in        case $arg in
       -shared)        -shared)
        test "$build_libtool_libs" != yes && \        test yes != "$build_libtool_libs" \
          func_fatal_configuration "can not build a shared library"          && func_fatal_configuration "cannot build a shared library"
         build_old_libs=no          build_old_libs=no
         break          break
         ;;          ;;
       -all-static | -static | -static-libtool-libs)        -all-static | -static | -static-libtool-libs)
         case $arg in          case $arg in
         -all-static)          -all-static)
          if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then          if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
             func_warning "complete static linking is impossible in this configuration"              func_warning "complete static linking is impossible in this configuration"
           fi            fi
           if test -n "$link_static_flag"; then            if test -n "$link_static_flag"; then
Line 4148  func_mode_link () Line 6701  func_mode_link ()
   
     # Go through the arguments, transforming them on the way.      # Go through the arguments, transforming them on the way.
     while test "$#" -gt 0; do      while test "$#" -gt 0; do
      arg="$1"      arg=$1
       shift        shift
       func_quote_for_eval "$arg"        func_quote_for_eval "$arg"
       qarg=$func_quote_for_eval_unquoted_result        qarg=$func_quote_for_eval_unquoted_result
Line 4164  func_mode_link () Line 6717  func_mode_link ()
         esac          esac
   
         case $prev in          case $prev in
           bindir)
             bindir=$arg
             prev=
             continue
             ;;
         dlfiles|dlprefiles)          dlfiles|dlprefiles)
          if test "$preload" = no; then          $preload || {
             # Add the symbol object into the linking commands.              # Add the symbol object into the linking commands.
             func_append compile_command " @SYMFILE@"              func_append compile_command " @SYMFILE@"
             func_append finalize_command " @SYMFILE@"              func_append finalize_command " @SYMFILE@"
            preload=yes            preload=:
          fi          }
           case $arg in            case $arg in
           *.la | *.lo) ;;  # We handle these cases below.            *.la | *.lo) ;;  # We handle these cases below.
           force)            force)
            if test "$dlself" = no; then            if test no = "$dlself"; then
               dlself=needless                dlself=needless
               export_dynamic=yes                export_dynamic=yes
             fi              fi
Line 4182  func_mode_link () Line 6740  func_mode_link ()
             continue              continue
             ;;              ;;
           self)            self)
            if test "$prev" = dlprefiles; then            if test dlprefiles = "$prev"; then
               dlself=yes                dlself=yes
            elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then            elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
               dlself=yes                dlself=yes
             else              else
               dlself=needless                dlself=needless
Line 4194  func_mode_link () Line 6752  func_mode_link ()
             continue              continue
             ;;              ;;
           *)            *)
            if test "$prev" = dlfiles; then            if test dlfiles = "$prev"; then
              dlfiles="$dlfiles $arg"              func_append dlfiles " $arg"
             else              else
              dlprefiles="$dlprefiles $arg"              func_append dlprefiles " $arg"
             fi              fi
             prev=              prev=
             continue              continue
Line 4205  func_mode_link () Line 6763  func_mode_link ()
           esac            esac
           ;;            ;;
         expsyms)          expsyms)
          export_symbols="$arg"          export_symbols=$arg
           test -f "$arg" \            test -f "$arg" \
            || func_fatal_error "symbol file \`$arg' does not exist"            || func_fatal_error "symbol file '$arg' does not exist"
           prev=            prev=
           continue            continue
           ;;            ;;
         expsyms_regex)          expsyms_regex)
          export_symbols_regex="$arg"          export_symbols_regex=$arg
           prev=            prev=
           continue            continue
           ;;            ;;
Line 4221  func_mode_link () Line 6779  func_mode_link ()
             *-*-darwin*)              *-*-darwin*)
               case "$deplibs " in                case "$deplibs " in
                 *" $qarg.ltframework "*) ;;                  *" $qarg.ltframework "*) ;;
                *) deplibs="$deplibs $qarg.ltframework" # this is fixed later                *) func_append deplibs " $qarg.ltframework" # this is fixed later
                    ;;                     ;;
               esac                esac
               ;;                ;;
Line 4230  func_mode_link () Line 6788  func_mode_link ()
           continue            continue
           ;;            ;;
         inst_prefix)          inst_prefix)
          inst_prefix_dir="$arg"          inst_prefix_dir=$arg
           prev=            prev=
           continue            continue
           ;;            ;;
           mllvm)
             # Clang does not use LLVM to link, so we can simply discard any
             # '-mllvm $arg' options when doing the link step.
             prev=
             continue
             ;;
         objectlist)          objectlist)
           if test -f "$arg"; then            if test -f "$arg"; then
             save_arg=$arg              save_arg=$arg
             moreargs=              moreargs=
             for fil in `cat "$save_arg"`              for fil in `cat "$save_arg"`
             do              do
#             moreargs="$moreargs $fil"#             func_append moreargs " $fil"
               arg=$fil                arg=$fil
               # A libtool-controlled object.                # A libtool-controlled object.
   
Line 4254  func_mode_link () Line 6818  func_mode_link ()
   
                 if test -z "$pic_object" ||                  if test -z "$pic_object" ||
                    test -z "$non_pic_object" ||                     test -z "$non_pic_object" ||
                   test "$pic_object" = none &&                   test none = "$pic_object" &&
                   test "$non_pic_object" = none; then                   test none = "$non_pic_object"; then
                  func_fatal_error "cannot find name of object for \`$arg'"                  func_fatal_error "cannot find name of object for '$arg'"
                 fi                  fi
   
                 # Extract subdirectory from the argument.                  # Extract subdirectory from the argument.
                 func_dirname "$arg" "/" ""                  func_dirname "$arg" "/" ""
                xdir="$func_dirname_result"                xdir=$func_dirname_result
   
                if test "$pic_object" != none; then                if test none != "$pic_object"; then
                   # Prepend the subdirectory the object is found in.                    # Prepend the subdirectory the object is found in.
                  pic_object="$xdir$pic_object"                  pic_object=$xdir$pic_object
   
                  if test "$prev" = dlfiles; then                  if test dlfiles = "$prev"; then
                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then                    if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
                      dlfiles="$dlfiles $pic_object"                      func_append dlfiles " $pic_object"
                       prev=                        prev=
                       continue                        continue
                     else                      else
Line 4279  func_mode_link () Line 6843  func_mode_link ()
                   fi                    fi
   
                   # CHECK ME:  I think I busted this.  -Ossama                    # CHECK ME:  I think I busted this.  -Ossama
                  if test "$prev" = dlprefiles; then                  if test dlprefiles = "$prev"; then
                     # Preload the old-style object.                      # Preload the old-style object.
                    dlprefiles="$dlprefiles $pic_object"                    func_append dlprefiles " $pic_object"
                     prev=                      prev=
                   fi                    fi
   
                   # A PIC object.                    # A PIC object.
                   func_append libobjs " $pic_object"                    func_append libobjs " $pic_object"
                  arg="$pic_object"                  arg=$pic_object
                 fi                  fi
   
                 # Non-PIC object.                  # Non-PIC object.
                if test "$non_pic_object" != none; then                if test none != "$non_pic_object"; then
                   # Prepend the subdirectory the object is found in.                    # Prepend the subdirectory the object is found in.
                  non_pic_object="$xdir$non_pic_object"                  non_pic_object=$xdir$non_pic_object
   
                   # A standard non-PIC object                    # A standard non-PIC object
                   func_append non_pic_objects " $non_pic_object"                    func_append non_pic_objects " $non_pic_object"
                  if test -z "$pic_object" || test "$pic_object" = none ; then                  if test -z "$pic_object" || test none = "$pic_object"; then
                    arg="$non_pic_object"                    arg=$non_pic_object
                   fi                    fi
                 else                  else
                   # If the PIC object exists, use it instead.                    # If the PIC object exists, use it instead.
                   # $xdir was prepended to $pic_object above.                    # $xdir was prepended to $pic_object above.
                  non_pic_object="$pic_object"                  non_pic_object=$pic_object
                   func_append non_pic_objects " $non_pic_object"                    func_append non_pic_objects " $non_pic_object"
                 fi                  fi
               else                else
Line 4311  func_mode_link () Line 6875  func_mode_link ()
                 if $opt_dry_run; then                  if $opt_dry_run; then
                   # Extract subdirectory from the argument.                    # Extract subdirectory from the argument.
                   func_dirname "$arg" "/" ""                    func_dirname "$arg" "/" ""
                  xdir="$func_dirname_result"                  xdir=$func_dirname_result
   
                   func_lo2o "$arg"                    func_lo2o "$arg"
                   pic_object=$xdir$objdir/$func_lo2o_result                    pic_object=$xdir$objdir/$func_lo2o_result
Line 4319  func_mode_link () Line 6883  func_mode_link ()
                   func_append libobjs " $pic_object"                    func_append libobjs " $pic_object"
                   func_append non_pic_objects " $non_pic_object"                    func_append non_pic_objects " $non_pic_object"
                 else                  else
                  func_fatal_error "\`$arg' is not a valid libtool object"                  func_fatal_error "'$arg' is not a valid libtool object"
                 fi                  fi
               fi                fi
             done              done
           else            else
            func_fatal_error "link input file \`$arg' does not exist"            func_fatal_error "link input file '$arg' does not exist"
           fi            fi
           arg=$save_arg            arg=$save_arg
           prev=            prev=
           continue            continue
           ;;            ;;
           os2dllname)
             os2dllname=$arg
             prev=
             continue
             ;;
         precious_regex)          precious_regex)
          precious_files_regex="$arg"          precious_files_regex=$arg
           prev=            prev=
           continue            continue
           ;;            ;;
         release)          release)
          release="-$arg"          release=-$arg
           prev=            prev=
           continue            continue
           ;;            ;;
Line 4348  func_mode_link () Line 6917  func_mode_link ()
             func_fatal_error "only absolute run-paths are allowed"              func_fatal_error "only absolute run-paths are allowed"
             ;;              ;;
           esac            esac
          if test "$prev" = rpath; then          if test rpath = "$prev"; then
             case "$rpath " in              case "$rpath " in
             *" $arg "*) ;;              *" $arg "*) ;;
            *) rpath="$rpath $arg" ;;            *) func_append rpath " $arg" ;;
             esac              esac
           else            else
             case "$xrpath " in              case "$xrpath " in
             *" $arg "*) ;;              *" $arg "*) ;;
            *) xrpath="$xrpath $arg" ;;            *) func_append xrpath " $arg" ;;
             esac              esac
           fi            fi
           prev=            prev=
           continue            continue
           ;;            ;;
         shrext)          shrext)
          shrext_cmds="$arg"          shrext_cmds=$arg
           prev=            prev=
           continue            continue
           ;;            ;;
         weak)          weak)
          weak_libs="$weak_libs $arg"          func_append weak_libs " $arg"
           prev=            prev=
           continue            continue
           ;;            ;;
         xcclinker)          xcclinker)
          linker_flags="$linker_flags $qarg"          func_append linker_flags " $qarg"
          compiler_flags="$compiler_flags $qarg"          func_append compiler_flags " $qarg"
           prev=            prev=
           func_append compile_command " $qarg"            func_append compile_command " $qarg"
           func_append finalize_command " $qarg"            func_append finalize_command " $qarg"
           continue            continue
           ;;            ;;
         xcompiler)          xcompiler)
          compiler_flags="$compiler_flags $qarg"          func_append compiler_flags " $qarg"
           prev=            prev=
           func_append compile_command " $qarg"            func_append compile_command " $qarg"
           func_append finalize_command " $qarg"            func_append finalize_command " $qarg"
           continue            continue
           ;;            ;;
         xlinker)          xlinker)
          linker_flags="$linker_flags $qarg"          func_append linker_flags " $qarg"
          compiler_flags="$compiler_flags $wl$qarg"          func_append compiler_flags " $wl$qarg"
           prev=            prev=
           func_append compile_command " $wl$qarg"            func_append compile_command " $wl$qarg"
           func_append finalize_command " $wl$qarg"            func_append finalize_command " $wl$qarg"
Line 4403  func_mode_link () Line 6972  func_mode_link ()
         esac          esac
       fi # test -n "$prev"        fi # test -n "$prev"
   
      prevarg="$arg"      prevarg=$arg
   
       case $arg in        case $arg in
       -all-static)        -all-static)
Line 4417  func_mode_link () Line 6986  func_mode_link ()
   
       -allow-undefined)        -allow-undefined)
         # FIXME: remove this flag sometime in the future.          # FIXME: remove this flag sometime in the future.
        func_fatal_error "\`-allow-undefined' must not be used because it is the default"        func_fatal_error "'-allow-undefined' must not be used because it is the default"
         ;;          ;;
   
       -avoid-version)        -avoid-version)
Line 4425  func_mode_link () Line 6994  func_mode_link ()
         continue          continue
         ;;          ;;
   
         -bindir)
           prev=bindir
           continue
           ;;
   
       -dlopen)        -dlopen)
         prev=dlfiles          prev=dlfiles
         continue          continue
Line 4444  func_mode_link () Line 7018  func_mode_link ()
         if test -n "$export_symbols" || test -n "$export_symbols_regex"; then          if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
           func_fatal_error "more than one -exported-symbols argument is not allowed"            func_fatal_error "more than one -exported-symbols argument is not allowed"
         fi          fi
        if test "X$arg" = "X-export-symbols"; then        if test X-export-symbols = "X$arg"; then
           prev=expsyms            prev=expsyms
         else          else
           prev=expsyms_regex            prev=expsyms_regex
Line 4475  func_mode_link () Line 7049  func_mode_link ()
         ;;          ;;
   
       -L*)        -L*)
        func_stripname '-L' '' "$arg"        func_stripname "-L" '' "$arg"
        dir=$func_stripname_result        if test -z "$func_stripname_result"; then
        if test -z "$dir"; then 
           if test "$#" -gt 0; then            if test "$#" -gt 0; then
            func_fatal_error "require no space between \`-L' and \`$1'"            func_fatal_error "require no space between '-L' and '$1'"
           else            else
            func_fatal_error "need path for \`-L' option"            func_fatal_error "need path for '-L' option"
           fi            fi
         fi          fi
           func_resolve_sysroot "$func_stripname_result"
           dir=$func_resolve_sysroot_result
         # We need an absolute path.          # We need an absolute path.
         case $dir in          case $dir in
         [\\/]* | [A-Za-z]:[\\/]*) ;;          [\\/]* | [A-Za-z]:[\\/]*) ;;
         *)          *)
           absdir=`cd "$dir" && pwd`            absdir=`cd "$dir" && pwd`
           test -z "$absdir" && \            test -z "$absdir" && \
            func_fatal_error "cannot determine absolute directory name of \`$dir'"            func_fatal_error "cannot determine absolute directory name of '$dir'"
          dir="$absdir"          dir=$absdir
           ;;            ;;
         esac          esac
         case "$deplibs " in          case "$deplibs " in
        *" -L$dir "*) ;;        *" -L$dir "* | *" $arg "*)
           # Will only happen for absolute or sysroot arguments
           ;;
         *)          *)
          deplibs="$deplibs -L$dir"          # Preserve sysroot, but never include relative directories
          lib_search_path="$lib_search_path $dir"          case $dir in
             [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
             *) func_append deplibs " -L$dir" ;;
           esac
           func_append lib_search_path " $dir"
           ;;            ;;
         esac          esac
         case $host in          case $host in
         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
          testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`          testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
           case :$dllsearchpath: in            case :$dllsearchpath: in
           *":$dir:"*) ;;            *":$dir:"*) ;;
           ::) dllsearchpath=$dir;;            ::) dllsearchpath=$dir;;
          *) dllsearchpath="$dllsearchpath:$dir";;          *) func_append dllsearchpath ":$dir";;
           esac            esac
           case :$dllsearchpath: in            case :$dllsearchpath: in
           *":$testbindir:"*) ;;            *":$testbindir:"*) ;;
           ::) dllsearchpath=$testbindir;;            ::) dllsearchpath=$testbindir;;
          *) dllsearchpath="$dllsearchpath:$testbindir";;          *) func_append dllsearchpath ":$testbindir";;
           esac            esac
           ;;            ;;
         esac          esac
Line 4520  func_mode_link () Line 7101  func_mode_link ()
         ;;          ;;
   
       -l*)        -l*)
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then        if test X-lc = "X$arg" || test X-lm = "X$arg"; then
           case $host in            case $host in
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
             # These systems don't actually have a C or math library (as such)              # These systems don't actually have a C or math library (as such)
             continue              continue
             ;;              ;;
           *-*-os2*)            *-*-os2*)
             # These systems don't actually have a C library (as such)              # These systems don't actually have a C library (as such)
            test "X$arg" = "X-lc" && continue            test X-lc = "X$arg" && continue
             ;;              ;;
          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
             # Do not include libc due to us having libc/libc_r.              # Do not include libc due to us having libc/libc_r.
            test "X$arg" = "X-lc" && continue            test X-lc = "X$arg" && continue
             ;;              ;;
           *-*-rhapsody* | *-*-darwin1.[012])            *-*-rhapsody* | *-*-darwin1.[012])
             # Rhapsody C and math libraries are in the System framework              # Rhapsody C and math libraries are in the System framework
            deplibs="$deplibs System.ltframework"            func_append deplibs " System.ltframework"
             continue              continue
             ;;              ;;
           *-*-sco3.2v5* | *-*-sco5v6*)            *-*-sco3.2v5* | *-*-sco5v6*)
             # Causes problems with __ctype              # Causes problems with __ctype
            test "X$arg" = "X-lc" && continue            test X-lc = "X$arg" && continue
             ;;              ;;
           *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)            *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
             # Compiler inserts libc in the correct place for threads to work              # Compiler inserts libc in the correct place for threads to work
            test "X$arg" = "X-lc" && continue            test X-lc = "X$arg" && continue
             ;;              ;;
           esac            esac
        elif test "X$arg" = "X-lc_r"; then        elif test X-lc_r = "X$arg"; then
          case $host in           case $host in
         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
            # Do not include libc_r directly, use -pthread flag.             # Do not include libc_r directly, use -pthread flag.
            continue             continue
            ;;             ;;
          esac           esac
         fi          fi
        deplibs="$deplibs $arg"        func_append deplibs " $arg"
         continue          continue
         ;;          ;;
   
         -mllvm)
           prev=mllvm
           continue
           ;;
   
       -module)        -module)
         module=yes          module=yes
         continue          continue
Line 4568  func_mode_link () Line 7154  func_mode_link ()
       # Tru64 UNIX uses -model [arg] to determine the layout of C++        # Tru64 UNIX uses -model [arg] to determine the layout of C++
       # classes, name mangling, and exception handling.        # classes, name mangling, and exception handling.
       # Darwin uses the -arch flag to determine output architecture.        # Darwin uses the -arch flag to determine output architecture.
      -model|-arch|-isysroot)      -model|-arch|-isysroot|--sysroot)
        compiler_flags="$compiler_flags $arg"        func_append compiler_flags " $arg"
         func_append compile_command " $arg"          func_append compile_command " $arg"
         func_append finalize_command " $arg"          func_append finalize_command " $arg"
         prev=xcompiler          prev=xcompiler
         continue          continue
         ;;          ;;
   
      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
        compiler_flags="$compiler_flags $arg"      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
         func_append compiler_flags " $arg"
         func_append compile_command " $arg"          func_append compile_command " $arg"
         func_append finalize_command " $arg"          func_append finalize_command " $arg"
         case "$new_inherited_linker_flags " in          case "$new_inherited_linker_flags " in
             *" $arg "*) ;;              *" $arg "*) ;;
            * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;            * ) func_append new_inherited_linker_flags " $arg" ;;
         esac          esac
         continue          continue
         ;;          ;;
   
       -multi_module)        -multi_module)
        single_module="${wl}-multi_module"        single_module=$wl-multi_module
         continue          continue
         ;;          ;;
   
Line 4602  func_mode_link () Line 7189  func_mode_link ()
         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
           # The PATH hackery in wrapper scripts is required on Windows            # The PATH hackery in wrapper scripts is required on Windows
           # and Darwin in order for the loader to find any dlls it needs.            # and Darwin in order for the loader to find any dlls it needs.
          func_warning "\`-no-install' is ignored for $host"          func_warning "'-no-install' is ignored for $host"
          func_warning "assuming \`-no-fast-install' instead"          func_warning "assuming '-no-fast-install' instead"
           fast_install=no            fast_install=no
           ;;            ;;
         *) no_install=yes ;;          *) no_install=yes ;;
Line 4621  func_mode_link () Line 7208  func_mode_link ()
         continue          continue
         ;;          ;;
   
         -os2dllname)
           prev=os2dllname
           continue
           ;;
   
       -o) prev=output ;;        -o) prev=output ;;
   
       -precious-files-regex)        -precious-files-regex)
Line 4649  func_mode_link () Line 7241  func_mode_link ()
         # We need an absolute path.          # We need an absolute path.
         case $dir in          case $dir in
         [\\/]* | [A-Za-z]:[\\/]*) ;;          [\\/]* | [A-Za-z]:[\\/]*) ;;
           =*)
             func_stripname '=' '' "$dir"
             dir=$lt_sysroot$func_stripname_result
             ;;
         *)          *)
           func_fatal_error "only absolute run-paths are allowed"            func_fatal_error "only absolute run-paths are allowed"
           ;;            ;;
         esac          esac
         case "$xrpath " in          case "$xrpath " in
         *" $dir "*) ;;          *" $dir "*) ;;
        *) xrpath="$xrpath $dir" ;;        *) func_append xrpath " $dir" ;;
         esac          esac
         continue          continue
         ;;          ;;
Line 4704  func_mode_link () Line 7300  func_mode_link ()
         func_stripname '-Wc,' '' "$arg"          func_stripname '-Wc,' '' "$arg"
         args=$func_stripname_result          args=$func_stripname_result
         arg=          arg=
        save_ifs="$IFS"; IFS=','        save_ifs=$IFS; IFS=,
         for flag in $args; do          for flag in $args; do
          IFS="$save_ifs"          IFS=$save_ifs
           func_quote_for_eval "$flag"            func_quote_for_eval "$flag"
          arg="$arg $wl$func_quote_for_eval_result"          func_append arg " $func_quote_for_eval_result"
          compiler_flags="$compiler_flags $func_quote_for_eval_result"          func_append compiler_flags " $func_quote_for_eval_result"
         done          done
        IFS="$save_ifs"        IFS=$save_ifs
         func_stripname ' ' '' "$arg"          func_stripname ' ' '' "$arg"
         arg=$func_stripname_result          arg=$func_stripname_result
         ;;          ;;
Line 4720  func_mode_link () Line 7316  func_mode_link ()
         func_stripname '-Wl,' '' "$arg"          func_stripname '-Wl,' '' "$arg"
         args=$func_stripname_result          args=$func_stripname_result
         arg=          arg=
        save_ifs="$IFS"; IFS=','        save_ifs=$IFS; IFS=,
         for flag in $args; do          for flag in $args; do
          IFS="$save_ifs"          IFS=$save_ifs
           func_quote_for_eval "$flag"            func_quote_for_eval "$flag"
          arg="$arg $wl$func_quote_for_eval_result"          func_append arg " $wl$func_quote_for_eval_result"
          compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"          func_append compiler_flags " $wl$func_quote_for_eval_result"
          linker_flags="$linker_flags $func_quote_for_eval_result"          func_append linker_flags " $func_quote_for_eval_result"
         done          done
        IFS="$save_ifs"        IFS=$save_ifs
         func_stripname ' ' '' "$arg"          func_stripname ' ' '' "$arg"
         arg=$func_stripname_result          arg=$func_stripname_result
         ;;          ;;
Line 4751  func_mode_link () Line 7347  func_mode_link ()
       # -msg_* for osf cc        # -msg_* for osf cc
       -msg_*)        -msg_*)
         func_quote_for_eval "$arg"          func_quote_for_eval "$arg"
        arg="$func_quote_for_eval_result"        arg=$func_quote_for_eval_result
         ;;          ;;
   
      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler      # Flags to be passed through unchanged, with rationale:
      # -r[0-9][0-9]* specifies the processor on the SGI compiler      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler      # -r[0-9][0-9]*        specify processor for the SGI compiler
      # +DA*, +DD* enable 64-bit mode on the HP compiler      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
      # -q* pass through compiler args for the IBM compiler      # +DA*, +DD*           enable 64-bit mode for the HP compiler
      # -m*, -t[45]*, -txscale* pass through architecture-specific      # -q*                  compiler args for the IBM compiler
      # compiler args for GCC      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
      # -F/path gives path to uninstalled frameworks, gcc on darwin      # -F/path              path to uninstalled frameworks, gcc on darwin
      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
      # @file GCC response files      # -fstack-protector*   stack protector flags for GCC
       # @file                GCC response files
       # -tp=*                Portland pgcc target processor selection
       # --sysroot=*          for sysroot support
       # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
       # -specs=*             GCC specs files
       # -stdlib=*            select c++ std lib with clang
       # -fsanitize=*         Clang/GCC memory and address sanitizer
       # -fuse-ld=*           Linker select flags for GCC
       # -static-*            direct GCC to link specific libraries statically
       # -fcilkplus           Cilk Plus language extension features for C/C++
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \        -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
       -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
       -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus)
         func_quote_for_eval "$arg"          func_quote_for_eval "$arg"
        arg="$func_quote_for_eval_result"        arg=$func_quote_for_eval_result
         func_append compile_command " $arg"          func_append compile_command " $arg"
         func_append finalize_command " $arg"          func_append finalize_command " $arg"
        compiler_flags="$compiler_flags $arg"        func_append compiler_flags " $arg"
         continue          continue
         ;;          ;;
   
         -Z*)
           if test os2 = "`expr $host : '.*\(os2\)'`"; then
             # OS/2 uses -Zxxx to specify OS/2-specific options
             compiler_flags="$compiler_flags $arg"
             func_append compile_command " $arg"
             func_append finalize_command " $arg"
             case $arg in
             -Zlinker | -Zstack)
               prev=xcompiler
               ;;
             esac
             continue
           else
             # Otherwise treat like 'Some other compiler flag' below
             func_quote_for_eval "$arg"
             arg=$func_quote_for_eval_result
           fi
           ;;
   
       # Some other compiler flag.        # Some other compiler flag.
       -* | +*)        -* | +*)
         func_quote_for_eval "$arg"          func_quote_for_eval "$arg"
        arg="$func_quote_for_eval_result"        arg=$func_quote_for_eval_result
         ;;          ;;
   
       *.$objext)        *.$objext)
         # A standard object.          # A standard object.
        objs="$objs $arg"        func_append objs " $arg"
         ;;          ;;
   
       *.lo)        *.lo)
Line 4798  func_mode_link () Line 7425  func_mode_link ()
   
           if test -z "$pic_object" ||            if test -z "$pic_object" ||
              test -z "$non_pic_object" ||               test -z "$non_pic_object" ||
             test "$pic_object" = none &&             test none = "$pic_object" &&
             test "$non_pic_object" = none; then             test none = "$non_pic_object"; then
            func_fatal_error "cannot find name of object for \`$arg'"            func_fatal_error "cannot find name of object for '$arg'"
           fi            fi
   
           # Extract subdirectory from the argument.            # Extract subdirectory from the argument.
           func_dirname "$arg" "/" ""            func_dirname "$arg" "/" ""
          xdir="$func_dirname_result"          xdir=$func_dirname_result
   
          if test "$pic_object" != none; then          test none = "$pic_object" || {
             # Prepend the subdirectory the object is found in.              # Prepend the subdirectory the object is found in.
            pic_object="$xdir$pic_object"            pic_object=$xdir$pic_object
   
            if test "$prev" = dlfiles; then            if test dlfiles = "$prev"; then
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then              if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
                dlfiles="$dlfiles $pic_object"                func_append dlfiles " $pic_object"
                 prev=                  prev=
                 continue                  continue
               else                else
Line 4823  func_mode_link () Line 7450  func_mode_link ()
             fi              fi
   
             # CHECK ME:  I think I busted this.  -Ossama              # CHECK ME:  I think I busted this.  -Ossama
            if test "$prev" = dlprefiles; then            if test dlprefiles = "$prev"; then
               # Preload the old-style object.                # Preload the old-style object.
              dlprefiles="$dlprefiles $pic_object"              func_append dlprefiles " $pic_object"
               prev=                prev=
             fi              fi
   
             # A PIC object.              # A PIC object.
             func_append libobjs " $pic_object"              func_append libobjs " $pic_object"
            arg="$pic_object"            arg=$pic_object
          fi          }
   
           # Non-PIC object.            # Non-PIC object.
          if test "$non_pic_object" != none; then          if test none != "$non_pic_object"; then
             # Prepend the subdirectory the object is found in.              # Prepend the subdirectory the object is found in.
            non_pic_object="$xdir$non_pic_object"            non_pic_object=$xdir$non_pic_object
   
             # A standard non-PIC object              # A standard non-PIC object
             func_append non_pic_objects " $non_pic_object"              func_append non_pic_objects " $non_pic_object"
            if test -z "$pic_object" || test "$pic_object" = none ; then            if test -z "$pic_object" || test none = "$pic_object"; then
              arg="$non_pic_object"              arg=$non_pic_object
             fi              fi
           else            else
             # If the PIC object exists, use it instead.              # If the PIC object exists, use it instead.
             # $xdir was prepended to $pic_object above.              # $xdir was prepended to $pic_object above.
            non_pic_object="$pic_object"            non_pic_object=$pic_object
             func_append non_pic_objects " $non_pic_object"              func_append non_pic_objects " $non_pic_object"
           fi            fi
         else          else
Line 4855  func_mode_link () Line 7482  func_mode_link ()
           if $opt_dry_run; then            if $opt_dry_run; then
             # Extract subdirectory from the argument.              # Extract subdirectory from the argument.
             func_dirname "$arg" "/" ""              func_dirname "$arg" "/" ""
            xdir="$func_dirname_result"            xdir=$func_dirname_result
   
             func_lo2o "$arg"              func_lo2o "$arg"
             pic_object=$xdir$objdir/$func_lo2o_result              pic_object=$xdir$objdir/$func_lo2o_result
Line 4863  func_mode_link () Line 7490  func_mode_link ()
             func_append libobjs " $pic_object"              func_append libobjs " $pic_object"
             func_append non_pic_objects " $non_pic_object"              func_append non_pic_objects " $non_pic_object"
           else            else
            func_fatal_error "\`$arg' is not a valid libtool object"            func_fatal_error "'$arg' is not a valid libtool object"
           fi            fi
         fi          fi
         ;;          ;;
   
       *.$libext)        *.$libext)
         # An archive.          # An archive.
        deplibs="$deplibs $arg"        func_append deplibs " $arg"
        old_deplibs="$old_deplibs $arg"        func_append old_deplibs " $arg"
         continue          continue
         ;;          ;;
   
       *.la)        *.la)
         # A libtool-controlled library.          # A libtool-controlled library.
   
        if test "$prev" = dlfiles; then        func_resolve_sysroot "$arg"
         if test dlfiles = "$prev"; then
           # This library was specified with -dlopen.            # This library was specified with -dlopen.
          dlfiles="$dlfiles $arg"          func_append dlfiles " $func_resolve_sysroot_result"
           prev=            prev=
        elif test "$prev" = dlprefiles; then        elif test dlprefiles = "$prev"; then
           # The library was specified with -dlpreopen.            # The library was specified with -dlpreopen.
          dlprefiles="$dlprefiles $arg"          func_append dlprefiles " $func_resolve_sysroot_result"
           prev=            prev=
         else          else
          deplibs="$deplibs $arg"          func_append deplibs " $func_resolve_sysroot_result"
         fi          fi
         continue          continue
         ;;          ;;
Line 4897  func_mode_link () Line 7525  func_mode_link ()
         # Unknown arguments in both finalize_command and compile_command need          # Unknown arguments in both finalize_command and compile_command need
         # to be aesthetically quoted because they are evaled later.          # to be aesthetically quoted because they are evaled later.
         func_quote_for_eval "$arg"          func_quote_for_eval "$arg"
        arg="$func_quote_for_eval_result"        arg=$func_quote_for_eval_result
         ;;          ;;
       esac # arg        esac # arg
   
Line 4909  func_mode_link () Line 7537  func_mode_link ()
     done # argument parsing loop      done # argument parsing loop
   
     test -n "$prev" && \      test -n "$prev" && \
      func_fatal_help "the \`$prevarg' option requires an argument"      func_fatal_help "the '$prevarg' option requires an argument"
   
    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then    if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
       eval arg=\"$export_dynamic_flag_spec\"        eval arg=\"$export_dynamic_flag_spec\"
       func_append compile_command " $arg"        func_append compile_command " $arg"
       func_append finalize_command " $arg"        func_append finalize_command " $arg"
Line 4920  func_mode_link () Line 7548  func_mode_link ()
     oldlibs=      oldlibs=
     # calculate the name of the file, without its directory      # calculate the name of the file, without its directory
     func_basename "$output"      func_basename "$output"
    outputname="$func_basename_result"    outputname=$func_basename_result
    libobjs_save="$libobjs"    libobjs_save=$libobjs
   
     if test -n "$shlibpath_var"; then      if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var        # get the directories listed in $shlibpath_var
      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`      eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
     else      else
       shlib_search_path=        shlib_search_path=
     fi      fi
     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"      eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"      eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
   
       # Definition is injected by LT_CONFIG during libtool generation.
       func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
   
     func_dirname "$output" "/" ""      func_dirname "$output" "/" ""
    output_objdir="$func_dirname_result$objdir"    output_objdir=$func_dirname_result$objdir
     func_to_tool_file "$output_objdir/"
     tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.      # Create the object directory.
     func_mkdir_p "$output_objdir"      func_mkdir_p "$output_objdir"
   
Line 4954  func_mode_link () Line 7587  func_mode_link ()
     # Find all interdependent deplibs by searching for libraries      # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)      # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do      for deplib in $deplibs; do
      if $opt_duplicate_deps ; then      if $opt_preserve_dup_deps; then
         case "$libs " in          case "$libs " in
        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;        *" $deplib "*) func_append specialdeplibs " $deplib" ;;
         esac          esac
       fi        fi
      libs="$libs $deplib"      func_append libs " $deplib"
     done      done
   
    if test "$linkmode" = lib; then    if test lib = "$linkmode"; then
       libs="$predeps $libs $compiler_lib_search_path $postdeps"        libs="$predeps $libs $compiler_lib_search_path $postdeps"
   
       # Compute libraries that are listed more than once in $predeps        # Compute libraries that are listed more than once in $predeps
Line 4972  func_mode_link () Line 7605  func_mode_link ()
       if $opt_duplicate_compiler_generated_deps; then        if $opt_duplicate_compiler_generated_deps; then
         for pre_post_dep in $predeps $postdeps; do          for pre_post_dep in $predeps $postdeps; do
           case "$pre_post_deps " in            case "$pre_post_deps " in
          *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;          *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
           esac            esac
          pre_post_deps="$pre_post_deps $pre_post_dep"          func_append pre_post_deps " $pre_post_dep"
         done          done
       fi        fi
       pre_post_deps=        pre_post_deps=
Line 4994  func_mode_link () Line 7627  func_mode_link ()
           case $file in            case $file in
           *.la) ;;            *.la) ;;
           *)            *)
            func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"            func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
             ;;              ;;
           esac            esac
         done          done
Line 5002  func_mode_link () Line 7635  func_mode_link ()
     prog)      prog)
         compile_deplibs=          compile_deplibs=
         finalize_deplibs=          finalize_deplibs=
        alldeplibs=no        alldeplibs=false
         newdlfiles=          newdlfiles=
         newdlprefiles=          newdlprefiles=
         passes="conv scan dlopen dlpreopen link"          passes="conv scan dlopen dlpreopen link"
Line 5014  func_mode_link () Line 7647  func_mode_link ()
     for pass in $passes; do      for pass in $passes; do
       # The preopen pass in lib mode reverses $deplibs; put it back here        # The preopen pass in lib mode reverses $deplibs; put it back here
       # so that -L comes before libs that need it for instance...        # so that -L comes before libs that need it for instance...
      if test "$linkmode,$pass" = "lib,link"; then      if test lib,link = "$linkmode,$pass"; then
         ## FIXME: Find the place where the list is rebuilt in the wrong          ## FIXME: Find the place where the list is rebuilt in the wrong
         ##        order, and fix it there properly          ##        order, and fix it there properly
         tmp_deplibs=          tmp_deplibs=
         for deplib in $deplibs; do          for deplib in $deplibs; do
           tmp_deplibs="$deplib $tmp_deplibs"            tmp_deplibs="$deplib $tmp_deplibs"
         done          done
        deplibs="$tmp_deplibs"        deplibs=$tmp_deplibs
       fi        fi
   
      if test "$linkmode,$pass" = "lib,link" ||      if test lib,link = "$linkmode,$pass" ||
         test "$linkmode,$pass" = "prog,scan"; then         test prog,scan = "$linkmode,$pass"; then
        libs="$deplibs"        libs=$deplibs
         deplibs=          deplibs=
       fi        fi
      if test "$linkmode" = prog; then      if test prog = "$linkmode"; then
         case $pass in          case $pass in
        dlopen) libs="$dlfiles" ;;        dlopen) libs=$dlfiles ;;
        dlpreopen) libs="$dlprefiles" ;;        dlpreopen) libs=$dlprefiles ;;
        link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;        link)
           libs="$deplibs %DEPLIBS%"
           test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
           ;;
         esac          esac
       fi        fi
      if test "$linkmode,$pass" = "lib,dlpreopen"; then      if test lib,dlpreopen = "$linkmode,$pass"; then
         # Collect and forward deplibs of preopened libtool libs          # Collect and forward deplibs of preopened libtool libs
         for lib in $dlprefiles; do          for lib in $dlprefiles; do
           # Ignore non-libtool-libs            # Ignore non-libtool-libs
           dependency_libs=            dependency_libs=
             func_resolve_sysroot "$lib"
           case $lib in            case $lib in
          *.la) func_source "$lib" ;;          *.la) func_source "$func_resolve_sysroot_result" ;;
           esac            esac
   
           # Collect preopened libtool deplibs, except any this library            # Collect preopened libtool deplibs, except any this library
           # has declared as weak libs            # has declared as weak libs
           for deplib in $dependency_libs; do            for deplib in $dependency_libs; do
            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`            func_basename "$deplib"
             deplib_base=$func_basename_result
             case " $weak_libs " in              case " $weak_libs " in
             *" $deplib_base "*) ;;              *" $deplib_base "*) ;;
            *) deplibs="$deplibs $deplib" ;;            *) func_append deplibs " $deplib" ;;
             esac              esac
           done            done
         done          done
        libs="$dlprefiles"        libs=$dlprefiles
       fi        fi
      if test "$pass" = dlopen; then      if test dlopen = "$pass"; then
         # Collect dlpreopened libraries          # Collect dlpreopened libraries
        save_deplibs="$deplibs"        save_deplibs=$deplibs
         deplibs=          deplibs=
       fi        fi
   
       for deplib in $libs; do        for deplib in $libs; do
         lib=          lib=
        found=no        found=false
         case $deplib in          case $deplib in
        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
          if test "$linkmode,$pass" = "prog,link"; then        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
           if test prog,link = "$linkmode,$pass"; then
             compile_deplibs="$deplib $compile_deplibs"              compile_deplibs="$deplib $compile_deplibs"
             finalize_deplibs="$deplib $finalize_deplibs"              finalize_deplibs="$deplib $finalize_deplibs"
           else            else
            compiler_flags="$compiler_flags $deplib"            func_append compiler_flags " $deplib"
            if test "$linkmode" = lib ; then            if test lib = "$linkmode"; then
                 case "$new_inherited_linker_flags " in                  case "$new_inherited_linker_flags " in
                     *" $deplib "*) ;;                      *" $deplib "*) ;;
                    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;                    * ) func_append new_inherited_linker_flags " $deplib" ;;
                 esac                  esac
             fi              fi
           fi            fi
           continue            continue
           ;;            ;;
         -l*)          -l*)
          if test "$linkmode" != lib && test "$linkmode" != prog; then          if test lib != "$linkmode" && test prog != "$linkmode"; then
            func_warning "\`-l' is ignored for archives/objects"            func_warning "'-l' is ignored for archives/objects"
             continue              continue
           fi            fi
           func_stripname '-l' '' "$deplib"            func_stripname '-l' '' "$deplib"
           name=$func_stripname_result            name=$func_stripname_result
          if test "$linkmode" = lib; then          if test lib = "$linkmode"; then
             searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"              searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
           else            else
             searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"              searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
Line 5097  func_mode_link () Line 7736  func_mode_link ()
           for searchdir in $searchdirs; do            for searchdir in $searchdirs; do
             for search_ext in .la $std_shrext .so .a; do              for search_ext in .la $std_shrext .so .a; do
               # Search the libtool library                # Search the libtool library
              lib="$searchdir/lib${name}${search_ext}"              lib=$searchdir/lib$name$search_ext
               if test -f "$lib"; then                if test -f "$lib"; then
                if test "$search_ext" = ".la"; then                if test .la = "$search_ext"; then
                  found=yes                  found=:
                 else                  else
                  found=no                  found=false
                 fi                  fi
                 break 2                  break 2
               fi                fi
             done              done
           done            done
          if test "$found" != yes; then          if $found; then
            # deplib doesn't seem to be a libtool library            # deplib is a libtool library
            if test "$linkmode,$pass" = "prog,link"; then 
              compile_deplibs="$deplib $compile_deplibs" 
              finalize_deplibs="$deplib $finalize_deplibs" 
            else 
              deplibs="$deplib $deplibs" 
              test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 
            fi 
            continue 
          else # deplib is a libtool library 
             # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,              # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
             # We need to do some special things here, and not later.              # We need to do some special things here, and not later.
            if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then            if test yes = "$allow_libtool_libs_with_static_runtimes"; then
               case " $predeps $postdeps " in                case " $predeps $postdeps " in
               *" $deplib "*)                *" $deplib "*)
                 if func_lalib_p "$lib"; then                  if func_lalib_p "$lib"; then
Line 5129  func_mode_link () Line 7759  func_mode_link ()
                   old_library=                    old_library=
                   func_source "$lib"                    func_source "$lib"
                   for l in $old_library $library_names; do                    for l in $old_library $library_names; do
                    ll="$l"                    ll=$l
                   done                    done
                  if test "X$ll" = "X$old_library" ; then # only static version available                  if test "X$ll" = "X$old_library"; then # only static version available
                    found=no                    found=false
                     func_dirname "$lib" "" "."                      func_dirname "$lib" "" "."
                    ladir="$func_dirname_result"                    ladir=$func_dirname_result
                     lib=$ladir/$old_library                      lib=$ladir/$old_library
                    if test "$linkmode,$pass" = "prog,link"; then                    if test prog,link = "$linkmode,$pass"; then
                       compile_deplibs="$deplib $compile_deplibs"                        compile_deplibs="$deplib $compile_deplibs"
                       finalize_deplibs="$deplib $finalize_deplibs"                        finalize_deplibs="$deplib $finalize_deplibs"
                     else                      else
                       deplibs="$deplib $deplibs"                        deplibs="$deplib $deplibs"
                      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"                      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
                     fi                      fi
                     continue                      continue
                   fi                    fi
Line 5150  func_mode_link () Line 7780  func_mode_link ()
               *) ;;                *) ;;
               esac                esac
             fi              fi
             else
               # deplib doesn't seem to be a libtool library
               if test prog,link = "$linkmode,$pass"; then
                 compile_deplibs="$deplib $compile_deplibs"
                 finalize_deplibs="$deplib $finalize_deplibs"
               else
                 deplibs="$deplib $deplibs"
                 test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
               fi
               continue
           fi            fi
           ;; # -l            ;; # -l
         *.ltframework)          *.ltframework)
          if test "$linkmode,$pass" = "prog,link"; then          if test prog,link = "$linkmode,$pass"; then
             compile_deplibs="$deplib $compile_deplibs"              compile_deplibs="$deplib $compile_deplibs"
             finalize_deplibs="$deplib $finalize_deplibs"              finalize_deplibs="$deplib $finalize_deplibs"
           else            else
             deplibs="$deplib $deplibs"              deplibs="$deplib $deplibs"
            if test "$linkmode" = lib ; then            if test lib = "$linkmode"; then
                 case "$new_inherited_linker_flags " in                  case "$new_inherited_linker_flags " in
                     *" $deplib "*) ;;                      *" $deplib "*) ;;
                    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;                    * ) func_append new_inherited_linker_flags " $deplib" ;;
                 esac                  esac
             fi              fi
           fi            fi
Line 5171  func_mode_link () Line 7811  func_mode_link ()
           case $linkmode in            case $linkmode in
           lib)            lib)
             deplibs="$deplib $deplibs"              deplibs="$deplib $deplibs"
            test "$pass" = conv && continue            test conv = "$pass" && continue
             newdependency_libs="$deplib $newdependency_libs"              newdependency_libs="$deplib $newdependency_libs"
             func_stripname '-L' '' "$deplib"              func_stripname '-L' '' "$deplib"
            newlib_search_path="$newlib_search_path $func_stripname_result"            func_resolve_sysroot "$func_stripname_result"
             func_append newlib_search_path " $func_resolve_sysroot_result"
             ;;              ;;
           prog)            prog)
            if test "$pass" = conv; then            if test conv = "$pass"; then
               deplibs="$deplib $deplibs"                deplibs="$deplib $deplibs"
               continue                continue
             fi              fi
            if test "$pass" = scan; then            if test scan = "$pass"; then
               deplibs="$deplib $deplibs"                deplibs="$deplib $deplibs"
             else              else
               compile_deplibs="$deplib $compile_deplibs"                compile_deplibs="$deplib $compile_deplibs"
               finalize_deplibs="$deplib $finalize_deplibs"                finalize_deplibs="$deplib $finalize_deplibs"
             fi              fi
             func_stripname '-L' '' "$deplib"              func_stripname '-L' '' "$deplib"
            newlib_search_path="$newlib_search_path $func_stripname_result"            func_resolve_sysroot "$func_stripname_result"
             func_append newlib_search_path " $func_resolve_sysroot_result"
             ;;              ;;
           *)            *)
            func_warning "\`-L' is ignored for archives/objects"            func_warning "'-L' is ignored for archives/objects"
             ;;              ;;
           esac # linkmode            esac # linkmode
           continue            continue
           ;; # -L            ;; # -L
         -R*)          -R*)
          if test "$pass" = link; then          if test link = "$pass"; then
             func_stripname '-R' '' "$deplib"              func_stripname '-R' '' "$deplib"
            dir=$func_stripname_result            func_resolve_sysroot "$func_stripname_result"
             dir=$func_resolve_sysroot_result
             # Make sure the xrpath contains only unique directories.              # Make sure the xrpath contains only unique directories.
             case "$xrpath " in              case "$xrpath " in
             *" $dir "*) ;;              *" $dir "*) ;;
            *) xrpath="$xrpath $dir" ;;            *) func_append xrpath " $dir" ;;
             esac              esac
           fi            fi
           deplibs="$deplib $deplibs"            deplibs="$deplib $deplibs"
           continue            continue
           ;;            ;;
        *.la) lib="$deplib" ;;        *.la)
           func_resolve_sysroot "$deplib"
           lib=$func_resolve_sysroot_result
           ;;
         *.$libext)          *.$libext)
          if test "$pass" = conv; then          if test conv = "$pass"; then
             deplibs="$deplib $deplibs"              deplibs="$deplib $deplibs"
             continue              continue
           fi            fi
Line 5222  func_mode_link () Line 7868  func_mode_link ()
             case " $dlpreconveniencelibs " in              case " $dlpreconveniencelibs " in
             *" $deplib "*) ;;              *" $deplib "*) ;;
             *)              *)
              valid_a_lib=no              valid_a_lib=false
               case $deplibs_check_method in                case $deplibs_check_method in
                 match_pattern*)                  match_pattern*)
                   set dummy $deplibs_check_method; shift                    set dummy $deplibs_check_method; shift
                   match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`                    match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
                  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \                  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
                     | $EGREP "$match_pattern_regex" > /dev/null; then                      | $EGREP "$match_pattern_regex" > /dev/null; then
                    valid_a_lib=yes                    valid_a_lib=:
                   fi                    fi
                 ;;                  ;;
                 pass_all)                  pass_all)
                  valid_a_lib=yes                  valid_a_lib=:
                 ;;                  ;;
               esac                esac
              if test "$valid_a_lib" != yes; then              if $valid_a_lib; then
                $ECHO                echo
                $ECHO "*** Warning: Trying to link with static lib archive $deplib." 
                $ECHO "*** I have the capability to make that library automatically link in when" 
                $ECHO "*** you link to this library.  But I can only do this if you have a" 
                $ECHO "*** shared version of the library, which you do not appear to have" 
                $ECHO "*** because the file extensions .$libext of this argument makes me believe" 
                $ECHO "*** that it is just a static archive that I should not use here." 
              else 
                $ECHO 
                 $ECHO "*** Warning: Linking the shared library $output against the"                  $ECHO "*** Warning: Linking the shared library $output against the"
                 $ECHO "*** static library $deplib is not portable!"                  $ECHO "*** static library $deplib is not portable!"
                 deplibs="$deplib $deplibs"                  deplibs="$deplib $deplibs"
                 else
                   echo
                   $ECHO "*** Warning: Trying to link with static lib archive $deplib."
                   echo "*** I have the capability to make that library automatically link in when"
                   echo "*** you link to this library.  But I can only do this if you have a"
                   echo "*** shared version of the library, which you do not appear to have"
                   echo "*** because the file extensions .$libext of this argument makes me believe"
                   echo "*** that it is just a static archive that I should not use here."
               fi                fi
               ;;                ;;
             esac              esac
             continue              continue
             ;;              ;;
           prog)            prog)
            if test "$pass" != link; then            if test link != "$pass"; then
               deplibs="$deplib $deplibs"                deplibs="$deplib $deplibs"
             else              else
               compile_deplibs="$deplib $compile_deplibs"                compile_deplibs="$deplib $compile_deplibs"
Line 5266  func_mode_link () Line 7912  func_mode_link ()
           esac # linkmode            esac # linkmode
           ;; # *.$libext            ;; # *.$libext
         *.lo | *.$objext)          *.lo | *.$objext)
          if test "$pass" = conv; then          if test conv = "$pass"; then
             deplibs="$deplib $deplibs"              deplibs="$deplib $deplibs"
          elif test "$linkmode" = prog; then          elif test prog = "$linkmode"; then
            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then            if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
               # If there is no dlopen support or we're linking statically,                # If there is no dlopen support or we're linking statically,
               # we need to preload.                # we need to preload.
              newdlprefiles="$newdlprefiles $deplib"              func_append newdlprefiles " $deplib"
               compile_deplibs="$deplib $compile_deplibs"                compile_deplibs="$deplib $compile_deplibs"
               finalize_deplibs="$deplib $finalize_deplibs"                finalize_deplibs="$deplib $finalize_deplibs"
             else              else
              newdlfiles="$newdlfiles $deplib"              func_append newdlfiles " $deplib"
             fi              fi
           fi            fi
           continue            continue
           ;;            ;;
         %DEPLIBS%)          %DEPLIBS%)
          alldeplibs=yes          alldeplibs=:
           continue            continue
           ;;            ;;
         esac # case $deplib          esac # case $deplib
   
        if test "$found" = yes || test -f "$lib"; then :        $found || test -f "$lib" \
        else          || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
          func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" 
        fi 
   
         # Check to see that this really is a libtool archive.          # Check to see that this really is a libtool archive.
         func_lalib_unsafe_p "$lib" \          func_lalib_unsafe_p "$lib" \
          || func_fatal_error "\`$lib' is not a valid libtool archive"          || func_fatal_error "'$lib' is not a valid libtool archive"
   
         func_dirname "$lib" "" "."          func_dirname "$lib" "" "."
        ladir="$func_dirname_result"        ladir=$func_dirname_result
   
         dlname=          dlname=
         dlopen=          dlopen=
Line 5318  func_mode_link () Line 7962  func_mode_link ()
   
         # Convert "-framework foo" to "foo.ltframework"          # Convert "-framework foo" to "foo.ltframework"
         if test -n "$inherited_linker_flags"; then          if test -n "$inherited_linker_flags"; then
          tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`          tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
           for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do            for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
             case " $new_inherited_linker_flags " in              case " $new_inherited_linker_flags " in
               *" $tmp_inherited_linker_flag "*) ;;                *" $tmp_inherited_linker_flag "*) ;;
              *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;              *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
             esac              esac
           done            done
         fi          fi
        dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`        dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        if test "$linkmode,$pass" = "lib,link" ||        if test lib,link = "$linkmode,$pass" ||
           test "$linkmode,$pass" = "prog,scan" ||           test prog,scan = "$linkmode,$pass" ||
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then           { test prog != "$linkmode" && test lib != "$linkmode"; }; then
          test -n "$dlopen" && dlfiles="$dlfiles $dlopen"          test -n "$dlopen" && func_append dlfiles " $dlopen"
          test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"          test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
         fi          fi
   
        if test "$pass" = conv; then        if test conv = "$pass"; then
           # Only check for convenience libraries            # Only check for convenience libraries
           deplibs="$lib $deplibs"            deplibs="$lib $deplibs"
           if test -z "$libdir"; then            if test -z "$libdir"; then
             if test -z "$old_library"; then              if test -z "$old_library"; then
              func_fatal_error "cannot find name of link library for \`$lib'"              func_fatal_error "cannot find name of link library for '$lib'"
             fi              fi
             # It is a libtool convenience library, so add in its objects.              # It is a libtool convenience library, so add in its objects.
            convenience="$convenience $ladir/$objdir/$old_library"            func_append convenience " $ladir/$objdir/$old_library"
            old_convenience="$old_convenience $ladir/$objdir/$old_library"            func_append old_convenience " $ladir/$objdir/$old_library"
          elif test "$linkmode" != prog && test "$linkmode" != lib; then            tmp_libs=
            func_fatal_error "\`$lib' is not a convenience library"            for deplib in $dependency_libs; do
               deplibs="$deplib $deplibs"
               if $opt_preserve_dup_deps; then
                 case "$tmp_libs " in
                 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
                 esac
               fi
               func_append tmp_libs " $deplib"
             done
           elif test prog != "$linkmode" && test lib != "$linkmode"; then
             func_fatal_error "'$lib' is not a convenience library"
           fi            fi
           tmp_libs=  
           for deplib in $dependency_libs; do  
             deplibs="$deplib $deplibs"  
             if $opt_duplicate_deps ; then  
               case "$tmp_libs " in  
               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;  
               esac  
             fi  
             tmp_libs="$tmp_libs $deplib"  
           done  
           continue            continue
         fi # $pass = conv          fi # $pass = conv
   
   
         # Get the name of the library we link against.          # Get the name of the library we link against.
         linklib=          linklib=
        for l in $old_library $library_names; do        if test -n "$old_library" &&
          linklib="$l"           { test yes = "$prefer_static_libs" ||
        done             test built,no = "$prefer_static_libs,$installed"; }; then
           linklib=$old_library
         else
           for l in $old_library $library_names; do
             linklib=$l
           done
         fi
         if test -z "$linklib"; then          if test -z "$linklib"; then
          func_fatal_error "cannot find name of link library for \`$lib'"          func_fatal_error "cannot find name of link library for '$lib'"
         fi          fi
   
         # This library was specified with -dlopen.          # This library was specified with -dlopen.
        if test "$pass" = dlopen; then        if test dlopen = "$pass"; then
          if test -z "$libdir"; then          test -z "$libdir" \
            func_fatal_error "cannot -dlopen a convenience library: \`$lib'"            && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
          fi 
           if test -z "$dlname" ||            if test -z "$dlname" ||
             test "$dlopen_support" != yes ||             test yes != "$dlopen_support" ||
             test "$build_libtool_libs" = no; then             test no = "$build_libtool_libs"
           then
             # If there is no dlname, no dlopen support or we're linking              # If there is no dlname, no dlopen support or we're linking
             # statically, we need to preload.  We also need to preload any              # statically, we need to preload.  We also need to preload any
             # dependent libraries so libltdl's deplib preloader doesn't              # dependent libraries so libltdl's deplib preloader doesn't
             # bomb out in the load deplibs phase.              # bomb out in the load deplibs phase.
            dlprefiles="$dlprefiles $lib $dependency_libs"            func_append dlprefiles " $lib $dependency_libs"
           else            else
            newdlfiles="$newdlfiles $lib"            func_append newdlfiles " $lib"
           fi            fi
           continue            continue
         fi # $pass = dlopen          fi # $pass = dlopen
   
         # We need an absolute path.          # We need an absolute path.
         case $ladir in          case $ladir in
        [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;        [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
         *)          *)
           abs_ladir=`cd "$ladir" && pwd`            abs_ladir=`cd "$ladir" && pwd`
           if test -z "$abs_ladir"; then            if test -z "$abs_ladir"; then
            func_warning "cannot determine absolute directory name of \`$ladir'"            func_warning "cannot determine absolute directory name of '$ladir'"
             func_warning "passing it literally to the linker, although it might fail"              func_warning "passing it literally to the linker, although it might fail"
            abs_ladir="$ladir"            abs_ladir=$ladir
           fi            fi
           ;;            ;;
         esac          esac
         func_basename "$lib"          func_basename "$lib"
        laname="$func_basename_result"        laname=$func_basename_result
   
         # Find the relevant object directory and library name.          # Find the relevant object directory and library name.
        if test "X$installed" = Xyes; then        if test yes = "$installed"; then
          if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then          if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
            func_warning "library \`$lib' was moved."            func_warning "library '$lib' was moved."
            dir="$ladir"            dir=$ladir
            absdir="$abs_ladir"            absdir=$abs_ladir
            libdir="$abs_ladir"            libdir=$abs_ladir
           else            else
            dir="$libdir"            dir=$lt_sysroot$libdir
            absdir="$libdir"            absdir=$lt_sysroot$libdir
           fi            fi
          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes          test yes = "$hardcode_automatic" && avoidtemprpath=yes
         else          else
           if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then            if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
            dir="$ladir"            dir=$ladir
            absdir="$abs_ladir"            absdir=$abs_ladir
             # Remove this search path later              # Remove this search path later
            notinst_path="$notinst_path $abs_ladir"            func_append notinst_path " $abs_ladir"
           else            else
            dir="$ladir/$objdir"            dir=$ladir/$objdir
            absdir="$abs_ladir/$objdir"            absdir=$abs_ladir/$objdir
             # Remove this search path later              # Remove this search path later
            notinst_path="$notinst_path $abs_ladir"            func_append notinst_path " $abs_ladir"
           fi            fi
         fi # $installed = yes          fi # $installed = yes
         func_stripname 'lib' '.la' "$laname"          func_stripname 'lib' '.la' "$laname"
         name=$func_stripname_result          name=$func_stripname_result
   
         # This library was specified with -dlpreopen.          # This library was specified with -dlpreopen.
        if test "$pass" = dlpreopen; then        if test dlpreopen = "$pass"; then
          if test -z "$libdir" && test "$linkmode" = prog; then          if test -z "$libdir" && test prog = "$linkmode"; then
            func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"            func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
           fi            fi
          # Prefer using a static library (so that no silly _DYNAMIC symbols          case $host in
          # are required to link).            # special handling for platforms with PE-DLLs.
          if test -n "$old_library"; then            *cygwin* | *mingw* | *cegcc* )
            newdlprefiles="$newdlprefiles $dir/$old_library"              # Linker will automatically link against shared library if both
            # Keep a list of preopened convenience libraries to check              # static and shared are present.  Therefore, ensure we extract
            # that they are being used correctly in the link pass.              # symbols from the import library if a shared library is present
            test -z "$libdir" && \              # (otherwise, the dlopen module name will be incorrect).  We do
                dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"              # this by putting the import library name into $newdlprefiles.
          # Otherwise, use the dlname, so that lt_dlopen finds it.              # We recover the dlopen module name by 'saving' the la file
          elif test -n "$dlname"; then              # name in a special purpose variable, and (later) extracting the
            newdlprefiles="$newdlprefiles $dir/$dlname"              # dlname from the la file.
          else              if test -n "$dlname"; then
            newdlprefiles="$newdlprefiles $dir/$linklib"                func_tr_sh "$dir/$linklib"
          fi                eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
                 func_append newdlprefiles " $dir/$linklib"
               else
                 func_append newdlprefiles " $dir/$old_library"
                 # Keep a list of preopened convenience libraries to check
                 # that they are being used correctly in the link pass.
                 test -z "$libdir" && \
                   func_append dlpreconveniencelibs " $dir/$old_library"
               fi
             ;;
             * )
               # Prefer using a static library (so that no silly _DYNAMIC symbols
               # are required to link).
               if test -n "$old_library"; then
                 func_append newdlprefiles " $dir/$old_library"
                 # Keep a list of preopened convenience libraries to check
                 # that they are being used correctly in the link pass.
                 test -z "$libdir" && \
                   func_append dlpreconveniencelibs " $dir/$old_library"
               # Otherwise, use the dlname, so that lt_dlopen finds it.
               elif test -n "$dlname"; then
                 func_append newdlprefiles " $dir/$dlname"
               else
                 func_append newdlprefiles " $dir/$linklib"
               fi
             ;;
           esac
         fi # $pass = dlpreopen          fi # $pass = dlpreopen
   
         if test -z "$libdir"; then          if test -z "$libdir"; then
           # Link the convenience library            # Link the convenience library
          if test "$linkmode" = lib; then          if test lib = "$linkmode"; then
             deplibs="$dir/$old_library $deplibs"              deplibs="$dir/$old_library $deplibs"
          elif test "$linkmode,$pass" = "prog,link"; then          elif test prog,link = "$linkmode,$pass"; then
             compile_deplibs="$dir/$old_library $compile_deplibs"              compile_deplibs="$dir/$old_library $compile_deplibs"
             finalize_deplibs="$dir/$old_library $finalize_deplibs"              finalize_deplibs="$dir/$old_library $finalize_deplibs"
           else            else
Line 5467  func_mode_link () Line 8143  func_mode_link ()
         fi          fi
   
   
        if test "$linkmode" = prog && test "$pass" != link; then        if test prog = "$linkmode" && test link != "$pass"; then
          newlib_search_path="$newlib_search_path $ladir"          func_append newlib_search_path " $ladir"
           deplibs="$lib $deplibs"            deplibs="$lib $deplibs"
   
          linkalldeplibs=no          linkalldeplibs=false
          if test "$link_all_deplibs" != no || test -z "$library_names" ||          if test no != "$link_all_deplibs" || test -z "$library_names" ||
             test "$build_libtool_libs" = no; then             test no = "$build_libtool_libs"; then
            linkalldeplibs=yes            linkalldeplibs=:
           fi            fi
   
           tmp_libs=            tmp_libs=
           for deplib in $dependency_libs; do            for deplib in $dependency_libs; do
             case $deplib in              case $deplib in
             -L*) func_stripname '-L' '' "$deplib"              -L*) func_stripname '-L' '' "$deplib"
                 newlib_search_path="$newlib_search_path $func_stripname_result"                 func_resolve_sysroot "$func_stripname_result"
                  func_append newlib_search_path " $func_resolve_sysroot_result"
                  ;;                   ;;
             esac              esac
             # Need to link against all dependency_libs?              # Need to link against all dependency_libs?
            if test "$linkalldeplibs" = yes; then            if $linkalldeplibs; then
               deplibs="$deplib $deplibs"                deplibs="$deplib $deplibs"
             else              else
               # Need to hardcode shared library paths                # Need to hardcode shared library paths
               # or/and link against static libraries                # or/and link against static libraries
               newdependency_libs="$deplib $newdependency_libs"                newdependency_libs="$deplib $newdependency_libs"
             fi              fi
            if $opt_duplicate_deps ; then            if $opt_preserve_dup_deps; then
               case "$tmp_libs " in                case "$tmp_libs " in
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;              *" $deplib "*) func_append specialdeplibs " $deplib" ;;
               esac                esac
             fi              fi
            tmp_libs="$tmp_libs $deplib"            func_append tmp_libs " $deplib"
           done # for deplib            done # for deplib
           continue            continue
         fi # $linkmode = prog...          fi # $linkmode = prog...
   
        if test "$linkmode,$pass" = "prog,link"; then        if test prog,link = "$linkmode,$pass"; then
           if test -n "$library_names" &&            if test -n "$library_names" &&
             { { test "$prefer_static_libs" = no ||             { { test no = "$prefer_static_libs" ||
                 test "$prefer_static_libs,$installed" = "built,yes"; } ||                 test built,yes = "$prefer_static_libs,$installed"; } ||
                test -z "$old_library"; }; then                 test -z "$old_library"; }; then
             # We need to hardcode the library path              # We need to hardcode the library path
            if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then            if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
               # Make sure the rpath contains only unique directories.                # Make sure the rpath contains only unique directories.
              case "$temp_rpath:" in              case $temp_rpath: in
               *"$absdir:"*) ;;                *"$absdir:"*) ;;
              *) temp_rpath="$temp_rpath$absdir:" ;;              *) func_append temp_rpath "$absdir:" ;;
               esac                esac
             fi              fi
   
Line 5524  func_mode_link () Line 8201  func_mode_link ()
             *)              *)
               case "$compile_rpath " in                case "$compile_rpath " in
               *" $absdir "*) ;;                *" $absdir "*) ;;
              *) compile_rpath="$compile_rpath $absdir"              *) func_append compile_rpath " $absdir" ;;
               esac                esac
               ;;                ;;
             esac              esac
Line 5533  func_mode_link () Line 8210  func_mode_link ()
             *)              *)
               case "$finalize_rpath " in                case "$finalize_rpath " in
               *" $libdir "*) ;;                *" $libdir "*) ;;
              *) finalize_rpath="$finalize_rpath $libdir"              *) func_append finalize_rpath " $libdir" ;;
               esac                esac
               ;;                ;;
             esac              esac
           fi # $linkmode,$pass = prog,link...            fi # $linkmode,$pass = prog,link...
   
          if test "$alldeplibs" = yes &&          if $alldeplibs &&
             { test "$deplibs_check_method" = pass_all ||             { test pass_all = "$deplibs_check_method" ||
               { test "$build_libtool_libs" = yes &&               { test yes = "$build_libtool_libs" &&
                  test -n "$library_names"; }; }; then                   test -n "$library_names"; }; }; then
             # We only need to search for static libraries              # We only need to search for static libraries
             continue              continue
Line 5550  func_mode_link () Line 8227  func_mode_link ()
   
         link_static=no # Whether the deplib will be linked statically          link_static=no # Whether the deplib will be linked statically
         use_static_libs=$prefer_static_libs          use_static_libs=$prefer_static_libs
        if test "$use_static_libs" = built && test "$installed" = yes; then        if test built = "$use_static_libs" && test yes = "$installed"; then
           use_static_libs=no            use_static_libs=no
         fi          fi
         if test -n "$library_names" &&          if test -n "$library_names" &&
           { test "$use_static_libs" = no || test -z "$old_library"; }; then           { test no = "$use_static_libs" || test -z "$old_library"; }; then
           case $host in            case $host in
          *cygwin* | *mingw* | *cegcc*)          *cygwin* | *mingw* | *cegcc* | *os2*)
               # No point in relinking DLLs because paths are not encoded                # No point in relinking DLLs because paths are not encoded
              notinst_deplibs="$notinst_deplibs $lib"              func_append notinst_deplibs " $lib"
               need_relink=no                need_relink=no
             ;;              ;;
           *)            *)
            if test "$installed" = no; then            if test no = "$installed"; then
              notinst_deplibs="$notinst_deplibs $lib"              func_append notinst_deplibs " $lib"
               need_relink=yes                need_relink=yes
             fi              fi
             ;;              ;;
Line 5572  func_mode_link () Line 8249  func_mode_link ()
   
           # Warn about portability, can't link against -module's on some            # Warn about portability, can't link against -module's on some
           # systems (darwin).  Don't bleat about dlopened modules though!            # systems (darwin).  Don't bleat about dlopened modules though!
          dlopenmodule=""          dlopenmodule=
           for dlpremoduletest in $dlprefiles; do            for dlpremoduletest in $dlprefiles; do
             if test "X$dlpremoduletest" = "X$lib"; then              if test "X$dlpremoduletest" = "X$lib"; then
              dlopenmodule="$dlpremoduletest"              dlopenmodule=$dlpremoduletest
               break                break
             fi              fi
           done            done
          if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then          if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
            $ECHO            echo
            if test "$linkmode" = prog; then            if test prog = "$linkmode"; then
               $ECHO "*** Warning: Linking the executable $output against the loadable module"                $ECHO "*** Warning: Linking the executable $output against the loadable module"
             else              else
               $ECHO "*** Warning: Linking the shared library $output against the loadable module"                $ECHO "*** Warning: Linking the shared library $output against the loadable module"
             fi              fi
             $ECHO "*** $linklib is not portable!"              $ECHO "*** $linklib is not portable!"
           fi            fi
          if test "$linkmode" = lib &&          if test lib = "$linkmode" &&
             test "$hardcode_into_libs" = yes; then             test yes = "$hardcode_into_libs"; then
             # Hardcode the library path.              # Hardcode the library path.
             # Skip directories that are in the system default run-time              # Skip directories that are in the system default run-time
             # search path.              # search path.
Line 5598  func_mode_link () Line 8275  func_mode_link ()
             *)              *)
               case "$compile_rpath " in                case "$compile_rpath " in
               *" $absdir "*) ;;                *" $absdir "*) ;;
              *) compile_rpath="$compile_rpath $absdir"              *) func_append compile_rpath " $absdir" ;;
               esac                esac
               ;;                ;;
             esac              esac
Line 5607  func_mode_link () Line 8284  func_mode_link ()
             *)              *)
               case "$finalize_rpath " in                case "$finalize_rpath " in
               *" $libdir "*) ;;                *" $libdir "*) ;;
              *) finalize_rpath="$finalize_rpath $libdir"              *) func_append finalize_rpath " $libdir" ;;
               esac                esac
               ;;                ;;
             esac              esac
Line 5617  func_mode_link () Line 8294  func_mode_link ()
             # figure out the soname              # figure out the soname
             set dummy $library_names              set dummy $library_names
             shift              shift
            realname="$1"            realname=$1
             shift              shift
             libname=`eval "\\$ECHO \"$libname_spec\""`              libname=`eval "\\$ECHO \"$libname_spec\""`
             # use dlname if we got it. it's perfectly good, no?              # use dlname if we got it. it's perfectly good, no?
             if test -n "$dlname"; then              if test -n "$dlname"; then
              soname="$dlname"              soname=$dlname
             elif test -n "$soname_spec"; then              elif test -n "$soname_spec"; then
               # bleh windows                # bleh windows
               case $host in                case $host in
              *cygwin* | mingw* | *cegcc*)              *cygwin* | mingw* | *cegcc* | *os2*)
                 func_arith $current - $age                  func_arith $current - $age
                 major=$func_arith_result                  major=$func_arith_result
                versuffix="-$major"                versuffix=-$major
                 ;;                  ;;
               esac                esac
               eval soname=\"$soname_spec\"                eval soname=\"$soname_spec\"
             else              else
              soname="$realname"              soname=$realname
             fi              fi
   
             # Make a new name for the extract_expsyms_cmds to use              # Make a new name for the extract_expsyms_cmds to use
            soroot="$soname"            soroot=$soname
             func_basename "$soroot"              func_basename "$soroot"
            soname="$func_basename_result"            soname=$func_basename_result
             func_stripname 'lib' '.dll' "$soname"              func_stripname 'lib' '.dll' "$soname"
             newlib=libimp-$func_stripname_result.a              newlib=libimp-$func_stripname_result.a
   
             # If the library has no export list, then create one now              # If the library has no export list, then create one now
             if test -f "$output_objdir/$soname-def"; then :              if test -f "$output_objdir/$soname-def"; then :
             else              else
              func_verbose "extracting exported symbol list from \`$soname'"              func_verbose "extracting exported symbol list from '$soname'"
               func_execute_cmds "$extract_expsyms_cmds" 'exit $?'                func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
             fi              fi
   
             # Create $newlib              # Create $newlib
             if test -f "$output_objdir/$newlib"; then :; else              if test -f "$output_objdir/$newlib"; then :; else
              func_verbose "generating import library for \`$soname'"              func_verbose "generating import library for '$soname'"
               func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'                func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
             fi              fi
             # make sure the library variables are pointing to the new library              # make sure the library variables are pointing to the new library
Line 5661  func_mode_link () Line 8338  func_mode_link ()
             linklib=$newlib              linklib=$newlib
           fi # test -n "$old_archive_from_expsyms_cmds"            fi # test -n "$old_archive_from_expsyms_cmds"
   
          if test "$linkmode" = prog || test "$mode" != relink; then          if test prog = "$linkmode" || test relink != "$opt_mode"; then
             add_shlibpath=              add_shlibpath=
             add_dir=              add_dir=
             add=              add=
             lib_linked=yes              lib_linked=yes
             case $hardcode_action in              case $hardcode_action in
             immediate | unsupported)              immediate | unsupported)
              if test "$hardcode_direct" = no; then              if test no = "$hardcode_direct"; then
                add="$dir/$linklib"                add=$dir/$linklib
                 case $host in                  case $host in
                  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;                  *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
                  *-*-sysv4*uw2*) add_dir="-L$dir" ;;                  *-*-sysv4*uw2*) add_dir=-L$dir ;;
                   *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \                    *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
                    *-*-unixware7*) add_dir="-L$dir" ;;                    *-*-unixware7*) add_dir=-L$dir ;;
                   *-*-darwin* )                    *-*-darwin* )
                    # if the lib is a (non-dlopened) module then we can not                    # if the lib is a (non-dlopened) module then we cannot
                     # link against it, someone is ignoring the earlier warnings                      # link against it, someone is ignoring the earlier warnings
                     if /usr/bin/file -L $add 2> /dev/null |                      if /usr/bin/file -L $add 2> /dev/null |
                         $GREP ": [^:]* bundle" >/dev/null ; then                         $GREP ": [^:]* bundle" >/dev/null; then
                       if test "X$dlopenmodule" != "X$lib"; then                        if test "X$dlopenmodule" != "X$lib"; then
                         $ECHO "*** Warning: lib $linklib is a module, not a shared library"                          $ECHO "*** Warning: lib $linklib is a module, not a shared library"
                        if test -z "$old_library" ; then                        if test -z "$old_library"; then
                          $ECHO                          echo
                          $ECHO "*** And there doesn't seem to be a static archive available"                          echo "*** And there doesn't seem to be a static archive available"
                          $ECHO "*** The link will probably fail, sorry"                          echo "*** The link will probably fail, sorry"
                         else                          else
                          add="$dir/$old_library"                          add=$dir/$old_library
                         fi                          fi
                       elif test -n "$old_library"; then                        elif test -n "$old_library"; then
                        add="$dir/$old_library"                        add=$dir/$old_library
                       fi                        fi
                     fi                      fi
                 esac                  esac
              elif test "$hardcode_minus_L" = no; then              elif test no = "$hardcode_minus_L"; then
                 case $host in                  case $host in
                *-*-sunos*) add_shlibpath="$dir" ;;                *-*-sunos*) add_shlibpath=$dir ;;
                 esac                  esac
                add_dir="-L$dir"                add_dir=-L$dir
                add="-l$name"                add=-l$name
              elif test "$hardcode_shlibpath_var" = no; then              elif test no = "$hardcode_shlibpath_var"; then
                add_shlibpath="$dir"                add_shlibpath=$dir
                add="-l$name"                add=-l$name
               else                else
                 lib_linked=no                  lib_linked=no
               fi                fi
               ;;                ;;
             relink)              relink)
              if test "$hardcode_direct" = yes &&              if test yes = "$hardcode_direct" &&
                 test "$hardcode_direct_absolute" = no; then                 test no = "$hardcode_direct_absolute"; then
                add="$dir/$linklib"                add=$dir/$linklib
              elif test "$hardcode_minus_L" = yes; then              elif test yes = "$hardcode_minus_L"; then
                add_dir="-L$dir"                add_dir=-L$absdir
                 # Try looking first in the location we're being installed to.                  # Try looking first in the location we're being installed to.
                 if test -n "$inst_prefix_dir"; then                  if test -n "$inst_prefix_dir"; then
                   case $libdir in                    case $libdir in
                     [\\/]*)                      [\\/]*)
                      add_dir="$add_dir -L$inst_prefix_dir$libdir"                      func_append add_dir " -L$inst_prefix_dir$libdir"
                       ;;                        ;;
                   esac                    esac
                 fi                  fi
                add="-l$name"                add=-l$name
              elif test "$hardcode_shlibpath_var" = yes; then              elif test yes = "$hardcode_shlibpath_var"; then
                add_shlibpath="$dir"                add_shlibpath=$dir
                add="-l$name"                add=-l$name
               else                else
                 lib_linked=no                  lib_linked=no
               fi                fi
Line 5732  func_mode_link () Line 8409  func_mode_link ()
             *) lib_linked=no ;;              *) lib_linked=no ;;
             esac              esac
   
            if test "$lib_linked" != yes; then            if test yes != "$lib_linked"; then
               func_fatal_configuration "unsupported hardcode properties"                func_fatal_configuration "unsupported hardcode properties"
             fi              fi
   
             if test -n "$add_shlibpath"; then              if test -n "$add_shlibpath"; then
               case :$compile_shlibpath: in                case :$compile_shlibpath: in
               *":$add_shlibpath:"*) ;;                *":$add_shlibpath:"*) ;;
              *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;              *) func_append compile_shlibpath "$add_shlibpath:" ;;
               esac                esac
             fi              fi
            if test "$linkmode" = prog; then            if test prog = "$linkmode"; then
               test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"                test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
               test -n "$add" && compile_deplibs="$add $compile_deplibs"                test -n "$add" && compile_deplibs="$add $compile_deplibs"
             else              else
               test -n "$add_dir" && deplibs="$add_dir $deplibs"                test -n "$add_dir" && deplibs="$add_dir $deplibs"
               test -n "$add" && deplibs="$add $deplibs"                test -n "$add" && deplibs="$add $deplibs"
              if test "$hardcode_direct" != yes &&              if test yes != "$hardcode_direct" &&
                 test "$hardcode_minus_L" != yes &&                 test yes != "$hardcode_minus_L" &&
                 test "$hardcode_shlibpath_var" = yes; then                 test yes = "$hardcode_shlibpath_var"; then
                 case :$finalize_shlibpath: in                  case :$finalize_shlibpath: in
                 *":$libdir:"*) ;;                  *":$libdir:"*) ;;
                *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;                *) func_append finalize_shlibpath "$libdir:" ;;
                 esac                  esac
               fi                fi
             fi              fi
           fi            fi
   
          if test "$linkmode" = prog || test "$mode" = relink; then          if test prog = "$linkmode" || test relink = "$opt_mode"; then
             add_shlibpath=              add_shlibpath=
             add_dir=              add_dir=
             add=              add=
             # Finalize command for both is simple: just hardcode it.              # Finalize command for both is simple: just hardcode it.
            if test "$hardcode_direct" = yes &&            if test yes = "$hardcode_direct" &&
               test "$hardcode_direct_absolute" = no; then               test no = "$hardcode_direct_absolute"; then
              add="$libdir/$linklib"              add=$libdir/$linklib
            elif test "$hardcode_minus_L" = yes; then            elif test yes = "$hardcode_minus_L"; then
              add_dir="-L$libdir"              add_dir=-L$libdir
              add="-l$name"              add=-l$name
            elif test "$hardcode_shlibpath_var" = yes; then            elif test yes = "$hardcode_shlibpath_var"; then
               case :$finalize_shlibpath: in                case :$finalize_shlibpath: in
               *":$libdir:"*) ;;                *":$libdir:"*) ;;
              *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;              *) func_append finalize_shlibpath "$libdir:" ;;
               esac                esac
              add="-l$name"              add=-l$name
            elif test "$hardcode_automatic" = yes; then            elif test yes = "$hardcode_automatic"; then
               if test -n "$inst_prefix_dir" &&                if test -n "$inst_prefix_dir" &&
                 test -f "$inst_prefix_dir$libdir/$linklib" ; then                 test -f "$inst_prefix_dir$libdir/$linklib"; then
                add="$inst_prefix_dir$libdir/$linklib"                add=$inst_prefix_dir$libdir/$linklib
               else                else
                add="$libdir/$linklib"                add=$libdir/$linklib
               fi                fi
             else              else
               # We cannot seem to hardcode it, guess we'll fake it.                # We cannot seem to hardcode it, guess we'll fake it.
              add_dir="-L$libdir"              add_dir=-L$libdir
               # Try looking first in the location we're being installed to.                # Try looking first in the location we're being installed to.
               if test -n "$inst_prefix_dir"; then                if test -n "$inst_prefix_dir"; then
                 case $libdir in                  case $libdir in
                   [\\/]*)                    [\\/]*)
                    add_dir="$add_dir -L$inst_prefix_dir$libdir"                    func_append add_dir " -L$inst_prefix_dir$libdir"
                     ;;                      ;;
                 esac                  esac
               fi                fi
              add="-l$name"              add=-l$name
             fi              fi
   
            if test "$linkmode" = prog; then            if test prog = "$linkmode"; then
               test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"                test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
               test -n "$add" && finalize_deplibs="$add $finalize_deplibs"                test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
             else              else
Line 5805  func_mode_link () Line 8482  func_mode_link ()
               test -n "$add" && deplibs="$add $deplibs"                test -n "$add" && deplibs="$add $deplibs"
             fi              fi
           fi            fi
        elif test "$linkmode" = prog; then        elif test prog = "$linkmode"; then
           # Here we assume that one of hardcode_direct or hardcode_minus_L            # Here we assume that one of hardcode_direct or hardcode_minus_L
           # is not unsupported.  This is valid on all known static and            # is not unsupported.  This is valid on all known static and
           # shared platforms.            # shared platforms.
          if test "$hardcode_direct" != unsupported; then          if test unsupported != "$hardcode_direct"; then
            test -n "$old_library" && linklib="$old_library"            test -n "$old_library" && linklib=$old_library
             compile_deplibs="$dir/$linklib $compile_deplibs"              compile_deplibs="$dir/$linklib $compile_deplibs"
             finalize_deplibs="$dir/$linklib $finalize_deplibs"              finalize_deplibs="$dir/$linklib $finalize_deplibs"
           else            else
             compile_deplibs="-l$name -L$dir $compile_deplibs"              compile_deplibs="-l$name -L$dir $compile_deplibs"
             finalize_deplibs="-l$name -L$dir $finalize_deplibs"              finalize_deplibs="-l$name -L$dir $finalize_deplibs"
           fi            fi
        elif test "$build_libtool_libs" = yes; then        elif test yes = "$build_libtool_libs"; then
           # Not a shared library            # Not a shared library
          if test "$deplibs_check_method" != pass_all; then          if test pass_all != "$deplibs_check_method"; then
             # We're trying link a shared library against a static one              # We're trying link a shared library against a static one
             # but the system doesn't support it.              # but the system doesn't support it.
   
             # Just print a warning and add the library to dependency_libs so              # Just print a warning and add the library to dependency_libs so
             # that the program can be linked against the static library.              # that the program can be linked against the static library.
            $ECHO            echo
            $ECHO "*** Warning: This system can not link to static lib archive $lib."            $ECHO "*** Warning: This system cannot link to static lib archive $lib."
            $ECHO "*** I have the capability to make that library automatically link in when"            echo "*** I have the capability to make that library automatically link in when"
            $ECHO "*** you link to this library.  But I can only do this if you have a"            echo "*** you link to this library.  But I can only do this if you have a"
            $ECHO "*** shared version of the library, which you do not appear to have."            echo "*** shared version of the library, which you do not appear to have."
            if test "$module" = yes; then            if test yes = "$module"; then
              $ECHO "*** But as you try to build a module library, libtool will still create "              echo "*** But as you try to build a module library, libtool will still create "
              $ECHO "*** a static module, that should work as long as the dlopening application"              echo "*** a static module, that should work as long as the dlopening application"
              $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
               if test -z "$global_symbol_pipe"; then                if test -z "$global_symbol_pipe"; then
                $ECHO                echo
                $ECHO "*** However, this would only work if libtool was able to extract symbol"                echo "*** However, this would only work if libtool was able to extract symbol"
                $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"                echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
                $ECHO "*** not find such a program.  So, this module is probably useless."                echo "*** not find such a program.  So, this module is probably useless."
                $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."                echo "*** 'nm' from GNU binutils and a full rebuild may help."
               fi                fi
              if test "$build_old_libs" = no; then              if test no = "$build_old_libs"; then
                 build_libtool_libs=module                  build_libtool_libs=module
                 build_old_libs=yes                  build_old_libs=yes
               else                else
Line 5854  func_mode_link () Line 8531  func_mode_link ()
           fi            fi
         fi # link shared/static library?          fi # link shared/static library?
   
        if test "$linkmode" = lib; then        if test lib = "$linkmode"; then
           if test -n "$dependency_libs" &&            if test -n "$dependency_libs" &&
             { test "$hardcode_into_libs" != yes ||             { test yes != "$hardcode_into_libs" ||
               test "$build_old_libs" = yes ||               test yes = "$build_old_libs" ||
               test "$link_static" = yes; }; then               test yes = "$link_static"; }; then
             # Extract -R from dependency_libs              # Extract -R from dependency_libs
             temp_deplibs=              temp_deplibs=
             for libdir in $dependency_libs; do              for libdir in $dependency_libs; do
Line 5867  func_mode_link () Line 8544  func_mode_link ()
                    temp_xrpath=$func_stripname_result                     temp_xrpath=$func_stripname_result
                    case " $xrpath " in                     case " $xrpath " in
                    *" $temp_xrpath "*) ;;                     *" $temp_xrpath "*) ;;
                   *) xrpath="$xrpath $temp_xrpath";;                   *) func_append xrpath " $temp_xrpath";;
                    esac;;                     esac;;
              *) temp_deplibs="$temp_deplibs $libdir";;              *) func_append temp_deplibs " $libdir";;
               esac                esac
             done              done
            dependency_libs="$temp_deplibs"            dependency_libs=$temp_deplibs
           fi            fi
   
          newlib_search_path="$newlib_search_path $absdir"          func_append newlib_search_path " $absdir"
           # Link against this library            # Link against this library
          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"          test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
           # ... and its dependency_libs            # ... and its dependency_libs
           tmp_libs=            tmp_libs=
           for deplib in $dependency_libs; do            for deplib in $dependency_libs; do
             newdependency_libs="$deplib $newdependency_libs"              newdependency_libs="$deplib $newdependency_libs"
            if $opt_duplicate_deps ; then            case $deplib in
               -L*) func_stripname '-L' '' "$deplib"
                    func_resolve_sysroot "$func_stripname_result";;
               *) func_resolve_sysroot "$deplib" ;;
             esac
             if $opt_preserve_dup_deps; then
               case "$tmp_libs " in                case "$tmp_libs " in
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;              *" $func_resolve_sysroot_result "*)
                 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
               esac                esac
             fi              fi
            tmp_libs="$tmp_libs $deplib"            func_append tmp_libs " $func_resolve_sysroot_result"
           done            done
   
          if test "$link_all_deplibs" != no; then          if test no != "$link_all_deplibs"; then
             # Add the search paths of all dependency libraries              # Add the search paths of all dependency libraries
             for deplib in $dependency_libs; do              for deplib in $dependency_libs; do
                 path=
               case $deplib in                case $deplib in
              -L*) path="$deplib" ;;              -L*) path=$deplib ;;
               *.la)                *.la)
                   func_resolve_sysroot "$deplib"
                   deplib=$func_resolve_sysroot_result
                 func_dirname "$deplib" "" "."                  func_dirname "$deplib" "" "."
                dir="$func_dirname_result"                dir=$func_dirname_result
                 # We need an absolute path.                  # We need an absolute path.
                 case $dir in                  case $dir in
                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;                [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
                 *)                  *)
                   absdir=`cd "$dir" && pwd`                    absdir=`cd "$dir" && pwd`
                   if test -z "$absdir"; then                    if test -z "$absdir"; then
                    func_warning "cannot determine absolute directory name of \`$dir'"                    func_warning "cannot determine absolute directory name of '$dir'"
                    absdir="$dir"                    absdir=$dir
                   fi                    fi
                   ;;                    ;;
                 esac                  esac
Line 5913  func_mode_link () Line 8599  func_mode_link ()
                 case $host in                  case $host in
                 *-*-darwin*)                  *-*-darwin*)
                   depdepl=                    depdepl=
                  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`                  eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
                  if test -n "$deplibrary_names" ; then                  if test -n "$deplibrary_names"; then
                    for tmp in $deplibrary_names ; do                    for tmp in $deplibrary_names; do
                       depdepl=$tmp                        depdepl=$tmp
                     done                      done
                    if test -f "$absdir/$objdir/$depdepl" ; then                    if test -f "$absdir/$objdir/$depdepl"; then
                      depdepl="$absdir/$objdir/$depdepl"                      depdepl=$absdir/$objdir/$depdepl
                      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`                      darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
                       if test -z "$darwin_install_name"; then                        if test -z "$darwin_install_name"; then
                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`                          darwin_install_name=`$OTOOL64 -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi                        fi
                      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"                      func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
                      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"                      func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
                       path=                        path=
                     fi                      fi
                   fi                    fi
                   ;;                    ;;
                 *)                  *)
                  path="-L$absdir/$objdir"                  path=-L$absdir/$objdir
                   ;;                    ;;
                 esac                  esac
                 else                  else
                  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`                  eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                   test -z "$libdir" && \                    test -z "$libdir" && \
                    func_fatal_error "\`$deplib' is not a valid libtool archive"                    func_fatal_error "'$deplib' is not a valid libtool archive"
                   test "$absdir" != "$libdir" && \                    test "$absdir" != "$libdir" && \
                    func_warning "\`$deplib' seems to be moved"                    func_warning "'$deplib' seems to be moved"
   
                  path="-L$absdir"                  path=-L$absdir
                 fi                  fi
                 ;;                  ;;
               esac                esac
Line 5953  func_mode_link () Line 8639  func_mode_link ()
           fi # link_all_deplibs != no            fi # link_all_deplibs != no
         fi # linkmode = lib          fi # linkmode = lib
       done # for deplib in $libs        done # for deplib in $libs
      if test "$pass" = link; then      if test link = "$pass"; then
        if test "$linkmode" = "prog"; then        if test prog = "$linkmode"; then
           compile_deplibs="$new_inherited_linker_flags $compile_deplibs"            compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
           finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"            finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
         else          else
          compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`          compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
         fi          fi
       fi        fi
      dependency_libs="$newdependency_libs"      dependency_libs=$newdependency_libs
      if test "$pass" = dlpreopen; then      if test dlpreopen = "$pass"; then
         # Link the dlpreopened libraries before other libraries          # Link the dlpreopened libraries before other libraries
         for deplib in $save_deplibs; do          for deplib in $save_deplibs; do
           deplibs="$deplib $deplibs"            deplibs="$deplib $deplibs"
         done          done
       fi        fi
      if test "$pass" != dlopen; then      if test dlopen != "$pass"; then
        if test "$pass" != conv; then        test conv = "$pass" || {
           # Make sure lib_search_path contains only unique directories.            # Make sure lib_search_path contains only unique directories.
           lib_search_path=            lib_search_path=
           for dir in $newlib_search_path; do            for dir in $newlib_search_path; do
             case "$lib_search_path " in              case "$lib_search_path " in
             *" $dir "*) ;;              *" $dir "*) ;;
            *) lib_search_path="$lib_search_path $dir" ;;            *) func_append lib_search_path " $dir" ;;
             esac              esac
           done            done
           newlib_search_path=            newlib_search_path=
        fi        }
   
        if test "$linkmode,$pass" != "prog,link"; then        if test prog,link = "$linkmode,$pass"; then
          vars="deplibs" 
        else 
           vars="compile_deplibs finalize_deplibs"            vars="compile_deplibs finalize_deplibs"
           else
             vars=deplibs
         fi          fi
         for var in $vars dependency_libs; do          for var in $vars dependency_libs; do
           # Add libraries to $var in reverse order            # Add libraries to $var in reverse order
Line 6033  func_mode_link () Line 8719  func_mode_link ()
             -L*)              -L*)
               case " $tmp_libs " in                case " $tmp_libs " in
               *" $deplib "*) ;;                *" $deplib "*) ;;
              *) tmp_libs="$tmp_libs $deplib" ;;              *) func_append tmp_libs " $deplib" ;;
               esac                esac
               ;;                ;;
            *) tmp_libs="$tmp_libs $deplib" ;;            *) func_append tmp_libs " $deplib" ;;
             esac              esac
           done            done
           eval $var=\"$tmp_libs\"            eval $var=\"$tmp_libs\"
         done # for var          done # for var
       fi        fi
   
         # Add Sun CC postdeps if required:
         test CXX = "$tagname" && {
           case $host_os in
           linux*)
             case `$CC -V 2>&1 | sed 5q` in
             *Sun\ C*) # Sun C++ 5.9
               func_suncc_cstd_abi
   
               if test no != "$suncc_use_cstd_abi"; then
                 func_append postdeps ' -library=Cstd -library=Crun'
               fi
               ;;
             esac
             ;;
   
           solaris*)
             func_cc_basename "$CC"
             case $func_cc_basename_result in
             CC* | sunCC*)
               func_suncc_cstd_abi
   
               if test no != "$suncc_use_cstd_abi"; then
                 func_append postdeps ' -library=Cstd -library=Crun'
               fi
               ;;
             esac
             ;;
           esac
         }
   
       # Last step: remove runtime libs from dependency_libs        # Last step: remove runtime libs from dependency_libs
       # (they stay in deplibs)        # (they stay in deplibs)
       tmp_libs=        tmp_libs=
      for i in $dependency_libs ; do      for i in $dependency_libs; do
         case " $predeps $postdeps $compiler_lib_search_path " in          case " $predeps $postdeps $compiler_lib_search_path " in
         *" $i "*)          *" $i "*)
          i=""          i=
           ;;            ;;
         esac          esac
        if test -n "$i" ; then        if test -n "$i"; then
          tmp_libs="$tmp_libs $i"          func_append tmp_libs " $i"
         fi          fi
       done        done
       dependency_libs=$tmp_libs        dependency_libs=$tmp_libs
     done # for pass      done # for pass
    if test "$linkmode" = prog; then    if test prog = "$linkmode"; then
      dlfiles="$newdlfiles"      dlfiles=$newdlfiles
     fi      fi
    if test "$linkmode" = prog || test "$linkmode" = lib; then    if test prog = "$linkmode" || test lib = "$linkmode"; then
      dlprefiles="$newdlprefiles"      dlprefiles=$newdlprefiles
     fi      fi
   
     case $linkmode in      case $linkmode in
     oldlib)      oldlib)
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
        func_warning "\`-dlopen' is ignored for archives"        func_warning "'-dlopen' is ignored for archives"
       fi        fi
   
       case " $deplibs" in        case " $deplibs" in
       *\ -l* | *\ -L*)        *\ -l* | *\ -L*)
        func_warning "\`-l' and \`-L' are ignored for archives" ;;        func_warning "'-l' and '-L' are ignored for archives" ;;
       esac        esac
   
       test -n "$rpath" && \        test -n "$rpath" && \
        func_warning "\`-rpath' is ignored for archives"        func_warning "'-rpath' is ignored for archives"
   
       test -n "$xrpath" && \        test -n "$xrpath" && \
        func_warning "\`-R' is ignored for archives"        func_warning "'-R' is ignored for archives"
   
       test -n "$vinfo" && \        test -n "$vinfo" && \
        func_warning "\`-version-info/-version-number' is ignored for archives"        func_warning "'-version-info/-version-number' is ignored for archives"
   
       test -n "$release" && \        test -n "$release" && \
        func_warning "\`-release' is ignored for archives"        func_warning "'-release' is ignored for archives"
   
       test -n "$export_symbols$export_symbols_regex" && \        test -n "$export_symbols$export_symbols_regex" && \
        func_warning "\`-export-symbols' is ignored for archives"        func_warning "'-export-symbols' is ignored for archives"
   
       # Now set the variables for building old libraries.        # Now set the variables for building old libraries.
       build_libtool_libs=no        build_libtool_libs=no
      oldlibs="$output"      oldlibs=$output
      objs="$objs$old_deplibs"      func_append objs "$old_deplibs"
       ;;        ;;
   
     lib)      lib)
      # Make sure we only generate libraries of the form `libNAME.la'.      # Make sure we only generate libraries of the form 'libNAME.la'.
       case $outputname in        case $outputname in
       lib*)        lib*)
         func_stripname 'lib' '.la' "$outputname"          func_stripname 'lib' '.la' "$outputname"
Line 6106  func_mode_link () Line 8823  func_mode_link ()
         eval libname=\"$libname_spec\"          eval libname=\"$libname_spec\"
         ;;          ;;
       *)        *)
        test "$module" = no && \        test no = "$module" \
          func_fatal_help "libtool library \`$output' must begin with \`lib'"          && func_fatal_help "libtool library '$output' must begin with 'lib'"
   
        if test "$need_lib_prefix" != no; then        if test no != "$need_lib_prefix"; then
           # Add the "lib" prefix for modules if required            # Add the "lib" prefix for modules if required
           func_stripname '' '.la' "$outputname"            func_stripname '' '.la' "$outputname"
           name=$func_stripname_result            name=$func_stripname_result
Line 6123  func_mode_link () Line 8840  func_mode_link ()
       esac        esac
   
       if test -n "$objs"; then        if test -n "$objs"; then
        if test "$deplibs_check_method" != pass_all; then        if test pass_all != "$deplibs_check_method"; then
          func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"          func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
         else          else
          $ECHO          echo
           $ECHO "*** Warning: Linking the shared library $output against the non-libtool"            $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
           $ECHO "*** objects $objs is not portable!"            $ECHO "*** objects $objs is not portable!"
          libobjs="$libobjs $objs"          func_append libobjs " $objs"
         fi          fi
       fi        fi
   
      test "$dlself" != no && \      test no = "$dlself" \
        func_warning "\`-dlopen self' is ignored for libtool libraries"        || func_warning "'-dlopen self' is ignored for libtool libraries"
   
       set dummy $rpath        set dummy $rpath
       shift        shift
      test "$#" -gt 1 && \      test 1 -lt "$#" \
        func_warning "ignoring multiple \`-rpath's for a libtool library"        && func_warning "ignoring multiple '-rpath's for a libtool library"
   
      install_libdir="$1"      install_libdir=$1
   
       oldlibs=        oldlibs=
       if test -z "$rpath"; then        if test -z "$rpath"; then
        if test "$build_libtool_libs" = yes; then        if test yes = "$build_libtool_libs"; then
           # Building a libtool convenience library.            # Building a libtool convenience library.
          # Some compilers have problems with a `.al' extension so          # Some compilers have problems with a '.al' extension so
           # convenience libraries should have the same extension an            # convenience libraries should have the same extension an
           # archive normally would.            # archive normally would.
           oldlibs="$output_objdir/$libname.$libext $oldlibs"            oldlibs="$output_objdir/$libname.$libext $oldlibs"
Line 6156  func_mode_link () Line 8873  func_mode_link ()
         fi          fi
   
         test -n "$vinfo" && \          test -n "$vinfo" && \
          func_warning "\`-version-info/-version-number' is ignored for convenience libraries"          func_warning "'-version-info/-version-number' is ignored for convenience libraries"
   
         test -n "$release" && \          test -n "$release" && \
          func_warning "\`-release' is ignored for convenience libraries"          func_warning "'-release' is ignored for convenience libraries"
       else        else
   
         # Parse the version information argument.          # Parse the version information argument.
        save_ifs="$IFS"; IFS=':'        save_ifs=$IFS; IFS=:
         set dummy $vinfo 0 0 0          set dummy $vinfo 0 0 0
         shift          shift
        IFS="$save_ifs"        IFS=$save_ifs
   
         test -n "$7" && \          test -n "$7" && \
          func_fatal_help "too many parameters to \`-version-info'"          func_fatal_help "too many parameters to '-version-info'"
   
         # convert absolute version numbers to libtool ages          # convert absolute version numbers to libtool ages
         # this retains compatibility with .la files and attempts          # this retains compatibility with .la files and attempts
Line 6177  func_mode_link () Line 8894  func_mode_link ()
   
         case $vinfo_number in          case $vinfo_number in
         yes)          yes)
          number_major="$1"          number_major=$1
          number_minor="$2"          number_minor=$2
          number_revision="$3"          number_revision=$3
           #            #
           # There are really only two kinds -- those that            # There are really only two kinds -- those that
           # use the current revision as the major version            # use the current revision as the major version
           # and those that subtract age and use age as            # and those that subtract age and use age as
           # a minor version.  But, then there is irix            # a minor version.  But, then there is irix
          # which has an extra 1 added just for fun          # that has an extra 1 added just for fun
           #            #
           case $version_type in            case $version_type in
          darwin|linux|osf|windows|none)          # correct linux to gnu/linux during the next big refactor
           darwin|freebsd-elf|linux|osf|windows|none)
             func_arith $number_major + $number_minor              func_arith $number_major + $number_minor
             current=$func_arith_result              current=$func_arith_result
            age="$number_minor"            age=$number_minor
            revision="$number_revision"            revision=$number_revision
             ;;              ;;
          freebsd-aout|freebsd-elf|sunos)          freebsd-aout|qnx|sunos)
            current="$number_major"            current=$number_major
            revision="$number_minor"            revision=$number_minor
            age="0"            age=0
             ;;              ;;
           irix|nonstopux)            irix|nonstopux)
             func_arith $number_major + $number_minor              func_arith $number_major + $number_minor
             current=$func_arith_result              current=$func_arith_result
            age="$number_minor"            age=$number_minor
            revision="$number_minor"            revision=$number_minor
             lt_irix_increment=no              lt_irix_increment=no
             ;;              ;;
             *)
               func_fatal_configuration "$modename: unknown library version type '$version_type'"
               ;;
           esac            esac
           ;;            ;;
         no)          no)
          current="$1"          current=$1
          revision="$2"          revision=$2
          age="$3"          age=$3
           ;;            ;;
         esac          esac
   
Line 6219  func_mode_link () Line 8940  func_mode_link ()
         case $current in          case $current in
         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]) ;;          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]) ;;
         *)          *)
          func_error "CURRENT \`$current' must be a nonnegative integer"          func_error "CURRENT '$current' must be a nonnegative integer"
          func_fatal_error "\`$vinfo' is not valid version information"          func_fatal_error "'$vinfo' is not valid version information"
           ;;            ;;
         esac          esac
   
         case $revision in          case $revision in
         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]) ;;          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]) ;;
         *)          *)
          func_error "REVISION \`$revision' must be a nonnegative integer"          func_error "REVISION '$revision' must be a nonnegative integer"
          func_fatal_error "\`$vinfo' is not valid version information"          func_fatal_error "'$vinfo' is not valid version information"
           ;;            ;;
         esac          esac
   
         case $age in          case $age in
         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]) ;;          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]) ;;
         *)          *)
          func_error "AGE \`$age' must be a nonnegative integer"          func_error "AGE '$age' must be a nonnegative integer"
          func_fatal_error "\`$vinfo' is not valid version information"          func_fatal_error "'$vinfo' is not valid version information"
           ;;            ;;
         esac          esac
   
         if test "$age" -gt "$current"; then          if test "$age" -gt "$current"; then
          func_error "AGE \`$age' is greater than the current interface number \`$current'"          func_error "AGE '$age' is greater than the current interface number '$current'"
          func_fatal_error "\`$vinfo' is not valid version information"          func_fatal_error "'$vinfo' is not valid version information"
         fi          fi
   
         # Calculate the version variables.          # Calculate the version variables.
Line 6257  func_mode_link () Line 8978  func_mode_link ()
           # verstring for coding it into the library header            # verstring for coding it into the library header
           func_arith $current - $age            func_arith $current - $age
           major=.$func_arith_result            major=.$func_arith_result
          versuffix="$major.$age.$revision"          versuffix=$major.$age.$revision
           # Darwin ld doesn't like 0 for these options...            # Darwin ld doesn't like 0 for these options...
           func_arith $current + 1            func_arith $current + 1
           minor_current=$func_arith_result            minor_current=$func_arith_result
          xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"          xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
           verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"            verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
             # On Darwin other compilers
             case $CC in
                 nagfor*)
                     verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
                     ;;
                 *)
                     verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
                     ;;
             esac
           ;;            ;;
   
         freebsd-aout)          freebsd-aout)
          major=".$current"          major=.$current
          versuffix=".$current.$revision";          versuffix=.$current.$revision
           ;;            ;;
   
         freebsd-elf)          freebsd-elf)
          major=".$current"          func_arith $current - $age
          versuffix=".$current"          major=.$func_arith_result
           versuffix=$major.$age.$revision
           ;;            ;;
   
         irix | nonstopux)          irix | nonstopux)
          if test "X$lt_irix_increment" = "Xno"; then          if test no = "$lt_irix_increment"; then
             func_arith $current - $age              func_arith $current - $age
           else            else
             func_arith $current - $age + 1              func_arith $current - $age + 1
Line 6287  func_mode_link () Line 9018  func_mode_link ()
             nonstopux) verstring_prefix=nonstopux ;;              nonstopux) verstring_prefix=nonstopux ;;
             *)         verstring_prefix=sgi ;;              *)         verstring_prefix=sgi ;;
           esac            esac
          verstring="$verstring_prefix$major.$revision"          verstring=$verstring_prefix$major.$revision
   
           # Add in all the interfaces that we are compatible with.            # Add in all the interfaces that we are compatible with.
           loop=$revision            loop=$revision
          while test "$loop" -ne 0; do          while test 0 -ne "$loop"; do
             func_arith $revision - $loop              func_arith $revision - $loop
             iface=$func_arith_result              iface=$func_arith_result
             func_arith $loop - 1              func_arith $loop - 1
             loop=$func_arith_result              loop=$func_arith_result
            verstring="$verstring_prefix$major.$iface:$verstring"            verstring=$verstring_prefix$major.$iface:$verstring
           done            done
   
          # Before this point, $major must not contain `.'.          # Before this point, $major must not contain '.'.
           major=.$major            major=.$major
          versuffix="$major.$revision"          versuffix=$major.$revision
           ;;            ;;
   
        linux)        linux) # correct to gnu/linux during the next big refactor
           func_arith $current - $age            func_arith $current - $age
           major=.$func_arith_result            major=.$func_arith_result
          versuffix="$major.$age.$revision"          versuffix=$major.$age.$revision
           ;;            ;;
   
         osf)          osf)
           func_arith $current - $age            func_arith $current - $age
           major=.$func_arith_result            major=.$func_arith_result
          versuffix=".$current.$age.$revision"          versuffix=.$current.$age.$revision
          verstring="$current.$age.$revision"          verstring=$current.$age.$revision
   
           # Add in all the interfaces that we are compatible with.            # Add in all the interfaces that we are compatible with.
           loop=$age            loop=$age
          while test "$loop" -ne 0; do          while test 0 -ne "$loop"; do
             func_arith $current - $loop              func_arith $current - $loop
             iface=$func_arith_result              iface=$func_arith_result
             func_arith $loop - 1              func_arith $loop - 1
             loop=$func_arith_result              loop=$func_arith_result
            verstring="$verstring:${iface}.0"            verstring=$verstring:$iface.0
           done            done
   
           # Make executables depend on our current version.            # Make executables depend on our current version.
          verstring="$verstring:${current}.0"          func_append verstring ":$current.0"
           ;;            ;;
   
         qnx)          qnx)
          major=".$current"          major=.$current
          versuffix=".$current"          versuffix=.$current
           ;;            ;;
   
           sco)
             major=.$current
             versuffix=.$current
             ;;
   
         sunos)          sunos)
          major=".$current"          major=.$current
          versuffix=".$current.$revision"          versuffix=.$current.$revision
           ;;            ;;
   
         windows)          windows)
           # Use '-' rather than '.', since we only want one            # Use '-' rather than '.', since we only want one
          # extension on DOS 8.3 filesystems.          # extension on DOS 8.3 file systems.
           func_arith $current - $age            func_arith $current - $age
           major=$func_arith_result            major=$func_arith_result
          versuffix="-$major"          versuffix=-$major
           ;;            ;;
   
         *)          *)
          func_fatal_configuration "unknown library version type \`$version_type'"          func_fatal_configuration "unknown library version type '$version_type'"
           ;;            ;;
         esac          esac
   
Line 6363  func_mode_link () Line 9099  func_mode_link ()
             verstring=              verstring=
             ;;              ;;
           *)            *)
            verstring="0.0"            verstring=0.0
             ;;              ;;
           esac            esac
          if test "$need_version" = no; then          if test no = "$need_version"; then
             versuffix=              versuffix=
           else            else
            versuffix=".0.0"            versuffix=.0.0
           fi            fi
         fi          fi
   
         # Remove version info from name if versioning should be avoided          # Remove version info from name if versioning should be avoided
        if test "$avoid_version" = yes && test "$need_version" = no; then        if test yes,no = "$avoid_version,$need_version"; then
           major=            major=
           versuffix=            versuffix=
          verstring=""          verstring=
         fi          fi
   
         # Check to see if the archive will have undefined symbols.          # Check to see if the archive will have undefined symbols.
        if test "$allow_undefined" = yes; then        if test yes = "$allow_undefined"; then
          if test "$allow_undefined_flag" = unsupported; then          if test unsupported = "$allow_undefined_flag"; then
            func_warning "undefined symbols not allowed in $host shared libraries"            if test yes = "$build_old_libs"; then
            build_libtool_libs=no              func_warning "undefined symbols not allowed in $host shared libraries; building static only"
            build_old_libs=yes              build_libtool_libs=no
             else
               func_fatal_error "can't build $host shared library unless -no-undefined is specified"
             fi
           fi            fi
         else          else
           # Don't allow undefined symbols.            # Don't allow undefined symbols.
          allow_undefined_flag="$no_undefined_flag"          allow_undefined_flag=$no_undefined_flag
         fi          fi
   
       fi        fi
   
      func_generate_dlsyms "$libname" "$libname" "yes"      func_generate_dlsyms "$libname" "$libname" :
      libobjs="$libobjs $symfileobj"      func_append libobjs " $symfileobj"
      test "X$libobjs" = "X " && libobjs=      test " " = "$libobjs" && libobjs=
   
      if test "$mode" != relink; then      if test relink != "$opt_mode"; then
         # Remove our outputs, but don't remove object files since they          # Remove our outputs, but don't remove object files since they
         # may have been created when compiling PIC objects.          # may have been created when compiling PIC objects.
         removelist=          removelist=
Line 6407  func_mode_link () Line 9146  func_mode_link ()
           case $p in            case $p in
             *.$objext | *.gcno)              *.$objext | *.gcno)
                ;;                 ;;
            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
               if test "X$precious_files_regex" != "X"; then               if test -n "$precious_files_regex"; then
                  if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1                   if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
                  then                   then
                    continue                     continue
                  fi                   fi
                fi                 fi
               removelist="$removelist $p"               func_append removelist " $p"
                ;;                 ;;
             *) ;;              *) ;;
           esac            esac
Line 6424  func_mode_link () Line 9163  func_mode_link ()
       fi        fi
   
       # Now set the variables for building old libraries.        # Now set the variables for building old libraries.
      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then      if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
        oldlibs="$oldlibs $output_objdir/$libname.$libext"        func_append oldlibs " $output_objdir/$libname.$libext"
   
         # Transform .lo files to .o files.          # Transform .lo files to .o files.
        oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`        oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
       fi        fi
   
       # Eliminate all temporary directories.        # Eliminate all temporary directories.
       #for path in $notinst_path; do        #for path in $notinst_path; do
      # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`      # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
      # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`      # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
      # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`      # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
       #done        #done
   
       if test -n "$xrpath"; then        if test -n "$xrpath"; then
         # If the user specified any rpath flags, then add them.          # If the user specified any rpath flags, then add them.
         temp_xrpath=          temp_xrpath=
         for libdir in $xrpath; do          for libdir in $xrpath; do
          temp_xrpath="$temp_xrpath -R$libdir"          func_replace_sysroot "$libdir"
           func_append temp_xrpath " -R$func_replace_sysroot_result"
           case "$finalize_rpath " in            case "$finalize_rpath " in
           *" $libdir "*) ;;            *" $libdir "*) ;;
          *) finalize_rpath="$finalize_rpath $libdir" ;;          *) func_append finalize_rpath " $libdir" ;;
           esac            esac
         done          done
        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then        if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
           dependency_libs="$temp_xrpath $dependency_libs"            dependency_libs="$temp_xrpath $dependency_libs"
         fi          fi
       fi        fi
   
       # Make sure dlfiles contains only unique files that won't be dlpreopened        # Make sure dlfiles contains only unique files that won't be dlpreopened
      old_dlfiles="$dlfiles"      old_dlfiles=$dlfiles
       dlfiles=        dlfiles=
       for lib in $old_dlfiles; do        for lib in $old_dlfiles; do
         case " $dlprefiles $dlfiles " in          case " $dlprefiles $dlfiles " in
         *" $lib "*) ;;          *" $lib "*) ;;
        *) dlfiles="$dlfiles $lib" ;;        *) func_append dlfiles " $lib" ;;
         esac          esac
       done        done
   
       # Make sure dlprefiles contains only unique files        # Make sure dlprefiles contains only unique files
      old_dlprefiles="$dlprefiles"      old_dlprefiles=$dlprefiles
       dlprefiles=        dlprefiles=
       for lib in $old_dlprefiles; do        for lib in $old_dlprefiles; do
         case "$dlprefiles " in          case "$dlprefiles " in
         *" $lib "*) ;;          *" $lib "*) ;;
        *) dlprefiles="$dlprefiles $lib" ;;        *) func_append dlprefiles " $lib" ;;
         esac          esac
       done        done
   
      if test "$build_libtool_libs" = yes; then      if test yes = "$build_libtool_libs"; then
         if test -n "$rpath"; then          if test -n "$rpath"; then
           case $host in            case $host in
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
             # these systems don't actually have a c library (as such)!              # these systems don't actually have a c library (as such)!
             ;;              ;;
           *-*-rhapsody* | *-*-darwin1.[012])            *-*-rhapsody* | *-*-darwin1.[012])
             # Rhapsody C library is in the System framework              # Rhapsody C library is in the System framework
            deplibs="$deplibs System.ltframework"            func_append deplibs " System.ltframework"
             ;;              ;;
           *-*-netbsd*)            *-*-netbsd*)
             # Don't link with libc until the a.out ld.so is fixed.              # Don't link with libc until the a.out ld.so is fixed.
Line 6497  func_mode_link () Line 9237  func_mode_link ()
             ;;              ;;
           *)            *)
             # Add libc to deplibs on all other systems if necessary.              # Add libc to deplibs on all other systems if necessary.
            if test "$build_libtool_need_lc" = "yes"; then            if test yes = "$build_libtool_need_lc"; then
              deplibs="$deplibs -lc"              func_append deplibs " -lc"
             fi              fi
             ;;              ;;
           esac            esac
Line 6513  func_mode_link () Line 9253  func_mode_link ()
         # I'm not sure if I'm treating the release correctly.  I think          # I'm not sure if I'm treating the release correctly.  I think
         # release should show up in the -l (ie -lgmp5) so we don't want to          # release should show up in the -l (ie -lgmp5) so we don't want to
         # add it in twice.  Is that correct?          # add it in twice.  Is that correct?
        release=""        release=
        versuffix=""        versuffix=
        major=""        major=
         newdeplibs=          newdeplibs=
         droppeddeps=no          droppeddeps=no
         case $deplibs_check_method in          case $deplibs_check_method in
Line 6544  EOF Line 9284  EOF
               -l*)                -l*)
                 func_stripname -l '' "$i"                  func_stripname -l '' "$i"
                 name=$func_stripname_result                  name=$func_stripname_result
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then                if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                   case " $predeps $postdeps " in                    case " $predeps $postdeps " in
                   *" $i "*)                    *" $i "*)
                    newdeplibs="$newdeplibs $i"                    func_append newdeplibs " $i"
                    i=""                    i=
                     ;;                      ;;
                   esac                    esac
                 fi                  fi
                if test -n "$i" ; then                if test -n "$i"; then
                   libname=`eval "\\$ECHO \"$libname_spec\""`                    libname=`eval "\\$ECHO \"$libname_spec\""`
                   deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`                    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
                   set dummy $deplib_matches; shift                    set dummy $deplib_matches; shift
                   deplib_match=$1                    deplib_match=$1
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
                    newdeplibs="$newdeplibs $i"                    func_append newdeplibs " $i"
                   else                    else
                     droppeddeps=yes                      droppeddeps=yes
                    $ECHO                    echo
                     $ECHO "*** Warning: dynamic linker does not accept needed library $i."                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
                    $ECHO "*** I have the capability to make that library automatically link in when"                    echo "*** I have the capability to make that library automatically link in when"
                    $ECHO "*** you link to this library.  But I can only do this if you have a"                    echo "*** you link to this library.  But I can only do this if you have a"
                    $ECHO "*** shared version of the library, which I believe you do not have"                    echo "*** shared version of the library, which I believe you do not have"
                    $ECHO "*** because a test_compile did reveal that the linker did not use it for"                    echo "*** because a test_compile did reveal that the linker did not use it for"
                    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."                    echo "*** its dynamic dependency list that programs get resolved with at runtime."
                   fi                    fi
                 fi                  fi
                 ;;                  ;;
               *)                *)
                newdeplibs="$newdeplibs $i"                func_append newdeplibs " $i"
                 ;;                  ;;
               esac                esac
             done              done
Line 6587  EOF Line 9327  EOF
                 $opt_dry_run || $RM conftest                  $opt_dry_run || $RM conftest
                 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then                  if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
                   ldd_output=`ldd conftest`                    ldd_output=`ldd conftest`
                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then                  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                     case " $predeps $postdeps " in                      case " $predeps $postdeps " in
                     *" $i "*)                      *" $i "*)
                      newdeplibs="$newdeplibs $i"                      func_append newdeplibs " $i"
                      i=""                      i=
                       ;;                        ;;
                     esac                      esac
                   fi                    fi
                  if test -n "$i" ; then                  if test -n "$i"; then
                     libname=`eval "\\$ECHO \"$libname_spec\""`                      libname=`eval "\\$ECHO \"$libname_spec\""`
                     deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`                      deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
                     set dummy $deplib_matches; shift                      set dummy $deplib_matches; shift
                     deplib_match=$1                      deplib_match=$1
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
                      newdeplibs="$newdeplibs $i"                      func_append newdeplibs " $i"
                     else                      else
                       droppeddeps=yes                        droppeddeps=yes
                      $ECHO                      echo
                       $ECHO "*** Warning: dynamic linker does not accept needed library $i."                        $ECHO "*** Warning: dynamic linker does not accept needed library $i."
                      $ECHO "*** I have the capability to make that library automatically link in when"                      echo "*** I have the capability to make that library automatically link in when"
                      $ECHO "*** you link to this library.  But I can only do this if you have a"                      echo "*** you link to this library.  But I can only do this if you have a"
                      $ECHO "*** shared version of the library, which you do not appear to have"                      echo "*** shared version of the library, which you do not appear to have"
                      $ECHO "*** because a test_compile did reveal that the linker did not use this one"                      echo "*** because a test_compile did reveal that the linker did not use this one"
                      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."                      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
                     fi                      fi
                   fi                    fi
                 else                  else
                   droppeddeps=yes                    droppeddeps=yes
                  $ECHO                  echo
                   $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"                    $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
                  $ECHO "*** make it link in!  You will probably need to install it or some"                  echo "*** make it link in!  You will probably need to install it or some"
                  $ECHO "*** library that it depends on before this library will be fully"                  echo "*** library that it depends on before this library will be fully"
                  $ECHO "*** functional.  Installing it before continuing would be even better."                  echo "*** functional.  Installing it before continuing would be even better."
                 fi                  fi
                 ;;                  ;;
               *)                *)
                newdeplibs="$newdeplibs $i"                func_append newdeplibs " $i"
                 ;;                  ;;
               esac                esac
             done              done
Line 6637  EOF Line 9377  EOF
             -l*)              -l*)
               func_stripname -l '' "$a_deplib"                func_stripname -l '' "$a_deplib"
               name=$func_stripname_result                name=$func_stripname_result
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then              if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                 case " $predeps $postdeps " in                  case " $predeps $postdeps " in
                 *" $a_deplib "*)                  *" $a_deplib "*)
                  newdeplibs="$newdeplibs $a_deplib"                  func_append newdeplibs " $a_deplib"
                  a_deplib=""                  a_deplib=
                   ;;                    ;;
                 esac                  esac
               fi                fi
              if test -n "$a_deplib" ; then              if test -n "$a_deplib"; then
                 libname=`eval "\\$ECHO \"$libname_spec\""`                  libname=`eval "\\$ECHO \"$libname_spec\""`
                   if test -n "$file_magic_glob"; then
                     libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
                   else
                     libnameglob=$libname
                   fi
                   test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do                  for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`                  if test yes = "$want_nocaseglob"; then
                     shopt -s nocaseglob
                     potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
                     $nocaseglob
                   else
                     potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
                   fi
                   for potent_lib in $potential_libs; do                    for potent_lib in $potential_libs; do
                       # Follow soft links.                        # Follow soft links.
                       if ls -lLd "$potent_lib" 2>/dev/null |                        if ls -lLd "$potent_lib" 2>/dev/null |
Line 6660  EOF Line 9412  EOF
                       # We might still enter an endless loop, since a link                        # We might still enter an endless loop, since a link
                       # loop can be closed while we follow links,                        # loop can be closed while we follow links,
                       # but so what?                        # but so what?
                      potlib="$potent_lib"                      potlib=$potent_lib
                       while test -h "$potlib" 2>/dev/null; do                        while test -h "$potlib" 2>/dev/null; do
                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`                        potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
                         case $potliblink in                          case $potliblink in
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;                        [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
                        *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;                        *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
                         esac                          esac
                       done                        done
                       if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |                        if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
                          $SED -e 10q |                           $SED -e 10q |
                          $EGREP "$file_magic_regex" > /dev/null; then                           $EGREP "$file_magic_regex" > /dev/null; then
                        newdeplibs="$newdeplibs $a_deplib"                        func_append newdeplibs " $a_deplib"
                        a_deplib=""                        a_deplib=
                         break 2                          break 2
                       fi                        fi
                   done                    done
                 done                  done
               fi                fi
              if test -n "$a_deplib" ; then              if test -n "$a_deplib"; then
                 droppeddeps=yes                  droppeddeps=yes
                $ECHO                echo
                 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."                  $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
                $ECHO "*** I have the capability to make that library automatically link in when"                echo "*** I have the capability to make that library automatically link in when"
                $ECHO "*** you link to this library.  But I can only do this if you have a"                echo "*** you link to this library.  But I can only do this if you have a"
                $ECHO "*** shared version of the library, which you do not appear to have"                echo "*** shared version of the library, which you do not appear to have"
                $ECHO "*** because I did check the linker path looking for a file starting"                echo "*** because I did check the linker path looking for a file starting"
                if test -z "$potlib" ; then                if test -z "$potlib"; then
                   $ECHO "*** with $libname but no candidates were found. (...for file magic test)"                    $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
                 else                  else
                   $ECHO "*** with $libname and none of the candidates passed a file format test"                    $ECHO "*** with $libname and none of the candidates passed a file format test"
Line 6696  EOF Line 9448  EOF
               ;;                ;;
             *)              *)
               # Add a -L argument.                # Add a -L argument.
              newdeplibs="$newdeplibs $a_deplib"              func_append newdeplibs " $a_deplib"
               ;;                ;;
             esac              esac
           done # Gone through all deplibs.            done # Gone through all deplibs.
Line 6709  EOF Line 9461  EOF
             -l*)              -l*)
               func_stripname -l '' "$a_deplib"                func_stripname -l '' "$a_deplib"
               name=$func_stripname_result                name=$func_stripname_result
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then              if test yes = "$allow_libtool_libs_with_static_runtimes"; then
                 case " $predeps $postdeps " in                  case " $predeps $postdeps " in
                 *" $a_deplib "*)                  *" $a_deplib "*)
                  newdeplibs="$newdeplibs $a_deplib"                  func_append newdeplibs " $a_deplib"
                  a_deplib=""                  a_deplib=
                   ;;                    ;;
                 esac                  esac
               fi                fi
              if test -n "$a_deplib" ; then              if test -n "$a_deplib"; then
                 libname=`eval "\\$ECHO \"$libname_spec\""`                  libname=`eval "\\$ECHO \"$libname_spec\""`
                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do                  for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`                    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
                   for potent_lib in $potential_libs; do                    for potent_lib in $potential_libs; do
                    potlib="$potent_lib" # see symlink-check above in file_magic test                    potlib=$potent_lib # see symlink-check above in file_magic test
                    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \                    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
                        $EGREP "$match_pattern_regex" > /dev/null; then                         $EGREP "$match_pattern_regex" > /dev/null; then
                      newdeplibs="$newdeplibs $a_deplib"                      func_append newdeplibs " $a_deplib"
                      a_deplib=""                      a_deplib=
                       break 2                        break 2
                     fi                      fi
                   done                    done
                 done                  done
               fi                fi
              if test -n "$a_deplib" ; then              if test -n "$a_deplib"; then
                 droppeddeps=yes                  droppeddeps=yes
                $ECHO                echo
                 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."                  $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
                $ECHO "*** I have the capability to make that library automatically link in when"                echo "*** I have the capability to make that library automatically link in when"
                $ECHO "*** you link to this library.  But I can only do this if you have a"                echo "*** you link to this library.  But I can only do this if you have a"
                $ECHO "*** shared version of the library, which you do not appear to have"                echo "*** shared version of the library, which you do not appear to have"
                $ECHO "*** because I did check the linker path looking for a file starting"                echo "*** because I did check the linker path looking for a file starting"
                if test -z "$potlib" ; then                if test -z "$potlib"; then
                   $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"                    $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
                 else                  else
                   $ECHO "*** with $libname and none of the candidates passed a file format test"                    $ECHO "*** with $libname and none of the candidates passed a file format test"
Line 6750  EOF Line 9502  EOF
               ;;                ;;
             *)              *)
               # Add a -L argument.                # Add a -L argument.
              newdeplibs="$newdeplibs $a_deplib"              func_append newdeplibs " $a_deplib"
               ;;                ;;
             esac              esac
           done # Gone through all deplibs.            done # Gone through all deplibs.
           ;;            ;;
         none | unknown | *)          none | unknown | *)
          newdeplibs=""          newdeplibs=
          tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \          tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
              -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`          if test yes = "$allow_libtool_libs_with_static_runtimes"; then
          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then            for i in $predeps $postdeps; do
            for i in $predeps $postdeps ; do 
               # can't use Xsed below, because $i might contain '/'                # can't use Xsed below, because $i might contain '/'
              tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`              tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
             done              done
           fi            fi
          if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[        ]//g' |          case $tmp_deplibs in
             $GREP . >/dev/null; then          *[!\  \ ]*)
            $ECHO            echo
            if test "X$deplibs_check_method" = "Xnone"; then            if test none = "$deplibs_check_method"; then
              $ECHO "*** Warning: inter-library dependencies are not supported in this platform."              echo "*** Warning: inter-library dependencies are not supported in this platform."
             else              else
              $ECHO "*** Warning: inter-library dependencies are not known to be supported."              echo "*** Warning: inter-library dependencies are not known to be supported."
             fi              fi
            $ECHO "*** All declared inter-library dependencies are being dropped."            echo "*** All declared inter-library dependencies are being dropped."
             droppeddeps=yes              droppeddeps=yes
          fi            ;;
           esac
           ;;            ;;
         esac          esac
         versuffix=$versuffix_save          versuffix=$versuffix_save
Line 6787  EOF Line 9539  EOF
         case $host in          case $host in
         *-*-rhapsody* | *-*-darwin1.[012])          *-*-rhapsody* | *-*-darwin1.[012])
           # On Rhapsody replace the C library with the System framework            # On Rhapsody replace the C library with the System framework
          newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`          newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
           ;;            ;;
         esac          esac
   
        if test "$droppeddeps" = yes; then        if test yes = "$droppeddeps"; then
          if test "$module" = yes; then          if test yes = "$module"; then
            $ECHO            echo
            $ECHO "*** Warning: libtool could not satisfy all declared inter-library"            echo "*** Warning: libtool could not satisfy all declared inter-library"
             $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"              $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
            $ECHO "*** a static module, that should work as long as the dlopening"            echo "*** a static module, that should work as long as the dlopening"
            $ECHO "*** application is linked with the -dlopen flag."            echo "*** application is linked with the -dlopen flag."
             if test -z "$global_symbol_pipe"; then              if test -z "$global_symbol_pipe"; then
              $ECHO              echo
              $ECHO "*** However, this would only work if libtool was able to extract symbol"              echo "*** However, this would only work if libtool was able to extract symbol"
              $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"              echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
              $ECHO "*** not find such a program.  So, this module is probably useless."              echo "*** not find such a program.  So, this module is probably useless."
              $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."              echo "*** 'nm' from GNU binutils and a full rebuild may help."
             fi              fi
            if test "$build_old_libs" = no; then            if test no = "$build_old_libs"; then
              oldlibs="$output_objdir/$libname.$libext"              oldlibs=$output_objdir/$libname.$libext
               build_libtool_libs=module                build_libtool_libs=module
               build_old_libs=yes                build_old_libs=yes
             else              else
               build_libtool_libs=no                build_libtool_libs=no
             fi              fi
           else            else
            $ECHO "*** The inter-library dependencies that have been dropped here will be"            echo "*** The inter-library dependencies that have been dropped here will be"
            $ECHO "*** automatically added whenever a program is linked with this library"            echo "*** automatically added whenever a program is linked with this library"
            $ECHO "*** or is declared to -dlopen it."            echo "*** or is declared to -dlopen it."
   
            if test "$allow_undefined" = no; then            if test no = "$allow_undefined"; then
              $ECHO              echo
              $ECHO "*** Since this library must not contain undefined symbols,"              echo "*** Since this library must not contain undefined symbols,"
              $ECHO "*** because either the platform does not support them or"              echo "*** because either the platform does not support them or"
              $ECHO "*** it was explicitly requested with -no-undefined,"              echo "*** it was explicitly requested with -no-undefined,"
              $ECHO "*** libtool will only create a static version of it."              echo "*** libtool will only create a static version of it."
              if test "$build_old_libs" = no; then              if test no = "$build_old_libs"; then
                oldlibs="$output_objdir/$libname.$libext"                oldlibs=$output_objdir/$libname.$libext
                 build_libtool_libs=module                  build_libtool_libs=module
                 build_old_libs=yes                  build_old_libs=yes
               else                else
Line 6839  EOF Line 9591  EOF
       # Time to change all our "foo.ltframework" stuff back to "-framework foo"        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
       case $host in        case $host in
         *-*-darwin*)          *-*-darwin*)
          newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`          newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
          new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`          new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
          deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`          deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
           ;;            ;;
       esac        esac
   
Line 6854  EOF Line 9606  EOF
         *)          *)
           case " $deplibs " in            case " $deplibs " in
           *" -L$path/$objdir "*)            *" -L$path/$objdir "*)
            new_libs="$new_libs -L$path/$objdir" ;;            func_append new_libs " -L$path/$objdir" ;;
           esac            esac
           ;;            ;;
         esac          esac
Line 6864  EOF Line 9616  EOF
         -L*)          -L*)
           case " $new_libs " in            case " $new_libs " in
           *" $deplib "*) ;;            *" $deplib "*) ;;
          *) new_libs="$new_libs $deplib" ;;          *) func_append new_libs " $deplib" ;;
           esac            esac
           ;;            ;;
        *) new_libs="$new_libs $deplib" ;;        *) func_append new_libs " $deplib" ;;
         esac          esac
       done        done
      deplibs="$new_libs"      deplibs=$new_libs
   
       # All the library-specific variables (install_libdir is set above).        # All the library-specific variables (install_libdir is set above).
       library_names=        library_names=
Line 6878  EOF Line 9630  EOF
       dlname=        dlname=
   
       # Test again, we may have decided not to build it any more        # Test again, we may have decided not to build it any more
      if test "$build_libtool_libs" = yes; then      if test yes = "$build_libtool_libs"; then
        if test "$hardcode_into_libs" = yes; then        # Remove $wl instances when linking with ld.
         # FIXME: should test the right _cmds variable.
         case $archive_cmds in
           *\$LD\ *) wl= ;;
         esac
         if test yes = "$hardcode_into_libs"; then
           # Hardcode the library paths            # Hardcode the library paths
           hardcode_libdirs=            hardcode_libdirs=
           dep_rpath=            dep_rpath=
          rpath="$finalize_rpath"          rpath=$finalize_rpath
          test "$mode" != relink && rpath="$compile_rpath$rpath"          test relink = "$opt_mode" || rpath=$compile_rpath$rpath
           for libdir in $rpath; do            for libdir in $rpath; do
             if test -n "$hardcode_libdir_flag_spec"; then              if test -n "$hardcode_libdir_flag_spec"; then
               if test -n "$hardcode_libdir_separator"; then                if test -n "$hardcode_libdir_separator"; then
                   func_replace_sysroot "$libdir"
                   libdir=$func_replace_sysroot_result
                 if test -z "$hardcode_libdirs"; then                  if test -z "$hardcode_libdirs"; then
                  hardcode_libdirs="$libdir"                  hardcode_libdirs=$libdir
                 else                  else
                   # Just accumulate the unique libdirs.                    # Just accumulate the unique libdirs.
                   case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in                    case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
                   *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)                    *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                     ;;                      ;;
                   *)                    *)
                    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"                    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                     ;;                      ;;
                   esac                    esac
                 fi                  fi
               else                else
                 eval flag=\"$hardcode_libdir_flag_spec\"                  eval flag=\"$hardcode_libdir_flag_spec\"
                dep_rpath="$dep_rpath $flag"                func_append dep_rpath " $flag"
               fi                fi
             elif test -n "$runpath_var"; then              elif test -n "$runpath_var"; then
               case "$perm_rpath " in                case "$perm_rpath " in
               *" $libdir "*) ;;                *" $libdir "*) ;;
              *) perm_rpath="$perm_rpath $libdir" ;;              *) func_append perm_rpath " $libdir" ;;
               esac                esac
             fi              fi
           done            done
           # Substitute the hardcoded libdirs into the rpath.            # Substitute the hardcoded libdirs into the rpath.
           if test -n "$hardcode_libdir_separator" &&            if test -n "$hardcode_libdir_separator" &&
              test -n "$hardcode_libdirs"; then               test -n "$hardcode_libdirs"; then
            libdir="$hardcode_libdirs"            libdir=$hardcode_libdirs
            if test -n "$hardcode_libdir_flag_spec_ld"; then            eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
              eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" 
            else 
              eval dep_rpath=\"$hardcode_libdir_flag_spec\" 
            fi 
           fi            fi
           if test -n "$runpath_var" && test -n "$perm_rpath"; then            if test -n "$runpath_var" && test -n "$perm_rpath"; then
             # We should set the runpath_var.              # We should set the runpath_var.
             rpath=              rpath=
             for dir in $perm_rpath; do              for dir in $perm_rpath; do
              rpath="$rpath$dir:"              func_append rpath "$dir:"
             done              done
             eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"              eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
           fi            fi
           test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"            test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
         fi          fi
   
        shlibpath="$finalize_shlibpath"        shlibpath=$finalize_shlibpath
        test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"        test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
         if test -n "$shlibpath"; then          if test -n "$shlibpath"; then
           eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"            eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
         fi          fi
Line 6943  EOF Line 9698  EOF
         eval library_names=\"$library_names_spec\"          eval library_names=\"$library_names_spec\"
         set dummy $library_names          set dummy $library_names
         shift          shift
        realname="$1"        realname=$1
         shift          shift
   
         if test -n "$soname_spec"; then          if test -n "$soname_spec"; then
           eval soname=\"$soname_spec\"            eval soname=\"$soname_spec\"
         else          else
          soname="$realname"          soname=$realname
         fi          fi
         if test -z "$dlname"; then          if test -z "$dlname"; then
           dlname=$soname            dlname=$soname
         fi          fi
   
        lib="$output_objdir/$realname"        lib=$output_objdir/$realname
         linknames=          linknames=
         for link          for link
         do          do
          linknames="$linknames $link"          func_append linknames " $link"
         done          done
   
         # Use standard objects if they are pic          # Use standard objects if they are pic
        test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`        test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
         test "X$libobjs" = "X " && libobjs=          test "X$libobjs" = "X " && libobjs=
   
         delfiles=          delfiles=
         if test -n "$export_symbols" && test -n "$include_expsyms"; then          if test -n "$export_symbols" && test -n "$include_expsyms"; then
           $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"            $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
          export_symbols="$output_objdir/$libname.uexp"          export_symbols=$output_objdir/$libname.uexp
          delfiles="$delfiles $export_symbols"          func_append delfiles " $export_symbols"
         fi          fi
   
         orig_export_symbols=          orig_export_symbols=
Line 6978  EOF Line 9733  EOF
         cygwin* | mingw* | cegcc*)          cygwin* | mingw* | cegcc*)
           if test -n "$export_symbols" && test -z "$export_symbols_regex"; then            if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
             # exporting using user supplied symfile              # exporting using user supplied symfile
            if test "x`$SED 1q $export_symbols`" != xEXPORTS; then            func_dll_def_p "$export_symbols" || {
               # and it's NOT already a .def file. Must figure out                # and it's NOT already a .def file. Must figure out
               # which of the given symbols are data symbols and tag                # which of the given symbols are data symbols and tag
               # them as such. So, trigger use of export_symbols_cmds.                # them as such. So, trigger use of export_symbols_cmds.
               # export_symbols gets reassigned inside the "prepare                # export_symbols gets reassigned inside the "prepare
               # the list of exported symbols" if statement, so the                # the list of exported symbols" if statement, so the
               # include_expsyms logic still works.                # include_expsyms logic still works.
              orig_export_symbols="$export_symbols"              orig_export_symbols=$export_symbols
               export_symbols=                export_symbols=
               always_export_symbols=yes                always_export_symbols=yes
            fi            }
           fi            fi
           ;;            ;;
         esac          esac
   
         # Prepare the list of exported symbols          # Prepare the list of exported symbols
         if test -z "$export_symbols"; then          if test -z "$export_symbols"; then
          if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then          if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
            func_verbose "generating symbol list for \`$libname.la'"            func_verbose "generating symbol list for '$libname.la'"
            export_symbols="$output_objdir/$libname.exp"            export_symbols=$output_objdir/$libname.exp
             $opt_dry_run || $RM $export_symbols              $opt_dry_run || $RM $export_symbols
             cmds=$export_symbols_cmds              cmds=$export_symbols_cmds
            save_ifs="$IFS"; IFS='~'            save_ifs=$IFS; IFS='~'
            for cmd in $cmds; do            for cmd1 in $cmds; do
              IFS="$save_ifs"              IFS=$save_ifs
              eval cmd=\"$cmd\"              # Take the normal branch if the nm_file_list_spec branch
              func_len " $cmd"              # doesn't work or if tool conversion is not needed.
              len=$func_len_result              case $nm_file_list_spec~$to_tool_file_cmd in
              if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then                *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
                   try_normal_branch=yes
                   eval cmd=\"$cmd1\"
                   func_len " $cmd"
                   len=$func_len_result
                   ;;
                 *)
                   try_normal_branch=no
                   ;;
               esac
               if test yes = "$try_normal_branch" \
                  && { test "$len" -lt "$max_cmd_len" \
                       || test "$max_cmd_len" -le -1; }
               then
                 func_show_eval "$cmd" 'exit $?'                  func_show_eval "$cmd" 'exit $?'
                 skipped_export=false                  skipped_export=false
                 elif test -n "$nm_file_list_spec"; then
                   func_basename "$output"
                   output_la=$func_basename_result
                   save_libobjs=$libobjs
                   save_output=$output
                   output=$output_objdir/$output_la.nm
                   func_to_tool_file "$output"
                   libobjs=$nm_file_list_spec$func_to_tool_file_result
                   func_append delfiles " $output"
                   func_verbose "creating $NM input file list: $output"
                   for obj in $save_libobjs; do
                     func_to_tool_file "$obj"
                     $ECHO "$func_to_tool_file_result"
                   done > "$output"
                   eval cmd=\"$cmd1\"
                   func_show_eval "$cmd" 'exit $?'
                   output=$save_output
                   libobjs=$save_libobjs
                   skipped_export=false
               else                else
                 # The command line is too long to execute in one step.                  # The command line is too long to execute in one step.
                 func_verbose "using reloadable object file for export list..."                  func_verbose "using reloadable object file for export list..."
Line 7018  EOF Line 9805  EOF
                 break                  break
               fi                fi
             done              done
            IFS="$save_ifs"            IFS=$save_ifs
            if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then            if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
               func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'                func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
               func_show_eval '$MV "${export_symbols}T" "$export_symbols"'                func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
             fi              fi
Line 7027  EOF Line 9814  EOF
         fi          fi
   
         if test -n "$export_symbols" && test -n "$include_expsyms"; then          if test -n "$export_symbols" && test -n "$include_expsyms"; then
          tmp_export_symbols="$export_symbols"          tmp_export_symbols=$export_symbols
          test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"          test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
          $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'          $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
         fi          fi
   
        if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then        if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
           # The given exports_symbols file has to be filtered, so filter it.            # The given exports_symbols file has to be filtered, so filter it.
          func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"          func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
           # FIXME: $output_objdir/$libname.filter potentially contains lots of            # FIXME: $output_objdir/$libname.filter potentially contains lots of
          # 's' commands which not all seds can handle. GNU sed should be fine          # 's' commands, which not all seds can handle. GNU sed should be fine
           # though. Also, the filter scales superlinearly with the number of            # though. Also, the filter scales superlinearly with the number of
           # global variables. join(1) would be nice here, but unfortunately            # global variables. join(1) would be nice here, but unfortunately
           # isn't a blessed tool.            # isn't a blessed tool.
           $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter            $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
          delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"          func_append delfiles " $export_symbols $output_objdir/$libname.filter"
           export_symbols=$output_objdir/$libname.def            export_symbols=$output_objdir/$libname.def
           $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols            $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
         fi          fi
Line 7051  EOF Line 9838  EOF
           case " $convenience " in            case " $convenience " in
           *" $test_deplib "*) ;;            *" $test_deplib "*) ;;
           *)            *)
            tmp_deplibs="$tmp_deplibs $test_deplib"            func_append tmp_deplibs " $test_deplib"
             ;;              ;;
           esac            esac
         done          done
        deplibs="$tmp_deplibs"        deplibs=$tmp_deplibs
   
         if test -n "$convenience"; then          if test -n "$convenience"; then
           if test -n "$whole_archive_flag_spec" &&            if test -n "$whole_archive_flag_spec" &&
            test "$compiler_needs_object" = yes &&            test yes = "$compiler_needs_object" &&
             test -z "$libobjs"; then              test -z "$libobjs"; then
             # extract the archives, so we have objects to list.              # extract the archives, so we have objects to list.
             # TODO: could optimize this to just extract one archive.              # TODO: could optimize this to just extract one archive.
Line 7070  EOF Line 9857  EOF
             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"              eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
             test "X$libobjs" = "X " && libobjs=              test "X$libobjs" = "X " && libobjs=
           else            else
            gentop="$output_objdir/${outputname}x"            gentop=$output_objdir/${outputname}x
            generated="$generated $gentop"            func_append generated " $gentop"
   
             func_extract_archives $gentop $convenience              func_extract_archives $gentop $convenience
            libobjs="$libobjs $func_extract_archives_result"            func_append libobjs " $func_extract_archives_result"
             test "X$libobjs" = "X " && libobjs=              test "X$libobjs" = "X " && libobjs=
           fi            fi
         fi          fi
   
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then        if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
           eval flag=\"$thread_safe_flag_spec\"            eval flag=\"$thread_safe_flag_spec\"
          linker_flags="$linker_flags $flag"          func_append linker_flags " $flag"
         fi          fi
   
         # Make a backup of the uninstalled library when relinking          # Make a backup of the uninstalled library when relinking
        if test "$mode" = relink; then        if test relink = "$opt_mode"; then
           $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?            $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
         fi          fi
   
         # Do each of the archive commands.          # Do each of the archive commands.
        if test "$module" = yes && test -n "$module_cmds" ; then        if test yes = "$module" && test -n "$module_cmds"; then
           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then            if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
             eval test_cmds=\"$module_expsym_cmds\"              eval test_cmds=\"$module_expsym_cmds\"
             cmds=$module_expsym_cmds              cmds=$module_expsym_cmds
Line 7108  EOF Line 9895  EOF
           fi            fi
         fi          fi
   
        if test "X$skipped_export" != "X:" &&        if test : != "$skipped_export" &&
            func_len " $test_cmds" &&             func_len " $test_cmds" &&
            len=$func_len_result &&             len=$func_len_result &&
            test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then             test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
Line 7130  EOF Line 9917  EOF
             save_libobjs=$libobjs              save_libobjs=$libobjs
           fi            fi
           save_output=$output            save_output=$output
          output_la=`$ECHO "X$output" | $Xsed -e "$basename"`          func_basename "$output"
           output_la=$func_basename_result
   
           # Clear the reloadable object creation command queue and            # Clear the reloadable object creation command queue and
           # initialize k to one.            # initialize k to one.
Line 7140  EOF Line 9928  EOF
           last_robj=            last_robj=
           k=1            k=1
   
          if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then          if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
            output=${output_objdir}/${output_la}.lnkscript            output=$output_objdir/$output_la.lnkscript
             func_verbose "creating GNU ld script: $output"              func_verbose "creating GNU ld script: $output"
            $ECHO 'INPUT (' > $output            echo 'INPUT (' > $output
             for obj in $save_libobjs              for obj in $save_libobjs
             do              do
              $ECHO "$obj" >> $output              func_to_tool_file "$obj"
               $ECHO "$func_to_tool_file_result" >> $output
             done              done
            $ECHO ')' >> $output            echo ')' >> $output
            delfiles="$delfiles $output"            func_append delfiles " $output"
          elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then            func_to_tool_file "$output"
            output=${output_objdir}/${output_la}.lnk            output=$func_to_tool_file_result
           elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
             output=$output_objdir/$output_la.lnk
             func_verbose "creating linker input file list: $output"              func_verbose "creating linker input file list: $output"
             : > $output              : > $output
             set x $save_libobjs              set x $save_libobjs
             shift              shift
             firstobj=              firstobj=
            if test "$compiler_needs_object" = yes; then            if test yes = "$compiler_needs_object"; then
               firstobj="$1 "                firstobj="$1 "
               shift                shift
             fi              fi
             for obj              for obj
             do              do
              $ECHO "$obj" >> $output              func_to_tool_file "$obj"
               $ECHO "$func_to_tool_file_result" >> $output
             done              done
            delfiles="$delfiles $output"            func_append delfiles " $output"
            output=$firstobj\"$file_list_spec$output\"            func_to_tool_file "$output"
             output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
           else            else
             if test -n "$save_libobjs"; then              if test -n "$save_libobjs"; then
               func_verbose "creating reloadable object files..."                func_verbose "creating reloadable object files..."
              output=$output_objdir/$output_la-${k}.$objext              output=$output_objdir/$output_la-$k.$objext
               eval test_cmds=\"$reload_cmds\"                eval test_cmds=\"$reload_cmds\"
               func_len " $test_cmds"                func_len " $test_cmds"
               len0=$func_len_result                len0=$func_len_result
Line 7182  EOF Line 9975  EOF
                 func_len " $obj"                  func_len " $obj"
                 func_arith $len + $func_len_result                  func_arith $len + $func_len_result
                 len=$func_arith_result                  len=$func_arith_result
                if test "X$objlist" = X ||                if test -z "$objlist" ||
                    test "$len" -lt "$max_cmd_len"; then                     test "$len" -lt "$max_cmd_len"; then
                   func_append objlist " $obj"                    func_append objlist " $obj"
                 else                  else
                   # The command $test_cmds is almost too long, add a                    # The command $test_cmds is almost too long, add a
                   # command to the queue.                    # command to the queue.
                  if test "$k" -eq 1 ; then                  if test 1 -eq "$k"; then
                     # The first file doesn't have a previous command to add.                      # The first file doesn't have a previous command to add.
                    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"                    reload_objs=$objlist
                     eval concat_cmds=\"$reload_cmds\"
                   else                    else
                     # All subsequent reloadable object files will link in                      # All subsequent reloadable object files will link in
                     # the last one created.                      # the last one created.
                    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"                    reload_objs="$objlist $last_robj"
                     eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
                   fi                    fi
                  last_robj=$output_objdir/$output_la-${k}.$objext                  last_robj=$output_objdir/$output_la-$k.$objext
                   func_arith $k + 1                    func_arith $k + 1
                   k=$func_arith_result                    k=$func_arith_result
                  output=$output_objdir/$output_la-${k}.$objext                  output=$output_objdir/$output_la-$k.$objext
                  objlist=$obj                  objlist=" $obj"
                   func_len " $last_robj"                    func_len " $last_robj"
                   func_arith $len0 + $func_len_result                    func_arith $len0 + $func_len_result
                   len=$func_arith_result                    len=$func_arith_result
Line 7210  EOF Line 10005  EOF
               # reloadable object file.  All subsequent reloadable object                # reloadable object file.  All subsequent reloadable object
               # files will link in the last one created.                # files will link in the last one created.
               test -z "$concat_cmds" || concat_cmds=$concat_cmds~                test -z "$concat_cmds" || concat_cmds=$concat_cmds~
              eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"              reload_objs="$objlist $last_robj"
               eval concat_cmds=\"\$concat_cmds$reload_cmds\"
               if test -n "$last_robj"; then                if test -n "$last_robj"; then
                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"                eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
               fi                fi
              delfiles="$delfiles $output"              func_append delfiles " $output"
   
             else              else
               output=                output=
             fi              fi
   
            if ${skipped_export-false}; then            ${skipped_export-false} && {
              func_verbose "generating symbol list for \`$libname.la'"              func_verbose "generating symbol list for '$libname.la'"
              export_symbols="$output_objdir/$libname.exp"              export_symbols=$output_objdir/$libname.exp
               $opt_dry_run || $RM $export_symbols                $opt_dry_run || $RM $export_symbols
               libobjs=$output                libobjs=$output
               # Append the command to create the export file.                # Append the command to create the export file.
Line 7231  EOF Line 10027  EOF
               if test -n "$last_robj"; then                if test -n "$last_robj"; then
                 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"                  eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
               fi                fi
            fi            }
   
             test -n "$save_libobjs" &&              test -n "$save_libobjs" &&
               func_verbose "creating a temporary reloadable object file: $output"                func_verbose "creating a temporary reloadable object file: $output"
   
             # Loop through the commands generated above and execute them.              # Loop through the commands generated above and execute them.
            save_ifs="$IFS"; IFS='~'            save_ifs=$IFS; IFS='~'
             for cmd in $concat_cmds; do              for cmd in $concat_cmds; do
              IFS="$save_ifs"              IFS=$save_ifs
              $opt_silent || {              $opt_quiet || {
                   func_quote_for_expand "$cmd"                    func_quote_for_expand "$cmd"
                   eval "func_echo $func_quote_for_expand_result"                    eval "func_echo $func_quote_for_expand_result"
               }                }
Line 7248  EOF Line 10044  EOF
                 lt_exit=$?                  lt_exit=$?
   
                 # Restore the uninstalled library and exit                  # Restore the uninstalled library and exit
                if test "$mode" = relink; then                if test relink = "$opt_mode"; then
                   ( cd "$output_objdir" && \                    ( cd "$output_objdir" && \
                     $RM "${realname}T" && \                      $RM "${realname}T" && \
                     $MV "${realname}U" "$realname" )                      $MV "${realname}U" "$realname" )
Line 7257  EOF Line 10053  EOF
                 exit $lt_exit                  exit $lt_exit
               }                }
             done              done
            IFS="$save_ifs"            IFS=$save_ifs
   
             if test -n "$export_symbols_regex" && ${skipped_export-false}; then              if test -n "$export_symbols_regex" && ${skipped_export-false}; then
               func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'                func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
Line 7265  EOF Line 10061  EOF
             fi              fi
           fi            fi
   
          if ${skipped_export-false}; then          ${skipped_export-false} && {
             if test -n "$export_symbols" && test -n "$include_expsyms"; then              if test -n "$export_symbols" && test -n "$include_expsyms"; then
              tmp_export_symbols="$export_symbols"              tmp_export_symbols=$export_symbols
              test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"              test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
              $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'              $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
             fi              fi
   
             if test -n "$orig_export_symbols"; then              if test -n "$orig_export_symbols"; then
               # The given exports_symbols file has to be filtered, so filter it.                # The given exports_symbols file has to be filtered, so filter it.
              func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"              func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
               # FIXME: $output_objdir/$libname.filter potentially contains lots of                # FIXME: $output_objdir/$libname.filter potentially contains lots of
              # 's' commands which not all seds can handle. GNU sed should be fine              # 's' commands, which not all seds can handle. GNU sed should be fine
               # though. Also, the filter scales superlinearly with the number of                # though. Also, the filter scales superlinearly with the number of
               # global variables. join(1) would be nice here, but unfortunately                # global variables. join(1) would be nice here, but unfortunately
               # isn't a blessed tool.                # isn't a blessed tool.
               $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter                $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
              delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"              func_append delfiles " $export_symbols $output_objdir/$libname.filter"
               export_symbols=$output_objdir/$libname.def                export_symbols=$output_objdir/$libname.def
               $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols                $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
             fi              fi
          fi          }
   
           libobjs=$output            libobjs=$output
           # Restore the value of output.            # Restore the value of output.
Line 7299  EOF Line 10095  EOF
           # value of $libobjs for piecewise linking.            # value of $libobjs for piecewise linking.
   
           # Do each of the archive commands.            # Do each of the archive commands.
          if test "$module" = yes && test -n "$module_cmds" ; then          if test yes = "$module" && test -n "$module_cmds"; then
             if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then              if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
               cmds=$module_expsym_cmds                cmds=$module_expsym_cmds
             else              else
Line 7321  EOF Line 10117  EOF
   
         # Add any objects from preloaded convenience libraries          # Add any objects from preloaded convenience libraries
         if test -n "$dlprefiles"; then          if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"          gentop=$output_objdir/${outputname}x
          generated="$generated $gentop"          func_append generated " $gentop"
   
           func_extract_archives $gentop $dlprefiles            func_extract_archives $gentop $dlprefiles
          libobjs="$libobjs $func_extract_archives_result"          func_append libobjs " $func_extract_archives_result"
           test "X$libobjs" = "X " && libobjs=            test "X$libobjs" = "X " && libobjs=
         fi          fi
   
        save_ifs="$IFS"; IFS='~'        save_ifs=$IFS; IFS='~'
         for cmd in $cmds; do          for cmd in $cmds; do
          IFS="$save_ifs"          IFS=$sp$nl
           eval cmd=\"$cmd\"            eval cmd=\"$cmd\"
          $opt_silent || {          IFS=$save_ifs
           $opt_quiet || {
             func_quote_for_expand "$cmd"              func_quote_for_expand "$cmd"
             eval "func_echo $func_quote_for_expand_result"              eval "func_echo $func_quote_for_expand_result"
           }            }
Line 7341  EOF Line 10138  EOF
             lt_exit=$?              lt_exit=$?
   
             # Restore the uninstalled library and exit              # Restore the uninstalled library and exit
            if test "$mode" = relink; then            if test relink = "$opt_mode"; then
               ( cd "$output_objdir" && \                ( cd "$output_objdir" && \
                 $RM "${realname}T" && \                  $RM "${realname}T" && \
                 $MV "${realname}U" "$realname" )                  $MV "${realname}U" "$realname" )
Line 7350  EOF Line 10147  EOF
             exit $lt_exit              exit $lt_exit
           }            }
         done          done
        IFS="$save_ifs"        IFS=$save_ifs
   
         # Restore the uninstalled library and exit          # Restore the uninstalled library and exit
        if test "$mode" = relink; then        if test relink = "$opt_mode"; then
           $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?            $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
   
           if test -n "$convenience"; then            if test -n "$convenience"; then
Line 7373  EOF Line 10170  EOF
         done          done
   
         # If -module or -export-dynamic was specified, set the dlname.          # If -module or -export-dynamic was specified, set the dlname.
        if test "$module" = yes || test "$export_dynamic" = yes; then        if test yes = "$module" || test yes = "$export_dynamic"; then
           # On all known operating systems, these are identical.            # On all known operating systems, these are identical.
          dlname="$soname"          dlname=$soname
         fi          fi
       fi        fi
       ;;        ;;
   
     obj)      obj)
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
        func_warning "\`-dlopen' is ignored for objects"        func_warning "'-dlopen' is ignored for objects"
       fi        fi
   
       case " $deplibs" in        case " $deplibs" in
       *\ -l* | *\ -L*)        *\ -l* | *\ -L*)
        func_warning "\`-l' and \`-L' are ignored for objects" ;;        func_warning "'-l' and '-L' are ignored for objects" ;;
       esac        esac
   
       test -n "$rpath" && \        test -n "$rpath" && \
        func_warning "\`-rpath' is ignored for objects"        func_warning "'-rpath' is ignored for objects"
   
       test -n "$xrpath" && \        test -n "$xrpath" && \
        func_warning "\`-R' is ignored for objects"        func_warning "'-R' is ignored for objects"
   
       test -n "$vinfo" && \        test -n "$vinfo" && \
        func_warning "\`-version-info' is ignored for objects"        func_warning "'-version-info' is ignored for objects"
   
       test -n "$release" && \        test -n "$release" && \
        func_warning "\`-release' is ignored for objects"        func_warning "'-release' is ignored for objects"
   
       case $output in        case $output in
       *.lo)        *.lo)
         test -n "$objs$old_deplibs" && \          test -n "$objs$old_deplibs" && \
          func_fatal_error "cannot build library object \`$output' from non-libtool objects"          func_fatal_error "cannot build library object '$output' from non-libtool objects"
   
         libobj=$output          libobj=$output
         func_lo2o "$libobj"          func_lo2o "$libobj"
Line 7413  EOF Line 10210  EOF
         ;;          ;;
       *)        *)
         libobj=          libobj=
        obj="$output"        obj=$output
         ;;          ;;
       esac        esac
   
Line 7426  EOF Line 10223  EOF
       # the extraction.        # the extraction.
       reload_conv_objs=        reload_conv_objs=
       gentop=        gentop=
      # reload_cmds runs $LD directly, so let us get rid of      # if reload_cmds runs $LD directly, get rid of -Wl from
      # -Wl from whole_archive_flag_spec and hope we can get by with      # whole_archive_flag_spec and hope we can get by with turning comma
      # turning comma into space..      # into space.
      wl=      case $reload_cmds in
        *\$LD[\ \$]*) wl= ;;
       esac
       if test -n "$convenience"; then        if test -n "$convenience"; then
         if test -n "$whole_archive_flag_spec"; then          if test -n "$whole_archive_flag_spec"; then
           eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"            eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
          reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`          test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
           reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
         else          else
          gentop="$output_objdir/${obj}x"          gentop=$output_objdir/${obj}x
          generated="$generated $gentop"          func_append generated " $gentop"
   
           func_extract_archives $gentop $convenience            func_extract_archives $gentop $convenience
           reload_conv_objs="$reload_objs $func_extract_archives_result"            reload_conv_objs="$reload_objs $func_extract_archives_result"
         fi          fi
       fi        fi
   
         # If we're not building shared, we need to use non_pic_objs
         test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
   
       # Create the old-style object.        # Create the old-style object.
      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test      reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
   
      output="$obj"      output=$obj
       func_execute_cmds "$reload_cmds" 'exit $?'        func_execute_cmds "$reload_cmds" 'exit $?'
   
       # Exit if we aren't doing a library object file.        # Exit if we aren't doing a library object file.
Line 7459  EOF Line 10261  EOF
         exit $EXIT_SUCCESS          exit $EXIT_SUCCESS
       fi        fi
   
      if test "$build_libtool_libs" != yes; then      test yes = "$build_libtool_libs" || {
         if test -n "$gentop"; then          if test -n "$gentop"; then
           func_show_eval '${RM}r "$gentop"'            func_show_eval '${RM}r "$gentop"'
         fi          fi
Line 7469  EOF Line 10271  EOF
         # $show "echo timestamp > $libobj"          # $show "echo timestamp > $libobj"
         # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?          # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
         exit $EXIT_SUCCESS          exit $EXIT_SUCCESS
      fi      }
   
      if test -n "$pic_flag" || test "$pic_mode" != default; then      if test -n "$pic_flag" || test default != "$pic_mode"; then
         # Only do commands if we really have different PIC objects.          # Only do commands if we really have different PIC objects.
         reload_objs="$libobjs $reload_conv_objs"          reload_objs="$libobjs $reload_conv_objs"
        output="$libobj"        output=$libobj
         func_execute_cmds "$reload_cmds" 'exit $?'          func_execute_cmds "$reload_cmds" 'exit $?'
       fi        fi
   
Line 7491  EOF Line 10293  EOF
                   output=$func_stripname_result.exe;;                    output=$func_stripname_result.exe;;
       esac        esac
       test -n "$vinfo" && \        test -n "$vinfo" && \
        func_warning "\`-version-info' is ignored for programs"        func_warning "'-version-info' is ignored for programs"
   
       test -n "$release" && \        test -n "$release" && \
        func_warning "\`-release' is ignored for programs"        func_warning "'-release' is ignored for programs"
   
      test "$preload" = yes \      $preload \
        && test "$dlopen_support" = unknown \        && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
        && test "$dlopen_self" = unknown \        && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
        && test "$dlopen_self_static" = unknown && \ 
          func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." 
   
       case $host in        case $host in
       *-*-rhapsody* | *-*-darwin1.[012])        *-*-rhapsody* | *-*-darwin1.[012])
         # On Rhapsody replace the C library is the System framework          # On Rhapsody replace the C library is the System framework
        compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
        finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
         ;;          ;;
       esac        esac
   
Line 7514  EOF Line 10314  EOF
       *-*-darwin*)        *-*-darwin*)
         # Don't allow lazy linking, it breaks C++ global constructors          # Don't allow lazy linking, it breaks C++ global constructors
         # But is supposedly fixed on 10.4 or later (yay!).          # But is supposedly fixed on 10.4 or later (yay!).
        if test "$tagname" = CXX ; then        if test CXX = "$tagname"; then
           case ${MACOSX_DEPLOYMENT_TARGET-10.0} in            case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
             10.[0123])              10.[0123])
              compile_command="$compile_command ${wl}-bind_at_load"              func_append compile_command " $wl-bind_at_load"
              finalize_command="$finalize_command ${wl}-bind_at_load"              func_append finalize_command " $wl-bind_at_load"
             ;;              ;;
           esac            esac
         fi          fi
         # Time to change all our "foo.ltframework" stuff back to "-framework foo"          # Time to change all our "foo.ltframework" stuff back to "-framework foo"
        compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
         ;;          ;;
       esac        esac
   
Line 7538  EOF Line 10338  EOF
         *)          *)
           case " $compile_deplibs " in            case " $compile_deplibs " in
           *" -L$path/$objdir "*)            *" -L$path/$objdir "*)
            new_libs="$new_libs -L$path/$objdir" ;;            func_append new_libs " -L$path/$objdir" ;;
           esac            esac
           ;;            ;;
         esac          esac
Line 7548  EOF Line 10348  EOF
         -L*)          -L*)
           case " $new_libs " in            case " $new_libs " in
           *" $deplib "*) ;;            *" $deplib "*) ;;
          *) new_libs="$new_libs $deplib" ;;          *) func_append new_libs " $deplib" ;;
           esac            esac
           ;;            ;;
        *) new_libs="$new_libs $deplib" ;;        *) func_append new_libs " $deplib" ;;
         esac          esac
       done        done
      compile_deplibs="$new_libs"      compile_deplibs=$new_libs
   
   
      compile_command="$compile_command $compile_deplibs"      func_append compile_command " $compile_deplibs"
      finalize_command="$finalize_command $finalize_deplibs"      func_append finalize_command " $finalize_deplibs"
   
       if test -n "$rpath$xrpath"; then        if test -n "$rpath$xrpath"; then
         # If the user specified any rpath flags, then add them.          # If the user specified any rpath flags, then add them.
Line 7566  EOF Line 10366  EOF
           # This is the magic to use -rpath.            # This is the magic to use -rpath.
           case "$finalize_rpath " in            case "$finalize_rpath " in
           *" $libdir "*) ;;            *" $libdir "*) ;;
          *) finalize_rpath="$finalize_rpath $libdir" ;;          *) func_append finalize_rpath " $libdir" ;;
           esac            esac
         done          done
       fi        fi
Line 7578  EOF Line 10378  EOF
         if test -n "$hardcode_libdir_flag_spec"; then          if test -n "$hardcode_libdir_flag_spec"; then
           if test -n "$hardcode_libdir_separator"; then            if test -n "$hardcode_libdir_separator"; then
             if test -z "$hardcode_libdirs"; then              if test -z "$hardcode_libdirs"; then
              hardcode_libdirs="$libdir"              hardcode_libdirs=$libdir
             else              else
               # Just accumulate the unique libdirs.                # Just accumulate the unique libdirs.
               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in                case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)                *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                 ;;                  ;;
               *)                *)
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"                func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                 ;;                  ;;
               esac                esac
             fi              fi
           else            else
             eval flag=\"$hardcode_libdir_flag_spec\"              eval flag=\"$hardcode_libdir_flag_spec\"
            rpath="$rpath $flag"            func_append rpath " $flag"
           fi            fi
         elif test -n "$runpath_var"; then          elif test -n "$runpath_var"; then
           case "$perm_rpath " in            case "$perm_rpath " in
           *" $libdir "*) ;;            *" $libdir "*) ;;
          *) perm_rpath="$perm_rpath $libdir" ;;          *) func_append perm_rpath " $libdir" ;;
           esac            esac
         fi          fi
         case $host in          case $host in
         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
          testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`          testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
           case :$dllsearchpath: in            case :$dllsearchpath: in
           *":$libdir:"*) ;;            *":$libdir:"*) ;;
           ::) dllsearchpath=$libdir;;            ::) dllsearchpath=$libdir;;
          *) dllsearchpath="$dllsearchpath:$libdir";;          *) func_append dllsearchpath ":$libdir";;
           esac            esac
           case :$dllsearchpath: in            case :$dllsearchpath: in
           *":$testbindir:"*) ;;            *":$testbindir:"*) ;;
           ::) dllsearchpath=$testbindir;;            ::) dllsearchpath=$testbindir;;
          *) dllsearchpath="$dllsearchpath:$testbindir";;          *) func_append dllsearchpath ":$testbindir";;
           esac            esac
           ;;            ;;
         esac          esac
Line 7618  EOF Line 10418  EOF
       # Substitute the hardcoded libdirs into the rpath.        # Substitute the hardcoded libdirs into the rpath.
       if test -n "$hardcode_libdir_separator" &&        if test -n "$hardcode_libdir_separator" &&
          test -n "$hardcode_libdirs"; then           test -n "$hardcode_libdirs"; then
        libdir="$hardcode_libdirs"        libdir=$hardcode_libdirs
         eval rpath=\" $hardcode_libdir_flag_spec\"          eval rpath=\" $hardcode_libdir_flag_spec\"
       fi        fi
      compile_rpath="$rpath"      compile_rpath=$rpath
   
       rpath=        rpath=
       hardcode_libdirs=        hardcode_libdirs=
Line 7629  EOF Line 10429  EOF
         if test -n "$hardcode_libdir_flag_spec"; then          if test -n "$hardcode_libdir_flag_spec"; then
           if test -n "$hardcode_libdir_separator"; then            if test -n "$hardcode_libdir_separator"; then
             if test -z "$hardcode_libdirs"; then              if test -z "$hardcode_libdirs"; then
              hardcode_libdirs="$libdir"              hardcode_libdirs=$libdir
             else              else
               # Just accumulate the unique libdirs.                # Just accumulate the unique libdirs.
               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in                case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)                *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                 ;;                  ;;
               *)                *)
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"                func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                 ;;                  ;;
               esac                esac
             fi              fi
           else            else
             eval flag=\"$hardcode_libdir_flag_spec\"              eval flag=\"$hardcode_libdir_flag_spec\"
            rpath="$rpath $flag"            func_append rpath " $flag"
           fi            fi
         elif test -n "$runpath_var"; then          elif test -n "$runpath_var"; then
           case "$finalize_perm_rpath " in            case "$finalize_perm_rpath " in
           *" $libdir "*) ;;            *" $libdir "*) ;;
          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;          *) func_append finalize_perm_rpath " $libdir" ;;
           esac            esac
         fi          fi
       done        done
       # Substitute the hardcoded libdirs into the rpath.        # Substitute the hardcoded libdirs into the rpath.
       if test -n "$hardcode_libdir_separator" &&        if test -n "$hardcode_libdir_separator" &&
          test -n "$hardcode_libdirs"; then           test -n "$hardcode_libdirs"; then
        libdir="$hardcode_libdirs"        libdir=$hardcode_libdirs
         eval rpath=\" $hardcode_libdir_flag_spec\"          eval rpath=\" $hardcode_libdir_flag_spec\"
       fi        fi
      finalize_rpath="$rpath"      finalize_rpath=$rpath
   
      if test -n "$libobjs" && test "$build_old_libs" = yes; then      if test -n "$libobjs" && test yes = "$build_old_libs"; then
         # Transform all the library objects into standard objects.          # Transform all the library objects into standard objects.
        compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`        compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
        finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`        finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi        fi
   
      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"      func_generate_dlsyms "$outputname" "@PROGRAM@" false
   
       # template prelinking step        # template prelinking step
       if test -n "$prelink_cmds"; then        if test -n "$prelink_cmds"; then
         func_execute_cmds "$prelink_cmds" 'exit $?'          func_execute_cmds "$prelink_cmds" 'exit $?'
       fi        fi
   
      wrappers_required=yes      wrappers_required=:
       case $host in        case $host in
         *cegcc* | *mingw32ce*)
           # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
           wrappers_required=false
           ;;
       *cygwin* | *mingw* )        *cygwin* | *mingw* )
        if test "$build_libtool_libs" != yes; then        test yes = "$build_libtool_libs" || wrappers_required=false
          wrappers_required=no 
        fi 
         ;;          ;;
       *cegcc)  
         # Disable wrappers for cegcc, we are cross compiling anyway.  
         wrappers_required=no  
         ;;  
       *)        *)
        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then        if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
          wrappers_required=no          wrappers_required=false
         fi          fi
         ;;          ;;
       esac        esac
      if test "$wrappers_required" = no; then      $wrappers_required || {
         # Replace the output file specification.          # Replace the output file specification.
        compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`        compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        link_command="$compile_command$compile_rpath"        link_command=$compile_command$compile_rpath
   
         # We have no uninstalled library dependencies, so finalize right now.          # We have no uninstalled library dependencies, so finalize right now.
         exit_status=0          exit_status=0
         func_show_eval "$link_command" 'exit_status=$?'          func_show_eval "$link_command" 'exit_status=$?'
   
           if test -n "$postlink_cmds"; then
             func_to_tool_file "$output"
             postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
             func_execute_cmds "$postlink_cmds" 'exit $?'
           fi
   
         # Delete the generated files.          # Delete the generated files.
        if test -f "$output_objdir/${outputname}S.${objext}"; then        if test -f "$output_objdir/${outputname}S.$objext"; then
          func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'          func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
         fi          fi
   
         exit $exit_status          exit $exit_status
      fi      }
   
       if test -n "$compile_shlibpath$finalize_shlibpath"; then        if test -n "$compile_shlibpath$finalize_shlibpath"; then
         compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"          compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
Line 7720  EOF Line 10524  EOF
           # We should set the runpath_var.            # We should set the runpath_var.
           rpath=            rpath=
           for dir in $perm_rpath; do            for dir in $perm_rpath; do
            rpath="$rpath$dir:"            func_append rpath "$dir:"
           done            done
           compile_var="$runpath_var=\"$rpath\$$runpath_var\" "            compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
         fi          fi
Line 7728  EOF Line 10532  EOF
           # We should set the runpath_var.            # We should set the runpath_var.
           rpath=            rpath=
           for dir in $finalize_perm_rpath; do            for dir in $finalize_perm_rpath; do
            rpath="$rpath$dir:"            func_append rpath "$dir:"
           done            done
           finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "            finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
         fi          fi
       fi        fi
   
      if test "$no_install" = yes; then      if test yes = "$no_install"; then
         # We don't need to create a wrapper script.          # We don't need to create a wrapper script.
        link_command="$compile_var$compile_command$compile_rpath"        link_command=$compile_var$compile_command$compile_rpath
         # Replace the output file specification.          # Replace the output file specification.
        link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`        link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
         # Delete the old output file.          # Delete the old output file.
         $opt_dry_run || $RM $output          $opt_dry_run || $RM $output
         # Link the executable and exit          # Link the executable and exit
         func_show_eval "$link_command" 'exit $?'          func_show_eval "$link_command" 'exit $?'
   
           if test -n "$postlink_cmds"; then
             func_to_tool_file "$output"
             postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
             func_execute_cmds "$postlink_cmds" 'exit $?'
           fi
   
         exit $EXIT_SUCCESS          exit $EXIT_SUCCESS
       fi        fi
   
      if test "$hardcode_action" = relink; then      case $hardcode_action,$fast_install in
        # Fast installation is not supported        relink,*)
        link_command="$compile_var$compile_command$compile_rpath"          # Fast installation is not supported
        relink_command="$finalize_var$finalize_command$finalize_rpath"          link_command=$compile_var$compile_command$compile_rpath
           relink_command=$finalize_var$finalize_command$finalize_rpath
   
        func_warning "this platform does not like uninstalled shared libraries"          func_warning "this platform does not like uninstalled shared libraries"
        func_warning "\`$output' will be relinked during installation"          func_warning "'$output' will be relinked during installation"
      else          ;;
        if test "$fast_install" != no; then        *,yes)
          link_command="$finalize_var$compile_command$finalize_rpath"          link_command=$finalize_var$compile_command$finalize_rpath
          if test "$fast_install" = yes; then          relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
            relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`          ;;
          else        *,no)
            # fast_install is set to needless          link_command=$compile_var$compile_command$compile_rpath
            relink_command=          relink_command=$finalize_var$finalize_command$finalize_rpath
          fi          ;;
        else        *,needless)
          link_command="$compile_var$compile_command$compile_rpath"          link_command=$finalize_var$compile_command$finalize_rpath
          relink_command="$finalize_var$finalize_command$finalize_rpath"          relink_command=
        fi          ;;
      fi      esac
   
       # Replace the output file specification.        # Replace the output file specification.
      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
   
       # Delete the old output files.        # Delete the old output files.
       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname        $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
   
       func_show_eval "$link_command" 'exit $?'        func_show_eval "$link_command" 'exit $?'
   
         if test -n "$postlink_cmds"; then
           func_to_tool_file "$output_objdir/$outputname"
           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'`
           func_execute_cmds "$postlink_cmds" 'exit $?'
         fi
   
       # Now create the wrapper script.        # Now create the wrapper script.
       func_verbose "creating $output"        func_verbose "creating $output"
   
Line 7793  EOF Line 10611  EOF
           fi            fi
         done          done
         relink_command="(cd `pwd`; $relink_command)"          relink_command="(cd `pwd`; $relink_command)"
        relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`        relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       fi        fi
   
       # Quote $ECHO for shipping.  
       if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then  
         case $progpath in  
         [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;  
         *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;  
         esac  
         qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`  
       else  
         qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`  
       fi  
   
       # Only actually do things if not in dry run mode.        # Only actually do things if not in dry run mode.
       $opt_dry_run || {        $opt_dry_run || {
         # win32 will think the script is a binary if it has          # win32 will think the script is a binary if it has
Line 7828  EOF Line 10635  EOF
             func_dirname_and_basename "$output" "" "."              func_dirname_and_basename "$output" "" "."
             output_name=$func_basename_result              output_name=$func_basename_result
             output_path=$func_dirname_result              output_path=$func_dirname_result
            cwrappersource="$output_path/$objdir/lt-$output_name.c"            cwrappersource=$output_path/$objdir/lt-$output_name.c
            cwrapper="$output_path/$output_name.exe"            cwrapper=$output_path/$output_name.exe
             $RM $cwrappersource $cwrapper              $RM $cwrappersource $cwrapper
             trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15              trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
   
Line 7850  EOF Line 10657  EOF
             trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15              trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
             $opt_dry_run || {              $opt_dry_run || {
               # note: this script will not be executed, so do not chmod.                # note: this script will not be executed, so do not chmod.
              if test "x$build" = "x$host" ; then              if test "x$build" = "x$host"; then
                 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result                  $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
               else                else
                 func_emit_wrapper no > $func_ltwrapper_scriptname_result                  func_emit_wrapper no > $func_ltwrapper_scriptname_result
Line 7873  EOF Line 10680  EOF
     # See if we need to build an old-fashioned archive.      # See if we need to build an old-fashioned archive.
     for oldlib in $oldlibs; do      for oldlib in $oldlibs; do
   
      if test "$build_libtool_libs" = convenience; then      case $build_libtool_libs in
        oldobjs="$libobjs_save $symfileobj"        convenience)
        addlibs="$convenience"          oldobjs="$libobjs_save $symfileobj"
        build_libtool_libs=no          addlibs=$convenience
      else 
        if test "$build_libtool_libs" = module; then 
          oldobjs="$libobjs_save" 
           build_libtool_libs=no            build_libtool_libs=no
        else          ;;
         module)
           oldobjs=$libobjs_save
           addlibs=$old_convenience
           build_libtool_libs=no
           ;;
         *)
           oldobjs="$old_deplibs $non_pic_objects"            oldobjs="$old_deplibs $non_pic_objects"
          if test "$preload" = yes && test -f "$symfileobj"; then          $preload && test -f "$symfileobj" \
            oldobjs="$oldobjs $symfileobj"            && func_append oldobjs " $symfileobj"
          fi          addlibs=$old_convenience
        fi          ;;
        addlibs="$old_convenience"      esac
      fi 
   
       if test -n "$addlibs"; then        if test -n "$addlibs"; then
        gentop="$output_objdir/${outputname}x"        gentop=$output_objdir/${outputname}x
        generated="$generated $gentop"        func_append generated " $gentop"
   
         func_extract_archives $gentop $addlibs          func_extract_archives $gentop $addlibs
        oldobjs="$oldobjs $func_extract_archives_result"        func_append oldobjs " $func_extract_archives_result"
       fi        fi
   
       # Do each command in the archive commands.        # Do each command in the archive commands.
      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then      if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
         cmds=$old_archive_from_new_cmds          cmds=$old_archive_from_new_cmds
       else        else
   
         # Add any objects from preloaded convenience libraries          # Add any objects from preloaded convenience libraries
         if test -n "$dlprefiles"; then          if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"          gentop=$output_objdir/${outputname}x
          generated="$generated $gentop"          func_append generated " $gentop"
   
           func_extract_archives $gentop $dlprefiles            func_extract_archives $gentop $dlprefiles
          oldobjs="$oldobjs $func_extract_archives_result"          func_append oldobjs " $func_extract_archives_result"
         fi          fi
   
         # POSIX demands no paths to be encoded in archives.  We have          # POSIX demands no paths to be encoded in archives.  We have
Line 7925  EOF Line 10734  EOF
             done | sort | sort -uc >/dev/null 2>&1); then              done | sort | sort -uc >/dev/null 2>&1); then
           :            :
         else          else
          $ECHO "copying selected object files to avoid basename conflicts..."          echo "copying selected object files to avoid basename conflicts..."
          gentop="$output_objdir/${outputname}x"          gentop=$output_objdir/${outputname}x
          generated="$generated $gentop"          func_append generated " $gentop"
           func_mkdir_p "$gentop"            func_mkdir_p "$gentop"
           save_oldobjs=$oldobjs            save_oldobjs=$oldobjs
           oldobjs=            oldobjs=
Line 7935  EOF Line 10744  EOF
           for obj in $save_oldobjs            for obj in $save_oldobjs
           do            do
             func_basename "$obj"              func_basename "$obj"
            objbase="$func_basename_result"            objbase=$func_basename_result
             case " $oldobjs " in              case " $oldobjs " in
             " ") oldobjs=$obj ;;              " ") oldobjs=$obj ;;
             *[\ /]"$objbase "*)              *[\ /]"$objbase "*)
Line 7951  EOF Line 10760  EOF
                 esac                  esac
               done                done
               func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"                func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
              oldobjs="$oldobjs $gentop/$newobj"              func_append oldobjs " $gentop/$newobj"
               ;;                ;;
            *) oldobjs="$oldobjs $obj" ;;            *) func_append oldobjs " $obj" ;;
             esac              esac
           done            done
         fi          fi
           func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
           tool_oldlib=$func_to_tool_file_result
         eval cmds=\"$old_archive_cmds\"          eval cmds=\"$old_archive_cmds\"
   
         func_len " $cmds"          func_len " $cmds"
         len=$func_len_result          len=$func_len_result
         if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then          if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
           cmds=$old_archive_cmds            cmds=$old_archive_cmds
           elif test -n "$archiver_list_spec"; then
             func_verbose "using command file archive linking..."
             for obj in $oldobjs
             do
               func_to_tool_file "$obj"
               $ECHO "$func_to_tool_file_result"
             done > $output_objdir/$libname.libcmd
             func_to_tool_file "$output_objdir/$libname.libcmd"
             oldobjs=" $archiver_list_spec$func_to_tool_file_result"
             cmds=$old_archive_cmds
         else          else
           # the command line is too long to link in one step, link in parts            # the command line is too long to link in one step, link in parts
           func_verbose "using piecewise archive linking..."            func_verbose "using piecewise archive linking..."
Line 7992  EOF Line 10813  EOF
             else              else
               # the above command should be used before it gets too long                # the above command should be used before it gets too long
               oldobjs=$objlist                oldobjs=$objlist
              if test "$obj" = "$last_oldobj" ; then              if test "$obj" = "$last_oldobj"; then
                 RANLIB=$save_RANLIB                  RANLIB=$save_RANLIB
               fi                fi
               test -z "$concat_cmds" || concat_cmds=$concat_cmds~                test -z "$concat_cmds" || concat_cmds=$concat_cmds~
              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"              eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
               objlist=                objlist=
               len=$len0                len=$len0
             fi              fi
           done            done
           RANLIB=$save_RANLIB            RANLIB=$save_RANLIB
           oldobjs=$objlist            oldobjs=$objlist
          if test "X$oldobjs" = "X" ; then          if test -z "$oldobjs"; then
             eval cmds=\"\$concat_cmds\"              eval cmds=\"\$concat_cmds\"
           else            else
             eval cmds=\"\$concat_cmds~\$old_archive_cmds\"              eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
Line 8020  EOF Line 10841  EOF
     case $output in      case $output in
     *.la)      *.la)
       old_library=        old_library=
      test "$build_old_libs" = yes && old_library="$libname.$libext"      test yes = "$build_old_libs" && old_library=$libname.$libext
       func_verbose "creating $output"        func_verbose "creating $output"
   
       # Preserve any variables that may affect compiler behavior        # Preserve any variables that may affect compiler behavior
Line 8035  EOF Line 10856  EOF
         fi          fi
       done        done
       # Quote the link command for shipping.        # Quote the link command for shipping.
      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"      relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
      if test "$hardcode_automatic" = yes ; then      if test yes = "$hardcode_automatic"; then
         relink_command=          relink_command=
       fi        fi
   
       # Only create the output if not a dry run.        # Only create the output if not a dry run.
       $opt_dry_run || {        $opt_dry_run || {
         for installed in no yes; do          for installed in no yes; do
          if test "$installed" = yes; then          if test yes = "$installed"; then
             if test -z "$install_libdir"; then              if test -z "$install_libdir"; then
               break                break
             fi              fi
            output="$output_objdir/$outputname"i            output=$output_objdir/${outputname}i
             # Replace all uninstalled libtool libraries with the installed ones              # Replace all uninstalled libtool libraries with the installed ones
             newdependency_libs=              newdependency_libs=
             for deplib in $dependency_libs; do              for deplib in $dependency_libs; do
               case $deplib in                case $deplib in
               *.la)                *.la)
                 func_basename "$deplib"                  func_basename "$deplib"
                name="$func_basename_result"                name=$func_basename_result
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`                func_resolve_sysroot "$deplib"
                 eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
                 test -z "$libdir" && \                  test -z "$libdir" && \
                  func_fatal_error "\`$deplib' is not a valid libtool archive"                  func_fatal_error "'$deplib' is not a valid libtool archive"
                newdependency_libs="$newdependency_libs $libdir/$name"                func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
                 ;;                  ;;
              *) newdependency_libs="$newdependency_libs $deplib" ;;              -L*)
                 func_stripname -L '' "$deplib"
                 func_replace_sysroot "$func_stripname_result"
                 func_append newdependency_libs " -L$func_replace_sysroot_result"
                 ;;
               -R*)
                 func_stripname -R '' "$deplib"
                 func_replace_sysroot "$func_stripname_result"
                 func_append newdependency_libs " -R$func_replace_sysroot_result"
                 ;;
               *) func_append newdependency_libs " $deplib" ;;
               esac                esac
             done              done
            dependency_libs="$newdependency_libs"            dependency_libs=$newdependency_libs
             newdlfiles=              newdlfiles=
   
             for lib in $dlfiles; do              for lib in $dlfiles; do
               case $lib in                case $lib in
               *.la)                *.la)
                 func_basename "$lib"                  func_basename "$lib"
                name="$func_basename_result"                name=$func_basename_result
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`                eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                 test -z "$libdir" && \                  test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"                  func_fatal_error "'$lib' is not a valid libtool archive"
                newdlfiles="$newdlfiles $libdir/$name"                func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
                 ;;                  ;;
              *) newdlfiles="$newdlfiles $lib" ;;              *) func_append newdlfiles " $lib" ;;
               esac                esac
             done              done
            dlfiles="$newdlfiles"            dlfiles=$newdlfiles
             newdlprefiles=              newdlprefiles=
             for lib in $dlprefiles; do              for lib in $dlprefiles; do
               case $lib in                case $lib in
Line 8090  EOF Line 10922  EOF
                 # didn't already link the preopened objects directly into                  # didn't already link the preopened objects directly into
                 # the library:                  # the library:
                 func_basename "$lib"                  func_basename "$lib"
                name="$func_basename_result"                name=$func_basename_result
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`                eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                 test -z "$libdir" && \                  test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"                  func_fatal_error "'$lib' is not a valid libtool archive"
                newdlprefiles="$newdlprefiles $libdir/$name"                func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
                 ;;                  ;;
               esac                esac
             done              done
            dlprefiles="$newdlprefiles"            dlprefiles=$newdlprefiles
           else            else
             newdlfiles=              newdlfiles=
             for lib in $dlfiles; do              for lib in $dlfiles; do
               case $lib in                case $lib in
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;                [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
                 *) abs=`pwd`"/$lib" ;;                  *) abs=`pwd`"/$lib" ;;
               esac                esac
              newdlfiles="$newdlfiles $abs"              func_append newdlfiles " $abs"
             done              done
            dlfiles="$newdlfiles"            dlfiles=$newdlfiles
             newdlprefiles=              newdlprefiles=
             for lib in $dlprefiles; do              for lib in $dlprefiles; do
               case $lib in                case $lib in
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;                [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
                 *) abs=`pwd`"/$lib" ;;                  *) abs=`pwd`"/$lib" ;;
               esac                esac
              newdlprefiles="$newdlprefiles $abs"              func_append newdlprefiles " $abs"
             done              done
            dlprefiles="$newdlprefiles"            dlprefiles=$newdlprefiles
           fi            fi
           $RM $output            $RM $output
           # place dlname in correct position for cygwin            # place dlname in correct position for cygwin
             # In fact, it would be nice if we could use this code for all target
             # systems that can't hard-code library paths into their executables
             # and that have no shared library path variable independent of PATH,
             # but it turns out we can't easily determine that from inspecting
             # libtool variables, so we have to hard-code the OSs to which it
             # applies here; at the moment, that means platforms that use the PE
             # object format with DLL files.  See the long comment at the top of
             # tests/bindir.at for full details.
           tdlname=$dlname            tdlname=$dlname
           case $host,$output,$installed,$module,$dlname in            case $host,$output,$installed,$module,$dlname in
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
               # If a -bindir argument was supplied, place the dll there.
               if test -n "$bindir"; then
                 func_relative_path "$install_libdir" "$bindir"
                 tdlname=$func_relative_path_result/$dlname
               else
                 # Otherwise fall back on heuristic.
                 tdlname=../bin/$dlname
               fi
               ;;
           esac            esac
           $ECHO > $output "\            $ECHO > $output "\
 # $outputname - a libtool library file  # $outputname - a libtool library file
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
 #  #
 # Please DO NOT delete this file!  # Please DO NOT delete this file!
 # It is necessary for linking the library.  # It is necessary for linking the library.
Line 8141  library_names='$library_names' Line 10990  library_names='$library_names'
 # The name of the static archive.  # The name of the static archive.
 old_library='$old_library'  old_library='$old_library'
   
# Linker flags that can not go in dependency_libs.# Linker flags that cannot go in dependency_libs.
 inherited_linker_flags='$new_inherited_linker_flags'  inherited_linker_flags='$new_inherited_linker_flags'
   
 # Libraries that this one depends upon.  # Libraries that this one depends upon.
Line 8167  dlpreopen='$dlprefiles' Line 11016  dlpreopen='$dlprefiles'
   
 # Directory that this library needs to be installed in:  # Directory that this library needs to be installed in:
 libdir='$install_libdir'"  libdir='$install_libdir'"
          if test "$installed" = no && test "$need_relink" = yes; then          if test no,yes = "$installed,$need_relink"; then
             $ECHO >> $output "\              $ECHO >> $output "\
 relink_command=\"$relink_command\""  relink_command=\"$relink_command\""
           fi            fi
Line 8182  relink_command=\"$relink_command\"" Line 11031  relink_command=\"$relink_command\""
     exit $EXIT_SUCCESS      exit $EXIT_SUCCESS
 }  }
   
{ test "$mode" = link || test "$mode" = relink; } &&if test link = "$opt_mode" || test relink = "$opt_mode"; then
    func_mode_link ${1+"$@"}  func_mode_link ${1+"$@"}
 fi
   
   
 # func_mode_uninstall arg...  # func_mode_uninstall arg...
 func_mode_uninstall ()  func_mode_uninstall ()
 {  {
    $opt_debug    $debug_cmd
    RM="$nonopt"
     RM=$nonopt
     files=      files=
    rmforce=    rmforce=false
     exit_status=0      exit_status=0
   
     # This variable tells wrapper scripts just to set variables rather      # This variable tells wrapper scripts just to set variables rather
     # than running their programs.      # than running their programs.
    libtool_install_magic="$magic"    libtool_install_magic=$magic
   
     for arg      for arg
     do      do
       case $arg in        case $arg in
      -f) RM="$RM $arg"; rmforce=yes ;;      -f) func_append RM " $arg"; rmforce=: ;;
      -*) RM="$RM $arg" ;;      -*) func_append RM " $arg" ;;
      *) files="$files $arg" ;;      *) func_append files " $arg" ;;
       esac        esac
     done      done
   
Line 8213  func_mode_uninstall () Line 11064  func_mode_uninstall ()
   
     rmdirs=      rmdirs=
   
     origobjdir="$objdir"  
     for file in $files; do      for file in $files; do
       func_dirname "$file" "" "."        func_dirname "$file" "" "."
      dir="$func_dirname_result"      dir=$func_dirname_result
      if test "X$dir" = X.; then      if test . = "$dir"; then
        objdir="$origobjdir"        odir=$objdir
       else        else
        objdir="$dir/$origobjdir"        odir=$dir/$objdir
       fi        fi
       func_basename "$file"        func_basename "$file"
      name="$func_basename_result"      name=$func_basename_result
      test "$mode" = uninstall && objdir="$dir"      test uninstall = "$opt_mode" && odir=$dir
   
      # Remember objdir for removal later, being careful to avoid duplicates      # Remember odir for removal later, being careful to avoid duplicates
      if test "$mode" = clean; then      if test clean = "$opt_mode"; then
         case " $rmdirs " in          case " $rmdirs " in
          *" $objdir "*) ;;          *" $odir "*) ;;
          *) rmdirs="$rmdirs $objdir" ;;          *) func_append rmdirs " $odir" ;;
         esac          esac
       fi        fi
   
Line 8242  func_mode_uninstall () Line 11092  func_mode_uninstall ()
       elif test -d "$file"; then        elif test -d "$file"; then
         exit_status=1          exit_status=1
         continue          continue
      elif test "$rmforce" = yes; then      elif $rmforce; then
         continue          continue
       fi        fi
   
      rmfiles="$file"      rmfiles=$file
   
       case $name in        case $name in
       *.la)        *.la)
Line 8256  func_mode_uninstall () Line 11106  func_mode_uninstall ()
   
           # Delete the libtool libraries and symlinks.            # Delete the libtool libraries and symlinks.
           for n in $library_names; do            for n in $library_names; do
            rmfiles="$rmfiles $objdir/$n"            func_append rmfiles " $odir/$n"
           done            done
          test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"          test -n "$old_library" && func_append rmfiles " $odir/$old_library"
   
          case "$mode" in          case $opt_mode in
           clean)            clean)
            case "  $library_names " in            case " $library_names " in
            # "  " in the beginning catches empty $dlname 
             *" $dlname "*) ;;              *" $dlname "*) ;;
            *) rmfiles="$rmfiles $objdir/$dlname" ;;            *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
             esac              esac
            test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"            test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
             ;;              ;;
           uninstall)            uninstall)
             if test -n "$library_names"; then              if test -n "$library_names"; then
               # Do each command in the postuninstall commands.                # Do each command in the postuninstall commands.
              func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'              func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
             fi              fi
   
             if test -n "$old_library"; then              if test -n "$old_library"; then
               # Do each command in the old_postuninstall commands.                # Do each command in the old_postuninstall commands.
              func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'              func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
             fi              fi
             # FIXME: should reinstall the best remaining shared library.              # FIXME: should reinstall the best remaining shared library.
             ;;              ;;
Line 8293  func_mode_uninstall () Line 11142  func_mode_uninstall ()
           func_source $dir/$name            func_source $dir/$name
   
           # Add PIC object to the list of files to remove.            # Add PIC object to the list of files to remove.
          if test -n "$pic_object" &&          if test -n "$pic_object" && test none != "$pic_object"; then
             test "$pic_object" != none; then            func_append rmfiles " $dir/$pic_object"
            rmfiles="$rmfiles $dir/$pic_object" 
           fi            fi
   
           # Add non-PIC object to the list of files to remove.            # Add non-PIC object to the list of files to remove.
          if test -n "$non_pic_object" &&          if test -n "$non_pic_object" && test none != "$non_pic_object"; then
             test "$non_pic_object" != none; then            func_append rmfiles " $dir/$non_pic_object"
            rmfiles="$rmfiles $dir/$non_pic_object" 
           fi            fi
         fi          fi
         ;;          ;;
   
       *)        *)
        if test "$mode" = clean ; then        if test clean = "$opt_mode"; then
           noexename=$name            noexename=$name
           case $file in            case $file in
           *.exe)            *.exe)
Line 8317  func_mode_uninstall () Line 11164  func_mode_uninstall ()
             noexename=$func_stripname_result              noexename=$func_stripname_result
             # $file with .exe has already been added to rmfiles,              # $file with .exe has already been added to rmfiles,
             # add $file without .exe              # add $file without .exe
            rmfiles="$rmfiles $file"            func_append rmfiles " $file"
             ;;              ;;
           esac            esac
           # Do a test to see if this is a libtool program.            # Do a test to see if this is a libtool program.
Line 8326  func_mode_uninstall () Line 11173  func_mode_uninstall ()
               func_ltwrapper_scriptname "$file"                func_ltwrapper_scriptname "$file"
               relink_command=                relink_command=
               func_source $func_ltwrapper_scriptname_result                func_source $func_ltwrapper_scriptname_result
              rmfiles="$rmfiles $func_ltwrapper_scriptname_result"              func_append rmfiles " $func_ltwrapper_scriptname_result"
             else              else
               relink_command=                relink_command=
               func_source $dir/$noexename                func_source $dir/$noexename
Line 8334  func_mode_uninstall () Line 11181  func_mode_uninstall ()
   
             # note $name still contains .exe if it was in $file originally              # note $name still contains .exe if it was in $file originally
             # as does the version of $file that was added into $rmfiles              # as does the version of $file that was added into $rmfiles
            rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"            func_append rmfiles " $odir/$name $odir/${name}S.$objext"
            if test "$fast_install" = yes && test -n "$relink_command"; then            if test yes = "$fast_install" && test -n "$relink_command"; then
              rmfiles="$rmfiles $objdir/lt-$name"              func_append rmfiles " $odir/lt-$name"
             fi              fi
            if test "X$noexename" != "X$name" ; then            if test "X$noexename" != "X$name"; then
              rmfiles="$rmfiles $objdir/lt-${noexename}.c"              func_append rmfiles " $odir/lt-$noexename.c"
             fi              fi
           fi            fi
         fi          fi
Line 8347  func_mode_uninstall () Line 11194  func_mode_uninstall ()
       esac        esac
       func_show_eval "$RM $rmfiles" 'exit_status=1'        func_show_eval "$RM $rmfiles" 'exit_status=1'
     done      done
     objdir="$origobjdir"  
   
    # Try to remove the ${objdir}s in the directories where we deleted files    # Try to remove the $objdir's in the directories where we deleted files
     for dir in $rmdirs; do      for dir in $rmdirs; do
       if test -d "$dir"; then        if test -d "$dir"; then
         func_show_eval "rmdir $dir >/dev/null 2>&1"          func_show_eval "rmdir $dir >/dev/null 2>&1"
Line 8359  func_mode_uninstall () Line 11205  func_mode_uninstall ()
     exit $exit_status      exit $exit_status
 }  }
   
{ test "$mode" = uninstall || test "$mode" = clean; } &&if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
    func_mode_uninstall ${1+"$@"}  func_mode_uninstall ${1+"$@"}
 fi
   
test -z "$mode" && {test -z "$opt_mode" && {
  help="$generic_help"  help=$generic_help
   func_fatal_help "you must specify a MODE"    func_fatal_help "you must specify a MODE"
 }  }
   
 test -z "$exec_cmd" && \  test -z "$exec_cmd" && \
  func_fatal_help "invalid operation mode \`$mode'"  func_fatal_help "invalid operation mode '$opt_mode'"
   
 if test -n "$exec_cmd"; then  if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"    eval exec "$exec_cmd"
Line 8379  exit $exit_status Line 11226  exit $exit_status
   
   
 # The TAGs below are defined such that we never get into a situation  # The TAGs below are defined such that we never get into a situation
# in which we disable both kinds of libraries.  Given conflicting# where we disable both kinds of libraries.  Given conflicting
 # choices, we go for a static library, that is the most portable,  # choices, we go for a static library, that is the most portable,
 # since we can't tell whether shared libraries were disabled because  # since we can't tell whether shared libraries were disabled because
 # the user asked for that or because the platform doesn't support  # the user asked for that or because the platform doesn't support
Line 8402  build_old_libs=`case $build_libtool_libs in yes) echo  Line 11249  build_old_libs=`case $build_libtool_libs in yes) echo 
 # mode:shell-script  # mode:shell-script
 # sh-indentation:2  # sh-indentation:2
 # End:  # End:
 # vi:sw=2  
   

Removed from v.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>