Ignore:
Timestamp:
Mar 2, 2017, 7:39:59 AM (8 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_StructOpt_integration_tests, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_ChronosMutex, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, GeometryObjects, Gui_displays_atomic_force_velocity, IndependentFragmentGrids_IntegrationTest, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, RotateToPrincipalAxisSystem_UndoRedo, StoppableMakroAction, Subpackage_levmar, Subpackage_vmg, ThirdParty_MPQC_rebuilt_buildsystem, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, Ubuntu_1604_changes, stable
Children:
73feb7
Parents:
860145
git-author:
Frederik Heber <heber@…> (11/16/16 11:14:10)
git-committer:
Frederik Heber <heber@…> (03/02/17 07:39:59)
Message:

Changes to mpqc_open to be usable as autoconf subdir.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ThirdParty/mpqc_open/bin/ltmain.sh

    r860145 r482400e  
    1 # ltmain.sh - Provide generalized library-building support services.
    2 # NOTE: Changing this file will not affect anything until you rerun configure.
    3 #
    4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
    5 # Free Software Foundation, Inc.
    6 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
    7 #
    8 # This program is free software; you can redistribute it and/or modify
     1
     2# libtool (GNU libtool) 2.4.2
     3# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
     4
     5# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
     6# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
     7# This is free software; see the source for copying conditions.  There is NO
     8# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     9
     10# GNU Libtool is free software; you can redistribute it and/or modify
    911# it under the terms of the GNU General Public License as published by
    1012# the Free Software Foundation; either version 2 of the License, or
    1113# (at your option) any later version.
    1214#
    13 # This program is distributed in the hope that it will be useful, but
     15# As a special exception to the GNU General Public License,
     16# if you distribute this file as part of a program or library that
     17# is built using GNU Libtool, you may include this file under the
     18# same distribution terms that you use for the rest of that program.
     19#
     20# GNU Libtool is distributed in the hope that it will be useful, but
    1421# WITHOUT ANY WARRANTY; without even the implied warranty of
    1522# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     
    1724#
    1825# You should have received a copy of the GNU General Public License
    19 # along with this program; if not, write to the Free Software
    20 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
     26# along with GNU Libtool; see the file COPYING.  If not, a copy
     27# can be downloaded from http://www.gnu.org/licenses/gpl.html,
     28# or obtained by writing to the Free Software Foundation, Inc.,
     29# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
     30
     31# Usage: $progname [OPTION]... [MODE-ARG]...
    2132#
    22 # As a special exception to the GNU General Public License, if you
    23 # distribute this file as part of a program that contains a
    24 # configuration script generated by Autoconf, you may include it under
    25 # the same distribution terms that you use for the rest of that program.
    26 
    27 basename="s,^.*/,,g"
     33# Provide generalized library-building support services.
     34#
     35#       --config             show all configuration variables
     36#       --debug              enable verbose shell tracing
     37#   -n, --dry-run            display commands without modifying any files
     38#       --features           display basic configuration information and exit
     39#       --mode=MODE          use operation mode MODE
     40#       --preserve-dup-deps  don't remove duplicate dependency libraries
     41#       --quiet, --silent    don't print informational messages
     42#       --no-quiet, --no-silent
     43#                            print informational messages (default)
     44#       --no-warn            don't display warning messages
     45#       --tag=TAG            use configuration variables from tag TAG
     46#   -v, --verbose            print more informational messages than default
     47#       --no-verbose         don't print the extra informational messages
     48#       --version            print version information
     49#   -h, --help, --help-all   print short, long, or detailed help message
     50#
     51# MODE must be one of the following:
     52#
     53#         clean              remove files from the build directory
     54#         compile            compile a source file into a libtool object
     55#         execute            automatically set library path, then run a program
     56#         finish             complete the installation of libtool libraries
     57#         install            install libraries or executables
     58#         link               create a library or an executable
     59#         uninstall          remove libraries from an installed directory
     60#
     61# MODE-ARGS vary depending on the MODE.  When passed as first option,
     62# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
     63# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
     64#
     65# When reporting a bug, please describe a test case to reproduce it and
     66# include the following information:
     67#
     68#         host-triplet: $host
     69#         shell:                $SHELL
     70#         compiler:             $LTCC
     71#         compiler flags:               $LTCFLAGS
     72#         linker:               $LD (gnu? $with_gnu_ld)
     73#         $progname:    (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
     74#         automake:     $automake_version
     75#         autoconf:     $autoconf_version
     76#
     77# Report bugs to <bug-libtool@gnu.org>.
     78# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
     79# General help using GNU software: <http://www.gnu.org/gethelp/>.
     80
     81PROGRAM=libtool
     82PACKAGE=libtool
     83VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1"
     84TIMESTAMP=""
     85package_revision=1.3337
     86
     87# Be Bourne compatible
     88if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
     89  emulate sh
     90  NULLCMD=:
     91  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
     92  # is contrary to our usage.  Disable this feature.
     93  alias -g '${1+"$@"}'='"$@"'
     94  setopt NO_GLOB_SUBST
     95else
     96  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
     97fi
     98BIN_SH=xpg4; export BIN_SH # for Tru64
     99DUALCASE=1; export DUALCASE # for MKS sh
     100
     101# A function that is used when there is no print builtin or printf.
     102func_fallback_echo ()
     103{
     104  eval 'cat <<_LTECHO_EOF
     105$1
     106_LTECHO_EOF'
     107}
     108
     109# NLS nuisances: We save the old values to restore during execute mode.
     110lt_user_locale=
     111lt_safe_locale=
     112for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
     113do
     114  eval "if test \"\${$lt_var+set}\" = set; then
     115          save_$lt_var=\$$lt_var
     116          $lt_var=C
     117          export $lt_var
     118          lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
     119          lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
     120        fi"
     121done
     122LC_ALL=C
     123LANGUAGE=C
     124export LANGUAGE LC_ALL
     125
     126$lt_unset CDPATH
     127
    28128
    29129# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
     
    34134progpath="$0"
    35135
    36 # define SED for historic ltconfig's generated by Libtool 1.3
    37 test -z "$SED" && SED=sed
    38 
    39 # The name of this program:
    40 progname=`echo "$progpath" | $SED $basename`
    41 modename="$progname"
     136
     137
     138: ${CP="cp -f"}
     139test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
     140: ${MAKE="make"}
     141: ${MKDIR="mkdir"}
     142: ${MV="mv -f"}
     143: ${RM="rm -f"}
     144: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
     145: ${Xsed="$SED -e 1s/^X//"}
    42146
    43147# Global variables:
    44148EXIT_SUCCESS=0
    45149EXIT_FAILURE=1
    46 
    47 PROGRAM=ltmain.sh
    48 PACKAGE=libtool
    49 VERSION=1.5.22
    50 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
    51 
    52 # See if we are running on zsh, and set the options which allow our
    53 # commands through without removal of \ escapes.
    54 if test -n "${ZSH_VERSION+set}" ; then
    55   setopt NO_GLOB_SUBST
    56 fi
    57 # Same for EGREP, and just to be sure, do LTCC as well
    58 if test "X$EGREP" = X ; then
    59     EGREP=egrep
    60 fi
    61 if test "X$LTCC" = X ; then
    62     LTCC=${CC-gcc}
    63 fi
    64 
    65 # Check that we have a working $echo.
    66 if test "X$1" = X--no-reexec; then
    67   # Discard the --no-reexec flag, and continue.
    68   shift
    69 elif test "X$1" = X--fallback-echo; then
    70   # Avoid inline document here, it may be left over
    71   :
    72 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
    73   # Yippee, $echo works!
    74   :
    75 else
    76   # Restart under the correct shell, and then maybe $echo will work.
    77   exec $SHELL "$progpath" --no-reexec ${1+"$@"}
    78 fi
    79 
    80 if test "X$1" = X--fallback-echo; then
    81   # used as fallback echo
    82   shift
    83   cat <<EOF
    84 $*
    85 EOF
    86   exit $EXIT_SUCCESS
    87 fi
    88 
    89 default_mode=
    90 help="Try \`$progname --help' for more information."
    91 magic="%%%MAGIC variable%%%"
    92 mkdir="mkdir"
    93 mv="mv -f"
    94 rm="rm -f"
    95 
    96 # Sed substitution that helps us do robust quoting.  It backslashifies
    97 # metacharacters that are still active within double-quoted strings.
    98 Xsed="${SED}"' -e 1s/^X//'
    99 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
    100 # test EBCDIC or ASCII
    101 case `echo X|tr X '\101'` in
    102  A) # ASCII based system
    103     # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
    104   SP2NL='tr \040 \012'
    105   NL2SP='tr \015\012 \040\040'
    106   ;;
    107  *) # EBCDIC based system
    108   SP2NL='tr \100 \n'
    109   NL2SP='tr \r\n \100\100'
    110   ;;
    111 esac
    112 
    113 # NLS nuisances.
    114 # Only set LANG and LC_ALL to C if already set.
    115 # These must not be set unconditionally because not all systems understand
    116 # e.g. LANG=C (notably SCO).
    117 # We save the old values to restore during execute mode.
    118 if test "${LC_ALL+set}" = set; then
    119   save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
    120 fi
    121 if test "${LANG+set}" = set; then
    122   save_LANG="$LANG"; LANG=C; export LANG
    123 fi
     150EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
     151EXIT_SKIP=77      # $? = 77 is used to indicate a skipped test to automake.
     152
     153exit_status=$EXIT_SUCCESS
    124154
    125155# Make sure IFS has a sensible default
     
    128158IFS="   $lt_nl"
    129159
    130 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
    131   $echo "$modename: not configured to build any kind of library" 1>&2
    132   $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
    133   exit $EXIT_FAILURE
    134 fi
    135 
    136 # Global variables.
    137 mode=$default_mode
    138 nonopt=
    139 prev=
    140 prevopt=
    141 run=
    142 show="$echo"
    143 show_help=
    144 execute_dlfiles=
    145 duplicate_deps=no
    146 preserve_args=
    147 lo2o="s/\\.lo\$/.${objext}/"
    148 o2lo="s/\\.${objext}\$/.lo/"
    149 
    150 if test -z "$max_cmd_len"; then
    151   i=0
    152   testring="ABCD"
    153   new_result=
    154  
    155   # If test is not a shell built-in, we'll probably end up computing a
    156   # maximum length that is only half of the actual maximum length, but
    157   # we can't tell.
    158   while (test "X"`$SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
    159              = "XX$testring") >/dev/null 2>&1 &&
    160           new_result=`expr "X$testring" : ".*" 2>&1` &&
    161           max_cmd_len="$new_result" &&
    162           test "$i" != 17 # 1/2 MB should be enough
    163   do
    164     i=`expr $i + 1`
    165     testring="$testring$testring"
     160dirname="s,/[^/]*$,,"
     161basename="s,^.*/,,"
     162
     163# func_dirname file append nondir_replacement
     164# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
     165# otherwise set result to NONDIR_REPLACEMENT.
     166func_dirname ()
     167{
     168    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
     169    if test "X$func_dirname_result" = "X${1}"; then
     170      func_dirname_result="${3}"
     171    else
     172      func_dirname_result="$func_dirname_result${2}"
     173    fi
     174} # func_dirname may be replaced by extended shell implementation
     175
     176
     177# func_basename file
     178func_basename ()
     179{
     180    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
     181} # func_basename may be replaced by extended shell implementation
     182
     183
     184# func_dirname_and_basename file append nondir_replacement
     185# perform func_basename and func_dirname in a single function
     186# call:
     187#   dirname:  Compute the dirname of FILE.  If nonempty,
     188#             add APPEND to the result, otherwise set result
     189#             to NONDIR_REPLACEMENT.
     190#             value returned in "$func_dirname_result"
     191#   basename: Compute filename of FILE.
     192#             value retuned in "$func_basename_result"
     193# Implementation must be kept synchronized with func_dirname
     194# and func_basename. For efficiency, we do not delegate to
     195# those functions but instead duplicate the functionality here.
     196func_dirname_and_basename ()
     197{
     198    # Extract subdirectory from the argument.
     199    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
     200    if test "X$func_dirname_result" = "X${1}"; then
     201      func_dirname_result="${3}"
     202    else
     203      func_dirname_result="$func_dirname_result${2}"
     204    fi
     205    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
     206} # func_dirname_and_basename may be replaced by extended shell implementation
     207
     208
     209# func_stripname prefix suffix name
     210# strip PREFIX and SUFFIX off of NAME.
     211# PREFIX and SUFFIX must not contain globbing or regex special
     212# characters, hashes, percent signs, but SUFFIX may contain a leading
     213# dot (in which case that matches only a dot).
     214# func_strip_suffix prefix name
     215func_stripname ()
     216{
     217    case ${2} in
     218      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
     219      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
     220    esac
     221} # func_stripname may be replaced by extended shell implementation
     222
     223
     224# These SED scripts presuppose an absolute path with a trailing slash.
     225pathcar='s,^/\([^/]*\).*$,\1,'
     226pathcdr='s,^/[^/]*,,'
     227removedotparts=':dotsl
     228                s@/\./@/@g
     229                t dotsl
     230                s,/\.$,/,'
     231collapseslashes='s@/\{1,\}@/@g'
     232finalslash='s,/*$,/,'
     233
     234# func_normal_abspath PATH
     235# Remove doubled-up and trailing slashes, "." path components,
     236# and cancel out any ".." path components in PATH after making
     237# it an absolute path.
     238#             value returned in "$func_normal_abspath_result"
     239func_normal_abspath ()
     240{
     241  # Start from root dir and reassemble the path.
     242  func_normal_abspath_result=
     243  func_normal_abspath_tpath=$1
     244  func_normal_abspath_altnamespace=
     245  case $func_normal_abspath_tpath in
     246    "")
     247      # Empty path, that just means $cwd.
     248      func_stripname '' '/' "`pwd`"
     249      func_normal_abspath_result=$func_stripname_result
     250      return
     251    ;;
     252    # The next three entries are used to spot a run of precisely
     253    # two leading slashes without using negated character classes;
     254    # we take advantage of case's first-match behaviour.
     255    ///*)
     256      # Unusual form of absolute path, do nothing.
     257    ;;
     258    //*)
     259      # Not necessarily an ordinary path; POSIX reserves leading '//'
     260      # and for example Cygwin uses it to access remote file shares
     261      # over CIFS/SMB, so we conserve a leading double slash if found.
     262      func_normal_abspath_altnamespace=/
     263    ;;
     264    /*)
     265      # Absolute path, do nothing.
     266    ;;
     267    *)
     268      # Relative path, prepend $cwd.
     269      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
     270    ;;
     271  esac
     272  # Cancel out all the simple stuff to save iterations.  We also want
     273  # the path to end with a slash for ease of parsing, so make sure
     274  # there is one (and only one) here.
     275  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
     276        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
     277  while :; do
     278    # Processed it all yet?
     279    if test "$func_normal_abspath_tpath" = / ; then
     280      # If we ascended to the root using ".." the result may be empty now.
     281      if test -z "$func_normal_abspath_result" ; then
     282        func_normal_abspath_result=/
     283      fi
     284      break
     285    fi
     286    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
     287        -e "$pathcar"`
     288    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
     289        -e "$pathcdr"`
     290    # Figure out what to do with it
     291    case $func_normal_abspath_tcomponent in
     292      "")
     293        # Trailing empty path component, ignore it.
     294      ;;
     295      ..)
     296        # Parent dir; strip last assembled component from result.
     297        func_dirname "$func_normal_abspath_result"
     298        func_normal_abspath_result=$func_dirname_result
     299      ;;
     300      *)
     301        # Actual path component, append it.
     302        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
     303      ;;
     304    esac
    166305  done
    167   testring=
    168   # Add a significant safety factor because C++ compilers can tack on massive
    169   # amounts of additional arguments before passing them to the linker.
    170   # It appears as though 1/2 is a usable value.
    171   max_cmd_len=`expr $max_cmd_len \/ 2`
    172 fi
    173 
    174 #####################################
    175 # Shell function definitions:
    176 # This seems to be the best place for them
     306  # Restore leading double-slash if one was found on entry.
     307  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
     308}
     309
     310# func_relative_path SRCDIR DSTDIR
     311# generates a relative path from SRCDIR to DSTDIR, with a trailing
     312# slash if non-empty, suitable for immediately appending a filename
     313# without needing to append a separator.
     314#             value returned in "$func_relative_path_result"
     315func_relative_path ()
     316{
     317  func_relative_path_result=
     318  func_normal_abspath "$1"
     319  func_relative_path_tlibdir=$func_normal_abspath_result
     320  func_normal_abspath "$2"
     321  func_relative_path_tbindir=$func_normal_abspath_result
     322
     323  # Ascend the tree starting from libdir
     324  while :; do
     325    # check if we have found a prefix of bindir
     326    case $func_relative_path_tbindir in
     327      $func_relative_path_tlibdir)
     328        # found an exact match
     329        func_relative_path_tcancelled=
     330        break
     331        ;;
     332      $func_relative_path_tlibdir*)
     333        # found a matching prefix
     334        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
     335        func_relative_path_tcancelled=$func_stripname_result
     336        if test -z "$func_relative_path_result"; then
     337          func_relative_path_result=.
     338        fi
     339        break
     340        ;;
     341      *)
     342        func_dirname $func_relative_path_tlibdir
     343        func_relative_path_tlibdir=${func_dirname_result}
     344        if test "x$func_relative_path_tlibdir" = x ; then
     345          # Have to descend all the way to the root!
     346          func_relative_path_result=../$func_relative_path_result
     347          func_relative_path_tcancelled=$func_relative_path_tbindir
     348          break
     349        fi
     350        func_relative_path_result=../$func_relative_path_result
     351        ;;
     352    esac
     353  done
     354
     355  # Now calculate path; take care to avoid doubling-up slashes.
     356  func_stripname '' '/' "$func_relative_path_result"
     357  func_relative_path_result=$func_stripname_result
     358  func_stripname '/' '/' "$func_relative_path_tcancelled"
     359  if test "x$func_stripname_result" != x ; then
     360    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
     361  fi
     362
     363  # Normalisation. If bindir is libdir, return empty string,
     364  # else relative path ending with a slash; either way, target
     365  # file name can be directly appended.
     366  if test ! -z "$func_relative_path_result"; then
     367    func_stripname './' '' "$func_relative_path_result/"
     368    func_relative_path_result=$func_stripname_result
     369  fi
     370}
     371
     372# The name of this program:
     373func_dirname_and_basename "$progpath"
     374progname=$func_basename_result
     375
     376# Make sure we have an absolute path for reexecution:
     377case $progpath in
     378  [\\/]*|[A-Za-z]:\\*) ;;
     379  *[\\/]*)
     380     progdir=$func_dirname_result
     381     progdir=`cd "$progdir" && pwd`
     382     progpath="$progdir/$progname"
     383     ;;
     384  *)
     385     save_IFS="$IFS"
     386     IFS=${PATH_SEPARATOR-:}
     387     for progdir in $PATH; do
     388       IFS="$save_IFS"
     389       test -x "$progdir/$progname" && break
     390     done
     391     IFS="$save_IFS"
     392     test -n "$progdir" || progdir=`pwd`
     393     progpath="$progdir/$progname"
     394     ;;
     395esac
     396
     397# Sed substitution that helps us do robust quoting.  It backslashifies
     398# metacharacters that are still active within double-quoted strings.
     399Xsed="${SED}"' -e 1s/^X//'
     400sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
     401
     402# Same as above, but do not quote variable references.
     403double_quote_subst='s/\(["`\\]\)/\\\1/g'
     404
     405# Sed substitution that turns a string into a regex matching for the
     406# string literally.
     407sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
     408
     409# Sed substitution that converts a w32 file name or path
     410# which contains forward slashes, into one that contains
     411# (escaped) backslashes.  A very naive implementation.
     412lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
     413
     414# Re-`\' parameter expansions in output of double_quote_subst that were
     415# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
     416# in input to double_quote_subst, that '$' was protected from expansion.
     417# Since each input `\' is now two `\'s, look for any number of runs of
     418# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
     419bs='\\'
     420bs2='\\\\'
     421bs4='\\\\\\\\'
     422dollar='\$'
     423sed_double_backslash="\
     424  s/$bs4/&\\
     425/g
     426  s/^$bs2$dollar/$bs&/
     427  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
     428  s/\n//g"
     429
     430# Standard options:
     431opt_dry_run=false
     432opt_help=false
     433opt_quiet=false
     434opt_verbose=false
     435opt_warning=:
     436
     437# func_echo arg...
     438# Echo program name prefixed message, along with the current mode
     439# name if it has been set yet.
     440func_echo ()
     441{
     442    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
     443}
     444
     445# func_verbose arg...
     446# Echo program name prefixed message in verbose mode only.
     447func_verbose ()
     448{
     449    $opt_verbose && func_echo ${1+"$@"}
     450
     451    # A bug in bash halts the script if the last line of a function
     452    # fails when set -e is in force, so we need another command to
     453    # work around that:
     454    :
     455}
     456
     457# func_echo_all arg...
     458# Invoke $ECHO with all args, space-separated.
     459func_echo_all ()
     460{
     461    $ECHO "$*"
     462}
     463
     464# func_error arg...
     465# Echo program name prefixed message to standard error.
     466func_error ()
     467{
     468    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
     469}
     470
     471# func_warning arg...
     472# Echo program name prefixed warning message to standard error.
     473func_warning ()
     474{
     475    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
     476
     477    # bash bug again:
     478    :
     479}
     480
     481# func_fatal_error arg...
     482# Echo program name prefixed message to standard error, and exit.
     483func_fatal_error ()
     484{
     485    func_error ${1+"$@"}
     486    exit $EXIT_FAILURE
     487}
     488
     489# func_fatal_help arg...
     490# Echo program name prefixed message to standard error, followed by
     491# a help hint, and exit.
     492func_fatal_help ()
     493{
     494    func_error ${1+"$@"}
     495    func_fatal_error "$help"
     496}
     497help="Try \`$progname --help' for more information."  ## default
     498
     499
     500# func_grep expression filename
     501# Check whether EXPRESSION matches any line of FILENAME, without output.
     502func_grep ()
     503{
     504    $GREP "$1" "$2" >/dev/null 2>&1
     505}
     506
     507
     508# func_mkdir_p directory-path
     509# Make sure the entire path to DIRECTORY-PATH is available.
     510func_mkdir_p ()
     511{
     512    my_directory_path="$1"
     513    my_dir_list=
     514
     515    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
     516
     517      # Protect directory names starting with `-'
     518      case $my_directory_path in
     519        -*) my_directory_path="./$my_directory_path" ;;
     520      esac
     521
     522      # While some portion of DIR does not yet exist...
     523      while test ! -d "$my_directory_path"; do
     524        # ...make a list in topmost first order.  Use a colon delimited
     525        # list incase some portion of path contains whitespace.
     526        my_dir_list="$my_directory_path:$my_dir_list"
     527
     528        # If the last portion added has no slash in it, the list is done
     529        case $my_directory_path in */*) ;; *) break ;; esac
     530
     531        # ...otherwise throw away the child directory and loop
     532        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
     533      done
     534      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
     535
     536      save_mkdir_p_IFS="$IFS"; IFS=':'
     537      for my_dir in $my_dir_list; do
     538        IFS="$save_mkdir_p_IFS"
     539        # mkdir can fail with a `File exist' error if two processes
     540        # try to create one of the directories concurrently.  Don't
     541        # stop in that case!
     542        $MKDIR "$my_dir" 2>/dev/null || :
     543      done
     544      IFS="$save_mkdir_p_IFS"
     545
     546      # Bail out if we (or some other process) failed to create a directory.
     547      test -d "$my_directory_path" || \
     548        func_fatal_error "Failed to create \`$1'"
     549    fi
     550}
     551
    177552
    178553# func_mktempdir [string]
     
    184559    my_template="${TMPDIR-/tmp}/${1-$progname}"
    185560
    186     if test "$run" = ":"; then
     561    if test "$opt_dry_run" = ":"; then
    187562      # Return a directory name, but don't create it in dry-run mode
    188563      my_tmpdir="${my_template}-$$"
     
    193568
    194569      if test ! -d "$my_tmpdir"; then
    195         # Failing that, at least try and use $RANDOM to avoid a race
    196         my_tmpdir="${my_template}-${RANDOM-0}$$"
    197 
    198         save_mktempdir_umask=`umask`
    199         umask 0077
    200         $mkdir "$my_tmpdir"
    201         umask $save_mktempdir_umask
     570        # Failing that, at least try and use $RANDOM to avoid a race
     571        my_tmpdir="${my_template}-${RANDOM-0}$$"
     572
     573        save_mktempdir_umask=`umask`
     574        umask 0077
     575        $MKDIR "$my_tmpdir"
     576        umask $save_mktempdir_umask
    202577      fi
    203578
    204579      # If we're not in dry-run mode, bomb out on failure
    205       test -d "$my_tmpdir" || {
    206         $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
     580      test -d "$my_tmpdir" || \
     581        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
     582    fi
     583
     584    $ECHO "$my_tmpdir"
     585}
     586
     587
     588# func_quote_for_eval arg
     589# Aesthetically quote ARG to be evaled later.
     590# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
     591# is double-quoted, suitable for a subsequent eval, whereas
     592# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
     593# which are still active within double quotes backslashified.
     594func_quote_for_eval ()
     595{
     596    case $1 in
     597      *[\\\`\"\$]*)
     598        func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
     599      *)
     600        func_quote_for_eval_unquoted_result="$1" ;;
     601    esac
     602
     603    case $func_quote_for_eval_unquoted_result in
     604      # Double-quote args containing shell metacharacters to delay
     605      # word splitting, command substitution and and variable
     606      # expansion for a subsequent eval.
     607      # Many Bourne shells cannot handle close brackets correctly
     608      # in scan sets, so we specify it separately.
     609      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
     610        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
     611        ;;
     612      *)
     613        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
     614    esac
     615}
     616
     617
     618# func_quote_for_expand arg
     619# Aesthetically quote ARG to be evaled later; same as above,
     620# but do not quote variable references.
     621func_quote_for_expand ()
     622{
     623    case $1 in
     624      *[\\\`\"]*)
     625        my_arg=`$ECHO "$1" | $SED \
     626            -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
     627      *)
     628        my_arg="$1" ;;
     629    esac
     630
     631    case $my_arg in
     632      # Double-quote args containing shell metacharacters to delay
     633      # word splitting and command substitution for a subsequent eval.
     634      # Many Bourne shells cannot handle close brackets correctly
     635      # in scan sets, so we specify it separately.
     636      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
     637        my_arg="\"$my_arg\""
     638        ;;
     639    esac
     640
     641    func_quote_for_expand_result="$my_arg"
     642}
     643
     644
     645# func_show_eval cmd [fail_exp]
     646# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
     647# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
     648# is given, then evaluate it.
     649func_show_eval ()
     650{
     651    my_cmd="$1"
     652    my_fail_exp="${2-:}"
     653
     654    ${opt_silent-false} || {
     655      func_quote_for_expand "$my_cmd"
     656      eval "func_echo $func_quote_for_expand_result"
     657    }
     658
     659    if ${opt_dry_run-false}; then :; else
     660      eval "$my_cmd"
     661      my_status=$?
     662      if test "$my_status" -eq 0; then :; else
     663        eval "(exit $my_status); $my_fail_exp"
     664      fi
     665    fi
     666}
     667
     668
     669# func_show_eval_locale cmd [fail_exp]
     670# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
     671# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
     672# is given, then evaluate it.  Use the saved locale for evaluation.
     673func_show_eval_locale ()
     674{
     675    my_cmd="$1"
     676    my_fail_exp="${2-:}"
     677
     678    ${opt_silent-false} || {
     679      func_quote_for_expand "$my_cmd"
     680      eval "func_echo $func_quote_for_expand_result"
     681    }
     682
     683    if ${opt_dry_run-false}; then :; else
     684      eval "$lt_user_locale
     685            $my_cmd"
     686      my_status=$?
     687      eval "$lt_safe_locale"
     688      if test "$my_status" -eq 0; then :; else
     689        eval "(exit $my_status); $my_fail_exp"
     690      fi
     691    fi
     692}
     693
     694# func_tr_sh
     695# Turn $1 into a string suitable for a shell variable name.
     696# Result is stored in $func_tr_sh_result.  All characters
     697# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
     698# if $1 begins with a digit, a '_' is prepended as well.
     699func_tr_sh ()
     700{
     701  case $1 in
     702  [0-9]* | *[!a-zA-Z0-9_]*)
     703    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
     704    ;;
     705  * )
     706    func_tr_sh_result=$1
     707    ;;
     708  esac
     709}
     710
     711
     712# func_version
     713# Echo version message to standard output and exit.
     714func_version ()
     715{
     716    $opt_debug
     717
     718    $SED -n '/(C)/!b go
     719        :more
     720        /\./!{
     721          N
     722          s/\n# / /
     723          b more
     724        }
     725        :go
     726        /^# '$PROGRAM' (GNU /,/# warranty; / {
     727        s/^# //
     728        s/^# *$//
     729        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
     730        p
     731     }' < "$progpath"
     732     exit $?
     733}
     734
     735# func_usage
     736# Echo short help message to standard output and exit.
     737func_usage ()
     738{
     739    $opt_debug
     740
     741    $SED -n '/^# Usage:/,/^#  *.*--help/ {
     742        s/^# //
     743        s/^# *$//
     744        s/\$progname/'$progname'/
     745        p
     746    }' < "$progpath"
     747    echo
     748    $ECHO "run \`$progname --help | more' for full usage"
     749    exit $?
     750}
     751
     752# func_help [NOEXIT]
     753# Echo long help message to standard output and exit,
     754# unless 'noexit' is passed as argument.
     755func_help ()
     756{
     757    $opt_debug
     758
     759    $SED -n '/^# Usage:/,/# Report bugs to/ {
     760        :print
     761        s/^# //
     762        s/^# *$//
     763        s*\$progname*'$progname'*
     764        s*\$host*'"$host"'*
     765        s*\$SHELL*'"$SHELL"'*
     766        s*\$LTCC*'"$LTCC"'*
     767        s*\$LTCFLAGS*'"$LTCFLAGS"'*
     768        s*\$LD*'"$LD"'*
     769        s/\$with_gnu_ld/'"$with_gnu_ld"'/
     770        s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
     771        s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
     772        p
     773        d
     774     }
     775     /^# .* home page:/b print
     776     /^# General help using/b print
     777     ' < "$progpath"
     778    ret=$?
     779    if test -z "$1"; then
     780      exit $ret
     781    fi
     782}
     783
     784# func_missing_arg argname
     785# Echo program name prefixed message to standard error and set global
     786# exit_cmd.
     787func_missing_arg ()
     788{
     789    $opt_debug
     790
     791    func_error "missing argument for $1."
     792    exit_cmd=exit
     793}
     794
     795
     796# func_split_short_opt shortopt
     797# Set func_split_short_opt_name and func_split_short_opt_arg shell
     798# variables after splitting SHORTOPT after the 2nd character.
     799func_split_short_opt ()
     800{
     801    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
     802    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
     803
     804    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
     805    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
     806} # func_split_short_opt may be replaced by extended shell implementation
     807
     808
     809# func_split_long_opt longopt
     810# Set func_split_long_opt_name and func_split_long_opt_arg shell
     811# variables after splitting LONGOPT at the `=' sign.
     812func_split_long_opt ()
     813{
     814    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
     815    my_sed_long_arg='1s/^--[^=]*=//'
     816
     817    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
     818    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
     819} # func_split_long_opt may be replaced by extended shell implementation
     820
     821exit_cmd=:
     822
     823
     824
     825
     826
     827magic="%%%MAGIC variable%%%"
     828magic_exe="%%%MAGIC EXE variable%%%"
     829
     830# Global variables.
     831nonopt=
     832preserve_args=
     833lo2o="s/\\.lo\$/.${objext}/"
     834o2lo="s/\\.${objext}\$/.lo/"
     835extracted_archives=
     836extracted_serial=0
     837
     838# If this variable is set in any of the actions, the command in it
     839# will be execed at the end.  This prevents here-documents from being
     840# left over by shells.
     841exec_cmd=
     842
     843# func_append var value
     844# Append VALUE to the end of shell variable VAR.
     845func_append ()
     846{
     847    eval "${1}=\$${1}\${2}"
     848} # func_append may be replaced by extended shell implementation
     849
     850# func_append_quoted var value
     851# Quote VALUE and append to the end of shell variable VAR, separated
     852# by a space.
     853func_append_quoted ()
     854{
     855    func_quote_for_eval "${2}"
     856    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
     857} # func_append_quoted may be replaced by extended shell implementation
     858
     859
     860# func_arith arithmetic-term...
     861func_arith ()
     862{
     863    func_arith_result=`expr "${@}"`
     864} # func_arith may be replaced by extended shell implementation
     865
     866
     867# func_len string
     868# STRING may not start with a hyphen.
     869func_len ()
     870{
     871    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
     872} # func_len may be replaced by extended shell implementation
     873
     874
     875# func_lo2o object
     876func_lo2o ()
     877{
     878    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
     879} # func_lo2o may be replaced by extended shell implementation
     880
     881
     882# func_xform libobj-or-source
     883func_xform ()
     884{
     885    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
     886} # func_xform may be replaced by extended shell implementation
     887
     888
     889# func_fatal_configuration arg...
     890# Echo program name prefixed message to standard error, followed by
     891# a configuration failure hint, and exit.
     892func_fatal_configuration ()
     893{
     894    func_error ${1+"$@"}
     895    func_error "See the $PACKAGE documentation for more information."
     896    func_fatal_error "Fatal configuration error."
     897}
     898
     899
     900# func_config
     901# Display the configuration for all the tags in this script.
     902func_config ()
     903{
     904    re_begincf='^# ### BEGIN LIBTOOL'
     905    re_endcf='^# ### END LIBTOOL'
     906
     907    # Default configuration.
     908    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
     909
     910    # Now print the configurations for the tags.
     911    for tagname in $taglist; do
     912      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
     913    done
     914
     915    exit $?
     916}
     917
     918# func_features
     919# Display the features supported by this script.
     920func_features ()
     921{
     922    echo "host: $host"
     923    if test "$build_libtool_libs" = yes; then
     924      echo "enable shared libraries"
     925    else
     926      echo "disable shared libraries"
     927    fi
     928    if test "$build_old_libs" = yes; then
     929      echo "enable static libraries"
     930    else
     931      echo "disable static libraries"
     932    fi
     933
     934    exit $?
     935}
     936
     937# func_enable_tag tagname
     938# Verify that TAGNAME is valid, and either flag an error and exit, or
     939# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
     940# variable here.
     941func_enable_tag ()
     942{
     943  # Global variable:
     944  tagname="$1"
     945
     946  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
     947  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
     948  sed_extractcf="/$re_begincf/,/$re_endcf/p"
     949
     950  # Validate tagname.
     951  case $tagname in
     952    *[!-_A-Za-z0-9,/]*)
     953      func_fatal_error "invalid tag name: $tagname"
     954      ;;
     955  esac
     956
     957  # Don't test for the "default" C tag, as we know it's
     958  # there but not specially marked.
     959  case $tagname in
     960    CC) ;;
     961    *)
     962      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
     963        taglist="$taglist $tagname"
     964
     965        # Evaluate the configuration.  Be careful to quote the path
     966        # and the sed script, to avoid splitting on whitespace, but
     967        # also don't use non-portable quotes within backquotes within
     968        # quotes we have to do it in 2 steps:
     969        extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
     970        eval "$extractedcf"
     971      else
     972        func_error "ignoring unknown tag $tagname"
     973      fi
     974      ;;
     975  esac
     976}
     977
     978# func_check_version_match
     979# Ensure that we are using m4 macros, and libtool script from the same
     980# release of libtool.
     981func_check_version_match ()
     982{
     983  if test "$package_revision" != "$macro_revision"; then
     984    if test "$VERSION" != "$macro_version"; then
     985      if test -z "$macro_version"; then
     986        cat >&2 <<_LT_EOF
     987$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
     988$progname: definition of this LT_INIT comes from an older release.
     989$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
     990$progname: and run autoconf again.
     991_LT_EOF
     992      else
     993        cat >&2 <<_LT_EOF
     994$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
     995$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
     996$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
     997$progname: and run autoconf again.
     998_LT_EOF
     999      fi
     1000    else
     1001      cat >&2 <<_LT_EOF
     1002$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
     1003$progname: but the definition of this LT_INIT comes from revision $macro_revision.
     1004$progname: You should recreate aclocal.m4 with macros from revision $package_revision
     1005$progname: of $PACKAGE $VERSION and run autoconf again.
     1006_LT_EOF
     1007    fi
     1008
     1009    exit $EXIT_MISMATCH
     1010  fi
     1011}
     1012
     1013
     1014# Shorthand for --mode=foo, only valid as the first argument
     1015case $1 in
     1016clean|clea|cle|cl)
     1017  shift; set dummy --mode clean ${1+"$@"}; shift
     1018  ;;
     1019compile|compil|compi|comp|com|co|c)
     1020  shift; set dummy --mode compile ${1+"$@"}; shift
     1021  ;;
     1022execute|execut|execu|exec|exe|ex|e)
     1023  shift; set dummy --mode execute ${1+"$@"}; shift
     1024  ;;
     1025finish|finis|fini|fin|fi|f)
     1026  shift; set dummy --mode finish ${1+"$@"}; shift
     1027  ;;
     1028install|instal|insta|inst|ins|in|i)
     1029  shift; set dummy --mode install ${1+"$@"}; shift
     1030  ;;
     1031link|lin|li|l)
     1032  shift; set dummy --mode link ${1+"$@"}; shift
     1033  ;;
     1034uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
     1035  shift; set dummy --mode uninstall ${1+"$@"}; shift
     1036  ;;
     1037esac
     1038
     1039
     1040
     1041# Option defaults:
     1042opt_debug=:
     1043opt_dry_run=false
     1044opt_config=false
     1045opt_preserve_dup_deps=false
     1046opt_features=false
     1047opt_finish=false
     1048opt_help=false
     1049opt_help_all=false
     1050opt_silent=:
     1051opt_warning=:
     1052opt_verbose=:
     1053opt_silent=false
     1054opt_verbose=false
     1055
     1056
     1057# Parse options once, thoroughly.  This comes as soon as possible in the
     1058# script to make things like `--version' happen as quickly as we can.
     1059{
     1060  # this just eases exit handling
     1061  while test $# -gt 0; do
     1062    opt="$1"
     1063    shift
     1064    case $opt in
     1065      --debug|-x)       opt_debug='set -x'
     1066                        func_echo "enabling shell trace mode"
     1067                        $opt_debug
     1068                        ;;
     1069      --dry-run|--dryrun|-n)
     1070                        opt_dry_run=:
     1071                        ;;
     1072      --config)
     1073                        opt_config=:
     1074func_config
     1075                        ;;
     1076      --dlopen|-dlopen)
     1077                        optarg="$1"
     1078                        opt_dlopen="${opt_dlopen+$opt_dlopen
     1079}$optarg"
     1080                        shift
     1081                        ;;
     1082      --preserve-dup-deps)
     1083                        opt_preserve_dup_deps=:
     1084                        ;;
     1085      --features)
     1086                        opt_features=:
     1087func_features
     1088                        ;;
     1089      --finish)
     1090                        opt_finish=:
     1091set dummy --mode finish ${1+"$@"}; shift
     1092                        ;;
     1093      --help)
     1094                        opt_help=:
     1095                        ;;
     1096      --help-all)
     1097                        opt_help_all=:
     1098opt_help=': help-all'
     1099                        ;;
     1100      --mode)
     1101                        test $# = 0 && func_missing_arg $opt && break
     1102                        optarg="$1"
     1103                        opt_mode="$optarg"
     1104case $optarg in
     1105  # Valid mode arguments:
     1106  clean|compile|execute|finish|install|link|relink|uninstall) ;;
     1107
     1108  # Catch anything else as an error
     1109  *) func_error "invalid argument for $opt"
     1110     exit_cmd=exit
     1111     break
     1112     ;;
     1113esac
     1114                        shift
     1115                        ;;
     1116      --no-silent|--no-quiet)
     1117                        opt_silent=false
     1118func_append preserve_args " $opt"
     1119                        ;;
     1120      --no-warning|--no-warn)
     1121                        opt_warning=false
     1122func_append preserve_args " $opt"
     1123                        ;;
     1124      --no-verbose)
     1125                        opt_verbose=false
     1126func_append preserve_args " $opt"
     1127                        ;;
     1128      --silent|--quiet)
     1129                        opt_silent=:
     1130func_append preserve_args " $opt"
     1131        opt_verbose=false
     1132                        ;;
     1133      --verbose|-v)
     1134                        opt_verbose=:
     1135func_append preserve_args " $opt"
     1136opt_silent=false
     1137                        ;;
     1138      --tag)
     1139                        test $# = 0 && func_missing_arg $opt && break
     1140                        optarg="$1"
     1141                        opt_tag="$optarg"
     1142func_append preserve_args " $opt $optarg"
     1143func_enable_tag "$optarg"
     1144                        shift
     1145                        ;;
     1146
     1147      -\?|-h)           func_usage                              ;;
     1148      --help)           func_help                               ;;
     1149      --version)        func_version                            ;;
     1150
     1151      # Separate optargs to long options:
     1152      --*=*)
     1153                        func_split_long_opt "$opt"
     1154                        set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
     1155                        shift
     1156                        ;;
     1157
     1158      # Separate non-argument short options:
     1159      -\?*|-h*|-n*|-v*)
     1160                        func_split_short_opt "$opt"
     1161                        set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
     1162                        shift
     1163                        ;;
     1164
     1165      --)               break                                   ;;
     1166      -*)               func_fatal_help "unrecognized option \`$opt'" ;;
     1167      *)                set dummy "$opt" ${1+"$@"};     shift; break  ;;
     1168    esac
     1169  done
     1170
     1171  # Validate options:
     1172
     1173  # save first non-option argument
     1174  if test "$#" -gt 0; then
     1175    nonopt="$opt"
     1176    shift
     1177  fi
     1178
     1179  # preserve --debug
     1180  test "$opt_debug" = : || func_append preserve_args " --debug"
     1181
     1182  case $host in
     1183    *cygwin* | *mingw* | *pw32* | *cegcc*)
     1184      # don't eliminate duplications in $postdeps and $predeps
     1185      opt_duplicate_compiler_generated_deps=:
     1186      ;;
     1187    *)
     1188      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
     1189      ;;
     1190  esac
     1191
     1192  $opt_help || {
     1193    # Sanity checks first:
     1194    func_check_version_match
     1195
     1196    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
     1197      func_fatal_configuration "not configured to build any kind of library"
     1198    fi
     1199
     1200    # Darwin sucks
     1201    eval std_shrext=\"$shrext_cmds\"
     1202
     1203    # Only execute mode is allowed to have -dlopen flags.
     1204    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
     1205      func_error "unrecognized option \`-dlopen'"
     1206      $ECHO "$help" 1>&2
     1207      exit $EXIT_FAILURE
     1208    fi
     1209
     1210    # Change the help message to a mode-specific one.
     1211    generic_help="$help"
     1212    help="Try \`$progname --help --mode=$opt_mode' for more information."
     1213  }
     1214
     1215
     1216  # Bail if the options were screwed
     1217  $exit_cmd $EXIT_FAILURE
     1218}
     1219
     1220
     1221
     1222
     1223## ----------- ##
     1224##    Main.    ##
     1225## ----------- ##
     1226
     1227# func_lalib_p file
     1228# True iff FILE is a libtool `.la' library or `.lo' object file.
     1229# This function is only a basic sanity check; it will hardly flush out
     1230# determined imposters.
     1231func_lalib_p ()
     1232{
     1233    test -f "$1" &&
     1234      $SED -e 4q "$1" 2>/dev/null \
     1235        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
     1236}
     1237
     1238# func_lalib_unsafe_p file
     1239# True iff FILE is a libtool `.la' library or `.lo' object file.
     1240# This function implements the same check as func_lalib_p without
     1241# resorting to external programs.  To this end, it redirects stdin and
     1242# closes it afterwards, without saving the original file descriptor.
     1243# As a safety measure, use it only where a negative result would be
     1244# fatal anyway.  Works if `file' does not exist.
     1245func_lalib_unsafe_p ()
     1246{
     1247    lalib_p=no
     1248    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
     1249        for lalib_p_l in 1 2 3 4
     1250        do
     1251            read lalib_p_line
     1252            case "$lalib_p_line" in
     1253                \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
     1254            esac
     1255        done
     1256        exec 0<&5 5<&-
     1257    fi
     1258    test "$lalib_p" = yes
     1259}
     1260
     1261# func_ltwrapper_script_p file
     1262# True iff FILE is a libtool wrapper script
     1263# This function is only a basic sanity check; it will hardly flush out
     1264# determined imposters.
     1265func_ltwrapper_script_p ()
     1266{
     1267    func_lalib_p "$1"
     1268}
     1269
     1270# func_ltwrapper_executable_p file
     1271# True iff FILE is a libtool wrapper executable
     1272# This function is only a basic sanity check; it will hardly flush out
     1273# determined imposters.
     1274func_ltwrapper_executable_p ()
     1275{
     1276    func_ltwrapper_exec_suffix=
     1277    case $1 in
     1278    *.exe) ;;
     1279    *) func_ltwrapper_exec_suffix=.exe ;;
     1280    esac
     1281    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
     1282}
     1283
     1284# func_ltwrapper_scriptname file
     1285# Assumes file is an ltwrapper_executable
     1286# uses $file to determine the appropriate filename for a
     1287# temporary ltwrapper_script.
     1288func_ltwrapper_scriptname ()
     1289{
     1290    func_dirname_and_basename "$1" "" "."
     1291    func_stripname '' '.exe' "$func_basename_result"
     1292    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
     1293}
     1294
     1295# func_ltwrapper_p file
     1296# True iff FILE is a libtool wrapper script or wrapper executable
     1297# This function is only a basic sanity check; it will hardly flush out
     1298# determined imposters.
     1299func_ltwrapper_p ()
     1300{
     1301    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
     1302}
     1303
     1304
     1305# func_execute_cmds commands fail_cmd
     1306# Execute tilde-delimited COMMANDS.
     1307# If FAIL_CMD is given, eval that upon failure.
     1308# FAIL_CMD may read-access the current command in variable CMD!
     1309func_execute_cmds ()
     1310{
     1311    $opt_debug
     1312    save_ifs=$IFS; IFS='~'
     1313    for cmd in $1; do
     1314      IFS=$save_ifs
     1315      eval cmd=\"$cmd\"
     1316      func_show_eval "$cmd" "${2-:}"
     1317    done
     1318    IFS=$save_ifs
     1319}
     1320
     1321
     1322# func_source file
     1323# Source FILE, adding directory component if necessary.
     1324# Note that it is not necessary on cygwin/mingw to append a dot to
     1325# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
     1326# behavior happens only for exec(3), not for open(2)!  Also, sourcing
     1327# `FILE.' does not work on cygwin managed mounts.
     1328func_source ()
     1329{
     1330    $opt_debug
     1331    case $1 in
     1332    */* | *\\*) . "$1" ;;
     1333    *)          . "./$1" ;;
     1334    esac
     1335}
     1336
     1337
     1338# func_resolve_sysroot PATH
     1339# Replace a leading = in PATH with a sysroot.  Store the result into
     1340# func_resolve_sysroot_result
     1341func_resolve_sysroot ()
     1342{
     1343  func_resolve_sysroot_result=$1
     1344  case $func_resolve_sysroot_result in
     1345  =*)
     1346    func_stripname '=' '' "$func_resolve_sysroot_result"
     1347    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
     1348    ;;
     1349  esac
     1350}
     1351
     1352# func_replace_sysroot PATH
     1353# If PATH begins with the sysroot, replace it with = and
     1354# store the result into func_replace_sysroot_result.
     1355func_replace_sysroot ()
     1356{
     1357  case "$lt_sysroot:$1" in
     1358  ?*:"$lt_sysroot"*)
     1359    func_stripname "$lt_sysroot" '' "$1"
     1360    func_replace_sysroot_result="=$func_stripname_result"
     1361    ;;
     1362  *)
     1363    # Including no sysroot.
     1364    func_replace_sysroot_result=$1
     1365    ;;
     1366  esac
     1367}
     1368
     1369# func_infer_tag arg
     1370# Infer tagged configuration to use if any are available and
     1371# if one wasn't chosen via the "--tag" command line option.
     1372# Only attempt this if the compiler in the base compile
     1373# command doesn't match the default compiler.
     1374# arg is usually of the form 'gcc ...'
     1375func_infer_tag ()
     1376{
     1377    $opt_debug
     1378    if test -n "$available_tags" && test -z "$tagname"; then
     1379      CC_quoted=
     1380      for arg in $CC; do
     1381        func_append_quoted CC_quoted "$arg"
     1382      done
     1383      CC_expanded=`func_echo_all $CC`
     1384      CC_quoted_expanded=`func_echo_all $CC_quoted`
     1385      case $@ in
     1386      # Blanks in the command may have been stripped by the calling shell,
     1387      # but not from the CC environment variable when configure was run.
     1388      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
     1389      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
     1390      # Blanks at the start of $base_compile will cause this to fail
     1391      # if we don't check for them as well.
     1392      *)
     1393        for z in $available_tags; do
     1394          if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
     1395            # Evaluate the configuration.
     1396            eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
     1397            CC_quoted=
     1398            for arg in $CC; do
     1399              # Double-quote args containing other shell metacharacters.
     1400              func_append_quoted CC_quoted "$arg"
     1401            done
     1402            CC_expanded=`func_echo_all $CC`
     1403            CC_quoted_expanded=`func_echo_all $CC_quoted`
     1404            case "$@ " in
     1405            " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
     1406            " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
     1407              # The compiler in the base compile command matches
     1408              # the one in the tagged configuration.
     1409              # Assume this is the tagged configuration we want.
     1410              tagname=$z
     1411              break
     1412              ;;
     1413            esac
     1414          fi
     1415        done
     1416        # If $tagname still isn't set, then no tagged configuration
     1417        # was found and let the user know that the "--tag" command
     1418        # line option must be used.
     1419        if test -z "$tagname"; then
     1420          func_echo "unable to infer tagged configuration"
     1421          func_fatal_error "specify a tag with \`--tag'"
     1422#       else
     1423#         func_verbose "using $tagname tagged configuration"
     1424        fi
     1425        ;;
     1426      esac
     1427    fi
     1428}
     1429
     1430
     1431
     1432# func_write_libtool_object output_name pic_name nonpic_name
     1433# Create a libtool object file (analogous to a ".la" file),
     1434# but don't create it if we're doing a dry run.
     1435func_write_libtool_object ()
     1436{
     1437    write_libobj=${1}
     1438    if test "$build_libtool_libs" = yes; then
     1439      write_lobj=\'${2}\'
     1440    else
     1441      write_lobj=none
     1442    fi
     1443
     1444    if test "$build_old_libs" = yes; then
     1445      write_oldobj=\'${3}\'
     1446    else
     1447      write_oldobj=none
     1448    fi
     1449
     1450    $opt_dry_run || {
     1451      cat >${write_libobj}T <<EOF
     1452# $write_libobj - a libtool object file
     1453# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
     1454#
     1455# Please DO NOT delete this file!
     1456# It is necessary for linking the library.
     1457
     1458# Name of the PIC object.
     1459pic_object=$write_lobj
     1460
     1461# Name of the non-PIC object
     1462non_pic_object=$write_oldobj
     1463
     1464EOF
     1465      $MV "${write_libobj}T" "${write_libobj}"
     1466    }
     1467}
     1468
     1469
     1470##################################################
     1471# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
     1472##################################################
     1473
     1474# func_convert_core_file_wine_to_w32 ARG
     1475# Helper function used by file name conversion functions when $build is *nix,
     1476# and $host is mingw, cygwin, or some other w32 environment. Relies on a
     1477# correctly configured wine environment available, with the winepath program
     1478# in $build's $PATH.
     1479#
     1480# ARG is the $build file name to be converted to w32 format.
     1481# Result is available in $func_convert_core_file_wine_to_w32_result, and will
     1482# be empty on error (or when ARG is empty)
     1483func_convert_core_file_wine_to_w32 ()
     1484{
     1485  $opt_debug
     1486  func_convert_core_file_wine_to_w32_result="$1"
     1487  if test -n "$1"; then
     1488    # Unfortunately, winepath does not exit with a non-zero error code, so we
     1489    # are forced to check the contents of stdout. On the other hand, if the
     1490    # command is not found, the shell will set an exit code of 127 and print
     1491    # *an error message* to stdout. So we must check for both error code of
     1492    # zero AND non-empty stdout, which explains the odd construction:
     1493    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
     1494    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
     1495      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
     1496        $SED -e "$lt_sed_naive_backslashify"`
     1497    else
     1498      func_convert_core_file_wine_to_w32_result=
     1499    fi
     1500  fi
     1501}
     1502# end: func_convert_core_file_wine_to_w32
     1503
     1504
     1505# func_convert_core_path_wine_to_w32 ARG
     1506# Helper function used by path conversion functions when $build is *nix, and
     1507# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
     1508# configured wine environment available, with the winepath program in $build's
     1509# $PATH. Assumes ARG has no leading or trailing path separator characters.
     1510#
     1511# ARG is path to be converted from $build format to win32.
     1512# Result is available in $func_convert_core_path_wine_to_w32_result.
     1513# Unconvertible file (directory) names in ARG are skipped; if no directory names
     1514# are convertible, then the result may be empty.
     1515func_convert_core_path_wine_to_w32 ()
     1516{
     1517  $opt_debug
     1518  # unfortunately, winepath doesn't convert paths, only file names
     1519  func_convert_core_path_wine_to_w32_result=""
     1520  if test -n "$1"; then
     1521    oldIFS=$IFS
     1522    IFS=:
     1523    for func_convert_core_path_wine_to_w32_f in $1; do
     1524      IFS=$oldIFS
     1525      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
     1526      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
     1527        if test -z "$func_convert_core_path_wine_to_w32_result"; then
     1528          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
     1529        else
     1530          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
     1531        fi
     1532      fi
     1533    done
     1534    IFS=$oldIFS
     1535  fi
     1536}
     1537# end: func_convert_core_path_wine_to_w32
     1538
     1539
     1540# func_cygpath ARGS...
     1541# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
     1542# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
     1543# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
     1544# (2), returns the Cygwin file name or path in func_cygpath_result (input
     1545# file name or path is assumed to be in w32 format, as previously converted
     1546# from $build's *nix or MSYS format). In case (3), returns the w32 file name
     1547# or path in func_cygpath_result (input file name or path is assumed to be in
     1548# Cygwin format). Returns an empty string on error.
     1549#
     1550# ARGS are passed to cygpath, with the last one being the file name or path to
     1551# be converted.
     1552#
     1553# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
     1554# environment variable; do not put it in $PATH.
     1555func_cygpath ()
     1556{
     1557  $opt_debug
     1558  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
     1559    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
     1560    if test "$?" -ne 0; then
     1561      # on failure, ensure result is empty
     1562      func_cygpath_result=
     1563    fi
     1564  else
     1565    func_cygpath_result=
     1566    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
     1567  fi
     1568}
     1569#end: func_cygpath
     1570
     1571
     1572# func_convert_core_msys_to_w32 ARG
     1573# Convert file name or path ARG from MSYS format to w32 format.  Return
     1574# result in func_convert_core_msys_to_w32_result.
     1575func_convert_core_msys_to_w32 ()
     1576{
     1577  $opt_debug
     1578  # awkward: cmd appends spaces to result
     1579  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
     1580    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
     1581}
     1582#end: func_convert_core_msys_to_w32
     1583
     1584
     1585# func_convert_file_check ARG1 ARG2
     1586# Verify that ARG1 (a file name in $build format) was converted to $host
     1587# format in ARG2. Otherwise, emit an error message, but continue (resetting
     1588# func_to_host_file_result to ARG1).
     1589func_convert_file_check ()
     1590{
     1591  $opt_debug
     1592  if test -z "$2" && test -n "$1" ; then
     1593    func_error "Could not determine host file name corresponding to"
     1594    func_error "  \`$1'"
     1595    func_error "Continuing, but uninstalled executables may not work."
     1596    # Fallback:
     1597    func_to_host_file_result="$1"
     1598  fi
     1599}
     1600# end func_convert_file_check
     1601
     1602
     1603# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
     1604# Verify that FROM_PATH (a path in $build format) was converted to $host
     1605# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
     1606# func_to_host_file_result to a simplistic fallback value (see below).
     1607func_convert_path_check ()
     1608{
     1609  $opt_debug
     1610  if test -z "$4" && test -n "$3"; then
     1611    func_error "Could not determine the host path corresponding to"
     1612    func_error "  \`$3'"
     1613    func_error "Continuing, but uninstalled executables may not work."
     1614    # Fallback.  This is a deliberately simplistic "conversion" and
     1615    # should not be "improved".  See libtool.info.
     1616    if test "x$1" != "x$2"; then
     1617      lt_replace_pathsep_chars="s|$1|$2|g"
     1618      func_to_host_path_result=`echo "$3" |
     1619        $SED -e "$lt_replace_pathsep_chars"`
     1620    else
     1621      func_to_host_path_result="$3"
     1622    fi
     1623  fi
     1624}
     1625# end func_convert_path_check
     1626
     1627
     1628# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
     1629# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
     1630# and appending REPL if ORIG matches BACKPAT.
     1631func_convert_path_front_back_pathsep ()
     1632{
     1633  $opt_debug
     1634  case $4 in
     1635  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
     1636    ;;
     1637  esac
     1638  case $4 in
     1639  $2 ) func_append func_to_host_path_result "$3"
     1640    ;;
     1641  esac
     1642}
     1643# end func_convert_path_front_back_pathsep
     1644
     1645
     1646##################################################
     1647# $build to $host FILE NAME CONVERSION FUNCTIONS #
     1648##################################################
     1649# invoked via `$to_host_file_cmd ARG'
     1650#
     1651# In each case, ARG is the path to be converted from $build to $host format.
     1652# Result will be available in $func_to_host_file_result.
     1653
     1654
     1655# func_to_host_file ARG
     1656# Converts the file name ARG from $build format to $host format. Return result
     1657# in func_to_host_file_result.
     1658func_to_host_file ()
     1659{
     1660  $opt_debug
     1661  $to_host_file_cmd "$1"
     1662}
     1663# end func_to_host_file
     1664
     1665
     1666# func_to_tool_file ARG LAZY
     1667# converts the file name ARG from $build format to toolchain format. Return
     1668# result in func_to_tool_file_result.  If the conversion in use is listed
     1669# in (the comma separated) LAZY, no conversion takes place.
     1670func_to_tool_file ()
     1671{
     1672  $opt_debug
     1673  case ,$2, in
     1674    *,"$to_tool_file_cmd",*)
     1675      func_to_tool_file_result=$1
     1676      ;;
     1677    *)
     1678      $to_tool_file_cmd "$1"
     1679      func_to_tool_file_result=$func_to_host_file_result
     1680      ;;
     1681  esac
     1682}
     1683# end func_to_tool_file
     1684
     1685
     1686# func_convert_file_noop ARG
     1687# Copy ARG to func_to_host_file_result.
     1688func_convert_file_noop ()
     1689{
     1690  func_to_host_file_result="$1"
     1691}
     1692# end func_convert_file_noop
     1693
     1694
     1695# func_convert_file_msys_to_w32 ARG
     1696# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
     1697# conversion to w32 is not available inside the cwrapper.  Returns result in
     1698# func_to_host_file_result.
     1699func_convert_file_msys_to_w32 ()
     1700{
     1701  $opt_debug
     1702  func_to_host_file_result="$1"
     1703  if test -n "$1"; then
     1704    func_convert_core_msys_to_w32 "$1"
     1705    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
     1706  fi
     1707  func_convert_file_check "$1" "$func_to_host_file_result"
     1708}
     1709# end func_convert_file_msys_to_w32
     1710
     1711
     1712# func_convert_file_cygwin_to_w32 ARG
     1713# Convert file name ARG from Cygwin to w32 format.  Returns result in
     1714# func_to_host_file_result.
     1715func_convert_file_cygwin_to_w32 ()
     1716{
     1717  $opt_debug
     1718  func_to_host_file_result="$1"
     1719  if test -n "$1"; then
     1720    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
     1721    # LT_CYGPATH in this case.
     1722    func_to_host_file_result=`cygpath -m "$1"`
     1723  fi
     1724  func_convert_file_check "$1" "$func_to_host_file_result"
     1725}
     1726# end func_convert_file_cygwin_to_w32
     1727
     1728
     1729# func_convert_file_nix_to_w32 ARG
     1730# Convert file name ARG from *nix to w32 format.  Requires a wine environment
     1731# and a working winepath. Returns result in func_to_host_file_result.
     1732func_convert_file_nix_to_w32 ()
     1733{
     1734  $opt_debug
     1735  func_to_host_file_result="$1"
     1736  if test -n "$1"; then
     1737    func_convert_core_file_wine_to_w32 "$1"
     1738    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
     1739  fi
     1740  func_convert_file_check "$1" "$func_to_host_file_result"
     1741}
     1742# end func_convert_file_nix_to_w32
     1743
     1744
     1745# func_convert_file_msys_to_cygwin ARG
     1746# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
     1747# Returns result in func_to_host_file_result.
     1748func_convert_file_msys_to_cygwin ()
     1749{
     1750  $opt_debug
     1751  func_to_host_file_result="$1"
     1752  if test -n "$1"; then
     1753    func_convert_core_msys_to_w32 "$1"
     1754    func_cygpath -u "$func_convert_core_msys_to_w32_result"
     1755    func_to_host_file_result="$func_cygpath_result"
     1756  fi
     1757  func_convert_file_check "$1" "$func_to_host_file_result"
     1758}
     1759# end func_convert_file_msys_to_cygwin
     1760
     1761
     1762# func_convert_file_nix_to_cygwin ARG
     1763# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
     1764# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
     1765# in func_to_host_file_result.
     1766func_convert_file_nix_to_cygwin ()
     1767{
     1768  $opt_debug
     1769  func_to_host_file_result="$1"
     1770  if test -n "$1"; then
     1771    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
     1772    func_convert_core_file_wine_to_w32 "$1"
     1773    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
     1774    func_to_host_file_result="$func_cygpath_result"
     1775  fi
     1776  func_convert_file_check "$1" "$func_to_host_file_result"
     1777}
     1778# end func_convert_file_nix_to_cygwin
     1779
     1780
     1781#############################################
     1782# $build to $host PATH CONVERSION FUNCTIONS #
     1783#############################################
     1784# invoked via `$to_host_path_cmd ARG'
     1785#
     1786# In each case, ARG is the path to be converted from $build to $host format.
     1787# The result will be available in $func_to_host_path_result.
     1788#
     1789# Path separators are also converted from $build format to $host format.  If
     1790# ARG begins or ends with a path separator character, it is preserved (but
     1791# converted to $host format) on output.
     1792#
     1793# All path conversion functions are named using the following convention:
     1794#   file name conversion function    : func_convert_file_X_to_Y ()
     1795#   path conversion function         : func_convert_path_X_to_Y ()
     1796# where, for any given $build/$host combination the 'X_to_Y' value is the
     1797# same.  If conversion functions are added for new $build/$host combinations,
     1798# the two new functions must follow this pattern, or func_init_to_host_path_cmd
     1799# will break.
     1800
     1801
     1802# func_init_to_host_path_cmd
     1803# Ensures that function "pointer" variable $to_host_path_cmd is set to the
     1804# appropriate value, based on the value of $to_host_file_cmd.
     1805to_host_path_cmd=
     1806func_init_to_host_path_cmd ()
     1807{
     1808  $opt_debug
     1809  if test -z "$to_host_path_cmd"; then
     1810    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
     1811    to_host_path_cmd="func_convert_path_${func_stripname_result}"
     1812  fi
     1813}
     1814
     1815
     1816# func_to_host_path ARG
     1817# Converts the path ARG from $build format to $host format. Return result
     1818# in func_to_host_path_result.
     1819func_to_host_path ()
     1820{
     1821  $opt_debug
     1822  func_init_to_host_path_cmd
     1823  $to_host_path_cmd "$1"
     1824}
     1825# end func_to_host_path
     1826
     1827
     1828# func_convert_path_noop ARG
     1829# Copy ARG to func_to_host_path_result.
     1830func_convert_path_noop ()
     1831{
     1832  func_to_host_path_result="$1"
     1833}
     1834# end func_convert_path_noop
     1835
     1836
     1837# func_convert_path_msys_to_w32 ARG
     1838# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
     1839# conversion to w32 is not available inside the cwrapper.  Returns result in
     1840# func_to_host_path_result.
     1841func_convert_path_msys_to_w32 ()
     1842{
     1843  $opt_debug
     1844  func_to_host_path_result="$1"
     1845  if test -n "$1"; then
     1846    # Remove leading and trailing path separator characters from ARG.  MSYS
     1847    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
     1848    # and winepath ignores them completely.
     1849    func_stripname : : "$1"
     1850    func_to_host_path_tmp1=$func_stripname_result
     1851    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
     1852    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
     1853    func_convert_path_check : ";" \
     1854      "$func_to_host_path_tmp1" "$func_to_host_path_result"
     1855    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
     1856  fi
     1857}
     1858# end func_convert_path_msys_to_w32
     1859
     1860
     1861# func_convert_path_cygwin_to_w32 ARG
     1862# Convert path ARG from Cygwin to w32 format.  Returns result in
     1863# func_to_host_file_result.
     1864func_convert_path_cygwin_to_w32 ()
     1865{
     1866  $opt_debug
     1867  func_to_host_path_result="$1"
     1868  if test -n "$1"; then
     1869    # See func_convert_path_msys_to_w32:
     1870    func_stripname : : "$1"
     1871    func_to_host_path_tmp1=$func_stripname_result
     1872    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
     1873    func_convert_path_check : ";" \
     1874      "$func_to_host_path_tmp1" "$func_to_host_path_result"
     1875    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
     1876  fi
     1877}
     1878# end func_convert_path_cygwin_to_w32
     1879
     1880
     1881# func_convert_path_nix_to_w32 ARG
     1882# Convert path ARG from *nix to w32 format.  Requires a wine environment and
     1883# a working winepath.  Returns result in func_to_host_file_result.
     1884func_convert_path_nix_to_w32 ()
     1885{
     1886  $opt_debug
     1887  func_to_host_path_result="$1"
     1888  if test -n "$1"; then
     1889    # See func_convert_path_msys_to_w32:
     1890    func_stripname : : "$1"
     1891    func_to_host_path_tmp1=$func_stripname_result
     1892    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
     1893    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
     1894    func_convert_path_check : ";" \
     1895      "$func_to_host_path_tmp1" "$func_to_host_path_result"
     1896    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
     1897  fi
     1898}
     1899# end func_convert_path_nix_to_w32
     1900
     1901
     1902# func_convert_path_msys_to_cygwin ARG
     1903# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
     1904# Returns result in func_to_host_file_result.
     1905func_convert_path_msys_to_cygwin ()
     1906{
     1907  $opt_debug
     1908  func_to_host_path_result="$1"
     1909  if test -n "$1"; then
     1910    # See func_convert_path_msys_to_w32:
     1911    func_stripname : : "$1"
     1912    func_to_host_path_tmp1=$func_stripname_result
     1913    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
     1914    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
     1915    func_to_host_path_result="$func_cygpath_result"
     1916    func_convert_path_check : : \
     1917      "$func_to_host_path_tmp1" "$func_to_host_path_result"
     1918    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
     1919  fi
     1920}
     1921# end func_convert_path_msys_to_cygwin
     1922
     1923
     1924# func_convert_path_nix_to_cygwin ARG
     1925# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
     1926# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
     1927# func_to_host_file_result.
     1928func_convert_path_nix_to_cygwin ()
     1929{
     1930  $opt_debug
     1931  func_to_host_path_result="$1"
     1932  if test -n "$1"; then
     1933    # Remove leading and trailing path separator characters from
     1934    # ARG. msys behavior is inconsistent here, cygpath turns them
     1935    # into '.;' and ';.', and winepath ignores them completely.
     1936    func_stripname : : "$1"
     1937    func_to_host_path_tmp1=$func_stripname_result
     1938    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
     1939    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
     1940    func_to_host_path_result="$func_cygpath_result"
     1941    func_convert_path_check : : \
     1942      "$func_to_host_path_tmp1" "$func_to_host_path_result"
     1943    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
     1944  fi
     1945}
     1946# end func_convert_path_nix_to_cygwin
     1947
     1948
     1949# func_mode_compile arg...
     1950func_mode_compile ()
     1951{
     1952    $opt_debug
     1953    # Get the compilation command and the source file.
     1954    base_compile=
     1955    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
     1956    suppress_opt=yes
     1957    suppress_output=
     1958    arg_mode=normal
     1959    libobj=
     1960    later=
     1961    pie_flag=
     1962
     1963    for arg
     1964    do
     1965      case $arg_mode in
     1966      arg  )
     1967        # do not "continue".  Instead, add this to base_compile
     1968        lastarg="$arg"
     1969        arg_mode=normal
     1970        ;;
     1971
     1972      target )
     1973        libobj="$arg"
     1974        arg_mode=normal
     1975        continue
     1976        ;;
     1977
     1978      normal )
     1979        # Accept any command-line options.
     1980        case $arg in
     1981        -o)
     1982          test -n "$libobj" && \
     1983            func_fatal_error "you cannot specify \`-o' more than once"
     1984          arg_mode=target
     1985          continue
     1986          ;;
     1987
     1988        -pie | -fpie | -fPIE)
     1989          func_append pie_flag " $arg"
     1990          continue
     1991          ;;
     1992
     1993        -shared | -static | -prefer-pic | -prefer-non-pic)
     1994          func_append later " $arg"
     1995          continue
     1996          ;;
     1997
     1998        -no-suppress)
     1999          suppress_opt=no
     2000          continue
     2001          ;;
     2002
     2003        -Xcompiler)
     2004          arg_mode=arg  #  the next one goes into the "base_compile" arg list
     2005          continue      #  The current "srcfile" will either be retained or
     2006          ;;            #  replaced later.  I would guess that would be a bug.
     2007
     2008        -Wc,*)
     2009          func_stripname '-Wc,' '' "$arg"
     2010          args=$func_stripname_result
     2011          lastarg=
     2012          save_ifs="$IFS"; IFS=','
     2013          for arg in $args; do
     2014            IFS="$save_ifs"
     2015            func_append_quoted lastarg "$arg"
     2016          done
     2017          IFS="$save_ifs"
     2018          func_stripname ' ' '' "$lastarg"
     2019          lastarg=$func_stripname_result
     2020
     2021          # Add the arguments to base_compile.
     2022          func_append base_compile " $lastarg"
     2023          continue
     2024          ;;
     2025
     2026        *)
     2027          # Accept the current argument as the source file.
     2028          # The previous "srcfile" becomes the current argument.
     2029          #
     2030          lastarg="$srcfile"
     2031          srcfile="$arg"
     2032          ;;
     2033        esac  #  case $arg
     2034        ;;
     2035      esac    #  case $arg_mode
     2036
     2037      # Aesthetically quote the previous argument.
     2038      func_append_quoted base_compile "$lastarg"
     2039    done # for arg
     2040
     2041    case $arg_mode in
     2042    arg)
     2043      func_fatal_error "you must specify an argument for -Xcompile"
     2044      ;;
     2045    target)
     2046      func_fatal_error "you must specify a target with \`-o'"
     2047      ;;
     2048    *)
     2049      # Get the name of the library object.
     2050      test -z "$libobj" && {
     2051        func_basename "$srcfile"
     2052        libobj="$func_basename_result"
     2053      }
     2054      ;;
     2055    esac
     2056
     2057    # Recognize several different file suffixes.
     2058    # If the user specifies -o file.o, it is replaced with file.lo
     2059    case $libobj in
     2060    *.[cCFSifmso] | \
     2061    *.ada | *.adb | *.ads | *.asm | \
     2062    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
     2063    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
     2064      func_xform "$libobj"
     2065      libobj=$func_xform_result
     2066      ;;
     2067    esac
     2068
     2069    case $libobj in
     2070    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
     2071    *)
     2072      func_fatal_error "cannot determine name of library object from \`$libobj'"
     2073      ;;
     2074    esac
     2075
     2076    func_infer_tag $base_compile
     2077
     2078    for arg in $later; do
     2079      case $arg in
     2080      -shared)
     2081        test "$build_libtool_libs" != yes && \
     2082          func_fatal_configuration "can not build a shared library"
     2083        build_old_libs=no
     2084        continue
     2085        ;;
     2086
     2087      -static)
     2088        build_libtool_libs=no
     2089        build_old_libs=yes
     2090        continue
     2091        ;;
     2092
     2093      -prefer-pic)
     2094        pic_mode=yes
     2095        continue
     2096        ;;
     2097
     2098      -prefer-non-pic)
     2099        pic_mode=no
     2100        continue
     2101        ;;
     2102      esac
     2103    done
     2104
     2105    func_quote_for_eval "$libobj"
     2106    test "X$libobj" != "X$func_quote_for_eval_result" \
     2107      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'    &()|`$[]' \
     2108      && func_warning "libobj name \`$libobj' may not contain shell special characters."
     2109    func_dirname_and_basename "$obj" "/" ""
     2110    objname="$func_basename_result"
     2111    xdir="$func_dirname_result"
     2112    lobj=${xdir}$objdir/$objname
     2113
     2114    test -z "$base_compile" && \
     2115      func_fatal_help "you must specify a compilation command"
     2116
     2117    # Delete any leftover library objects.
     2118    if test "$build_old_libs" = yes; then
     2119      removelist="$obj $lobj $libobj ${libobj}T"
     2120    else
     2121      removelist="$lobj $libobj ${libobj}T"
     2122    fi
     2123
     2124    # On Cygwin there's no "real" PIC flag so we must build both object types
     2125    case $host_os in
     2126    cygwin* | mingw* | pw32* | os2* | cegcc*)
     2127      pic_mode=default
     2128      ;;
     2129    esac
     2130    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
     2131      # non-PIC code in shared libraries is not supported
     2132      pic_mode=default
     2133    fi
     2134
     2135    # Calculate the filename of the output object if compiler does
     2136    # not support -o with -c
     2137    if test "$compiler_c_o" = no; then
     2138      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
     2139      lockfile="$output_obj.lock"
     2140    else
     2141      output_obj=
     2142      need_locks=no
     2143      lockfile=
     2144    fi
     2145
     2146    # Lock this critical section if it is needed
     2147    # We use this script file to make the link, it avoids creating a new file
     2148    if test "$need_locks" = yes; then
     2149      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
     2150        func_echo "Waiting for $lockfile to be removed"
     2151        sleep 2
     2152      done
     2153    elif test "$need_locks" = warn; then
     2154      if test -f "$lockfile"; then
     2155        $ECHO "\
     2156*** ERROR, $lockfile exists and contains:
     2157`cat $lockfile 2>/dev/null`
     2158
     2159This indicates that another process is trying to use the same
     2160temporary object file, and libtool could not work around it because
     2161your compiler does not support \`-c' and \`-o' together.  If you
     2162repeat this compilation, it may succeed, by chance, but you had better
     2163avoid parallel builds (make -j) in this platform, or get a better
     2164compiler."
     2165
     2166        $opt_dry_run || $RM $removelist
    2072167        exit $EXIT_FAILURE
     2168      fi
     2169      func_append removelist " $output_obj"
     2170      $ECHO "$srcfile" > "$lockfile"
     2171    fi
     2172
     2173    $opt_dry_run || $RM $removelist
     2174    func_append removelist " $lockfile"
     2175    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
     2176
     2177    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
     2178    srcfile=$func_to_tool_file_result
     2179    func_quote_for_eval "$srcfile"
     2180    qsrcfile=$func_quote_for_eval_result
     2181
     2182    # Only build a PIC object if we are building libtool libraries.
     2183    if test "$build_libtool_libs" = yes; then
     2184      # Without this assignment, base_compile gets emptied.
     2185      fbsd_hideous_sh_bug=$base_compile
     2186
     2187      if test "$pic_mode" != no; then
     2188        command="$base_compile $qsrcfile $pic_flag"
     2189      else
     2190        # Don't build PIC code
     2191        command="$base_compile $qsrcfile"
     2192      fi
     2193
     2194      func_mkdir_p "$xdir$objdir"
     2195
     2196      if test -z "$output_obj"; then
     2197        # Place PIC objects in $objdir
     2198        func_append command " -o $lobj"
     2199      fi
     2200
     2201      func_show_eval_locale "$command"  \
     2202          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
     2203
     2204      if test "$need_locks" = warn &&
     2205         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
     2206        $ECHO "\
     2207*** ERROR, $lockfile contains:
     2208`cat $lockfile 2>/dev/null`
     2209
     2210but it should contain:
     2211$srcfile
     2212
     2213This indicates that another process is trying to use the same
     2214temporary object file, and libtool could not work around it because
     2215your compiler does not support \`-c' and \`-o' together.  If you
     2216repeat this compilation, it may succeed, by chance, but you had better
     2217avoid parallel builds (make -j) in this platform, or get a better
     2218compiler."
     2219
     2220        $opt_dry_run || $RM $removelist
     2221        exit $EXIT_FAILURE
     2222      fi
     2223
     2224      # Just move the object if needed, then go on to compile the next one
     2225      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
     2226        func_show_eval '$MV "$output_obj" "$lobj"' \
     2227          'error=$?; $opt_dry_run || $RM $removelist; exit $error'
     2228      fi
     2229
     2230      # Allow error messages only from the first compilation.
     2231      if test "$suppress_opt" = yes; then
     2232        suppress_output=' >/dev/null 2>&1'
     2233      fi
     2234    fi
     2235
     2236    # Only build a position-dependent object if we build old libraries.
     2237    if test "$build_old_libs" = yes; then
     2238      if test "$pic_mode" != yes; then
     2239        # Don't build PIC code
     2240        command="$base_compile $qsrcfile$pie_flag"
     2241      else
     2242        command="$base_compile $qsrcfile $pic_flag"
     2243      fi
     2244      if test "$compiler_c_o" = yes; then
     2245        func_append command " -o $obj"
     2246      fi
     2247
     2248      # Suppress compiler output if we already did a PIC compilation.
     2249      func_append command "$suppress_output"
     2250      func_show_eval_locale "$command" \
     2251        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
     2252
     2253      if test "$need_locks" = warn &&
     2254         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
     2255        $ECHO "\
     2256*** ERROR, $lockfile contains:
     2257`cat $lockfile 2>/dev/null`
     2258
     2259but it should contain:
     2260$srcfile
     2261
     2262This indicates that another process is trying to use the same
     2263temporary object file, and libtool could not work around it because
     2264your compiler does not support \`-c' and \`-o' together.  If you
     2265repeat this compilation, it may succeed, by chance, but you had better
     2266avoid parallel builds (make -j) in this platform, or get a better
     2267compiler."
     2268
     2269        $opt_dry_run || $RM $removelist
     2270        exit $EXIT_FAILURE
     2271      fi
     2272
     2273      # Just move the object if needed
     2274      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
     2275        func_show_eval '$MV "$output_obj" "$obj"' \
     2276          'error=$?; $opt_dry_run || $RM $removelist; exit $error'
     2277      fi
     2278    fi
     2279
     2280    $opt_dry_run || {
     2281      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
     2282
     2283      # Unlock the critical section if it was locked
     2284      if test "$need_locks" != no; then
     2285        removelist=$lockfile
     2286        $RM "$lockfile"
     2287      fi
     2288    }
     2289
     2290    exit $EXIT_SUCCESS
     2291}
     2292
     2293$opt_help || {
     2294  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
     2295}
     2296
     2297func_mode_help ()
     2298{
     2299    # We need to display help for each of the modes.
     2300    case $opt_mode in
     2301      "")
     2302        # Generic help is extracted from the usage comments
     2303        # at the start of this file.
     2304        func_help
     2305        ;;
     2306
     2307      clean)
     2308        $ECHO \
     2309"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
     2310
     2311Remove files from the build directory.
     2312
     2313RM is the name of the program to use to delete files associated with each FILE
     2314(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
     2315to RM.
     2316
     2317If FILE is a libtool library, object or program, all the files associated
     2318with it are deleted. Otherwise, only FILE itself is deleted using RM."
     2319        ;;
     2320
     2321      compile)
     2322      $ECHO \
     2323"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
     2324
     2325Compile a source file into a libtool library object.
     2326
     2327This mode accepts the following additional options:
     2328
     2329  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
     2330  -no-suppress      do not suppress compiler output for multiple passes
     2331  -prefer-pic       try to build PIC objects only
     2332  -prefer-non-pic   try to build non-PIC objects only
     2333  -shared           do not build a \`.o' file suitable for static linking
     2334  -static           only build a \`.o' file suitable for static linking
     2335  -Wc,FLAG          pass FLAG directly to the compiler
     2336
     2337COMPILE-COMMAND is a command to be used in creating a \`standard' object file
     2338from the given SOURCEFILE.
     2339
     2340The output file name is determined by removing the directory component from
     2341SOURCEFILE, then substituting the C source code suffix \`.c' with the
     2342library object suffix, \`.lo'."
     2343        ;;
     2344
     2345      execute)
     2346        $ECHO \
     2347"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
     2348
     2349Automatically set library path, then run a program.
     2350
     2351This mode accepts the following additional options:
     2352
     2353  -dlopen FILE      add the directory containing FILE to the library path
     2354
     2355This mode sets the library path environment variable according to \`-dlopen'
     2356flags.
     2357
     2358If any of the ARGS are libtool executable wrappers, then they are translated
     2359into their corresponding uninstalled binary, and any of their required library
     2360directories are added to the library path.
     2361
     2362Then, COMMAND is executed, with ARGS as arguments."
     2363        ;;
     2364
     2365      finish)
     2366        $ECHO \
     2367"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
     2368
     2369Complete the installation of libtool libraries.
     2370
     2371Each LIBDIR is a directory that contains libtool libraries.
     2372
     2373The commands that this mode executes may require superuser privileges.  Use
     2374the \`--dry-run' option if you just want to see what would be executed."
     2375        ;;
     2376
     2377      install)
     2378        $ECHO \
     2379"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
     2380
     2381Install executables or libraries.
     2382
     2383INSTALL-COMMAND is the installation command.  The first component should be
     2384either the \`install' or \`cp' program.
     2385
     2386The following components of INSTALL-COMMAND are treated specially:
     2387
     2388  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
     2389
     2390The rest of the components are interpreted as arguments to that command (only
     2391BSD-compatible install options are recognized)."
     2392        ;;
     2393
     2394      link)
     2395        $ECHO \
     2396"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
     2397
     2398Link object files or libraries together to form another library, or to
     2399create an executable program.
     2400
     2401LINK-COMMAND is a command using the C compiler that you would use to create
     2402a program from several object files.
     2403
     2404The following components of LINK-COMMAND are treated specially:
     2405
     2406  -all-static       do not do any dynamic linking at all
     2407  -avoid-version    do not add a version suffix if possible
     2408  -bindir BINDIR    specify path to binaries directory (for systems where
     2409                    libraries must be found in the PATH setting at runtime)
     2410  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
     2411  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
     2412  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
     2413  -export-symbols SYMFILE
     2414                    try to export only the symbols listed in SYMFILE
     2415  -export-symbols-regex REGEX
     2416                    try to export only the symbols matching REGEX
     2417  -LLIBDIR          search LIBDIR for required installed libraries
     2418  -lNAME            OUTPUT-FILE requires the installed library libNAME
     2419  -module           build a library that can dlopened
     2420  -no-fast-install  disable the fast-install mode
     2421  -no-install       link a not-installable executable
     2422  -no-undefined     declare that a library does not refer to external symbols
     2423  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
     2424  -objectlist FILE  Use a list of object files found in FILE to specify objects
     2425  -precious-files-regex REGEX
     2426                    don't remove output files matching REGEX
     2427  -release RELEASE  specify package release information
     2428  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
     2429  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
     2430  -shared           only do dynamic linking of libtool libraries
     2431  -shrext SUFFIX    override the standard shared library file extension
     2432  -static           do not do any dynamic linking of uninstalled libtool libraries
     2433  -static-libtool-libs
     2434                    do not do any dynamic linking of libtool libraries
     2435  -version-info CURRENT[:REVISION[:AGE]]
     2436                    specify library version info [each variable defaults to 0]
     2437  -weak LIBNAME     declare that the target provides the LIBNAME interface
     2438  -Wc,FLAG
     2439  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
     2440  -Wl,FLAG
     2441  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
     2442  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
     2443
     2444All other options (arguments beginning with \`-') are ignored.
     2445
     2446Every other argument is treated as a filename.  Files ending in \`.la' are
     2447treated as uninstalled libtool libraries, other files are standard or library
     2448object files.
     2449
     2450If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
     2451only library objects (\`.lo' files) may be specified, and \`-rpath' is
     2452required, except when creating a convenience library.
     2453
     2454If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
     2455using \`ar' and \`ranlib', or on Windows using \`lib'.
     2456
     2457If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
     2458is created, otherwise an executable program is created."
     2459        ;;
     2460
     2461      uninstall)
     2462        $ECHO \
     2463"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
     2464
     2465Remove libraries from an installation directory.
     2466
     2467RM is the name of the program to use to delete files associated with each FILE
     2468(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
     2469to RM.
     2470
     2471If FILE is a libtool library, all the files associated with it are deleted.
     2472Otherwise, only FILE itself is deleted using RM."
     2473        ;;
     2474
     2475      *)
     2476        func_fatal_help "invalid operation mode \`$opt_mode'"
     2477        ;;
     2478    esac
     2479
     2480    echo
     2481    $ECHO "Try \`$progname --help' for more information about other modes."
     2482}
     2483
     2484# Now that we've collected a possible --mode arg, show help if necessary
     2485if $opt_help; then
     2486  if test "$opt_help" = :; then
     2487    func_mode_help
     2488  else
     2489    {
     2490      func_help noexit
     2491      for opt_mode in compile link execute install finish uninstall clean; do
     2492        func_mode_help
     2493      done
     2494    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
     2495    {
     2496      func_help noexit
     2497      for opt_mode in compile link execute install finish uninstall clean; do
     2498        echo
     2499        func_mode_help
     2500      done
     2501    } |
     2502    sed '1d
     2503      /^When reporting/,/^Report/{
     2504        H
     2505        d
    2082506      }
     2507      $x
     2508      /information about other modes/d
     2509      /more detailed .*MODE/d
     2510      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
     2511  fi
     2512  exit $?
     2513fi
     2514
     2515
     2516# func_mode_execute arg...
     2517func_mode_execute ()
     2518{
     2519    $opt_debug
     2520    # The first argument is the command name.
     2521    cmd="$nonopt"
     2522    test -z "$cmd" && \
     2523      func_fatal_help "you must specify a COMMAND"
     2524
     2525    # Handle -dlopen flags immediately.
     2526    for file in $opt_dlopen; do
     2527      test -f "$file" \
     2528        || func_fatal_help "\`$file' is not a file"
     2529
     2530      dir=
     2531      case $file in
     2532      *.la)
     2533        func_resolve_sysroot "$file"
     2534        file=$func_resolve_sysroot_result
     2535
     2536        # Check to see that this really is a libtool archive.
     2537        func_lalib_unsafe_p "$file" \
     2538          || func_fatal_help "\`$lib' is not a valid libtool archive"
     2539
     2540        # Read the libtool library.
     2541        dlname=
     2542        library_names=
     2543        func_source "$file"
     2544
     2545        # Skip this library if it cannot be dlopened.
     2546        if test -z "$dlname"; then
     2547          # Warn if it was a shared library.
     2548          test -n "$library_names" && \
     2549            func_warning "\`$file' was not linked with \`-export-dynamic'"
     2550          continue
     2551        fi
     2552
     2553        func_dirname "$file" "" "."
     2554        dir="$func_dirname_result"
     2555
     2556        if test -f "$dir/$objdir/$dlname"; then
     2557          func_append dir "/$objdir"
     2558        else
     2559          if test ! -f "$dir/$dlname"; then
     2560            func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
     2561          fi
     2562        fi
     2563        ;;
     2564
     2565      *.lo)
     2566        # Just add the directory containing the .lo file.
     2567        func_dirname "$file" "" "."
     2568        dir="$func_dirname_result"
     2569        ;;
     2570
     2571      *)
     2572        func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
     2573        continue
     2574        ;;
     2575      esac
     2576
     2577      # Get the absolute pathname.
     2578      absdir=`cd "$dir" && pwd`
     2579      test -n "$absdir" && dir="$absdir"
     2580
     2581      # Now add the directory to shlibpath_var.
     2582      if eval "test -z \"\$$shlibpath_var\""; then
     2583        eval "$shlibpath_var=\"\$dir\""
     2584      else
     2585        eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
     2586      fi
     2587    done
     2588
     2589    # This variable tells wrapper scripts just to set shlibpath_var
     2590    # rather than running their programs.
     2591    libtool_execute_magic="$magic"
     2592
     2593    # Check if any of the arguments is a wrapper script.
     2594    args=
     2595    for file
     2596    do
     2597      case $file in
     2598      -* | *.la | *.lo ) ;;
     2599      *)
     2600        # Do a test to see if this is really a libtool program.
     2601        if func_ltwrapper_script_p "$file"; then
     2602          func_source "$file"
     2603          # Transform arg to wrapped name.
     2604          file="$progdir/$program"
     2605        elif func_ltwrapper_executable_p "$file"; then
     2606          func_ltwrapper_scriptname "$file"
     2607          func_source "$func_ltwrapper_scriptname_result"
     2608          # Transform arg to wrapped name.
     2609          file="$progdir/$program"
     2610        fi
     2611        ;;
     2612      esac
     2613      # Quote arguments (to preserve shell metacharacters).
     2614      func_append_quoted args "$file"
     2615    done
     2616
     2617    if test "X$opt_dry_run" = Xfalse; then
     2618      if test -n "$shlibpath_var"; then
     2619        # Export the shlibpath_var.
     2620        eval "export $shlibpath_var"
     2621      fi
     2622
     2623      # Restore saved environment variables
     2624      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
     2625      do
     2626        eval "if test \"\${save_$lt_var+set}\" = set; then
     2627                $lt_var=\$save_$lt_var; export $lt_var
     2628              else
     2629                $lt_unset $lt_var
     2630              fi"
     2631      done
     2632
     2633      # Now prepare to actually exec the command.
     2634      exec_cmd="\$cmd$args"
     2635    else
     2636      # Display what would be done.
     2637      if test -n "$shlibpath_var"; then
     2638        eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
     2639        echo "export $shlibpath_var"
     2640      fi
     2641      $ECHO "$cmd$args"
     2642      exit $EXIT_SUCCESS
    2092643    fi
    210 
    211     $echo "X$my_tmpdir" | $Xsed
    212 }
    213 
     2644}
     2645
     2646test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
     2647
     2648
     2649# func_mode_finish arg...
     2650func_mode_finish ()
     2651{
     2652    $opt_debug
     2653    libs=
     2654    libdirs=
     2655    admincmds=
     2656
     2657    for opt in "$nonopt" ${1+"$@"}
     2658    do
     2659      if test -d "$opt"; then
     2660        func_append libdirs " $opt"
     2661
     2662      elif test -f "$opt"; then
     2663        if func_lalib_unsafe_p "$opt"; then
     2664          func_append libs " $opt"
     2665        else
     2666          func_warning "\`$opt' is not a valid libtool archive"
     2667        fi
     2668
     2669      else
     2670        func_fatal_error "invalid argument \`$opt'"
     2671      fi
     2672    done
     2673
     2674    if test -n "$libs"; then
     2675      if test -n "$lt_sysroot"; then
     2676        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
     2677        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
     2678      else
     2679        sysroot_cmd=
     2680      fi
     2681
     2682      # Remove sysroot references
     2683      if $opt_dry_run; then
     2684        for lib in $libs; do
     2685          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
     2686        done
     2687      else
     2688        tmpdir=`func_mktempdir`
     2689        for lib in $libs; do
     2690          sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
     2691            > $tmpdir/tmp-la
     2692          mv -f $tmpdir/tmp-la $lib
     2693        done
     2694        ${RM}r "$tmpdir"
     2695      fi
     2696    fi
     2697
     2698    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
     2699      for libdir in $libdirs; do
     2700        if test -n "$finish_cmds"; then
     2701          # Do each command in the finish commands.
     2702          func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
     2703'"$cmd"'"'
     2704        fi
     2705        if test -n "$finish_eval"; then
     2706          # Do the single finish_eval.
     2707          eval cmds=\"$finish_eval\"
     2708          $opt_dry_run || eval "$cmds" || func_append admincmds "
     2709       $cmds"
     2710        fi
     2711      done
     2712    fi
     2713
     2714    # Exit here if they wanted silent mode.
     2715    $opt_silent && exit $EXIT_SUCCESS
     2716
     2717    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
     2718      echo "----------------------------------------------------------------------"
     2719      echo "Libraries have been installed in:"
     2720      for libdir in $libdirs; do
     2721        $ECHO "   $libdir"
     2722      done
     2723      echo
     2724      echo "If you ever happen to want to link against installed libraries"
     2725      echo "in a given directory, LIBDIR, you must either use libtool, and"
     2726      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
     2727      echo "flag during linking and do at least one of the following:"
     2728      if test -n "$shlibpath_var"; then
     2729        echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
     2730        echo "     during execution"
     2731      fi
     2732      if test -n "$runpath_var"; then
     2733        echo "   - add LIBDIR to the \`$runpath_var' environment variable"
     2734        echo "     during linking"
     2735      fi
     2736      if test -n "$hardcode_libdir_flag_spec"; then
     2737        libdir=LIBDIR
     2738        eval flag=\"$hardcode_libdir_flag_spec\"
     2739
     2740        $ECHO "   - use the \`$flag' linker flag"
     2741      fi
     2742      if test -n "$admincmds"; then
     2743        $ECHO "   - have your system administrator run these commands:$admincmds"
     2744      fi
     2745      if test -f /etc/ld.so.conf; then
     2746        echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
     2747      fi
     2748      echo
     2749
     2750      echo "See any operating system documentation about shared libraries for"
     2751      case $host in
     2752        solaris2.[6789]|solaris2.1[0-9])
     2753          echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
     2754          echo "pages."
     2755          ;;
     2756        *)
     2757          echo "more information, such as the ld(1) and ld.so(8) manual pages."
     2758          ;;
     2759      esac
     2760      echo "----------------------------------------------------------------------"
     2761    fi
     2762    exit $EXIT_SUCCESS
     2763}
     2764
     2765test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
     2766
     2767
     2768# func_mode_install arg...
     2769func_mode_install ()
     2770{
     2771    $opt_debug
     2772    # There may be an optional sh(1) argument at the beginning of
     2773    # install_prog (especially on Windows NT).
     2774    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
     2775       # Allow the use of GNU shtool's install command.
     2776       case $nonopt in *shtool*) :;; *) false;; esac; then
     2777      # Aesthetically quote it.
     2778      func_quote_for_eval "$nonopt"
     2779      install_prog="$func_quote_for_eval_result "
     2780      arg=$1
     2781      shift
     2782    else
     2783      install_prog=
     2784      arg=$nonopt
     2785    fi
     2786
     2787    # The real first argument should be the name of the installation program.
     2788    # Aesthetically quote it.
     2789    func_quote_for_eval "$arg"
     2790    func_append install_prog "$func_quote_for_eval_result"
     2791    install_shared_prog=$install_prog
     2792    case " $install_prog " in
     2793      *[\\\ /]cp\ *) install_cp=: ;;
     2794      *) install_cp=false ;;
     2795    esac
     2796
     2797    # We need to accept at least all the BSD install flags.
     2798    dest=
     2799    files=
     2800    opts=
     2801    prev=
     2802    install_type=
     2803    isdir=no
     2804    stripme=
     2805    no_mode=:
     2806    for arg
     2807    do
     2808      arg2=
     2809      if test -n "$dest"; then
     2810        func_append files " $dest"
     2811        dest=$arg
     2812        continue
     2813      fi
     2814
     2815      case $arg in
     2816      -d) isdir=yes ;;
     2817      -f)
     2818        if $install_cp; then :; else
     2819          prev=$arg
     2820        fi
     2821        ;;
     2822      -g | -m | -o)
     2823        prev=$arg
     2824        ;;
     2825      -s)
     2826        stripme=" -s"
     2827        continue
     2828        ;;
     2829      -*)
     2830        ;;
     2831      *)
     2832        # If the previous option needed an argument, then skip it.
     2833        if test -n "$prev"; then
     2834          if test "x$prev" = x-m && test -n "$install_override_mode"; then
     2835            arg2=$install_override_mode
     2836            no_mode=false
     2837          fi
     2838          prev=
     2839        else
     2840          dest=$arg
     2841          continue
     2842        fi
     2843        ;;
     2844      esac
     2845
     2846      # Aesthetically quote the argument.
     2847      func_quote_for_eval "$arg"
     2848      func_append install_prog " $func_quote_for_eval_result"
     2849      if test -n "$arg2"; then
     2850        func_quote_for_eval "$arg2"
     2851      fi
     2852      func_append install_shared_prog " $func_quote_for_eval_result"
     2853    done
     2854
     2855    test -z "$install_prog" && \
     2856      func_fatal_help "you must specify an install program"
     2857
     2858    test -n "$prev" && \
     2859      func_fatal_help "the \`$prev' option requires an argument"
     2860
     2861    if test -n "$install_override_mode" && $no_mode; then
     2862      if $install_cp; then :; else
     2863        func_quote_for_eval "$install_override_mode"
     2864        func_append install_shared_prog " -m $func_quote_for_eval_result"
     2865      fi
     2866    fi
     2867
     2868    if test -z "$files"; then
     2869      if test -z "$dest"; then
     2870        func_fatal_help "no file or destination specified"
     2871      else
     2872        func_fatal_help "you must specify a destination"
     2873      fi
     2874    fi
     2875
     2876    # Strip any trailing slash from the destination.
     2877    func_stripname '' '/' "$dest"
     2878    dest=$func_stripname_result
     2879
     2880    # Check to see that the destination is a directory.
     2881    test -d "$dest" && isdir=yes
     2882    if test "$isdir" = yes; then
     2883      destdir="$dest"
     2884      destname=
     2885    else
     2886      func_dirname_and_basename "$dest" "" "."
     2887      destdir="$func_dirname_result"
     2888      destname="$func_basename_result"
     2889
     2890      # Not a directory, so check to see that there is only one file specified.
     2891      set dummy $files; shift
     2892      test "$#" -gt 1 && \
     2893        func_fatal_help "\`$dest' is not a directory"
     2894    fi
     2895    case $destdir in
     2896    [\\/]* | [A-Za-z]:[\\/]*) ;;
     2897    *)
     2898      for file in $files; do
     2899        case $file in
     2900        *.lo) ;;
     2901        *)
     2902          func_fatal_help "\`$destdir' must be an absolute directory name"
     2903          ;;
     2904        esac
     2905      done
     2906      ;;
     2907    esac
     2908
     2909    # This variable tells wrapper scripts just to set variables rather
     2910    # than running their programs.
     2911    libtool_install_magic="$magic"
     2912
     2913    staticlibs=
     2914    future_libdirs=
     2915    current_libdirs=
     2916    for file in $files; do
     2917
     2918      # Do each installation.
     2919      case $file in
     2920      *.$libext)
     2921        # Do the static libraries later.
     2922        func_append staticlibs " $file"
     2923        ;;
     2924
     2925      *.la)
     2926        func_resolve_sysroot "$file"
     2927        file=$func_resolve_sysroot_result
     2928
     2929        # Check to see that this really is a libtool archive.
     2930        func_lalib_unsafe_p "$file" \
     2931          || func_fatal_help "\`$file' is not a valid libtool archive"
     2932
     2933        library_names=
     2934        old_library=
     2935        relink_command=
     2936        func_source "$file"
     2937
     2938        # Add the libdir to current_libdirs if it is the destination.
     2939        if test "X$destdir" = "X$libdir"; then
     2940          case "$current_libdirs " in
     2941          *" $libdir "*) ;;
     2942          *) func_append current_libdirs " $libdir" ;;
     2943          esac
     2944        else
     2945          # Note the libdir as a future libdir.
     2946          case "$future_libdirs " in
     2947          *" $libdir "*) ;;
     2948          *) func_append future_libdirs " $libdir" ;;
     2949          esac
     2950        fi
     2951
     2952        func_dirname "$file" "/" ""
     2953        dir="$func_dirname_result"
     2954        func_append dir "$objdir"
     2955
     2956        if test -n "$relink_command"; then
     2957          # Determine the prefix the user has applied to our future dir.
     2958          inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
     2959
     2960          # Don't allow the user to place us outside of our expected
     2961          # location b/c this prevents finding dependent libraries that
     2962          # are installed to the same prefix.
     2963          # At present, this check doesn't affect windows .dll's that
     2964          # are installed into $libdir/../bin (currently, that works fine)
     2965          # but it's something to keep an eye on.
     2966          test "$inst_prefix_dir" = "$destdir" && \
     2967            func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
     2968
     2969          if test -n "$inst_prefix_dir"; then
     2970            # Stick the inst_prefix_dir data into the link command.
     2971            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
     2972          else
     2973            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
     2974          fi
     2975
     2976          func_warning "relinking \`$file'"
     2977          func_show_eval "$relink_command" \
     2978            'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
     2979        fi
     2980
     2981        # See the names of the shared library.
     2982        set dummy $library_names; shift
     2983        if test -n "$1"; then
     2984          realname="$1"
     2985          shift
     2986
     2987          srcname="$realname"
     2988          test -n "$relink_command" && srcname="$realname"T
     2989
     2990          # Install the shared library and build the symlinks.
     2991          func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
     2992              'exit $?'
     2993          tstripme="$stripme"
     2994          case $host_os in
     2995          cygwin* | mingw* | pw32* | cegcc*)
     2996            case $realname in
     2997            *.dll.a)
     2998              tstripme=""
     2999              ;;
     3000            esac
     3001            ;;
     3002          esac
     3003          if test -n "$tstripme" && test -n "$striplib"; then
     3004            func_show_eval "$striplib $destdir/$realname" 'exit $?'
     3005          fi
     3006
     3007          if test "$#" -gt 0; then
     3008            # Delete the old symlinks, and create new ones.
     3009            # Try `ln -sf' first, because the `ln' binary might depend on
     3010            # the symlink we replace!  Solaris /bin/ln does not understand -f,
     3011            # so we also need to try rm && ln -s.
     3012            for linkname
     3013            do
     3014              test "$linkname" != "$realname" \
     3015                && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
     3016            done
     3017          fi
     3018
     3019          # Do each command in the postinstall commands.
     3020          lib="$destdir/$realname"
     3021          func_execute_cmds "$postinstall_cmds" 'exit $?'
     3022        fi
     3023
     3024        # Install the pseudo-library for information purposes.
     3025        func_basename "$file"
     3026        name="$func_basename_result"
     3027        instname="$dir/$name"i
     3028        func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
     3029
     3030        # Maybe install the static library, too.
     3031        test -n "$old_library" && func_append staticlibs " $dir/$old_library"
     3032        ;;
     3033
     3034      *.lo)
     3035        # Install (i.e. copy) a libtool object.
     3036
     3037        # Figure out destination file name, if it wasn't already specified.
     3038        if test -n "$destname"; then
     3039          destfile="$destdir/$destname"
     3040        else
     3041          func_basename "$file"
     3042          destfile="$func_basename_result"
     3043          destfile="$destdir/$destfile"
     3044        fi
     3045
     3046        # Deduce the name of the destination old-style object file.
     3047        case $destfile in
     3048        *.lo)
     3049          func_lo2o "$destfile"
     3050          staticdest=$func_lo2o_result
     3051          ;;
     3052        *.$objext)
     3053          staticdest="$destfile"
     3054          destfile=
     3055          ;;
     3056        *)
     3057          func_fatal_help "cannot copy a libtool object to \`$destfile'"
     3058          ;;
     3059        esac
     3060
     3061        # Install the libtool object if requested.
     3062        test -n "$destfile" && \
     3063          func_show_eval "$install_prog $file $destfile" 'exit $?'
     3064
     3065        # Install the old object if enabled.
     3066        if test "$build_old_libs" = yes; then
     3067          # Deduce the name of the old-style object file.
     3068          func_lo2o "$file"
     3069          staticobj=$func_lo2o_result
     3070          func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
     3071        fi
     3072        exit $EXIT_SUCCESS
     3073        ;;
     3074
     3075      *)
     3076        # Figure out destination file name, if it wasn't already specified.
     3077        if test -n "$destname"; then
     3078          destfile="$destdir/$destname"
     3079        else
     3080          func_basename "$file"
     3081          destfile="$func_basename_result"
     3082          destfile="$destdir/$destfile"
     3083        fi
     3084
     3085        # If the file is missing, and there is a .exe on the end, strip it
     3086        # because it is most likely a libtool script we actually want to
     3087        # install
     3088        stripped_ext=""
     3089        case $file in
     3090          *.exe)
     3091            if test ! -f "$file"; then
     3092              func_stripname '' '.exe' "$file"
     3093              file=$func_stripname_result
     3094              stripped_ext=".exe"
     3095            fi
     3096            ;;
     3097        esac
     3098
     3099        # Do a test to see if this is really a libtool program.
     3100        case $host in
     3101        *cygwin* | *mingw*)
     3102            if func_ltwrapper_executable_p "$file"; then
     3103              func_ltwrapper_scriptname "$file"
     3104              wrapper=$func_ltwrapper_scriptname_result
     3105            else
     3106              func_stripname '' '.exe' "$file"
     3107              wrapper=$func_stripname_result
     3108            fi
     3109            ;;
     3110        *)
     3111            wrapper=$file
     3112            ;;
     3113        esac
     3114        if func_ltwrapper_script_p "$wrapper"; then
     3115          notinst_deplibs=
     3116          relink_command=
     3117
     3118          func_source "$wrapper"
     3119
     3120          # Check the variables that should have been set.
     3121          test -z "$generated_by_libtool_version" && \
     3122            func_fatal_error "invalid libtool wrapper script \`$wrapper'"
     3123
     3124          finalize=yes
     3125          for lib in $notinst_deplibs; do
     3126            # Check to see that each library is installed.
     3127            libdir=
     3128            if test -f "$lib"; then
     3129              func_source "$lib"
     3130            fi
     3131            libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
     3132            if test -n "$libdir" && test ! -f "$libfile"; then
     3133              func_warning "\`$lib' has not been installed in \`$libdir'"
     3134              finalize=no
     3135            fi
     3136          done
     3137
     3138          relink_command=
     3139          func_source "$wrapper"
     3140
     3141          outputname=
     3142          if test "$fast_install" = no && test -n "$relink_command"; then
     3143            $opt_dry_run || {
     3144              if test "$finalize" = yes; then
     3145                tmpdir=`func_mktempdir`
     3146                func_basename "$file$stripped_ext"
     3147                file="$func_basename_result"
     3148                outputname="$tmpdir/$file"
     3149                # Replace the output file specification.
     3150                relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
     3151
     3152                $opt_silent || {
     3153                  func_quote_for_expand "$relink_command"
     3154                  eval "func_echo $func_quote_for_expand_result"
     3155                }
     3156                if eval "$relink_command"; then :
     3157                  else
     3158                  func_error "error: relink \`$file' with the above command before installing it"
     3159                  $opt_dry_run || ${RM}r "$tmpdir"
     3160                  continue
     3161                fi
     3162                file="$outputname"
     3163              else
     3164                func_warning "cannot relink \`$file'"
     3165              fi
     3166            }
     3167          else
     3168            # Install the binary that we compiled earlier.
     3169            file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
     3170          fi
     3171        fi
     3172
     3173        # remove .exe since cygwin /usr/bin/install will append another
     3174        # one anyway
     3175        case $install_prog,$host in
     3176        */usr/bin/install*,*cygwin*)
     3177          case $file:$destfile in
     3178          *.exe:*.exe)
     3179            # this is ok
     3180            ;;
     3181          *.exe:*)
     3182            destfile=$destfile.exe
     3183            ;;
     3184          *:*.exe)
     3185            func_stripname '' '.exe' "$destfile"
     3186            destfile=$func_stripname_result
     3187            ;;
     3188          esac
     3189          ;;
     3190        esac
     3191        func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
     3192        $opt_dry_run || if test -n "$outputname"; then
     3193          ${RM}r "$tmpdir"
     3194        fi
     3195        ;;
     3196      esac
     3197    done
     3198
     3199    for file in $staticlibs; do
     3200      func_basename "$file"
     3201      name="$func_basename_result"
     3202
     3203      # Set up the ranlib parameters.
     3204      oldlib="$destdir/$name"
     3205      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
     3206      tool_oldlib=$func_to_tool_file_result
     3207
     3208      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
     3209
     3210      if test -n "$stripme" && test -n "$old_striplib"; then
     3211        func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
     3212      fi
     3213
     3214      # Do each command in the postinstall commands.
     3215      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
     3216    done
     3217
     3218    test -n "$future_libdirs" && \
     3219      func_warning "remember to run \`$progname --finish$future_libdirs'"
     3220
     3221    if test -n "$current_libdirs"; then
     3222      # Maybe just do a dry run.
     3223      $opt_dry_run && current_libdirs=" -n$current_libdirs"
     3224      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
     3225    else
     3226      exit $EXIT_SUCCESS
     3227    fi
     3228}
     3229
     3230test "$opt_mode" = install && func_mode_install ${1+"$@"}
     3231
     3232
     3233# func_generate_dlsyms outputname originator pic_p
     3234# Extract symbols from dlprefiles and create ${outputname}S.o with
     3235# a dlpreopen symbol table.
     3236func_generate_dlsyms ()
     3237{
     3238    $opt_debug
     3239    my_outputname="$1"
     3240    my_originator="$2"
     3241    my_pic_p="${3-no}"
     3242    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
     3243    my_dlsyms=
     3244
     3245    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
     3246      if test -n "$NM" && test -n "$global_symbol_pipe"; then
     3247        my_dlsyms="${my_outputname}S.c"
     3248      else
     3249        func_error "not configured to extract global symbols from dlpreopened files"
     3250      fi
     3251    fi
     3252
     3253    if test -n "$my_dlsyms"; then
     3254      case $my_dlsyms in
     3255      "") ;;
     3256      *.c)
     3257        # Discover the nlist of each of the dlfiles.
     3258        nlist="$output_objdir/${my_outputname}.nm"
     3259
     3260        func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
     3261
     3262        # Parse the name list into a source file.
     3263        func_verbose "creating $output_objdir/$my_dlsyms"
     3264
     3265        $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
     3266/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
     3267/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
     3268
     3269#ifdef __cplusplus
     3270extern \"C\" {
     3271#endif
     3272
     3273#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
     3274#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
     3275#endif
     3276
     3277/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
     3278#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
     3279/* DATA imports from DLLs on WIN32 con't be const, because runtime
     3280   relocations are performed -- see ld's documentation on pseudo-relocs.  */
     3281# define LT_DLSYM_CONST
     3282#elif defined(__osf__)
     3283/* This system does not cope well with relocations in const data.  */
     3284# define LT_DLSYM_CONST
     3285#else
     3286# define LT_DLSYM_CONST const
     3287#endif
     3288
     3289/* External symbol declarations for the compiler. */\
     3290"
     3291
     3292        if test "$dlself" = yes; then
     3293          func_verbose "generating symbol list for \`$output'"
     3294
     3295          $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
     3296
     3297          # Add our own program objects to the symbol list.
     3298          progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
     3299          for progfile in $progfiles; do
     3300            func_to_tool_file "$progfile" func_convert_file_msys_to_w32
     3301            func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
     3302            $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
     3303          done
     3304
     3305          if test -n "$exclude_expsyms"; then
     3306            $opt_dry_run || {
     3307              eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
     3308              eval '$MV "$nlist"T "$nlist"'
     3309            }
     3310          fi
     3311
     3312          if test -n "$export_symbols_regex"; then
     3313            $opt_dry_run || {
     3314              eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
     3315              eval '$MV "$nlist"T "$nlist"'
     3316            }
     3317          fi
     3318
     3319          # Prepare the list of exported symbols
     3320          if test -z "$export_symbols"; then
     3321            export_symbols="$output_objdir/$outputname.exp"
     3322            $opt_dry_run || {
     3323              $RM $export_symbols
     3324              eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
     3325              case $host in
     3326              *cygwin* | *mingw* | *cegcc* )
     3327                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
     3328                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
     3329                ;;
     3330              esac
     3331            }
     3332          else
     3333            $opt_dry_run || {
     3334              eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
     3335              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
     3336              eval '$MV "$nlist"T "$nlist"'
     3337              case $host in
     3338                *cygwin* | *mingw* | *cegcc* )
     3339                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
     3340                  eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
     3341                  ;;
     3342              esac
     3343            }
     3344          fi
     3345        fi
     3346
     3347        for dlprefile in $dlprefiles; do
     3348          func_verbose "extracting global C symbols from \`$dlprefile'"
     3349          func_basename "$dlprefile"
     3350          name="$func_basename_result"
     3351          case $host in
     3352            *cygwin* | *mingw* | *cegcc* )
     3353              # if an import library, we need to obtain dlname
     3354              if func_win32_import_lib_p "$dlprefile"; then
     3355                func_tr_sh "$dlprefile"
     3356                eval "curr_lafile=\$libfile_$func_tr_sh_result"
     3357                dlprefile_dlbasename=""
     3358                if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
     3359                  # Use subshell, to avoid clobbering current variable values
     3360                  dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
     3361                  if test -n "$dlprefile_dlname" ; then
     3362                    func_basename "$dlprefile_dlname"
     3363                    dlprefile_dlbasename="$func_basename_result"
     3364                  else
     3365                    # no lafile. user explicitly requested -dlpreopen <import library>.
     3366                    $sharedlib_from_linklib_cmd "$dlprefile"
     3367                    dlprefile_dlbasename=$sharedlib_from_linklib_result
     3368                  fi
     3369                fi
     3370                $opt_dry_run || {
     3371                  if test -n "$dlprefile_dlbasename" ; then
     3372                    eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
     3373                  else
     3374                    func_warning "Could not compute DLL name from $name"
     3375                    eval '$ECHO ": $name " >> "$nlist"'
     3376                  fi
     3377                  func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
     3378                  eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
     3379                    $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
     3380                }
     3381              else # not an import lib
     3382                $opt_dry_run || {
     3383                  eval '$ECHO ": $name " >> "$nlist"'
     3384                  func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
     3385                  eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
     3386                }
     3387              fi
     3388            ;;
     3389            *)
     3390              $opt_dry_run || {
     3391                eval '$ECHO ": $name " >> "$nlist"'
     3392                func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
     3393                eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
     3394              }
     3395            ;;
     3396          esac
     3397        done
     3398
     3399        $opt_dry_run || {
     3400          # Make sure we have at least an empty file.
     3401          test -f "$nlist" || : > "$nlist"
     3402
     3403          if test -n "$exclude_expsyms"; then
     3404            $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
     3405            $MV "$nlist"T "$nlist"
     3406          fi
     3407
     3408          # Try sorting and uniquifying the output.
     3409          if $GREP -v "^: " < "$nlist" |
     3410              if sort -k 3 </dev/null >/dev/null 2>&1; then
     3411                sort -k 3
     3412              else
     3413                sort +2
     3414              fi |
     3415              uniq > "$nlist"S; then
     3416            :
     3417          else
     3418            $GREP -v "^: " < "$nlist" > "$nlist"S
     3419          fi
     3420
     3421          if test -f "$nlist"S; then
     3422            eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
     3423          else
     3424            echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
     3425          fi
     3426
     3427          echo >> "$output_objdir/$my_dlsyms" "\
     3428
     3429/* The mapping between symbol names and symbols.  */
     3430typedef struct {
     3431  const char *name;
     3432  void *address;
     3433} lt_dlsymlist;
     3434extern LT_DLSYM_CONST lt_dlsymlist
     3435lt_${my_prefix}_LTX_preloaded_symbols[];
     3436LT_DLSYM_CONST lt_dlsymlist
     3437lt_${my_prefix}_LTX_preloaded_symbols[] =
     3438{\
     3439  { \"$my_originator\", (void *) 0 },"
     3440
     3441          case $need_lib_prefix in
     3442          no)
     3443            eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
     3444            ;;
     3445          *)
     3446            eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
     3447            ;;
     3448          esac
     3449          echo >> "$output_objdir/$my_dlsyms" "\
     3450  {0, (void *) 0}
     3451};
     3452
     3453/* This works around a problem in FreeBSD linker */
     3454#ifdef FREEBSD_WORKAROUND
     3455static const void *lt_preloaded_setup() {
     3456  return lt_${my_prefix}_LTX_preloaded_symbols;
     3457}
     3458#endif
     3459
     3460#ifdef __cplusplus
     3461}
     3462#endif\
     3463"
     3464        } # !$opt_dry_run
     3465
     3466        pic_flag_for_symtable=
     3467        case "$compile_command " in
     3468        *" -static "*) ;;
     3469        *)
     3470          case $host in
     3471          # compiling the symbol table file with pic_flag works around
     3472          # a FreeBSD bug that causes programs to crash when -lm is
     3473          # linked before any other PIC object.  But we must not use
     3474          # pic_flag when linking with -static.  The problem exists in
     3475          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
     3476          *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
     3477            pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
     3478          *-*-hpux*)
     3479            pic_flag_for_symtable=" $pic_flag"  ;;
     3480          *)
     3481            if test "X$my_pic_p" != Xno; then
     3482              pic_flag_for_symtable=" $pic_flag"
     3483            fi
     3484            ;;
     3485          esac
     3486          ;;
     3487        esac
     3488        symtab_cflags=
     3489        for arg in $LTCFLAGS; do
     3490          case $arg in
     3491          -pie | -fpie | -fPIE) ;;
     3492          *) func_append symtab_cflags " $arg" ;;
     3493          esac
     3494        done
     3495
     3496        # Now compile the dynamic symbol file.
     3497        func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
     3498
     3499        # Clean up the generated files.
     3500        func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
     3501
     3502        # Transform the symbol file into the correct name.
     3503        symfileobj="$output_objdir/${my_outputname}S.$objext"
     3504        case $host in
     3505        *cygwin* | *mingw* | *cegcc* )
     3506          if test -f "$output_objdir/$my_outputname.def"; then
     3507            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
     3508            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
     3509          else
     3510            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
     3511            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
     3512          fi
     3513          ;;
     3514        *)
     3515          compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
     3516          finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
     3517          ;;
     3518        esac
     3519        ;;
     3520      *)
     3521        func_fatal_error "unknown suffix for \`$my_dlsyms'"
     3522        ;;
     3523      esac
     3524    else
     3525      # We keep going just in case the user didn't refer to
     3526      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
     3527      # really was required.
     3528
     3529      # Nullify the symbol file.
     3530      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
     3531      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
     3532    fi
     3533}
    2143534
    2153535# func_win32_libid arg
     
    2193539# Has to be a shell function in order to 'eat' the argument
    2203540# that is supplied when $file_magic_command is called.
     3541# Despite the name, also deal with 64 bit binaries.
    2213542func_win32_libid ()
    2223543{
     3544  $opt_debug
    2233545  win32_libid_type="unknown"
    2243546  win32_fileres=`file -L $1 2>/dev/null`
     
    2283550    ;;
    2293551  *ar\ archive*) # could be an import, or static
    230     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
    231       $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
    232       win32_nmres=`eval $NM -f posix -A $1 | \
    233         $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
     3552    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     3553    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
     3554       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
     3555      func_to_tool_file "$1" func_convert_file_msys_to_w32
     3556      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
     3557        $SED -n -e '
     3558            1,100{
     3559                / I /{
     3560                    s,.*,import,
     3561                    p
     3562                    q
     3563                }
     3564            }'`
    2343565      case $win32_nmres in
    2353566      import*)  win32_libid_type="x86 archive import";;
     
    2493580    ;;
    2503581  esac
    251   $echo $win32_libid_type
    252 }
    253 
    254 
    255 # func_infer_tag arg
    256 # Infer tagged configuration to use if any are available and
    257 # if one wasn't chosen via the "--tag" command line option.
    258 # Only attempt this if the compiler in the base compile
    259 # command doesn't match the default compiler.
    260 # arg is usually of the form 'gcc ...'
    261 func_infer_tag ()
    262 {
    263     if test -n "$available_tags" && test -z "$tagname"; then
    264       CC_quoted=
    265       for arg in $CC; do
    266         case $arg in
    267           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
    268           arg="\"$arg\""
    269           ;;
    270         esac
    271         CC_quoted="$CC_quoted $arg"
    272       done
    273       case $@ in
    274       # Blanks in the command may have been stripped by the calling shell,
    275       # but not from the CC environment variable when configure was run.
    276       " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
    277       # Blanks at the start of $base_compile will cause this to fail
    278       # if we don't check for them as well.
    279       *)
    280         for z in $available_tags; do
    281           if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
    282             # Evaluate the configuration.
    283             eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
    284             CC_quoted=
    285             for arg in $CC; do
    286             # Double-quote args containing other shell metacharacters.
    287             case $arg in
    288               *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
    289               arg="\"$arg\""
    290               ;;
    291             esac
    292             CC_quoted="$CC_quoted $arg"
    293           done
    294             # user sometimes does CC=<HOST>-gcc so we need to match that to 'gcc'
    295             trimedcc=`echo ${CC} | $SED -e "s/${host}-//g"`
    296             # and sometimes libtool has CC=<HOST>-gcc but user does CC=gcc
    297             extendcc=${host}-${CC}
    298             # and sometimes libtool has CC=<OLDHOST>-gcc but user has CC=<NEWHOST>-gcc 
    299             # (Gentoo-specific hack because we always export $CHOST)
    300             mungedcc=${CHOST-${host}}-${trimedcc}
    301             case "$@ " in
    302               "cc "* | " cc "* | "${host}-cc "* | " ${host}-cc "*|\
    303               "gcc "* | " gcc "* | "${host}-gcc "* | " ${host}-gcc "*)
    304               tagname=CC
    305               break ;;
    306               "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\
    307               "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\
    308               "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    309               " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
    310               # The compiler in the base compile command matches
    311               # the one in the tagged configuration.
    312               # Assume this is the tagged configuration we want.
    313               tagname=$z
    314               break
    315               ;;
    316             esac
    317           fi
    318         done
    319         # If $tagname still isn't set, then no tagged configuration
    320         # was found and let the user know that the "--tag" command
    321         # line option must be used.
    322         if test -z "$tagname"; then
    323           $echo "$modename: unable to infer tagged configuration"
    324           $echo "$modename: specify a tag with \`--tag'" 1>&2
    325           exit $EXIT_FAILURE
    326 #        else
    327 #          $echo "$modename: using $tagname tagged configuration"
    328         fi
    329         ;;
    330       esac
    331     fi
     3582  $ECHO "$win32_libid_type"
     3583}
     3584
     3585# func_cygming_dll_for_implib ARG
     3586#
     3587# Platform-specific function to extract the
     3588# name of the DLL associated with the specified
     3589# import library ARG.
     3590# Invoked by eval'ing the libtool variable
     3591#    $sharedlib_from_linklib_cmd
     3592# Result is available in the variable
     3593#    $sharedlib_from_linklib_result
     3594func_cygming_dll_for_implib ()
     3595{
     3596  $opt_debug
     3597  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
     3598}
     3599
     3600# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
     3601#
     3602# The is the core of a fallback implementation of a
     3603# platform-specific function to extract the name of the
     3604# DLL associated with the specified import library LIBNAME.
     3605#
     3606# SECTION_NAME is either .idata$6 or .idata$7, depending
     3607# on the platform and compiler that created the implib.
     3608#
     3609# Echos the name of the DLL associated with the
     3610# specified import library.
     3611func_cygming_dll_for_implib_fallback_core ()
     3612{
     3613  $opt_debug
     3614  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
     3615  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
     3616    $SED '/^Contents of section '"$match_literal"':/{
     3617      # Place marker at beginning of archive member dllname section
     3618      s/.*/====MARK====/
     3619      p
     3620      d
     3621    }
     3622    # These lines can sometimes be longer than 43 characters, but
     3623    # are always uninteresting
     3624    /:[  ]*file format pe[i]\{,1\}-/d
     3625    /^In archive [^:]*:/d
     3626    # Ensure marker is printed
     3627    /^====MARK====/p
     3628    # Remove all lines with less than 43 characters
     3629    /^.\{43\}/!d
     3630    # From remaining lines, remove first 43 characters
     3631    s/^.\{43\}//' |
     3632    $SED -n '
     3633      # Join marker and all lines until next marker into a single line
     3634      /^====MARK====/ b para
     3635      H
     3636      $ b para
     3637      b
     3638      :para
     3639      x
     3640      s/\n//g
     3641      # Remove the marker
     3642      s/^====MARK====//
     3643      # Remove trailing dots and whitespace
     3644      s/[\. \t]*$//
     3645      # Print
     3646      /./p' |
     3647    # we now have a list, one entry per line, of the stringified
     3648    # contents of the appropriate section of all members of the
     3649    # archive which possess that section. Heuristic: eliminate
     3650    # all those which have a first or second character that is
     3651    # a '.' (that is, objdump's representation of an unprintable
     3652    # character.) This should work for all archives with less than
     3653    # 0x302f exports -- but will fail for DLLs whose name actually
     3654    # begins with a literal '.' or a single character followed by
     3655    # a '.'.
     3656    #
     3657    # Of those that remain, print the first one.
     3658    $SED -e '/^\./d;/^.\./d;q'
     3659}
     3660
     3661# func_cygming_gnu_implib_p ARG
     3662# This predicate returns with zero status (TRUE) if
     3663# ARG is a GNU/binutils-style import library. Returns
     3664# with nonzero status (FALSE) otherwise.
     3665func_cygming_gnu_implib_p ()
     3666{
     3667  $opt_debug
     3668  func_to_tool_file "$1" func_convert_file_msys_to_w32
     3669  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)$'`
     3670  test -n "$func_cygming_gnu_implib_tmp"
     3671}
     3672
     3673# func_cygming_ms_implib_p ARG
     3674# This predicate returns with zero status (TRUE) if
     3675# ARG is an MS-style import library. Returns
     3676# with nonzero status (FALSE) otherwise.
     3677func_cygming_ms_implib_p ()
     3678{
     3679  $opt_debug
     3680  func_to_tool_file "$1" func_convert_file_msys_to_w32
     3681  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
     3682  test -n "$func_cygming_ms_implib_tmp"
     3683}
     3684
     3685# func_cygming_dll_for_implib_fallback ARG
     3686# Platform-specific function to extract the
     3687# name of the DLL associated with the specified
     3688# import library ARG.
     3689#
     3690# This fallback implementation is for use when $DLLTOOL
     3691# does not support the --identify-strict option.
     3692# Invoked by eval'ing the libtool variable
     3693#    $sharedlib_from_linklib_cmd
     3694# Result is available in the variable
     3695#    $sharedlib_from_linklib_result
     3696func_cygming_dll_for_implib_fallback ()
     3697{
     3698  $opt_debug
     3699  if func_cygming_gnu_implib_p "$1" ; then
     3700    # binutils import library
     3701    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
     3702  elif func_cygming_ms_implib_p "$1" ; then
     3703    # ms-generated import library
     3704    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
     3705  else
     3706    # unknown
     3707    sharedlib_from_linklib_result=""
     3708  fi
    3323709}
    3333710
     
    3363713func_extract_an_archive ()
    3373714{
     3715    $opt_debug
    3383716    f_ex_an_ar_dir="$1"; shift
    3393717    f_ex_an_ar_oldlib="$1"
    340 
    341     $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
    342     $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
     3718    if test "$lock_old_archive_extraction" = yes; then
     3719      lockfile=$f_ex_an_ar_oldlib.lock
     3720      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
     3721        func_echo "Waiting for $lockfile to be removed"
     3722        sleep 2
     3723      done
     3724    fi
     3725    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
     3726                   'stat=$?; rm -f "$lockfile"; exit $stat'
     3727    if test "$lock_old_archive_extraction" = yes; then
     3728      $opt_dry_run || rm -f "$lockfile"
     3729    fi
    3433730    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
    3443731     :
    3453732    else
    346       $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
    347       exit $EXIT_FAILURE
     3733      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
    3483734    fi
    3493735}
     3736
    3503737
    3513738# func_extract_archives gentop oldlib ...
    3523739func_extract_archives ()
    3533740{
     3741    $opt_debug
    3543742    my_gentop="$1"; shift
    3553743    my_oldlibs=${1+"$@"}
     
    3583746    my_xabs=""
    3593747    my_xdir=""
    360     my_status=""
    361 
    362     $show "${rm}r $my_gentop"
    363     $run ${rm}r "$my_gentop"
    364     $show "$mkdir $my_gentop"
    365     $run $mkdir "$my_gentop"
    366     my_status=$?
    367     if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
    368       exit $my_status
    369     fi
    3703748
    3713749    for my_xlib in $my_oldlibs; do
     
    3753753        *) my_xabs=`pwd`"/$my_xlib" ;;
    3763754      esac
    377       my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
    378       my_xdir="$my_gentop/$my_xlib"
    379 
    380       $show "${rm}r $my_xdir"
    381       $run ${rm}r "$my_xdir"
    382       $show "$mkdir $my_xdir"
    383       $run $mkdir "$my_xdir"
    384       exit_status=$?
    385       if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
    386         exit $exit_status
    387       fi
     3755      func_basename "$my_xlib"
     3756      my_xlib="$func_basename_result"
     3757      my_xlib_u=$my_xlib
     3758      while :; do
     3759        case " $extracted_archives " in
     3760        *" $my_xlib_u "*)
     3761          func_arith $extracted_serial + 1
     3762          extracted_serial=$func_arith_result
     3763          my_xlib_u=lt$extracted_serial-$my_xlib ;;
     3764        *) break ;;
     3765        esac
     3766      done
     3767      extracted_archives="$extracted_archives $my_xlib_u"
     3768      my_xdir="$my_gentop/$my_xlib_u"
     3769
     3770      func_mkdir_p "$my_xdir"
     3771
    3883772      case $host in
    3893773      *-darwin*)
    390         $show "Extracting $my_xabs"
     3774        func_verbose "Extracting $my_xabs"
    3913775        # Do not bother doing anything if just a dry run
    392         if test -z "$run"; then
     3776        $opt_dry_run || {
    3933777          darwin_orig_dir=`pwd`
    3943778          cd $my_xdir || exit $?
    3953779          darwin_archive=$my_xabs
    3963780          darwin_curdir=`pwd`
    397           darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
    398           darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
    399           if test -n "$darwin_arches"; then 
    400             darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
     3781          darwin_base_archive=`basename "$darwin_archive"`
     3782          darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
     3783          if test -n "$darwin_arches"; then
     3784            darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
    4013785            darwin_arch=
    402             $show "$darwin_base_archive has multiple architectures $darwin_arches"
     3786            func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
    4033787            for darwin_arch in  $darwin_arches ; do
    404               mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
    405               lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
     3788              func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
     3789              $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
    4063790              cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
    4073791              func_extract_an_archive "`pwd`" "${darwin_base_archive}"
    4083792              cd "$darwin_curdir"
    409               $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
     3793              $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
    4103794            done # $darwin_arches
    411       ## Okay now we have a bunch of thin objects, gotta fatten them up :)
    412             darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
     3795            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
     3796            darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
    4133797            darwin_file=
    4143798            darwin_files=
    4153799            for darwin_file in $darwin_filelist; do
    416               darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
    417               lipo -create -output "$darwin_file" $darwin_files
     3800              darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
     3801              $LIPO -create -output "$darwin_file" $darwin_files
    4183802            done # $darwin_filelist
    419             ${rm}r unfat-$$
     3803            $RM -rf unfat-$$
    4203804            cd "$darwin_orig_dir"
    4213805          else
    422             cd "$darwin_orig_dir"
    423             func_extract_an_archive "$my_xdir" "$my_xabs"
     3806            cd $darwin_orig_dir
     3807            func_extract_an_archive "$my_xdir" "$my_xabs"
    4243808          fi # $darwin_arches
    425         fi # $run
     3809        } # !$opt_dry_run
    4263810        ;;
    4273811      *)
    4283812        func_extract_an_archive "$my_xdir" "$my_xabs"
    429         ;;
    430       esac
    431       my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
    432     done
    433     func_extract_archives_result="$my_oldobjs"
    434 }
    435 # End of Shell function definitions
    436 #####################################
    437 
    438 # Darwin sucks
    439 eval std_shrext=\"$shrext_cmds\"
    440 
    441 disable_libs=no
    442 
    443 # Parse our command line options once, thoroughly.
    444 while test "$#" -gt 0
    445 do
    446   arg="$1"
    447   shift
    448 
    449   case $arg in
    450   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
    451   *) optarg= ;;
    452   esac
    453 
    454   # If the previous option needs an argument, assign it.
    455   if test -n "$prev"; then
    456     case $prev in
    457     execute_dlfiles)
    458       execute_dlfiles="$execute_dlfiles $arg"
    459       ;;
    460     tag)
    461       tagname="$arg"
    462       preserve_args="${preserve_args}=$arg"
    463 
    464       # Check whether tagname contains only valid characters
    465       case $tagname in
    466       *[!-_A-Za-z0-9,/]*)
    467         $echo "$progname: invalid tag name: $tagname" 1>&2
    468         exit $EXIT_FAILURE
    4693813        ;;
    4703814      esac
    471 
    472       case $tagname in
    473       CC)
    474         # Don't test for the "default" C tag, as we know, it's there, but
    475         # not specially marked.
    476         ;;
    477       *)
    478         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
    479           taglist="$taglist $tagname"
    480           # Evaluate the configuration.
    481           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
    482         else
    483           $echo "$progname: ignoring unknown tag $tagname" 1>&2
    484         fi
    485         ;;
    486       esac
     3815      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     3816    done
     3817
     3818    func_extract_archives_result="$my_oldobjs"
     3819}
     3820
     3821
     3822# func_emit_wrapper [arg=no]
     3823#
     3824# Emit a libtool wrapper script on stdout.
     3825# Don't directly open a file because we may want to
     3826# incorporate the script contents within a cygwin/mingw
     3827# wrapper executable.  Must ONLY be called from within
     3828# func_mode_link because it depends on a number of variables
     3829# set therein.
     3830#
     3831# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
     3832# variable will take.  If 'yes', then the emitted script
     3833# will assume that the directory in which it is stored is
     3834# the $objdir directory.  This is a cygwin/mingw-specific
     3835# behavior.
     3836func_emit_wrapper ()
     3837{
     3838        func_emit_wrapper_arg1=${1-no}
     3839
     3840        $ECHO "\
     3841#! $SHELL
     3842
     3843# $output - temporary wrapper script for $objdir/$outputname
     3844# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
     3845#
     3846# The $output program cannot be directly executed until all the libtool
     3847# libraries that it depends on are installed.
     3848#
     3849# This wrapper script should never be moved out of the build directory.
     3850# If it is, it will not operate correctly.
     3851
     3852# Sed substitution that helps us do robust quoting.  It backslashifies
     3853# metacharacters that are still active within double-quoted strings.
     3854sed_quote_subst='$sed_quote_subst'
     3855
     3856# Be Bourne compatible
     3857if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
     3858  emulate sh
     3859  NULLCMD=:
     3860  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
     3861  # is contrary to our usage.  Disable this feature.
     3862  alias -g '\${1+\"\$@\"}'='\"\$@\"'
     3863  setopt NO_GLOB_SUBST
     3864else
     3865  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
     3866fi
     3867BIN_SH=xpg4; export BIN_SH # for Tru64
     3868DUALCASE=1; export DUALCASE # for MKS sh
     3869
     3870# The HP-UX ksh and POSIX shell print the target directory to stdout
     3871# if CDPATH is set.
     3872(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
     3873
     3874relink_command=\"$relink_command\"
     3875
     3876# This environment variable determines our operation mode.
     3877if test \"\$libtool_install_magic\" = \"$magic\"; then
     3878  # install mode needs the following variables:
     3879  generated_by_libtool_version='$macro_version'
     3880  notinst_deplibs='$notinst_deplibs'
     3881else
     3882  # When we are sourced in execute mode, \$file and \$ECHO are already set.
     3883  if test \"\$libtool_execute_magic\" != \"$magic\"; then
     3884    file=\"\$0\""
     3885
     3886    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
     3887    $ECHO "\
     3888
     3889# A function that is used when there is no print builtin or printf.
     3890func_fallback_echo ()
     3891{
     3892  eval 'cat <<_LTECHO_EOF
     3893\$1
     3894_LTECHO_EOF'
     3895}
     3896    ECHO=\"$qECHO\"
     3897  fi
     3898
     3899# Very basic option parsing. These options are (a) specific to
     3900# the libtool wrapper, (b) are identical between the wrapper
     3901# /script/ and the wrapper /executable/ which is used only on
     3902# windows platforms, and (c) all begin with the string "--lt-"
     3903# (application programs are unlikely to have options which match
     3904# this pattern).
     3905#
     3906# There are only two supported options: --lt-debug and
     3907# --lt-dump-script. There is, deliberately, no --lt-help.
     3908#
     3909# The first argument to this parsing function should be the
     3910# script's $0 value, followed by "$@".
     3911lt_option_debug=
     3912func_parse_lt_options ()
     3913{
     3914  lt_script_arg0=\$0
     3915  shift
     3916  for lt_opt
     3917  do
     3918    case \"\$lt_opt\" in
     3919    --lt-debug) lt_option_debug=1 ;;
     3920    --lt-dump-script)
     3921        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
     3922        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
     3923        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
     3924        cat \"\$lt_dump_D/\$lt_dump_F\"
     3925        exit 0
    4873926      ;;
    488     *)
    489       eval "$prev=\$arg"
     3927    --lt-*)
     3928        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
     3929        exit 1
    4903930      ;;
    4913931    esac
    492 
    493     prev=
    494     prevopt=
    495     continue
     3932  done
     3933
     3934  # Print the debug banner immediately:
     3935  if test -n \"\$lt_option_debug\"; then
     3936    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
    4963937  fi
    497 
    498   # Have we seen a non-optional argument yet?
    499   case $arg in
    500   --help)
    501     show_help=yes
     3938}
     3939
     3940# Used when --lt-debug. Prints its arguments to stdout
     3941# (redirection is the responsibility of the caller)
     3942func_lt_dump_args ()
     3943{
     3944  lt_dump_args_N=1;
     3945  for lt_arg
     3946  do
     3947    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
     3948    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
     3949  done
     3950}
     3951
     3952# Core function for launching the target application
     3953func_exec_program_core ()
     3954{
     3955"
     3956  case $host in
     3957  # Backslashes separate directories on plain windows
     3958  *-*-mingw | *-*-os2* | *-cegcc*)
     3959    $ECHO "\
     3960      if test -n \"\$lt_option_debug\"; then
     3961        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
     3962        func_lt_dump_args \${1+\"\$@\"} 1>&2
     3963      fi
     3964      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
     3965"
    5023966    ;;
    5033967
    504   --version)
    505     $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
    506     $echo
    507     $echo "Copyright (C) 2005  Free Software Foundation, Inc."
    508     $echo "This is free software; see the source for copying conditions.  There is NO"
    509     $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
    510     exit $?
    511     ;;
    512 
    513   --config)
    514     ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
    515     # Now print the configurations for the tags.
    516     for tagname in $taglist; do
    517       ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
    518     done
    519     exit $?
    520     ;;
    521 
    522   --debug)
    523     $echo "$progname: enabling shell trace mode"
    524     set -x
    525     preserve_args="$preserve_args $arg"
    526     ;;
    527 
    528   --dry-run | -n)
    529     run=:
    530     ;;
    531 
    532   --features)
    533     $echo "host: $host"
    534     if test "$build_libtool_libs" = yes; then
    535       $echo "enable shared libraries"
    536     else
    537       $echo "disable shared libraries"
    538     fi
    539     if test "$build_old_libs" = yes; then
    540       $echo "enable static libraries"
    541     else
    542       $echo "disable static libraries"
    543     fi
    544     exit $?
    545     ;;
    546 
    547   --finish) mode="finish" ;;
    548 
    549   --mode) prevopt="--mode" prev=mode ;;
    550   --mode=*) mode="$optarg" ;;
    551 
    552   --preserve-dup-deps) duplicate_deps="yes" ;;
    553 
    554   --quiet | --silent)
    555     show=:
    556     preserve_args="$preserve_args $arg"
    557     ;;
    558 
    559   --tag)
    560     prevopt="--tag"
    561     prev=tag
    562     preserve_args="$preserve_args --tag"
    563     ;;
    564   --tag=*)
    565     set tag "$optarg" ${1+"$@"}
    566     shift
    567     prev=tag
    568     preserve_args="$preserve_args --tag"
    569     ;;
    570 
    571   -dlopen)
    572     prevopt="-dlopen"
    573     prev=execute_dlfiles
    574     ;;
    575 
    576   -*)
    577     $echo "$modename: unrecognized option \`$arg'" 1>&2
    578     $echo "$help" 1>&2
    579     exit $EXIT_FAILURE
    580     ;;
    581 
    5823968  *)
    583     nonopt="$arg"
    584     break
     3969    $ECHO "\
     3970      if test -n \"\$lt_option_debug\"; then
     3971        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
     3972        func_lt_dump_args \${1+\"\$@\"} 1>&2
     3973      fi
     3974      exec \"\$progdir/\$program\" \${1+\"\$@\"}
     3975"
    5853976    ;;
    5863977  esac
    587 done
    588 
    589 if test -n "$prevopt"; then
    590   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
    591   $echo "$help" 1>&2
    592   exit $EXIT_FAILURE
    593 fi
    594 
    595 case $disable_libs in
    596 no)
    597   ;;
    598 shared)
    599   build_libtool_libs=no
    600   build_old_libs=yes
    601   ;;
    602 static)
    603   build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
    604   ;;
    605 esac
    606 
    607 # If this variable is set in any of the actions, the command in it
    608 # will be execed at the end.  This prevents here-documents from being
    609 # left over by shells.
    610 exec_cmd=
    611 
    612 if test -z "$show_help"; then
    613 
    614   # Infer the operation mode.
    615   if test -z "$mode"; then
    616     $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
    617     $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
    618     case $nonopt in
    619     *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
    620       mode=link
    621       for arg
    622       do
    623         case $arg in
    624         -c)
    625            mode=compile
    626            break
    627            ;;
    628         esac
    629       done
    630       ;;
    631     *db | *dbx | *strace | *truss)
    632       mode=execute
    633       ;;
    634     *install*|cp|mv)
    635       mode=install
    636       ;;
    637     *rm)
    638       mode=uninstall
    639       ;;
    640     *)
    641       # If we have no mode, but dlfiles were specified, then do execute mode.
    642       test -n "$execute_dlfiles" && mode=execute
    643 
    644       # Just use the default operation mode.
    645       if test -z "$mode"; then
    646         if test -n "$nonopt"; then
    647           $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
    648         else
    649           $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
    650         fi
    651       fi
    652       ;;
     3978  $ECHO "\
     3979      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
     3980      exit 1
     3981}
     3982
     3983# A function to encapsulate launching the target application
     3984# Strips options in the --lt-* namespace from \$@ and
     3985# launches target application with the remaining arguments.
     3986func_exec_program ()
     3987{
     3988  case \" \$* \" in
     3989  *\\ --lt-*)
     3990    for lt_wr_arg
     3991    do
     3992      case \$lt_wr_arg in
     3993      --lt-*) ;;
     3994      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
     3995      esac
     3996      shift
     3997    done ;;
     3998  esac
     3999  func_exec_program_core \${1+\"\$@\"}
     4000}
     4001
     4002  # Parse options
     4003  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
     4004
     4005  # Find the directory that this script lives in.
     4006  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
     4007  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
     4008
     4009  # Follow symbolic links until we get to the real thisdir.
     4010  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
     4011  while test -n \"\$file\"; do
     4012    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
     4013
     4014    # If there was a directory component, then change thisdir.
     4015    if test \"x\$destdir\" != \"x\$file\"; then
     4016      case \"\$destdir\" in
     4017      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
     4018      *) thisdir=\"\$thisdir/\$destdir\" ;;
     4019      esac
     4020    fi
     4021
     4022    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
     4023    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
     4024  done
     4025
     4026  # Usually 'no', except on cygwin/mingw when embedded into
     4027  # the cwrapper.
     4028  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
     4029  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
     4030    # special case for '.'
     4031    if test \"\$thisdir\" = \".\"; then
     4032      thisdir=\`pwd\`
     4033    fi
     4034    # remove .libs from thisdir
     4035    case \"\$thisdir\" in
     4036    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
     4037    $objdir )   thisdir=. ;;
    6534038    esac
    6544039  fi
    6554040
    656   # Only execute mode is allowed to have -dlopen flags.
    657   if test -n "$execute_dlfiles" && test "$mode" != execute; then
    658     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
    659     $echo "$help" 1>&2
    660     exit $EXIT_FAILURE
     4041  # Try to get the absolute directory name.
     4042  absdir=\`cd \"\$thisdir\" && pwd\`
     4043  test -n \"\$absdir\" && thisdir=\"\$absdir\"
     4044"
     4045
     4046        if test "$fast_install" = yes; then
     4047          $ECHO "\
     4048  program=lt-'$outputname'$exeext
     4049  progdir=\"\$thisdir/$objdir\"
     4050
     4051  if test ! -f \"\$progdir/\$program\" ||
     4052     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
     4053       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
     4054
     4055    file=\"\$\$-\$program\"
     4056
     4057    if test ! -d \"\$progdir\"; then
     4058      $MKDIR \"\$progdir\"
     4059    else
     4060      $RM \"\$progdir/\$file\"
     4061    fi"
     4062
     4063          $ECHO "\
     4064
     4065    # relink executable if necessary
     4066    if test -n \"\$relink_command\"; then
     4067      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
     4068      else
     4069        $ECHO \"\$relink_command_output\" >&2
     4070        $RM \"\$progdir/\$file\"
     4071        exit 1
     4072      fi
     4073    fi
     4074
     4075    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
     4076    { $RM \"\$progdir/\$program\";
     4077      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
     4078    $RM \"\$progdir/\$file\"
     4079  fi"
     4080        else
     4081          $ECHO "\
     4082  program='$outputname'
     4083  progdir=\"\$thisdir/$objdir\"
     4084"
     4085        fi
     4086
     4087        $ECHO "\
     4088
     4089  if test -f \"\$progdir/\$program\"; then"
     4090
     4091        # fixup the dll searchpath if we need to.
     4092        #
     4093        # Fix the DLL searchpath if we need to.  Do this before prepending
     4094        # to shlibpath, because on Windows, both are PATH and uninstalled
     4095        # libraries must come first.
     4096        if test -n "$dllsearchpath"; then
     4097          $ECHO "\
     4098    # Add the dll search path components to the executable PATH
     4099    PATH=$dllsearchpath:\$PATH
     4100"
     4101        fi
     4102
     4103        # Export our shlibpath_var if we have one.
     4104        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
     4105          $ECHO "\
     4106    # Add our own library path to $shlibpath_var
     4107    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
     4108
     4109    # Some systems cannot cope with colon-terminated $shlibpath_var
     4110    # The second colon is a workaround for a bug in BeOS R4 sed
     4111    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
     4112
     4113    export $shlibpath_var
     4114"
     4115        fi
     4116
     4117        $ECHO "\
     4118    if test \"\$libtool_execute_magic\" != \"$magic\"; then
     4119      # Run the actual program with our arguments.
     4120      func_exec_program \${1+\"\$@\"}
     4121    fi
     4122  else
     4123    # The program doesn't exist.
     4124    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
     4125    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
     4126    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     4127    exit 1
    6614128  fi
    662 
    663   # Change the help message to a mode-specific one.
    664   generic_help="$help"
    665   help="Try \`$modename --help --mode=$mode' for more information."
    666 
    667   # These modes are in order of execution frequency so that they run quickly.
    668   case $mode in
    669   # libtool compile mode
    670   compile)
    671     modename="$modename: compile"
    672     # Get the compilation command and the source file.
    673     base_compile=
    674     srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
    675     suppress_opt=yes
    676     suppress_output=
    677     arg_mode=normal
    678     libobj=
    679     later=
    680 
    681     for arg
    682     do
    683       case $arg_mode in
    684       arg  )
    685         # do not "continue".  Instead, add this to base_compile
    686         lastarg="$arg"
    687         arg_mode=normal
    688         ;;
    689 
    690       target )
    691         libobj="$arg"
    692         arg_mode=normal
    693         continue
    694         ;;
    695 
    696       normal )
    697         # Accept any command-line options.
    698         case $arg in
    699         -o)
    700           if test -n "$libobj" ; then
    701             $echo "$modename: you cannot specify \`-o' more than once" 1>&2
    702             exit $EXIT_FAILURE
    703           fi
    704           arg_mode=target
    705           continue
    706           ;;
    707 
    708         -static | -prefer-pic | -prefer-non-pic)
    709           later="$later $arg"
    710           continue
    711           ;;
    712 
    713         -no-suppress)
    714           suppress_opt=no
    715           continue
    716           ;;
    717 
    718         -Xcompiler)
    719           arg_mode=arg  #  the next one goes into the "base_compile" arg list
    720           continue      #  The current "srcfile" will either be retained or
    721           ;;            #  replaced later.  I would guess that would be a bug.
    722 
    723         -Wc,*)
    724           args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
    725           lastarg=
    726           save_ifs="$IFS"; IFS=','
    727           for arg in $args; do
    728             IFS="$save_ifs"
    729 
    730             # Double-quote args containing other shell metacharacters.
    731             # Many Bourne shells cannot handle close brackets correctly
    732             # in scan sets, so we specify it separately.
    733             case $arg in
    734               *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
    735               arg="\"$arg\""
    736               ;;
     4129fi\
     4130"
     4131}
     4132
     4133
     4134# func_emit_cwrapperexe_src
     4135# emit the source code for a wrapper executable on stdout
     4136# Must ONLY be called from within func_mode_link because
     4137# it depends on a number of variable set therein.
     4138func_emit_cwrapperexe_src ()
     4139{
     4140        cat <<EOF
     4141
     4142/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
     4143   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
     4144
     4145   The $output program cannot be directly executed until all the libtool
     4146   libraries that it depends on are installed.
     4147
     4148   This wrapper executable should never be moved out of the build directory.
     4149   If it is, it will not operate correctly.
     4150*/
     4151EOF
     4152            cat <<"EOF"
     4153#ifdef _MSC_VER
     4154# define _CRT_SECURE_NO_DEPRECATE 1
     4155#endif
     4156#include <stdio.h>
     4157#include <stdlib.h>
     4158#ifdef _MSC_VER
     4159# include <direct.h>
     4160# include <process.h>
     4161# include <io.h>
     4162#else
     4163# include <unistd.h>
     4164# include <stdint.h>
     4165# ifdef __CYGWIN__
     4166#  include <io.h>
     4167# endif
     4168#endif
     4169#include <malloc.h>
     4170#include <stdarg.h>
     4171#include <assert.h>
     4172#include <string.h>
     4173#include <ctype.h>
     4174#include <errno.h>
     4175#include <fcntl.h>
     4176#include <sys/stat.h>
     4177
     4178/* declarations of non-ANSI functions */
     4179#if defined(__MINGW32__)
     4180# ifdef __STRICT_ANSI__
     4181int _putenv (const char *);
     4182# endif
     4183#elif defined(__CYGWIN__)
     4184# ifdef __STRICT_ANSI__
     4185char *realpath (const char *, char *);
     4186int putenv (char *);
     4187int setenv (const char *, const char *, int);
     4188# endif
     4189/* #elif defined (other platforms) ... */
     4190#endif
     4191
     4192/* portability defines, excluding path handling macros */
     4193#if defined(_MSC_VER)
     4194# define setmode _setmode
     4195# define stat    _stat
     4196# define chmod   _chmod
     4197# define getcwd  _getcwd
     4198# define putenv  _putenv
     4199# define S_IXUSR _S_IEXEC
     4200# ifndef _INTPTR_T_DEFINED
     4201#  define _INTPTR_T_DEFINED
     4202#  define intptr_t int
     4203# endif
     4204#elif defined(__MINGW32__)
     4205# define setmode _setmode
     4206# define stat    _stat
     4207# define chmod   _chmod
     4208# define getcwd  _getcwd
     4209# define putenv  _putenv
     4210#elif defined(__CYGWIN__)
     4211# define HAVE_SETENV
     4212# define FOPEN_WB "wb"
     4213/* #elif defined (other platforms) ... */
     4214#endif
     4215
     4216#if defined(PATH_MAX)
     4217# define LT_PATHMAX PATH_MAX
     4218#elif defined(MAXPATHLEN)
     4219# define LT_PATHMAX MAXPATHLEN
     4220#else
     4221# define LT_PATHMAX 1024
     4222#endif
     4223
     4224#ifndef S_IXOTH
     4225# define S_IXOTH 0
     4226#endif
     4227#ifndef S_IXGRP
     4228# define S_IXGRP 0
     4229#endif
     4230
     4231/* path handling portability macros */
     4232#ifndef DIR_SEPARATOR
     4233# define DIR_SEPARATOR '/'
     4234# define PATH_SEPARATOR ':'
     4235#endif
     4236
     4237#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
     4238  defined (__OS2__)
     4239# define HAVE_DOS_BASED_FILE_SYSTEM
     4240# define FOPEN_WB "wb"
     4241# ifndef DIR_SEPARATOR_2
     4242#  define DIR_SEPARATOR_2 '\\'
     4243# endif
     4244# ifndef PATH_SEPARATOR_2
     4245#  define PATH_SEPARATOR_2 ';'
     4246# endif
     4247#endif
     4248
     4249#ifndef DIR_SEPARATOR_2
     4250# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
     4251#else /* DIR_SEPARATOR_2 */
     4252# define IS_DIR_SEPARATOR(ch) \
     4253        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
     4254#endif /* DIR_SEPARATOR_2 */
     4255
     4256#ifndef PATH_SEPARATOR_2
     4257# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
     4258#else /* PATH_SEPARATOR_2 */
     4259# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
     4260#endif /* PATH_SEPARATOR_2 */
     4261
     4262#ifndef FOPEN_WB
     4263# define FOPEN_WB "w"
     4264#endif
     4265#ifndef _O_BINARY
     4266# define _O_BINARY 0
     4267#endif
     4268
     4269#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
     4270#define XFREE(stale) do { \
     4271  if (stale) { free ((void *) stale); stale = 0; } \
     4272} while (0)
     4273
     4274#if defined(LT_DEBUGWRAPPER)
     4275static int lt_debug = 1;
     4276#else
     4277static int lt_debug = 0;
     4278#endif
     4279
     4280const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
     4281
     4282void *xmalloc (size_t num);
     4283char *xstrdup (const char *string);
     4284const char *base_name (const char *name);
     4285char *find_executable (const char *wrapper);
     4286char *chase_symlinks (const char *pathspec);
     4287int make_executable (const char *path);
     4288int check_executable (const char *path);
     4289char *strendzap (char *str, const char *pat);
     4290void lt_debugprintf (const char *file, int line, const char *fmt, ...);
     4291void lt_fatal (const char *file, int line, const char *message, ...);
     4292static const char *nonnull (const char *s);
     4293static const char *nonempty (const char *s);
     4294void lt_setenv (const char *name, const char *value);
     4295char *lt_extend_str (const char *orig_value, const char *add, int to_end);
     4296void lt_update_exe_path (const char *name, const char *value);
     4297void lt_update_lib_path (const char *name, const char *value);
     4298char **prepare_spawn (char **argv);
     4299void lt_dump_script (FILE *f);
     4300EOF
     4301
     4302            cat <<EOF
     4303volatile const char * MAGIC_EXE = "$magic_exe";
     4304const char * LIB_PATH_VARNAME = "$shlibpath_var";
     4305EOF
     4306
     4307            if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
     4308              func_to_host_path "$temp_rpath"
     4309              cat <<EOF
     4310const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
     4311EOF
     4312            else
     4313              cat <<"EOF"
     4314const char * LIB_PATH_VALUE   = "";
     4315EOF
     4316            fi
     4317
     4318            if test -n "$dllsearchpath"; then
     4319              func_to_host_path "$dllsearchpath:"
     4320              cat <<EOF
     4321const char * EXE_PATH_VARNAME = "PATH";
     4322const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
     4323EOF
     4324            else
     4325              cat <<"EOF"
     4326const char * EXE_PATH_VARNAME = "";
     4327const char * EXE_PATH_VALUE   = "";
     4328EOF
     4329            fi
     4330
     4331            if test "$fast_install" = yes; then
     4332              cat <<EOF
     4333const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
     4334EOF
     4335            else
     4336              cat <<EOF
     4337const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
     4338EOF
     4339            fi
     4340
     4341
     4342            cat <<"EOF"
     4343
     4344#define LTWRAPPER_OPTION_PREFIX         "--lt-"
     4345
     4346static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
     4347static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
     4348static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
     4349
     4350int
     4351main (int argc, char *argv[])
     4352{
     4353  char **newargz;
     4354  int  newargc;
     4355  char *tmp_pathspec;
     4356  char *actual_cwrapper_path;
     4357  char *actual_cwrapper_name;
     4358  char *target_name;
     4359  char *lt_argv_zero;
     4360  intptr_t rval = 127;
     4361
     4362  int i;
     4363
     4364  program_name = (char *) xstrdup (base_name (argv[0]));
     4365  newargz = XMALLOC (char *, argc + 1);
     4366
     4367  /* very simple arg parsing; don't want to rely on getopt
     4368   * also, copy all non cwrapper options to newargz, except
     4369   * argz[0], which is handled differently
     4370   */
     4371  newargc=0;
     4372  for (i = 1; i < argc; i++)
     4373    {
     4374      if (strcmp (argv[i], dumpscript_opt) == 0)
     4375        {
     4376EOF
     4377            case "$host" in
     4378              *mingw* | *cygwin* )
     4379                # make stdout use "unix" line endings
     4380                echo "          setmode(1,_O_BINARY);"
     4381                ;;
     4382              esac
     4383
     4384            cat <<"EOF"
     4385          lt_dump_script (stdout);
     4386          return 0;
     4387        }
     4388      if (strcmp (argv[i], debug_opt) == 0)
     4389        {
     4390          lt_debug = 1;
     4391          continue;
     4392        }
     4393      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
     4394        {
     4395          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
     4396             namespace, but it is not one of the ones we know about and
     4397             have already dealt with, above (inluding dump-script), then
     4398             report an error. Otherwise, targets might begin to believe
     4399             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
     4400             namespace. The first time any user complains about this, we'll
     4401             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
     4402             or a configure.ac-settable value.
     4403           */
     4404          lt_fatal (__FILE__, __LINE__,
     4405                    "unrecognized %s option: '%s'",
     4406                    ltwrapper_option_prefix, argv[i]);
     4407        }
     4408      /* otherwise ... */
     4409      newargz[++newargc] = xstrdup (argv[i]);
     4410    }
     4411  newargz[++newargc] = NULL;
     4412
     4413EOF
     4414            cat <<EOF
     4415  /* The GNU banner must be the first non-error debug message */
     4416  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
     4417EOF
     4418            cat <<"EOF"
     4419  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
     4420  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
     4421
     4422  tmp_pathspec = find_executable (argv[0]);
     4423  if (tmp_pathspec == NULL)
     4424    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
     4425  lt_debugprintf (__FILE__, __LINE__,
     4426                  "(main) found exe (before symlink chase) at: %s\n",
     4427                  tmp_pathspec);
     4428
     4429  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
     4430  lt_debugprintf (__FILE__, __LINE__,
     4431                  "(main) found exe (after symlink chase) at: %s\n",
     4432                  actual_cwrapper_path);
     4433  XFREE (tmp_pathspec);
     4434
     4435  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
     4436  strendzap (actual_cwrapper_path, actual_cwrapper_name);
     4437
     4438  /* wrapper name transforms */
     4439  strendzap (actual_cwrapper_name, ".exe");
     4440  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
     4441  XFREE (actual_cwrapper_name);
     4442  actual_cwrapper_name = tmp_pathspec;
     4443  tmp_pathspec = 0;
     4444
     4445  /* target_name transforms -- use actual target program name; might have lt- prefix */
     4446  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
     4447  strendzap (target_name, ".exe");
     4448  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
     4449  XFREE (target_name);
     4450  target_name = tmp_pathspec;
     4451  tmp_pathspec = 0;
     4452
     4453  lt_debugprintf (__FILE__, __LINE__,
     4454                  "(main) libtool target name: %s\n",
     4455                  target_name);
     4456EOF
     4457
     4458            cat <<EOF
     4459  newargz[0] =
     4460    XMALLOC (char, (strlen (actual_cwrapper_path) +
     4461                    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
     4462  strcpy (newargz[0], actual_cwrapper_path);
     4463  strcat (newargz[0], "$objdir");
     4464  strcat (newargz[0], "/");
     4465EOF
     4466
     4467            cat <<"EOF"
     4468  /* stop here, and copy so we don't have to do this twice */
     4469  tmp_pathspec = xstrdup (newargz[0]);
     4470
     4471  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
     4472  strcat (newargz[0], actual_cwrapper_name);
     4473
     4474  /* DO want the lt- prefix here if it exists, so use target_name */
     4475  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
     4476  XFREE (tmp_pathspec);
     4477  tmp_pathspec = NULL;
     4478EOF
     4479
     4480            case $host_os in
     4481              mingw*)
     4482            cat <<"EOF"
     4483  {
     4484    char* p;
     4485    while ((p = strchr (newargz[0], '\\')) != NULL)
     4486      {
     4487        *p = '/';
     4488      }
     4489    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
     4490      {
     4491        *p = '/';
     4492      }
     4493  }
     4494EOF
     4495            ;;
    7374496            esac
    738             lastarg="$lastarg $arg"
    739           done
    740           IFS="$save_ifs"
    741           lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
    742 
    743           # Add the arguments to base_compile.
    744           base_compile="$base_compile $lastarg"
    745           continue
    746           ;;
    747 
    748         * )
    749           # Accept the current argument as the source file.
    750           # The previous "srcfile" becomes the current argument.
    751           #
    752           lastarg="$srcfile"
    753           srcfile="$arg"
    754           ;;
    755         esac  #  case $arg
    756         ;;
    757       esac    #  case $arg_mode
    758 
    759       # Aesthetically quote the previous argument.
    760       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
    761 
    762       case $lastarg in
    763       # Double-quote args containing other shell metacharacters.
    764       # Many Bourne shells cannot handle close brackets correctly
    765       # in scan sets, and some SunOS ksh mistreat backslash-escaping
    766       # in scan sets (worked around with variable expansion),
    767       # and furthermore cannot handle '|' '&' '(' ')' in scan sets
    768       # at all, so we specify them separately.
    769       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
    770         lastarg="\"$lastarg\""
    771         ;;
    772       esac
    773 
    774       base_compile="$base_compile $lastarg"
    775     done # for arg
    776 
    777     case $arg_mode in
    778     arg)
    779       $echo "$modename: you must specify an argument for -Xcompile"
    780       exit $EXIT_FAILURE
    781       ;;
    782     target)
    783       $echo "$modename: you must specify a target with \`-o'" 1>&2
    784       exit $EXIT_FAILURE
    785       ;;
    786     *)
    787       # Get the name of the library object.
    788       [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
    789       ;;
     4497
     4498            cat <<"EOF"
     4499  XFREE (target_name);
     4500  XFREE (actual_cwrapper_path);
     4501  XFREE (actual_cwrapper_name);
     4502
     4503  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
     4504  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
     4505  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
     4506     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
     4507     because on Windows, both *_VARNAMEs are PATH but uninstalled
     4508     libraries must come first. */
     4509  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
     4510  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
     4511
     4512  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
     4513                  nonnull (lt_argv_zero));
     4514  for (i = 0; i < newargc; i++)
     4515    {
     4516      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
     4517                      i, nonnull (newargz[i]));
     4518    }
     4519
     4520EOF
     4521
     4522            case $host_os in
     4523              mingw*)
     4524                cat <<"EOF"
     4525  /* execv doesn't actually work on mingw as expected on unix */
     4526  newargz = prepare_spawn (newargz);
     4527  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
     4528  if (rval == -1)
     4529    {
     4530      /* failed to start process */
     4531      lt_debugprintf (__FILE__, __LINE__,
     4532                      "(main) failed to launch target \"%s\": %s\n",
     4533                      lt_argv_zero, nonnull (strerror (errno)));
     4534      return 127;
     4535    }
     4536  return rval;
     4537EOF
     4538                ;;
     4539              *)
     4540                cat <<"EOF"
     4541  execv (lt_argv_zero, newargz);
     4542  return rval; /* =127, but avoids unused variable warning */
     4543EOF
     4544                ;;
     4545            esac
     4546
     4547            cat <<"EOF"
     4548}
     4549
     4550void *
     4551xmalloc (size_t num)
     4552{
     4553  void *p = (void *) malloc (num);
     4554  if (!p)
     4555    lt_fatal (__FILE__, __LINE__, "memory exhausted");
     4556
     4557  return p;
     4558}
     4559
     4560char *
     4561xstrdup (const char *string)
     4562{
     4563  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
     4564                          string) : NULL;
     4565}
     4566
     4567const char *
     4568base_name (const char *name)
     4569{
     4570  const char *base;
     4571
     4572#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
     4573  /* Skip over the disk name in MSDOS pathnames. */
     4574  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
     4575    name += 2;
     4576#endif
     4577
     4578  for (base = name; *name; name++)
     4579    if (IS_DIR_SEPARATOR (*name))
     4580      base = name + 1;
     4581  return base;
     4582}
     4583
     4584int
     4585check_executable (const char *path)
     4586{
     4587  struct stat st;
     4588
     4589  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
     4590                  nonempty (path));
     4591  if ((!path) || (!*path))
     4592    return 0;
     4593
     4594  if ((stat (path, &st) >= 0)
     4595      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
     4596    return 1;
     4597  else
     4598    return 0;
     4599}
     4600
     4601int
     4602make_executable (const char *path)
     4603{
     4604  int rval = 0;
     4605  struct stat st;
     4606
     4607  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
     4608                  nonempty (path));
     4609  if ((!path) || (!*path))
     4610    return 0;
     4611
     4612  if (stat (path, &st) >= 0)
     4613    {
     4614      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
     4615    }
     4616  return rval;
     4617}
     4618
     4619/* Searches for the full path of the wrapper.  Returns
     4620   newly allocated full path name if found, NULL otherwise
     4621   Does not chase symlinks, even on platforms that support them.
     4622*/
     4623char *
     4624find_executable (const char *wrapper)
     4625{
     4626  int has_slash = 0;
     4627  const char *p;
     4628  const char *p_next;
     4629  /* static buffer for getcwd */
     4630  char tmp[LT_PATHMAX + 1];
     4631  int tmp_len;
     4632  char *concat_name;
     4633
     4634  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
     4635                  nonempty (wrapper));
     4636
     4637  if ((wrapper == NULL) || (*wrapper == '\0'))
     4638    return NULL;
     4639
     4640  /* Absolute path? */
     4641#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
     4642  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
     4643    {
     4644      concat_name = xstrdup (wrapper);
     4645      if (check_executable (concat_name))
     4646        return concat_name;
     4647      XFREE (concat_name);
     4648    }
     4649  else
     4650    {
     4651#endif
     4652      if (IS_DIR_SEPARATOR (wrapper[0]))
     4653        {
     4654          concat_name = xstrdup (wrapper);
     4655          if (check_executable (concat_name))
     4656            return concat_name;
     4657          XFREE (concat_name);
     4658        }
     4659#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
     4660    }
     4661#endif
     4662
     4663  for (p = wrapper; *p; p++)
     4664    if (*p == '/')
     4665      {
     4666        has_slash = 1;
     4667        break;
     4668      }
     4669  if (!has_slash)
     4670    {
     4671      /* no slashes; search PATH */
     4672      const char *path = getenv ("PATH");
     4673      if (path != NULL)
     4674        {
     4675          for (p = path; *p; p = p_next)
     4676            {
     4677              const char *q;
     4678              size_t p_len;
     4679              for (q = p; *q; q++)
     4680                if (IS_PATH_SEPARATOR (*q))
     4681                  break;
     4682              p_len = q - p;
     4683              p_next = (*q == '\0' ? q : q + 1);
     4684              if (p_len == 0)
     4685                {
     4686                  /* empty path: current directory */
     4687                  if (getcwd (tmp, LT_PATHMAX) == NULL)
     4688                    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
     4689                              nonnull (strerror (errno)));
     4690                  tmp_len = strlen (tmp);
     4691                  concat_name =
     4692                    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
     4693                  memcpy (concat_name, tmp, tmp_len);
     4694                  concat_name[tmp_len] = '/';
     4695                  strcpy (concat_name + tmp_len + 1, wrapper);
     4696                }
     4697              else
     4698                {
     4699                  concat_name =
     4700                    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
     4701                  memcpy (concat_name, p, p_len);
     4702                  concat_name[p_len] = '/';
     4703                  strcpy (concat_name + p_len + 1, wrapper);
     4704                }
     4705              if (check_executable (concat_name))
     4706                return concat_name;
     4707              XFREE (concat_name);
     4708            }
     4709        }
     4710      /* not found in PATH; assume curdir */
     4711    }
     4712  /* Relative path | not found in path: prepend cwd */
     4713  if (getcwd (tmp, LT_PATHMAX) == NULL)
     4714    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
     4715              nonnull (strerror (errno)));
     4716  tmp_len = strlen (tmp);
     4717  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
     4718  memcpy (concat_name, tmp, tmp_len);
     4719  concat_name[tmp_len] = '/';
     4720  strcpy (concat_name + tmp_len + 1, wrapper);
     4721
     4722  if (check_executable (concat_name))
     4723    return concat_name;
     4724  XFREE (concat_name);
     4725  return NULL;
     4726}
     4727
     4728char *
     4729chase_symlinks (const char *pathspec)
     4730{
     4731#ifndef S_ISLNK
     4732  return xstrdup (pathspec);
     4733#else
     4734  char buf[LT_PATHMAX];
     4735  struct stat s;
     4736  char *tmp_pathspec = xstrdup (pathspec);
     4737  char *p;
     4738  int has_symlinks = 0;
     4739  while (strlen (tmp_pathspec) && !has_symlinks)
     4740    {
     4741      lt_debugprintf (__FILE__, __LINE__,
     4742                      "checking path component for symlinks: %s\n",
     4743                      tmp_pathspec);
     4744      if (lstat (tmp_pathspec, &s) == 0)
     4745        {
     4746          if (S_ISLNK (s.st_mode) != 0)
     4747            {
     4748              has_symlinks = 1;
     4749              break;
     4750            }
     4751
     4752          /* search backwards for last DIR_SEPARATOR */
     4753          p = tmp_pathspec + strlen (tmp_pathspec) - 1;
     4754          while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
     4755            p--;
     4756          if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
     4757            {
     4758              /* no more DIR_SEPARATORS left */
     4759              break;
     4760            }
     4761          *p = '\0';
     4762        }
     4763      else
     4764        {
     4765          lt_fatal (__FILE__, __LINE__,
     4766                    "error accessing file \"%s\": %s",
     4767                    tmp_pathspec, nonnull (strerror (errno)));
     4768        }
     4769    }
     4770  XFREE (tmp_pathspec);
     4771
     4772  if (!has_symlinks)
     4773    {
     4774      return xstrdup (pathspec);
     4775    }
     4776
     4777  tmp_pathspec = realpath (pathspec, buf);
     4778  if (tmp_pathspec == 0)
     4779    {
     4780      lt_fatal (__FILE__, __LINE__,
     4781                "could not follow symlinks for %s", pathspec);
     4782    }
     4783  return xstrdup (tmp_pathspec);
     4784#endif
     4785}
     4786
     4787char *
     4788strendzap (char *str, const char *pat)
     4789{
     4790  size_t len, patlen;
     4791
     4792  assert (str != NULL);
     4793  assert (pat != NULL);
     4794
     4795  len = strlen (str);
     4796  patlen = strlen (pat);
     4797
     4798  if (patlen <= len)
     4799    {
     4800      str += len - patlen;
     4801      if (strcmp (str, pat) == 0)
     4802        *str = '\0';
     4803    }
     4804  return str;
     4805}
     4806
     4807void
     4808lt_debugprintf (const char *file, int line, const char *fmt, ...)
     4809{
     4810  va_list args;
     4811  if (lt_debug)
     4812    {
     4813      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
     4814      va_start (args, fmt);
     4815      (void) vfprintf (stderr, fmt, args);
     4816      va_end (args);
     4817    }
     4818}
     4819
     4820static void
     4821lt_error_core (int exit_status, const char *file,
     4822               int line, const char *mode,
     4823               const char *message, va_list ap)
     4824{
     4825  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
     4826  vfprintf (stderr, message, ap);
     4827  fprintf (stderr, ".\n");
     4828
     4829  if (exit_status >= 0)
     4830    exit (exit_status);
     4831}
     4832
     4833void
     4834lt_fatal (const char *file, int line, const char *message, ...)
     4835{
     4836  va_list ap;
     4837  va_start (ap, message);
     4838  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
     4839  va_end (ap);
     4840}
     4841
     4842static const char *
     4843nonnull (const char *s)
     4844{
     4845  return s ? s : "(null)";
     4846}
     4847
     4848static const char *
     4849nonempty (const char *s)
     4850{
     4851  return (s && !*s) ? "(empty)" : nonnull (s);
     4852}
     4853
     4854void
     4855lt_setenv (const char *name, const char *value)
     4856{
     4857  lt_debugprintf (__FILE__, __LINE__,
     4858                  "(lt_setenv) setting '%s' to '%s'\n",
     4859                  nonnull (name), nonnull (value));
     4860  {
     4861#ifdef HAVE_SETENV
     4862    /* always make a copy, for consistency with !HAVE_SETENV */
     4863    char *str = xstrdup (value);
     4864    setenv (name, str, 1);
     4865#else
     4866    int len = strlen (name) + 1 + strlen (value) + 1;
     4867    char *str = XMALLOC (char, len);
     4868    sprintf (str, "%s=%s", name, value);
     4869    if (putenv (str) != EXIT_SUCCESS)
     4870      {
     4871        XFREE (str);
     4872      }
     4873#endif
     4874  }
     4875}
     4876
     4877char *
     4878lt_extend_str (const char *orig_value, const char *add, int to_end)
     4879{
     4880  char *new_value;
     4881  if (orig_value && *orig_value)
     4882    {
     4883      int orig_value_len = strlen (orig_value);
     4884      int add_len = strlen (add);
     4885      new_value = XMALLOC (char, add_len + orig_value_len + 1);
     4886      if (to_end)
     4887        {
     4888          strcpy (new_value, orig_value);
     4889          strcpy (new_value + orig_value_len, add);
     4890        }
     4891      else
     4892        {
     4893          strcpy (new_value, add);
     4894          strcpy (new_value + add_len, orig_value);
     4895        }
     4896    }
     4897  else
     4898    {
     4899      new_value = xstrdup (add);
     4900    }
     4901  return new_value;
     4902}
     4903
     4904void
     4905lt_update_exe_path (const char *name, const char *value)
     4906{
     4907  lt_debugprintf (__FILE__, __LINE__,
     4908                  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
     4909                  nonnull (name), nonnull (value));
     4910
     4911  if (name && *name && value && *value)
     4912    {
     4913      char *new_value = lt_extend_str (getenv (name), value, 0);
     4914      /* some systems can't cope with a ':'-terminated path #' */
     4915      int len = strlen (new_value);
     4916      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
     4917        {
     4918          new_value[len-1] = '\0';
     4919        }
     4920      lt_setenv (name, new_value);
     4921      XFREE (new_value);
     4922    }
     4923}
     4924
     4925void
     4926lt_update_lib_path (const char *name, const char *value)
     4927{
     4928  lt_debugprintf (__FILE__, __LINE__,
     4929                  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
     4930                  nonnull (name), nonnull (value));
     4931
     4932  if (name && *name && value && *value)
     4933    {
     4934      char *new_value = lt_extend_str (getenv (name), value, 0);
     4935      lt_setenv (name, new_value);
     4936      XFREE (new_value);
     4937    }
     4938}
     4939
     4940EOF
     4941            case $host_os in
     4942              mingw*)
     4943                cat <<"EOF"
     4944
     4945/* Prepares an argument vector before calling spawn().
     4946   Note that spawn() does not by itself call the command interpreter
     4947     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
     4948      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
     4949         GetVersionEx(&v);
     4950         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
     4951      }) ? "cmd.exe" : "command.com").
     4952   Instead it simply concatenates the arguments, separated by ' ', and calls
     4953   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
     4954   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
     4955   special way:
     4956   - Space and tab are interpreted as delimiters. They are not treated as
     4957     delimiters if they are surrounded by double quotes: "...".
     4958   - Unescaped double quotes are removed from the input. Their only effect is
     4959     that within double quotes, space and tab are treated like normal
     4960     characters.
     4961   - Backslashes not followed by double quotes are not special.
     4962   - But 2*n+1 backslashes followed by a double quote become
     4963     n backslashes followed by a double quote (n >= 0):
     4964       \" -> "
     4965       \\\" -> \"
     4966       \\\\\" -> \\"
     4967 */
     4968#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"
     4969#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"
     4970char **
     4971prepare_spawn (char **argv)
     4972{
     4973  size_t argc;
     4974  char **new_argv;
     4975  size_t i;
     4976
     4977  /* Count number of arguments.  */
     4978  for (argc = 0; argv[argc] != NULL; argc++)
     4979    ;
     4980
     4981  /* Allocate new argument vector.  */
     4982  new_argv = XMALLOC (char *, argc + 1);
     4983
     4984  /* Put quoted arguments into the new argument vector.  */
     4985  for (i = 0; i < argc; i++)
     4986    {
     4987      const char *string = argv[i];
     4988
     4989      if (string[0] == '\0')
     4990        new_argv[i] = xstrdup ("\"\"");
     4991      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
     4992        {
     4993          int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
     4994          size_t length;
     4995          unsigned int backslashes;
     4996          const char *s;
     4997          char *quoted_string;
     4998          char *p;
     4999
     5000          length = 0;
     5001          backslashes = 0;
     5002          if (quote_around)
     5003            length++;
     5004          for (s = string; *s != '\0'; s++)
     5005            {
     5006              char c = *s;
     5007              if (c == '"')
     5008                length += backslashes + 1;
     5009              length++;
     5010              if (c == '\\')
     5011                backslashes++;
     5012              else
     5013                backslashes = 0;
     5014            }
     5015          if (quote_around)
     5016            length += backslashes + 1;
     5017
     5018          quoted_string = XMALLOC (char, length + 1);
     5019
     5020          p = quoted_string;
     5021          backslashes = 0;
     5022          if (quote_around)
     5023            *p++ = '"';
     5024          for (s = string; *s != '\0'; s++)
     5025            {
     5026              char c = *s;
     5027              if (c == '"')
     5028                {
     5029                  unsigned int j;
     5030                  for (j = backslashes + 1; j > 0; j--)
     5031                    *p++ = '\\';
     5032                }
     5033              *p++ = c;
     5034              if (c == '\\')
     5035                backslashes++;
     5036              else
     5037                backslashes = 0;
     5038            }
     5039          if (quote_around)
     5040            {
     5041              unsigned int j;
     5042              for (j = backslashes; j > 0; j--)
     5043                *p++ = '\\';
     5044              *p++ = '"';
     5045            }
     5046          *p = '\0';
     5047
     5048          new_argv[i] = quoted_string;
     5049        }
     5050      else
     5051        new_argv[i] = (char *) string;
     5052    }
     5053  new_argv[argc] = NULL;
     5054
     5055  return new_argv;
     5056}
     5057EOF
     5058                ;;
     5059            esac
     5060
     5061            cat <<"EOF"
     5062void lt_dump_script (FILE* f)
     5063{
     5064EOF
     5065            func_emit_wrapper yes |
     5066              $SED -n -e '
     5067s/^\(.\{79\}\)\(..*\)/\1\
     5068\2/
     5069h
     5070s/\([\\"]\)/\\\1/g
     5071s/$/\\n/
     5072s/\([^\n]*\).*/  fputs ("\1", f);/p
     5073g
     5074D'
     5075            cat <<"EOF"
     5076}
     5077EOF
     5078}
     5079# end: func_emit_cwrapperexe_src
     5080
     5081# func_win32_import_lib_p ARG
     5082# True if ARG is an import lib, as indicated by $file_magic_cmd
     5083func_win32_import_lib_p ()
     5084{
     5085    $opt_debug
     5086    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
     5087    *import*) : ;;
     5088    *) false ;;
    7905089    esac
    791 
    792     # Recognize several different file suffixes.
    793     # If the user specifies -o file.o, it is replaced with file.lo
    794     xform='[cCFSifmso]'
    795     case $libobj in
    796     *.ada) xform=ada ;;
    797     *.adb) xform=adb ;;
    798     *.ads) xform=ads ;;
    799     *.asm) xform=asm ;;
    800     *.c++) xform=c++ ;;
    801     *.cc) xform=cc ;;
    802     *.ii) xform=ii ;;
    803     *.class) xform=class ;;
    804     *.cpp) xform=cpp ;;
    805     *.cxx) xform=cxx ;;
    806     *.f90) xform=f90 ;;
    807     *.for) xform=for ;;
    808     *.java) xform=java ;;
    809     esac
    810 
    811     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
    812 
    813     case $libobj in
    814     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
    815     *)
    816       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
    817       exit $EXIT_FAILURE
    818       ;;
    819     esac
    820 
    821     func_infer_tag $base_compile
    822 
    823     for arg in $later; do
    824       case $arg in
    825       -static)
    826         build_old_libs=yes
    827         continue
    828         ;;
    829 
    830       -prefer-pic)
    831         pic_mode=yes
    832         continue
    833         ;;
    834 
    835       -prefer-non-pic)
    836         pic_mode=no
    837         continue
    838         ;;
    839       esac
    840     done
    841 
    842     qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
    843     case $qlibobj in
    844       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
    845         qlibobj="\"$qlibobj\"" ;;
    846     esac
    847     test "X$libobj" != "X$qlibobj" \
    848         && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"'  &()|`$[]' \
    849         && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
    850     objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
    851     xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
    852     if test "X$xdir" = "X$obj"; then
    853       xdir=
    854     else
    855       xdir=$xdir/
    856     fi
    857     lobj=${xdir}$objdir/$objname
    858 
    859     if test -z "$base_compile"; then
    860       $echo "$modename: you must specify a compilation command" 1>&2
    861       $echo "$help" 1>&2
    862       exit $EXIT_FAILURE
    863     fi
    864 
    865     # Delete any leftover library objects.
    866     if test "$build_old_libs" = yes; then
    867       removelist="$obj $lobj $libobj ${libobj}T"
    868     else
    869       removelist="$lobj $libobj ${libobj}T"
    870     fi
    871 
    872     $run $rm $removelist
    873     trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
    874 
    875     # On Cygwin there's no "real" PIC flag so we must build both object types
    876     case $host_os in
    877     cygwin* | mingw* | pw32* | os2*)
    878       pic_mode=default
    879       ;;
    880     esac
    881     if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
    882       # non-PIC code in shared libraries is not supported
    883       pic_mode=default
    884     fi
    885 
    886     # Calculate the filename of the output object if compiler does
    887     # not support -o with -c
    888     if test "$compiler_c_o" = no; then
    889       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
    890       lockfile="$output_obj.lock"
    891       removelist="$removelist $output_obj $lockfile"
    892       trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
    893     else
    894       output_obj=
    895       need_locks=no
    896       lockfile=
    897     fi
    898 
    899     # Lock this critical section if it is needed
    900     # We use this script file to make the link, it avoids creating a new file
    901     if test "$need_locks" = yes; then
    902       until $run ln "$srcfile" "$lockfile" 2>/dev/null; do
    903         $show "Waiting for $lockfile to be removed"
    904         sleep 2
    905       done
    906     elif test "$need_locks" = warn; then
    907       if test -f "$lockfile"; then
    908         $echo "\
    909 *** ERROR, $lockfile exists and contains:
    910 `cat $lockfile 2>/dev/null`
    911 
    912 This indicates that another process is trying to use the same
    913 temporary object file, and libtool could not work around it because
    914 your compiler does not support \`-c' and \`-o' together.  If you
    915 repeat this compilation, it may succeed, by chance, but you had better
    916 avoid parallel builds (make -j) in this platform, or get a better
    917 compiler."
    918 
    919         $run $rm $removelist
    920         exit $EXIT_FAILURE
    921       fi
    922       $echo "$srcfile" > "$lockfile"
    923     fi
    924 
    925     if test -n "$fix_srcfile_path"; then
    926       eval srcfile=\"$fix_srcfile_path\"
    927     fi
    928     qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
    929     case $qsrcfile in
    930       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
    931       qsrcfile="\"$qsrcfile\"" ;;
    932     esac
    933 
    934     $run $rm "$libobj" "${libobj}T"
    935 
    936     # Create a libtool object file (analogous to a ".la" file),
    937     # but don't create it if we're doing a dry run.
    938     test -z "$run" && cat > ${libobj}T <<EOF
    939 # $libobj - a libtool object file
    940 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
    941 #
    942 # Please DO NOT delete this file!
    943 # It is necessary for linking the library.
    944 
    945 # Name of the PIC object.
    946 EOF
    947 
    948     # Only build a PIC object if we are building libtool libraries.
    949     if test "$build_libtool_libs" = yes; then
    950       # Without this assignment, base_compile gets emptied.
    951       fbsd_hideous_sh_bug=$base_compile
    952 
    953       if test "$pic_mode" != no; then
    954         command="$base_compile $qsrcfile $pic_flag"
    955       else
    956         # Don't build PIC code
    957         command="$base_compile $qsrcfile"
    958       fi
    959 
    960       if test ! -d "${xdir}$objdir"; then
    961         $show "$mkdir ${xdir}$objdir"
    962         $run $mkdir ${xdir}$objdir
    963         exit_status=$?
    964         if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
    965           exit $exit_status
    966         fi
    967       fi
    968 
    969       if test -z "$output_obj"; then
    970         # Place PIC objects in $objdir
    971         command="$command -o $lobj"
    972       fi
    973 
    974       $run $rm "$lobj" "$output_obj"
    975 
    976       $show "$command"
    977       if $run eval "$command"; then :
    978       else
    979         test -n "$output_obj" && $run $rm $removelist
    980         exit $EXIT_FAILURE
    981       fi
    982 
    983       if test "$need_locks" = warn &&
    984          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
    985         $echo "\
    986 *** ERROR, $lockfile contains:
    987 `cat $lockfile 2>/dev/null`
    988 
    989 but it should contain:
    990 $srcfile
    991 
    992 This indicates that another process is trying to use the same
    993 temporary object file, and libtool could not work around it because
    994 your compiler does not support \`-c' and \`-o' together.  If you
    995 repeat this compilation, it may succeed, by chance, but you had better
    996 avoid parallel builds (make -j) in this platform, or get a better
    997 compiler."
    998 
    999         $run $rm $removelist
    1000         exit $EXIT_FAILURE
    1001       fi
    1002 
    1003       # Just move the object if needed, then go on to compile the next one
    1004       if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
    1005         $show "$mv $output_obj $lobj"
    1006         if $run $mv $output_obj $lobj; then :
    1007         else
    1008           error=$?
    1009           $run $rm $removelist
    1010           exit $error
    1011         fi
    1012       fi
    1013 
    1014       # Append the name of the PIC object to the libtool object file.
    1015       test -z "$run" && cat >> ${libobj}T <<EOF
    1016 pic_object='$objdir/$objname'
    1017 
    1018 EOF
    1019 
    1020       # Allow error messages only from the first compilation.
    1021       if test "$suppress_opt" = yes; then
    1022         suppress_output=' >/dev/null 2>&1'
    1023       fi
    1024     else
    1025       # No PIC object so indicate it doesn't exist in the libtool
    1026       # object file.
    1027       test -z "$run" && cat >> ${libobj}T <<EOF
    1028 pic_object=none
    1029 
    1030 EOF
    1031     fi
    1032 
    1033     # Only build a position-dependent object if we build old libraries.
    1034     if test "$build_old_libs" = yes; then
    1035       if test "$pic_mode" != yes; then
    1036         # Don't build PIC code
    1037         command="$base_compile $qsrcfile"
    1038       else
    1039         command="$base_compile $qsrcfile $pic_flag"
    1040       fi
    1041       if test "$compiler_c_o" = yes; then
    1042         command="$command -o $obj"
    1043       fi
    1044 
    1045       # Suppress compiler output if we already did a PIC compilation.
    1046       command="$command$suppress_output"
    1047       $run $rm "$obj" "$output_obj"
    1048       $show "$command"
    1049       if $run eval "$command"; then :
    1050       else
    1051         $run $rm $removelist
    1052         exit $EXIT_FAILURE
    1053       fi
    1054 
    1055       if test "$need_locks" = warn &&
    1056          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
    1057         $echo "\
    1058 *** ERROR, $lockfile contains:
    1059 `cat $lockfile 2>/dev/null`
    1060 
    1061 but it should contain:
    1062 $srcfile
    1063 
    1064 This indicates that another process is trying to use the same
    1065 temporary object file, and libtool could not work around it because
    1066 your compiler does not support \`-c' and \`-o' together.  If you
    1067 repeat this compilation, it may succeed, by chance, but you had better
    1068 avoid parallel builds (make -j) in this platform, or get a better
    1069 compiler."
    1070 
    1071         $run $rm $removelist
    1072         exit $EXIT_FAILURE
    1073       fi
    1074 
    1075       # Just move the object if needed
    1076       if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
    1077         $show "$mv $output_obj $obj"
    1078         if $run $mv $output_obj $obj; then :
    1079         else
    1080           error=$?
    1081           $run $rm $removelist
    1082           exit $error
    1083         fi
    1084       fi
    1085 
    1086       # Append the name of the non-PIC object the libtool object file.
    1087       # Only append if the libtool object file exists.
    1088       test -z "$run" && cat >> ${libobj}T <<EOF
    1089 # Name of the non-PIC object.
    1090 non_pic_object='$objname'
    1091 
    1092 EOF
    1093     else
    1094       # Append the name of the non-PIC object the libtool object file.
    1095       # Only append if the libtool object file exists.
    1096       test -z "$run" && cat >> ${libobj}T <<EOF
    1097 # Name of the non-PIC object.
    1098 non_pic_object=none
    1099 
    1100 EOF
    1101     fi
    1102 
    1103     $run $mv "${libobj}T" "${libobj}"
    1104 
    1105     # Unlock the critical section if it was locked
    1106     if test "$need_locks" != no; then
    1107       $run $rm "$lockfile"
    1108     fi
    1109 
    1110     exit $EXIT_SUCCESS
    1111     ;;
    1112 
    1113   # libtool link mode
    1114   link | relink)
    1115     modename="$modename: link"
     5090}
     5091
     5092# func_mode_link arg...
     5093func_mode_link ()
     5094{
     5095    $opt_debug
    11165096    case $host in
    1117     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
     5097    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
    11185098      # It is impossible to link a dll without this setting, and
    11195099      # we shouldn't force the makefile maintainer to figure out
     
    11335113      ;;
    11345114    esac
    1135     libtool_args="$nonopt"
     5115    libtool_args=$nonopt
    11365116    base_compile="$nonopt $@"
    1137     compile_command="$nonopt"
    1138     finalize_command="$nonopt"
     5117    compile_command=$nonopt
     5118    finalize_command=$nonopt
    11395119
    11405120    compile_rpath=
     
    11515131    lib_search_path=`pwd`
    11525132    inst_prefix_dir=
     5133    new_inherited_linker_flags=
    11535134
    11545135    avoid_version=no
     5136    bindir=
    11555137    dlfiles=
    11565138    dlprefiles=
     
    11665148    objs=
    11675149    non_pic_objects=
    1168     notinst_path= # paths that contain not-installed libtool libraries
    11695150    precious_files_regex=
    11705151    prefer_static_libs=no
     
    11805161    vinfo=
    11815162    vinfo_number=no
    1182 
     5163    weak_libs=
     5164    single_module="${wl}-single_module"
    11835165    func_infer_tag $base_compile
    11845166
     
    11875169    do
    11885170      case $arg in
    1189       -all-static | -static)
    1190         if test "X$arg" = "X-all-static"; then
     5171      -shared)
     5172        test "$build_libtool_libs" != yes && \
     5173          func_fatal_configuration "can not build a shared library"
     5174        build_old_libs=no
     5175        break
     5176        ;;
     5177      -all-static | -static | -static-libtool-libs)
     5178        case $arg in
     5179        -all-static)
    11915180          if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
    1192             $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
     5181            func_warning "complete static linking is impossible in this configuration"
    11935182          fi
    11945183          if test -n "$link_static_flag"; then
     
    11965185          fi
    11975186          prefer_static_libs=yes
    1198         else
     5187          ;;
     5188        -static)
    11995189          if test -z "$pic_flag" && test -n "$link_static_flag"; then
    12005190            dlopen_self=$dlopen_self_static
    12015191          fi
    12025192          prefer_static_libs=built
    1203         fi
     5193          ;;
     5194        -static-libtool-libs)
     5195          if test -z "$pic_flag" && test -n "$link_static_flag"; then
     5196            dlopen_self=$dlopen_self_static
     5197          fi
     5198          prefer_static_libs=yes
     5199          ;;
     5200        esac
    12045201        build_libtool_libs=no
    12055202        build_old_libs=yes
     
    12165213      arg="$1"
    12175214      shift
    1218       case $arg in
    1219       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
    1220         qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
    1221         ;;
    1222       *) qarg=$arg ;;
    1223       esac
    1224       libtool_args="$libtool_args $qarg"
     5215      func_quote_for_eval "$arg"
     5216      qarg=$func_quote_for_eval_unquoted_result
     5217      func_append libtool_args " $func_quote_for_eval_result"
    12255218
    12265219      # If the previous option needs an argument, assign it.
     
    12285221        case $prev in
    12295222        output)
    1230           compile_command="$compile_command @OUTPUT@"
    1231           finalize_command="$finalize_command @OUTPUT@"
     5223          func_append compile_command " @OUTPUT@"
     5224          func_append finalize_command " @OUTPUT@"
    12325225          ;;
    12335226        esac
    12345227
    12355228        case $prev in
     5229        bindir)
     5230          bindir="$arg"
     5231          prev=
     5232          continue
     5233          ;;
    12365234        dlfiles|dlprefiles)
    12375235          if test "$preload" = no; then
    12385236            # Add the symbol object into the linking commands.
    1239             compile_command="$compile_command @SYMFILE@"
    1240             finalize_command="$finalize_command @SYMFILE@"
     5237            func_append compile_command " @SYMFILE@"
     5238            func_append finalize_command " @SYMFILE@"
    12415239            preload=yes
    12425240          fi
     
    12655263          *)
    12665264            if test "$prev" = dlfiles; then
    1267               dlfiles="$dlfiles $arg"
     5265              func_append dlfiles " $arg"
    12685266            else
    1269               dlprefiles="$dlprefiles $arg"
     5267              func_append dlprefiles " $arg"
    12705268            fi
    12715269            prev=
     
    12765274        expsyms)
    12775275          export_symbols="$arg"
    1278           if test ! -f "$arg"; then
    1279             $echo "$modename: symbol file \`$arg' does not exist"
    1280             exit $EXIT_FAILURE
    1281           fi
     5276          test -f "$arg" \
     5277            || func_fatal_error "symbol file \`$arg' does not exist"
    12825278          prev=
    12835279          continue
     
    12885284          continue
    12895285          ;;
     5286        framework)
     5287          case $host in
     5288            *-*-darwin*)
     5289              case "$deplibs " in
     5290                *" $qarg.ltframework "*) ;;
     5291                *) func_append deplibs " $qarg.ltframework" # this is fixed later
     5292                   ;;
     5293              esac
     5294              ;;
     5295          esac
     5296          prev=
     5297          continue
     5298          ;;
    12905299        inst_prefix)
    12915300          inst_prefix_dir="$arg"
     5301          prev=
     5302          continue
     5303          ;;
     5304        objectlist)
     5305          if test -f "$arg"; then
     5306            save_arg=$arg
     5307            moreargs=
     5308            for fil in `cat "$save_arg"`
     5309            do
     5310#             func_append moreargs " $fil"
     5311              arg=$fil
     5312              # A libtool-controlled object.
     5313
     5314              # Check to see that this really is a libtool object.
     5315              if func_lalib_unsafe_p "$arg"; then
     5316                pic_object=
     5317                non_pic_object=
     5318
     5319                # Read the .lo file
     5320                func_source "$arg"
     5321
     5322                if test -z "$pic_object" ||
     5323                   test -z "$non_pic_object" ||
     5324                   test "$pic_object" = none &&
     5325                   test "$non_pic_object" = none; then
     5326                  func_fatal_error "cannot find name of object for \`$arg'"
     5327                fi
     5328
     5329                # Extract subdirectory from the argument.
     5330                func_dirname "$arg" "/" ""
     5331                xdir="$func_dirname_result"
     5332
     5333                if test "$pic_object" != none; then
     5334                  # Prepend the subdirectory the object is found in.
     5335                  pic_object="$xdir$pic_object"
     5336
     5337                  if test "$prev" = dlfiles; then
     5338                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
     5339                      func_append dlfiles " $pic_object"
     5340                      prev=
     5341                      continue
     5342                    else
     5343                      # If libtool objects are unsupported, then we need to preload.
     5344                      prev=dlprefiles
     5345                    fi
     5346                  fi
     5347
     5348                  # CHECK ME:  I think I busted this.  -Ossama
     5349                  if test "$prev" = dlprefiles; then
     5350                    # Preload the old-style object.
     5351                    func_append dlprefiles " $pic_object"
     5352                    prev=
     5353                  fi
     5354
     5355                  # A PIC object.
     5356                  func_append libobjs " $pic_object"
     5357                  arg="$pic_object"
     5358                fi
     5359
     5360                # Non-PIC object.
     5361                if test "$non_pic_object" != none; then
     5362                  # Prepend the subdirectory the object is found in.
     5363                  non_pic_object="$xdir$non_pic_object"
     5364
     5365                  # A standard non-PIC object
     5366                  func_append non_pic_objects " $non_pic_object"
     5367                  if test -z "$pic_object" || test "$pic_object" = none ; then
     5368                    arg="$non_pic_object"
     5369                  fi
     5370                else
     5371                  # If the PIC object exists, use it instead.
     5372                  # $xdir was prepended to $pic_object above.
     5373                  non_pic_object="$pic_object"
     5374                  func_append non_pic_objects " $non_pic_object"
     5375                fi
     5376              else
     5377                # Only an error if not doing a dry-run.
     5378                if $opt_dry_run; then
     5379                  # Extract subdirectory from the argument.
     5380                  func_dirname "$arg" "/" ""
     5381                  xdir="$func_dirname_result"
     5382
     5383                  func_lo2o "$arg"
     5384                  pic_object=$xdir$objdir/$func_lo2o_result
     5385                  non_pic_object=$xdir$func_lo2o_result
     5386                  func_append libobjs " $pic_object"
     5387                  func_append non_pic_objects " $non_pic_object"
     5388                else
     5389                  func_fatal_error "\`$arg' is not a valid libtool object"
     5390                fi
     5391              fi
     5392            done
     5393          else
     5394            func_fatal_error "link input file \`$arg' does not exist"
     5395          fi
     5396          arg=$save_arg
    12925397          prev=
    12935398          continue
     
    13035408          continue
    13045409          ;;
    1305         objectlist)
    1306           if test -f "$arg"; then
    1307             save_arg=$arg
    1308             moreargs=
    1309             for fil in `cat $save_arg`
    1310             do
    1311 #             moreargs="$moreargs $fil"
    1312               arg=$fil
    1313               # A libtool-controlled object.
    1314 
    1315               # Check to see that this really is a libtool object.
    1316               if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    1317                 pic_object=
    1318                 non_pic_object=
    1319 
    1320                 # Read the .lo file
    1321                 # If there is no directory component, then add one.
    1322                 case $arg in
    1323                 */* | *\\*) . $arg ;;
    1324                 *) . ./$arg ;;
    1325                 esac
    1326 
    1327                 if test -z "$pic_object" || \
    1328                    test -z "$non_pic_object" ||
    1329                    test "$pic_object" = none && \
    1330                    test "$non_pic_object" = none; then
    1331                   $echo "$modename: cannot find name of object for \`$arg'" 1>&2
    1332                   exit $EXIT_FAILURE
    1333                 fi
    1334 
    1335                 # Extract subdirectory from the argument.
    1336                 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    1337                 if test "X$xdir" = "X$arg"; then
    1338                   xdir=
    1339                 else
    1340                   xdir="$xdir/"
    1341                 fi
    1342 
    1343                 if test "$pic_object" != none; then
    1344                   # Prepend the subdirectory the object is found in.
    1345                   pic_object="$xdir$pic_object"
    1346 
    1347                   if test "$prev" = dlfiles; then
    1348                     if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
    1349                       dlfiles="$dlfiles $pic_object"
    1350                       prev=
    1351                       continue
    1352                     else
    1353                       # If libtool objects are unsupported, then we need to preload.
    1354                       prev=dlprefiles
    1355                     fi
    1356                   fi
    1357 
    1358                   # CHECK ME:  I think I busted this.  -Ossama
    1359                   if test "$prev" = dlprefiles; then
    1360                     # Preload the old-style object.
    1361                     dlprefiles="$dlprefiles $pic_object"
    1362                     prev=
    1363                   fi
    1364 
    1365                   # A PIC object.
    1366                   libobjs="$libobjs $pic_object"
    1367                   arg="$pic_object"
    1368                 fi
    1369 
    1370                 # Non-PIC object.
    1371                 if test "$non_pic_object" != none; then
    1372                   # Prepend the subdirectory the object is found in.
    1373                   non_pic_object="$xdir$non_pic_object"
    1374 
    1375                   # A standard non-PIC object
    1376                   non_pic_objects="$non_pic_objects $non_pic_object"
    1377                   if test -z "$pic_object" || test "$pic_object" = none ; then
    1378                     arg="$non_pic_object"
    1379                   fi
    1380                 else
    1381                   # If the PIC object exists, use it instead.
    1382                   # $xdir was prepended to $pic_object above.
    1383                   non_pic_object="$pic_object"
    1384                   non_pic_objects="$non_pic_objects $non_pic_object"
    1385                 fi
    1386               else
    1387                 # Only an error if not doing a dry-run.
    1388                 if test -z "$run"; then
    1389                   $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
    1390                   exit $EXIT_FAILURE
    1391                 else
    1392                   # Dry-run case.
    1393 
    1394                   # Extract subdirectory from the argument.
    1395                   xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    1396                   if test "X$xdir" = "X$arg"; then
    1397                     xdir=
    1398                   else
    1399                     xdir="$xdir/"
    1400                   fi
    1401 
    1402                   pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    1403                   non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    1404                   libobjs="$libobjs $pic_object"
    1405                   non_pic_objects="$non_pic_objects $non_pic_object"
    1406                 fi
    1407               fi
    1408             done
    1409           else
    1410             $echo "$modename: link input file \`$save_arg' does not exist"
    1411             exit $EXIT_FAILURE
    1412           fi
    1413           arg=$save_arg
    1414           prev=
    1415           continue
    1416           ;;
    14175410        rpath | xrpath)
    14185411          # We need an absolute path.
     
    14205413          [\\/]* | [A-Za-z]:[\\/]*) ;;
    14215414          *)
    1422             $echo "$modename: only absolute run-paths are allowed" 1>&2
    1423             exit $EXIT_FAILURE
     5415            func_fatal_error "only absolute run-paths are allowed"
    14245416            ;;
    14255417          esac
     
    14275419            case "$rpath " in
    14285420            *" $arg "*) ;;
    1429             *) rpath="$rpath $arg" ;;
     5421            *) func_append rpath " $arg" ;;
    14305422            esac
    14315423          else
    14325424            case "$xrpath " in
    14335425            *" $arg "*) ;;
    1434             *) xrpath="$xrpath $arg" ;;
     5426            *) func_append xrpath " $arg" ;;
    14355427            esac
    14365428          fi
     
    14385430          continue
    14395431          ;;
     5432        shrext)
     5433          shrext_cmds="$arg"
     5434          prev=
     5435          continue
     5436          ;;
     5437        weak)
     5438          func_append weak_libs " $arg"
     5439          prev=
     5440          continue
     5441          ;;
     5442        xcclinker)
     5443          func_append linker_flags " $qarg"
     5444          func_append compiler_flags " $qarg"
     5445          prev=
     5446          func_append compile_command " $qarg"
     5447          func_append finalize_command " $qarg"
     5448          continue
     5449          ;;
    14405450        xcompiler)
    1441           compiler_flags="$compiler_flags $qarg"
     5451          func_append compiler_flags " $qarg"
    14425452          prev=
    1443           compile_command="$compile_command $qarg"
    1444           finalize_command="$finalize_command $qarg"
     5453          func_append compile_command " $qarg"
     5454          func_append finalize_command " $qarg"
    14455455          continue
    14465456          ;;
    14475457        xlinker)
    1448           linker_flags="$linker_flags $qarg"
    1449           compiler_flags="$compiler_flags $wl$qarg"
     5458          func_append linker_flags " $qarg"
     5459          func_append compiler_flags " $wl$qarg"
    14505460          prev=
    1451           compile_command="$compile_command $wl$qarg"
    1452           finalize_command="$finalize_command $wl$qarg"
    1453           continue
    1454           ;;
    1455         xcclinker)
    1456           linker_flags="$linker_flags $qarg"
    1457           compiler_flags="$compiler_flags $qarg"
    1458           prev=
    1459           compile_command="$compile_command $qarg"
    1460           finalize_command="$finalize_command $qarg"
    1461           continue
    1462           ;;
    1463         shrext)
    1464           shrext_cmds="$arg"
    1465           prev=
    1466           continue
    1467           ;;
    1468         darwin_framework|darwin_framework_skip)
    1469           test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
    1470           compile_command="$compile_command $arg"
    1471           finalize_command="$finalize_command $arg"
    1472           prev=
     5461          func_append compile_command " $wl$qarg"
     5462          func_append finalize_command " $wl$qarg"
    14735463          continue
    14745464          ;;
     
    14865476      -all-static)
    14875477        if test -n "$link_static_flag"; then
    1488           compile_command="$compile_command $link_static_flag"
    1489           finalize_command="$finalize_command $link_static_flag"
     5478          # See comment for -static flag below, for more details.
     5479          func_append compile_command " $link_static_flag"
     5480          func_append finalize_command " $link_static_flag"
    14905481        fi
    14915482        continue
     
    14945485      -allow-undefined)
    14955486        # FIXME: remove this flag sometime in the future.
    1496         $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
    1497         continue
     5487        func_fatal_error "\`-allow-undefined' must not be used because it is the default"
    14985488        ;;
    14995489
     
    15035493        ;;
    15045494
     5495      -bindir)
     5496        prev=bindir
     5497        continue
     5498        ;;
     5499
    15055500      -dlopen)
    15065501        prev=dlfiles
     
    15205515      -export-symbols | -export-symbols-regex)
    15215516        if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
    1522           $echo "$modename: more than one -exported-symbols argument is not allowed"
    1523           exit $EXIT_FAILURE
     5517          func_fatal_error "more than one -exported-symbols argument is not allowed"
    15245518        fi
    15255519        if test "X$arg" = "X-export-symbols"; then
     
    15315525        ;;
    15325526
    1533       -framework|-arch|-isysroot)
    1534         case " $CC " in
    1535           *" ${arg} ${1} "* | *" ${arg} ${1} "*)
    1536                 prev=darwin_framework_skip ;;
    1537           *) compiler_flags="$compiler_flags $arg"
    1538              prev=darwin_framework ;;
    1539         esac
    1540         compile_command="$compile_command $arg"
    1541         finalize_command="$finalize_command $arg"
     5527      -framework)
     5528        prev=framework
    15425529        continue
    15435530        ;;
     
    15535540        case $with_gcc/$host in
    15545541        no/*-*-irix* | /*-*-irix*)
    1555           compile_command="$compile_command $arg"
    1556           finalize_command="$finalize_command $arg"
     5542          func_append compile_command " $arg"
     5543          func_append finalize_command " $arg"
    15575544          ;;
    15585545        esac
     
    15615548
    15625549      -L*)
    1563         dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
     5550        func_stripname "-L" '' "$arg"
     5551        if test -z "$func_stripname_result"; then
     5552          if test "$#" -gt 0; then
     5553            func_fatal_error "require no space between \`-L' and \`$1'"
     5554          else
     5555            func_fatal_error "need path for \`-L' option"
     5556          fi
     5557        fi
     5558        func_resolve_sysroot "$func_stripname_result"
     5559        dir=$func_resolve_sysroot_result
    15645560        # We need an absolute path.
    15655561        case $dir in
     
    15675563        *)
    15685564          absdir=`cd "$dir" && pwd`
    1569           if test -z "$absdir"; then
    1570             $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
    1571             absdir="$dir"
    1572             notinst_path="$notinst_path $dir"
    1573           fi
     5565          test -z "$absdir" && \
     5566            func_fatal_error "cannot determine absolute directory name of \`$dir'"
    15745567          dir="$absdir"
    15755568          ;;
    15765569        esac
    15775570        case "$deplibs " in
    1578         *" -L$dir "*) ;;
     5571        *" -L$dir "* | *" $arg "*)
     5572          # Will only happen for absolute or sysroot arguments
     5573          ;;
    15795574        *)
    1580           deplibs="$deplibs -L$dir"
    1581           lib_search_path="$lib_search_path $dir"
     5575          # Preserve sysroot, but never include relative directories
     5576          case $dir in
     5577            [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
     5578            *) func_append deplibs " -L$dir" ;;
     5579          esac
     5580          func_append lib_search_path " $dir"
    15825581          ;;
    15835582        esac
    15845583        case $host in
    1585         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
    1586           testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
     5584        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
     5585          testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
    15875586          case :$dllsearchpath: in
    15885587          *":$dir:"*) ;;
    1589           *) dllsearchpath="$dllsearchpath:$dir";;
     5588          ::) dllsearchpath=$dir;;
     5589          *) func_append dllsearchpath ":$dir";;
    15905590          esac
    15915591          case :$dllsearchpath: in
    15925592          *":$testbindir:"*) ;;
    1593           *) dllsearchpath="$dllsearchpath:$testbindir";;
     5593          ::) dllsearchpath=$testbindir;;
     5594          *) func_append dllsearchpath ":$testbindir";;
    15945595          esac
    15955596          ;;
     
    16015602        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
    16025603          case $host in
    1603           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
     5604          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
    16045605            # These systems don't actually have a C or math library (as such)
    16055606            continue
     
    16155616          *-*-rhapsody* | *-*-darwin1.[012])
    16165617            # Rhapsody C and math libraries are in the System framework
    1617             deplibs="$deplibs -framework System"
     5618            func_append deplibs " System.ltframework"
    16185619            continue
    16195620            ;;
     
    16355636         esac
    16365637        fi
    1637         deplibs="$deplibs $arg"
    1638         continue
    1639         ;;
    1640 
    1641       # Tru64 UNIX uses -model [arg] to determine the layout of C++
    1642       # classes, name mangling, and exception handling.
    1643       -model)
    1644         compile_command="$compile_command $arg"
    1645         compiler_flags="$compiler_flags $arg"
    1646         finalize_command="$finalize_command $arg"
    1647         prev=xcompiler
    1648         continue
    1649         ;;
    1650 
    1651      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
    1652         compiler_flags="$compiler_flags $arg"
    1653         compile_command="$compile_command $arg"
    1654         finalize_command="$finalize_command $arg"
     5638        func_append deplibs " $arg"
    16555639        continue
    16565640        ;;
     
    16615645        ;;
    16625646
    1663       # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
    1664       # -r[0-9][0-9]* specifies the processor on the SGI compiler
    1665       # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
    1666       # +DA*, +DD* enable 64-bit mode on the HP compiler
    1667       # -q* pass through compiler args for the IBM compiler
    1668       # -m* pass through architecture-specific compiler args for GCC
    1669       # -m*, -t[45]*, -txscale* pass through architecture-specific
    1670       # compiler args for GCC
    1671       # -pg pass through profiling flag for GCC
    1672       # @file GCC response files
    1673       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
    1674       -t[45]*|-txscale*|@*)
    1675 
    1676         # Unknown arguments in both finalize_command and compile_command need
    1677         # to be aesthetically quoted because they are evaled later.
    1678         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    1679         case $arg in
    1680         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
    1681           arg="\"$arg\""
    1682           ;;
     5647      # Tru64 UNIX uses -model [arg] to determine the layout of C++
     5648      # classes, name mangling, and exception handling.
     5649      # Darwin uses the -arch flag to determine output architecture.
     5650      -model|-arch|-isysroot|--sysroot)
     5651        func_append compiler_flags " $arg"
     5652        func_append compile_command " $arg"
     5653        func_append finalize_command " $arg"
     5654        prev=xcompiler
     5655        continue
     5656        ;;
     5657
     5658      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
     5659      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
     5660        func_append compiler_flags " $arg"
     5661        func_append compile_command " $arg"
     5662        func_append finalize_command " $arg"
     5663        case "$new_inherited_linker_flags " in
     5664            *" $arg "*) ;;
     5665            * ) func_append new_inherited_linker_flags " $arg" ;;
    16835666        esac
    1684         compile_command="$compile_command $arg"
    1685         finalize_command="$finalize_command $arg"
    1686         compiler_flags="$compiler_flags $arg"
    1687         continue
    1688         ;;
    1689 
    1690       -shrext)
    1691         prev=shrext
     5667        continue
     5668        ;;
     5669
     5670      -multi_module)
     5671        single_module="${wl}-multi_module"
    16925672        continue
    16935673        ;;
     
    17005680      -no-install)
    17015681        case $host in
    1702         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
     5682        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
    17035683          # The PATH hackery in wrapper scripts is required on Windows
    1704           # in order for the loader to find any dlls it needs.
    1705           $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
    1706           $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
     5684          # and Darwin in order for the loader to find any dlls it needs.
     5685          func_warning "\`-no-install' is ignored for $host"
     5686          func_warning "assuming \`-no-fast-install' instead"
    17075687          fast_install=no
    17085688          ;;
     
    17455725
    17465726      -R*)
    1747         dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
     5727        func_stripname '-R' '' "$arg"
     5728        dir=$func_stripname_result
    17485729        # We need an absolute path.
    17495730        case $dir in
    17505731        [\\/]* | [A-Za-z]:[\\/]*) ;;
     5732        =*)
     5733          func_stripname '=' '' "$dir"
     5734          dir=$lt_sysroot$func_stripname_result
     5735          ;;
    17515736        *)
    1752           $echo "$modename: only absolute run-paths are allowed" 1>&2
    1753           exit $EXIT_FAILURE
     5737          func_fatal_error "only absolute run-paths are allowed"
    17545738          ;;
    17555739        esac
    17565740        case "$xrpath " in
    17575741        *" $dir "*) ;;
    1758         *) xrpath="$xrpath $dir" ;;
     5742        *) func_append xrpath " $dir" ;;
    17595743        esac
    17605744        continue
    17615745        ;;
    17625746
    1763       -static)
     5747      -shared)
     5748        # The effects of -shared are defined in a previous loop.
     5749        continue
     5750        ;;
     5751
     5752      -shrext)
     5753        prev=shrext
     5754        continue
     5755        ;;
     5756
     5757      -static | -static-libtool-libs)
    17645758        # The effects of -static are defined in a previous loop.
    17655759        # We used to do the same as -all-static on platforms that
     
    17795773        continue
    17805774        ;;
     5775
    17815776      -version-number)
    17825777        prev=vinfo
     
    17855780        ;;
    17865781
     5782      -weak)
     5783        prev=weak
     5784        continue
     5785        ;;
     5786
    17875787      -Wc,*)
    1788         args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
     5788        func_stripname '-Wc,' '' "$arg"
     5789        args=$func_stripname_result
    17895790        arg=
    17905791        save_ifs="$IFS"; IFS=','
    17915792        for flag in $args; do
    17925793          IFS="$save_ifs"
    1793           case $flag in
    1794             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
    1795             flag="\"$flag\""
    1796             ;;
    1797           esac
    1798           arg="$arg $wl$flag"
    1799           compiler_flags="$compiler_flags $flag"
     5794          func_quote_for_eval "$flag"
     5795          func_append arg " $func_quote_for_eval_result"
     5796          func_append compiler_flags " $func_quote_for_eval_result"
    18005797        done
    18015798        IFS="$save_ifs"
    1802         arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
     5799        func_stripname ' ' '' "$arg"
     5800        arg=$func_stripname_result
    18035801        ;;
    18045802
    18055803      -Wl,*)
    1806         args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
     5804        func_stripname '-Wl,' '' "$arg"
     5805        args=$func_stripname_result
    18075806        arg=
    18085807        save_ifs="$IFS"; IFS=','
    18095808        for flag in $args; do
    18105809          IFS="$save_ifs"
    1811           case $flag in
    1812             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
    1813             flag="\"$flag\""
    1814             ;;
    1815           esac
    1816           arg="$arg $wl$flag"
    1817           compiler_flags="$compiler_flags $wl$flag"
    1818           linker_flags="$linker_flags $flag"
     5810          func_quote_for_eval "$flag"
     5811          func_append arg " $wl$func_quote_for_eval_result"
     5812          func_append compiler_flags " $wl$func_quote_for_eval_result"
     5813          func_append linker_flags " $func_quote_for_eval_result"
    18195814        done
    18205815        IFS="$save_ifs"
    1821         arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
     5816        func_stripname ' ' '' "$arg"
     5817        arg=$func_stripname_result
    18225818        ;;
    18235819
     
    18375833        ;;
    18385834
     5835      # -msg_* for osf cc
     5836      -msg_*)
     5837        func_quote_for_eval "$arg"
     5838        arg="$func_quote_for_eval_result"
     5839        ;;
     5840
     5841      # Flags to be passed through unchanged, with rationale:
     5842      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
     5843      # -r[0-9][0-9]*        specify processor for the SGI compiler
     5844      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
     5845      # +DA*, +DD*           enable 64-bit mode for the HP compiler
     5846      # -q*                  compiler args for the IBM compiler
     5847      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
     5848      # -F/path              path to uninstalled frameworks, gcc on darwin
     5849      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
     5850      # @file                GCC response files
     5851      # -tp=*                Portland pgcc target processor selection
     5852      # --sysroot=*          for sysroot support
     5853      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
     5854      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
     5855      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
     5856      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
     5857        func_quote_for_eval "$arg"
     5858        arg="$func_quote_for_eval_result"
     5859        func_append compile_command " $arg"
     5860        func_append finalize_command " $arg"
     5861        func_append compiler_flags " $arg"
     5862        continue
     5863        ;;
     5864
    18395865      # Some other compiler flag.
    18405866      -* | +*)
    1841         # Unknown arguments in both finalize_command and compile_command need
    1842         # to be aesthetically quoted because they are evaled later.
    1843         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    1844         case $arg in
    1845         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
    1846           arg="\"$arg\""
    1847           ;;
    1848         esac
     5867        func_quote_for_eval "$arg"
     5868        arg="$func_quote_for_eval_result"
    18495869        ;;
    18505870
    18515871      *.$objext)
    18525872        # A standard object.
    1853         objs="$objs $arg"
     5873        func_append objs " $arg"
    18545874        ;;
    18555875
     
    18585878
    18595879        # Check to see that this really is a libtool object.
    1860         if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
     5880        if func_lalib_unsafe_p "$arg"; then
    18615881          pic_object=
    18625882          non_pic_object=
    18635883
    18645884          # Read the .lo file
    1865           # If there is no directory component, then add one.
    1866           case $arg in
    1867           */* | *\\*) . $arg ;;
    1868           *) . ./$arg ;;
    1869           esac
    1870 
    1871           if test -z "$pic_object" || \
     5885          func_source "$arg"
     5886
     5887          if test -z "$pic_object" ||
    18725888             test -z "$non_pic_object" ||
    1873              test "$pic_object" = none && \
     5889             test "$pic_object" = none &&
    18745890             test "$non_pic_object" = none; then
    1875             $echo "$modename: cannot find name of object for \`$arg'" 1>&2
    1876             exit $EXIT_FAILURE
     5891            func_fatal_error "cannot find name of object for \`$arg'"
    18775892          fi
    18785893
    18795894          # Extract subdirectory from the argument.
    1880           xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    1881           if test "X$xdir" = "X$arg"; then
    1882             xdir=
    1883           else
    1884             xdir="$xdir/"
    1885           fi
     5895          func_dirname "$arg" "/" ""
     5896          xdir="$func_dirname_result"
    18865897
    18875898          if test "$pic_object" != none; then
     
    18915902            if test "$prev" = dlfiles; then
    18925903              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
    1893                 dlfiles="$dlfiles $pic_object"
     5904                func_append dlfiles " $pic_object"
    18945905                prev=
    18955906                continue
     
    19035914            if test "$prev" = dlprefiles; then
    19045915              # Preload the old-style object.
    1905               dlprefiles="$dlprefiles $pic_object"
     5916              func_append dlprefiles " $pic_object"
    19065917              prev=
    19075918            fi
    19085919
    19095920            # A PIC object.
    1910             libobjs="$libobjs $pic_object"
     5921            func_append libobjs " $pic_object"
    19115922            arg="$pic_object"
    19125923          fi
     
    19185929
    19195930            # A standard non-PIC object
    1920             non_pic_objects="$non_pic_objects $non_pic_object"
     5931            func_append non_pic_objects " $non_pic_object"
    19215932            if test -z "$pic_object" || test "$pic_object" = none ; then
    19225933              arg="$non_pic_object"
     
    19265937            # $xdir was prepended to $pic_object above.
    19275938            non_pic_object="$pic_object"
    1928             non_pic_objects="$non_pic_objects $non_pic_object"
     5939            func_append non_pic_objects " $non_pic_object"
    19295940          fi
    19305941        else
    19315942          # Only an error if not doing a dry-run.
    1932           if test -z "$run"; then
    1933             $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
    1934             exit $EXIT_FAILURE
     5943          if $opt_dry_run; then
     5944            # Extract subdirectory from the argument.
     5945            func_dirname "$arg" "/" ""
     5946            xdir="$func_dirname_result"
     5947
     5948            func_lo2o "$arg"
     5949            pic_object=$xdir$objdir/$func_lo2o_result
     5950            non_pic_object=$xdir$func_lo2o_result
     5951            func_append libobjs " $pic_object"
     5952            func_append non_pic_objects " $non_pic_object"
    19355953          else
    1936             # Dry-run case.
    1937 
    1938             # Extract subdirectory from the argument.
    1939             xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    1940             if test "X$xdir" = "X$arg"; then
    1941               xdir=
    1942             else
    1943               xdir="$xdir/"
    1944             fi
    1945 
    1946             pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    1947             non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    1948             libobjs="$libobjs $pic_object"
    1949             non_pic_objects="$non_pic_objects $non_pic_object"
     5954            func_fatal_error "\`$arg' is not a valid libtool object"
    19505955          fi
    19515956        fi
     
    19545959      *.$libext)
    19555960        # An archive.
    1956         deplibs="$deplibs $arg"
    1957         old_deplibs="$old_deplibs $arg"
     5961        func_append deplibs " $arg"
     5962        func_append old_deplibs " $arg"
    19585963        continue
    19595964        ;;
     
    19625967        # A libtool-controlled library.
    19635968
     5969        func_resolve_sysroot "$arg"
    19645970        if test "$prev" = dlfiles; then
    19655971          # This library was specified with -dlopen.
    1966           dlfiles="$dlfiles $arg"
     5972          func_append dlfiles " $func_resolve_sysroot_result"
    19675973          prev=
    19685974        elif test "$prev" = dlprefiles; then
    19695975          # The library was specified with -dlpreopen.
    1970           dlprefiles="$dlprefiles $arg"
     5976          func_append dlprefiles " $func_resolve_sysroot_result"
    19715977          prev=
    19725978        else
    1973           deplibs="$deplibs $arg"
     5979          func_append deplibs " $func_resolve_sysroot_result"
    19745980        fi
    19755981        continue
     
    19805986        # Unknown arguments in both finalize_command and compile_command need
    19815987        # to be aesthetically quoted because they are evaled later.
    1982         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    1983         case $arg in
    1984         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
    1985           arg="\"$arg\""
    1986           ;;
    1987         esac
     5988        func_quote_for_eval "$arg"
     5989        arg="$func_quote_for_eval_result"
    19885990        ;;
    19895991      esac # arg
     
    19915993      # Now actually substitute the argument into the commands.
    19925994      if test -n "$arg"; then
    1993         compile_command="$compile_command $arg"
    1994         finalize_command="$finalize_command $arg"
     5995        func_append compile_command " $arg"
     5996        func_append finalize_command " $arg"
    19955997      fi
    19965998    done # argument parsing loop
    19975999
    1998     if test -n "$prev"; then
    1999       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
    2000       $echo "$help" 1>&2
    2001       exit $EXIT_FAILURE
    2002     fi
     6000    test -n "$prev" && \
     6001      func_fatal_help "the \`$prevarg' option requires an argument"
    20036002
    20046003    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
    20056004      eval arg=\"$export_dynamic_flag_spec\"
    2006       compile_command="$compile_command $arg"
    2007       finalize_command="$finalize_command $arg"
     6005      func_append compile_command " $arg"
     6006      func_append finalize_command " $arg"
    20086007    fi
    20096008
    20106009    oldlibs=
    20116010    # calculate the name of the file, without its directory
    2012     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
     6011    func_basename "$output"
     6012    outputname="$func_basename_result"
    20136013    libobjs_save="$libobjs"
    20146014
    20156015    if test -n "$shlibpath_var"; then
    20166016      # get the directories listed in $shlibpath_var
    2017       eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
     6017      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
    20186018    else
    20196019      shlib_search_path=
     
    20226022    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
    20236023
    2024     output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
    2025     if test "X$output_objdir" = "X$output"; then
    2026       output_objdir="$objdir"
    2027     else
    2028       output_objdir="$output_objdir/$objdir"
    2029     fi
     6024    func_dirname "$output" "/" ""
     6025    output_objdir="$func_dirname_result$objdir"
     6026    func_to_tool_file "$output_objdir/"
     6027    tool_output_objdir=$func_to_tool_file_result
    20306028    # Create the object directory.
    2031     if test ! -d "$output_objdir"; then
    2032       $show "$mkdir $output_objdir"
    2033       $run $mkdir $output_objdir
    2034       exit_status=$?
    2035       if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
    2036         exit $exit_status
    2037       fi
    2038     fi
     6029    func_mkdir_p "$output_objdir"
    20396030
    20406031    # Determine the type of output
    20416032    case $output in
    20426033    "")
    2043       $echo "$modename: you must specify an output file" 1>&2
    2044       $echo "$help" 1>&2
    2045       exit $EXIT_FAILURE
     6034      func_fatal_help "you must specify an output file"
    20466035      ;;
    20476036    *.$libext) linkmode=oldlib ;;
     
    20516040    esac
    20526041
    2053     case $host in
    2054     *cygwin* | *mingw* | *pw32*)
    2055       # don't eliminate duplications in $postdeps and $predeps
    2056       duplicate_compiler_generated_deps=yes
    2057       ;;
    2058     *)
    2059       duplicate_compiler_generated_deps=$duplicate_deps
    2060       ;;
    2061     esac
    20626042    specialdeplibs=
    20636043
     
    20666046    # that are linked more than once (e.g. -la -lb -la)
    20676047    for deplib in $deplibs; do
    2068       if test "X$duplicate_deps" = "Xyes" ; then
     6048      if $opt_preserve_dup_deps ; then
    20696049        case "$libs " in
    2070         *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
     6050        *" $deplib "*) func_append specialdeplibs " $deplib" ;;
    20716051        esac
    20726052      fi
    2073       libs="$libs $deplib"
     6053      func_append libs " $deplib"
    20746054    done
    20756055
     
    20816061      # not to be eliminated).
    20826062      pre_post_deps=
    2083       if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
     6063      if $opt_duplicate_compiler_generated_deps; then
    20846064        for pre_post_dep in $predeps $postdeps; do
    20856065          case "$pre_post_deps " in
    2086           *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
     6066          *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
    20876067          esac
    2088           pre_post_deps="$pre_post_deps $pre_post_dep"
     6068          func_append pre_post_deps " $pre_post_dep"
    20896069        done
    20906070      fi
     
    20976077    need_relink=no # whether we're linking any uninstalled libtool libraries
    20986078    notinst_deplibs= # not-installed libtool libraries
     6079    notinst_path= # paths that contain not-installed libtool libraries
     6080
    20996081    case $linkmode in
    21006082    lib)
    2101         passes="conv link"
     6083        passes="conv dlpreopen link"
    21026084        for file in $dlfiles $dlprefiles; do
    21036085          case $file in
    21046086          *.la) ;;
    21056087          *)
    2106             $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
    2107             exit $EXIT_FAILURE
     6088            func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
    21086089            ;;
    21096090          esac
     
    21216102        ;;
    21226103    esac
     6104
    21236105    for pass in $passes; do
     6106      # The preopen pass in lib mode reverses $deplibs; put it back here
     6107      # so that -L comes before libs that need it for instance...
     6108      if test "$linkmode,$pass" = "lib,link"; then
     6109        ## FIXME: Find the place where the list is rebuilt in the wrong
     6110        ##        order, and fix it there properly
     6111        tmp_deplibs=
     6112        for deplib in $deplibs; do
     6113          tmp_deplibs="$deplib $tmp_deplibs"
     6114        done
     6115        deplibs="$tmp_deplibs"
     6116      fi
     6117
    21246118      if test "$linkmode,$pass" = "lib,link" ||
    21256119         test "$linkmode,$pass" = "prog,scan"; then
     
    21316125        dlopen) libs="$dlfiles" ;;
    21326126        dlpreopen) libs="$dlprefiles" ;;
    2133         link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
     6127        link)
     6128          libs="$deplibs %DEPLIBS%"
     6129          test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
     6130          ;;
    21346131        esac
     6132      fi
     6133      if test "$linkmode,$pass" = "lib,dlpreopen"; then
     6134        # Collect and forward deplibs of preopened libtool libs
     6135        for lib in $dlprefiles; do
     6136          # Ignore non-libtool-libs
     6137          dependency_libs=
     6138          func_resolve_sysroot "$lib"
     6139          case $lib in
     6140          *.la) func_source "$func_resolve_sysroot_result" ;;
     6141          esac
     6142
     6143          # Collect preopened libtool deplibs, except any this library
     6144          # has declared as weak libs
     6145          for deplib in $dependency_libs; do
     6146            func_basename "$deplib"
     6147            deplib_base=$func_basename_result
     6148            case " $weak_libs " in
     6149            *" $deplib_base "*) ;;
     6150            *) func_append deplibs " $deplib" ;;
     6151            esac
     6152          done
     6153        done
     6154        libs="$dlprefiles"
    21356155      fi
    21366156      if test "$pass" = dlopen; then
     
    21396159        deplibs=
    21406160      fi
     6161
    21416162      for deplib in $libs; do
    21426163        lib=
    21436164        found=no
    21446165        case $deplib in
    2145         -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
     6166        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
     6167        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
    21466168          if test "$linkmode,$pass" = "prog,link"; then
    21476169            compile_deplibs="$deplib $compile_deplibs"
    21486170            finalize_deplibs="$deplib $finalize_deplibs"
    21496171          else
    2150             compiler_flags="$compiler_flags $deplib"
     6172            func_append compiler_flags " $deplib"
     6173            if test "$linkmode" = lib ; then
     6174                case "$new_inherited_linker_flags " in
     6175                    *" $deplib "*) ;;
     6176                    * ) func_append new_inherited_linker_flags " $deplib" ;;
     6177                esac
     6178            fi
    21516179          fi
    21526180          continue
     
    21546182        -l*)
    21556183          if test "$linkmode" != lib && test "$linkmode" != prog; then
    2156             $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
     6184            func_warning "\`-l' is ignored for archives/objects"
    21576185            continue
    21586186          fi
    2159           name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
    2160           for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
     6187          func_stripname '-l' '' "$deplib"
     6188          name=$func_stripname_result
     6189          if test "$linkmode" = lib; then
     6190            searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
     6191          else
     6192            searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
     6193          fi
     6194          for searchdir in $searchdirs; do
    21616195            for search_ext in .la $std_shrext .so .a; do
    21626196              # Search the libtool library
     
    21886222              case " $predeps $postdeps " in
    21896223              *" $deplib "*)
    2190                 if (${SED} -e '2q' $lib |
    2191                     grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
     6224                if func_lalib_p "$lib"; then
    21926225                  library_names=
    21936226                  old_library=
    2194                   case $lib in
    2195                   */* | *\\*) . $lib ;;
    2196                   *) . ./$lib ;;
    2197                   esac
     6227                  func_source "$lib"
    21986228                  for l in $old_library $library_names; do
    21996229                    ll="$l"
     
    22016231                  if test "X$ll" = "X$old_library" ; then # only static version available
    22026232                    found=no
    2203                     ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    2204                     test "X$ladir" = "X$lib" && ladir="."
     6233                    func_dirname "$lib" "" "."
     6234                    ladir="$func_dirname_result"
    22056235                    lib=$ladir/$old_library
    22066236                    if test "$linkmode,$pass" = "prog,link"; then
     
    22146244                  fi
    22156245                fi
    2216                 ;;
     6246                ;;
    22176247              *) ;;
    22186248              esac
     
    22206250          fi
    22216251          ;; # -l
     6252        *.ltframework)
     6253          if test "$linkmode,$pass" = "prog,link"; then
     6254            compile_deplibs="$deplib $compile_deplibs"
     6255            finalize_deplibs="$deplib $finalize_deplibs"
     6256          else
     6257            deplibs="$deplib $deplibs"
     6258            if test "$linkmode" = lib ; then
     6259                case "$new_inherited_linker_flags " in
     6260                    *" $deplib "*) ;;
     6261                    * ) func_append new_inherited_linker_flags " $deplib" ;;
     6262                esac
     6263            fi
     6264          fi
     6265          continue
     6266          ;;
    22226267        -L*)
    22236268          case $linkmode in
     
    22266271            test "$pass" = conv && continue
    22276272            newdependency_libs="$deplib $newdependency_libs"
    2228             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
     6273            func_stripname '-L' '' "$deplib"
     6274            func_resolve_sysroot "$func_stripname_result"
     6275            func_append newlib_search_path " $func_resolve_sysroot_result"
    22296276            ;;
    22306277          prog)
     
    22396286              finalize_deplibs="$deplib $finalize_deplibs"
    22406287            fi
    2241             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
     6288            func_stripname '-L' '' "$deplib"
     6289            func_resolve_sysroot "$func_stripname_result"
     6290            func_append newlib_search_path " $func_resolve_sysroot_result"
    22426291            ;;
    22436292          *)
    2244             $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
     6293            func_warning "\`-L' is ignored for archives/objects"
    22456294            ;;
    22466295          esac # linkmode
     
    22496298        -R*)
    22506299          if test "$pass" = link; then
    2251             dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
     6300            func_stripname '-R' '' "$deplib"
     6301            func_resolve_sysroot "$func_stripname_result"
     6302            dir=$func_resolve_sysroot_result
    22526303            # Make sure the xrpath contains only unique directories.
    22536304            case "$xrpath " in
    22546305            *" $dir "*) ;;
    2255             *) xrpath="$xrpath $dir" ;;
     6306            *) func_append xrpath " $dir" ;;
    22566307            esac
    22576308          fi
     
    22596310          continue
    22606311          ;;
    2261         *.la) lib="$deplib" ;;
     6312        *.la)
     6313          func_resolve_sysroot "$deplib"
     6314          lib=$func_resolve_sysroot_result
     6315          ;;
    22626316        *.$libext)
    22636317          if test "$pass" = conv; then
     
    22676321          case $linkmode in
    22686322          lib)
    2269             valid_a_lib=no
    2270             case $deplibs_check_method in
    2271               match_pattern*)
    2272                 set dummy $deplibs_check_method
    2273                 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
    2274                 if eval $echo \"$deplib\" 2>/dev/null \
    2275                     | $SED 10q \
     6323            # Linking convenience modules into shared libraries is allowed,
     6324            # but linking other static libraries is non-portable.
     6325            case " $dlpreconveniencelibs " in
     6326            *" $deplib "*) ;;
     6327            *)
     6328              valid_a_lib=no
     6329              case $deplibs_check_method in
     6330                match_pattern*)
     6331                  set dummy $deplibs_check_method; shift
     6332                  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
     6333                  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
    22766334                    | $EGREP "$match_pattern_regex" > /dev/null; then
     6335                    valid_a_lib=yes
     6336                  fi
     6337                ;;
     6338                pass_all)
    22776339                  valid_a_lib=yes
    2278                 fi
    22796340                ;;
    2280               pass_all)
    2281                 valid_a_lib=yes
    2282                 ;;
    2283             esac
    2284             if test "$valid_a_lib" != yes; then
    2285               $echo
    2286               $echo "*** Warning: Trying to link with static lib archive $deplib."
    2287               $echo "*** I have the capability to make that library automatically link in when"
    2288               $echo "*** you link to this library.  But I can only do this if you have a"
    2289               $echo "*** shared version of the library, which you do not appear to have"
    2290               $echo "*** because the file extensions .$libext of this argument makes me believe"
    2291               $echo "*** that it is just a static archive that I should not used here."
    2292             else
    2293               $echo
    2294               $echo "*** Warning: Linking the shared library $output against the"
    2295               $echo "*** static library $deplib is not portable!"
    2296               deplibs="$deplib $deplibs"
    2297             fi
     6341              esac
     6342              if test "$valid_a_lib" != yes; then
     6343                echo
     6344                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
     6345                echo "*** I have the capability to make that library automatically link in when"
     6346                echo "*** you link to this library.  But I can only do this if you have a"
     6347                echo "*** shared version of the library, which you do not appear to have"
     6348                echo "*** because the file extensions .$libext of this argument makes me believe"
     6349                echo "*** that it is just a static archive that I should not use here."
     6350              else
     6351                echo
     6352                $ECHO "*** Warning: Linking the shared library $output against the"
     6353                $ECHO "*** static library $deplib is not portable!"
     6354                deplibs="$deplib $deplibs"
     6355              fi
     6356              ;;
     6357            esac
    22986358            continue
    22996359            ;;
     
    23166376              # If there is no dlopen support or we're linking statically,
    23176377              # we need to preload.
    2318               newdlprefiles="$newdlprefiles $deplib"
     6378              func_append newdlprefiles " $deplib"
    23196379              compile_deplibs="$deplib $compile_deplibs"
    23206380              finalize_deplibs="$deplib $finalize_deplibs"
    23216381            else
    2322               newdlfiles="$newdlfiles $deplib"
     6382              func_append newdlfiles " $deplib"
    23236383            fi
    23246384          fi
     
    23306390          ;;
    23316391        esac # case $deplib
     6392
    23326393        if test "$found" = yes || test -f "$lib"; then :
    23336394        else
    2334           $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
    2335           exit $EXIT_FAILURE
     6395          func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
    23366396        fi
    23376397
    23386398        # Check to see that this really is a libtool archive.
    2339         if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
    2340         else
    2341           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
    2342           exit $EXIT_FAILURE
    2343         fi
    2344 
    2345         ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    2346         test "X$ladir" = "X$lib" && ladir="."
     6399        func_lalib_unsafe_p "$lib" \
     6400          || func_fatal_error "\`$lib' is not a valid libtool archive"
     6401
     6402        func_dirname "$lib" "" "."
     6403        ladir="$func_dirname_result"
    23476404
    23486405        dlname=
     
    23526409        library_names=
    23536410        old_library=
     6411        inherited_linker_flags=
    23546412        # If the library was installed with an old release of libtool,
    23556413        # it will not redefine variables installed, or shouldnotlink
     
    23606418
    23616419        # Read the .la file
    2362         case $lib in
    2363         */* | *\\*) . $lib ;;
    2364         *) . ./$lib ;;
    2365         esac
    2366 
     6420        func_source "$lib"
     6421
     6422        # Convert "-framework foo" to "foo.ltframework"
     6423        if test -n "$inherited_linker_flags"; then
     6424          tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
     6425          for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
     6426            case " $new_inherited_linker_flags " in
     6427              *" $tmp_inherited_linker_flag "*) ;;
     6428              *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
     6429            esac
     6430          done
     6431        fi
     6432        dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
    23676433        if test "$linkmode,$pass" = "lib,link" ||
    23686434           test "$linkmode,$pass" = "prog,scan" ||
    23696435           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
    2370           test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
    2371           test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
     6436          test -n "$dlopen" && func_append dlfiles " $dlopen"
     6437          test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
    23726438        fi
    23736439
     
    23776443          if test -z "$libdir"; then
    23786444            if test -z "$old_library"; then
    2379               $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
    2380               exit $EXIT_FAILURE
     6445              func_fatal_error "cannot find name of link library for \`$lib'"
    23816446            fi
    23826447            # It is a libtool convenience library, so add in its objects.
    2383             convenience="$convenience $ladir/$objdir/$old_library"
    2384             old_convenience="$old_convenience $ladir/$objdir/$old_library"
     6448            func_append convenience " $ladir/$objdir/$old_library"
     6449            func_append old_convenience " $ladir/$objdir/$old_library"
    23856450            tmp_libs=
    23866451            for deplib in $dependency_libs; do
    23876452              deplibs="$deplib $deplibs"
    2388               if test "X$duplicate_deps" = "Xyes" ; then
    2389                 case "$tmp_libs " in
    2390                 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
    2391                 esac
    2392               fi
    2393               tmp_libs="$tmp_libs $deplib"
     6453              if $opt_preserve_dup_deps ; then
     6454                case "$tmp_libs " in
     6455                *" $deplib "*) func_append specialdeplibs " $deplib" ;;
     6456                esac
     6457              fi
     6458              func_append tmp_libs " $deplib"
    23946459            done
    23956460          elif test "$linkmode" != prog && test "$linkmode" != lib; then
    2396             $echo "$modename: \`$lib' is not a convenience library" 1>&2
    2397             exit $EXIT_FAILURE
     6461            func_fatal_error "\`$lib' is not a convenience library"
    23986462          fi
    23996463          continue
     
    24036467        # Get the name of the library we link against.
    24046468        linklib=
    2405         for l in $old_library $library_names; do
    2406           linklib="$l"
    2407         done
     6469        if test -n "$old_library" &&
     6470           { test "$prefer_static_libs" = yes ||
     6471             test "$prefer_static_libs,$installed" = "built,no"; }; then
     6472          linklib=$old_library
     6473        else
     6474          for l in $old_library $library_names; do
     6475            linklib="$l"
     6476          done
     6477        fi
    24086478        if test -z "$linklib"; then
    2409           $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
    2410           exit $EXIT_FAILURE
     6479          func_fatal_error "cannot find name of link library for \`$lib'"
    24116480        fi
    24126481
     
    24146483        if test "$pass" = dlopen; then
    24156484          if test -z "$libdir"; then
    2416             $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
    2417             exit $EXIT_FAILURE
     6485            func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
    24186486          fi
    24196487          if test -z "$dlname" ||
     
    24246492            # dependent libraries so libltdl's deplib preloader doesn't
    24256493            # bomb out in the load deplibs phase.
    2426             dlprefiles="$dlprefiles $lib $dependency_libs"
     6494            func_append dlprefiles " $lib $dependency_libs"
    24276495          else
    2428             newdlfiles="$newdlfiles $lib"
     6496            func_append newdlfiles " $lib"
    24296497          fi
    24306498          continue
     
    24376505          abs_ladir=`cd "$ladir" && pwd`
    24386506          if test -z "$abs_ladir"; then
    2439             $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
    2440             $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
     6507            func_warning "cannot determine absolute directory name of \`$ladir'"
     6508            func_warning "passing it literally to the linker, although it might fail"
    24416509            abs_ladir="$ladir"
    24426510          fi
    24436511          ;;
    24446512        esac
    2445         laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
     6513        func_basename "$lib"
     6514        laname="$func_basename_result"
    24466515
    24476516        # Find the relevant object directory and library name.
    24486517        if test "X$installed" = Xyes; then
    2449           if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
    2450             $echo "$modename: warning: library \`$lib' was moved." 1>&2
     6518          if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
     6519            func_warning "library \`$lib' was moved."
    24516520            dir="$ladir"
    24526521            absdir="$abs_ladir"
    24536522            libdir="$abs_ladir"
    24546523          else
    2455             dir="$libdir"
    2456             absdir="$libdir"
     6524            dir="$lt_sysroot$libdir"
     6525            absdir="$lt_sysroot$libdir"
    24576526          fi
    24586527          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
     
    24626531            absdir="$abs_ladir"
    24636532            # Remove this search path later
    2464             notinst_path="$notinst_path $abs_ladir"
     6533            func_append notinst_path " $abs_ladir"
    24656534          else
    24666535            dir="$ladir/$objdir"
    24676536            absdir="$abs_ladir/$objdir"
    24686537            # Remove this search path later
    2469             notinst_path="$notinst_path $abs_ladir"
     6538            func_append notinst_path " $abs_ladir"
    24706539          fi
    24716540        fi # $installed = yes
    2472         name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
     6541        func_stripname 'lib' '.la' "$laname"
     6542        name=$func_stripname_result
    24736543
    24746544        # This library was specified with -dlpreopen.
    24756545        if test "$pass" = dlpreopen; then
    2476           if test -z "$libdir"; then
    2477             $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
    2478             exit $EXIT_FAILURE
     6546          if test -z "$libdir" && test "$linkmode" = prog; then
     6547            func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
    24796548          fi
    2480           # Prefer using a static library (so that no silly _DYNAMIC symbols
    2481           # are required to link).
    2482           if test -n "$old_library"; then
    2483             newdlprefiles="$newdlprefiles $dir/$old_library"
    2484           # Otherwise, use the dlname, so that lt_dlopen finds it.
    2485           elif test -n "$dlname"; then
    2486             newdlprefiles="$newdlprefiles $dir/$dlname"
    2487           else
    2488             newdlprefiles="$newdlprefiles $dir/$linklib"
    2489           fi
     6549          case "$host" in
     6550            # special handling for platforms with PE-DLLs.
     6551            *cygwin* | *mingw* | *cegcc* )
     6552              # Linker will automatically link against shared library if both
     6553              # static and shared are present.  Therefore, ensure we extract
     6554              # symbols from the import library if a shared library is present
     6555              # (otherwise, the dlopen module name will be incorrect).  We do
     6556              # this by putting the import library name into $newdlprefiles.
     6557              # We recover the dlopen module name by 'saving' the la file
     6558              # name in a special purpose variable, and (later) extracting the
     6559              # dlname from the la file.
     6560              if test -n "$dlname"; then
     6561                func_tr_sh "$dir/$linklib"
     6562                eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
     6563                func_append newdlprefiles " $dir/$linklib"
     6564              else
     6565                func_append newdlprefiles " $dir/$old_library"
     6566                # Keep a list of preopened convenience libraries to check
     6567                # that they are being used correctly in the link pass.
     6568                test -z "$libdir" && \
     6569                  func_append dlpreconveniencelibs " $dir/$old_library"
     6570              fi
     6571            ;;
     6572            * )
     6573              # Prefer using a static library (so that no silly _DYNAMIC symbols
     6574              # are required to link).
     6575              if test -n "$old_library"; then
     6576                func_append newdlprefiles " $dir/$old_library"
     6577                # Keep a list of preopened convenience libraries to check
     6578                # that they are being used correctly in the link pass.
     6579                test -z "$libdir" && \
     6580                  func_append dlpreconveniencelibs " $dir/$old_library"
     6581              # Otherwise, use the dlname, so that lt_dlopen finds it.
     6582              elif test -n "$dlname"; then
     6583                func_append newdlprefiles " $dir/$dlname"
     6584              else
     6585                func_append newdlprefiles " $dir/$linklib"
     6586              fi
     6587            ;;
     6588          esac
    24906589        fi # $pass = dlpreopen
    24916590
     
    25056604
    25066605        if test "$linkmode" = prog && test "$pass" != link; then
    2507           newlib_search_path="$newlib_search_path $ladir"
     6606          func_append newlib_search_path " $ladir"
    25086607          deplibs="$lib $deplibs"
    25096608
     
    25176616          for deplib in $dependency_libs; do
    25186617            case $deplib in
    2519             -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
     6618            -L*) func_stripname '-L' '' "$deplib"
     6619                 func_resolve_sysroot "$func_stripname_result"
     6620                 func_append newlib_search_path " $func_resolve_sysroot_result"
     6621                 ;;
    25206622            esac
    25216623            # Need to link against all dependency_libs?
     
    25276629              newdependency_libs="$deplib $newdependency_libs"
    25286630            fi
    2529             if test "X$duplicate_deps" = "Xyes" ; then
     6631            if $opt_preserve_dup_deps ; then
    25306632              case "$tmp_libs " in
    2531               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
     6633              *" $deplib "*) func_append specialdeplibs " $deplib" ;;
    25326634              esac
    25336635            fi
    2534             tmp_libs="$tmp_libs $deplib"
     6636            func_append tmp_libs " $deplib"
    25356637          done # for deplib
    25366638          continue
     
    25396641        if test "$linkmode,$pass" = "prog,link"; then
    25406642          if test -n "$library_names" &&
    2541              { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
     6643             { { test "$prefer_static_libs" = no ||
     6644                 test "$prefer_static_libs,$installed" = "built,yes"; } ||
     6645               test -z "$old_library"; }; then
    25426646            # We need to hardcode the library path
    25436647            if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
    25446648              # Make sure the rpath contains only unique directories.
    2545               case "$temp_rpath " in
    2546               *" $dir "*) ;;
    2547               *" $absdir "*) ;;
    2548               *) temp_rpath="$temp_rpath $absdir" ;;
     6649              case "$temp_rpath:" in
     6650              *"$absdir:"*) ;;
     6651              *) func_append temp_rpath "$absdir:" ;;
    25496652              esac
    25506653            fi
     
    25586661              case "$compile_rpath " in
    25596662              *" $absdir "*) ;;
    2560               *) compile_rpath="$compile_rpath $absdir"
     6663              *) func_append compile_rpath " $absdir" ;;
    25616664              esac
    25626665              ;;
     
    25676670              case "$finalize_rpath " in
    25686671              *" $libdir "*) ;;
    2569               *) finalize_rpath="$finalize_rpath $libdir"
     6672              *) func_append finalize_rpath " $libdir" ;;
    25706673              esac
    25716674              ;;
     
    25846687        link_static=no # Whether the deplib will be linked statically
    25856688        use_static_libs=$prefer_static_libs
    2586         if test "$use_static_libs" = built && test "$installed" = yes ; then
     6689        if test "$use_static_libs" = built && test "$installed" = yes; then
    25876690          use_static_libs=no
    25886691        fi
    25896692        if test -n "$library_names" &&
    25906693           { test "$use_static_libs" = no || test -z "$old_library"; }; then
    2591           if test "$installed" = no; then
    2592             notinst_deplibs="$notinst_deplibs $lib"
    2593             need_relink=yes
    2594           fi
     6694          case $host in
     6695          *cygwin* | *mingw* | *cegcc*)
     6696              # No point in relinking DLLs because paths are not encoded
     6697              func_append notinst_deplibs " $lib"
     6698              need_relink=no
     6699            ;;
     6700          *)
     6701            if test "$installed" = no; then
     6702              func_append notinst_deplibs " $lib"
     6703              need_relink=yes
     6704            fi
     6705            ;;
     6706          esac
    25956707          # This is a shared library
    25966708
    2597           # Warn about portability, can't link against -module's on
    2598           # some systems (darwin)
    2599           if test "$shouldnotlink" = yes && test "$pass" = link ; then
    2600             $echo
     6709          # Warn about portability, can't link against -module's on some
     6710          # systems (darwin).  Don't bleat about dlopened modules though!
     6711          dlopenmodule=""
     6712          for dlpremoduletest in $dlprefiles; do
     6713            if test "X$dlpremoduletest" = "X$lib"; then
     6714              dlopenmodule="$dlpremoduletest"
     6715              break
     6716            fi
     6717          done
     6718          if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
     6719            echo
    26016720            if test "$linkmode" = prog; then
    2602               $echo "*** Warning: Linking the executable $output against the loadable module"
     6721              $ECHO "*** Warning: Linking the executable $output against the loadable module"
    26036722            else
    2604               $echo "*** Warning: Linking the shared library $output against the loadable module"
     6723              $ECHO "*** Warning: Linking the shared library $output against the loadable module"
    26056724            fi
    2606             $echo "*** $linklib is not portable!"
     6725            $ECHO "*** $linklib is not portable!"
    26076726          fi
    26086727          if test "$linkmode" = lib &&
     
    26166735              case "$compile_rpath " in
    26176736              *" $absdir "*) ;;
    2618               *) compile_rpath="$compile_rpath $absdir"
     6737              *) func_append compile_rpath " $absdir" ;;
    26196738              esac
    26206739              ;;
     
    26256744              case "$finalize_rpath " in
    26266745              *" $libdir "*) ;;
    2627               *) finalize_rpath="$finalize_rpath $libdir"
     6746              *) func_append finalize_rpath " $libdir" ;;
    26286747              esac
    26296748              ;;
     
    26346753            # figure out the soname
    26356754            set dummy $library_names
    2636             realname="$2"
    2637             shift; shift
    2638             libname=`eval \\$echo \"$libname_spec\"`
     6755            shift
     6756            realname="$1"
     6757            shift
     6758            libname=`eval "\\$ECHO \"$libname_spec\""`
    26396759            # use dlname if we got it. it's perfectly good, no?
    26406760            if test -n "$dlname"; then
     
    26436763              # bleh windows
    26446764              case $host in
    2645               *cygwin* | mingw*)
    2646                 major=`expr $current - $age`
     6765              *cygwin* | mingw* | *cegcc*)
     6766                func_arith $current - $age
     6767                major=$func_arith_result
    26476768                versuffix="-$major"
    26486769                ;;
     
    26556776            # Make a new name for the extract_expsyms_cmds to use
    26566777            soroot="$soname"
    2657             soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
    2658             newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
     6778            func_basename "$soroot"
     6779            soname="$func_basename_result"
     6780            func_stripname 'lib' '.dll' "$soname"
     6781            newlib=libimp-$func_stripname_result.a
    26596782
    26606783            # If the library has no export list, then create one now
    26616784            if test -f "$output_objdir/$soname-def"; then :
    26626785            else
    2663               $show "extracting exported symbol list from \`$soname'"
    2664               save_ifs="$IFS"; IFS='~'
    2665               cmds=$extract_expsyms_cmds
    2666               for cmd in $cmds; do
    2667                 IFS="$save_ifs"
    2668                 eval cmd=\"$cmd\"
    2669                 $show "$cmd"
    2670                 $run eval "$cmd" || exit $?
    2671               done
    2672               IFS="$save_ifs"
     6786              func_verbose "extracting exported symbol list from \`$soname'"
     6787              func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
    26736788            fi
    26746789
    26756790            # Create $newlib
    26766791            if test -f "$output_objdir/$newlib"; then :; else
    2677               $show "generating import library for \`$soname'"
    2678               save_ifs="$IFS"; IFS='~'
    2679               cmds=$old_archive_from_expsyms_cmds
    2680               for cmd in $cmds; do
    2681                 IFS="$save_ifs"
    2682                 eval cmd=\"$cmd\"
    2683                 $show "$cmd"
    2684                 $run eval "$cmd" || exit $?
    2685               done
    2686               IFS="$save_ifs"
     6792              func_verbose "generating import library for \`$soname'"
     6793              func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
    26876794            fi
    26886795            # make sure the library variables are pointing to the new library
     
    26916798          fi # test -n "$old_archive_from_expsyms_cmds"
    26926799
    2693           if test "$linkmode" = prog || test "$mode" != relink; then
     6800          if test "$linkmode" = prog || test "$opt_mode" != relink; then
    26946801            add_shlibpath=
    26956802            add_dir=
     
    27066813                    *-*-unixware7*) add_dir="-L$dir" ;;
    27076814                  *-*-darwin* )
    2708                     # if the lib is a module then we can not link against
    2709                     # it, someone is ignoring the new warnings I added
     6815                    # if the lib is a (non-dlopened) module then we can not
     6816                    # link against it, someone is ignoring the earlier warnings
    27106817                    if /usr/bin/file -L $add 2> /dev/null |
    2711                       $EGREP ": [^:]* bundle" >/dev/null ; then
    2712                       $echo "** Warning, lib $linklib is a module, not a shared library"
    2713                       if test -z "$old_library" ; then
    2714                         $echo
    2715                         $echo "** And there doesn't seem to be a static archive available"
    2716                         $echo "** The link will probably fail, sorry"
    2717                       else
    2718                         add="$dir/$old_library"
     6818                         $GREP ": [^:]* bundle" >/dev/null ; then
     6819                      if test "X$dlopenmodule" != "X$lib"; then
     6820                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
     6821                        if test -z "$old_library" ; then
     6822                          echo
     6823                          echo "*** And there doesn't seem to be a static archive available"
     6824                          echo "*** The link will probably fail, sorry"
     6825                        else
     6826                          add="$dir/$old_library"
     6827                        fi
     6828                      elif test -n "$old_library"; then
     6829                        add="$dir/$old_library"
    27196830                      fi
    27206831                    fi
     
    27346845              ;;
    27356846            relink)
    2736               if test "$hardcode_direct" = yes; then
     6847              if test "$hardcode_direct" = yes &&
     6848                 test "$hardcode_direct_absolute" = no; then
    27376849                add="$dir/$linklib"
    27386850              elif test "$hardcode_minus_L" = yes; then
    2739                 add_dir="-L$dir"
     6851                add_dir="-L$absdir"
    27406852                # Try looking first in the location we're being installed to.
    27416853                if test -n "$inst_prefix_dir"; then
    27426854                  case $libdir in
    27436855                    [\\/]*)
    2744                       add_dir="$add_dir -L$inst_prefix_dir$libdir"
     6856                      func_append add_dir " -L$inst_prefix_dir$libdir"
    27456857                      ;;
    27466858                  esac
     
    27586870
    27596871            if test "$lib_linked" != yes; then
    2760               $echo "$modename: configuration error: unsupported hardcode properties"
    2761               exit $EXIT_FAILURE
     6872              func_fatal_configuration "unsupported hardcode properties"
    27626873            fi
    27636874
     
    27656876              case :$compile_shlibpath: in
    27666877              *":$add_shlibpath:"*) ;;
    2767               *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
     6878              *) func_append compile_shlibpath "$add_shlibpath:" ;;
    27686879              esac
    27696880            fi
     
    27746885              test -n "$add_dir" && deplibs="$add_dir $deplibs"
    27756886              test -n "$add" && deplibs="$add $deplibs"
    2776               if test "$hardcode_direct" != yes && \
    2777                  test "$hardcode_minus_L" != yes && \
     6887              if test "$hardcode_direct" != yes &&
     6888                 test "$hardcode_minus_L" != yes &&
    27786889                 test "$hardcode_shlibpath_var" = yes; then
    27796890                case :$finalize_shlibpath: in
    27806891                *":$libdir:"*) ;;
    2781                 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
     6892                *) func_append finalize_shlibpath "$libdir:" ;;
    27826893                esac
    27836894              fi
     
    27856896          fi
    27866897
    2787           if test "$linkmode" = prog || test "$mode" = relink; then
     6898          if test "$linkmode" = prog || test "$opt_mode" = relink; then
    27886899            add_shlibpath=
    27896900            add_dir=
    27906901            add=
    27916902            # Finalize command for both is simple: just hardcode it.
    2792             if test "$hardcode_direct" = yes; then
     6903            if test "$hardcode_direct" = yes &&
     6904               test "$hardcode_direct_absolute" = no; then
    27936905              add="$libdir/$linklib"
    27946906            elif test "$hardcode_minus_L" = yes; then
     
    27986910              case :$finalize_shlibpath: in
    27996911              *":$libdir:"*) ;;
    2800               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
     6912              *) func_append finalize_shlibpath "$libdir:" ;;
    28016913              esac
    28026914              add="-l$name"
     
    28046916              if test -n "$inst_prefix_dir" &&
    28056917                 test -f "$inst_prefix_dir$libdir/$linklib" ; then
    2806                 add="$inst_prefix_dir$libdir/$linklib"
     6918                add="$inst_prefix_dir$libdir/$linklib"
    28076919              else
    2808                 add="$libdir/$linklib"
     6920                add="$libdir/$linklib"
    28096921              fi
    28106922            else
     
    28156927                case $libdir in
    28166928                  [\\/]*)
    2817                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
     6929                    func_append add_dir " -L$inst_prefix_dir$libdir"
    28186930                    ;;
    28196931                esac
     
    28506962            # Just print a warning and add the library to dependency_libs so
    28516963            # that the program can be linked against the static library.
    2852             $echo
    2853             $echo "*** Warning: This system can not link to static lib archive $lib."
    2854             $echo "*** I have the capability to make that library automatically link in when"
    2855             $echo "*** you link to this library.  But I can only do this if you have a"
    2856             $echo "*** shared version of the library, which you do not appear to have."
     6964            echo
     6965            $ECHO "*** Warning: This system can not link to static lib archive $lib."
     6966            echo "*** I have the capability to make that library automatically link in when"
     6967            echo "*** you link to this library.  But I can only do this if you have a"
     6968            echo "*** shared version of the library, which you do not appear to have."
    28576969            if test "$module" = yes; then
    2858               $echo "*** But as you try to build a module library, libtool will still create "
    2859               $echo "*** a static module, that should work as long as the dlopening application"
    2860               $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
     6970              echo "*** But as you try to build a module library, libtool will still create "
     6971              echo "*** a static module, that should work as long as the dlopening application"
     6972              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
    28616973              if test -z "$global_symbol_pipe"; then
    2862                 $echo
    2863                 $echo "*** However, this would only work if libtool was able to extract symbol"
    2864                 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
    2865                 $echo "*** not find such a program.  So, this module is probably useless."
    2866                 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
     6974                echo
     6975                echo "*** However, this would only work if libtool was able to extract symbol"
     6976                echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
     6977                echo "*** not find such a program.  So, this module is probably useless."
     6978                echo "*** \`nm' from GNU binutils and a full rebuild may help."
    28676979              fi
    28686980              if test "$build_old_libs" = no; then
     
    28887000            for libdir in $dependency_libs; do
    28897001              case $libdir in
    2890               -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
     7002              -R*) func_stripname '-R' '' "$libdir"
     7003                   temp_xrpath=$func_stripname_result
    28917004                   case " $xrpath " in
    28927005                   *" $temp_xrpath "*) ;;
    2893                    *) xrpath="$xrpath $temp_xrpath";;
     7006                   *) func_append xrpath " $temp_xrpath";;
    28947007                   esac;;
    2895               *) temp_deplibs="$temp_deplibs $libdir";;
     7008              *) func_append temp_deplibs " $libdir";;
    28967009              esac
    28977010            done
     
    28997012          fi
    29007013
    2901           newlib_search_path="$newlib_search_path $absdir"
     7014          func_append newlib_search_path " $absdir"
    29027015          # Link against this library
    29037016          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
     
    29067019          for deplib in $dependency_libs; do
    29077020            newdependency_libs="$deplib $newdependency_libs"
    2908             if test "X$duplicate_deps" = "Xyes" ; then
     7021            case $deplib in
     7022              -L*) func_stripname '-L' '' "$deplib"
     7023                   func_resolve_sysroot "$func_stripname_result";;
     7024              *) func_resolve_sysroot "$deplib" ;;
     7025            esac
     7026            if $opt_preserve_dup_deps ; then
    29097027              case "$tmp_libs " in
    2910               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
     7028              *" $func_resolve_sysroot_result "*)
     7029                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
    29117030              esac
    29127031            fi
    2913             tmp_libs="$tmp_libs $deplib"
     7032            func_append tmp_libs " $func_resolve_sysroot_result"
    29147033          done
    29157034
     
    29177036            # Add the search paths of all dependency libraries
    29187037            for deplib in $dependency_libs; do
     7038              path=
    29197039              case $deplib in
    29207040              -L*) path="$deplib" ;;
    29217041              *.la)
    2922                 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
    2923                 test "X$dir" = "X$deplib" && dir="."
     7042                func_resolve_sysroot "$deplib"
     7043                deplib=$func_resolve_sysroot_result
     7044                func_dirname "$deplib" "" "."
     7045                dir=$func_dirname_result
    29247046                # We need an absolute path.
    29257047                case $dir in
     
    29287050                  absdir=`cd "$dir" && pwd`
    29297051                  if test -z "$absdir"; then
    2930                     $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
     7052                    func_warning "cannot determine absolute directory name of \`$dir'"
    29317053                    absdir="$dir"
    29327054                  fi
    29337055                  ;;
    29347056                esac
    2935                 if grep "^installed=no" $deplib > /dev/null; then
    2936                   path="$absdir/$objdir"
    2937                 else
    2938                   eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
    2939                   if test -z "$libdir"; then
    2940                     $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
    2941                     exit $EXIT_FAILURE
    2942                   fi
    2943                   if test "$absdir" != "$libdir"; then
    2944                     $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
    2945                   fi
    2946                   path="$absdir"
    2947                 fi
    2948                 depdepl=
     7057                if $GREP "^installed=no" $deplib > /dev/null; then
    29497058                case $host in
    29507059                *-*-darwin*)
    2951                   # we do not want to link against static libs,
    2952                   # but need to link against shared
     7060                  depdepl=
    29537061                  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
    29547062                  if test -n "$deplibrary_names" ; then
     
    29567064                      depdepl=$tmp
    29577065                    done
    2958                     if test -f "$path/$depdepl" ; then
    2959                       depdepl="$path/$depdepl"
     7066                    if test -f "$absdir/$objdir/$depdepl" ; then
     7067                      depdepl="$absdir/$objdir/$depdepl"
     7068                      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
     7069                      if test -z "$darwin_install_name"; then
     7070                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
     7071                      fi
     7072                      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
     7073                      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
     7074                      path=
    29607075                    fi
    2961                     # do not add paths which are already there
    2962                     case " $newlib_search_path " in
    2963                     *" $path "*) ;;
    2964                     *) newlib_search_path="$newlib_search_path $path";;
    2965                     esac
    29667076                  fi
    2967                   path=""
    29687077                  ;;
    29697078                *)
    2970                   path="-L$path"
     7079                  path="-L$absdir/$objdir"
    29717080                  ;;
    29727081                esac
     7082                else
     7083                  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
     7084                  test -z "$libdir" && \
     7085                    func_fatal_error "\`$deplib' is not a valid libtool archive"
     7086                  test "$absdir" != "$libdir" && \
     7087                    func_warning "\`$deplib' seems to be moved"
     7088
     7089                  path="-L$absdir"
     7090                fi
    29737091                ;;
    2974               -l*)
    2975                 case $host in
    2976                 *-*-darwin*)
    2977                   # Again, we only want to link against shared libraries
    2978                   eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
    2979                   for tmp in $newlib_search_path ; do
    2980                     if test -f "$tmp/lib$tmp_libs.dylib" ; then
    2981                       eval depdepl="$tmp/lib$tmp_libs.dylib"
    2982                       break
    2983                     fi
    2984                   done
    2985                   path=""
    2986                   ;;
    2987                 *) continue ;;
    2988                 esac
    2989                 ;;
    2990               *) continue ;;
    29917092              esac
    29927093              case " $deplibs " in
     
    29947095              *) deplibs="$path $deplibs" ;;
    29957096              esac
    2996               case " $deplibs " in
    2997               *" $depdepl "*) ;;
    2998               *) deplibs="$depdepl $deplibs" ;;
    2999               esac
    30007097            done
    30017098          fi # link_all_deplibs != no
    30027099        fi # linkmode = lib
    30037100      done # for deplib in $libs
     7101      if test "$pass" = link; then
     7102        if test "$linkmode" = "prog"; then
     7103          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
     7104          finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
     7105        else
     7106          compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
     7107        fi
     7108      fi
    30047109      dependency_libs="$newdependency_libs"
    30057110      if test "$pass" = dlpreopen; then
     
    30167121            case "$lib_search_path " in
    30177122            *" $dir "*) ;;
    3018             *) lib_search_path="$lib_search_path $dir" ;;
     7123            *) func_append lib_search_path " $dir" ;;
    30197124            esac
    30207125          done
     
    30747179              case " $tmp_libs " in
    30757180              *" $deplib "*) ;;
    3076               *) tmp_libs="$tmp_libs $deplib" ;;
     7181              *) func_append tmp_libs " $deplib" ;;
    30777182              esac
    30787183              ;;
    3079             *) tmp_libs="$tmp_libs $deplib" ;;
     7184            *) func_append tmp_libs " $deplib" ;;
    30807185            esac
    30817186          done
     
    30937198        esac
    30947199        if test -n "$i" ; then
    3095           tmp_libs="$tmp_libs $i"
     7200          func_append tmp_libs " $i"
    30967201        fi
    30977202      done
     
    31007205    if test "$linkmode" = prog; then
    31017206      dlfiles="$newdlfiles"
     7207    fi
     7208    if test "$linkmode" = prog || test "$linkmode" = lib; then
    31027209      dlprefiles="$newdlprefiles"
    31037210    fi
     
    31057212    case $linkmode in
    31067213    oldlib)
    3107       if test -n "$deplibs"; then
    3108         $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
     7214      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
     7215        func_warning "\`-dlopen' is ignored for archives"
    31097216      fi
    31107217
    3111       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
    3112         $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
    3113       fi
    3114 
    3115       if test -n "$rpath"; then
    3116         $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
    3117       fi
    3118 
    3119       if test -n "$xrpath"; then
    3120         $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
    3121       fi
    3122 
    3123       if test -n "$vinfo"; then
    3124         $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
    3125       fi
    3126 
    3127       if test -n "$release"; then
    3128         $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
    3129       fi
    3130 
    3131       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
    3132         $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
    3133       fi
     7218      case " $deplibs" in
     7219      *\ -l* | *\ -L*)
     7220        func_warning "\`-l' and \`-L' are ignored for archives" ;;
     7221      esac
     7222
     7223      test -n "$rpath" && \
     7224        func_warning "\`-rpath' is ignored for archives"
     7225
     7226      test -n "$xrpath" && \
     7227        func_warning "\`-R' is ignored for archives"
     7228
     7229      test -n "$vinfo" && \
     7230        func_warning "\`-version-info/-version-number' is ignored for archives"
     7231
     7232      test -n "$release" && \
     7233        func_warning "\`-release' is ignored for archives"
     7234
     7235      test -n "$export_symbols$export_symbols_regex" && \
     7236        func_warning "\`-export-symbols' is ignored for archives"
    31347237
    31357238      # Now set the variables for building old libraries.
    31367239      build_libtool_libs=no
    31377240      oldlibs="$output"
    3138       objs="$objs$old_deplibs"
     7241      func_append objs "$old_deplibs"
    31397242      ;;
    31407243
     
    31437246      case $outputname in
    31447247      lib*)
    3145         name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
     7248        func_stripname 'lib' '.la' "$outputname"
     7249        name=$func_stripname_result
    31467250        eval shared_ext=\"$shrext_cmds\"
    31477251        eval libname=\"$libname_spec\"
    31487252        ;;
    31497253      *)
    3150         if test "$module" = no; then
    3151           $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
    3152           $echo "$help" 1>&2
    3153           exit $EXIT_FAILURE
    3154         fi
     7254        test "$module" = no && \
     7255          func_fatal_help "libtool library \`$output' must begin with \`lib'"
     7256
    31557257        if test "$need_lib_prefix" != no; then
    31567258          # Add the "lib" prefix for modules if required
    3157           name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
     7259          func_stripname '' '.la' "$outputname"
     7260          name=$func_stripname_result
    31587261          eval shared_ext=\"$shrext_cmds\"
    31597262          eval libname=\"$libname_spec\"
    31607263        else
    3161           libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
     7264          func_stripname '' '.la' "$outputname"
     7265          libname=$func_stripname_result
    31627266        fi
    31637267        ;;
     
    31667270      if test -n "$objs"; then
    31677271        if test "$deplibs_check_method" != pass_all; then
    3168           $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
    3169           exit $EXIT_FAILURE
     7272          func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
    31707273        else
    3171           $echo
    3172           $echo "*** Warning: Linking the shared library $output against the non-libtool"
    3173           $echo "*** objects $objs is not portable!"
    3174           libobjs="$libobjs $objs"
     7274          echo
     7275          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
     7276          $ECHO "*** objects $objs is not portable!"
     7277          func_append libobjs " $objs"
    31757278        fi
    31767279      fi
    31777280
    3178       if test "$dlself" != no; then
    3179         $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
    3180       fi
     7281      test "$dlself" != no && \
     7282        func_warning "\`-dlopen self' is ignored for libtool libraries"
    31817283
    31827284      set dummy $rpath
    3183       if test "$#" -gt 2; then
    3184         $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
    3185       fi
    3186       install_libdir="$2"
     7285      shift
     7286      test "$#" -gt 1 && \
     7287        func_warning "ignoring multiple \`-rpath's for a libtool library"
     7288
     7289      install_libdir="$1"
    31877290
    31887291      oldlibs=
     
    31987301        fi
    31997302
    3200         if test -n "$vinfo"; then
    3201           $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
    3202         fi
    3203 
    3204         if test -n "$release"; then
    3205           $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
    3206         fi
     7303        test -n "$vinfo" && \
     7304          func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
     7305
     7306        test -n "$release" && \
     7307          func_warning "\`-release' is ignored for convenience libraries"
    32077308      else
    32087309
     
    32107311        save_ifs="$IFS"; IFS=':'
    32117312        set dummy $vinfo 0 0 0
     7313        shift
    32127314        IFS="$save_ifs"
    32137315
    3214         if test -n "$8"; then
    3215           $echo "$modename: too many parameters to \`-version-info'" 1>&2
    3216           $echo "$help" 1>&2
    3217           exit $EXIT_FAILURE
    3218         fi
     7316        test -n "$7" && \
     7317          func_fatal_help "too many parameters to \`-version-info'"
    32197318
    32207319        # convert absolute version numbers to libtool ages
     
    32247323        case $vinfo_number in
    32257324        yes)
    3226           number_major="$2"
    3227           number_minor="$3"
    3228           number_revision="$4"
     7325          number_major="$1"
     7326          number_minor="$2"
     7327          number_revision="$3"
    32297328          #
    32307329          # There are really only two kinds -- those that
     
    32357334          #
    32367335          case $version_type in
    3237           darwin|linux|osf|windows)
    3238             current=`expr $number_major + $number_minor`
     7336          # correct linux to gnu/linux during the next big refactor
     7337          darwin|linux|osf|windows|none)
     7338            func_arith $number_major + $number_minor
     7339            current=$func_arith_result
    32397340            age="$number_minor"
    32407341            revision="$number_revision"
    32417342            ;;
    3242           freebsd-aout|freebsd-elf|sunos)
     7343          freebsd-aout|freebsd-elf|qnx|sunos)
    32437344            current="$number_major"
    32447345            revision="$number_minor"
     
    32467347            ;;
    32477348          irix|nonstopux)
    3248             current=`expr $number_major + $number_minor - 1`
     7349            func_arith $number_major + $number_minor
     7350            current=$func_arith_result
    32497351            age="$number_minor"
    32507352            revision="$number_minor"
     7353            lt_irix_increment=no
     7354            ;;
     7355          *)
     7356            func_fatal_configuration "$modename: unknown library version type \`$version_type'"
    32517357            ;;
    32527358          esac
    32537359          ;;
    32547360        no)
    3255           current="$2"
    3256           revision="$3"
    3257           age="$4"
     7361          current="$1"
     7362          revision="$2"
     7363          age="$3"
    32587364          ;;
    32597365        esac
     
    32637369        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]) ;;
    32647370        *)
    3265           $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
    3266           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
    3267           exit $EXIT_FAILURE
     7371          func_error "CURRENT \`$current' must be a nonnegative integer"
     7372          func_fatal_error "\`$vinfo' is not valid version information"
    32687373          ;;
    32697374        esac
     
    32727377        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]) ;;
    32737378        *)
    3274           $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
    3275           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
    3276           exit $EXIT_FAILURE
     7379          func_error "REVISION \`$revision' must be a nonnegative integer"
     7380          func_fatal_error "\`$vinfo' is not valid version information"
    32777381          ;;
    32787382        esac
     
    32817385        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]) ;;
    32827386        *)
    3283           $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
    3284           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
    3285           exit $EXIT_FAILURE
     7387          func_error "AGE \`$age' must be a nonnegative integer"
     7388          func_fatal_error "\`$vinfo' is not valid version information"
    32867389          ;;
    32877390        esac
    32887391
    32897392        if test "$age" -gt "$current"; then
    3290           $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
    3291           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
    3292           exit $EXIT_FAILURE
     7393          func_error "AGE \`$age' is greater than the current interface number \`$current'"
     7394          func_fatal_error "\`$vinfo' is not valid version information"
    32937395        fi
    32947396
     
    33037405          # Like Linux, but with the current version available in
    33047406          # verstring for coding it into the library header
    3305           major=.`expr $current - $age`
     7407          func_arith $current - $age
     7408          major=.$func_arith_result
    33067409          versuffix="$major.$age.$revision"
    33077410          # Darwin ld doesn't like 0 for these options...
    3308           minor_current=`expr $current + 1`
    3309           verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
     7411          func_arith $current + 1
     7412          minor_current=$func_arith_result
     7413          xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
     7414          verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
    33107415          ;;
    33117416
     
    33177422        freebsd-elf)
    33187423          major=".$current"
    3319           versuffix=".$current";
     7424          versuffix=".$current"
    33207425          ;;
    33217426
    33227427        irix | nonstopux)
    3323           major=`expr $current - $age + 1`
     7428          if test "X$lt_irix_increment" = "Xno"; then
     7429            func_arith $current - $age
     7430          else
     7431            func_arith $current - $age + 1
     7432          fi
     7433          major=$func_arith_result
    33247434
    33257435          case $version_type in
     
    33327442          loop=$revision
    33337443          while test "$loop" -ne 0; do
    3334             iface=`expr $revision - $loop`
    3335             loop=`expr $loop - 1`
     7444            func_arith $revision - $loop
     7445            iface=$func_arith_result
     7446            func_arith $loop - 1
     7447            loop=$func_arith_result
    33367448            verstring="$verstring_prefix$major.$iface:$verstring"
    33377449          done
     
    33427454          ;;
    33437455
    3344         linux)
    3345           major=.`expr $current - $age`
     7456        linux) # correct to gnu/linux during the next big refactor
     7457          func_arith $current - $age
     7458          major=.$func_arith_result
    33467459          versuffix="$major.$age.$revision"
    33477460          ;;
    33487461
    33497462        osf)
    3350           major=.`expr $current - $age`
     7463          func_arith $current - $age
     7464          major=.$func_arith_result
    33517465          versuffix=".$current.$age.$revision"
    33527466          verstring="$current.$age.$revision"
     
    33557469          loop=$age
    33567470          while test "$loop" -ne 0; do
    3357             iface=`expr $current - $loop`
    3358             loop=`expr $loop - 1`
     7471            func_arith $current - $loop
     7472            iface=$func_arith_result
     7473            func_arith $loop - 1
     7474            loop=$func_arith_result
    33597475            verstring="$verstring:${iface}.0"
    33607476          done
    33617477
    33627478          # Make executables depend on our current version.
    3363           verstring="$verstring:${current}.0"
     7479          func_append verstring ":${current}.0"
     7480          ;;
     7481
     7482        qnx)
     7483          major=".$current"
     7484          versuffix=".$current"
    33647485          ;;
    33657486
     
    33727493          # Use '-' rather than '.', since we only want one
    33737494          # extension on DOS 8.3 filesystems.
    3374           major=`expr $current - $age`
     7495          func_arith $current - $age
     7496          major=$func_arith_result
    33757497          versuffix="-$major"
    33767498          ;;
    33777499
    33787500        *)
    3379           $echo "$modename: unknown library version type \`$version_type'" 1>&2
    3380           $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
    3381           exit $EXIT_FAILURE
     7501          func_fatal_configuration "unknown library version type \`$version_type'"
    33827502          ;;
    33837503        esac
     
    34137533        if test "$allow_undefined" = yes; then
    34147534          if test "$allow_undefined_flag" = unsupported; then
    3415             $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
     7535            func_warning "undefined symbols not allowed in $host shared libraries"
    34167536            build_libtool_libs=no
    34177537            build_old_libs=yes
     
    34217541          allow_undefined_flag="$no_undefined_flag"
    34227542        fi
     7543
    34237544      fi
    34247545
    3425       if test "$mode" != relink; then
     7546      func_generate_dlsyms "$libname" "$libname" "yes"
     7547      func_append libobjs " $symfileobj"
     7548      test "X$libobjs" = "X " && libobjs=
     7549
     7550      if test "$opt_mode" != relink; then
    34267551        # Remove our outputs, but don't remove object files since they
    34277552        # may have been created when compiling PIC objects.
    34287553        removelist=
    3429         tempremovelist=`$echo "$output_objdir/*"`
     7554        tempremovelist=`$ECHO "$output_objdir/*"`
    34307555        for p in $tempremovelist; do
    34317556          case $p in
    3432             *.$objext)
     7557            *.$objext | *.gcno)
    34337558               ;;
    34347559            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
    34357560               if test "X$precious_files_regex" != "X"; then
    3436                  if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
    3437                 then
     7561                 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
     7562                then
    34387563                   continue
    34397564                 fi
    34407565               fi
    3441                removelist="$removelist $p"
     7566               func_append removelist " $p"
    34427567               ;;
    34437568            *) ;;
    34447569          esac
    34457570        done
    3446         if test -n "$removelist"; then
    3447           $show "${rm}r $removelist"
    3448           $run ${rm}r $removelist
    3449         fi
     7571        test -n "$removelist" && \
     7572          func_show_eval "${RM}r \$removelist"
    34507573      fi
    34517574
    34527575      # Now set the variables for building old libraries.
    34537576      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
    3454         oldlibs="$oldlibs $output_objdir/$libname.$libext"
     7577        func_append oldlibs " $output_objdir/$libname.$libext"
    34557578
    34567579        # Transform .lo files to .o files.
    3457         oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
     7580        oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
    34587581      fi
    34597582
    34607583      # Eliminate all temporary directories.
    3461       for path in $notinst_path; do
    3462         lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
    3463         deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
    3464         dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
    3465       done
     7584      #for path in $notinst_path; do
     7585      # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
     7586      # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
     7587      # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
     7588      #done
    34667589
    34677590      if test -n "$xrpath"; then
     
    34697592        temp_xrpath=
    34707593        for libdir in $xrpath; do
    3471           temp_xrpath="$temp_xrpath -R$libdir"
     7594          func_replace_sysroot "$libdir"
     7595          func_append temp_xrpath " -R$func_replace_sysroot_result"
    34727596          case "$finalize_rpath " in
    34737597          *" $libdir "*) ;;
    3474           *) finalize_rpath="$finalize_rpath $libdir" ;;
     7598          *) func_append finalize_rpath " $libdir" ;;
    34757599          esac
    34767600        done
     
    34867610        case " $dlprefiles $dlfiles " in
    34877611        *" $lib "*) ;;
    3488         *) dlfiles="$dlfiles $lib" ;;
     7612        *) func_append dlfiles " $lib" ;;
    34897613        esac
    34907614      done
     
    34967620        case "$dlprefiles " in
    34977621        *" $lib "*) ;;
    3498         *) dlprefiles="$dlprefiles $lib" ;;
     7622        *) func_append dlprefiles " $lib" ;;
    34997623        esac
    35007624      done
     
    35037627        if test -n "$rpath"; then
    35047628          case $host in
    3505           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
     7629          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
    35067630            # these systems don't actually have a c library (as such)!
    35077631            ;;
    35087632          *-*-rhapsody* | *-*-darwin1.[012])
    35097633            # Rhapsody C library is in the System framework
    3510             deplibs="$deplibs -framework System"
     7634            func_append deplibs " System.ltframework"
    35117635            ;;
    35127636          *-*-netbsd*)
     
    35227646            # Compiler inserts libc in the correct place for threads to work
    35237647            ;;
    3524           *)
     7648          *)
    35257649            # Add libc to deplibs on all other systems if necessary.
    35267650            if test "$build_libtool_need_lc" = "yes"; then
    3527               deplibs="$deplibs -lc"
     7651              func_append deplibs " -lc"
    35287652            fi
    35297653            ;;
     
    35597683          # against the deplibs as a proxy for the library.  Then we can check
    35607684          # whether they linked in statically or dynamically with ldd.
    3561           $rm conftest.c
     7685          $opt_dry_run || $RM conftest.c
    35627686          cat > conftest.c <<EOF
    35637687          int main() { return 0; }
    35647688EOF
    3565           $rm conftest
    3566           $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
    3567           if test "$?" -eq 0 ; then
     7689          $opt_dry_run || $RM conftest
     7690          if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
    35687691            ldd_output=`ldd conftest`
    35697692            for i in $deplibs; do
    3570               name=`expr $i : '-l\(.*\)'`
    3571               # If $name is empty we are operating on a -L argument.
    3572               if test "$name" != "" && test "$name" -ne "0"; then
     7693              case $i in
     7694              -l*)
     7695                func_stripname -l '' "$i"
     7696                name=$func_stripname_result
    35737697                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
    35747698                  case " $predeps $postdeps " in
    35757699                  *" $i "*)
    3576                     newdeplibs="$newdeplibs $i"
     7700                    func_append newdeplibs " $i"
    35777701                    i=""
    35787702                    ;;
    35797703                  esac
    3580                 fi
     7704                fi
    35817705                if test -n "$i" ; then
    3582                   libname=`eval \\$echo \"$libname_spec\"`
    3583                   deplib_matches=`eval \\$echo \"$library_names_spec\"`
    3584                   set dummy $deplib_matches
    3585                   deplib_match=$2
     7706                  libname=`eval "\\$ECHO \"$libname_spec\""`
     7707                  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
     7708                  set dummy $deplib_matches; shift
     7709                  deplib_match=$1
    35867710                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
    3587                     newdeplibs="$newdeplibs $i"
     7711                    func_append newdeplibs " $i"
    35887712                  else
    35897713                    droppeddeps=yes
    3590                     $echo
    3591                     $echo "*** Warning: dynamic linker does not accept needed library $i."
    3592                     $echo "*** I have the capability to make that library automatically link in when"
    3593                     $echo "*** you link to this library.  But I can only do this if you have a"
    3594                     $echo "*** shared version of the library, which I believe you do not have"
    3595                     $echo "*** because a test_compile did reveal that the linker did not use it for"
    3596                     $echo "*** its dynamic dependency list that programs get resolved with at runtime."
     7714                    echo
     7715                    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
     7716                    echo "*** I have the capability to make that library automatically link in when"
     7717                    echo "*** you link to this library.  But I can only do this if you have a"
     7718                    echo "*** shared version of the library, which I believe you do not have"
     7719                    echo "*** because a test_compile did reveal that the linker did not use it for"
     7720                    echo "*** its dynamic dependency list that programs get resolved with at runtime."
    35977721                  fi
    35987722                fi
    3599               else
    3600                 newdeplibs="$newdeplibs $i"
    3601               fi
     7723                ;;
     7724              *)
     7725                func_append newdeplibs " $i"
     7726                ;;
     7727              esac
    36027728            done
    36037729          else
     
    36057731            # the situation: Compile a separate program for each library.
    36067732            for i in $deplibs; do
    3607               name=`expr $i : '-l\(.*\)'`
    3608               # If $name is empty we are operating on a -L argument.
    3609               if test "$name" != "" && test "$name" != "0"; then
    3610                 $rm conftest
    3611                 $LTCC $LTCFLAGS -o conftest conftest.c $i
    3612                 # Did it work?
    3613                 if test "$?" -eq 0 ; then
     7733              case $i in
     7734              -l*)
     7735                func_stripname -l '' "$i"
     7736                name=$func_stripname_result
     7737                $opt_dry_run || $RM conftest
     7738                if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
    36147739                  ldd_output=`ldd conftest`
    36157740                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
    36167741                    case " $predeps $postdeps " in
    36177742                    *" $i "*)
    3618                       newdeplibs="$newdeplibs $i"
     7743                      func_append newdeplibs " $i"
    36197744                      i=""
    36207745                      ;;
     
    36227747                  fi
    36237748                  if test -n "$i" ; then
    3624                     libname=`eval \\$echo \"$libname_spec\"`
    3625                     deplib_matches=`eval \\$echo \"$library_names_spec\"`
    3626                     set dummy $deplib_matches
    3627                     deplib_match=$2
     7749                    libname=`eval "\\$ECHO \"$libname_spec\""`
     7750                    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
     7751                    set dummy $deplib_matches; shift
     7752                    deplib_match=$1
    36287753                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
    3629                       newdeplibs="$newdeplibs $i"
     7754                      func_append newdeplibs " $i"
    36307755                    else
    36317756                      droppeddeps=yes
    3632                       $echo
    3633                       $echo "*** Warning: dynamic linker does not accept needed library $i."
    3634                       $echo "*** I have the capability to make that library automatically link in when"
    3635                       $echo "*** you link to this library.  But I can only do this if you have a"
    3636                       $echo "*** shared version of the library, which you do not appear to have"
    3637                       $echo "*** because a test_compile did reveal that the linker did not use this one"
    3638                       $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
     7757                      echo
     7758                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
     7759                      echo "*** I have the capability to make that library automatically link in when"
     7760                      echo "*** you link to this library.  But I can only do this if you have a"
     7761                      echo "*** shared version of the library, which you do not appear to have"
     7762                      echo "*** because a test_compile did reveal that the linker did not use this one"
     7763                      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
    36397764                    fi
    36407765                  fi
    36417766                else
    36427767                  droppeddeps=yes
    3643                   $echo
    3644                   $echo "*** Warning!  Library $i is needed by this library but I was not able to"
    3645                   $echo "*** make it link in!  You will probably need to install it or some"
    3646                   $echo "*** library that it depends on before this library will be fully"
    3647                   $echo "*** functional.  Installing it before continuing would be even better."
     7768                  echo
     7769                  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
     7770                  echo "*** make it link in!  You will probably need to install it or some"
     7771                  echo "*** library that it depends on before this library will be fully"
     7772                  echo "*** functional.  Installing it before continuing would be even better."
    36487773                fi
    3649               else
    3650                 newdeplibs="$newdeplibs $i"
    3651               fi
     7774                ;;
     7775              *)
     7776                func_append newdeplibs " $i"
     7777                ;;
     7778              esac
    36527779            done
    36537780          fi
    36547781          ;;
    36557782        file_magic*)
    3656           set dummy $deplibs_check_method
    3657           file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
     7783          set dummy $deplibs_check_method; shift
     7784          file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
    36587785          for a_deplib in $deplibs; do
    3659             name=`expr $a_deplib : '-l\(.*\)'`
    3660             # If $name is empty we are operating on a -L argument.
    3661             if test "$name" != "" && test  "$name" != "0"; then
     7786            case $a_deplib in
     7787            -l*)
     7788              func_stripname -l '' "$a_deplib"
     7789              name=$func_stripname_result
    36627790              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
    36637791                case " $predeps $postdeps " in
    36647792                *" $a_deplib "*)
    3665                   newdeplibs="$newdeplibs $a_deplib"
     7793                  func_append newdeplibs " $a_deplib"
    36667794                  a_deplib=""
    36677795                  ;;
     
    36697797              fi
    36707798              if test -n "$a_deplib" ; then
    3671                 libname=`eval \\$echo \"$libname_spec\"`
     7799                libname=`eval "\\$ECHO \"$libname_spec\""`
     7800                if test -n "$file_magic_glob"; then
     7801                  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
     7802                else
     7803                  libnameglob=$libname
     7804                fi
     7805                test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
    36727806                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
    3673                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
     7807                  if test "$want_nocaseglob" = yes; then
     7808                    shopt -s nocaseglob
     7809                    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
     7810                    $nocaseglob
     7811                  else
     7812                    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
     7813                  fi
    36747814                  for potent_lib in $potential_libs; do
    36757815                      # Follow soft links.
    3676                       if ls -lLd "$potent_lib" 2>/dev/null \
    3677                          | grep " -> " >/dev/null; then
     7816                      if ls -lLd "$potent_lib" 2>/dev/null |
     7817                         $GREP " -> " >/dev/null; then
    36787818                        continue
    36797819                      fi
     
    36887828                        case $potliblink in
    36897829                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
    3690                         *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
     7830                        *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
    36917831                        esac
    36927832                      done
    3693                       # It is ok to link against an archive when
    3694                       # building a shared library.
    3695                       if $AR -t $potlib > /dev/null 2>&1; then
    3696                         newdeplibs="$newdeplibs $a_deplib"
    3697                         a_deplib=""
    3698                         break 2
    3699                       fi
    3700                       if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
    3701                          | ${SED} 10q \
    3702                          | $EGREP "$file_magic_regex" > /dev/null; then
    3703                         newdeplibs="$newdeplibs $a_deplib"
     7833                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
     7834                         $SED -e 10q |
     7835                         $EGREP "$file_magic_regex" > /dev/null; then
     7836                        func_append newdeplibs " $a_deplib"
    37047837                        a_deplib=""
    37057838                        break 2
     
    37107843              if test -n "$a_deplib" ; then
    37117844                droppeddeps=yes
    3712                 $echo
    3713                 $echo "*** Warning: linker path does not have real file for library $a_deplib."
    3714                 $echo "*** I have the capability to make that library automatically link in when"
    3715                 $echo "*** you link to this library.  But I can only do this if you have a"
    3716                 $echo "*** shared version of the library, which you do not appear to have"
    3717                 $echo "*** because I did check the linker path looking for a file starting"
     7845                echo
     7846                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
     7847                echo "*** I have the capability to make that library automatically link in when"
     7848                echo "*** you link to this library.  But I can only do this if you have a"
     7849                echo "*** shared version of the library, which you do not appear to have"
     7850                echo "*** because I did check the linker path looking for a file starting"
    37187851                if test -z "$potlib" ; then
    3719                   $echo "*** with $libname but no candidates were found. (...for file magic test)"
     7852                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
    37207853                else
    3721                   $echo "*** with $libname and none of the candidates passed a file format test"
    3722                   $echo "*** using a file magic. Last file checked: $potlib"
     7854                  $ECHO "*** with $libname and none of the candidates passed a file format test"
     7855                  $ECHO "*** using a file magic. Last file checked: $potlib"
    37237856                fi
    37247857              fi
    3725             else
     7858              ;;
     7859            *)
    37267860              # Add a -L argument.
    3727               newdeplibs="$newdeplibs $a_deplib"
    3728             fi
     7861              func_append newdeplibs " $a_deplib"
     7862              ;;
     7863            esac
    37297864          done # Gone through all deplibs.
    37307865          ;;
    37317866        match_pattern*)
    3732           set dummy $deplibs_check_method
    3733           match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
     7867          set dummy $deplibs_check_method; shift
     7868          match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
    37347869          for a_deplib in $deplibs; do
    3735             name=`expr $a_deplib : '-l\(.*\)'`
    3736             # If $name is empty we are operating on a -L argument.
    3737             if test -n "$name" && test "$name" != "0"; then
     7870            case $a_deplib in
     7871            -l*)
     7872              func_stripname -l '' "$a_deplib"
     7873              name=$func_stripname_result
    37387874              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
    37397875                case " $predeps $postdeps " in
    37407876                *" $a_deplib "*)
    3741                   newdeplibs="$newdeplibs $a_deplib"
     7877                  func_append newdeplibs " $a_deplib"
    37427878                  a_deplib=""
    37437879                  ;;
     
    37457881              fi
    37467882              if test -n "$a_deplib" ; then
    3747                 libname=`eval \\$echo \"$libname_spec\"`
     7883                libname=`eval "\\$ECHO \"$libname_spec\""`
    37487884                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
    37497885                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
    37507886                  for potent_lib in $potential_libs; do
    37517887                    potlib="$potent_lib" # see symlink-check above in file_magic test
    3752                     if eval $echo \"$potent_lib\" 2>/dev/null \
    3753                         | ${SED} 10q \
    3754                         | $EGREP "$match_pattern_regex" > /dev/null; then
    3755                       newdeplibs="$newdeplibs $a_deplib"
     7888                    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
     7889                       $EGREP "$match_pattern_regex" > /dev/null; then
     7890                      func_append newdeplibs " $a_deplib"
    37567891                      a_deplib=""
    37577892                      break 2
     
    37627897              if test -n "$a_deplib" ; then
    37637898                droppeddeps=yes
    3764                 $echo
    3765                 $echo "*** Warning: linker path does not have real file for library $a_deplib."
    3766                 $echo "*** I have the capability to make that library automatically link in when"
    3767                 $echo "*** you link to this library.  But I can only do this if you have a"
    3768                 $echo "*** shared version of the library, which you do not appear to have"
    3769                 $echo "*** because I did check the linker path looking for a file starting"
     7899                echo
     7900                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
     7901                echo "*** I have the capability to make that library automatically link in when"
     7902                echo "*** you link to this library.  But I can only do this if you have a"
     7903                echo "*** shared version of the library, which you do not appear to have"
     7904                echo "*** because I did check the linker path looking for a file starting"
    37707905                if test -z "$potlib" ; then
    3771                   $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
     7906                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
    37727907                else
    3773                   $echo "*** with $libname and none of the candidates passed a file format test"
    3774                   $echo "*** using a regex pattern. Last file checked: $potlib"
     7908                  $ECHO "*** with $libname and none of the candidates passed a file format test"
     7909                  $ECHO "*** using a regex pattern. Last file checked: $potlib"
    37757910                fi
    37767911              fi
    3777             else
     7912              ;;
     7913            *)
    37787914              # Add a -L argument.
    3779               newdeplibs="$newdeplibs $a_deplib"
    3780             fi
     7915              func_append newdeplibs " $a_deplib"
     7916              ;;
     7917            esac
    37817918          done # Gone through all deplibs.
    37827919          ;;
    37837920        none | unknown | *)
    37847921          newdeplibs=""
    3785           tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
    3786             -e 's/ -[LR][^ ]*//g'`
     7922          tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
    37877923          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
    37887924            for i in $predeps $postdeps ; do
    37897925              # can't use Xsed below, because $i might contain '/'
    3790               tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
     7926              tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
    37917927            done
    37927928          fi
    3793           if $echo "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' \
    3794             | grep . >/dev/null; then
    3795             $echo
     7929          case $tmp_deplibs in
     7930          *[!\  \ ]*)
     7931            echo
    37967932            if test "X$deplibs_check_method" = "Xnone"; then
    3797               $echo "*** Warning: inter-library dependencies are not supported in this platform."
     7933              echo "*** Warning: inter-library dependencies are not supported in this platform."
    37987934            else
    3799               $echo "*** Warning: inter-library dependencies are not known to be supported."
     7935              echo "*** Warning: inter-library dependencies are not known to be supported."
    38007936            fi
    3801             $echo "*** All declared inter-library dependencies are being dropped."
     7937            echo "*** All declared inter-library dependencies are being dropped."
    38027938            droppeddeps=yes
    3803           fi
     7939            ;;
     7940          esac
    38047941          ;;
    38057942        esac
     
    38127949        case $host in
    38137950        *-*-rhapsody* | *-*-darwin1.[012])
    3814           # On Rhapsody replace the C library is the System framework
    3815           newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
     7951          # On Rhapsody replace the C library with the System framework
     7952          newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
    38167953          ;;
    38177954        esac
     
    38197956        if test "$droppeddeps" = yes; then
    38207957          if test "$module" = yes; then
    3821             $echo
    3822             $echo "*** Warning: libtool could not satisfy all declared inter-library"
    3823             $echo "*** dependencies of module $libname.  Therefore, libtool will create"
    3824             $echo "*** a static module, that should work as long as the dlopening"
    3825             $echo "*** application is linked with the -dlopen flag."
     7958            echo
     7959            echo "*** Warning: libtool could not satisfy all declared inter-library"
     7960            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
     7961            echo "*** a static module, that should work as long as the dlopening"
     7962            echo "*** application is linked with the -dlopen flag."
    38267963            if test -z "$global_symbol_pipe"; then
    3827               $echo
    3828               $echo "*** However, this would only work if libtool was able to extract symbol"
    3829               $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
    3830               $echo "*** not find such a program.  So, this module is probably useless."
    3831               $echo "*** \`nm' from GNU binutils and a full rebuild may help."
     7964              echo
     7965              echo "*** However, this would only work if libtool was able to extract symbol"
     7966              echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
     7967              echo "*** not find such a program.  So, this module is probably useless."
     7968              echo "*** \`nm' from GNU binutils and a full rebuild may help."
    38327969            fi
    38337970            if test "$build_old_libs" = no; then
     
    38397976            fi
    38407977          else
    3841             $echo "*** The inter-library dependencies that have been dropped here will be"
    3842             $echo "*** automatically added whenever a program is linked with this library"
    3843             $echo "*** or is declared to -dlopen it."
     7978            echo "*** The inter-library dependencies that have been dropped here will be"
     7979            echo "*** automatically added whenever a program is linked with this library"
     7980            echo "*** or is declared to -dlopen it."
    38447981
    38457982            if test "$allow_undefined" = no; then
    3846               $echo
    3847               $echo "*** Since this library must not contain undefined symbols,"
    3848               $echo "*** because either the platform does not support them or"
    3849               $echo "*** it was explicitly requested with -no-undefined,"
    3850               $echo "*** libtool will only create a static version of it."
     7983              echo
     7984              echo "*** Since this library must not contain undefined symbols,"
     7985              echo "*** because either the platform does not support them or"
     7986              echo "*** it was explicitly requested with -no-undefined,"
     7987              echo "*** libtool will only create a static version of it."
    38517988              if test "$build_old_libs" = no; then
    38527989                oldlibs="$output_objdir/$libname.$libext"
     
    38627999        deplibs=$newdeplibs
    38638000      fi
    3864 
     8001      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
     8002      case $host in
     8003        *-*-darwin*)
     8004          newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
     8005          new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
     8006          deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
     8007          ;;
     8008      esac
    38658009
    38668010      # move library search paths that coincide with paths to not yet
     
    38738017          case " $deplibs " in
    38748018          *" -L$path/$objdir "*)
    3875             new_libs="$new_libs -L$path/$objdir" ;;
     8019            func_append new_libs " -L$path/$objdir" ;;
    38768020          esac
    38778021          ;;
     
    38838027          case " $new_libs " in
    38848028          *" $deplib "*) ;;
    3885           *) new_libs="$new_libs $deplib" ;;
     8029          *) func_append new_libs " $deplib" ;;
    38868030          esac
    38878031          ;;
    3888         *) new_libs="$new_libs $deplib" ;;
     8032        *) func_append new_libs " $deplib" ;;
    38898033        esac
    38908034      done
    38918035      deplibs="$new_libs"
    3892 
    38938036
    38948037      # All the library-specific variables (install_libdir is set above).
     
    38998042      # Test again, we may have decided not to build it any more
    39008043      if test "$build_libtool_libs" = yes; then
     8044        # Remove ${wl} instances when linking with ld.
     8045        # FIXME: should test the right _cmds variable.
     8046        case $archive_cmds in
     8047          *\$LD\ *) wl= ;;
     8048        esac
    39018049        if test "$hardcode_into_libs" = yes; then
    39028050          # Hardcode the library paths
     
    39048052          dep_rpath=
    39058053          rpath="$finalize_rpath"
    3906           test "$mode" != relink && rpath="$compile_rpath$rpath"
     8054          test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
    39078055          for libdir in $rpath; do
    39088056            if test -n "$hardcode_libdir_flag_spec"; then
    39098057              if test -n "$hardcode_libdir_separator"; then
     8058                func_replace_sysroot "$libdir"
     8059                libdir=$func_replace_sysroot_result
    39108060                if test -z "$hardcode_libdirs"; then
    39118061                  hardcode_libdirs="$libdir"
     
    39168066                    ;;
    39178067                  *)
    3918                     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
     8068                    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
    39198069                    ;;
    39208070                  esac
     
    39228072              else
    39238073                eval flag=\"$hardcode_libdir_flag_spec\"
    3924                 dep_rpath="$dep_rpath $flag"
     8074                func_append dep_rpath " $flag"
    39258075              fi
    39268076            elif test -n "$runpath_var"; then
    39278077              case "$perm_rpath " in
    39288078              *" $libdir "*) ;;
    3929               *) perm_rpath="$perm_rpath $libdir" ;;
     8079              *) func_append perm_rpath " $libdir" ;;
    39308080              esac
    39318081            fi
     
    39358085             test -n "$hardcode_libdirs"; then
    39368086            libdir="$hardcode_libdirs"
    3937             if test -n "$hardcode_libdir_flag_spec_ld"; then
    3938               eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
    3939             else
    3940               eval dep_rpath=\"$hardcode_libdir_flag_spec\"
    3941             fi
     8087            eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
    39428088          fi
    39438089          if test -n "$runpath_var" && test -n "$perm_rpath"; then
     
    39458091            rpath=
    39468092            for dir in $perm_rpath; do
    3947               rpath="$rpath$dir:"
     8093              func_append rpath "$dir:"
    39488094            done
    39498095            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
     
    39538099
    39548100        shlibpath="$finalize_shlibpath"
    3955         test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
     8101        test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
    39568102        if test -n "$shlibpath"; then
    39578103          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
     
    39628108        eval library_names=\"$library_names_spec\"
    39638109        set dummy $library_names
    3964         realname="$2"
    3965         shift; shift
     8110        shift
     8111        realname="$1"
     8112        shift
    39668113
    39678114        if test -n "$soname_spec"; then
     
    39788125        for link
    39798126        do
    3980           linknames="$linknames $link"
     8127          func_append linknames " $link"
    39818128        done
    39828129
    39838130        # Use standard objects if they are pic
    3984         test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
     8131        test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
     8132        test "X$libobjs" = "X " && libobjs=
     8133
     8134        delfiles=
     8135        if test -n "$export_symbols" && test -n "$include_expsyms"; then
     8136          $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
     8137          export_symbols="$output_objdir/$libname.uexp"
     8138          func_append delfiles " $export_symbols"
     8139        fi
     8140
     8141        orig_export_symbols=
     8142        case $host_os in
     8143        cygwin* | mingw* | cegcc*)
     8144          if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
     8145            # exporting using user supplied symfile
     8146            if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
     8147              # and it's NOT already a .def file. Must figure out
     8148              # which of the given symbols are data symbols and tag
     8149              # them as such. So, trigger use of export_symbols_cmds.
     8150              # export_symbols gets reassigned inside the "prepare
     8151              # the list of exported symbols" if statement, so the
     8152              # include_expsyms logic still works.
     8153              orig_export_symbols="$export_symbols"
     8154              export_symbols=
     8155              always_export_symbols=yes
     8156            fi
     8157          fi
     8158          ;;
     8159        esac
    39858160
    39868161        # Prepare the list of exported symbols
    39878162        if test -z "$export_symbols"; then
    39888163          if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
    3989             $show "generating symbol list for \`$libname.la'"
     8164            func_verbose "generating symbol list for \`$libname.la'"
    39908165            export_symbols="$output_objdir/$libname.exp"
    3991             $run $rm $export_symbols
     8166            $opt_dry_run || $RM $export_symbols
    39928167            cmds=$export_symbols_cmds
    39938168            save_ifs="$IFS"; IFS='~'
    3994             for cmd in $cmds; do
     8169            for cmd1 in $cmds; do
    39958170              IFS="$save_ifs"
    3996               eval cmd=\"$cmd\"
    3997               if len=`expr "X$cmd" : ".*"` &&
    3998                test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
    3999                 $show "$cmd"
    4000                 $run eval "$cmd" || exit $?
    4001                 skipped_export=false
     8171              # Take the normal branch if the nm_file_list_spec branch
     8172              # doesn't work or if tool conversion is not needed.
     8173              case $nm_file_list_spec~$to_tool_file_cmd in
     8174                *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
     8175                  try_normal_branch=yes
     8176                  eval cmd=\"$cmd1\"
     8177                  func_len " $cmd"
     8178                  len=$func_len_result
     8179                  ;;
     8180                *)
     8181                  try_normal_branch=no
     8182                  ;;
     8183              esac
     8184              if test "$try_normal_branch" = yes \
     8185                 && { test "$len" -lt "$max_cmd_len" \
     8186                      || test "$max_cmd_len" -le -1; }
     8187              then
     8188                func_show_eval "$cmd" 'exit $?'
     8189                skipped_export=false
     8190              elif test -n "$nm_file_list_spec"; then
     8191                func_basename "$output"
     8192                output_la=$func_basename_result
     8193                save_libobjs=$libobjs
     8194                save_output=$output
     8195                output=${output_objdir}/${output_la}.nm
     8196                func_to_tool_file "$output"
     8197                libobjs=$nm_file_list_spec$func_to_tool_file_result
     8198                func_append delfiles " $output"
     8199                func_verbose "creating $NM input file list: $output"
     8200                for obj in $save_libobjs; do
     8201                  func_to_tool_file "$obj"
     8202                  $ECHO "$func_to_tool_file_result"
     8203                done > "$output"
     8204                eval cmd=\"$cmd1\"
     8205                func_show_eval "$cmd" 'exit $?'
     8206                output=$save_output
     8207                libobjs=$save_libobjs
     8208                skipped_export=false
    40028209              else
    4003                 # The command line is too long to execute in one step.
    4004                 $show "using reloadable object file for export list..."
    4005                 skipped_export=:
     8210                # The command line is too long to execute in one step.
     8211                func_verbose "using reloadable object file for export list..."
     8212                skipped_export=:
    40068213                # Break out early, otherwise skipped_export may be
    40078214                # set to false by a later but shorter cmd.
     
    40108217            done
    40118218            IFS="$save_ifs"
    4012             if test -n "$export_symbols_regex"; then
    4013               $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
    4014               $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
    4015               $show "$mv \"${export_symbols}T\" \"$export_symbols\""
    4016               $run eval '$mv "${export_symbols}T" "$export_symbols"'
     8219            if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
     8220              func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
     8221              func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
    40178222            fi
    40188223          fi
     
    40208225
    40218226        if test -n "$export_symbols" && test -n "$include_expsyms"; then
    4022           $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
     8227          tmp_export_symbols="$export_symbols"
     8228          test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
     8229          $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
     8230        fi
     8231
     8232        if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
     8233          # The given exports_symbols file has to be filtered, so filter it.
     8234          func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
     8235          # FIXME: $output_objdir/$libname.filter potentially contains lots of
     8236          # 's' commands which not all seds can handle. GNU sed should be fine
     8237          # though. Also, the filter scales superlinearly with the number of
     8238          # global variables. join(1) would be nice here, but unfortunately
     8239          # isn't a blessed tool.
     8240          $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
     8241          func_append delfiles " $export_symbols $output_objdir/$libname.filter"
     8242          export_symbols=$output_objdir/$libname.def
     8243          $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
    40238244        fi
    40248245
    40258246        tmp_deplibs=
    40268247        for test_deplib in $deplibs; do
    4027                 case " $convenience " in
    4028                 *" $test_deplib "*) ;;
    4029                 *)
    4030                         tmp_deplibs="$tmp_deplibs $test_deplib"
    4031                         ;;
    4032                 esac
     8248          case " $convenience " in
     8249          *" $test_deplib "*) ;;
     8250          *)
     8251            func_append tmp_deplibs " $test_deplib"
     8252            ;;
     8253          esac
    40338254        done
    40348255        deplibs="$tmp_deplibs"
    40358256
    40368257        if test -n "$convenience"; then
     8258          if test -n "$whole_archive_flag_spec" &&
     8259            test "$compiler_needs_object" = yes &&
     8260            test -z "$libobjs"; then
     8261            # extract the archives, so we have objects to list.
     8262            # TODO: could optimize this to just extract one archive.
     8263            whole_archive_flag_spec=
     8264          fi
    40378265          if test -n "$whole_archive_flag_spec"; then
    40388266            save_libobjs=$libobjs
    40398267            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
     8268            test "X$libobjs" = "X " && libobjs=
    40408269          else
    40418270            gentop="$output_objdir/${outputname}x"
    4042             generated="$generated $gentop"
     8271            func_append generated " $gentop"
    40438272
    40448273            func_extract_archives $gentop $convenience
    4045             libobjs="$libobjs $func_extract_archives_result"
     8274            func_append libobjs " $func_extract_archives_result"
     8275            test "X$libobjs" = "X " && libobjs=
    40468276          fi
    40478277        fi
    4048        
     8278
    40498279        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
    40508280          eval flag=\"$thread_safe_flag_spec\"
    4051           linker_flags="$linker_flags $flag"
     8281          func_append linker_flags " $flag"
    40528282        fi
    40538283
    40548284        # Make a backup of the uninstalled library when relinking
    4055         if test "$mode" = relink; then
    4056           $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
     8285        if test "$opt_mode" = relink; then
     8286          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
    40578287        fi
    40588288
     
    40678297          fi
    40688298        else
    4069         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
    4070           eval test_cmds=\"$archive_expsym_cmds\"
    4071           cmds=$archive_expsym_cmds
    4072         else
    4073           eval test_cmds=\"$archive_cmds\"
    4074           cmds=$archive_cmds
     8299          if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
     8300            eval test_cmds=\"$archive_expsym_cmds\"
     8301            cmds=$archive_expsym_cmds
     8302          else
     8303            eval test_cmds=\"$archive_cmds\"
     8304            cmds=$archive_cmds
    40758305          fi
    40768306        fi
    40778307
    40788308        if test "X$skipped_export" != "X:" &&
    4079            len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
    4080            test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
     8309           func_len " $test_cmds" &&
     8310           len=$func_len_result &&
     8311           test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
    40818312          :
    40828313        else
    4083           # The command line is too long to link in one step, link piecewise.
    4084           $echo "creating reloadable object files..."
     8314          # The command line is too long to link in one step, link piecewise
     8315          # or, if using GNU ld and skipped_export is not :, use a linker
     8316          # script.
    40858317
    40868318          # Save the value of $output and $libobjs because we want to
     
    40968328          fi
    40978329          save_output=$output
    4098           output_la=`$echo "X$output" | $Xsed -e "$basename"`
     8330          func_basename "$output"
     8331          output_la=$func_basename_result
    40998332
    41008333          # Clear the reloadable object creation command queue and
     
    41038336          concat_cmds=
    41048337          objlist=
    4105           delfiles=
    41068338          last_robj=
    41078339          k=1
    4108           output=$output_objdir/$output_la-${k}.$objext
    4109           # Loop over the list of objects to be linked.
    4110           for obj in $save_libobjs
    4111           do
    4112             eval test_cmds=\"$reload_cmds $objlist $last_robj\"
    4113             if test "X$objlist" = X ||
    4114                { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
    4115                  test "$len" -le "$max_cmd_len"; }; then
    4116               objlist="$objlist $obj"
     8340
     8341          if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
     8342            output=${output_objdir}/${output_la}.lnkscript
     8343            func_verbose "creating GNU ld script: $output"
     8344            echo 'INPUT (' > $output
     8345            for obj in $save_libobjs
     8346            do
     8347              func_to_tool_file "$obj"
     8348              $ECHO "$func_to_tool_file_result" >> $output
     8349            done
     8350            echo ')' >> $output
     8351            func_append delfiles " $output"
     8352            func_to_tool_file "$output"
     8353            output=$func_to_tool_file_result
     8354          elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
     8355            output=${output_objdir}/${output_la}.lnk
     8356            func_verbose "creating linker input file list: $output"
     8357            : > $output
     8358            set x $save_libobjs
     8359            shift
     8360            firstobj=
     8361            if test "$compiler_needs_object" = yes; then
     8362              firstobj="$1 "
     8363              shift
     8364            fi
     8365            for obj
     8366            do
     8367              func_to_tool_file "$obj"
     8368              $ECHO "$func_to_tool_file_result" >> $output
     8369            done
     8370            func_append delfiles " $output"
     8371            func_to_tool_file "$output"
     8372            output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
     8373          else
     8374            if test -n "$save_libobjs"; then
     8375              func_verbose "creating reloadable object files..."
     8376              output=$output_objdir/$output_la-${k}.$objext
     8377              eval test_cmds=\"$reload_cmds\"
     8378              func_len " $test_cmds"
     8379              len0=$func_len_result
     8380              len=$len0
     8381
     8382              # Loop over the list of objects to be linked.
     8383              for obj in $save_libobjs
     8384              do
     8385                func_len " $obj"
     8386                func_arith $len + $func_len_result
     8387                len=$func_arith_result
     8388                if test "X$objlist" = X ||
     8389                   test "$len" -lt "$max_cmd_len"; then
     8390                  func_append objlist " $obj"
     8391                else
     8392                  # The command $test_cmds is almost too long, add a
     8393                  # command to the queue.
     8394                  if test "$k" -eq 1 ; then
     8395                    # The first file doesn't have a previous command to add.
     8396                    reload_objs=$objlist
     8397                    eval concat_cmds=\"$reload_cmds\"
     8398                  else
     8399                    # All subsequent reloadable object files will link in
     8400                    # the last one created.
     8401                    reload_objs="$objlist $last_robj"
     8402                    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
     8403                  fi
     8404                  last_robj=$output_objdir/$output_la-${k}.$objext
     8405                  func_arith $k + 1
     8406                  k=$func_arith_result
     8407                  output=$output_objdir/$output_la-${k}.$objext
     8408                  objlist=" $obj"
     8409                  func_len " $last_robj"
     8410                  func_arith $len0 + $func_len_result
     8411                  len=$func_arith_result
     8412                fi
     8413              done
     8414              # Handle the remaining objects by creating one last
     8415              # reloadable object file.  All subsequent reloadable object
     8416              # files will link in the last one created.
     8417              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
     8418              reload_objs="$objlist $last_robj"
     8419              eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
     8420              if test -n "$last_robj"; then
     8421                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
     8422              fi
     8423              func_append delfiles " $output"
     8424
    41178425            else
    4118               # The command $test_cmds is almost too long, add a
    4119               # command to the queue.
    4120               if test "$k" -eq 1 ; then
    4121                 # The first file doesn't have a previous command to add.
    4122                 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
    4123               else
    4124                 # All subsequent reloadable object files will link in
    4125                 # the last one created.
    4126                 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
     8426              output=
     8427            fi
     8428
     8429            if ${skipped_export-false}; then
     8430              func_verbose "generating symbol list for \`$libname.la'"
     8431              export_symbols="$output_objdir/$libname.exp"
     8432              $opt_dry_run || $RM $export_symbols
     8433              libobjs=$output
     8434              # Append the command to create the export file.
     8435              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
     8436              eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
     8437              if test -n "$last_robj"; then
     8438                eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
    41278439              fi
    4128               last_robj=$output_objdir/$output_la-${k}.$objext
    4129               k=`expr $k + 1`
    4130               output=$output_objdir/$output_la-${k}.$objext
    4131               objlist=$obj
    4132               len=1
    41338440            fi
    4134           done
    4135           # Handle the remaining objects by creating one last
    4136           # reloadable object file.  All subsequent reloadable object
    4137           # files will link in the last one created.
    4138           test -z "$concat_cmds" || concat_cmds=$concat_cmds~
    4139           eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
    4140 
    4141           if ${skipped_export-false}; then
    4142             $show "generating symbol list for \`$libname.la'"
    4143             export_symbols="$output_objdir/$libname.exp"
    4144             $run $rm $export_symbols
    4145             libobjs=$output
    4146             # Append the command to create the export file.
    4147             eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
    4148           fi
    4149 
    4150           # Set up a command to remove the reloadable object files
    4151           # after they are used.
    4152           i=0
    4153           while test "$i" -lt "$k"
    4154           do
    4155             i=`expr $i + 1`
    4156             delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
    4157           done
    4158 
    4159           $echo "creating a temporary reloadable object file: $output"
    4160 
    4161           # Loop through the commands generated above and execute them.
    4162           save_ifs="$IFS"; IFS='~'
    4163           for cmd in $concat_cmds; do
     8441
     8442            test -n "$save_libobjs" &&
     8443              func_verbose "creating a temporary reloadable object file: $output"
     8444
     8445            # Loop through the commands generated above and execute them.
     8446            save_ifs="$IFS"; IFS='~'
     8447            for cmd in $concat_cmds; do
     8448              IFS="$save_ifs"
     8449              $opt_silent || {
     8450                  func_quote_for_expand "$cmd"
     8451                  eval "func_echo $func_quote_for_expand_result"
     8452              }
     8453              $opt_dry_run || eval "$cmd" || {
     8454                lt_exit=$?
     8455
     8456                # Restore the uninstalled library and exit
     8457                if test "$opt_mode" = relink; then
     8458                  ( cd "$output_objdir" && \
     8459                    $RM "${realname}T" && \
     8460                    $MV "${realname}U" "$realname" )
     8461                fi
     8462
     8463                exit $lt_exit
     8464              }
     8465            done
    41648466            IFS="$save_ifs"
    4165             $show "$cmd"
    4166             $run eval "$cmd" || exit $?
    4167           done
    4168           IFS="$save_ifs"
     8467
     8468            if test -n "$export_symbols_regex" && ${skipped_export-false}; then
     8469              func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
     8470              func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
     8471            fi
     8472          fi
     8473
     8474          if ${skipped_export-false}; then
     8475            if test -n "$export_symbols" && test -n "$include_expsyms"; then
     8476              tmp_export_symbols="$export_symbols"
     8477              test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
     8478              $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
     8479            fi
     8480
     8481            if test -n "$orig_export_symbols"; then
     8482              # The given exports_symbols file has to be filtered, so filter it.
     8483              func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
     8484              # FIXME: $output_objdir/$libname.filter potentially contains lots of
     8485              # 's' commands which not all seds can handle. GNU sed should be fine
     8486              # though. Also, the filter scales superlinearly with the number of
     8487              # global variables. join(1) would be nice here, but unfortunately
     8488              # isn't a blessed tool.
     8489              $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
     8490              func_append delfiles " $export_symbols $output_objdir/$libname.filter"
     8491              export_symbols=$output_objdir/$libname.def
     8492              $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
     8493            fi
     8494          fi
    41698495
    41708496          libobjs=$output
     
    41748500          if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
    41758501            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
     8502            test "X$libobjs" = "X " && libobjs=
    41768503          fi
    41778504          # Expand the library linking commands again to reset the
     
    41868513            fi
    41878514          else
    4188           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
    4189             cmds=$archive_expsym_cmds
    4190           else
    4191             cmds=$archive_cmds
     8515            if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
     8516              cmds=$archive_expsym_cmds
     8517            else
     8518              cmds=$archive_cmds
    41928519            fi
    41938520          fi
    4194 
    4195           # Append the command to remove the reloadable object files
    4196           # to the just-reset $cmds.
    4197           eval cmds=\"\$cmds~\$rm $delfiles\"
    41988521        fi
     8522
     8523        if test -n "$delfiles"; then
     8524          # Append the command to remove temporary files to $cmds.
     8525          eval cmds=\"\$cmds~\$RM $delfiles\"
     8526        fi
     8527
     8528        # Add any objects from preloaded convenience libraries
     8529        if test -n "$dlprefiles"; then
     8530          gentop="$output_objdir/${outputname}x"
     8531          func_append generated " $gentop"
     8532
     8533          func_extract_archives $gentop $dlprefiles
     8534          func_append libobjs " $func_extract_archives_result"
     8535          test "X$libobjs" = "X " && libobjs=
     8536        fi
     8537
    41998538        save_ifs="$IFS"; IFS='~'
    42008539        for cmd in $cmds; do
    42018540          IFS="$save_ifs"
    42028541          eval cmd=\"$cmd\"
    4203           $show "$cmd"
    4204           $run eval "$cmd" || {
     8542          $opt_silent || {
     8543            func_quote_for_expand "$cmd"
     8544            eval "func_echo $func_quote_for_expand_result"
     8545          }
     8546          $opt_dry_run || eval "$cmd" || {
    42058547            lt_exit=$?
    42068548
    42078549            # Restore the uninstalled library and exit
    4208             if test "$mode" = relink; then
    4209               $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
     8550            if test "$opt_mode" = relink; then
     8551              ( cd "$output_objdir" && \
     8552                $RM "${realname}T" && \
     8553                $MV "${realname}U" "$realname" )
    42108554            fi
    42118555
     
    42168560
    42178561        # Restore the uninstalled library and exit
    4218         if test "$mode" = relink; then
    4219           $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
     8562        if test "$opt_mode" = relink; then
     8563          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
    42208564
    42218565          if test -n "$convenience"; then
    42228566            if test -z "$whole_archive_flag_spec"; then
    4223               $show "${rm}r $gentop"
    4224               $run ${rm}r "$gentop"
     8567              func_show_eval '${RM}r "$gentop"'
    42258568            fi
    42268569          fi
     
    42328575        for linkname in $linknames; do
    42338576          if test "$realname" != "$linkname"; then
    4234             $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
    4235             $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
     8577            func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
    42368578          fi
    42378579        done
     
    42468588
    42478589    obj)
    4248       if test -n "$deplibs"; then
    4249         $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
     8590      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
     8591        func_warning "\`-dlopen' is ignored for objects"
    42508592      fi
    42518593
    4252       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
    4253         $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
    4254       fi
    4255 
    4256       if test -n "$rpath"; then
    4257         $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
    4258       fi
    4259 
    4260       if test -n "$xrpath"; then
    4261         $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
    4262       fi
    4263 
    4264       if test -n "$vinfo"; then
    4265         $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
    4266       fi
    4267 
    4268       if test -n "$release"; then
    4269         $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
    4270       fi
     8594      case " $deplibs" in
     8595      *\ -l* | *\ -L*)
     8596        func_warning "\`-l' and \`-L' are ignored for objects" ;;
     8597      esac
     8598
     8599      test -n "$rpath" && \
     8600        func_warning "\`-rpath' is ignored for objects"
     8601
     8602      test -n "$xrpath" && \
     8603        func_warning "\`-R' is ignored for objects"
     8604
     8605      test -n "$vinfo" && \
     8606        func_warning "\`-version-info' is ignored for objects"
     8607
     8608      test -n "$release" && \
     8609        func_warning "\`-release' is ignored for objects"
    42718610
    42728611      case $output in
    42738612      *.lo)
    4274         if test -n "$objs$old_deplibs"; then
    4275           $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
    4276           exit $EXIT_FAILURE
    4277         fi
    4278         libobj="$output"
    4279         obj=`$echo "X$output" | $Xsed -e "$lo2o"`
     8613        test -n "$objs$old_deplibs" && \
     8614          func_fatal_error "cannot build library object \`$output' from non-libtool objects"
     8615
     8616        libobj=$output
     8617        func_lo2o "$libobj"
     8618        obj=$func_lo2o_result
    42808619        ;;
    42818620      *)
     
    42868625
    42878626      # Delete the old objects.
    4288       $run $rm $obj $libobj
     8627      $opt_dry_run || $RM $obj $libobj
    42898628
    42908629      # Objects from convenience libraries.  This assumes
     
    42958634      gentop=
    42968635      # reload_cmds runs $LD directly, so let us get rid of
    4297       # -Wl from whole_archive_flag_spec
     8636      # -Wl from whole_archive_flag_spec and hope we can get by with
     8637      # turning comma into space..
    42988638      wl=
    42998639
    43008640      if test -n "$convenience"; then
    43018641        if test -n "$whole_archive_flag_spec"; then
    4302           eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
     8642          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
     8643          reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
    43038644        else
    43048645          gentop="$output_objdir/${obj}x"
    4305           generated="$generated $gentop"
     8646          func_append generated " $gentop"
    43068647
    43078648          func_extract_archives $gentop $convenience
     
    43108651      fi
    43118652
     8653      # If we're not building shared, we need to use non_pic_objs
     8654      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
     8655
    43128656      # Create the old-style object.
    4313       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
     8657      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
    43148658
    43158659      output="$obj"
    4316       cmds=$reload_cmds
    4317       save_ifs="$IFS"; IFS='~'
    4318       for cmd in $cmds; do
    4319         IFS="$save_ifs"
    4320         eval cmd=\"$cmd\"
    4321         $show "$cmd"
    4322         $run eval "$cmd" || exit $?
    4323       done
    4324       IFS="$save_ifs"
     8660      func_execute_cmds "$reload_cmds" 'exit $?'
    43258661
    43268662      # Exit if we aren't doing a library object file.
    43278663      if test -z "$libobj"; then
    43288664        if test -n "$gentop"; then
    4329           $show "${rm}r $gentop"
    4330           $run ${rm}r $gentop
     8665          func_show_eval '${RM}r "$gentop"'
    43318666        fi
    43328667
     
    43368671      if test "$build_libtool_libs" != yes; then
    43378672        if test -n "$gentop"; then
    4338           $show "${rm}r $gentop"
    4339           $run ${rm}r $gentop
     8673          func_show_eval '${RM}r "$gentop"'
    43408674        fi
    43418675
     
    43438677        # accidentally link it into a program.
    43448678        # $show "echo timestamp > $libobj"
    4345         # $run eval "echo timestamp > $libobj" || exit $?
     8679        # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
    43468680        exit $EXIT_SUCCESS
    43478681      fi
     
    43518685        reload_objs="$libobjs $reload_conv_objs"
    43528686        output="$libobj"
    4353         cmds=$reload_cmds
    4354         save_ifs="$IFS"; IFS='~'
    4355         for cmd in $cmds; do
    4356           IFS="$save_ifs"
    4357           eval cmd=\"$cmd\"
    4358           $show "$cmd"
    4359           $run eval "$cmd" || exit $?
    4360         done
    4361         IFS="$save_ifs"
     8687        func_execute_cmds "$reload_cmds" 'exit $?'
    43628688      fi
    43638689
    43648690      if test -n "$gentop"; then
    4365         $show "${rm}r $gentop"
    4366         $run ${rm}r $gentop
     8691        func_show_eval '${RM}r "$gentop"'
    43678692      fi
    43688693
     
    43728697    prog)
    43738698      case $host in
    4374         *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
     8699        *cygwin*) func_stripname '' '.exe' "$output"
     8700                  output=$func_stripname_result.exe;;
    43758701      esac
    4376       if test -n "$vinfo"; then
    4377         $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
    4378       fi
    4379 
    4380       if test -n "$release"; then
    4381         $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
    4382       fi
    4383 
    4384       if test "$preload" = yes; then
    4385         if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
    4386            test "$dlopen_self_static" = unknown; then
    4387           $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
    4388         fi
    4389       fi
     8702      test -n "$vinfo" && \
     8703        func_warning "\`-version-info' is ignored for programs"
     8704
     8705      test -n "$release" && \
     8706        func_warning "\`-release' is ignored for programs"
     8707
     8708      test "$preload" = yes \
     8709        && test "$dlopen_support" = unknown \
     8710        && test "$dlopen_self" = unknown \
     8711        && test "$dlopen_self_static" = unknown && \
     8712          func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
    43908713
    43918714      case $host in
    43928715      *-*-rhapsody* | *-*-darwin1.[012])
    43938716        # On Rhapsody replace the C library is the System framework
    4394         compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
    4395         finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
     8717        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
     8718        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
    43968719        ;;
    43978720      esac
    43988721
    43998722      case $host in
    4400       *darwin*)
    4401         # Don't allow lazy linking, it breaks C++ global constructors
    4402         if test "$tagname" = CXX ; then
    4403         compile_command="$compile_command ${wl}-bind_at_load"
    4404         finalize_command="$finalize_command ${wl}-bind_at_load"
    4405         fi
    4406         ;;
     8723      *-*-darwin*)
     8724        # Don't allow lazy linking, it breaks C++ global constructors
     8725        # But is supposedly fixed on 10.4 or later (yay!).
     8726        if test "$tagname" = CXX ; then
     8727          case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
     8728            10.[0123])
     8729              func_append compile_command " ${wl}-bind_at_load"
     8730              func_append finalize_command " ${wl}-bind_at_load"
     8731            ;;
     8732          esac
     8733        fi
     8734        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
     8735        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
     8736        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
     8737        ;;
    44078738      esac
    44088739
     
    44178748          case " $compile_deplibs " in
    44188749          *" -L$path/$objdir "*)
    4419             new_libs="$new_libs -L$path/$objdir" ;;
     8750            func_append new_libs " -L$path/$objdir" ;;
    44208751          esac
    44218752          ;;
     
    44278758          case " $new_libs " in
    44288759          *" $deplib "*) ;;
    4429           *) new_libs="$new_libs $deplib" ;;
     8760          *) func_append new_libs " $deplib" ;;
    44308761          esac
    44318762          ;;
    4432         *) new_libs="$new_libs $deplib" ;;
     8763        *) func_append new_libs " $deplib" ;;
    44338764        esac
    44348765      done
     
    44368767
    44378768
    4438       compile_command="$compile_command $compile_deplibs"
    4439       finalize_command="$finalize_command $finalize_deplibs"
     8769      func_append compile_command " $compile_deplibs"
     8770      func_append finalize_command " $finalize_deplibs"
    44408771
    44418772      if test -n "$rpath$xrpath"; then
     
    44458776          case "$finalize_rpath " in
    44468777          *" $libdir "*) ;;
    4447           *) finalize_rpath="$finalize_rpath $libdir" ;;
     8778          *) func_append finalize_rpath " $libdir" ;;
    44488779          esac
    44498780        done
     
    44648795                ;;
    44658796              *)
    4466                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
     8797                func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
    44678798                ;;
    44688799              esac
     
    44708801          else
    44718802            eval flag=\"$hardcode_libdir_flag_spec\"
    4472             rpath="$rpath $flag"
     8803            func_append rpath " $flag"
    44738804          fi
    44748805        elif test -n "$runpath_var"; then
    44758806          case "$perm_rpath " in
    44768807          *" $libdir "*) ;;
    4477           *) perm_rpath="$perm_rpath $libdir" ;;
     8808          *) func_append perm_rpath " $libdir" ;;
    44788809          esac
    44798810        fi
    44808811        case $host in
    4481         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
    4482           testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
     8812        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
     8813          testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
    44838814          case :$dllsearchpath: in
    44848815          *":$libdir:"*) ;;
    4485           *) dllsearchpath="$dllsearchpath:$libdir";;
     8816          ::) dllsearchpath=$libdir;;
     8817          *) func_append dllsearchpath ":$libdir";;
    44868818          esac
    44878819          case :$dllsearchpath: in
    44888820          *":$testbindir:"*) ;;
    4489           *) dllsearchpath="$dllsearchpath:$testbindir";;
     8821          ::) dllsearchpath=$testbindir;;
     8822          *) func_append dllsearchpath ":$testbindir";;
    44908823          esac
    44918824          ;;
     
    45138846                ;;
    45148847              *)
    4515                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
     8848                func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
    45168849                ;;
    45178850              esac
     
    45198852          else
    45208853            eval flag=\"$hardcode_libdir_flag_spec\"
    4521             rpath="$rpath $flag"
     8854            func_append rpath " $flag"
    45228855          fi
    45238856        elif test -n "$runpath_var"; then
    45248857          case "$finalize_perm_rpath " in
    45258858          *" $libdir "*) ;;
    4526           *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
     8859          *) func_append finalize_perm_rpath " $libdir" ;;
    45278860          esac
    45288861        fi
     
    45388871      if test -n "$libobjs" && test "$build_old_libs" = yes; then
    45398872        # Transform all the library objects into standard objects.
    4540         compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
    4541         finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
     8873        compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
     8874        finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
    45428875      fi
    45438876
    4544       dlsyms=
    4545       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
    4546         if test -n "$NM" && test -n "$global_symbol_pipe"; then
    4547           dlsyms="${outputname}S.c"
    4548         else
    4549           $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
     8877      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
     8878
     8879      # template prelinking step
     8880      if test -n "$prelink_cmds"; then
     8881        func_execute_cmds "$prelink_cmds" 'exit $?'
     8882      fi
     8883
     8884      wrappers_required=yes
     8885      case $host in
     8886      *cegcc* | *mingw32ce*)
     8887        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
     8888        wrappers_required=no
     8889        ;;
     8890      *cygwin* | *mingw* )
     8891        if test "$build_libtool_libs" != yes; then
     8892          wrappers_required=no
     8893        fi
     8894        ;;
     8895      *)
     8896        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
     8897          wrappers_required=no
     8898        fi
     8899        ;;
     8900      esac
     8901      if test "$wrappers_required" = no; then
     8902        # Replace the output file specification.
     8903        compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
     8904        link_command="$compile_command$compile_rpath"
     8905
     8906        # We have no uninstalled library dependencies, so finalize right now.
     8907        exit_status=0
     8908        func_show_eval "$link_command" 'exit_status=$?'
     8909
     8910        if test -n "$postlink_cmds"; then
     8911          func_to_tool_file "$output"
     8912          postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
     8913          func_execute_cmds "$postlink_cmds" 'exit $?'
    45508914        fi
    4551       fi
    4552 
    4553       if test -n "$dlsyms"; then
    4554         case $dlsyms in
    4555         "") ;;
    4556         *.c)
    4557           # Discover the nlist of each of the dlfiles.
    4558           nlist="$output_objdir/${outputname}.nm"
    4559 
    4560           $show "$rm $nlist ${nlist}S ${nlist}T"
    4561           $run $rm "$nlist" "${nlist}S" "${nlist}T"
    4562 
    4563           # Parse the name list into a source file.
    4564           $show "creating $output_objdir/$dlsyms"
    4565 
    4566           test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
    4567 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
    4568 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
    4569 
    4570 #ifdef __cplusplus
    4571 extern \"C\" {
    4572 #endif
    4573 
    4574 /* Prevent the only kind of declaration conflicts we can make. */
    4575 #define lt_preloaded_symbols some_other_symbol
    4576 
    4577 /* External symbol declarations for the compiler. */\
    4578 "
    4579 
    4580           if test "$dlself" = yes; then
    4581             $show "generating symbol list for \`$output'"
    4582 
    4583             test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
    4584 
    4585             # Add our own program objects to the symbol list.
    4586             progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
    4587             for arg in $progfiles; do
    4588               $show "extracting global C symbols from \`$arg'"
    4589               $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
    4590             done
    4591 
    4592             if test -n "$exclude_expsyms"; then
    4593               $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
    4594               $run eval '$mv "$nlist"T "$nlist"'
    4595             fi
    4596 
    4597             if test -n "$export_symbols_regex"; then
    4598               $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
    4599               $run eval '$mv "$nlist"T "$nlist"'
    4600             fi
    4601 
    4602             # Prepare the list of exported symbols
    4603             if test -z "$export_symbols"; then
    4604               export_symbols="$output_objdir/$outputname.exp"
    4605               $run $rm $export_symbols
    4606               $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
    4607               case $host in
    4608               *cygwin* | *mingw* )
    4609                 $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
    4610                 $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
    4611                 ;;
    4612               esac
    4613             else
    4614               $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
    4615               $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
    4616               $run eval 'mv "$nlist"T "$nlist"'
    4617               case $host in
    4618               *cygwin* | *mingw* )
    4619                 $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
    4620                 $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
    4621                 ;;
    4622               esac
    4623             fi
    4624           fi
    4625 
    4626           for arg in $dlprefiles; do
    4627             $show "extracting global C symbols from \`$arg'"
    4628             name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
    4629             $run eval '$echo ": $name " >> "$nlist"'
    4630             $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
    4631           done
    4632 
    4633           if test -z "$run"; then
    4634             # Make sure we have at least an empty file.
    4635             test -f "$nlist" || : > "$nlist"
    4636 
    4637             if test -n "$exclude_expsyms"; then
    4638               $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
    4639               $mv "$nlist"T "$nlist"
    4640             fi
    4641 
    4642             # Try sorting and uniquifying the output.
    4643             if grep -v "^: " < "$nlist" |
    4644                 if sort -k 3 </dev/null >/dev/null 2>&1; then
    4645                   sort -k 3
    4646                 else
    4647                   sort +2
    4648                 fi |
    4649                 uniq > "$nlist"S; then
    4650               :
    4651             else
    4652               grep -v "^: " < "$nlist" > "$nlist"S
    4653             fi
    4654 
    4655             if test -f "$nlist"S; then
    4656               eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
    4657             else
    4658               $echo '/* NONE */' >> "$output_objdir/$dlsyms"
    4659             fi
    4660 
    4661             $echo >> "$output_objdir/$dlsyms" "\
    4662 
    4663 #undef lt_preloaded_symbols
    4664 
    4665 #if defined (__STDC__) && __STDC__
    4666 # define lt_ptr void *
    4667 #else
    4668 # define lt_ptr char *
    4669 # define const
    4670 #endif
    4671 
    4672 /* The mapping between symbol names and symbols. */
    4673 "
    4674 
    4675             case $host in
    4676             *cygwin* | *mingw* )
    4677           $echo >> "$output_objdir/$dlsyms" "\
    4678 /* DATA imports from DLLs on WIN32 can't be const, because
    4679    runtime relocations are performed -- see ld's documentation
    4680    on pseudo-relocs */
    4681 struct {
    4682 "
    4683               ;;
    4684             * )
    4685           $echo >> "$output_objdir/$dlsyms" "\
    4686 const struct {
    4687 "
    4688               ;;
    4689             esac
    4690 
    4691 
    4692           $echo >> "$output_objdir/$dlsyms" "\
    4693   const char *name;
    4694   lt_ptr address;
    4695 }
    4696 lt_preloaded_symbols[] =
    4697 {\
    4698 "
    4699 
    4700             eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
    4701 
    4702             $echo >> "$output_objdir/$dlsyms" "\
    4703   {0, (lt_ptr) 0}
    4704 };
    4705 
    4706 /* This works around a problem in FreeBSD linker */
    4707 #ifdef FREEBSD_WORKAROUND
    4708 static const void *lt_preloaded_setup() {
    4709   return lt_preloaded_symbols;
    4710 }
    4711 #endif
    4712 
    4713 #ifdef __cplusplus
    4714 }
    4715 #endif\
    4716 "
    4717           fi
    4718 
    4719           pic_flag_for_symtable=
    4720           case $host in
    4721           # compiling the symbol table file with pic_flag works around
    4722           # a FreeBSD bug that causes programs to crash when -lm is
    4723           # linked before any other PIC object.  But we must not use
    4724           # pic_flag when linking with -static.  The problem exists in
    4725           # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
    4726           *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
    4727             case "$compile_command " in
    4728             *" -static "*) ;;
    4729             *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
    4730             esac;;
    4731           *-*-hpux*)
    4732             case "$compile_command " in
    4733             *" -static "*) ;;
    4734             *) pic_flag_for_symtable=" $pic_flag";;
    4735             esac
    4736           esac
    4737 
    4738           # Now compile the dynamic symbol file.
    4739           $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
    4740           $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
    4741 
    4742           # Clean up the generated files.
    4743           $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
    4744           $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
    4745 
    4746           # Transform the symbol file into the correct name.
    4747           case $host in
    4748           *cygwin* | *mingw* )
    4749             if test -f "$output_objdir/${outputname}.def" ; then
    4750               compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
    4751               finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
    4752             else
    4753               compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
    4754               finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
    4755              fi
    4756             ;;
    4757           * )
    4758             compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
    4759             finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
    4760             ;;
    4761           esac
    4762           ;;
    4763         *)
    4764           $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
    4765           exit $EXIT_FAILURE
    4766           ;;
    4767         esac
    4768       else
    4769         # We keep going just in case the user didn't refer to
    4770         # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
    4771         # really was required.
    4772 
    4773         # Nullify the symbol file.
    4774         compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
    4775         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
    4776       fi
    4777 
    4778       if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
    4779         # Replace the output file specification.
    4780         compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
    4781         link_command="$compile_command$compile_rpath"
    4782 
    4783         # We have no uninstalled library dependencies, so finalize right now.
    4784         $show "$link_command"
    4785         $run eval "$link_command"
    4786         exit_status=$?
    47878915
    47888916        # Delete the generated files.
    4789         if test -n "$dlsyms"; then
    4790           $show "$rm $output_objdir/${outputname}S.${objext}"
    4791           $run $rm "$output_objdir/${outputname}S.${objext}"
     8917        if test -f "$output_objdir/${outputname}S.${objext}"; then
     8918          func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
    47928919        fi
    47938920
    47948921        exit $exit_status
    4795       fi
    4796 
    4797       if test -n "$shlibpath_var"; then
    4798         # We should set the shlibpath_var
    4799         rpath=
    4800         for dir in $temp_rpath; do
    4801           case $dir in
    4802           [\\/]* | [A-Za-z]:[\\/]*)
    4803             # Absolute path.
    4804             rpath="$rpath$dir:"
    4805             ;;
    4806           *)
    4807             # Relative path: add a thisdir entry.
    4808             rpath="$rpath\$thisdir/$dir:"
    4809             ;;
    4810           esac
    4811         done
    4812         temp_rpath="$rpath"
    48138922      fi
    48148923
     
    48278936          rpath=
    48288937          for dir in $perm_rpath; do
    4829             rpath="$rpath$dir:"
     8938            func_append rpath "$dir:"
    48308939          done
    48318940          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
     
    48358944          rpath=
    48368945          for dir in $finalize_perm_rpath; do
    4837             rpath="$rpath$dir:"
     8946            func_append rpath "$dir:"
    48388947          done
    48398948          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
     
    48458954        link_command="$compile_var$compile_command$compile_rpath"
    48468955        # Replace the output file specification.
    4847         link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
     8956        link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
    48488957        # Delete the old output file.
    4849         $run $rm $output
     8958        $opt_dry_run || $RM $output
    48508959        # Link the executable and exit
    4851         $show "$link_command"
    4852         $run eval "$link_command" || exit $?
     8960        func_show_eval "$link_command" 'exit $?'
     8961
     8962        if test -n "$postlink_cmds"; then
     8963          func_to_tool_file "$output"
     8964          postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
     8965          func_execute_cmds "$postlink_cmds" 'exit $?'
     8966        fi
     8967
    48538968        exit $EXIT_SUCCESS
    48548969      fi
     
    48598974        relink_command="$finalize_var$finalize_command$finalize_rpath"
    48608975
    4861         $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
    4862         $echo "$modename: \`$output' will be relinked during installation" 1>&2
     8976        func_warning "this platform does not like uninstalled shared libraries"
     8977        func_warning "\`$output' will be relinked during installation"
    48638978      else
    48648979        if test "$fast_install" != no; then
    48658980          link_command="$finalize_var$compile_command$finalize_rpath"
    48668981          if test "$fast_install" = yes; then
    4867             relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
     8982            relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
    48688983          else
    48698984            # fast_install is set to needless
     
    48778992
    48788993      # Replace the output file specification.
    4879       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
     8994      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
    48808995
    48818996      # Delete the old output files.
    4882       $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
    4883 
    4884       $show "$link_command"
    4885       $run eval "$link_command" || exit $?
     8997      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
     8998
     8999      func_show_eval "$link_command" 'exit $?'
     9000
     9001      if test -n "$postlink_cmds"; then
     9002        func_to_tool_file "$output_objdir/$outputname"
     9003        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'`
     9004        func_execute_cmds "$postlink_cmds" 'exit $?'
     9005      fi
    48869006
    48879007      # Now create the wrapper script.
    4888       $show "creating $output"
     9008      func_verbose "creating $output"
    48899009
    48909010      # Quote the relink command for shipping.
     
    48939013        for var in $variables_saved_for_relink; do
    48949014          if eval test -z \"\${$var+set}\"; then
    4895             relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
     9015            relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
    48969016          elif eval var_value=\$$var; test -z "$var_value"; then
    48979017            relink_command="$var=; export $var; $relink_command"
    48989018          else
    4899             var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
    4900             relink_command="$var=\"$var_value\"; export $var; $relink_command"
     9019            func_quote_for_eval "$var_value"
     9020            relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
    49019021          fi
    49029022        done
    49039023        relink_command="(cd `pwd`; $relink_command)"
    4904         relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
     9024        relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
    49059025      fi
    49069026
    4907       # Quote $echo for shipping.
    4908       if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
    4909         case $progpath in
    4910         [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
    4911         *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
    4912         esac
    4913         qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
    4914       else
    4915         qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
    4916       fi
    4917 
    4918       # Only actually do things if our run command is non-null.
    4919       if test -z "$run"; then
     9027      # Only actually do things if not in dry run mode.
     9028      $opt_dry_run || {
    49209029        # win32 will think the script is a binary if it has
    49219030        # a .exe suffix, so we strip it off here.
    49229031        case $output in
    4923           *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
     9032          *.exe) func_stripname '' '.exe' "$output"
     9033                 output=$func_stripname_result ;;
    49249034        esac
    49259035        # test for cygwin because mv fails w/o .exe extensions
     
    49279037          *cygwin*)
    49289038            exeext=.exe
    4929             outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
     9039            func_stripname '' '.exe' "$outputname"
     9040            outputname=$func_stripname_result ;;
    49309041          *) exeext= ;;
    49319042        esac
    49329043        case $host in
    49339044          *cygwin* | *mingw* )
    4934             output_name=`basename $output`
    4935             output_path=`dirname $output`
    4936             cwrappersource="$output_path/$objdir/lt-$output_name.c"
    4937             cwrapper="$output_path/$output_name.exe"
    4938             $rm $cwrappersource $cwrapper
    4939             trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
    4940 
    4941             cat > $cwrappersource <<EOF
    4942 
    4943 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
    4944    Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
    4945 
    4946    The $output program cannot be directly executed until all the libtool
    4947    libraries that it depends on are installed.
    4948 
    4949    This wrapper executable should never be moved out of the build directory.
    4950    If it is, it will not operate correctly.
    4951 
    4952    Currently, it simply execs the wrapper *script* "/bin/sh $output",
    4953    but could eventually absorb all of the scripts functionality and
    4954    exec $objdir/$outputname directly.
    4955 */
    4956 EOF
    4957             cat >> $cwrappersource<<"EOF"
    4958 #include <stdio.h>
    4959 #include <stdlib.h>
    4960 #include <unistd.h>
    4961 #include <malloc.h>
    4962 #include <stdarg.h>
    4963 #include <assert.h>
    4964 #include <string.h>
    4965 #include <ctype.h>
    4966 #include <sys/stat.h>
    4967 
    4968 #if defined(PATH_MAX)
    4969 # define LT_PATHMAX PATH_MAX
    4970 #elif defined(MAXPATHLEN)
    4971 # define LT_PATHMAX MAXPATHLEN
    4972 #else
    4973 # define LT_PATHMAX 1024
    4974 #endif
    4975 
    4976 #ifndef DIR_SEPARATOR
    4977 # define DIR_SEPARATOR '/'
    4978 # define PATH_SEPARATOR ':'
    4979 #endif
    4980 
    4981 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
    4982   defined (__OS2__)
    4983 # define HAVE_DOS_BASED_FILE_SYSTEM
    4984 # ifndef DIR_SEPARATOR_2
    4985 #  define DIR_SEPARATOR_2 '\\'
    4986 # endif
    4987 # ifndef PATH_SEPARATOR_2
    4988 #  define PATH_SEPARATOR_2 ';'
    4989 # endif
    4990 #endif
    4991 
    4992 #ifndef DIR_SEPARATOR_2
    4993 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
    4994 #else /* DIR_SEPARATOR_2 */
    4995 # define IS_DIR_SEPARATOR(ch) \
    4996         (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
    4997 #endif /* DIR_SEPARATOR_2 */
    4998 
    4999 #ifndef PATH_SEPARATOR_2
    5000 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
    5001 #else /* PATH_SEPARATOR_2 */
    5002 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
    5003 #endif /* PATH_SEPARATOR_2 */
    5004 
    5005 #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
    5006 #define XFREE(stale) do { \
    5007   if (stale) { free ((void *) stale); stale = 0; } \
    5008 } while (0)
    5009 
    5010 /* -DDEBUG is fairly common in CFLAGS.  */
    5011 #undef DEBUG
    5012 #if defined DEBUGWRAPPER
    5013 # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
    5014 #else
    5015 # define DEBUG(format, ...)
    5016 #endif
    5017 
    5018 const char *program_name = NULL;
    5019 
    5020 void * xmalloc (size_t num);
    5021 char * xstrdup (const char *string);
    5022 const char * base_name (const char *name);
    5023 char * find_executable(const char *wrapper);
    5024 int    check_executable(const char *path);
    5025 char * strendzap(char *str, const char *pat);
    5026 void lt_fatal (const char *message, ...);
    5027 
    5028 int
    5029 main (int argc, char *argv[])
    5030 {
    5031   char **newargz;
    5032   int i;
    5033 
    5034   program_name = (char *) xstrdup (base_name (argv[0]));
    5035   DEBUG("(main) argv[0]      : %s\n",argv[0]);
    5036   DEBUG("(main) program_name : %s\n",program_name);
    5037   newargz = XMALLOC(char *, argc+2);
    5038 EOF
    5039 
    5040             cat >> $cwrappersource <<EOF
    5041   newargz[0] = (char *) xstrdup("$SHELL");
    5042 EOF
    5043 
    5044             cat >> $cwrappersource <<"EOF"
    5045   newargz[1] = find_executable(argv[0]);
    5046   if (newargz[1] == NULL)
    5047     lt_fatal("Couldn't find %s", argv[0]);
    5048   DEBUG("(main) found exe at : %s\n",newargz[1]);
    5049   /* we know the script has the same name, without the .exe */
    5050   /* so make sure newargz[1] doesn't end in .exe */
    5051   strendzap(newargz[1],".exe");
    5052   for (i = 1; i < argc; i++)
    5053     newargz[i+1] = xstrdup(argv[i]);
    5054   newargz[argc+1] = NULL;
    5055 
    5056   for (i=0; i<argc+1; i++)
    5057   {
    5058     DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
    5059     ;
    5060   }
    5061 
    5062 EOF
    5063 
    5064             case $host_os in
    5065               mingw*)
    5066                 cat >> $cwrappersource <<EOF
    5067   execv("$SHELL",(char const **)newargz);
    5068 EOF
    5069               ;;
    5070               *)
    5071                 cat >> $cwrappersource <<EOF
    5072   execv("$SHELL",newargz);
    5073 EOF
    5074               ;;
    5075             esac
    5076 
    5077             cat >> $cwrappersource <<"EOF"
    5078   return 127;
    5079 }
    5080 
    5081 void *
    5082 xmalloc (size_t num)
    5083 {
    5084   void * p = (void *) malloc (num);
    5085   if (!p)
    5086     lt_fatal ("Memory exhausted");
    5087 
    5088   return p;
    5089 }
    5090 
    5091 char *
    5092 xstrdup (const char *string)
    5093 {
    5094   return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
    5095 ;
    5096 }
    5097 
    5098 const char *
    5099 base_name (const char *name)
    5100 {
    5101   const char *base;
    5102 
    5103 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
    5104   /* Skip over the disk name in MSDOS pathnames. */
    5105   if (isalpha ((unsigned char)name[0]) && name[1] == ':')
    5106     name += 2;
    5107 #endif
    5108 
    5109   for (base = name; *name; name++)
    5110     if (IS_DIR_SEPARATOR (*name))
    5111       base = name + 1;
    5112   return base;
    5113 }
    5114 
    5115 int
    5116 check_executable(const char * path)
    5117 {
    5118   struct stat st;
    5119 
    5120   DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
    5121   if ((!path) || (!*path))
    5122     return 0;
    5123 
    5124   if ((stat (path, &st) >= 0) &&
    5125       (
    5126         /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
    5127 #if defined (S_IXOTH)
    5128        ((st.st_mode & S_IXOTH) == S_IXOTH) ||
    5129 #endif
    5130 #if defined (S_IXGRP)
    5131        ((st.st_mode & S_IXGRP) == S_IXGRP) ||
    5132 #endif
    5133        ((st.st_mode & S_IXUSR) == S_IXUSR))
    5134       )
    5135     return 1;
    5136   else
    5137     return 0;
    5138 }
    5139 
    5140 /* Searches for the full path of the wrapper.  Returns
    5141    newly allocated full path name if found, NULL otherwise */
    5142 char *
    5143 find_executable (const char* wrapper)
    5144 {
    5145   int has_slash = 0;
    5146   const char* p;
    5147   const char* p_next;
    5148   /* static buffer for getcwd */
    5149   char tmp[LT_PATHMAX + 1];
    5150   int tmp_len;
    5151   char* concat_name;
    5152 
    5153   DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
    5154 
    5155   if ((wrapper == NULL) || (*wrapper == '\0'))
    5156     return NULL;
    5157 
    5158   /* Absolute path? */
    5159 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
    5160   if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
    5161   {
    5162     concat_name = xstrdup (wrapper);
    5163     if (check_executable(concat_name))
    5164       return concat_name;
    5165     XFREE(concat_name);
    5166   }
    5167   else
    5168   {
    5169 #endif
    5170     if (IS_DIR_SEPARATOR (wrapper[0]))
    5171     {
    5172       concat_name = xstrdup (wrapper);
    5173       if (check_executable(concat_name))
    5174         return concat_name;
    5175       XFREE(concat_name);
    5176     }
    5177 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
    5178   }
    5179 #endif
    5180 
    5181   for (p = wrapper; *p; p++)
    5182     if (*p == '/')
    5183     {
    5184       has_slash = 1;
    5185       break;
    5186     }
    5187   if (!has_slash)
    5188   {
    5189     /* no slashes; search PATH */
    5190     const char* path = getenv ("PATH");
    5191     if (path != NULL)
    5192     {
    5193       for (p = path; *p; p = p_next)
    5194       {
    5195         const char* q;
    5196         size_t p_len;
    5197         for (q = p; *q; q++)
    5198           if (IS_PATH_SEPARATOR(*q))
    5199             break;
    5200         p_len = q - p;
    5201         p_next = (*q == '\0' ? q : q + 1);
    5202         if (p_len == 0)
    5203         {
    5204           /* empty path: current directory */
    5205           if (getcwd (tmp, LT_PATHMAX) == NULL)
    5206             lt_fatal ("getcwd failed");
    5207           tmp_len = strlen(tmp);
    5208           concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
    5209           memcpy (concat_name, tmp, tmp_len);
    5210           concat_name[tmp_len] = '/';
    5211           strcpy (concat_name + tmp_len + 1, wrapper);
    5212         }
    5213         else
    5214         {
    5215           concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
    5216           memcpy (concat_name, p, p_len);
    5217           concat_name[p_len] = '/';
    5218           strcpy (concat_name + p_len + 1, wrapper);
    5219         }
    5220         if (check_executable(concat_name))
    5221           return concat_name;
    5222         XFREE(concat_name);
    5223       }
    5224     }
    5225     /* not found in PATH; assume curdir */
    5226   }
    5227   /* Relative path | not found in path: prepend cwd */
    5228   if (getcwd (tmp, LT_PATHMAX) == NULL)
    5229     lt_fatal ("getcwd failed");
    5230   tmp_len = strlen(tmp);
    5231   concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
    5232   memcpy (concat_name, tmp, tmp_len);
    5233   concat_name[tmp_len] = '/';
    5234   strcpy (concat_name + tmp_len + 1, wrapper);
    5235 
    5236   if (check_executable(concat_name))
    5237     return concat_name;
    5238   XFREE(concat_name);
    5239   return NULL;
    5240 }
    5241 
    5242 char *
    5243 strendzap(char *str, const char *pat)
    5244 {
    5245   size_t len, patlen;
    5246 
    5247   assert(str != NULL);
    5248   assert(pat != NULL);
    5249 
    5250   len = strlen(str);
    5251   patlen = strlen(pat);
    5252 
    5253   if (patlen <= len)
    5254   {
    5255     str += len - patlen;
    5256     if (strcmp(str, pat) == 0)
    5257       *str = '\0';
    5258   }
    5259   return str;
    5260 }
    5261 
    5262 static void
    5263 lt_error_core (int exit_status, const char * mode,
    5264           const char * message, va_list ap)
    5265 {
    5266   fprintf (stderr, "%s: %s: ", program_name, mode);
    5267   vfprintf (stderr, message, ap);
    5268   fprintf (stderr, ".\n");
    5269 
    5270   if (exit_status >= 0)
    5271     exit (exit_status);
    5272 }
    5273 
    5274 void
    5275 lt_fatal (const char *message, ...)
    5276 {
    5277   va_list ap;
    5278   va_start (ap, message);
    5279   lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
    5280   va_end (ap);
    5281 }
    5282 EOF
    5283           # we should really use a build-platform specific compiler
    5284           # here, but OTOH, the wrappers (shell script and this C one)
    5285           # are only useful if you want to execute the "real" binary.
    5286           # Since the "real" binary is built for $host, then this
    5287           # wrapper might as well be built for $host, too.
    5288           $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
    5289           ;;
    5290         esac
    5291         $rm $output
    5292         trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
    5293 
    5294         $echo > $output "\
    5295 #! $SHELL
    5296 
    5297 # $output - temporary wrapper script for $objdir/$outputname
    5298 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
    5299 #
    5300 # The $output program cannot be directly executed until all the libtool
    5301 # libraries that it depends on are installed.
    5302 #
    5303 # This wrapper script should never be moved out of the build directory.
    5304 # If it is, it will not operate correctly.
    5305 
    5306 # Sed substitution that helps us do robust quoting.  It backslashifies
    5307 # metacharacters that are still active within double-quoted strings.
    5308 Xsed='${SED} -e 1s/^X//'
    5309 sed_quote_subst='$sed_quote_subst'
    5310 
    5311 # The HP-UX ksh and POSIX shell print the target directory to stdout
    5312 # if CDPATH is set.
    5313 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
    5314 
    5315 relink_command=\"$relink_command\"
    5316 
    5317 # This environment variable determines our operation mode.
    5318 if test \"\$libtool_install_magic\" = \"$magic\"; then
    5319   # install mode needs the following variable:
    5320   notinst_deplibs='$notinst_deplibs'
    5321 else
    5322   # When we are sourced in execute mode, \$file and \$echo are already set.
    5323   if test \"\$libtool_execute_magic\" != \"$magic\"; then
    5324     echo=\"$qecho\"
    5325     file=\"\$0\"
    5326     # Make sure echo works.
    5327     if test \"X\$1\" = X--no-reexec; then
    5328       # Discard the --no-reexec flag, and continue.
    5329       shift
    5330     elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
    5331       # Yippee, \$echo works!
    5332       :
    5333     else
    5334       # Restart under the correct shell, and then maybe \$echo will work.
    5335       exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
    5336     fi
    5337   fi\
    5338 "
    5339         $echo >> $output "\
    5340 
    5341   # Find the directory that this script lives in.
    5342   thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
    5343   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
    5344 
    5345   # Follow symbolic links until we get to the real thisdir.
    5346   file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
    5347   while test -n \"\$file\"; do
    5348     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
    5349 
    5350     # If there was a directory component, then change thisdir.
    5351     if test \"x\$destdir\" != \"x\$file\"; then
    5352       case \"\$destdir\" in
    5353       [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
    5354       *) thisdir=\"\$thisdir/\$destdir\" ;;
    5355       esac
    5356     fi
    5357 
    5358     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
    5359     file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
    5360   done
    5361 
    5362   # Try to get the absolute directory name.
    5363   absdir=\`cd \"\$thisdir\" && pwd\`
    5364   test -n \"\$absdir\" && thisdir=\"\$absdir\"
    5365 "
    5366 
    5367         if test "$fast_install" = yes; then
    5368           $echo >> $output "\
    5369   program=lt-'$outputname'$exeext
    5370   progdir=\"\$thisdir/$objdir\"
    5371 
    5372   if test ! -f \"\$progdir/\$program\" || \\
    5373      { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
    5374        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
    5375 
    5376     file=\"\$\$-\$program\"
    5377 
    5378     if test ! -d \"\$progdir\"; then
    5379       $mkdir \"\$progdir\"
    5380     else
    5381       $rm \"\$progdir/\$file\"
    5382     fi"
    5383 
    5384           $echo >> $output "\
    5385 
    5386     # relink executable if necessary
    5387     if test -n \"\$relink_command\"; then
    5388       if relink_command_output=\`eval \$relink_command 2>&1\`; then :
    5389       else
    5390         $echo \"\$relink_command_output\" >&2
    5391         $rm \"\$progdir/\$file\"
    5392         exit $EXIT_FAILURE
    5393       fi
    5394     fi
    5395 
    5396     $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
    5397     { $rm \"\$progdir/\$program\";
    5398       $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
    5399     $rm \"\$progdir/\$file\"
    5400   fi"
    5401         else
    5402           $echo >> $output "\
    5403   program='$outputname'
    5404   progdir=\"\$thisdir/$objdir\"
    5405 "
    5406         fi
    5407 
    5408         $echo >> $output "\
    5409 
    5410   if test -f \"\$progdir/\$program\"; then"
    5411 
    5412         # Export our shlibpath_var if we have one.
    5413         if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
    5414           $echo >> $output "\
    5415     # Add our own library path to $shlibpath_var
    5416     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
    5417 
    5418     # Some systems cannot cope with colon-terminated $shlibpath_var
    5419     # The second colon is a workaround for a bug in BeOS R4 sed
    5420     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
    5421 
    5422     export $shlibpath_var
    5423 "
    5424         fi
    5425 
    5426         # fixup the dll searchpath if we need to.
    5427         if test -n "$dllsearchpath"; then
    5428           $echo >> $output "\
    5429     # Add the dll search path components to the executable PATH
    5430     PATH=$dllsearchpath:\$PATH
    5431 "
    5432         fi
    5433 
    5434         $echo >> $output "\
    5435     if test \"\$libtool_execute_magic\" != \"$magic\"; then
    5436       # Run the actual program with our arguments.
    5437 
    5438       # Make sure env LD_LIBRARY_PATH does not mess us up
    5439       if test -n \"\${LD_LIBRARY_PATH+set}\"; then
    5440         export LD_LIBRARY_PATH=\$progdir:\$LD_LIBRARY_PATH
    5441       fi
    5442 "
    5443         case $host in
    5444         # Backslashes separate directories on plain windows
    5445         *-*-mingw | *-*-os2*)
    5446           $echo >> $output "\
    5447       exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
    5448 "
     9045            func_dirname_and_basename "$output" "" "."
     9046            output_name=$func_basename_result
     9047            output_path=$func_dirname_result
     9048            cwrappersource="$output_path/$objdir/lt-$output_name.c"
     9049            cwrapper="$output_path/$output_name.exe"
     9050            $RM $cwrappersource $cwrapper
     9051            trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
     9052
     9053            func_emit_cwrapperexe_src > $cwrappersource
     9054
     9055            # The wrapper executable is built using the $host compiler,
     9056            # because it contains $host paths and files. If cross-
     9057            # compiling, it, like the target executable, must be
     9058            # executed on the $host or under an emulation environment.
     9059            $opt_dry_run || {
     9060              $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
     9061              $STRIP $cwrapper
     9062            }
     9063
     9064            # Now, create the wrapper script for func_source use:
     9065            func_ltwrapper_scriptname $cwrapper
     9066            $RM $func_ltwrapper_scriptname_result
     9067            trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
     9068            $opt_dry_run || {
     9069              # note: this script will not be executed, so do not chmod.
     9070              if test "x$build" = "x$host" ; then
     9071                $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
     9072              else
     9073                func_emit_wrapper no > $func_ltwrapper_scriptname_result
     9074              fi
     9075            }
    54499076          ;;
    5450 
    5451         *)
    5452           $echo >> $output "\
    5453       exec \"\$progdir/\$program\" \${1+\"\$@\"}
    5454 "
     9077          * )
     9078            $RM $output
     9079            trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
     9080
     9081            func_emit_wrapper no > $output
     9082            chmod +x $output
    54559083          ;;
    54569084        esac
    5457         $echo >> $output "\
    5458       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
    5459       exit $EXIT_FAILURE
    5460     fi
    5461   else
    5462     # The program doesn't exist.
    5463     \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
    5464     \$echo \"This script is just a wrapper for \$program.\" 1>&2
    5465     $echo \"See the $PACKAGE documentation for more information.\" 1>&2
    5466     exit $EXIT_FAILURE
    5467   fi
    5468 fi\
    5469 "
    5470         chmod +x $output
    5471       fi
     9085      }
    54729086      exit $EXIT_SUCCESS
    54739087      ;;
     
    54789092
    54799093      if test "$build_libtool_libs" = convenience; then
    5480         oldobjs="$libobjs_save"
     9094        oldobjs="$libobjs_save $symfileobj"
    54819095        addlibs="$convenience"
    54829096        build_libtool_libs=no
     
    54879101        else
    54889102          oldobjs="$old_deplibs $non_pic_objects"
     9103          if test "$preload" = yes && test -f "$symfileobj"; then
     9104            func_append oldobjs " $symfileobj"
     9105          fi
    54899106        fi
    54909107        addlibs="$old_convenience"
     
    54939110      if test -n "$addlibs"; then
    54949111        gentop="$output_objdir/${outputname}x"
    5495         generated="$generated $gentop"
     9112        func_append generated " $gentop"
    54969113
    54979114        func_extract_archives $gentop $addlibs
    5498         oldobjs="$oldobjs $func_extract_archives_result"
     9115        func_append oldobjs " $func_extract_archives_result"
    54999116      fi
    55009117
    55019118      # Do each command in the archive commands.
    55029119      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
    5503        cmds=$old_archive_from_new_cmds
     9120        cmds=$old_archive_from_new_cmds
    55049121      else
     9122
     9123        # Add any objects from preloaded convenience libraries
     9124        if test -n "$dlprefiles"; then
     9125          gentop="$output_objdir/${outputname}x"
     9126          func_append generated " $gentop"
     9127
     9128          func_extract_archives $gentop $dlprefiles
     9129          func_append oldobjs " $func_extract_archives_result"
     9130        fi
     9131
    55059132        # POSIX demands no paths to be encoded in archives.  We have
    55069133        # to avoid creating archives with duplicate basenames if we
     
    55119138        if (for obj in $oldobjs
    55129139            do
    5513               $echo "X$obj" | $Xsed -e 's%^.*/%%'
     9140              func_basename "$obj"
     9141              $ECHO "$func_basename_result"
    55149142            done | sort | sort -uc >/dev/null 2>&1); then
    55159143          :
    55169144        else
    5517           $echo "copying selected object files to avoid basename conflicts..."
    5518 
    5519           if test -z "$gentop"; then
    5520             gentop="$output_objdir/${outputname}x"
    5521             generated="$generated $gentop"
    5522 
    5523             $show "${rm}r $gentop"
    5524             $run ${rm}r "$gentop"
    5525             $show "$mkdir $gentop"
    5526             $run $mkdir "$gentop"
    5527             exit_status=$?
    5528             if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
    5529               exit $exit_status
    5530             fi
    5531           fi
    5532 
     9145          echo "copying selected object files to avoid basename conflicts..."
     9146          gentop="$output_objdir/${outputname}x"
     9147          func_append generated " $gentop"
     9148          func_mkdir_p "$gentop"
    55339149          save_oldobjs=$oldobjs
    55349150          oldobjs=
     
    55369152          for obj in $save_oldobjs
    55379153          do
    5538             objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
     9154            func_basename "$obj"
     9155            objbase="$func_basename_result"
    55399156            case " $oldobjs " in
    55409157            " ") oldobjs=$obj ;;
     
    55449161                # overlaps.
    55459162                newobj=lt$counter-$objbase
    5546                 counter=`expr $counter + 1`
     9163                func_arith $counter + 1
     9164                counter=$func_arith_result
    55479165                case " $oldobjs " in
    55489166                *[\ /]"$newobj "*) ;;
     
    55509168                esac
    55519169              done
    5552               $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
    5553               $run ln "$obj" "$gentop/$newobj" ||
    5554               $run cp "$obj" "$gentop/$newobj"
    5555               oldobjs="$oldobjs $gentop/$newobj"
     9170              func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
     9171              func_append oldobjs " $gentop/$newobj"
    55569172              ;;
    5557             *) oldobjs="$oldobjs $obj" ;;
     9173            *) func_append oldobjs " $obj" ;;
    55589174            esac
    55599175          done
    55609176        fi
    5561 
     9177        func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
     9178        tool_oldlib=$func_to_tool_file_result
    55629179        eval cmds=\"$old_archive_cmds\"
    55639180
    5564         if len=`expr "X$cmds" : ".*"` &&
    5565              test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
     9181        func_len " $cmds"
     9182        len=$func_len_result
     9183        if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
     9184          cmds=$old_archive_cmds
     9185        elif test -n "$archiver_list_spec"; then
     9186          func_verbose "using command file archive linking..."
     9187          for obj in $oldobjs
     9188          do
     9189            func_to_tool_file "$obj"
     9190            $ECHO "$func_to_tool_file_result"
     9191          done > $output_objdir/$libname.libcmd
     9192          func_to_tool_file "$output_objdir/$libname.libcmd"
     9193          oldobjs=" $archiver_list_spec$func_to_tool_file_result"
    55669194          cmds=$old_archive_cmds
    55679195        else
    55689196          # the command line is too long to link in one step, link in parts
    5569           $echo "using piecewise archive linking..."
     9197          func_verbose "using piecewise archive linking..."
    55709198          save_RANLIB=$RANLIB
    55719199          RANLIB=:
     
    55739201          concat_cmds=
    55749202          save_oldobjs=$oldobjs
    5575 
     9203          oldobjs=
    55769204          # Is there a better way of finding the last object in the list?
    55779205          for obj in $save_oldobjs
     
    55799207            last_oldobj=$obj
    55809208          done
     9209          eval test_cmds=\"$old_archive_cmds\"
     9210          func_len " $test_cmds"
     9211          len0=$func_len_result
     9212          len=$len0
    55819213          for obj in $save_oldobjs
    55829214          do
    5583             oldobjs="$objlist $obj"
    5584             objlist="$objlist $obj"
    5585             eval test_cmds=\"$old_archive_cmds\"
    5586             if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
    5587                test "$len" -le "$max_cmd_len"; then
     9215            func_len " $obj"
     9216            func_arith $len + $func_len_result
     9217            len=$func_arith_result
     9218            func_append objlist " $obj"
     9219            if test "$len" -lt "$max_cmd_len"; then
    55889220              :
    55899221            else
     
    55919223              oldobjs=$objlist
    55929224              if test "$obj" = "$last_oldobj" ; then
    5593                 RANLIB=$save_RANLIB
     9225                RANLIB=$save_RANLIB
    55949226              fi
    55959227              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
    55969228              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
    55979229              objlist=
     9230              len=$len0
    55989231            fi
    55999232          done
     
    56079240        fi
    56089241      fi
    5609       save_ifs="$IFS"; IFS='~'
    5610       for cmd in $cmds; do
    5611         eval cmd=\"$cmd\"
    5612         IFS="$save_ifs"
    5613         $show "$cmd"
    5614         $run eval "$cmd" || exit $?
    5615       done
    5616       IFS="$save_ifs"
     9242      func_execute_cmds "$cmds" 'exit $?'
    56179243    done
    56189244
    5619     if test -n "$generated"; then
    5620       $show "${rm}r$generated"
    5621       $run ${rm}r$generated
    5622     fi
     9245    test -n "$generated" && \
     9246      func_show_eval "${RM}r$generated"
    56239247
    56249248    # Now create the libtool archive.
     
    56279251      old_library=
    56289252      test "$build_old_libs" = yes && old_library="$libname.$libext"
    5629       $show "creating $output"
     9253      func_verbose "creating $output"
    56309254
    56319255      # Preserve any variables that may affect compiler behavior
    56329256      for var in $variables_saved_for_relink; do
    56339257        if eval test -z \"\${$var+set}\"; then
    5634           relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
     9258          relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
    56359259        elif eval var_value=\$$var; test -z "$var_value"; then
    56369260          relink_command="$var=; export $var; $relink_command"
    56379261        else
    5638           var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
    5639           relink_command="$var=\"$var_value\"; export $var; $relink_command"
     9262          func_quote_for_eval "$var_value"
     9263          relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
    56409264        fi
    56419265      done
    56429266      # Quote the link command for shipping.
    56439267      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
    5644       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
     9268      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
    56459269      if test "$hardcode_automatic" = yes ; then
    56469270        relink_command=
    56479271      fi
    56489272
    5649 
    56509273      # Only create the output if not a dry run.
    5651       if test -z "$run"; then
     9274      $opt_dry_run || {
    56529275        for installed in no yes; do
    56539276          if test "$installed" = yes; then
     
    56619284              case $deplib in
    56629285              *.la)
    5663                 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
    5664                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
    5665                 if test -z "$libdir"; then
    5666                   $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
    5667                   exit $EXIT_FAILURE
    5668                 fi
    5669                 if test "X$EGREP" = X ; then
    5670                         EGREP=egrep
    5671                 fi
    5672                 # We do not want portage's install root ($D) present.  Check only for
    5673                 # this if the .la is being installed.
    5674                 if test "$installed" = yes && test "$D"; then
    5675                   eval mynewdependency_lib=`echo "$libdir/$name" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
    5676                 else
    5677                   mynewdependency_lib="$libdir/$name"
    5678                 fi
    5679                 # Do not add duplicates
    5680                 if test "$mynewdependency_lib"; then
    5681                   my_little_ninja_foo_1=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
    5682                   if test -z "$my_little_ninja_foo_1"; then
    5683                     newdependency_libs="$newdependency_libs $mynewdependency_lib"
    5684                   fi
    5685                 fi
     9286                func_basename "$deplib"
     9287                name="$func_basename_result"
     9288                func_resolve_sysroot "$deplib"
     9289                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
     9290                test -z "$libdir" && \
     9291                  func_fatal_error "\`$deplib' is not a valid libtool archive"
     9292                func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
    56869293                ;;
    5687                   *)
    5688                 if test "$installed" = yes; then
    5689                   # Rather use S=WORKDIR if our version of portage supports it.
    5690                   # This is because some ebuild (gcc) do not use $S as buildroot.
    5691                   if test "$PWORKDIR"; then
    5692                     S="$PWORKDIR"
    5693                   fi
    5694                   # We do not want portage's build root ($S) present.
    5695                   my_little_ninja_foo_2=`echo $deplib |$EGREP -e "$S"`
    5696                   # We do not want portage's install root ($D) present.
    5697                   my_little_ninja_foo_3=`echo $deplib |$EGREP -e "$D"`
    5698                   if test -n "$my_little_ninja_foo_2" && test "$S"; then
    5699                     mynewdependency_lib=""
    5700                   elif test -n "$my_little_ninja_foo_3" && test "$D"; then
    5701                     eval mynewdependency_lib=`echo "$deplib" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
    5702                   else
    5703                     mynewdependency_lib="$deplib"
    5704                   fi
    5705                 else
    5706                   mynewdependency_lib="$deplib"
    5707                 fi
    5708                 # Do not add duplicates
    5709                 if test "$mynewdependency_lib"; then
    5710                   my_little_ninja_foo_4=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
    5711                   if test -z "$my_little_ninja_foo_4"; then
    5712                         newdependency_libs="$newdependency_libs $mynewdependency_lib"
    5713                   fi
    5714                 fi
     9294              -L*)
     9295                func_stripname -L '' "$deplib"
     9296                func_replace_sysroot "$func_stripname_result"
     9297                func_append newdependency_libs " -L$func_replace_sysroot_result"
    57159298                ;;
     9299              -R*)
     9300                func_stripname -R '' "$deplib"
     9301                func_replace_sysroot "$func_stripname_result"
     9302                func_append newdependency_libs " -R$func_replace_sysroot_result"
     9303                ;;
     9304              *) func_append newdependency_libs " $deplib" ;;
    57169305              esac
    57179306            done
    57189307            dependency_libs="$newdependency_libs"
    57199308            newdlfiles=
     9309
    57209310            for lib in $dlfiles; do
    5721               name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
    5722               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
    5723               if test -z "$libdir"; then
    5724                 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
    5725                 exit $EXIT_FAILURE
    5726               fi
    5727               newdlfiles="$newdlfiles $libdir/$name"
     9311              case $lib in
     9312              *.la)
     9313                func_basename "$lib"
     9314                name="$func_basename_result"
     9315                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
     9316                test -z "$libdir" && \
     9317                  func_fatal_error "\`$lib' is not a valid libtool archive"
     9318                func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
     9319                ;;
     9320              *) func_append newdlfiles " $lib" ;;
     9321              esac
    57289322            done
    57299323            dlfiles="$newdlfiles"
    57309324            newdlprefiles=
    57319325            for lib in $dlprefiles; do
    5732               name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
    5733               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
    5734               if test -z "$libdir"; then
    5735                 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
    5736                 exit $EXIT_FAILURE
    5737               fi
    5738               newdlprefiles="$newdlprefiles $libdir/$name"
     9326              case $lib in
     9327              *.la)
     9328                # Only pass preopened files to the pseudo-archive (for
     9329                # eventual linking with the app. that links it) if we
     9330                # didn't already link the preopened objects directly into
     9331                # the library:
     9332                func_basename "$lib"
     9333                name="$func_basename_result"
     9334                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
     9335                test -z "$libdir" && \
     9336                  func_fatal_error "\`$lib' is not a valid libtool archive"
     9337                func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
     9338                ;;
     9339              esac
    57399340            done
    57409341            dlprefiles="$newdlprefiles"
     
    57469347                *) abs=`pwd`"/$lib" ;;
    57479348              esac
    5748               newdlfiles="$newdlfiles $abs"
     9349              func_append newdlfiles " $abs"
    57499350            done
    57509351            dlfiles="$newdlfiles"
     
    57559356                *) abs=`pwd`"/$lib" ;;
    57569357              esac
    5757               newdlprefiles="$newdlprefiles $abs"
     9358              func_append newdlprefiles " $abs"
    57589359            done
    57599360            dlprefiles="$newdlprefiles"
    57609361          fi
    5761           $rm $output
     9362          $RM $output
    57629363          # place dlname in correct position for cygwin
     9364          # In fact, it would be nice if we could use this code for all target
     9365          # systems that can't hard-code library paths into their executables
     9366          # and that have no shared library path variable independent of PATH,
     9367          # but it turns out we can't easily determine that from inspecting
     9368          # libtool variables, so we have to hard-code the OSs to which it
     9369          # applies here; at the moment, that means platforms that use the PE
     9370          # object format with DLL files.  See the long comment at the top of
     9371          # tests/bindir.at for full details.
    57639372          tdlname=$dlname
    57649373          case $host,$output,$installed,$module,$dlname in
    5765             *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
     9374            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
     9375              # If a -bindir argument was supplied, place the dll there.
     9376              if test "x$bindir" != x ;
     9377              then
     9378                func_relative_path "$install_libdir" "$bindir"
     9379                tdlname=$func_relative_path_result$dlname
     9380              else
     9381                # Otherwise fall back on heuristic.
     9382                tdlname=../bin/$dlname
     9383              fi
     9384              ;;
    57669385          esac
    5767           # Do not add duplicates
    5768           if test "$installed" = yes && test "$D"; then
    5769             install_libdir=`echo "$install_libdir" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
    5770           fi
    5771           $echo > $output "\
     9386          $ECHO > $output "\
    57729387# $outputname - a libtool library file
    5773 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
     9388# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
    57749389#
    57759390# Please DO NOT delete this file!
     
    57859400old_library='$old_library'
    57869401
     9402# Linker flags that can not go in dependency_libs.
     9403inherited_linker_flags='$new_inherited_linker_flags'
     9404
    57879405# Libraries that this one depends upon.
    57889406dependency_libs='$dependency_libs'
     9407
     9408# Names of additional weak libraries provided by this library
     9409weak_library_names='$weak_libs'
    57899410
    57909411# Version information for $libname.
     
    58069427libdir='$install_libdir'"
    58079428          if test "$installed" = no && test "$need_relink" = yes; then
    5808             $echo >> $output "\
     9429            $ECHO >> $output "\
    58099430relink_command=\"$relink_command\""
    58109431          fi
    58119432        done
    5812       fi
     9433      }
    58139434
    58149435      # Do a symbolic link so that the libtool archive can be found in
    58159436      # LD_LIBRARY_PATH before the program is installed.
    5816       $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
    5817       $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
     9437      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
    58189438      ;;
    58199439    esac
    58209440    exit $EXIT_SUCCESS
    5821     ;;
    5822 
    5823   # libtool install mode
    5824   install)
    5825     modename="$modename: install"
    5826 
    5827     # There may be an optional sh(1) argument at the beginning of
    5828     # install_prog (especially on Windows NT).
    5829     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
    5830        # Allow the use of GNU shtool's install command.
    5831        $echo "X$nonopt" | grep shtool > /dev/null; then
    5832       # Aesthetically quote it.
    5833       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
    5834       case $arg in
    5835       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
    5836         arg="\"$arg\""
    5837         ;;
    5838       esac
    5839       install_prog="$arg "
    5840       arg="$1"
    5841       shift
    5842     else
    5843       install_prog=
    5844       arg=$nonopt
    5845     fi
    5846 
    5847     # The real first argument should be the name of the installation program.
    5848     # Aesthetically quote it.
    5849     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    5850     case $arg in
    5851     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
    5852       arg="\"$arg\""
    5853       ;;
    5854     esac
    5855     install_prog="$install_prog$arg"
    5856 
    5857     # We need to accept at least all the BSD install flags.
    5858     dest=
     9441}
     9442
     9443{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
     9444    func_mode_link ${1+"$@"}
     9445
     9446
     9447# func_mode_uninstall arg...
     9448func_mode_uninstall ()
     9449{
     9450    $opt_debug
     9451    RM="$nonopt"
    58599452    files=
    5860     opts=
    5861     prev=
    5862     install_type=
    5863     isdir=no
    5864     stripme=
    5865     for arg
    5866     do
    5867       if test -n "$dest"; then
    5868         files="$files $dest"
    5869         dest=$arg
    5870         continue
    5871       fi
    5872 
    5873       case $arg in
    5874       -d) isdir=yes ;;
    5875       -f)
    5876         case " $install_prog " in
    5877         *[\\\ /]cp\ *) ;;
    5878         *) prev=$arg ;;
    5879         esac
    5880         ;;
    5881       -g | -m | -o) prev=$arg ;;
    5882       -s)
    5883         stripme=" -s"
    5884         continue
    5885         ;;
    5886       -*)
    5887         ;;
    5888       *)
    5889         # If the previous option needed an argument, then skip it.
    5890         if test -n "$prev"; then
    5891           prev=
    5892         else
    5893           dest=$arg
    5894           continue
    5895         fi
    5896         ;;
    5897       esac
    5898 
    5899       # Aesthetically quote the argument.
    5900       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    5901       case $arg in
    5902       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
    5903         arg="\"$arg\""
    5904         ;;
    5905       esac
    5906       install_prog="$install_prog $arg"
    5907     done
    5908 
    5909     if test -z "$install_prog"; then
    5910       $echo "$modename: you must specify an install program" 1>&2
    5911       $echo "$help" 1>&2
    5912       exit $EXIT_FAILURE
    5913     fi
    5914 
    5915     if test -n "$prev"; then
    5916       $echo "$modename: the \`$prev' option requires an argument" 1>&2
    5917       $echo "$help" 1>&2
    5918       exit $EXIT_FAILURE
    5919     fi
    5920 
    5921     if test -z "$files"; then
    5922       if test -z "$dest"; then
    5923         $echo "$modename: no file or destination specified" 1>&2
    5924       else
    5925         $echo "$modename: you must specify a destination" 1>&2
    5926       fi
    5927       $echo "$help" 1>&2
    5928       exit $EXIT_FAILURE
    5929     fi
    5930 
    5931     # Strip any trailing slash from the destination.
    5932     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
    5933 
    5934     # Check to see that the destination is a directory.
    5935     test -d "$dest" && isdir=yes
    5936     if test "$isdir" = yes; then
    5937       destdir="$dest"
    5938       destname=
    5939     else
    5940       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
    5941       test "X$destdir" = "X$dest" && destdir=.
    5942       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
    5943 
    5944       # Not a directory, so check to see that there is only one file specified.
    5945       set dummy $files
    5946       if test "$#" -gt 2; then
    5947         $echo "$modename: \`$dest' is not a directory" 1>&2
    5948         $echo "$help" 1>&2
    5949         exit $EXIT_FAILURE
    5950       fi
    5951     fi
    5952     case $destdir in
    5953     [\\/]* | [A-Za-z]:[\\/]*) ;;
    5954     *)
    5955       for file in $files; do
    5956         case $file in
    5957         *.lo) ;;
    5958         *)
    5959           $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
    5960           $echo "$help" 1>&2
    5961           exit $EXIT_FAILURE
    5962           ;;
    5963         esac
    5964       done
    5965       ;;
    5966     esac
     9453    rmforce=
     9454    exit_status=0
    59679455
    59689456    # This variable tells wrapper scripts just to set variables rather
     
    59709458    libtool_install_magic="$magic"
    59719459
    5972     staticlibs=
    5973     future_libdirs=
    5974     current_libdirs=
    5975     for file in $files; do
    5976 
    5977       # Do each installation.
    5978       case $file in
    5979       *.$libext)
    5980         # Do the static libraries later.
    5981         staticlibs="$staticlibs $file"
    5982         ;;
    5983 
    5984       *.la)
    5985         # Check to see that this really is a libtool archive.
    5986         if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
    5987         else
    5988           $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
    5989           $echo "$help" 1>&2
    5990           exit $EXIT_FAILURE
    5991         fi
    5992 
    5993         library_names=
    5994         old_library=
    5995         relink_command=
    5996         # If there is no directory component, then add one.
    5997         case $file in
    5998         */* | *\\*) . $file ;;
    5999         *) . ./$file ;;
    6000         esac
    6001 
    6002         # Add the libdir to current_libdirs if it is the destination.
    6003         if test "X$destdir" = "X$libdir"; then
    6004           case "$current_libdirs " in
    6005           *" $libdir "*) ;;
    6006           *) current_libdirs="$current_libdirs $libdir" ;;
    6007           esac
    6008         else
    6009           # Note the libdir as a future libdir.
    6010           case "$future_libdirs " in
    6011           *" $libdir "*) ;;
    6012           *) future_libdirs="$future_libdirs $libdir" ;;
    6013           esac
    6014         fi
    6015 
    6016         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
    6017         test "X$dir" = "X$file/" && dir=
    6018         dir="$dir$objdir"
    6019 
    6020         if test -n "$relink_command"; then
    6021           # Determine the prefix the user has applied to our future dir.
    6022           inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
    6023 
    6024           # Don't allow the user to place us outside of our expected
    6025           # location b/c this prevents finding dependent libraries that
    6026           # are installed to the same prefix.
    6027           # At present, this check doesn't affect windows .dll's that
    6028           # are installed into $libdir/../bin (currently, that works fine)
    6029           # but it's something to keep an eye on.
    6030           if test "$inst_prefix_dir" = "$destdir"; then
    6031             $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
    6032             exit $EXIT_FAILURE
    6033           fi
    6034 
    6035           if test -n "$inst_prefix_dir"; then
    6036             # Stick the inst_prefix_dir data into the link command.
    6037             relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
    6038           else
    6039             relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
    6040           fi
    6041 
    6042           $echo "$modename: warning: relinking \`$file'" 1>&2
    6043           $show "$relink_command"
    6044           if $run eval "$relink_command"; then :
    6045           else
    6046             $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
    6047             exit $EXIT_FAILURE
    6048           fi
    6049         fi
    6050 
    6051         # See the names of the shared library.
    6052         set dummy $library_names
    6053         if test -n "$2"; then
    6054           realname="$2"
    6055           shift
    6056           shift
    6057 
    6058           srcname="$realname"
    6059           test -n "$relink_command" && srcname="$realname"T
    6060 
    6061           # Install the shared library and build the symlinks.
    6062           $show "$install_prog $dir/$srcname $destdir/$realname"
    6063           $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
    6064           if test -n "$stripme" && test -n "$striplib"; then
    6065             $show "$striplib $destdir/$realname"
    6066             $run eval "$striplib $destdir/$realname" || exit $?
    6067           fi
    6068 
    6069           if test "$#" -gt 0; then
    6070             # Delete the old symlinks, and create new ones.
    6071             # Try `ln -sf' first, because the `ln' binary might depend on
    6072             # the symlink we replace!  Solaris /bin/ln does not understand -f,
    6073             # so we also need to try rm && ln -s.
    6074             for linkname
    6075             do
    6076               if test "$linkname" != "$realname"; then
    6077                 $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
    6078                 $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
    6079               fi
    6080             done
    6081           fi
    6082 
    6083           # Do each command in the postinstall commands.
    6084           lib="$destdir/$realname"
    6085           cmds=$postinstall_cmds
    6086           save_ifs="$IFS"; IFS='~'
    6087           for cmd in $cmds; do
    6088             IFS="$save_ifs"
    6089             eval cmd=\"$cmd\"
    6090             $show "$cmd"
    6091             $run eval "$cmd" || {
    6092               lt_exit=$?
    6093 
    6094               # Restore the uninstalled library and exit
    6095               if test "$mode" = relink; then
    6096                 $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
    6097               fi
    6098 
    6099               exit $lt_exit
    6100             }
    6101           done
    6102           IFS="$save_ifs"
    6103         fi
    6104 
    6105         # Install the pseudo-library for information purposes.
    6106         name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    6107         instname="$dir/$name"i
    6108         $show "$install_prog $instname $destdir/$name"
    6109         $run eval "$install_prog $instname $destdir/$name" || exit $?
    6110 
    6111         # Maybe install the static library, too.
    6112         test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
    6113         ;;
    6114 
    6115       *.lo)
    6116         # Install (i.e. copy) a libtool object.
    6117 
    6118         # Figure out destination file name, if it wasn't already specified.
    6119         if test -n "$destname"; then
    6120           destfile="$destdir/$destname"
    6121         else
    6122           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    6123           destfile="$destdir/$destfile"
    6124         fi
    6125 
    6126         # Deduce the name of the destination old-style object file.
    6127         case $destfile in
    6128         *.lo)
    6129           staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
    6130           ;;
    6131         *.$objext)
    6132           staticdest="$destfile"
    6133           destfile=
    6134           ;;
    6135         *)
    6136           $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
    6137           $echo "$help" 1>&2
    6138           exit $EXIT_FAILURE
    6139           ;;
    6140         esac
    6141 
    6142         # Install the libtool object if requested.
    6143         if test -n "$destfile"; then
    6144           $show "$install_prog $file $destfile"
    6145           $run eval "$install_prog $file $destfile" || exit $?
    6146         fi
    6147 
    6148         # Install the old object if enabled.
    6149         if test "$build_old_libs" = yes; then
    6150           # Deduce the name of the old-style object file.
    6151           staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
    6152 
    6153           $show "$install_prog $staticobj $staticdest"
    6154           $run eval "$install_prog \$staticobj \$staticdest" || exit $?
    6155         fi
    6156         exit $EXIT_SUCCESS
    6157         ;;
    6158 
    6159       *)
    6160         # Figure out destination file name, if it wasn't already specified.
    6161         if test -n "$destname"; then
    6162           destfile="$destdir/$destname"
    6163         else
    6164           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    6165           destfile="$destdir/$destfile"
    6166         fi
    6167 
    6168         # If the file is missing, and there is a .exe on the end, strip it
    6169         # because it is most likely a libtool script we actually want to
    6170         # install
    6171         stripped_ext=""
    6172         case $file in
    6173           *.exe)
    6174             if test ! -f "$file"; then
    6175               file=`$echo $file|${SED} 's,.exe$,,'`
    6176               stripped_ext=".exe"
    6177             fi
    6178             ;;
    6179         esac
    6180 
    6181         # Do a test to see if this is really a libtool program.
    6182         case $host in
    6183         *cygwin*|*mingw*)
    6184             wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
    6185             ;;
    6186         *)
    6187             wrapper=$file
    6188             ;;
    6189         esac
    6190         if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
    6191           notinst_deplibs=
    6192           relink_command=
    6193 
    6194           # Note that it is not necessary on cygwin/mingw to append a dot to
    6195           # foo even if both foo and FILE.exe exist: automatic-append-.exe
    6196           # behavior happens only for exec(3), not for open(2)!  Also, sourcing
    6197           # `FILE.' does not work on cygwin managed mounts.
    6198           #
    6199           # If there is no directory component, then add one.
    6200           case $wrapper in
    6201           */* | *\\*) . ${wrapper} ;;
    6202           *) . ./${wrapper} ;;
    6203           esac
    6204 
    6205           # Check the variables that should have been set.
    6206           if test -z "$notinst_deplibs"; then
    6207             $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
    6208             exit $EXIT_FAILURE
    6209           fi
    6210 
    6211           finalize=yes
    6212           for lib in $notinst_deplibs; do
    6213             # Check to see that each library is installed.
    6214             libdir=
    6215             if test -f "$lib"; then
    6216               # If there is no directory component, then add one.
    6217               case $lib in
    6218               */* | *\\*) . $lib ;;
    6219               *) . ./$lib ;;
    6220               esac
    6221             fi
    6222             libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
    6223             if test -n "$libdir" && test ! -f "$libfile"; then
    6224               $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
    6225               finalize=no
    6226             fi
    6227           done
    6228 
    6229           relink_command=
    6230           # Note that it is not necessary on cygwin/mingw to append a dot to
    6231           # foo even if both foo and FILE.exe exist: automatic-append-.exe
    6232           # behavior happens only for exec(3), not for open(2)!  Also, sourcing
    6233           # `FILE.' does not work on cygwin managed mounts.
    6234           #
    6235           # If there is no directory component, then add one.
    6236           case $wrapper in
    6237           */* | *\\*) . ${wrapper} ;;
    6238           *) . ./${wrapper} ;;
    6239           esac
    6240 
    6241           outputname=
    6242           if test "$fast_install" = no && test -n "$relink_command"; then
    6243             if test "$finalize" = yes && test -z "$run"; then
    6244               tmpdir=`func_mktempdir`
    6245               file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
    6246               outputname="$tmpdir/$file"
    6247               # Replace the output file specification.
    6248               relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
    6249 
    6250               $show "$relink_command"
    6251               if $run eval "$relink_command"; then :
    6252               else
    6253                 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
    6254                 ${rm}r "$tmpdir"
    6255                 continue
    6256               fi
    6257               file="$outputname"
    6258             else
    6259               $echo "$modename: warning: cannot relink \`$file'" 1>&2
    6260             fi
    6261           else
    6262             # Install the binary that we compiled earlier.
    6263             file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
    6264           fi
    6265         fi
    6266 
    6267         # remove .exe since cygwin /usr/bin/install will append another
    6268         # one anyway
    6269         case $install_prog,$host in
    6270         */usr/bin/install*,*cygwin*)
    6271           case $file:$destfile in
    6272           *.exe:*.exe)
    6273             # this is ok
    6274             ;;
    6275           *.exe:*)
    6276             destfile=$destfile.exe
    6277             ;;
    6278           *:*.exe)
    6279             destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
    6280             ;;
    6281           esac
    6282           ;;
    6283         esac
    6284         $show "$install_prog$stripme $file $destfile"
    6285         $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
    6286         test -n "$outputname" && ${rm}r "$tmpdir"
    6287         ;;
    6288       esac
    6289     done
    6290 
    6291     for file in $staticlibs; do
    6292       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    6293 
    6294       # Set up the ranlib parameters.
    6295       oldlib="$destdir/$name"
    6296 
    6297       $show "$install_prog $file $oldlib"
    6298       $run eval "$install_prog \$file \$oldlib" || exit $?
    6299 
    6300       if test -n "$stripme" && test -n "$old_striplib"; then
    6301         $show "$old_striplib $oldlib"
    6302         $run eval "$old_striplib $oldlib" || exit $?
    6303       fi
    6304 
    6305       # Do each command in the postinstall commands.
    6306       cmds=$old_postinstall_cmds
    6307       save_ifs="$IFS"; IFS='~'
    6308       for cmd in $cmds; do
    6309         IFS="$save_ifs"
    6310         eval cmd=\"$cmd\"
    6311         $show "$cmd"
    6312         $run eval "$cmd" || exit $?
    6313       done
    6314       IFS="$save_ifs"
    6315     done
    6316 
    6317     if test -n "$future_libdirs"; then
    6318       $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
    6319     fi
    6320 
    6321     if test -n "$current_libdirs"; then
    6322       # Maybe just do a dry run.
    6323       test -n "$run" && current_libdirs=" -n$current_libdirs"
    6324       exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
    6325     else
    6326       exit $EXIT_SUCCESS
    6327     fi
    6328     ;;
    6329 
    6330   # libtool finish mode
    6331   finish)
    6332     modename="$modename: finish"
    6333     libdirs="$nonopt"
    6334     admincmds=
    6335 
    6336     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
    6337       for dir
    6338       do
    6339         libdirs="$libdirs $dir"
    6340       done
    6341 
    6342       for libdir in $libdirs; do
    6343         if test -n "$finish_cmds"; then
    6344           # Do each command in the finish commands.
    6345           cmds=$finish_cmds
    6346           save_ifs="$IFS"; IFS='~'
    6347           for cmd in $cmds; do
    6348             IFS="$save_ifs"
    6349             eval cmd=\"$cmd\"
    6350             $show "$cmd"
    6351             $run eval "$cmd" || admincmds="$admincmds
    6352        $cmd"
    6353           done
    6354           IFS="$save_ifs"
    6355         fi
    6356         if test -n "$finish_eval"; then
    6357           # Do the single finish_eval.
    6358           eval cmds=\"$finish_eval\"
    6359           $run eval "$cmds" || admincmds="$admincmds
    6360        $cmds"
    6361         fi
    6362       done
    6363     fi
    6364 
    6365     # Exit here if they wanted silent mode.
    6366     test "$show" = : && exit $EXIT_SUCCESS
    6367 
    6368     $echo "X----------------------------------------------------------------------" | $Xsed
    6369     $echo "Libraries have been installed in:"
    6370     for libdir in $libdirs; do
    6371       $echo "   $libdir"
    6372     done
    6373     $echo
    6374     $echo "If you ever happen to want to link against installed libraries"
    6375     $echo "in a given directory, LIBDIR, you must either use libtool, and"
    6376     $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
    6377     $echo "flag during linking and do at least one of the following:"
    6378     if test -n "$shlibpath_var"; then
    6379       $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
    6380       $echo "     during execution"
    6381     fi
    6382     if test -n "$runpath_var"; then
    6383       $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
    6384       $echo "     during linking"
    6385     fi
    6386     if test -n "$hardcode_libdir_flag_spec"; then
    6387       libdir=LIBDIR
    6388       eval flag=\"$hardcode_libdir_flag_spec\"
    6389 
    6390       $echo "   - use the \`$flag' linker flag"
    6391     fi
    6392     if test -n "$admincmds"; then
    6393       $echo "   - have your system administrator run these commands:$admincmds"
    6394     fi
    6395     if test -f /etc/ld.so.conf; then
    6396       $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
    6397     fi
    6398     $echo
    6399     $echo "See any operating system documentation about shared libraries for"
    6400     $echo "more information, such as the ld(1) and ld.so(8) manual pages."
    6401     $echo "X----------------------------------------------------------------------" | $Xsed
    6402     exit $EXIT_SUCCESS
    6403     ;;
    6404 
    6405   # libtool execute mode
    6406   execute)
    6407     modename="$modename: execute"
    6408 
    6409     # The first argument is the command name.
    6410     cmd="$nonopt"
    6411     if test -z "$cmd"; then
    6412       $echo "$modename: you must specify a COMMAND" 1>&2
    6413       $echo "$help"
    6414       exit $EXIT_FAILURE
    6415     fi
    6416 
    6417     # Handle -dlopen flags immediately.
    6418     for file in $execute_dlfiles; do
    6419       if test ! -f "$file"; then
    6420         $echo "$modename: \`$file' is not a file" 1>&2
    6421         $echo "$help" 1>&2
    6422         exit $EXIT_FAILURE
    6423       fi
    6424 
    6425       dir=
    6426       case $file in
    6427       *.la)
    6428         # Check to see that this really is a libtool archive.
    6429         if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
    6430         else
    6431           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
    6432           $echo "$help" 1>&2
    6433           exit $EXIT_FAILURE
    6434         fi
    6435 
    6436         # Read the libtool library.
    6437         dlname=
    6438         library_names=
    6439 
    6440         # If there is no directory component, then add one.
    6441         case $file in
    6442         */* | *\\*) . $file ;;
    6443         *) . ./$file ;;
    6444         esac
    6445 
    6446         # Skip this library if it cannot be dlopened.
    6447         if test -z "$dlname"; then
    6448           # Warn if it was a shared library.
    6449           test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
    6450           continue
    6451         fi
    6452 
    6453         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
    6454         test "X$dir" = "X$file" && dir=.
    6455 
    6456         if test -f "$dir/$objdir/$dlname"; then
    6457           dir="$dir/$objdir"
    6458         else
    6459           $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
    6460           exit $EXIT_FAILURE
    6461         fi
    6462         ;;
    6463 
    6464       *.lo)
    6465         # Just add the directory containing the .lo file.
    6466         dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
    6467         test "X$dir" = "X$file" && dir=.
    6468         ;;
    6469 
    6470       *)
    6471         $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
    6472         continue
    6473         ;;
    6474       esac
    6475 
    6476       # Get the absolute pathname.
    6477       absdir=`cd "$dir" && pwd`
    6478       test -n "$absdir" && dir="$absdir"
    6479 
    6480       # Now add the directory to shlibpath_var.
    6481       if eval "test -z \"\$$shlibpath_var\""; then
    6482         eval "$shlibpath_var=\"\$dir\""
    6483       else
    6484         eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
    6485       fi
    6486     done
    6487 
    6488     # This variable tells wrapper scripts just to set shlibpath_var
    6489     # rather than running their programs.
    6490     libtool_execute_magic="$magic"
    6491 
    6492     # Check if any of the arguments is a wrapper script.
    6493     args=
    6494     for file
    6495     do
    6496       case $file in
    6497       -*) ;;
    6498       *)
    6499         # Do a test to see if this is really a libtool program.
    6500         if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    6501           # If there is no directory component, then add one.
    6502           case $file in
    6503           */* | *\\*) . $file ;;
    6504           *) . ./$file ;;
    6505           esac
    6506 
    6507           # Transform arg to wrapped name.
    6508           file="$progdir/$program"
    6509         fi
    6510         ;;
    6511       esac
    6512       # Quote arguments (to preserve shell metacharacters).
    6513       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
    6514       args="$args \"$file\""
    6515     done
    6516 
    6517     if test -z "$run"; then
    6518       if test -n "$shlibpath_var"; then
    6519         # Export the shlibpath_var.
    6520         eval "export $shlibpath_var"
    6521       fi
    6522 
    6523       # Restore saved environment variables
    6524       if test "${save_LC_ALL+set}" = set; then
    6525         LC_ALL="$save_LC_ALL"; export LC_ALL
    6526       fi
    6527       if test "${save_LANG+set}" = set; then
    6528         LANG="$save_LANG"; export LANG
    6529       fi
    6530 
    6531       # Now prepare to actually exec the command.
    6532       exec_cmd="\$cmd$args"
    6533     else
    6534       # Display what would be done.
    6535       if test -n "$shlibpath_var"; then
    6536         eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
    6537         $echo "export $shlibpath_var"
    6538       fi
    6539       $echo "$cmd$args"
    6540       exit $EXIT_SUCCESS
    6541     fi
    6542     ;;
    6543 
    6544   # libtool clean and uninstall mode
    6545   clean | uninstall)
    6546     modename="$modename: $mode"
    6547     rm="$nonopt"
    6548     files=
    6549     rmforce=
    6550     exit_status=0
    6551 
    6552     # This variable tells wrapper scripts just to set variables rather
    6553     # than running their programs.
    6554     libtool_install_magic="$magic"
    6555 
    65569460    for arg
    65579461    do
    65589462      case $arg in
    6559       -f) rm="$rm $arg"; rmforce=yes ;;
    6560       -*) rm="$rm $arg" ;;
    6561       *) files="$files $arg" ;;
     9463      -f) func_append RM " $arg"; rmforce=yes ;;
     9464      -*) func_append RM " $arg" ;;
     9465      *) func_append files " $arg" ;;
    65629466      esac
    65639467    done
    65649468
    6565     if test -z "$rm"; then
    6566       $echo "$modename: you must specify an RM program" 1>&2
    6567       $echo "$help" 1>&2
    6568       exit $EXIT_FAILURE
    6569     fi
     9469    test -z "$RM" && \
     9470      func_fatal_help "you must specify an RM program"
    65709471
    65719472    rmdirs=
    65729473
    6573     origobjdir="$objdir"
    65749474    for file in $files; do
    6575       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
    6576       if test "X$dir" = "X$file"; then
    6577         dir=.
    6578         objdir="$origobjdir"
     9475      func_dirname "$file" "" "."
     9476      dir="$func_dirname_result"
     9477      if test "X$dir" = X.; then
     9478        odir="$objdir"
    65799479      else
    6580         objdir="$dir/$origobjdir"
     9480        odir="$dir/$objdir"
    65819481      fi
    6582       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
    6583       test "$mode" = uninstall && objdir="$dir"
    6584 
    6585       # Remember objdir for removal later, being careful to avoid duplicates
    6586       if test "$mode" = clean; then
     9482      func_basename "$file"
     9483      name="$func_basename_result"
     9484      test "$opt_mode" = uninstall && odir="$dir"
     9485
     9486      # Remember odir for removal later, being careful to avoid duplicates
     9487      if test "$opt_mode" = clean; then
    65879488        case " $rmdirs " in
    6588           *" $objdir "*) ;;
    6589           *) rmdirs="$rmdirs $objdir" ;;
     9489          *" $odir "*) ;;
     9490          *) func_append rmdirs " $odir" ;;
    65909491        esac
    65919492      fi
    65929493
    65939494      # Don't error if the file doesn't exist and rm -f was used.
    6594       if (test -L "$file") >/dev/null 2>&1 \
    6595         || (test -h "$file") >/dev/null 2>&1 \
    6596         || test -f "$file"; then
     9495      if { test -L "$file"; } >/dev/null 2>&1 ||
     9496         { test -h "$file"; } >/dev/null 2>&1 ||
     9497        test -f "$file"; then
    65979498        :
    65989499      elif test -d "$file"; then
     
    66089509      *.la)
    66099510        # Possibly a libtool archive, so verify it.
    6610         if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    6611           . $dir/$name
     9511        if func_lalib_p "$file"; then
     9512          func_source $dir/$name
    66129513
    66139514          # Delete the libtool libraries and symlinks.
    66149515          for n in $library_names; do
    6615             rmfiles="$rmfiles $objdir/$n"
     9516            func_append rmfiles " $odir/$n"
    66169517          done
    6617           test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
    6618 
    6619           case "$mode" in
     9518          test -n "$old_library" && func_append rmfiles " $odir/$old_library"
     9519
     9520          case "$opt_mode" in
    66209521          clean)
    6621             case "  $library_names " in
    6622             # "  " in the beginning catches empty $dlname
     9522            case " $library_names " in
    66239523            *" $dlname "*) ;;
    6624             *) rmfiles="$rmfiles $objdir/$dlname" ;;
     9524            *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
    66259525            esac
    6626              test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
     9526            test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
    66279527            ;;
    66289528          uninstall)
    66299529            if test -n "$library_names"; then
    66309530              # Do each command in the postuninstall commands.
    6631               cmds=$postuninstall_cmds
    6632               save_ifs="$IFS"; IFS='~'
    6633               for cmd in $cmds; do
    6634                 IFS="$save_ifs"
    6635                 eval cmd=\"$cmd\"
    6636                 $show "$cmd"
    6637                 $run eval "$cmd"
    6638                 if test "$?" -ne 0 && test "$rmforce" != yes; then
    6639                   exit_status=1
    6640                 fi
    6641               done
    6642               IFS="$save_ifs"
     9531              func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
    66439532            fi
    66449533
    66459534            if test -n "$old_library"; then
    66469535              # Do each command in the old_postuninstall commands.
    6647               cmds=$old_postuninstall_cmds
    6648               save_ifs="$IFS"; IFS='~'
    6649               for cmd in $cmds; do
    6650                 IFS="$save_ifs"
    6651                 eval cmd=\"$cmd\"
    6652                 $show "$cmd"
    6653                 $run eval "$cmd"
    6654                 if test "$?" -ne 0 && test "$rmforce" != yes; then
    6655                   exit_status=1
    6656                 fi
    6657               done
    6658               IFS="$save_ifs"
     9536              func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
    66599537            fi
    66609538            # FIXME: should reinstall the best remaining shared library.
     
    66669544      *.lo)
    66679545        # Possibly a libtool object, so verify it.
    6668         if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
     9546        if func_lalib_p "$file"; then
    66699547
    66709548          # Read the .lo file
    6671           . $dir/$name
     9549          func_source $dir/$name
    66729550
    66739551          # Add PIC object to the list of files to remove.
    6674           if test -n "$pic_object" \
    6675              && test "$pic_object" != none; then
    6676             rmfiles="$rmfiles $dir/$pic_object"
     9552          if test -n "$pic_object" &&
     9553             test "$pic_object" != none; then
     9554            func_append rmfiles " $dir/$pic_object"
    66779555          fi
    66789556
    66799557          # Add non-PIC object to the list of files to remove.
    6680           if test -n "$non_pic_object" \
    6681              && test "$non_pic_object" != none; then
    6682             rmfiles="$rmfiles $dir/$non_pic_object"
     9558          if test -n "$non_pic_object" &&
     9559             test "$non_pic_object" != none; then
     9560            func_append rmfiles " $dir/$non_pic_object"
    66839561          fi
    66849562        fi
     
    66869564
    66879565      *)
    6688         if test "$mode" = clean ; then
     9566        if test "$opt_mode" = clean ; then
    66899567          noexename=$name
    66909568          case $file in
    66919569          *.exe)
    6692             file=`$echo $file|${SED} 's,.exe$,,'`
    6693             noexename=`$echo $name|${SED} 's,.exe$,,'`
     9570            func_stripname '' '.exe' "$file"
     9571            file=$func_stripname_result
     9572            func_stripname '' '.exe' "$name"
     9573            noexename=$func_stripname_result
    66949574            # $file with .exe has already been added to rmfiles,
    66959575            # add $file without .exe
    6696             rmfiles="$rmfiles $file"
     9576            func_append rmfiles " $file"
    66979577            ;;
    66989578          esac
    66999579          # Do a test to see if this is a libtool program.
    6700           if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    6701             relink_command=
    6702             . $dir/$noexename
     9580          if func_ltwrapper_p "$file"; then
     9581            if func_ltwrapper_executable_p "$file"; then
     9582              func_ltwrapper_scriptname "$file"
     9583              relink_command=
     9584              func_source $func_ltwrapper_scriptname_result
     9585              func_append rmfiles " $func_ltwrapper_scriptname_result"
     9586            else
     9587              relink_command=
     9588              func_source $dir/$noexename
     9589            fi
    67039590
    67049591            # note $name still contains .exe if it was in $file originally
    67059592            # as does the version of $file that was added into $rmfiles
    6706             rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
     9593            func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
    67079594            if test "$fast_install" = yes && test -n "$relink_command"; then
    6708               rmfiles="$rmfiles $objdir/lt-$name"
     9595              func_append rmfiles " $odir/lt-$name"
    67099596            fi
    67109597            if test "X$noexename" != "X$name" ; then
    6711               rmfiles="$rmfiles $objdir/lt-${noexename}.c"
     9598              func_append rmfiles " $odir/lt-${noexename}.c"
    67129599            fi
    67139600          fi
     
    67159602        ;;
    67169603      esac
    6717       $show "$rm $rmfiles"
    6718       $run $rm $rmfiles || exit_status=1
     9604      func_show_eval "$RM $rmfiles" 'exit_status=1'
    67199605    done
    6720     objdir="$origobjdir"
    67219606
    67229607    # Try to remove the ${objdir}s in the directories where we deleted files
    67239608    for dir in $rmdirs; do
    67249609      if test -d "$dir"; then
    6725         $show "rmdir $dir"
    6726         $run rmdir $dir >/dev/null 2>&1
     9610        func_show_eval "rmdir $dir >/dev/null 2>&1"
    67279611      fi
    67289612    done
    67299613
    67309614    exit $exit_status
    6731     ;;
    6732 
    6733   "")
    6734     $echo "$modename: you must specify a MODE" 1>&2
    6735     $echo "$generic_help" 1>&2
    6736     exit $EXIT_FAILURE
    6737     ;;
    6738   esac
    6739 
    6740   if test -z "$exec_cmd"; then
    6741     $echo "$modename: invalid operation mode \`$mode'" 1>&2
    6742     $echo "$generic_help" 1>&2
    6743     exit $EXIT_FAILURE
    6744   fi
    6745 fi # test -z "$show_help"
     9615}
     9616
     9617{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
     9618    func_mode_uninstall ${1+"$@"}
     9619
     9620test -z "$opt_mode" && {
     9621  help="$generic_help"
     9622  func_fatal_help "you must specify a MODE"
     9623}
     9624
     9625test -z "$exec_cmd" && \
     9626  func_fatal_help "invalid operation mode \`$opt_mode'"
    67469627
    67479628if test -n "$exec_cmd"; then
    6748   eval exec $exec_cmd
     9629  eval exec "$exec_cmd"
    67499630  exit $EXIT_FAILURE
    67509631fi
    67519632
    6752 # We need to display help for each of the modes.
    6753 case $mode in
    6754 "") $echo \
    6755 "Usage: $modename [OPTION]... [MODE-ARG]...
    6756 
    6757 Provide generalized library-building support services.
    6758 
    6759     --config          show all configuration variables
    6760     --debug           enable verbose shell tracing
    6761 -n, --dry-run         display commands without modifying any files
    6762     --features        display basic configuration information and exit
    6763     --finish          same as \`--mode=finish'
    6764     --help            display this help message and exit
    6765     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
    6766     --quiet           same as \`--silent'
    6767     --silent          don't print informational messages
    6768     --tag=TAG         use configuration variables from tag TAG
    6769     --version         print version information
    6770 
    6771 MODE must be one of the following:
    6772 
    6773       clean           remove files from the build directory
    6774       compile         compile a source file into a libtool object
    6775       execute         automatically set library path, then run a program
    6776       finish          complete the installation of libtool libraries
    6777       install         install libraries or executables
    6778       link            create a library or an executable
    6779       uninstall       remove libraries from an installed directory
    6780 
    6781 MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
    6782 a more detailed description of MODE.
    6783 
    6784 Report bugs to <bug-libtool@gnu.org>."
    6785   exit $EXIT_SUCCESS
    6786   ;;
    6787 
    6788 clean)
    6789   $echo \
    6790 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
    6791 
    6792 Remove files from the build directory.
    6793 
    6794 RM is the name of the program to use to delete files associated with each FILE
    6795 (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
    6796 to RM.
    6797 
    6798 If FILE is a libtool library, object or program, all the files associated
    6799 with it are deleted. Otherwise, only FILE itself is deleted using RM."
    6800   ;;
    6801 
    6802 compile)
    6803   $echo \
    6804 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
    6805 
    6806 Compile a source file into a libtool library object.
    6807 
    6808 This mode accepts the following additional options:
    6809 
    6810   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
    6811   -prefer-pic       try to building PIC objects only
    6812   -prefer-non-pic   try to building non-PIC objects only
    6813   -static           always build a \`.o' file suitable for static linking
    6814 
    6815 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
    6816 from the given SOURCEFILE.
    6817 
    6818 The output file name is determined by removing the directory component from
    6819 SOURCEFILE, then substituting the C source code suffix \`.c' with the
    6820 library object suffix, \`.lo'."
    6821   ;;
    6822 
    6823 execute)
    6824   $echo \
    6825 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
    6826 
    6827 Automatically set library path, then run a program.
    6828 
    6829 This mode accepts the following additional options:
    6830 
    6831   -dlopen FILE      add the directory containing FILE to the library path
    6832 
    6833 This mode sets the library path environment variable according to \`-dlopen'
    6834 flags.
    6835 
    6836 If any of the ARGS are libtool executable wrappers, then they are translated
    6837 into their corresponding uninstalled binary, and any of their required library
    6838 directories are added to the library path.
    6839 
    6840 Then, COMMAND is executed, with ARGS as arguments."
    6841   ;;
    6842 
    6843 finish)
    6844   $echo \
    6845 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
    6846 
    6847 Complete the installation of libtool libraries.
    6848 
    6849 Each LIBDIR is a directory that contains libtool libraries.
    6850 
    6851 The commands that this mode executes may require superuser privileges.  Use
    6852 the \`--dry-run' option if you just want to see what would be executed."
    6853   ;;
    6854 
    6855 install)
    6856   $echo \
    6857 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
    6858 
    6859 Install executables or libraries.
    6860 
    6861 INSTALL-COMMAND is the installation command.  The first component should be
    6862 either the \`install' or \`cp' program.
    6863 
    6864 The rest of the components are interpreted as arguments to that command (only
    6865 BSD-compatible install options are recognized)."
    6866   ;;
    6867 
    6868 link)
    6869   $echo \
    6870 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
    6871 
    6872 Link object files or libraries together to form another library, or to
    6873 create an executable program.
    6874 
    6875 LINK-COMMAND is a command using the C compiler that you would use to create
    6876 a program from several object files.
    6877 
    6878 The following components of LINK-COMMAND are treated specially:
    6879 
    6880   -all-static       do not do any dynamic linking at all
    6881   -avoid-version    do not add a version suffix if possible
    6882   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
    6883   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
    6884   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
    6885   -export-symbols SYMFILE
    6886                     try to export only the symbols listed in SYMFILE
    6887   -export-symbols-regex REGEX
    6888                     try to export only the symbols matching REGEX
    6889   -LLIBDIR          search LIBDIR for required installed libraries
    6890   -lNAME            OUTPUT-FILE requires the installed library libNAME
    6891   -module           build a library that can dlopened
    6892   -no-fast-install  disable the fast-install mode
    6893   -no-install       link a not-installable executable
    6894   -no-undefined     declare that a library does not refer to external symbols
    6895   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
    6896   -objectlist FILE  Use a list of object files found in FILE to specify objects
    6897   -precious-files-regex REGEX
    6898                     don't remove output files matching REGEX
    6899   -release RELEASE  specify package release information
    6900   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
    6901   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
    6902   -static           do not do any dynamic linking of libtool libraries
    6903   -version-info CURRENT[:REVISION[:AGE]]
    6904                     specify library version info [each variable defaults to 0]
    6905 
    6906 All other options (arguments beginning with \`-') are ignored.
    6907 
    6908 Every other argument is treated as a filename.  Files ending in \`.la' are
    6909 treated as uninstalled libtool libraries, other files are standard or library
    6910 object files.
    6911 
    6912 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
    6913 only library objects (\`.lo' files) may be specified, and \`-rpath' is
    6914 required, except when creating a convenience library.
    6915 
    6916 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
    6917 using \`ar' and \`ranlib', or on Windows using \`lib'.
    6918 
    6919 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
    6920 is created, otherwise an executable program is created."
    6921   ;;
    6922 
    6923 uninstall)
    6924   $echo \
    6925 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
    6926 
    6927 Remove libraries from an installation directory.
    6928 
    6929 RM is the name of the program to use to delete files associated with each FILE
    6930 (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
    6931 to RM.
    6932 
    6933 If FILE is a libtool library, all the files associated with it are deleted.
    6934 Otherwise, only FILE itself is deleted using RM."
    6935   ;;
    6936 
    6937 *)
    6938   $echo "$modename: invalid operation mode \`$mode'" 1>&2
    6939   $echo "$help" 1>&2
    6940   exit $EXIT_FAILURE
    6941   ;;
    6942 esac
    6943 
    6944 $echo
    6945 $echo "Try \`$modename --help' for more information about other modes."
    6946 
    6947 exit $?
     9633exit $exit_status
     9634
    69489635
    69499636# The TAGs below are defined such that we never get into a situation
     
    69599646
    69609647# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
    6961 disable_libs=shared
     9648build_libtool_libs=no
     9649build_old_libs=yes
    69629650# ### END LIBTOOL TAG CONFIG: disable-shared
    69639651
    69649652# ### BEGIN LIBTOOL TAG CONFIG: disable-static
    6965 disable_libs=static
     9653build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
    69669654# ### END LIBTOOL TAG CONFIG: disable-static
    69679655
     
    69709658# sh-indentation:2
    69719659# End:
     9660# vi:sw=2
     9661
Note: See TracChangeset for help on using the changeset viewer.