cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

ltmain.sh (332808B)


      1#! /usr/bin/env sh
      2## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
      3##               by inline-source v2019-02-19.15
      4
      5# libtool (GNU libtool) 2.4.7
      6# Provide generalized library-building support services.
      7# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
      8
      9# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc.
     10# This is free software; see the source for copying conditions.  There is NO
     11# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     12
     13# GNU Libtool is free software; you can redistribute it and/or modify
     14# it under the terms of the GNU General Public License as published by
     15# the Free Software Foundation; either version 2 of the License, or
     16# (at your option) any later version.
     17#
     18# As a special exception to the GNU General Public License,
     19# if you distribute this file as part of a program or library that
     20# is built using GNU Libtool, you may include this file under the
     21# same distribution terms that you use for the rest of that program.
     22#
     23# GNU Libtool is distributed in the hope that it will be useful, but
     24# WITHOUT ANY WARRANTY; without even the implied warranty of
     25# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     26# General Public License for more details.
     27#
     28# You should have received a copy of the GNU General Public License
     29# along with this program.  If not, see <http://www.gnu.org/licenses/>.
     30
     31
     32PROGRAM=libtool
     33PACKAGE=libtool
     34VERSION=2.4.7
     35package_revision=2.4.7
     36
     37
     38## ------ ##
     39## Usage. ##
     40## ------ ##
     41
     42# Run './libtool --help' for help with using this script from the
     43# command line.
     44
     45
     46## ------------------------------- ##
     47## User overridable command paths. ##
     48## ------------------------------- ##
     49
     50# After configure completes, it has a better idea of some of the
     51# shell tools we need than the defaults used by the functions shared
     52# with bootstrap, so set those here where they can still be over-
     53# ridden by the user, but otherwise take precedence.
     54
     55: ${AUTOCONF="autoconf"}
     56: ${AUTOMAKE="automake"}
     57
     58
     59## -------------------------- ##
     60## Source external libraries. ##
     61## -------------------------- ##
     62
     63# Much of our low-level functionality needs to be sourced from external
     64# libraries, which are installed to $pkgauxdir.
     65
     66# Set a version string for this script.
     67scriptversion=2019-02-19.15; # UTC
     68
     69# General shell script boiler plate, and helper functions.
     70# Written by Gary V. Vaughan, 2004
     71
     72# This is free software.  There is NO warranty; not even for
     73# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     74#
     75# Copyright (C) 2004-2019, 2021 Bootstrap Authors
     76#
     77# This file is dual licensed under the terms of the MIT license
     78# <https://opensource.org/license/MIT>, and GPL version 2 or later
     79# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
     80# these licenses when using or redistributing this software or any of
     81# the files within it.  See the URLs above, or the file `LICENSE`
     82# included in the Bootstrap distribution for the full license texts.
     83
     84# Please report bugs or propose patches to:
     85# <https://github.com/gnulib-modules/bootstrap/issues>
     86
     87
     88## ------ ##
     89## Usage. ##
     90## ------ ##
     91
     92# Evaluate this file near the top of your script to gain access to
     93# the functions and variables defined here:
     94#
     95#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
     96#
     97# If you need to override any of the default environment variable
     98# settings, do that before evaluating this file.
     99
    100
    101## -------------------- ##
    102## Shell normalisation. ##
    103## -------------------- ##
    104
    105# Some shells need a little help to be as Bourne compatible as possible.
    106# Before doing anything else, make sure all that help has been provided!
    107
    108DUALCASE=1; export DUALCASE # for MKS sh
    109if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
    110  emulate sh
    111  NULLCMD=:
    112  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
    113  # is contrary to our usage.  Disable this feature.
    114  alias -g '${1+"$@"}'='"$@"'
    115  setopt NO_GLOB_SUBST
    116else
    117  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
    118fi
    119
    120# NLS nuisances: We save the old values in case they are required later.
    121_G_user_locale=
    122_G_safe_locale=
    123for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
    124do
    125  eval "if test set = \"\${$_G_var+set}\"; then
    126          save_$_G_var=\$$_G_var
    127          $_G_var=C
    128	  export $_G_var
    129	  _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
    130	  _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
    131	fi"
    132done
    133# These NLS vars are set unconditionally (bootstrap issue #24).  Unset those
    134# in case the environment reset is needed later and the $save_* variant is not
    135# defined (see the code above).
    136LC_ALL=C
    137LANGUAGE=C
    138export LANGUAGE LC_ALL
    139
    140# Make sure IFS has a sensible default
    141sp=' '
    142nl='
    143'
    144IFS="$sp	$nl"
    145
    146# There are apparently some retarded systems that use ';' as a PATH separator!
    147if test "${PATH_SEPARATOR+set}" != set; then
    148  PATH_SEPARATOR=:
    149  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    150    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
    151      PATH_SEPARATOR=';'
    152  }
    153fi
    154
    155
    156# func_unset VAR
    157# --------------
    158# Portably unset VAR.
    159# In some shells, an 'unset VAR' statement leaves a non-zero return
    160# status if VAR is already unset, which might be problematic if the
    161# statement is used at the end of a function (thus poisoning its return
    162# value) or when 'set -e' is active (causing even a spurious abort of
    163# the script in this case).
    164func_unset ()
    165{
    166    { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; }
    167}
    168
    169
    170# Make sure CDPATH doesn't cause `cd` commands to output the target dir.
    171func_unset CDPATH
    172
    173# Make sure ${,E,F}GREP behave sanely.
    174func_unset GREP_OPTIONS
    175
    176
    177## ------------------------- ##
    178## Locate command utilities. ##
    179## ------------------------- ##
    180
    181
    182# func_executable_p FILE
    183# ----------------------
    184# Check that FILE is an executable regular file.
    185func_executable_p ()
    186{
    187    test -f "$1" && test -x "$1"
    188}
    189
    190
    191# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
    192# --------------------------------------------
    193# Search for either a program that responds to --version with output
    194# containing "GNU", or else returned by CHECK_FUNC otherwise, by
    195# trying all the directories in PATH with each of the elements of
    196# PROGS_LIST.
    197#
    198# CHECK_FUNC should accept the path to a candidate program, and
    199# set $func_check_prog_result if it truncates its output less than
    200# $_G_path_prog_max characters.
    201func_path_progs ()
    202{
    203    _G_progs_list=$1
    204    _G_check_func=$2
    205    _G_PATH=${3-"$PATH"}
    206
    207    _G_path_prog_max=0
    208    _G_path_prog_found=false
    209    _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
    210    for _G_dir in $_G_PATH; do
    211      IFS=$_G_save_IFS
    212      test -z "$_G_dir" && _G_dir=.
    213      for _G_prog_name in $_G_progs_list; do
    214        for _exeext in '' .EXE; do
    215          _G_path_prog=$_G_dir/$_G_prog_name$_exeext
    216          func_executable_p "$_G_path_prog" || continue
    217          case `"$_G_path_prog" --version 2>&1` in
    218            *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
    219            *)     $_G_check_func $_G_path_prog
    220		   func_path_progs_result=$func_check_prog_result
    221		   ;;
    222          esac
    223          $_G_path_prog_found && break 3
    224        done
    225      done
    226    done
    227    IFS=$_G_save_IFS
    228    test -z "$func_path_progs_result" && {
    229      echo "no acceptable sed could be found in \$PATH" >&2
    230      exit 1
    231    }
    232}
    233
    234
    235# We want to be able to use the functions in this file before configure
    236# has figured out where the best binaries are kept, which means we have
    237# to search for them ourselves - except when the results are already set
    238# where we skip the searches.
    239
    240# Unless the user overrides by setting SED, search the path for either GNU
    241# sed, or the sed that truncates its output the least.
    242test -z "$SED" && {
    243  _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
    244  for _G_i in 1 2 3 4 5 6 7; do
    245    _G_sed_script=$_G_sed_script$nl$_G_sed_script
    246  done
    247  echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
    248  _G_sed_script=
    249
    250  func_check_prog_sed ()
    251  {
    252    _G_path_prog=$1
    253
    254    _G_count=0
    255    printf 0123456789 >conftest.in
    256    while :
    257    do
    258      cat conftest.in conftest.in >conftest.tmp
    259      mv conftest.tmp conftest.in
    260      cp conftest.in conftest.nl
    261      echo '' >> conftest.nl
    262      "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
    263      diff conftest.out conftest.nl >/dev/null 2>&1 || break
    264      _G_count=`expr $_G_count + 1`
    265      if test "$_G_count" -gt "$_G_path_prog_max"; then
    266        # Best one so far, save it but keep looking for a better one
    267        func_check_prog_result=$_G_path_prog
    268        _G_path_prog_max=$_G_count
    269      fi
    270      # 10*(2^10) chars as input seems more than enough
    271      test 10 -lt "$_G_count" && break
    272    done
    273    rm -f conftest.in conftest.tmp conftest.nl conftest.out
    274  }
    275
    276  func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin"
    277  rm -f conftest.sed
    278  SED=$func_path_progs_result
    279}
    280
    281
    282# Unless the user overrides by setting GREP, search the path for either GNU
    283# grep, or the grep that truncates its output the least.
    284test -z "$GREP" && {
    285  func_check_prog_grep ()
    286  {
    287    _G_path_prog=$1
    288
    289    _G_count=0
    290    _G_path_prog_max=0
    291    printf 0123456789 >conftest.in
    292    while :
    293    do
    294      cat conftest.in conftest.in >conftest.tmp
    295      mv conftest.tmp conftest.in
    296      cp conftest.in conftest.nl
    297      echo 'GREP' >> conftest.nl
    298      "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
    299      diff conftest.out conftest.nl >/dev/null 2>&1 || break
    300      _G_count=`expr $_G_count + 1`
    301      if test "$_G_count" -gt "$_G_path_prog_max"; then
    302        # Best one so far, save it but keep looking for a better one
    303        func_check_prog_result=$_G_path_prog
    304        _G_path_prog_max=$_G_count
    305      fi
    306      # 10*(2^10) chars as input seems more than enough
    307      test 10 -lt "$_G_count" && break
    308    done
    309    rm -f conftest.in conftest.tmp conftest.nl conftest.out
    310  }
    311
    312  func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin"
    313  GREP=$func_path_progs_result
    314}
    315
    316
    317## ------------------------------- ##
    318## User overridable command paths. ##
    319## ------------------------------- ##
    320
    321# All uppercase variable names are used for environment variables.  These
    322# variables can be overridden by the user before calling a script that
    323# uses them if a suitable command of that name is not already available
    324# in the command search PATH.
    325
    326: ${CP="cp -f"}
    327: ${ECHO="printf %s\n"}
    328: ${EGREP="$GREP -E"}
    329: ${FGREP="$GREP -F"}
    330: ${LN_S="ln -s"}
    331: ${MAKE="make"}
    332: ${MKDIR="mkdir"}
    333: ${MV="mv -f"}
    334: ${RM="rm -f"}
    335: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
    336
    337
    338## -------------------- ##
    339## Useful sed snippets. ##
    340## -------------------- ##
    341
    342sed_dirname='s|/[^/]*$||'
    343sed_basename='s|^.*/||'
    344
    345# Sed substitution that helps us do robust quoting.  It backslashifies
    346# metacharacters that are still active within double-quoted strings.
    347sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
    348
    349# Same as above, but do not quote variable references.
    350sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
    351
    352# Sed substitution that turns a string into a regex matching for the
    353# string literally.
    354sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
    355
    356# Sed substitution that converts a w32 file name or path
    357# that contains forward slashes, into one that contains
    358# (escaped) backslashes.  A very naive implementation.
    359sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
    360
    361# Re-'\' parameter expansions in output of sed_double_quote_subst that
    362# were '\'-ed in input to the same.  If an odd number of '\' preceded a
    363# '$' in input to sed_double_quote_subst, that '$' was protected from
    364# expansion.  Since each input '\' is now two '\'s, look for any number
    365# of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
    366_G_bs='\\'
    367_G_bs2='\\\\'
    368_G_bs4='\\\\\\\\'
    369_G_dollar='\$'
    370sed_double_backslash="\
    371  s/$_G_bs4/&\\
    372/g
    373  s/^$_G_bs2$_G_dollar/$_G_bs&/
    374  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
    375  s/\n//g"
    376
    377# require_check_ifs_backslash
    378# ---------------------------
    379# Check if we can use backslash as IFS='\' separator, and set
    380# $check_ifs_backshlash_broken to ':' or 'false'.
    381require_check_ifs_backslash=func_require_check_ifs_backslash
    382func_require_check_ifs_backslash ()
    383{
    384  _G_save_IFS=$IFS
    385  IFS='\'
    386  _G_check_ifs_backshlash='a\\b'
    387  for _G_i in $_G_check_ifs_backshlash
    388  do
    389  case $_G_i in
    390  a)
    391    check_ifs_backshlash_broken=false
    392    ;;
    393  '')
    394    break
    395    ;;
    396  *)
    397    check_ifs_backshlash_broken=:
    398    break
    399    ;;
    400  esac
    401  done
    402  IFS=$_G_save_IFS
    403  require_check_ifs_backslash=:
    404}
    405
    406
    407## ----------------- ##
    408## Global variables. ##
    409## ----------------- ##
    410
    411# Except for the global variables explicitly listed below, the following
    412# functions in the '^func_' namespace, and the '^require_' namespace
    413# variables initialised in the 'Resource management' section, sourcing
    414# this file will not pollute your global namespace with anything
    415# else. There's no portable way to scope variables in Bourne shell
    416# though, so actually running these functions will sometimes place
    417# results into a variable named after the function, and often use
    418# temporary variables in the '^_G_' namespace. If you are careful to
    419# avoid using those namespaces casually in your sourcing script, things
    420# should continue to work as you expect. And, of course, you can freely
    421# overwrite any of the functions or variables defined here before
    422# calling anything to customize them.
    423
    424EXIT_SUCCESS=0
    425EXIT_FAILURE=1
    426EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
    427EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
    428
    429# Allow overriding, eg assuming that you follow the convention of
    430# putting '$debug_cmd' at the start of all your functions, you can get
    431# bash to show function call trace with:
    432#
    433#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
    434debug_cmd=${debug_cmd-":"}
    435exit_cmd=:
    436
    437# By convention, finish your script with:
    438#
    439#    exit $exit_status
    440#
    441# so that you can set exit_status to non-zero if you want to indicate
    442# something went wrong during execution without actually bailing out at
    443# the point of failure.
    444exit_status=$EXIT_SUCCESS
    445
    446# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
    447# is ksh but when the shell is invoked as "sh" and the current value of
    448# the _XPG environment variable is not equal to 1 (one), the special
    449# positional parameter $0, within a function call, is the name of the
    450# function.
    451progpath=$0
    452
    453# The name of this program.
    454progname=`$ECHO "$progpath" |$SED "$sed_basename"`
    455
    456# Make sure we have an absolute progpath for reexecution:
    457case $progpath in
    458  [\\/]*|[A-Za-z]:\\*) ;;
    459  *[\\/]*)
    460     progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
    461     progdir=`cd "$progdir" && pwd`
    462     progpath=$progdir/$progname
    463     ;;
    464  *)
    465     _G_IFS=$IFS
    466     IFS=${PATH_SEPARATOR-:}
    467     for progdir in $PATH; do
    468       IFS=$_G_IFS
    469       test -x "$progdir/$progname" && break
    470     done
    471     IFS=$_G_IFS
    472     test -n "$progdir" || progdir=`pwd`
    473     progpath=$progdir/$progname
    474     ;;
    475esac
    476
    477
    478## ----------------- ##
    479## Standard options. ##
    480## ----------------- ##
    481
    482# The following options affect the operation of the functions defined
    483# below, and should be set appropriately depending on run-time para-
    484# meters passed on the command line.
    485
    486opt_dry_run=false
    487opt_quiet=false
    488opt_verbose=false
    489
    490# Categories 'all' and 'none' are always available.  Append any others
    491# you will pass as the first argument to func_warning from your own
    492# code.
    493warning_categories=
    494
    495# By default, display warnings according to 'opt_warning_types'.  Set
    496# 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
    497# treat the next displayed warning as a fatal error.
    498warning_func=func_warn_and_continue
    499
    500# Set to 'all' to display all warnings, 'none' to suppress all
    501# warnings, or a space delimited list of some subset of
    502# 'warning_categories' to display only the listed warnings.
    503opt_warning_types=all
    504
    505
    506## -------------------- ##
    507## Resource management. ##
    508## -------------------- ##
    509
    510# This section contains definitions for functions that each ensure a
    511# particular resource (a file, or a non-empty configuration variable for
    512# example) is available, and if appropriate to extract default values
    513# from pertinent package files. Call them using their associated
    514# 'require_*' variable to ensure that they are executed, at most, once.
    515#
    516# It's entirely deliberate that calling these functions can set
    517# variables that don't obey the namespace limitations obeyed by the rest
    518# of this file, in order that that they be as useful as possible to
    519# callers.
    520
    521
    522# require_term_colors
    523# -------------------
    524# Allow display of bold text on terminals that support it.
    525require_term_colors=func_require_term_colors
    526func_require_term_colors ()
    527{
    528    $debug_cmd
    529
    530    test -t 1 && {
    531      # COLORTERM and USE_ANSI_COLORS environment variables take
    532      # precedence, because most terminfo databases neglect to describe
    533      # whether color sequences are supported.
    534      test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
    535
    536      if test 1 = "$USE_ANSI_COLORS"; then
    537        # Standard ANSI escape sequences
    538        tc_reset=''
    539        tc_bold='';   tc_standout=''
    540        tc_red='';   tc_green=''
    541        tc_blue='';  tc_cyan=''
    542      else
    543        # Otherwise trust the terminfo database after all.
    544        test -n "`tput sgr0 2>/dev/null`" && {
    545          tc_reset=`tput sgr0`
    546          test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
    547          tc_standout=$tc_bold
    548          test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
    549          test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
    550          test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
    551          test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
    552          test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
    553        }
    554      fi
    555    }
    556
    557    require_term_colors=:
    558}
    559
    560
    561## ----------------- ##
    562## Function library. ##
    563## ----------------- ##
    564
    565# This section contains a variety of useful functions to call in your
    566# scripts. Take note of the portable wrappers for features provided by
    567# some modern shells, which will fall back to slower equivalents on
    568# less featureful shells.
    569
    570
    571# func_append VAR VALUE
    572# ---------------------
    573# Append VALUE onto the existing contents of VAR.
    574
    575  # We should try to minimise forks, especially on Windows where they are
    576  # unreasonably slow, so skip the feature probes when bash or zsh are
    577  # being used:
    578  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
    579    : ${_G_HAVE_ARITH_OP="yes"}
    580    : ${_G_HAVE_XSI_OPS="yes"}
    581    # The += operator was introduced in bash 3.1
    582    case $BASH_VERSION in
    583      [12].* | 3.0 | 3.0*) ;;
    584      *)
    585        : ${_G_HAVE_PLUSEQ_OP="yes"}
    586        ;;
    587    esac
    588  fi
    589
    590  # _G_HAVE_PLUSEQ_OP
    591  # Can be empty, in which case the shell is probed, "yes" if += is
    592  # useable or anything else if it does not work.
    593  test -z "$_G_HAVE_PLUSEQ_OP" \
    594    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
    595    && _G_HAVE_PLUSEQ_OP=yes
    596
    597if test yes = "$_G_HAVE_PLUSEQ_OP"
    598then
    599  # This is an XSI compatible shell, allowing a faster implementation...
    600  eval 'func_append ()
    601  {
    602    $debug_cmd
    603
    604    eval "$1+=\$2"
    605  }'
    606else
    607  # ...otherwise fall back to using expr, which is often a shell builtin.
    608  func_append ()
    609  {
    610    $debug_cmd
    611
    612    eval "$1=\$$1\$2"
    613  }
    614fi
    615
    616
    617# func_append_quoted VAR VALUE
    618# ----------------------------
    619# Quote VALUE and append to the end of shell variable VAR, separated
    620# by a space.
    621if test yes = "$_G_HAVE_PLUSEQ_OP"; then
    622  eval 'func_append_quoted ()
    623  {
    624    $debug_cmd
    625
    626    func_quote_arg pretty "$2"
    627    eval "$1+=\\ \$func_quote_arg_result"
    628  }'
    629else
    630  func_append_quoted ()
    631  {
    632    $debug_cmd
    633
    634    func_quote_arg pretty "$2"
    635    eval "$1=\$$1\\ \$func_quote_arg_result"
    636  }
    637fi
    638
    639
    640# func_append_uniq VAR VALUE
    641# --------------------------
    642# Append unique VALUE onto the existing contents of VAR, assuming
    643# entries are delimited by the first character of VALUE.  For example:
    644#
    645#   func_append_uniq options " --another-option option-argument"
    646#
    647# will only append to $options if " --another-option option-argument "
    648# is not already present somewhere in $options already (note spaces at
    649# each end implied by leading space in second argument).
    650func_append_uniq ()
    651{
    652    $debug_cmd
    653
    654    eval _G_current_value='`$ECHO $'$1'`'
    655    _G_delim=`expr "$2" : '\(.\)'`
    656
    657    case $_G_delim$_G_current_value$_G_delim in
    658      *"$2$_G_delim"*) ;;
    659      *) func_append "$@" ;;
    660    esac
    661}
    662
    663
    664# func_arith TERM...
    665# ------------------
    666# Set func_arith_result to the result of evaluating TERMs.
    667  test -z "$_G_HAVE_ARITH_OP" \
    668    && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
    669    && _G_HAVE_ARITH_OP=yes
    670
    671if test yes = "$_G_HAVE_ARITH_OP"; then
    672  eval 'func_arith ()
    673  {
    674    $debug_cmd
    675
    676    func_arith_result=$(( $* ))
    677  }'
    678else
    679  func_arith ()
    680  {
    681    $debug_cmd
    682
    683    func_arith_result=`expr "$@"`
    684  }
    685fi
    686
    687
    688# func_basename FILE
    689# ------------------
    690# Set func_basename_result to FILE with everything up to and including
    691# the last / stripped.
    692if test yes = "$_G_HAVE_XSI_OPS"; then
    693  # If this shell supports suffix pattern removal, then use it to avoid
    694  # forking. Hide the definitions single quotes in case the shell chokes
    695  # on unsupported syntax...
    696  _b='func_basename_result=${1##*/}'
    697  _d='case $1 in
    698        */*) func_dirname_result=${1%/*}$2 ;;
    699        *  ) func_dirname_result=$3        ;;
    700      esac'
    701
    702else
    703  # ...otherwise fall back to using sed.
    704  _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
    705  _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
    706      if test "X$func_dirname_result" = "X$1"; then
    707        func_dirname_result=$3
    708      else
    709        func_append func_dirname_result "$2"
    710      fi'
    711fi
    712
    713eval 'func_basename ()
    714{
    715    $debug_cmd
    716
    717    '"$_b"'
    718}'
    719
    720
    721# func_dirname FILE APPEND NONDIR_REPLACEMENT
    722# -------------------------------------------
    723# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
    724# otherwise set result to NONDIR_REPLACEMENT.
    725eval 'func_dirname ()
    726{
    727    $debug_cmd
    728
    729    '"$_d"'
    730}'
    731
    732
    733# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
    734# --------------------------------------------------------
    735# Perform func_basename and func_dirname in a single function
    736# call:
    737#   dirname:  Compute the dirname of FILE.  If nonempty,
    738#             add APPEND to the result, otherwise set result
    739#             to NONDIR_REPLACEMENT.
    740#             value returned in "$func_dirname_result"
    741#   basename: Compute filename of FILE.
    742#             value retuned in "$func_basename_result"
    743# For efficiency, we do not delegate to the functions above but instead
    744# duplicate the functionality here.
    745eval 'func_dirname_and_basename ()
    746{
    747    $debug_cmd
    748
    749    '"$_b"'
    750    '"$_d"'
    751}'
    752
    753
    754# func_echo ARG...
    755# ----------------
    756# Echo program name prefixed message.
    757func_echo ()
    758{
    759    $debug_cmd
    760
    761    _G_message=$*
    762
    763    func_echo_IFS=$IFS
    764    IFS=$nl
    765    for _G_line in $_G_message; do
    766      IFS=$func_echo_IFS
    767      $ECHO "$progname: $_G_line"
    768    done
    769    IFS=$func_echo_IFS
    770}
    771
    772
    773# func_echo_all ARG...
    774# --------------------
    775# Invoke $ECHO with all args, space-separated.
    776func_echo_all ()
    777{
    778    $ECHO "$*"
    779}
    780
    781
    782# func_echo_infix_1 INFIX ARG...
    783# ------------------------------
    784# Echo program name, followed by INFIX on the first line, with any
    785# additional lines not showing INFIX.
    786func_echo_infix_1 ()
    787{
    788    $debug_cmd
    789
    790    $require_term_colors
    791
    792    _G_infix=$1; shift
    793    _G_indent=$_G_infix
    794    _G_prefix="$progname: $_G_infix: "
    795    _G_message=$*
    796
    797    # Strip color escape sequences before counting printable length
    798    for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
    799    do
    800      test -n "$_G_tc" && {
    801        _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
    802        _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
    803      }
    804    done
    805    _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
    806
    807    func_echo_infix_1_IFS=$IFS
    808    IFS=$nl
    809    for _G_line in $_G_message; do
    810      IFS=$func_echo_infix_1_IFS
    811      $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
    812      _G_prefix=$_G_indent
    813    done
    814    IFS=$func_echo_infix_1_IFS
    815}
    816
    817
    818# func_error ARG...
    819# -----------------
    820# Echo program name prefixed message to standard error.
    821func_error ()
    822{
    823    $debug_cmd
    824
    825    $require_term_colors
    826
    827    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
    828}
    829
    830
    831# func_fatal_error ARG...
    832# -----------------------
    833# Echo program name prefixed message to standard error, and exit.
    834func_fatal_error ()
    835{
    836    $debug_cmd
    837
    838    func_error "$*"
    839    exit $EXIT_FAILURE
    840}
    841
    842
    843# func_grep EXPRESSION FILENAME
    844# -----------------------------
    845# Check whether EXPRESSION matches any line of FILENAME, without output.
    846func_grep ()
    847{
    848    $debug_cmd
    849
    850    $GREP "$1" "$2" >/dev/null 2>&1
    851}
    852
    853
    854# func_len STRING
    855# ---------------
    856# Set func_len_result to the length of STRING. STRING may not
    857# start with a hyphen.
    858  test -z "$_G_HAVE_XSI_OPS" \
    859    && (eval 'x=a/b/c;
    860      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
    861    && _G_HAVE_XSI_OPS=yes
    862
    863if test yes = "$_G_HAVE_XSI_OPS"; then
    864  eval 'func_len ()
    865  {
    866    $debug_cmd
    867
    868    func_len_result=${#1}
    869  }'
    870else
    871  func_len ()
    872  {
    873    $debug_cmd
    874
    875    func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
    876  }
    877fi
    878
    879
    880# func_mkdir_p DIRECTORY-PATH
    881# ---------------------------
    882# Make sure the entire path to DIRECTORY-PATH is available.
    883func_mkdir_p ()
    884{
    885    $debug_cmd
    886
    887    _G_directory_path=$1
    888    _G_dir_list=
    889
    890    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
    891
    892      # Protect directory names starting with '-'
    893      case $_G_directory_path in
    894        -*) _G_directory_path=./$_G_directory_path ;;
    895      esac
    896
    897      # While some portion of DIR does not yet exist...
    898      while test ! -d "$_G_directory_path"; do
    899        # ...make a list in topmost first order.  Use a colon delimited
    900	# list incase some portion of path contains whitespace.
    901        _G_dir_list=$_G_directory_path:$_G_dir_list
    902
    903        # If the last portion added has no slash in it, the list is done
    904        case $_G_directory_path in */*) ;; *) break ;; esac
    905
    906        # ...otherwise throw away the child directory and loop
    907        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
    908      done
    909      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
    910
    911      func_mkdir_p_IFS=$IFS; IFS=:
    912      for _G_dir in $_G_dir_list; do
    913	IFS=$func_mkdir_p_IFS
    914        # mkdir can fail with a 'File exist' error if two processes
    915        # try to create one of the directories concurrently.  Don't
    916        # stop in that case!
    917        $MKDIR "$_G_dir" 2>/dev/null || :
    918      done
    919      IFS=$func_mkdir_p_IFS
    920
    921      # Bail out if we (or some other process) failed to create a directory.
    922      test -d "$_G_directory_path" || \
    923        func_fatal_error "Failed to create '$1'"
    924    fi
    925}
    926
    927
    928# func_mktempdir [BASENAME]
    929# -------------------------
    930# Make a temporary directory that won't clash with other running
    931# libtool processes, and avoids race conditions if possible.  If
    932# given, BASENAME is the basename for that directory.
    933func_mktempdir ()
    934{
    935    $debug_cmd
    936
    937    _G_template=${TMPDIR-/tmp}/${1-$progname}
    938
    939    if test : = "$opt_dry_run"; then
    940      # Return a directory name, but don't create it in dry-run mode
    941      _G_tmpdir=$_G_template-$$
    942    else
    943
    944      # If mktemp works, use that first and foremost
    945      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
    946
    947      if test ! -d "$_G_tmpdir"; then
    948        # Failing that, at least try and use $RANDOM to avoid a race
    949        _G_tmpdir=$_G_template-${RANDOM-0}$$
    950
    951        func_mktempdir_umask=`umask`
    952        umask 0077
    953        $MKDIR "$_G_tmpdir"
    954        umask $func_mktempdir_umask
    955      fi
    956
    957      # If we're not in dry-run mode, bomb out on failure
    958      test -d "$_G_tmpdir" || \
    959        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
    960    fi
    961
    962    $ECHO "$_G_tmpdir"
    963}
    964
    965
    966# func_normal_abspath PATH
    967# ------------------------
    968# Remove doubled-up and trailing slashes, "." path components,
    969# and cancel out any ".." path components in PATH after making
    970# it an absolute path.
    971func_normal_abspath ()
    972{
    973    $debug_cmd
    974
    975    # These SED scripts presuppose an absolute path with a trailing slash.
    976    _G_pathcar='s|^/\([^/]*\).*$|\1|'
    977    _G_pathcdr='s|^/[^/]*||'
    978    _G_removedotparts=':dotsl
    979		s|/\./|/|g
    980		t dotsl
    981		s|/\.$|/|'
    982    _G_collapseslashes='s|/\{1,\}|/|g'
    983    _G_finalslash='s|/*$|/|'
    984
    985    # Start from root dir and reassemble the path.
    986    func_normal_abspath_result=
    987    func_normal_abspath_tpath=$1
    988    func_normal_abspath_altnamespace=
    989    case $func_normal_abspath_tpath in
    990      "")
    991        # Empty path, that just means $cwd.
    992        func_stripname '' '/' "`pwd`"
    993        func_normal_abspath_result=$func_stripname_result
    994        return
    995        ;;
    996      # The next three entries are used to spot a run of precisely
    997      # two leading slashes without using negated character classes;
    998      # we take advantage of case's first-match behaviour.
    999      ///*)
   1000        # Unusual form of absolute path, do nothing.
   1001        ;;
   1002      //*)
   1003        # Not necessarily an ordinary path; POSIX reserves leading '//'
   1004        # and for example Cygwin uses it to access remote file shares
   1005        # over CIFS/SMB, so we conserve a leading double slash if found.
   1006        func_normal_abspath_altnamespace=/
   1007        ;;
   1008      /*)
   1009        # Absolute path, do nothing.
   1010        ;;
   1011      *)
   1012        # Relative path, prepend $cwd.
   1013        func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
   1014        ;;
   1015    esac
   1016
   1017    # Cancel out all the simple stuff to save iterations.  We also want
   1018    # the path to end with a slash for ease of parsing, so make sure
   1019    # there is one (and only one) here.
   1020    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
   1021          -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
   1022    while :; do
   1023      # Processed it all yet?
   1024      if test / = "$func_normal_abspath_tpath"; then
   1025        # If we ascended to the root using ".." the result may be empty now.
   1026        if test -z "$func_normal_abspath_result"; then
   1027          func_normal_abspath_result=/
   1028        fi
   1029        break
   1030      fi
   1031      func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
   1032          -e "$_G_pathcar"`
   1033      func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
   1034          -e "$_G_pathcdr"`
   1035      # Figure out what to do with it
   1036      case $func_normal_abspath_tcomponent in
   1037        "")
   1038          # Trailing empty path component, ignore it.
   1039          ;;
   1040        ..)
   1041          # Parent dir; strip last assembled component from result.
   1042          func_dirname "$func_normal_abspath_result"
   1043          func_normal_abspath_result=$func_dirname_result
   1044          ;;
   1045        *)
   1046          # Actual path component, append it.
   1047          func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
   1048          ;;
   1049      esac
   1050    done
   1051    # Restore leading double-slash if one was found on entry.
   1052    func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
   1053}
   1054
   1055
   1056# func_notquiet ARG...
   1057# --------------------
   1058# Echo program name prefixed message only when not in quiet mode.
   1059func_notquiet ()
   1060{
   1061    $debug_cmd
   1062
   1063    $opt_quiet || func_echo ${1+"$@"}
   1064
   1065    # A bug in bash halts the script if the last line of a function
   1066    # fails when set -e is in force, so we need another command to
   1067    # work around that:
   1068    :
   1069}
   1070
   1071
   1072# func_relative_path SRCDIR DSTDIR
   1073# --------------------------------
   1074# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
   1075func_relative_path ()
   1076{
   1077    $debug_cmd
   1078
   1079    func_relative_path_result=
   1080    func_normal_abspath "$1"
   1081    func_relative_path_tlibdir=$func_normal_abspath_result
   1082    func_normal_abspath "$2"
   1083    func_relative_path_tbindir=$func_normal_abspath_result
   1084
   1085    # Ascend the tree starting from libdir
   1086    while :; do
   1087      # check if we have found a prefix of bindir
   1088      case $func_relative_path_tbindir in
   1089        $func_relative_path_tlibdir)
   1090          # found an exact match
   1091          func_relative_path_tcancelled=
   1092          break
   1093          ;;
   1094        $func_relative_path_tlibdir*)
   1095          # found a matching prefix
   1096          func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
   1097          func_relative_path_tcancelled=$func_stripname_result
   1098          if test -z "$func_relative_path_result"; then
   1099            func_relative_path_result=.
   1100          fi
   1101          break
   1102          ;;
   1103        *)
   1104          func_dirname $func_relative_path_tlibdir
   1105          func_relative_path_tlibdir=$func_dirname_result
   1106          if test -z "$func_relative_path_tlibdir"; then
   1107            # Have to descend all the way to the root!
   1108            func_relative_path_result=../$func_relative_path_result
   1109            func_relative_path_tcancelled=$func_relative_path_tbindir
   1110            break
   1111          fi
   1112          func_relative_path_result=../$func_relative_path_result
   1113          ;;
   1114      esac
   1115    done
   1116
   1117    # Now calculate path; take care to avoid doubling-up slashes.
   1118    func_stripname '' '/' "$func_relative_path_result"
   1119    func_relative_path_result=$func_stripname_result
   1120    func_stripname '/' '/' "$func_relative_path_tcancelled"
   1121    if test -n "$func_stripname_result"; then
   1122      func_append func_relative_path_result "/$func_stripname_result"
   1123    fi
   1124
   1125    # Normalisation. If bindir is libdir, return '.' else relative path.
   1126    if test -n "$func_relative_path_result"; then
   1127      func_stripname './' '' "$func_relative_path_result"
   1128      func_relative_path_result=$func_stripname_result
   1129    fi
   1130
   1131    test -n "$func_relative_path_result" || func_relative_path_result=.
   1132
   1133    :
   1134}
   1135
   1136
   1137# func_quote_portable EVAL ARG
   1138# ----------------------------
   1139# Internal function to portably implement func_quote_arg.  Note that we still
   1140# keep attention to performance here so we as much as possible try to avoid
   1141# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
   1142func_quote_portable ()
   1143{
   1144    $debug_cmd
   1145
   1146    $require_check_ifs_backslash
   1147
   1148    func_quote_portable_result=$2
   1149
   1150    # one-time-loop (easy break)
   1151    while true
   1152    do
   1153      if $1; then
   1154        func_quote_portable_result=`$ECHO "$2" | $SED \
   1155          -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
   1156        break
   1157      fi
   1158
   1159      # Quote for eval.
   1160      case $func_quote_portable_result in
   1161        *[\\\`\"\$]*)
   1162          # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string
   1163          # contains the shell wildcard characters.
   1164          case $check_ifs_backshlash_broken$func_quote_portable_result in
   1165            :*|*[\[\*\?]*)
   1166              func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
   1167                  | $SED "$sed_quote_subst"`
   1168              break
   1169              ;;
   1170          esac
   1171
   1172          func_quote_portable_old_IFS=$IFS
   1173          for _G_char in '\' '`' '"' '$'
   1174          do
   1175            # STATE($1) PREV($2) SEPARATOR($3)
   1176            set start "" ""
   1177            func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
   1178            IFS=$_G_char
   1179            for _G_part in $func_quote_portable_result
   1180            do
   1181              case $1 in
   1182              quote)
   1183                func_append func_quote_portable_result "$3$2"
   1184                set quote "$_G_part" "\\$_G_char"
   1185                ;;
   1186              start)
   1187                set first "" ""
   1188                func_quote_portable_result=
   1189                ;;
   1190              first)
   1191                set quote "$_G_part" ""
   1192                ;;
   1193              esac
   1194            done
   1195          done
   1196          IFS=$func_quote_portable_old_IFS
   1197          ;;
   1198        *) ;;
   1199      esac
   1200      break
   1201    done
   1202
   1203    func_quote_portable_unquoted_result=$func_quote_portable_result
   1204    case $func_quote_portable_result in
   1205      # double-quote args containing shell metacharacters to delay
   1206      # word splitting, command substitution and variable expansion
   1207      # for a subsequent eval.
   1208      # many bourne shells cannot handle close brackets correctly
   1209      # in scan sets, so we specify it separately.
   1210      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
   1211        func_quote_portable_result=\"$func_quote_portable_result\"
   1212        ;;
   1213    esac
   1214}
   1215
   1216
   1217# func_quotefast_eval ARG
   1218# -----------------------
   1219# Quote one ARG (internal).  This is equivalent to 'func_quote_arg eval ARG',
   1220# but optimized for speed.  Result is stored in $func_quotefast_eval.
   1221if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
   1222  printf -v _GL_test_printf_tilde %q '~'
   1223  if test '\~' = "$_GL_test_printf_tilde"; then
   1224    func_quotefast_eval ()
   1225    {
   1226      printf -v func_quotefast_eval_result %q "$1"
   1227    }
   1228  else
   1229    # Broken older Bash implementations.  Make those faster too if possible.
   1230    func_quotefast_eval ()
   1231    {
   1232      case $1 in
   1233        '~'*)
   1234          func_quote_portable false "$1"
   1235          func_quotefast_eval_result=$func_quote_portable_result
   1236          ;;
   1237        *)
   1238          printf -v func_quotefast_eval_result %q "$1"
   1239          ;;
   1240      esac
   1241    }
   1242  fi
   1243else
   1244  func_quotefast_eval ()
   1245  {
   1246    func_quote_portable false "$1"
   1247    func_quotefast_eval_result=$func_quote_portable_result
   1248  }
   1249fi
   1250
   1251
   1252# func_quote_arg MODEs ARG
   1253# ------------------------
   1254# Quote one ARG to be evaled later.  MODEs argument may contain zero or more
   1255# specifiers listed below separated by ',' character.  This function returns two
   1256# values:
   1257#   i) func_quote_arg_result
   1258#      double-quoted (when needed), suitable for a subsequent eval
   1259#  ii) func_quote_arg_unquoted_result
   1260#      has all characters that are still active within double
   1261#      quotes backslashified.  Available only if 'unquoted' is specified.
   1262#
   1263# Available modes:
   1264# ----------------
   1265# 'eval' (default)
   1266#       - escape shell special characters
   1267# 'expand'
   1268#       - the same as 'eval';  but do not quote variable references
   1269# 'pretty'
   1270#       - request aesthetic output, i.e. '"a b"' instead of 'a\ b'.  This might
   1271#         be used later in func_quote to get output like: 'echo "a b"' instead
   1272#         of 'echo a\ b'.  This is slower than default on some shells.
   1273# 'unquoted'
   1274#       - produce also $func_quote_arg_unquoted_result which does not contain
   1275#         wrapping double-quotes.
   1276#
   1277# Examples for 'func_quote_arg pretty,unquoted string':
   1278#
   1279#   string      | *_result              | *_unquoted_result
   1280#   ------------+-----------------------+-------------------
   1281#   "           | \"                    | \"
   1282#   a b         | "a b"                 | a b
   1283#   "a b"       | "\"a b\""             | \"a b\"
   1284#   *           | "*"                   | *
   1285#   z="${x-$y}" | "z=\"\${x-\$y}\""     | z=\"\${x-\$y}\"
   1286#
   1287# Examples for 'func_quote_arg pretty,unquoted,expand string':
   1288#
   1289#   string        |   *_result          |  *_unquoted_result
   1290#   --------------+---------------------+--------------------
   1291#   z="${x-$y}"   | "z=\"${x-$y}\""     | z=\"${x-$y}\"
   1292func_quote_arg ()
   1293{
   1294    _G_quote_expand=false
   1295    case ,$1, in
   1296      *,expand,*)
   1297        _G_quote_expand=:
   1298        ;;
   1299    esac
   1300
   1301    case ,$1, in
   1302      *,pretty,*|*,expand,*|*,unquoted,*)
   1303        func_quote_portable $_G_quote_expand "$2"
   1304        func_quote_arg_result=$func_quote_portable_result
   1305        func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
   1306        ;;
   1307      *)
   1308        # Faster quote-for-eval for some shells.
   1309        func_quotefast_eval "$2"
   1310        func_quote_arg_result=$func_quotefast_eval_result
   1311        ;;
   1312    esac
   1313}
   1314
   1315
   1316# func_quote MODEs ARGs...
   1317# ------------------------
   1318# Quote all ARGs to be evaled later and join them into single command.  See
   1319# func_quote_arg's description for more info.
   1320func_quote ()
   1321{
   1322    $debug_cmd
   1323    _G_func_quote_mode=$1 ; shift
   1324    func_quote_result=
   1325    while test 0 -lt $#; do
   1326      func_quote_arg "$_G_func_quote_mode" "$1"
   1327      if test -n "$func_quote_result"; then
   1328        func_append func_quote_result " $func_quote_arg_result"
   1329      else
   1330        func_append func_quote_result "$func_quote_arg_result"
   1331      fi
   1332      shift
   1333    done
   1334}
   1335
   1336
   1337# func_stripname PREFIX SUFFIX NAME
   1338# ---------------------------------
   1339# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
   1340# PREFIX and SUFFIX must not contain globbing or regex special
   1341# characters, hashes, percent signs, but SUFFIX may contain a leading
   1342# dot (in which case that matches only a dot).
   1343if test yes = "$_G_HAVE_XSI_OPS"; then
   1344  eval 'func_stripname ()
   1345  {
   1346    $debug_cmd
   1347
   1348    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
   1349    # positional parameters, so assign one to ordinary variable first.
   1350    func_stripname_result=$3
   1351    func_stripname_result=${func_stripname_result#"$1"}
   1352    func_stripname_result=${func_stripname_result%"$2"}
   1353  }'
   1354else
   1355  func_stripname ()
   1356  {
   1357    $debug_cmd
   1358
   1359    case $2 in
   1360      .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
   1361      *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
   1362    esac
   1363  }
   1364fi
   1365
   1366
   1367# func_show_eval CMD [FAIL_EXP]
   1368# -----------------------------
   1369# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
   1370# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
   1371# is given, then evaluate it.
   1372func_show_eval ()
   1373{
   1374    $debug_cmd
   1375
   1376    _G_cmd=$1
   1377    _G_fail_exp=${2-':'}
   1378
   1379    func_quote_arg pretty,expand "$_G_cmd"
   1380    eval "func_notquiet $func_quote_arg_result"
   1381
   1382    $opt_dry_run || {
   1383      eval "$_G_cmd"
   1384      _G_status=$?
   1385      if test 0 -ne "$_G_status"; then
   1386	eval "(exit $_G_status); $_G_fail_exp"
   1387      fi
   1388    }
   1389}
   1390
   1391
   1392# func_show_eval_locale CMD [FAIL_EXP]
   1393# ------------------------------------
   1394# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
   1395# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
   1396# is given, then evaluate it.  Use the saved locale for evaluation.
   1397func_show_eval_locale ()
   1398{
   1399    $debug_cmd
   1400
   1401    _G_cmd=$1
   1402    _G_fail_exp=${2-':'}
   1403
   1404    $opt_quiet || {
   1405      func_quote_arg expand,pretty "$_G_cmd"
   1406      eval "func_echo $func_quote_arg_result"
   1407    }
   1408
   1409    $opt_dry_run || {
   1410      eval "$_G_user_locale
   1411	    $_G_cmd"
   1412      _G_status=$?
   1413      eval "$_G_safe_locale"
   1414      if test 0 -ne "$_G_status"; then
   1415	eval "(exit $_G_status); $_G_fail_exp"
   1416      fi
   1417    }
   1418}
   1419
   1420
   1421# func_tr_sh
   1422# ----------
   1423# Turn $1 into a string suitable for a shell variable name.
   1424# Result is stored in $func_tr_sh_result.  All characters
   1425# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
   1426# if $1 begins with a digit, a '_' is prepended as well.
   1427func_tr_sh ()
   1428{
   1429    $debug_cmd
   1430
   1431    case $1 in
   1432    [0-9]* | *[!a-zA-Z0-9_]*)
   1433      func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
   1434      ;;
   1435    * )
   1436      func_tr_sh_result=$1
   1437      ;;
   1438    esac
   1439}
   1440
   1441
   1442# func_verbose ARG...
   1443# -------------------
   1444# Echo program name prefixed message in verbose mode only.
   1445func_verbose ()
   1446{
   1447    $debug_cmd
   1448
   1449    $opt_verbose && func_echo "$*"
   1450
   1451    :
   1452}
   1453
   1454
   1455# func_warn_and_continue ARG...
   1456# -----------------------------
   1457# Echo program name prefixed warning message to standard error.
   1458func_warn_and_continue ()
   1459{
   1460    $debug_cmd
   1461
   1462    $require_term_colors
   1463
   1464    func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
   1465}
   1466
   1467
   1468# func_warning CATEGORY ARG...
   1469# ----------------------------
   1470# Echo program name prefixed warning message to standard error. Warning
   1471# messages can be filtered according to CATEGORY, where this function
   1472# elides messages where CATEGORY is not listed in the global variable
   1473# 'opt_warning_types'.
   1474func_warning ()
   1475{
   1476    $debug_cmd
   1477
   1478    # CATEGORY must be in the warning_categories list!
   1479    case " $warning_categories " in
   1480      *" $1 "*) ;;
   1481      *) func_internal_error "invalid warning category '$1'" ;;
   1482    esac
   1483
   1484    _G_category=$1
   1485    shift
   1486
   1487    case " $opt_warning_types " in
   1488      *" $_G_category "*) $warning_func ${1+"$@"} ;;
   1489    esac
   1490}
   1491
   1492
   1493# func_sort_ver VER1 VER2
   1494# -----------------------
   1495# 'sort -V' is not generally available.
   1496# Note this deviates from the version comparison in automake
   1497# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
   1498# but this should suffice as we won't be specifying old
   1499# version formats or redundant trailing .0 in bootstrap.conf.
   1500# If we did want full compatibility then we should probably
   1501# use m4_version_compare from autoconf.
   1502func_sort_ver ()
   1503{
   1504    $debug_cmd
   1505
   1506    printf '%s\n%s\n' "$1" "$2" \
   1507      | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
   1508}
   1509
   1510# func_lt_ver PREV CURR
   1511# ---------------------
   1512# Return true if PREV and CURR are in the correct order according to
   1513# func_sort_ver, otherwise false.  Use it like this:
   1514#
   1515#  func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
   1516func_lt_ver ()
   1517{
   1518    $debug_cmd
   1519
   1520    test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
   1521}
   1522
   1523
   1524# Local variables:
   1525# mode: shell-script
   1526# sh-indentation: 2
   1527# eval: (add-hook 'before-save-hook 'time-stamp)
   1528# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
   1529# time-stamp-time-zone: "UTC"
   1530# End:
   1531#! /bin/sh
   1532
   1533# A portable, pluggable option parser for Bourne shell.
   1534# Written by Gary V. Vaughan, 2010
   1535
   1536# This is free software.  There is NO warranty; not even for
   1537# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   1538#
   1539# Copyright (C) 2010-2019, 2021 Bootstrap Authors
   1540#
   1541# This file is dual licensed under the terms of the MIT license
   1542# <https://opensource.org/license/MIT>, and GPL version 2 or later
   1543# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
   1544# these licenses when using or redistributing this software or any of
   1545# the files within it.  See the URLs above, or the file `LICENSE`
   1546# included in the Bootstrap distribution for the full license texts.
   1547
   1548# Please report bugs or propose patches to:
   1549# <https://github.com/gnulib-modules/bootstrap/issues>
   1550
   1551# Set a version string for this script.
   1552scriptversion=2019-02-19.15; # UTC
   1553
   1554
   1555## ------ ##
   1556## Usage. ##
   1557## ------ ##
   1558
   1559# This file is a library for parsing options in your shell scripts along
   1560# with assorted other useful supporting features that you can make use
   1561# of too.
   1562#
   1563# For the simplest scripts you might need only:
   1564#
   1565#   #!/bin/sh
   1566#   . relative/path/to/funclib.sh
   1567#   . relative/path/to/options-parser
   1568#   scriptversion=1.0
   1569#   func_options ${1+"$@"}
   1570#   eval set dummy "$func_options_result"; shift
   1571#   ...rest of your script...
   1572#
   1573# In order for the '--version' option to work, you will need to have a
   1574# suitably formatted comment like the one at the top of this file
   1575# starting with '# Written by ' and ending with '# Copyright'.
   1576#
   1577# For '-h' and '--help' to work, you will also need a one line
   1578# description of your script's purpose in a comment directly above the
   1579# '# Written by ' line, like the one at the top of this file.
   1580#
   1581# The default options also support '--debug', which will turn on shell
   1582# execution tracing (see the comment above debug_cmd below for another
   1583# use), and '--verbose' and the func_verbose function to allow your script
   1584# to display verbose messages only when your user has specified
   1585# '--verbose'.
   1586#
   1587# After sourcing this file, you can plug in processing for additional
   1588# options by amending the variables from the 'Configuration' section
   1589# below, and following the instructions in the 'Option parsing'
   1590# section further down.
   1591
   1592## -------------- ##
   1593## Configuration. ##
   1594## -------------- ##
   1595
   1596# You should override these variables in your script after sourcing this
   1597# file so that they reflect the customisations you have added to the
   1598# option parser.
   1599
   1600# The usage line for option parsing errors and the start of '-h' and
   1601# '--help' output messages. You can embed shell variables for delayed
   1602# expansion at the time the message is displayed, but you will need to
   1603# quote other shell meta-characters carefully to prevent them being
   1604# expanded when the contents are evaled.
   1605usage='$progpath [OPTION]...'
   1606
   1607# Short help message in response to '-h' and '--help'.  Add to this or
   1608# override it after sourcing this library to reflect the full set of
   1609# options your script accepts.
   1610usage_message="\
   1611       --debug        enable verbose shell tracing
   1612   -W, --warnings=CATEGORY
   1613                      report the warnings falling in CATEGORY [all]
   1614   -v, --verbose      verbosely report processing
   1615       --version      print version information and exit
   1616   -h, --help         print short or long help message and exit
   1617"
   1618
   1619# Additional text appended to 'usage_message' in response to '--help'.
   1620long_help_message="
   1621Warning categories include:
   1622       'all'          show all warnings
   1623       'none'         turn off all the warnings
   1624       'error'        warnings are treated as fatal errors"
   1625
   1626# Help message printed before fatal option parsing errors.
   1627fatal_help="Try '\$progname --help' for more information."
   1628
   1629
   1630
   1631## ------------------------- ##
   1632## Hook function management. ##
   1633## ------------------------- ##
   1634
   1635# This section contains functions for adding, removing, and running hooks
   1636# in the main code.  A hook is just a list of function names that can be
   1637# run in order later on.
   1638
   1639# func_hookable FUNC_NAME
   1640# -----------------------
   1641# Declare that FUNC_NAME will run hooks added with
   1642# 'func_add_hook FUNC_NAME ...'.
   1643func_hookable ()
   1644{
   1645    $debug_cmd
   1646
   1647    func_append hookable_fns " $1"
   1648}
   1649
   1650
   1651# func_add_hook FUNC_NAME HOOK_FUNC
   1652# ---------------------------------
   1653# Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
   1654# first have been declared "hookable" by a call to 'func_hookable'.
   1655func_add_hook ()
   1656{
   1657    $debug_cmd
   1658
   1659    case " $hookable_fns " in
   1660      *" $1 "*) ;;
   1661      *) func_fatal_error "'$1' does not accept hook functions." ;;
   1662    esac
   1663
   1664    eval func_append ${1}_hooks '" $2"'
   1665}
   1666
   1667
   1668# func_remove_hook FUNC_NAME HOOK_FUNC
   1669# ------------------------------------
   1670# Remove HOOK_FUNC from the list of hook functions to be called by
   1671# FUNC_NAME.
   1672func_remove_hook ()
   1673{
   1674    $debug_cmd
   1675
   1676    eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
   1677}
   1678
   1679
   1680# func_propagate_result FUNC_NAME_A FUNC_NAME_B
   1681# ---------------------------------------------
   1682# If the *_result variable of FUNC_NAME_A _is set_, assign its value to
   1683# *_result variable of FUNC_NAME_B.
   1684func_propagate_result ()
   1685{
   1686    $debug_cmd
   1687
   1688    func_propagate_result_result=:
   1689    if eval "test \"\${${1}_result+set}\" = set"
   1690    then
   1691      eval "${2}_result=\$${1}_result"
   1692    else
   1693      func_propagate_result_result=false
   1694    fi
   1695}
   1696
   1697
   1698# func_run_hooks FUNC_NAME [ARG]...
   1699# ---------------------------------
   1700# Run all hook functions registered to FUNC_NAME.
   1701# It's assumed that the list of hook functions contains nothing more
   1702# than a whitespace-delimited list of legal shell function names, and
   1703# no effort is wasted trying to catch shell meta-characters or preserve
   1704# whitespace.
   1705func_run_hooks ()
   1706{
   1707    $debug_cmd
   1708
   1709    case " $hookable_fns " in
   1710      *" $1 "*) ;;
   1711      *) func_fatal_error "'$1' does not support hook functions." ;;
   1712    esac
   1713
   1714    eval _G_hook_fns=\$$1_hooks; shift
   1715
   1716    for _G_hook in $_G_hook_fns; do
   1717      func_unset "${_G_hook}_result"
   1718      eval $_G_hook '${1+"$@"}'
   1719      func_propagate_result $_G_hook func_run_hooks
   1720      if $func_propagate_result_result; then
   1721        eval set dummy "$func_run_hooks_result"; shift
   1722      fi
   1723    done
   1724}
   1725
   1726
   1727
   1728## --------------- ##
   1729## Option parsing. ##
   1730## --------------- ##
   1731
   1732# In order to add your own option parsing hooks, you must accept the
   1733# full positional parameter list from your hook function.  You may remove
   1734# or edit any options that you action, and then pass back the remaining
   1735# unprocessed options in '<hooked_function_name>_result', escaped
   1736# suitably for 'eval'.
   1737#
   1738# The '<hooked_function_name>_result' variable is automatically unset
   1739# before your hook gets called; for best performance, only set the
   1740# *_result variable when necessary (i.e. don't call the 'func_quote'
   1741# function unnecessarily because it can be an expensive operation on some
   1742# machines).
   1743#
   1744# Like this:
   1745#
   1746#    my_options_prep ()
   1747#    {
   1748#        $debug_cmd
   1749#
   1750#        # Extend the existing usage message.
   1751#        usage_message=$usage_message'
   1752#      -s, --silent       don'\''t print informational messages
   1753#    '
   1754#        # No change in '$@' (ignored completely by this hook).  Leave
   1755#        # my_options_prep_result variable intact.
   1756#    }
   1757#    func_add_hook func_options_prep my_options_prep
   1758#
   1759#
   1760#    my_silent_option ()
   1761#    {
   1762#        $debug_cmd
   1763#
   1764#        args_changed=false
   1765#
   1766#        # Note that, for efficiency, we parse as many options as we can
   1767#        # recognise in a loop before passing the remainder back to the
   1768#        # caller on the first unrecognised argument we encounter.
   1769#        while test $# -gt 0; do
   1770#          opt=$1; shift
   1771#          case $opt in
   1772#            --silent|-s) opt_silent=:
   1773#                         args_changed=:
   1774#                         ;;
   1775#            # Separate non-argument short options:
   1776#            -s*)         func_split_short_opt "$_G_opt"
   1777#                         set dummy "$func_split_short_opt_name" \
   1778#                             "-$func_split_short_opt_arg" ${1+"$@"}
   1779#                         shift
   1780#                         args_changed=:
   1781#                         ;;
   1782#            *)           # Make sure the first unrecognised option "$_G_opt"
   1783#                         # is added back to "$@" in case we need it later,
   1784#                         # if $args_changed was set to 'true'.
   1785#                         set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
   1786#          esac
   1787#        done
   1788#
   1789#        # Only call 'func_quote' here if we processed at least one argument.
   1790#        if $args_changed; then
   1791#          func_quote eval ${1+"$@"}
   1792#          my_silent_option_result=$func_quote_result
   1793#        fi
   1794#    }
   1795#    func_add_hook func_parse_options my_silent_option
   1796#
   1797#
   1798#    my_option_validation ()
   1799#    {
   1800#        $debug_cmd
   1801#
   1802#        $opt_silent && $opt_verbose && func_fatal_help "\
   1803#    '--silent' and '--verbose' options are mutually exclusive."
   1804#    }
   1805#    func_add_hook func_validate_options my_option_validation
   1806#
   1807# You'll also need to manually amend $usage_message to reflect the extra
   1808# options you parse.  It's preferable to append if you can, so that
   1809# multiple option parsing hooks can be added safely.
   1810
   1811
   1812# func_options_finish [ARG]...
   1813# ----------------------------
   1814# Finishing the option parse loop (call 'func_options' hooks ATM).
   1815func_options_finish ()
   1816{
   1817    $debug_cmd
   1818
   1819    func_run_hooks func_options ${1+"$@"}
   1820    func_propagate_result func_run_hooks func_options_finish
   1821}
   1822
   1823
   1824# func_options [ARG]...
   1825# ---------------------
   1826# All the functions called inside func_options are hookable. See the
   1827# individual implementations for details.
   1828func_hookable func_options
   1829func_options ()
   1830{
   1831    $debug_cmd
   1832
   1833    _G_options_quoted=false
   1834
   1835    for my_func in options_prep parse_options validate_options options_finish
   1836    do
   1837      func_unset func_${my_func}_result
   1838      func_unset func_run_hooks_result
   1839      eval func_$my_func '${1+"$@"}'
   1840      func_propagate_result func_$my_func func_options
   1841      if $func_propagate_result_result; then
   1842        eval set dummy "$func_options_result"; shift
   1843        _G_options_quoted=:
   1844      fi
   1845    done
   1846
   1847    $_G_options_quoted || {
   1848      # As we (func_options) are top-level options-parser function and
   1849      # nobody quoted "$@" for us yet, we need to do it explicitly for
   1850      # caller.
   1851      func_quote eval ${1+"$@"}
   1852      func_options_result=$func_quote_result
   1853    }
   1854}
   1855
   1856
   1857# func_options_prep [ARG]...
   1858# --------------------------
   1859# All initialisations required before starting the option parse loop.
   1860# Note that when calling hook functions, we pass through the list of
   1861# positional parameters.  If a hook function modifies that list, and
   1862# needs to propagate that back to rest of this script, then the complete
   1863# modified list must be put in 'func_run_hooks_result' before returning.
   1864func_hookable func_options_prep
   1865func_options_prep ()
   1866{
   1867    $debug_cmd
   1868
   1869    # Option defaults:
   1870    opt_verbose=false
   1871    opt_warning_types=
   1872
   1873    func_run_hooks func_options_prep ${1+"$@"}
   1874    func_propagate_result func_run_hooks func_options_prep
   1875}
   1876
   1877
   1878# func_parse_options [ARG]...
   1879# ---------------------------
   1880# The main option parsing loop.
   1881func_hookable func_parse_options
   1882func_parse_options ()
   1883{
   1884    $debug_cmd
   1885
   1886    _G_parse_options_requote=false
   1887    # this just eases exit handling
   1888    while test $# -gt 0; do
   1889      # Defer to hook functions for initial option parsing, so they
   1890      # get priority in the event of reusing an option name.
   1891      func_run_hooks func_parse_options ${1+"$@"}
   1892      func_propagate_result func_run_hooks func_parse_options
   1893      if $func_propagate_result_result; then
   1894        eval set dummy "$func_parse_options_result"; shift
   1895        # Even though we may have changed "$@", we passed the "$@" array
   1896        # down into the hook and it quoted it for us (because we are in
   1897        # this if-branch).  No need to quote it again.
   1898        _G_parse_options_requote=false
   1899      fi
   1900
   1901      # Break out of the loop if we already parsed every option.
   1902      test $# -gt 0 || break
   1903
   1904      # We expect that one of the options parsed in this function matches
   1905      # and thus we remove _G_opt from "$@" and need to re-quote.
   1906      _G_match_parse_options=:
   1907      _G_opt=$1
   1908      shift
   1909      case $_G_opt in
   1910        --debug|-x)   debug_cmd='set -x'
   1911                      func_echo "enabling shell trace mode" >&2
   1912                      $debug_cmd
   1913                      ;;
   1914
   1915        --no-warnings|--no-warning|--no-warn)
   1916                      set dummy --warnings none ${1+"$@"}
   1917                      shift
   1918		      ;;
   1919
   1920        --warnings|--warning|-W)
   1921                      if test $# = 0 && func_missing_arg $_G_opt; then
   1922                        _G_parse_options_requote=:
   1923                        break
   1924                      fi
   1925                      case " $warning_categories $1" in
   1926                        *" $1 "*)
   1927                          # trailing space prevents matching last $1 above
   1928                          func_append_uniq opt_warning_types " $1"
   1929                          ;;
   1930                        *all)
   1931                          opt_warning_types=$warning_categories
   1932                          ;;
   1933                        *none)
   1934                          opt_warning_types=none
   1935                          warning_func=:
   1936                          ;;
   1937                        *error)
   1938                          opt_warning_types=$warning_categories
   1939                          warning_func=func_fatal_error
   1940                          ;;
   1941                        *)
   1942                          func_fatal_error \
   1943                             "unsupported warning category: '$1'"
   1944                          ;;
   1945                      esac
   1946                      shift
   1947                      ;;
   1948
   1949        --verbose|-v) opt_verbose=: ;;
   1950        --version)    func_version ;;
   1951        -\?|-h)       func_usage ;;
   1952        --help)       func_help ;;
   1953
   1954	# Separate optargs to long options (plugins may need this):
   1955	--*=*)        func_split_equals "$_G_opt"
   1956	              set dummy "$func_split_equals_lhs" \
   1957                          "$func_split_equals_rhs" ${1+"$@"}
   1958                      shift
   1959                      ;;
   1960
   1961       # Separate optargs to short options:
   1962        -W*)
   1963                      func_split_short_opt "$_G_opt"
   1964                      set dummy "$func_split_short_opt_name" \
   1965                          "$func_split_short_opt_arg" ${1+"$@"}
   1966                      shift
   1967                      ;;
   1968
   1969        # Separate non-argument short options:
   1970        -\?*|-h*|-v*|-x*)
   1971                      func_split_short_opt "$_G_opt"
   1972                      set dummy "$func_split_short_opt_name" \
   1973                          "-$func_split_short_opt_arg" ${1+"$@"}
   1974                      shift
   1975                      ;;
   1976
   1977        --)           _G_parse_options_requote=: ; break ;;
   1978        -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
   1979        *)            set dummy "$_G_opt" ${1+"$@"}; shift
   1980                      _G_match_parse_options=false
   1981                      break
   1982                      ;;
   1983      esac
   1984
   1985      if $_G_match_parse_options; then
   1986        _G_parse_options_requote=:
   1987      fi
   1988    done
   1989
   1990    if $_G_parse_options_requote; then
   1991      # save modified positional parameters for caller
   1992      func_quote eval ${1+"$@"}
   1993      func_parse_options_result=$func_quote_result
   1994    fi
   1995}
   1996
   1997
   1998# func_validate_options [ARG]...
   1999# ------------------------------
   2000# Perform any sanity checks on option settings and/or unconsumed
   2001# arguments.
   2002func_hookable func_validate_options
   2003func_validate_options ()
   2004{
   2005    $debug_cmd
   2006
   2007    # Display all warnings if -W was not given.
   2008    test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
   2009
   2010    func_run_hooks func_validate_options ${1+"$@"}
   2011    func_propagate_result func_run_hooks func_validate_options
   2012
   2013    # Bail if the options were screwed!
   2014    $exit_cmd $EXIT_FAILURE
   2015}
   2016
   2017
   2018
   2019## ----------------- ##
   2020## Helper functions. ##
   2021## ----------------- ##
   2022
   2023# This section contains the helper functions used by the rest of the
   2024# hookable option parser framework in ascii-betical order.
   2025
   2026
   2027# func_fatal_help ARG...
   2028# ----------------------
   2029# Echo program name prefixed message to standard error, followed by
   2030# a help hint, and exit.
   2031func_fatal_help ()
   2032{
   2033    $debug_cmd
   2034
   2035    eval \$ECHO \""Usage: $usage"\"
   2036    eval \$ECHO \""$fatal_help"\"
   2037    func_error ${1+"$@"}
   2038    exit $EXIT_FAILURE
   2039}
   2040
   2041
   2042# func_help
   2043# ---------
   2044# Echo long help message to standard output and exit.
   2045func_help ()
   2046{
   2047    $debug_cmd
   2048
   2049    func_usage_message
   2050    $ECHO "$long_help_message"
   2051    exit 0
   2052}
   2053
   2054
   2055# func_missing_arg ARGNAME
   2056# ------------------------
   2057# Echo program name prefixed message to standard error and set global
   2058# exit_cmd.
   2059func_missing_arg ()
   2060{
   2061    $debug_cmd
   2062
   2063    func_error "Missing argument for '$1'."
   2064    exit_cmd=exit
   2065}
   2066
   2067
   2068# func_split_equals STRING
   2069# ------------------------
   2070# Set func_split_equals_lhs and func_split_equals_rhs shell variables
   2071# after splitting STRING at the '=' sign.
   2072test -z "$_G_HAVE_XSI_OPS" \
   2073    && (eval 'x=a/b/c;
   2074      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
   2075    && _G_HAVE_XSI_OPS=yes
   2076
   2077if test yes = "$_G_HAVE_XSI_OPS"
   2078then
   2079  # This is an XSI compatible shell, allowing a faster implementation...
   2080  eval 'func_split_equals ()
   2081  {
   2082      $debug_cmd
   2083
   2084      func_split_equals_lhs=${1%%=*}
   2085      func_split_equals_rhs=${1#*=}
   2086      if test "x$func_split_equals_lhs" = "x$1"; then
   2087        func_split_equals_rhs=
   2088      fi
   2089  }'
   2090else
   2091  # ...otherwise fall back to using expr, which is often a shell builtin.
   2092  func_split_equals ()
   2093  {
   2094      $debug_cmd
   2095
   2096      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
   2097      func_split_equals_rhs=
   2098      test "x$func_split_equals_lhs=" = "x$1" \
   2099        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
   2100  }
   2101fi #func_split_equals
   2102
   2103
   2104# func_split_short_opt SHORTOPT
   2105# -----------------------------
   2106# Set func_split_short_opt_name and func_split_short_opt_arg shell
   2107# variables after splitting SHORTOPT after the 2nd character.
   2108if test yes = "$_G_HAVE_XSI_OPS"
   2109then
   2110  # This is an XSI compatible shell, allowing a faster implementation...
   2111  eval 'func_split_short_opt ()
   2112  {
   2113      $debug_cmd
   2114
   2115      func_split_short_opt_arg=${1#??}
   2116      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
   2117  }'
   2118else
   2119  # ...otherwise fall back to using expr, which is often a shell builtin.
   2120  func_split_short_opt ()
   2121  {
   2122      $debug_cmd
   2123
   2124      func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'`
   2125      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
   2126  }
   2127fi #func_split_short_opt
   2128
   2129
   2130# func_usage
   2131# ----------
   2132# Echo short help message to standard output and exit.
   2133func_usage ()
   2134{
   2135    $debug_cmd
   2136
   2137    func_usage_message
   2138    $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
   2139    exit 0
   2140}
   2141
   2142
   2143# func_usage_message
   2144# ------------------
   2145# Echo short help message to standard output.
   2146func_usage_message ()
   2147{
   2148    $debug_cmd
   2149
   2150    eval \$ECHO \""Usage: $usage"\"
   2151    echo
   2152    $SED -n 's|^# ||
   2153        /^Written by/{
   2154          x;p;x
   2155        }
   2156	h
   2157	/^Written by/q' < "$progpath"
   2158    echo
   2159    eval \$ECHO \""$usage_message"\"
   2160}
   2161
   2162
   2163# func_version
   2164# ------------
   2165# Echo version message to standard output and exit.
   2166# The version message is extracted from the calling file's header
   2167# comments, with leading '# ' stripped:
   2168#   1. First display the progname and version
   2169#   2. Followed by the header comment line matching  /^# Written by /
   2170#   3. Then a blank line followed by the first following line matching
   2171#      /^# Copyright /
   2172#   4. Immediately followed by any lines between the previous matches,
   2173#      except lines preceding the intervening completely blank line.
   2174# For example, see the header comments of this file.
   2175func_version ()
   2176{
   2177    $debug_cmd
   2178
   2179    printf '%s\n' "$progname $scriptversion"
   2180    $SED -n '
   2181        /^# Written by /!b
   2182        s|^# ||; p; n
   2183
   2184        :fwd2blnk
   2185        /./ {
   2186          n
   2187          b fwd2blnk
   2188        }
   2189        p; n
   2190
   2191        :holdwrnt
   2192        s|^# ||
   2193        s|^# *$||
   2194        /^Copyright /!{
   2195          /./H
   2196          n
   2197          b holdwrnt
   2198        }
   2199
   2200        s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
   2201        G
   2202        s|\(\n\)\n*|\1|g
   2203        p; q' < "$progpath"
   2204
   2205    exit $?
   2206}
   2207
   2208
   2209# Local variables:
   2210# mode: shell-script
   2211# sh-indentation: 2
   2212# eval: (add-hook 'before-save-hook 'time-stamp)
   2213# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
   2214# time-stamp-time-zone: "UTC"
   2215# End:
   2216
   2217# Set a version string.
   2218scriptversion='(GNU libtool) 2.4.7'
   2219
   2220
   2221# func_echo ARG...
   2222# ----------------
   2223# Libtool also displays the current mode in messages, so override
   2224# funclib.sh func_echo with this custom definition.
   2225func_echo ()
   2226{
   2227    $debug_cmd
   2228
   2229    _G_message=$*
   2230
   2231    func_echo_IFS=$IFS
   2232    IFS=$nl
   2233    for _G_line in $_G_message; do
   2234      IFS=$func_echo_IFS
   2235      $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
   2236    done
   2237    IFS=$func_echo_IFS
   2238}
   2239
   2240
   2241# func_warning ARG...
   2242# -------------------
   2243# Libtool warnings are not categorized, so override funclib.sh
   2244# func_warning with this simpler definition.
   2245func_warning ()
   2246{
   2247    $debug_cmd
   2248
   2249    $warning_func ${1+"$@"}
   2250}
   2251
   2252
   2253## ---------------- ##
   2254## Options parsing. ##
   2255## ---------------- ##
   2256
   2257# Hook in the functions to make sure our own options are parsed during
   2258# the option parsing loop.
   2259
   2260usage='$progpath [OPTION]... [MODE-ARG]...'
   2261
   2262# Short help message in response to '-h'.
   2263usage_message="Options:
   2264       --config             show all configuration variables
   2265       --debug              enable verbose shell tracing
   2266   -n, --dry-run            display commands without modifying any files
   2267       --features           display basic configuration information and exit
   2268       --mode=MODE          use operation mode MODE
   2269       --no-warnings        equivalent to '-Wnone'
   2270       --preserve-dup-deps  don't remove duplicate dependency libraries
   2271       --quiet, --silent    don't print informational messages
   2272       --tag=TAG            use configuration variables from tag TAG
   2273   -v, --verbose            print more informational messages than default
   2274       --version            print version information
   2275   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
   2276   -h, --help, --help-all   print short, long, or detailed help message
   2277"
   2278
   2279# Additional text appended to 'usage_message' in response to '--help'.
   2280func_help ()
   2281{
   2282    $debug_cmd
   2283
   2284    func_usage_message
   2285    $ECHO "$long_help_message
   2286
   2287MODE must be one of the following:
   2288
   2289       clean           remove files from the build directory
   2290       compile         compile a source file into a libtool object
   2291       execute         automatically set library path, then run a program
   2292       finish          complete the installation of libtool libraries
   2293       install         install libraries or executables
   2294       link            create a library or an executable
   2295       uninstall       remove libraries from an installed directory
   2296
   2297MODE-ARGS vary depending on the MODE.  When passed as first option,
   2298'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
   2299Try '$progname --help --mode=MODE' for a more detailed description of MODE.
   2300
   2301When reporting a bug, please describe a test case to reproduce it and
   2302include the following information:
   2303
   2304       host-triplet:   $host
   2305       shell:          $SHELL
   2306       compiler:       $LTCC
   2307       compiler flags: $LTCFLAGS
   2308       linker:         $LD (gnu? $with_gnu_ld)
   2309       version:        $progname (GNU libtool) 2.4.7
   2310       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
   2311       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
   2312
   2313Report bugs to <bug-libtool@gnu.org>.
   2314GNU libtool home page: <http://www.gnu.org/software/libtool/>.
   2315General help using GNU software: <http://www.gnu.org/gethelp/>."
   2316    exit 0
   2317}
   2318
   2319
   2320# func_lo2o OBJECT-NAME
   2321# ---------------------
   2322# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
   2323# object suffix.
   2324
   2325lo2o=s/\\.lo\$/.$objext/
   2326o2lo=s/\\.$objext\$/.lo/
   2327
   2328if test yes = "$_G_HAVE_XSI_OPS"; then
   2329  eval 'func_lo2o ()
   2330  {
   2331    case $1 in
   2332      *.lo) func_lo2o_result=${1%.lo}.$objext ;;
   2333      *   ) func_lo2o_result=$1               ;;
   2334    esac
   2335  }'
   2336
   2337  # func_xform LIBOBJ-OR-SOURCE
   2338  # ---------------------------
   2339  # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
   2340  # suffix to a '.lo' libtool-object suffix.
   2341  eval 'func_xform ()
   2342  {
   2343    func_xform_result=${1%.*}.lo
   2344  }'
   2345else
   2346  # ...otherwise fall back to using sed.
   2347  func_lo2o ()
   2348  {
   2349    func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
   2350  }
   2351
   2352  func_xform ()
   2353  {
   2354    func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
   2355  }
   2356fi
   2357
   2358
   2359# func_fatal_configuration ARG...
   2360# -------------------------------
   2361# Echo program name prefixed message to standard error, followed by
   2362# a configuration failure hint, and exit.
   2363func_fatal_configuration ()
   2364{
   2365    func_fatal_error ${1+"$@"} \
   2366      "See the $PACKAGE documentation for more information." \
   2367      "Fatal configuration error."
   2368}
   2369
   2370
   2371# func_config
   2372# -----------
   2373# Display the configuration for all the tags in this script.
   2374func_config ()
   2375{
   2376    re_begincf='^# ### BEGIN LIBTOOL'
   2377    re_endcf='^# ### END LIBTOOL'
   2378
   2379    # Default configuration.
   2380    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
   2381
   2382    # Now print the configurations for the tags.
   2383    for tagname in $taglist; do
   2384      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
   2385    done
   2386
   2387    exit $?
   2388}
   2389
   2390
   2391# func_features
   2392# -------------
   2393# Display the features supported by this script.
   2394func_features ()
   2395{
   2396    echo "host: $host"
   2397    if test yes = "$build_libtool_libs"; then
   2398      echo "enable shared libraries"
   2399    else
   2400      echo "disable shared libraries"
   2401    fi
   2402    if test yes = "$build_old_libs"; then
   2403      echo "enable static libraries"
   2404    else
   2405      echo "disable static libraries"
   2406    fi
   2407
   2408    exit $?
   2409}
   2410
   2411
   2412# func_enable_tag TAGNAME
   2413# -----------------------
   2414# Verify that TAGNAME is valid, and either flag an error and exit, or
   2415# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
   2416# variable here.
   2417func_enable_tag ()
   2418{
   2419    # Global variable:
   2420    tagname=$1
   2421
   2422    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
   2423    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
   2424    sed_extractcf=/$re_begincf/,/$re_endcf/p
   2425
   2426    # Validate tagname.
   2427    case $tagname in
   2428      *[!-_A-Za-z0-9,/]*)
   2429        func_fatal_error "invalid tag name: $tagname"
   2430        ;;
   2431    esac
   2432
   2433    # Don't test for the "default" C tag, as we know it's
   2434    # there but not specially marked.
   2435    case $tagname in
   2436        CC) ;;
   2437    *)
   2438        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
   2439	  taglist="$taglist $tagname"
   2440
   2441	  # Evaluate the configuration.  Be careful to quote the path
   2442	  # and the sed script, to avoid splitting on whitespace, but
   2443	  # also don't use non-portable quotes within backquotes within
   2444	  # quotes we have to do it in 2 steps:
   2445	  extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
   2446	  eval "$extractedcf"
   2447        else
   2448	  func_error "ignoring unknown tag $tagname"
   2449        fi
   2450        ;;
   2451    esac
   2452}
   2453
   2454
   2455# func_check_version_match
   2456# ------------------------
   2457# Ensure that we are using m4 macros, and libtool script from the same
   2458# release of libtool.
   2459func_check_version_match ()
   2460{
   2461    if test "$package_revision" != "$macro_revision"; then
   2462      if test "$VERSION" != "$macro_version"; then
   2463        if test -z "$macro_version"; then
   2464          cat >&2 <<_LT_EOF
   2465$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
   2466$progname: definition of this LT_INIT comes from an older release.
   2467$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
   2468$progname: and run autoconf again.
   2469_LT_EOF
   2470        else
   2471          cat >&2 <<_LT_EOF
   2472$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
   2473$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
   2474$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
   2475$progname: and run autoconf again.
   2476_LT_EOF
   2477        fi
   2478      else
   2479        cat >&2 <<_LT_EOF
   2480$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
   2481$progname: but the definition of this LT_INIT comes from revision $macro_revision.
   2482$progname: You should recreate aclocal.m4 with macros from revision $package_revision
   2483$progname: of $PACKAGE $VERSION and run autoconf again.
   2484_LT_EOF
   2485      fi
   2486
   2487      exit $EXIT_MISMATCH
   2488    fi
   2489}
   2490
   2491
   2492# libtool_options_prep [ARG]...
   2493# -----------------------------
   2494# Preparation for options parsed by libtool.
   2495libtool_options_prep ()
   2496{
   2497    $debug_mode
   2498
   2499    # Option defaults:
   2500    opt_config=false
   2501    opt_dlopen=
   2502    opt_dry_run=false
   2503    opt_help=false
   2504    opt_mode=
   2505    opt_preserve_dup_deps=false
   2506    opt_quiet=false
   2507
   2508    nonopt=
   2509    preserve_args=
   2510
   2511    _G_rc_lt_options_prep=:
   2512
   2513    # Shorthand for --mode=foo, only valid as the first argument
   2514    case $1 in
   2515    clean|clea|cle|cl)
   2516      shift; set dummy --mode clean ${1+"$@"}; shift
   2517      ;;
   2518    compile|compil|compi|comp|com|co|c)
   2519      shift; set dummy --mode compile ${1+"$@"}; shift
   2520      ;;
   2521    execute|execut|execu|exec|exe|ex|e)
   2522      shift; set dummy --mode execute ${1+"$@"}; shift
   2523      ;;
   2524    finish|finis|fini|fin|fi|f)
   2525      shift; set dummy --mode finish ${1+"$@"}; shift
   2526      ;;
   2527    install|instal|insta|inst|ins|in|i)
   2528      shift; set dummy --mode install ${1+"$@"}; shift
   2529      ;;
   2530    link|lin|li|l)
   2531      shift; set dummy --mode link ${1+"$@"}; shift
   2532      ;;
   2533    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
   2534      shift; set dummy --mode uninstall ${1+"$@"}; shift
   2535      ;;
   2536    *)
   2537      _G_rc_lt_options_prep=false
   2538      ;;
   2539    esac
   2540
   2541    if $_G_rc_lt_options_prep; then
   2542      # Pass back the list of options.
   2543      func_quote eval ${1+"$@"}
   2544      libtool_options_prep_result=$func_quote_result
   2545    fi
   2546}
   2547func_add_hook func_options_prep libtool_options_prep
   2548
   2549
   2550# libtool_parse_options [ARG]...
   2551# ---------------------------------
   2552# Provide handling for libtool specific options.
   2553libtool_parse_options ()
   2554{
   2555    $debug_cmd
   2556
   2557    _G_rc_lt_parse_options=false
   2558
   2559    # Perform our own loop to consume as many options as possible in
   2560    # each iteration.
   2561    while test $# -gt 0; do
   2562      _G_match_lt_parse_options=:
   2563      _G_opt=$1
   2564      shift
   2565      case $_G_opt in
   2566        --dry-run|--dryrun|-n)
   2567                        opt_dry_run=:
   2568                        ;;
   2569
   2570        --config)       func_config ;;
   2571
   2572        --dlopen|-dlopen)
   2573                        opt_dlopen="${opt_dlopen+$opt_dlopen
   2574}$1"
   2575                        shift
   2576                        ;;
   2577
   2578        --preserve-dup-deps)
   2579                        opt_preserve_dup_deps=: ;;
   2580
   2581        --features)     func_features ;;
   2582
   2583        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
   2584
   2585        --help)         opt_help=: ;;
   2586
   2587        --help-all)     opt_help=': help-all' ;;
   2588
   2589        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
   2590                        opt_mode=$1
   2591                        case $1 in
   2592                          # Valid mode arguments:
   2593                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
   2594
   2595                          # Catch anything else as an error
   2596                          *) func_error "invalid argument for $_G_opt"
   2597                             exit_cmd=exit
   2598                             break
   2599                             ;;
   2600                        esac
   2601                        shift
   2602                        ;;
   2603
   2604        --no-silent|--no-quiet)
   2605                        opt_quiet=false
   2606                        func_append preserve_args " $_G_opt"
   2607                        ;;
   2608
   2609        --no-warnings|--no-warning|--no-warn)
   2610                        opt_warning=false
   2611                        func_append preserve_args " $_G_opt"
   2612                        ;;
   2613
   2614        --no-verbose)
   2615                        opt_verbose=false
   2616                        func_append preserve_args " $_G_opt"
   2617                        ;;
   2618
   2619        --silent|--quiet)
   2620                        opt_quiet=:
   2621                        opt_verbose=false
   2622                        func_append preserve_args " $_G_opt"
   2623                        ;;
   2624
   2625        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
   2626                        opt_tag=$1
   2627                        func_append preserve_args " $_G_opt $1"
   2628                        func_enable_tag "$1"
   2629                        shift
   2630                        ;;
   2631
   2632        --verbose|-v)   opt_quiet=false
   2633                        opt_verbose=:
   2634                        func_append preserve_args " $_G_opt"
   2635                        ;;
   2636
   2637        # An option not handled by this hook function:
   2638        *)              set dummy "$_G_opt" ${1+"$@"} ; shift
   2639                        _G_match_lt_parse_options=false
   2640                        break
   2641                        ;;
   2642      esac
   2643      $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
   2644    done
   2645
   2646    if $_G_rc_lt_parse_options; then
   2647      # save modified positional parameters for caller
   2648      func_quote eval ${1+"$@"}
   2649      libtool_parse_options_result=$func_quote_result
   2650    fi
   2651}
   2652func_add_hook func_parse_options libtool_parse_options
   2653
   2654
   2655
   2656# libtool_validate_options [ARG]...
   2657# ---------------------------------
   2658# Perform any sanity checks on option settings and/or unconsumed
   2659# arguments.
   2660libtool_validate_options ()
   2661{
   2662    # save first non-option argument
   2663    if test 0 -lt $#; then
   2664      nonopt=$1
   2665      shift
   2666    fi
   2667
   2668    # preserve --debug
   2669    test : = "$debug_cmd" || func_append preserve_args " --debug"
   2670
   2671    # Keeping compiler generated duplicates in $postdeps and $predeps is not
   2672    # harmful, and is necessary in a majority of systems that use it to satisfy
   2673    # symbol dependencies.
   2674    opt_duplicate_compiler_generated_deps=:
   2675
   2676    $opt_help || {
   2677      # Sanity checks first:
   2678      func_check_version_match
   2679
   2680      test yes != "$build_libtool_libs" \
   2681        && test yes != "$build_old_libs" \
   2682        && func_fatal_configuration "not configured to build any kind of library"
   2683
   2684      # Darwin sucks
   2685      eval std_shrext=\"$shrext_cmds\"
   2686
   2687      # Only execute mode is allowed to have -dlopen flags.
   2688      if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
   2689        func_error "unrecognized option '-dlopen'"
   2690        $ECHO "$help" 1>&2
   2691        exit $EXIT_FAILURE
   2692      fi
   2693
   2694      # Change the help message to a mode-specific one.
   2695      generic_help=$help
   2696      help="Try '$progname --help --mode=$opt_mode' for more information."
   2697    }
   2698
   2699    # Pass back the unparsed argument list
   2700    func_quote eval ${1+"$@"}
   2701    libtool_validate_options_result=$func_quote_result
   2702}
   2703func_add_hook func_validate_options libtool_validate_options
   2704
   2705
   2706# Process options as early as possible so that --help and --version
   2707# can return quickly.
   2708func_options ${1+"$@"}
   2709eval set dummy "$func_options_result"; shift
   2710
   2711
   2712
   2713## ----------- ##
   2714##    Main.    ##
   2715## ----------- ##
   2716
   2717magic='%%%MAGIC variable%%%'
   2718magic_exe='%%%MAGIC EXE variable%%%'
   2719
   2720# Global variables.
   2721extracted_archives=
   2722extracted_serial=0
   2723
   2724# If this variable is set in any of the actions, the command in it
   2725# will be execed at the end.  This prevents here-documents from being
   2726# left over by shells.
   2727exec_cmd=
   2728
   2729
   2730# A function that is used when there is no print builtin or printf.
   2731func_fallback_echo ()
   2732{
   2733  eval 'cat <<_LTECHO_EOF
   2734$1
   2735_LTECHO_EOF'
   2736}
   2737
   2738# func_generated_by_libtool
   2739# True iff stdin has been generated by Libtool. This function is only
   2740# a basic sanity check; it will hardly flush out determined imposters.
   2741func_generated_by_libtool_p ()
   2742{
   2743  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
   2744}
   2745
   2746# func_lalib_p file
   2747# True iff FILE is a libtool '.la' library or '.lo' object file.
   2748# This function is only a basic sanity check; it will hardly flush out
   2749# determined imposters.
   2750func_lalib_p ()
   2751{
   2752    test -f "$1" &&
   2753      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
   2754}
   2755
   2756# func_lalib_unsafe_p file
   2757# True iff FILE is a libtool '.la' library or '.lo' object file.
   2758# This function implements the same check as func_lalib_p without
   2759# resorting to external programs.  To this end, it redirects stdin and
   2760# closes it afterwards, without saving the original file descriptor.
   2761# As a safety measure, use it only where a negative result would be
   2762# fatal anyway.  Works if 'file' does not exist.
   2763func_lalib_unsafe_p ()
   2764{
   2765    lalib_p=no
   2766    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
   2767	for lalib_p_l in 1 2 3 4
   2768	do
   2769	    read lalib_p_line
   2770	    case $lalib_p_line in
   2771		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
   2772	    esac
   2773	done
   2774	exec 0<&5 5<&-
   2775    fi
   2776    test yes = "$lalib_p"
   2777}
   2778
   2779# func_ltwrapper_script_p file
   2780# True iff FILE is a libtool wrapper script
   2781# This function is only a basic sanity check; it will hardly flush out
   2782# determined imposters.
   2783func_ltwrapper_script_p ()
   2784{
   2785    test -f "$1" &&
   2786      $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
   2787}
   2788
   2789# func_ltwrapper_executable_p file
   2790# True iff FILE is a libtool wrapper executable
   2791# This function is only a basic sanity check; it will hardly flush out
   2792# determined imposters.
   2793func_ltwrapper_executable_p ()
   2794{
   2795    func_ltwrapper_exec_suffix=
   2796    case $1 in
   2797    *.exe) ;;
   2798    *) func_ltwrapper_exec_suffix=.exe ;;
   2799    esac
   2800    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
   2801}
   2802
   2803# func_ltwrapper_scriptname file
   2804# Assumes file is an ltwrapper_executable
   2805# uses $file to determine the appropriate filename for a
   2806# temporary ltwrapper_script.
   2807func_ltwrapper_scriptname ()
   2808{
   2809    func_dirname_and_basename "$1" "" "."
   2810    func_stripname '' '.exe' "$func_basename_result"
   2811    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
   2812}
   2813
   2814# func_ltwrapper_p file
   2815# True iff FILE is a libtool wrapper script or wrapper executable
   2816# This function is only a basic sanity check; it will hardly flush out
   2817# determined imposters.
   2818func_ltwrapper_p ()
   2819{
   2820    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
   2821}
   2822
   2823
   2824# func_execute_cmds commands fail_cmd
   2825# Execute tilde-delimited COMMANDS.
   2826# If FAIL_CMD is given, eval that upon failure.
   2827# FAIL_CMD may read-access the current command in variable CMD!
   2828func_execute_cmds ()
   2829{
   2830    $debug_cmd
   2831
   2832    save_ifs=$IFS; IFS='~'
   2833    for cmd in $1; do
   2834      IFS=$sp$nl
   2835      eval cmd=\"$cmd\"
   2836      IFS=$save_ifs
   2837      func_show_eval "$cmd" "${2-:}"
   2838    done
   2839    IFS=$save_ifs
   2840}
   2841
   2842
   2843# func_source file
   2844# Source FILE, adding directory component if necessary.
   2845# Note that it is not necessary on cygwin/mingw to append a dot to
   2846# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
   2847# behavior happens only for exec(3), not for open(2)!  Also, sourcing
   2848# 'FILE.' does not work on cygwin managed mounts.
   2849func_source ()
   2850{
   2851    $debug_cmd
   2852
   2853    case $1 in
   2854    */* | *\\*)	. "$1" ;;
   2855    *)		. "./$1" ;;
   2856    esac
   2857}
   2858
   2859
   2860# func_resolve_sysroot PATH
   2861# Replace a leading = in PATH with a sysroot.  Store the result into
   2862# func_resolve_sysroot_result
   2863func_resolve_sysroot ()
   2864{
   2865  func_resolve_sysroot_result=$1
   2866  case $func_resolve_sysroot_result in
   2867  =*)
   2868    func_stripname '=' '' "$func_resolve_sysroot_result"
   2869    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
   2870    ;;
   2871  esac
   2872}
   2873
   2874# func_replace_sysroot PATH
   2875# If PATH begins with the sysroot, replace it with = and
   2876# store the result into func_replace_sysroot_result.
   2877func_replace_sysroot ()
   2878{
   2879  case $lt_sysroot:$1 in
   2880  ?*:"$lt_sysroot"*)
   2881    func_stripname "$lt_sysroot" '' "$1"
   2882    func_replace_sysroot_result='='$func_stripname_result
   2883    ;;
   2884  *)
   2885    # Including no sysroot.
   2886    func_replace_sysroot_result=$1
   2887    ;;
   2888  esac
   2889}
   2890
   2891# func_infer_tag arg
   2892# Infer tagged configuration to use if any are available and
   2893# if one wasn't chosen via the "--tag" command line option.
   2894# Only attempt this if the compiler in the base compile
   2895# command doesn't match the default compiler.
   2896# arg is usually of the form 'gcc ...'
   2897func_infer_tag ()
   2898{
   2899    $debug_cmd
   2900
   2901    if test -n "$available_tags" && test -z "$tagname"; then
   2902      CC_quoted=
   2903      for arg in $CC; do
   2904	func_append_quoted CC_quoted "$arg"
   2905      done
   2906      CC_expanded=`func_echo_all $CC`
   2907      CC_quoted_expanded=`func_echo_all $CC_quoted`
   2908      case $@ in
   2909      # Blanks in the command may have been stripped by the calling shell,
   2910      # but not from the CC environment variable when configure was run.
   2911      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
   2912      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
   2913      # Blanks at the start of $base_compile will cause this to fail
   2914      # if we don't check for them as well.
   2915      *)
   2916	for z in $available_tags; do
   2917	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
   2918	    # Evaluate the configuration.
   2919	    eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
   2920	    CC_quoted=
   2921	    for arg in $CC; do
   2922	      # Double-quote args containing other shell metacharacters.
   2923	      func_append_quoted CC_quoted "$arg"
   2924	    done
   2925	    CC_expanded=`func_echo_all $CC`
   2926	    CC_quoted_expanded=`func_echo_all $CC_quoted`
   2927	    case "$@ " in
   2928	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
   2929	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
   2930	      # The compiler in the base compile command matches
   2931	      # the one in the tagged configuration.
   2932	      # Assume this is the tagged configuration we want.
   2933	      tagname=$z
   2934	      break
   2935	      ;;
   2936	    esac
   2937	  fi
   2938	done
   2939	# If $tagname still isn't set, then no tagged configuration
   2940	# was found and let the user know that the "--tag" command
   2941	# line option must be used.
   2942	if test -z "$tagname"; then
   2943	  func_echo "unable to infer tagged configuration"
   2944	  func_fatal_error "specify a tag with '--tag'"
   2945#	else
   2946#	  func_verbose "using $tagname tagged configuration"
   2947	fi
   2948	;;
   2949      esac
   2950    fi
   2951}
   2952
   2953
   2954
   2955# func_write_libtool_object output_name pic_name nonpic_name
   2956# Create a libtool object file (analogous to a ".la" file),
   2957# but don't create it if we're doing a dry run.
   2958func_write_libtool_object ()
   2959{
   2960    write_libobj=$1
   2961    if test yes = "$build_libtool_libs"; then
   2962      write_lobj=\'$2\'
   2963    else
   2964      write_lobj=none
   2965    fi
   2966
   2967    if test yes = "$build_old_libs"; then
   2968      write_oldobj=\'$3\'
   2969    else
   2970      write_oldobj=none
   2971    fi
   2972
   2973    $opt_dry_run || {
   2974      cat >${write_libobj}T <<EOF
   2975# $write_libobj - a libtool object file
   2976# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
   2977#
   2978# Please DO NOT delete this file!
   2979# It is necessary for linking the library.
   2980
   2981# Name of the PIC object.
   2982pic_object=$write_lobj
   2983
   2984# Name of the non-PIC object
   2985non_pic_object=$write_oldobj
   2986
   2987EOF
   2988      $MV "${write_libobj}T" "$write_libobj"
   2989    }
   2990}
   2991
   2992
   2993##################################################
   2994# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
   2995##################################################
   2996
   2997# func_convert_core_file_wine_to_w32 ARG
   2998# Helper function used by file name conversion functions when $build is *nix,
   2999# and $host is mingw, cygwin, or some other w32 environment. Relies on a
   3000# correctly configured wine environment available, with the winepath program
   3001# in $build's $PATH.
   3002#
   3003# ARG is the $build file name to be converted to w32 format.
   3004# Result is available in $func_convert_core_file_wine_to_w32_result, and will
   3005# be empty on error (or when ARG is empty)
   3006func_convert_core_file_wine_to_w32 ()
   3007{
   3008  $debug_cmd
   3009
   3010  func_convert_core_file_wine_to_w32_result=$1
   3011  if test -n "$1"; then
   3012    # Unfortunately, winepath does not exit with a non-zero error code, so we
   3013    # are forced to check the contents of stdout. On the other hand, if the
   3014    # command is not found, the shell will set an exit code of 127 and print
   3015    # *an error message* to stdout. So we must check for both error code of
   3016    # zero AND non-empty stdout, which explains the odd construction:
   3017    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
   3018    if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
   3019      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
   3020        $SED -e "$sed_naive_backslashify"`
   3021    else
   3022      func_convert_core_file_wine_to_w32_result=
   3023    fi
   3024  fi
   3025}
   3026# end: func_convert_core_file_wine_to_w32
   3027
   3028
   3029# func_convert_core_path_wine_to_w32 ARG
   3030# Helper function used by path conversion functions when $build is *nix, and
   3031# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
   3032# configured wine environment available, with the winepath program in $build's
   3033# $PATH. Assumes ARG has no leading or trailing path separator characters.
   3034#
   3035# ARG is path to be converted from $build format to win32.
   3036# Result is available in $func_convert_core_path_wine_to_w32_result.
   3037# Unconvertible file (directory) names in ARG are skipped; if no directory names
   3038# are convertible, then the result may be empty.
   3039func_convert_core_path_wine_to_w32 ()
   3040{
   3041  $debug_cmd
   3042
   3043  # unfortunately, winepath doesn't convert paths, only file names
   3044  func_convert_core_path_wine_to_w32_result=
   3045  if test -n "$1"; then
   3046    oldIFS=$IFS
   3047    IFS=:
   3048    for func_convert_core_path_wine_to_w32_f in $1; do
   3049      IFS=$oldIFS
   3050      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
   3051      if test -n "$func_convert_core_file_wine_to_w32_result"; then
   3052        if test -z "$func_convert_core_path_wine_to_w32_result"; then
   3053          func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
   3054        else
   3055          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
   3056        fi
   3057      fi
   3058    done
   3059    IFS=$oldIFS
   3060  fi
   3061}
   3062# end: func_convert_core_path_wine_to_w32
   3063
   3064
   3065# func_cygpath ARGS...
   3066# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
   3067# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
   3068# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
   3069# (2), returns the Cygwin file name or path in func_cygpath_result (input
   3070# file name or path is assumed to be in w32 format, as previously converted
   3071# from $build's *nix or MSYS format). In case (3), returns the w32 file name
   3072# or path in func_cygpath_result (input file name or path is assumed to be in
   3073# Cygwin format). Returns an empty string on error.
   3074#
   3075# ARGS are passed to cygpath, with the last one being the file name or path to
   3076# be converted.
   3077#
   3078# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
   3079# environment variable; do not put it in $PATH.
   3080func_cygpath ()
   3081{
   3082  $debug_cmd
   3083
   3084  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
   3085    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
   3086    if test "$?" -ne 0; then
   3087      # on failure, ensure result is empty
   3088      func_cygpath_result=
   3089    fi
   3090  else
   3091    func_cygpath_result=
   3092    func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
   3093  fi
   3094}
   3095#end: func_cygpath
   3096
   3097
   3098# func_convert_core_msys_to_w32 ARG
   3099# Convert file name or path ARG from MSYS format to w32 format.  Return
   3100# result in func_convert_core_msys_to_w32_result.
   3101func_convert_core_msys_to_w32 ()
   3102{
   3103  $debug_cmd
   3104
   3105  # awkward: cmd appends spaces to result
   3106  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
   3107    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
   3108}
   3109#end: func_convert_core_msys_to_w32
   3110
   3111
   3112# func_convert_file_check ARG1 ARG2
   3113# Verify that ARG1 (a file name in $build format) was converted to $host
   3114# format in ARG2. Otherwise, emit an error message, but continue (resetting
   3115# func_to_host_file_result to ARG1).
   3116func_convert_file_check ()
   3117{
   3118  $debug_cmd
   3119
   3120  if test -z "$2" && test -n "$1"; then
   3121    func_error "Could not determine host file name corresponding to"
   3122    func_error "  '$1'"
   3123    func_error "Continuing, but uninstalled executables may not work."
   3124    # Fallback:
   3125    func_to_host_file_result=$1
   3126  fi
   3127}
   3128# end func_convert_file_check
   3129
   3130
   3131# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
   3132# Verify that FROM_PATH (a path in $build format) was converted to $host
   3133# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
   3134# func_to_host_file_result to a simplistic fallback value (see below).
   3135func_convert_path_check ()
   3136{
   3137  $debug_cmd
   3138
   3139  if test -z "$4" && test -n "$3"; then
   3140    func_error "Could not determine the host path corresponding to"
   3141    func_error "  '$3'"
   3142    func_error "Continuing, but uninstalled executables may not work."
   3143    # Fallback.  This is a deliberately simplistic "conversion" and
   3144    # should not be "improved".  See libtool.info.
   3145    if test "x$1" != "x$2"; then
   3146      lt_replace_pathsep_chars="s|$1|$2|g"
   3147      func_to_host_path_result=`echo "$3" |
   3148        $SED -e "$lt_replace_pathsep_chars"`
   3149    else
   3150      func_to_host_path_result=$3
   3151    fi
   3152  fi
   3153}
   3154# end func_convert_path_check
   3155
   3156
   3157# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
   3158# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
   3159# and appending REPL if ORIG matches BACKPAT.
   3160func_convert_path_front_back_pathsep ()
   3161{
   3162  $debug_cmd
   3163
   3164  case $4 in
   3165  $1 ) func_to_host_path_result=$3$func_to_host_path_result
   3166    ;;
   3167  esac
   3168  case $4 in
   3169  $2 ) func_append func_to_host_path_result "$3"
   3170    ;;
   3171  esac
   3172}
   3173# end func_convert_path_front_back_pathsep
   3174
   3175
   3176##################################################
   3177# $build to $host FILE NAME CONVERSION FUNCTIONS #
   3178##################################################
   3179# invoked via '$to_host_file_cmd ARG'
   3180#
   3181# In each case, ARG is the path to be converted from $build to $host format.
   3182# Result will be available in $func_to_host_file_result.
   3183
   3184
   3185# func_to_host_file ARG
   3186# Converts the file name ARG from $build format to $host format. Return result
   3187# in func_to_host_file_result.
   3188func_to_host_file ()
   3189{
   3190  $debug_cmd
   3191
   3192  $to_host_file_cmd "$1"
   3193}
   3194# end func_to_host_file
   3195
   3196
   3197# func_to_tool_file ARG LAZY
   3198# converts the file name ARG from $build format to toolchain format. Return
   3199# result in func_to_tool_file_result.  If the conversion in use is listed
   3200# in (the comma separated) LAZY, no conversion takes place.
   3201func_to_tool_file ()
   3202{
   3203  $debug_cmd
   3204
   3205  case ,$2, in
   3206    *,"$to_tool_file_cmd",*)
   3207      func_to_tool_file_result=$1
   3208      ;;
   3209    *)
   3210      $to_tool_file_cmd "$1"
   3211      func_to_tool_file_result=$func_to_host_file_result
   3212      ;;
   3213  esac
   3214}
   3215# end func_to_tool_file
   3216
   3217
   3218# func_convert_file_noop ARG
   3219# Copy ARG to func_to_host_file_result.
   3220func_convert_file_noop ()
   3221{
   3222  func_to_host_file_result=$1
   3223}
   3224# end func_convert_file_noop
   3225
   3226
   3227# func_convert_file_msys_to_w32 ARG
   3228# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
   3229# conversion to w32 is not available inside the cwrapper.  Returns result in
   3230# func_to_host_file_result.
   3231func_convert_file_msys_to_w32 ()
   3232{
   3233  $debug_cmd
   3234
   3235  func_to_host_file_result=$1
   3236  if test -n "$1"; then
   3237    func_convert_core_msys_to_w32 "$1"
   3238    func_to_host_file_result=$func_convert_core_msys_to_w32_result
   3239  fi
   3240  func_convert_file_check "$1" "$func_to_host_file_result"
   3241}
   3242# end func_convert_file_msys_to_w32
   3243
   3244
   3245# func_convert_file_cygwin_to_w32 ARG
   3246# Convert file name ARG from Cygwin to w32 format.  Returns result in
   3247# func_to_host_file_result.
   3248func_convert_file_cygwin_to_w32 ()
   3249{
   3250  $debug_cmd
   3251
   3252  func_to_host_file_result=$1
   3253  if test -n "$1"; then
   3254    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
   3255    # LT_CYGPATH in this case.
   3256    func_to_host_file_result=`cygpath -m "$1"`
   3257  fi
   3258  func_convert_file_check "$1" "$func_to_host_file_result"
   3259}
   3260# end func_convert_file_cygwin_to_w32
   3261
   3262
   3263# func_convert_file_nix_to_w32 ARG
   3264# Convert file name ARG from *nix to w32 format.  Requires a wine environment
   3265# and a working winepath. Returns result in func_to_host_file_result.
   3266func_convert_file_nix_to_w32 ()
   3267{
   3268  $debug_cmd
   3269
   3270  func_to_host_file_result=$1
   3271  if test -n "$1"; then
   3272    func_convert_core_file_wine_to_w32 "$1"
   3273    func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
   3274  fi
   3275  func_convert_file_check "$1" "$func_to_host_file_result"
   3276}
   3277# end func_convert_file_nix_to_w32
   3278
   3279
   3280# func_convert_file_msys_to_cygwin ARG
   3281# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
   3282# Returns result in func_to_host_file_result.
   3283func_convert_file_msys_to_cygwin ()
   3284{
   3285  $debug_cmd
   3286
   3287  func_to_host_file_result=$1
   3288  if test -n "$1"; then
   3289    func_convert_core_msys_to_w32 "$1"
   3290    func_cygpath -u "$func_convert_core_msys_to_w32_result"
   3291    func_to_host_file_result=$func_cygpath_result
   3292  fi
   3293  func_convert_file_check "$1" "$func_to_host_file_result"
   3294}
   3295# end func_convert_file_msys_to_cygwin
   3296
   3297
   3298# func_convert_file_nix_to_cygwin ARG
   3299# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
   3300# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
   3301# in func_to_host_file_result.
   3302func_convert_file_nix_to_cygwin ()
   3303{
   3304  $debug_cmd
   3305
   3306  func_to_host_file_result=$1
   3307  if test -n "$1"; then
   3308    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
   3309    func_convert_core_file_wine_to_w32 "$1"
   3310    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
   3311    func_to_host_file_result=$func_cygpath_result
   3312  fi
   3313  func_convert_file_check "$1" "$func_to_host_file_result"
   3314}
   3315# end func_convert_file_nix_to_cygwin
   3316
   3317
   3318#############################################
   3319# $build to $host PATH CONVERSION FUNCTIONS #
   3320#############################################
   3321# invoked via '$to_host_path_cmd ARG'
   3322#
   3323# In each case, ARG is the path to be converted from $build to $host format.
   3324# The result will be available in $func_to_host_path_result.
   3325#
   3326# Path separators are also converted from $build format to $host format.  If
   3327# ARG begins or ends with a path separator character, it is preserved (but
   3328# converted to $host format) on output.
   3329#
   3330# All path conversion functions are named using the following convention:
   3331#   file name conversion function    : func_convert_file_X_to_Y ()
   3332#   path conversion function         : func_convert_path_X_to_Y ()
   3333# where, for any given $build/$host combination the 'X_to_Y' value is the
   3334# same.  If conversion functions are added for new $build/$host combinations,
   3335# the two new functions must follow this pattern, or func_init_to_host_path_cmd
   3336# will break.
   3337
   3338
   3339# func_init_to_host_path_cmd
   3340# Ensures that function "pointer" variable $to_host_path_cmd is set to the
   3341# appropriate value, based on the value of $to_host_file_cmd.
   3342to_host_path_cmd=
   3343func_init_to_host_path_cmd ()
   3344{
   3345  $debug_cmd
   3346
   3347  if test -z "$to_host_path_cmd"; then
   3348    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
   3349    to_host_path_cmd=func_convert_path_$func_stripname_result
   3350  fi
   3351}
   3352
   3353
   3354# func_to_host_path ARG
   3355# Converts the path ARG from $build format to $host format. Return result
   3356# in func_to_host_path_result.
   3357func_to_host_path ()
   3358{
   3359  $debug_cmd
   3360
   3361  func_init_to_host_path_cmd
   3362  $to_host_path_cmd "$1"
   3363}
   3364# end func_to_host_path
   3365
   3366
   3367# func_convert_path_noop ARG
   3368# Copy ARG to func_to_host_path_result.
   3369func_convert_path_noop ()
   3370{
   3371  func_to_host_path_result=$1
   3372}
   3373# end func_convert_path_noop
   3374
   3375
   3376# func_convert_path_msys_to_w32 ARG
   3377# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
   3378# conversion to w32 is not available inside the cwrapper.  Returns result in
   3379# func_to_host_path_result.
   3380func_convert_path_msys_to_w32 ()
   3381{
   3382  $debug_cmd
   3383
   3384  func_to_host_path_result=$1
   3385  if test -n "$1"; then
   3386    # Remove leading and trailing path separator characters from ARG.  MSYS
   3387    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
   3388    # and winepath ignores them completely.
   3389    func_stripname : : "$1"
   3390    func_to_host_path_tmp1=$func_stripname_result
   3391    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
   3392    func_to_host_path_result=$func_convert_core_msys_to_w32_result
   3393    func_convert_path_check : ";" \
   3394      "$func_to_host_path_tmp1" "$func_to_host_path_result"
   3395    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
   3396  fi
   3397}
   3398# end func_convert_path_msys_to_w32
   3399
   3400
   3401# func_convert_path_cygwin_to_w32 ARG
   3402# Convert path ARG from Cygwin to w32 format.  Returns result in
   3403# func_to_host_file_result.
   3404func_convert_path_cygwin_to_w32 ()
   3405{
   3406  $debug_cmd
   3407
   3408  func_to_host_path_result=$1
   3409  if test -n "$1"; then
   3410    # See func_convert_path_msys_to_w32:
   3411    func_stripname : : "$1"
   3412    func_to_host_path_tmp1=$func_stripname_result
   3413    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
   3414    func_convert_path_check : ";" \
   3415      "$func_to_host_path_tmp1" "$func_to_host_path_result"
   3416    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
   3417  fi
   3418}
   3419# end func_convert_path_cygwin_to_w32
   3420
   3421
   3422# func_convert_path_nix_to_w32 ARG
   3423# Convert path ARG from *nix to w32 format.  Requires a wine environment and
   3424# a working winepath.  Returns result in func_to_host_file_result.
   3425func_convert_path_nix_to_w32 ()
   3426{
   3427  $debug_cmd
   3428
   3429  func_to_host_path_result=$1
   3430  if test -n "$1"; then
   3431    # See func_convert_path_msys_to_w32:
   3432    func_stripname : : "$1"
   3433    func_to_host_path_tmp1=$func_stripname_result
   3434    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
   3435    func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
   3436    func_convert_path_check : ";" \
   3437      "$func_to_host_path_tmp1" "$func_to_host_path_result"
   3438    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
   3439  fi
   3440}
   3441# end func_convert_path_nix_to_w32
   3442
   3443
   3444# func_convert_path_msys_to_cygwin ARG
   3445# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
   3446# Returns result in func_to_host_file_result.
   3447func_convert_path_msys_to_cygwin ()
   3448{
   3449  $debug_cmd
   3450
   3451  func_to_host_path_result=$1
   3452  if test -n "$1"; then
   3453    # See func_convert_path_msys_to_w32:
   3454    func_stripname : : "$1"
   3455    func_to_host_path_tmp1=$func_stripname_result
   3456    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
   3457    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
   3458    func_to_host_path_result=$func_cygpath_result
   3459    func_convert_path_check : : \
   3460      "$func_to_host_path_tmp1" "$func_to_host_path_result"
   3461    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
   3462  fi
   3463}
   3464# end func_convert_path_msys_to_cygwin
   3465
   3466
   3467# func_convert_path_nix_to_cygwin ARG
   3468# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
   3469# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
   3470# func_to_host_file_result.
   3471func_convert_path_nix_to_cygwin ()
   3472{
   3473  $debug_cmd
   3474
   3475  func_to_host_path_result=$1
   3476  if test -n "$1"; then
   3477    # Remove leading and trailing path separator characters from
   3478    # ARG. msys behavior is inconsistent here, cygpath turns them
   3479    # into '.;' and ';.', and winepath ignores them completely.
   3480    func_stripname : : "$1"
   3481    func_to_host_path_tmp1=$func_stripname_result
   3482    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
   3483    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
   3484    func_to_host_path_result=$func_cygpath_result
   3485    func_convert_path_check : : \
   3486      "$func_to_host_path_tmp1" "$func_to_host_path_result"
   3487    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
   3488  fi
   3489}
   3490# end func_convert_path_nix_to_cygwin
   3491
   3492
   3493# func_dll_def_p FILE
   3494# True iff FILE is a Windows DLL '.def' file.
   3495# Keep in sync with _LT_DLL_DEF_P in libtool.m4
   3496func_dll_def_p ()
   3497{
   3498  $debug_cmd
   3499
   3500  func_dll_def_p_tmp=`$SED -n \
   3501    -e 's/^[	 ]*//' \
   3502    -e '/^\(;.*\)*$/d' \
   3503    -e 's/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p' \
   3504    -e q \
   3505    "$1"`
   3506  test DEF = "$func_dll_def_p_tmp"
   3507}
   3508
   3509
   3510# func_mode_compile arg...
   3511func_mode_compile ()
   3512{
   3513    $debug_cmd
   3514
   3515    # Get the compilation command and the source file.
   3516    base_compile=
   3517    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
   3518    suppress_opt=yes
   3519    suppress_output=
   3520    arg_mode=normal
   3521    libobj=
   3522    later=
   3523    pie_flag=
   3524
   3525    for arg
   3526    do
   3527      case $arg_mode in
   3528      arg  )
   3529	# do not "continue".  Instead, add this to base_compile
   3530	lastarg=$arg
   3531	arg_mode=normal
   3532	;;
   3533
   3534      target )
   3535	libobj=$arg
   3536	arg_mode=normal
   3537	continue
   3538	;;
   3539
   3540      normal )
   3541	# Accept any command-line options.
   3542	case $arg in
   3543	-o)
   3544	  test -n "$libobj" && \
   3545	    func_fatal_error "you cannot specify '-o' more than once"
   3546	  arg_mode=target
   3547	  continue
   3548	  ;;
   3549
   3550	-pie | -fpie | -fPIE)
   3551          func_append pie_flag " $arg"
   3552	  continue
   3553	  ;;
   3554
   3555	-shared | -static | -prefer-pic | -prefer-non-pic)
   3556	  func_append later " $arg"
   3557	  continue
   3558	  ;;
   3559
   3560	-no-suppress)
   3561	  suppress_opt=no
   3562	  continue
   3563	  ;;
   3564
   3565	-Xcompiler)
   3566	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
   3567	  continue      #  The current "srcfile" will either be retained or
   3568	  ;;            #  replaced later.  I would guess that would be a bug.
   3569
   3570	-Wc,*)
   3571	  func_stripname '-Wc,' '' "$arg"
   3572	  args=$func_stripname_result
   3573	  lastarg=
   3574	  save_ifs=$IFS; IFS=,
   3575	  for arg in $args; do
   3576	    IFS=$save_ifs
   3577	    func_append_quoted lastarg "$arg"
   3578	  done
   3579	  IFS=$save_ifs
   3580	  func_stripname ' ' '' "$lastarg"
   3581	  lastarg=$func_stripname_result
   3582
   3583	  # Add the arguments to base_compile.
   3584	  func_append base_compile " $lastarg"
   3585	  continue
   3586	  ;;
   3587
   3588	*)
   3589	  # Accept the current argument as the source file.
   3590	  # The previous "srcfile" becomes the current argument.
   3591	  #
   3592	  lastarg=$srcfile
   3593	  srcfile=$arg
   3594	  ;;
   3595	esac  #  case $arg
   3596	;;
   3597      esac    #  case $arg_mode
   3598
   3599      # Aesthetically quote the previous argument.
   3600      func_append_quoted base_compile "$lastarg"
   3601    done # for arg
   3602
   3603    case $arg_mode in
   3604    arg)
   3605      func_fatal_error "you must specify an argument for -Xcompile"
   3606      ;;
   3607    target)
   3608      func_fatal_error "you must specify a target with '-o'"
   3609      ;;
   3610    *)
   3611      # Get the name of the library object.
   3612      test -z "$libobj" && {
   3613	func_basename "$srcfile"
   3614	libobj=$func_basename_result
   3615      }
   3616      ;;
   3617    esac
   3618
   3619    # Recognize several different file suffixes.
   3620    # If the user specifies -o file.o, it is replaced with file.lo
   3621    case $libobj in
   3622    *.[cCFSifmso] | \
   3623    *.ada | *.adb | *.ads | *.asm | \
   3624    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
   3625    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
   3626      func_xform "$libobj"
   3627      libobj=$func_xform_result
   3628      ;;
   3629    esac
   3630
   3631    case $libobj in
   3632    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
   3633    *)
   3634      func_fatal_error "cannot determine name of library object from '$libobj'"
   3635      ;;
   3636    esac
   3637
   3638    func_infer_tag $base_compile
   3639
   3640    for arg in $later; do
   3641      case $arg in
   3642      -shared)
   3643	test yes = "$build_libtool_libs" \
   3644	  || func_fatal_configuration "cannot build a shared library"
   3645	build_old_libs=no
   3646	continue
   3647	;;
   3648
   3649      -static)
   3650	build_libtool_libs=no
   3651	build_old_libs=yes
   3652	continue
   3653	;;
   3654
   3655      -prefer-pic)
   3656	pic_mode=yes
   3657	continue
   3658	;;
   3659
   3660      -prefer-non-pic)
   3661	pic_mode=no
   3662	continue
   3663	;;
   3664      esac
   3665    done
   3666
   3667    func_quote_arg pretty "$libobj"
   3668    test "X$libobj" != "X$func_quote_arg_result" \
   3669      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
   3670      && func_warning "libobj name '$libobj' may not contain shell special characters."
   3671    func_dirname_and_basename "$obj" "/" ""
   3672    objname=$func_basename_result
   3673    xdir=$func_dirname_result
   3674    lobj=$xdir$objdir/$objname
   3675
   3676    test -z "$base_compile" && \
   3677      func_fatal_help "you must specify a compilation command"
   3678
   3679    # Delete any leftover library objects.
   3680    if test yes = "$build_old_libs"; then
   3681      removelist="$obj $lobj $libobj ${libobj}T"
   3682    else
   3683      removelist="$lobj $libobj ${libobj}T"
   3684    fi
   3685
   3686    # On Cygwin there's no "real" PIC flag so we must build both object types
   3687    case $host_os in
   3688    cygwin* | mingw* | pw32* | os2* | cegcc*)
   3689      pic_mode=default
   3690      ;;
   3691    esac
   3692    if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
   3693      # non-PIC code in shared libraries is not supported
   3694      pic_mode=default
   3695    fi
   3696
   3697    # Calculate the filename of the output object if compiler does
   3698    # not support -o with -c
   3699    if test no = "$compiler_c_o"; then
   3700      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
   3701      lockfile=$output_obj.lock
   3702    else
   3703      output_obj=
   3704      need_locks=no
   3705      lockfile=
   3706    fi
   3707
   3708    # Lock this critical section if it is needed
   3709    # We use this script file to make the link, it avoids creating a new file
   3710    if test yes = "$need_locks"; then
   3711      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
   3712	func_echo "Waiting for $lockfile to be removed"
   3713	sleep 2
   3714      done
   3715    elif test warn = "$need_locks"; then
   3716      if test -f "$lockfile"; then
   3717	$ECHO "\
   3718*** ERROR, $lockfile exists and contains:
   3719`cat $lockfile 2>/dev/null`
   3720
   3721This indicates that another process is trying to use the same
   3722temporary object file, and libtool could not work around it because
   3723your compiler does not support '-c' and '-o' together.  If you
   3724repeat this compilation, it may succeed, by chance, but you had better
   3725avoid parallel builds (make -j) in this platform, or get a better
   3726compiler."
   3727
   3728	$opt_dry_run || $RM $removelist
   3729	exit $EXIT_FAILURE
   3730      fi
   3731      func_append removelist " $output_obj"
   3732      $ECHO "$srcfile" > "$lockfile"
   3733    fi
   3734
   3735    $opt_dry_run || $RM $removelist
   3736    func_append removelist " $lockfile"
   3737    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
   3738
   3739    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
   3740    srcfile=$func_to_tool_file_result
   3741    func_quote_arg pretty "$srcfile"
   3742    qsrcfile=$func_quote_arg_result
   3743
   3744    # Only build a PIC object if we are building libtool libraries.
   3745    if test yes = "$build_libtool_libs"; then
   3746      # Without this assignment, base_compile gets emptied.
   3747      fbsd_hideous_sh_bug=$base_compile
   3748
   3749      if test no != "$pic_mode"; then
   3750	command="$base_compile $qsrcfile $pic_flag"
   3751      else
   3752	# Don't build PIC code
   3753	command="$base_compile $qsrcfile"
   3754      fi
   3755
   3756      func_mkdir_p "$xdir$objdir"
   3757
   3758      if test -z "$output_obj"; then
   3759	# Place PIC objects in $objdir
   3760	func_append command " -o $lobj"
   3761      fi
   3762
   3763      func_show_eval_locale "$command"	\
   3764          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
   3765
   3766      if test warn = "$need_locks" &&
   3767	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
   3768	$ECHO "\
   3769*** ERROR, $lockfile contains:
   3770`cat $lockfile 2>/dev/null`
   3771
   3772but it should contain:
   3773$srcfile
   3774
   3775This indicates that another process is trying to use the same
   3776temporary object file, and libtool could not work around it because
   3777your compiler does not support '-c' and '-o' together.  If you
   3778repeat this compilation, it may succeed, by chance, but you had better
   3779avoid parallel builds (make -j) in this platform, or get a better
   3780compiler."
   3781
   3782	$opt_dry_run || $RM $removelist
   3783	exit $EXIT_FAILURE
   3784      fi
   3785
   3786      # Just move the object if needed, then go on to compile the next one
   3787      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
   3788	func_show_eval '$MV "$output_obj" "$lobj"' \
   3789	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
   3790      fi
   3791
   3792      # Allow error messages only from the first compilation.
   3793      if test yes = "$suppress_opt"; then
   3794	suppress_output=' >/dev/null 2>&1'
   3795      fi
   3796    fi
   3797
   3798    # Only build a position-dependent object if we build old libraries.
   3799    if test yes = "$build_old_libs"; then
   3800      if test yes != "$pic_mode"; then
   3801	# Don't build PIC code
   3802	command="$base_compile $qsrcfile$pie_flag"
   3803      else
   3804	command="$base_compile $qsrcfile $pic_flag"
   3805      fi
   3806      if test yes = "$compiler_c_o"; then
   3807	func_append command " -o $obj"
   3808      fi
   3809
   3810      # Suppress compiler output if we already did a PIC compilation.
   3811      func_append command "$suppress_output"
   3812      func_show_eval_locale "$command" \
   3813        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
   3814
   3815      if test warn = "$need_locks" &&
   3816	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
   3817	$ECHO "\
   3818*** ERROR, $lockfile contains:
   3819`cat $lockfile 2>/dev/null`
   3820
   3821but it should contain:
   3822$srcfile
   3823
   3824This indicates that another process is trying to use the same
   3825temporary object file, and libtool could not work around it because
   3826your compiler does not support '-c' and '-o' together.  If you
   3827repeat this compilation, it may succeed, by chance, but you had better
   3828avoid parallel builds (make -j) in this platform, or get a better
   3829compiler."
   3830
   3831	$opt_dry_run || $RM $removelist
   3832	exit $EXIT_FAILURE
   3833      fi
   3834
   3835      # Just move the object if needed
   3836      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
   3837	func_show_eval '$MV "$output_obj" "$obj"' \
   3838	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
   3839      fi
   3840    fi
   3841
   3842    $opt_dry_run || {
   3843      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
   3844
   3845      # Unlock the critical section if it was locked
   3846      if test no != "$need_locks"; then
   3847	removelist=$lockfile
   3848        $RM "$lockfile"
   3849      fi
   3850    }
   3851
   3852    exit $EXIT_SUCCESS
   3853}
   3854
   3855$opt_help || {
   3856  test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
   3857}
   3858
   3859func_mode_help ()
   3860{
   3861    # We need to display help for each of the modes.
   3862    case $opt_mode in
   3863      "")
   3864        # Generic help is extracted from the usage comments
   3865        # at the start of this file.
   3866        func_help
   3867        ;;
   3868
   3869      clean)
   3870        $ECHO \
   3871"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
   3872
   3873Remove files from the build directory.
   3874
   3875RM is the name of the program to use to delete files associated with each FILE
   3876(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
   3877to RM.
   3878
   3879If FILE is a libtool library, object or program, all the files associated
   3880with it are deleted. Otherwise, only FILE itself is deleted using RM."
   3881        ;;
   3882
   3883      compile)
   3884      $ECHO \
   3885"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
   3886
   3887Compile a source file into a libtool library object.
   3888
   3889This mode accepts the following additional options:
   3890
   3891  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
   3892  -no-suppress      do not suppress compiler output for multiple passes
   3893  -prefer-pic       try to build PIC objects only
   3894  -prefer-non-pic   try to build non-PIC objects only
   3895  -shared           do not build a '.o' file suitable for static linking
   3896  -static           only build a '.o' file suitable for static linking
   3897  -Wc,FLAG
   3898  -Xcompiler FLAG   pass FLAG directly to the compiler
   3899
   3900COMPILE-COMMAND is a command to be used in creating a 'standard' object file
   3901from the given SOURCEFILE.
   3902
   3903The output file name is determined by removing the directory component from
   3904SOURCEFILE, then substituting the C source code suffix '.c' with the
   3905library object suffix, '.lo'."
   3906        ;;
   3907
   3908      execute)
   3909        $ECHO \
   3910"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
   3911
   3912Automatically set library path, then run a program.
   3913
   3914This mode accepts the following additional options:
   3915
   3916  -dlopen FILE      add the directory containing FILE to the library path
   3917
   3918This mode sets the library path environment variable according to '-dlopen'
   3919flags.
   3920
   3921If any of the ARGS are libtool executable wrappers, then they are translated
   3922into their corresponding uninstalled binary, and any of their required library
   3923directories are added to the library path.
   3924
   3925Then, COMMAND is executed, with ARGS as arguments."
   3926        ;;
   3927
   3928      finish)
   3929        $ECHO \
   3930"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
   3931
   3932Complete the installation of libtool libraries.
   3933
   3934Each LIBDIR is a directory that contains libtool libraries.
   3935
   3936The commands that this mode executes may require superuser privileges.  Use
   3937the '--dry-run' option if you just want to see what would be executed."
   3938        ;;
   3939
   3940      install)
   3941        $ECHO \
   3942"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
   3943
   3944Install executables or libraries.
   3945
   3946INSTALL-COMMAND is the installation command.  The first component should be
   3947either the 'install' or 'cp' program.
   3948
   3949The following components of INSTALL-COMMAND are treated specially:
   3950
   3951  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
   3952
   3953The rest of the components are interpreted as arguments to that command (only
   3954BSD-compatible install options are recognized)."
   3955        ;;
   3956
   3957      link)
   3958        $ECHO \
   3959"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
   3960
   3961Link object files or libraries together to form another library, or to
   3962create an executable program.
   3963
   3964LINK-COMMAND is a command using the C compiler that you would use to create
   3965a program from several object files.
   3966
   3967The following components of LINK-COMMAND are treated specially:
   3968
   3969  -all-static       do not do any dynamic linking at all
   3970  -avoid-version    do not add a version suffix if possible
   3971  -bindir BINDIR    specify path to binaries directory (for systems where
   3972                    libraries must be found in the PATH setting at runtime)
   3973  -dlopen FILE      '-dlpreopen' FILE if it cannot be dlopened at runtime
   3974  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   3975  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   3976  -export-symbols SYMFILE
   3977                    try to export only the symbols listed in SYMFILE
   3978  -export-symbols-regex REGEX
   3979                    try to export only the symbols matching REGEX
   3980  -LLIBDIR          search LIBDIR for required installed libraries
   3981  -lNAME            OUTPUT-FILE requires the installed library libNAME
   3982  -module           build a library that can dlopened
   3983  -no-fast-install  disable the fast-install mode
   3984  -no-install       link a not-installable executable
   3985  -no-undefined     declare that a library does not refer to external symbols
   3986  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
   3987  -objectlist FILE  use a list of object files found in FILE to specify objects
   3988  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)
   3989  -precious-files-regex REGEX
   3990                    don't remove output files matching REGEX
   3991  -release RELEASE  specify package release information
   3992  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
   3993  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
   3994  -shared           only do dynamic linking of libtool libraries
   3995  -shrext SUFFIX    override the standard shared library file extension
   3996  -static           do not do any dynamic linking of uninstalled libtool libraries
   3997  -static-libtool-libs
   3998                    do not do any dynamic linking of libtool libraries
   3999  -version-info CURRENT[:REVISION[:AGE]]
   4000                    specify library version info [each variable defaults to 0]
   4001  -weak LIBNAME     declare that the target provides the LIBNAME interface
   4002  -Wc,FLAG
   4003  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
   4004  -Wa,FLAG
   4005  -Xassembler FLAG  pass linker-specific FLAG directly to the assembler
   4006  -Wl,FLAG
   4007  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
   4008  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
   4009
   4010All other options (arguments beginning with '-') are ignored.
   4011
   4012Every other argument is treated as a filename.  Files ending in '.la' are
   4013treated as uninstalled libtool libraries, other files are standard or library
   4014object files.
   4015
   4016If the OUTPUT-FILE ends in '.la', then a libtool library is created,
   4017only library objects ('.lo' files) may be specified, and '-rpath' is
   4018required, except when creating a convenience library.
   4019
   4020If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
   4021using 'ar' and 'ranlib', or on Windows using 'lib'.
   4022
   4023If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
   4024is created, otherwise an executable program is created."
   4025        ;;
   4026
   4027      uninstall)
   4028        $ECHO \
   4029"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
   4030
   4031Remove libraries from an installation directory.
   4032
   4033RM is the name of the program to use to delete files associated with each FILE
   4034(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
   4035to RM.
   4036
   4037If FILE is a libtool library, all the files associated with it are deleted.
   4038Otherwise, only FILE itself is deleted using RM."
   4039        ;;
   4040
   4041      *)
   4042        func_fatal_help "invalid operation mode '$opt_mode'"
   4043        ;;
   4044    esac
   4045
   4046    echo
   4047    $ECHO "Try '$progname --help' for more information about other modes."
   4048}
   4049
   4050# Now that we've collected a possible --mode arg, show help if necessary
   4051if $opt_help; then
   4052  if test : = "$opt_help"; then
   4053    func_mode_help
   4054  else
   4055    {
   4056      func_help noexit
   4057      for opt_mode in compile link execute install finish uninstall clean; do
   4058	func_mode_help
   4059      done
   4060    } | $SED -n '1p; 2,$s/^Usage:/  or: /p'
   4061    {
   4062      func_help noexit
   4063      for opt_mode in compile link execute install finish uninstall clean; do
   4064	echo
   4065	func_mode_help
   4066      done
   4067    } |
   4068    $SED '1d
   4069      /^When reporting/,/^Report/{
   4070	H
   4071	d
   4072      }
   4073      $x
   4074      /information about other modes/d
   4075      /more detailed .*MODE/d
   4076      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
   4077  fi
   4078  exit $?
   4079fi
   4080
   4081
   4082# func_mode_execute arg...
   4083func_mode_execute ()
   4084{
   4085    $debug_cmd
   4086
   4087    # The first argument is the command name.
   4088    cmd=$nonopt
   4089    test -z "$cmd" && \
   4090      func_fatal_help "you must specify a COMMAND"
   4091
   4092    # Handle -dlopen flags immediately.
   4093    for file in $opt_dlopen; do
   4094      test -f "$file" \
   4095	|| func_fatal_help "'$file' is not a file"
   4096
   4097      dir=
   4098      case $file in
   4099      *.la)
   4100	func_resolve_sysroot "$file"
   4101	file=$func_resolve_sysroot_result
   4102
   4103	# Check to see that this really is a libtool archive.
   4104	func_lalib_unsafe_p "$file" \
   4105	  || func_fatal_help "'$lib' is not a valid libtool archive"
   4106
   4107	# Read the libtool library.
   4108	dlname=
   4109	library_names=
   4110	func_source "$file"
   4111
   4112	# Skip this library if it cannot be dlopened.
   4113	if test -z "$dlname"; then
   4114	  # Warn if it was a shared library.
   4115	  test -n "$library_names" && \
   4116	    func_warning "'$file' was not linked with '-export-dynamic'"
   4117	  continue
   4118	fi
   4119
   4120	func_dirname "$file" "" "."
   4121	dir=$func_dirname_result
   4122
   4123	if test -f "$dir/$objdir/$dlname"; then
   4124	  func_append dir "/$objdir"
   4125	else
   4126	  if test ! -f "$dir/$dlname"; then
   4127	    func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
   4128	  fi
   4129	fi
   4130	;;
   4131
   4132      *.lo)
   4133	# Just add the directory containing the .lo file.
   4134	func_dirname "$file" "" "."
   4135	dir=$func_dirname_result
   4136	;;
   4137
   4138      *)
   4139	func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
   4140	continue
   4141	;;
   4142      esac
   4143
   4144      # Get the absolute pathname.
   4145      absdir=`cd "$dir" && pwd`
   4146      test -n "$absdir" && dir=$absdir
   4147
   4148      # Now add the directory to shlibpath_var.
   4149      if eval "test -z \"\$$shlibpath_var\""; then
   4150	eval "$shlibpath_var=\"\$dir\""
   4151      else
   4152	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
   4153      fi
   4154    done
   4155
   4156    # This variable tells wrapper scripts just to set shlibpath_var
   4157    # rather than running their programs.
   4158    libtool_execute_magic=$magic
   4159
   4160    # Check if any of the arguments is a wrapper script.
   4161    args=
   4162    for file
   4163    do
   4164      case $file in
   4165      -* | *.la | *.lo ) ;;
   4166      *)
   4167	# Do a test to see if this is really a libtool program.
   4168	if func_ltwrapper_script_p "$file"; then
   4169	  func_source "$file"
   4170	  # Transform arg to wrapped name.
   4171	  file=$progdir/$program
   4172	elif func_ltwrapper_executable_p "$file"; then
   4173	  func_ltwrapper_scriptname "$file"
   4174	  func_source "$func_ltwrapper_scriptname_result"
   4175	  # Transform arg to wrapped name.
   4176	  file=$progdir/$program
   4177	fi
   4178	;;
   4179      esac
   4180      # Quote arguments (to preserve shell metacharacters).
   4181      func_append_quoted args "$file"
   4182    done
   4183
   4184    if $opt_dry_run; then
   4185      # Display what would be done.
   4186      if test -n "$shlibpath_var"; then
   4187	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
   4188	echo "export $shlibpath_var"
   4189      fi
   4190      $ECHO "$cmd$args"
   4191      exit $EXIT_SUCCESS
   4192    else
   4193      if test -n "$shlibpath_var"; then
   4194	# Export the shlibpath_var.
   4195	eval "export $shlibpath_var"
   4196      fi
   4197
   4198      # Restore saved environment variables
   4199      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
   4200      do
   4201	eval "if test \"\${save_$lt_var+set}\" = set; then
   4202                $lt_var=\$save_$lt_var; export $lt_var
   4203	      else
   4204		$lt_unset $lt_var
   4205	      fi"
   4206      done
   4207
   4208      # Now prepare to actually exec the command.
   4209      exec_cmd=\$cmd$args
   4210    fi
   4211}
   4212
   4213test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
   4214
   4215
   4216# func_mode_finish arg...
   4217func_mode_finish ()
   4218{
   4219    $debug_cmd
   4220
   4221    libs=
   4222    libdirs=
   4223    admincmds=
   4224
   4225    for opt in "$nonopt" ${1+"$@"}
   4226    do
   4227      if test -d "$opt"; then
   4228	func_append libdirs " $opt"
   4229
   4230      elif test -f "$opt"; then
   4231	if func_lalib_unsafe_p "$opt"; then
   4232	  func_append libs " $opt"
   4233	else
   4234	  func_warning "'$opt' is not a valid libtool archive"
   4235	fi
   4236
   4237      else
   4238	func_fatal_error "invalid argument '$opt'"
   4239      fi
   4240    done
   4241
   4242    if test -n "$libs"; then
   4243      if test -n "$lt_sysroot"; then
   4244        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
   4245        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
   4246      else
   4247        sysroot_cmd=
   4248      fi
   4249
   4250      # Remove sysroot references
   4251      if $opt_dry_run; then
   4252        for lib in $libs; do
   4253          echo "removing references to $lt_sysroot and '=' prefixes from $lib"
   4254        done
   4255      else
   4256        tmpdir=`func_mktempdir`
   4257        for lib in $libs; do
   4258	  $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
   4259	    > $tmpdir/tmp-la
   4260	  mv -f $tmpdir/tmp-la $lib
   4261	done
   4262        ${RM}r "$tmpdir"
   4263      fi
   4264    fi
   4265
   4266    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
   4267      for libdir in $libdirs; do
   4268	if test -n "$finish_cmds"; then
   4269	  # Do each command in the finish commands.
   4270	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
   4271'"$cmd"'"'
   4272	fi
   4273	if test -n "$finish_eval"; then
   4274	  # Do the single finish_eval.
   4275	  eval cmds=\"$finish_eval\"
   4276	  $opt_dry_run || eval "$cmds" || func_append admincmds "
   4277       $cmds"
   4278	fi
   4279      done
   4280    fi
   4281
   4282    # Exit here if they wanted silent mode.
   4283    $opt_quiet && exit $EXIT_SUCCESS
   4284
   4285    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
   4286      echo "----------------------------------------------------------------------"
   4287      echo "Libraries have been installed in:"
   4288      for libdir in $libdirs; do
   4289	$ECHO "   $libdir"
   4290      done
   4291      echo
   4292      echo "If you ever happen to want to link against installed libraries"
   4293      echo "in a given directory, LIBDIR, you must either use libtool, and"
   4294      echo "specify the full pathname of the library, or use the '-LLIBDIR'"
   4295      echo "flag during linking and do at least one of the following:"
   4296      if test -n "$shlibpath_var"; then
   4297	echo "   - add LIBDIR to the '$shlibpath_var' environment variable"
   4298	echo "     during execution"
   4299      fi
   4300      if test -n "$runpath_var"; then
   4301	echo "   - add LIBDIR to the '$runpath_var' environment variable"
   4302	echo "     during linking"
   4303      fi
   4304      if test -n "$hardcode_libdir_flag_spec"; then
   4305	libdir=LIBDIR
   4306	eval flag=\"$hardcode_libdir_flag_spec\"
   4307
   4308	$ECHO "   - use the '$flag' linker flag"
   4309      fi
   4310      if test -n "$admincmds"; then
   4311	$ECHO "   - have your system administrator run these commands:$admincmds"
   4312      fi
   4313      if test -f /etc/ld.so.conf; then
   4314	echo "   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
   4315      fi
   4316      echo
   4317
   4318      echo "See any operating system documentation about shared libraries for"
   4319      case $host in
   4320	solaris2.[6789]|solaris2.1[0-9])
   4321	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
   4322	  echo "pages."
   4323	  ;;
   4324	*)
   4325	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
   4326	  ;;
   4327      esac
   4328      echo "----------------------------------------------------------------------"
   4329    fi
   4330    exit $EXIT_SUCCESS
   4331}
   4332
   4333test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
   4334
   4335
   4336# func_mode_install arg...
   4337func_mode_install ()
   4338{
   4339    $debug_cmd
   4340
   4341    # There may be an optional sh(1) argument at the beginning of
   4342    # install_prog (especially on Windows NT).
   4343    if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
   4344       # Allow the use of GNU shtool's install command.
   4345       case $nonopt in *shtool*) :;; *) false;; esac
   4346    then
   4347      # Aesthetically quote it.
   4348      func_quote_arg pretty "$nonopt"
   4349      install_prog="$func_quote_arg_result "
   4350      arg=$1
   4351      shift
   4352    else
   4353      install_prog=
   4354      arg=$nonopt
   4355    fi
   4356
   4357    # The real first argument should be the name of the installation program.
   4358    # Aesthetically quote it.
   4359    func_quote_arg pretty "$arg"
   4360    func_append install_prog "$func_quote_arg_result"
   4361    install_shared_prog=$install_prog
   4362    case " $install_prog " in
   4363      *[\\\ /]cp\ *) install_cp=: ;;
   4364      *) install_cp=false ;;
   4365    esac
   4366
   4367    # We need to accept at least all the BSD install flags.
   4368    dest=
   4369    files=
   4370    opts=
   4371    prev=
   4372    install_type=
   4373    isdir=false
   4374    stripme=
   4375    no_mode=:
   4376    for arg
   4377    do
   4378      arg2=
   4379      if test -n "$dest"; then
   4380	func_append files " $dest"
   4381	dest=$arg
   4382	continue
   4383      fi
   4384
   4385      case $arg in
   4386      -d) isdir=: ;;
   4387      -f)
   4388	if $install_cp; then :; else
   4389	  prev=$arg
   4390	fi
   4391	;;
   4392      -g | -m | -o)
   4393	prev=$arg
   4394	;;
   4395      -s)
   4396	stripme=" -s"
   4397	continue
   4398	;;
   4399      -*)
   4400	;;
   4401      *)
   4402	# If the previous option needed an argument, then skip it.
   4403	if test -n "$prev"; then
   4404	  if test X-m = "X$prev" && test -n "$install_override_mode"; then
   4405	    arg2=$install_override_mode
   4406	    no_mode=false
   4407	  fi
   4408	  prev=
   4409	else
   4410	  dest=$arg
   4411	  continue
   4412	fi
   4413	;;
   4414      esac
   4415
   4416      # Aesthetically quote the argument.
   4417      func_quote_arg pretty "$arg"
   4418      func_append install_prog " $func_quote_arg_result"
   4419      if test -n "$arg2"; then
   4420	func_quote_arg pretty "$arg2"
   4421      fi
   4422      func_append install_shared_prog " $func_quote_arg_result"
   4423    done
   4424
   4425    test -z "$install_prog" && \
   4426      func_fatal_help "you must specify an install program"
   4427
   4428    test -n "$prev" && \
   4429      func_fatal_help "the '$prev' option requires an argument"
   4430
   4431    if test -n "$install_override_mode" && $no_mode; then
   4432      if $install_cp; then :; else
   4433	func_quote_arg pretty "$install_override_mode"
   4434	func_append install_shared_prog " -m $func_quote_arg_result"
   4435      fi
   4436    fi
   4437
   4438    if test -z "$files"; then
   4439      if test -z "$dest"; then
   4440	func_fatal_help "no file or destination specified"
   4441      else
   4442	func_fatal_help "you must specify a destination"
   4443      fi
   4444    fi
   4445
   4446    # Strip any trailing slash from the destination.
   4447    func_stripname '' '/' "$dest"
   4448    dest=$func_stripname_result
   4449
   4450    # Check to see that the destination is a directory.
   4451    test -d "$dest" && isdir=:
   4452    if $isdir; then
   4453      destdir=$dest
   4454      destname=
   4455    else
   4456      func_dirname_and_basename "$dest" "" "."
   4457      destdir=$func_dirname_result
   4458      destname=$func_basename_result
   4459
   4460      # Not a directory, so check to see that there is only one file specified.
   4461      set dummy $files; shift
   4462      test "$#" -gt 1 && \
   4463	func_fatal_help "'$dest' is not a directory"
   4464    fi
   4465    case $destdir in
   4466    [\\/]* | [A-Za-z]:[\\/]*) ;;
   4467    *)
   4468      for file in $files; do
   4469	case $file in
   4470	*.lo) ;;
   4471	*)
   4472	  func_fatal_help "'$destdir' must be an absolute directory name"
   4473	  ;;
   4474	esac
   4475      done
   4476      ;;
   4477    esac
   4478
   4479    # This variable tells wrapper scripts just to set variables rather
   4480    # than running their programs.
   4481    libtool_install_magic=$magic
   4482
   4483    staticlibs=
   4484    future_libdirs=
   4485    current_libdirs=
   4486    for file in $files; do
   4487
   4488      # Do each installation.
   4489      case $file in
   4490      *.$libext)
   4491	# Do the static libraries later.
   4492	func_append staticlibs " $file"
   4493	;;
   4494
   4495      *.la)
   4496	func_resolve_sysroot "$file"
   4497	file=$func_resolve_sysroot_result
   4498
   4499	# Check to see that this really is a libtool archive.
   4500	func_lalib_unsafe_p "$file" \
   4501	  || func_fatal_help "'$file' is not a valid libtool archive"
   4502
   4503	library_names=
   4504	old_library=
   4505	relink_command=
   4506	func_source "$file"
   4507
   4508	# Add the libdir to current_libdirs if it is the destination.
   4509	if test "X$destdir" = "X$libdir"; then
   4510	  case "$current_libdirs " in
   4511	  *" $libdir "*) ;;
   4512	  *) func_append current_libdirs " $libdir" ;;
   4513	  esac
   4514	else
   4515	  # Note the libdir as a future libdir.
   4516	  case "$future_libdirs " in
   4517	  *" $libdir "*) ;;
   4518	  *) func_append future_libdirs " $libdir" ;;
   4519	  esac
   4520	fi
   4521
   4522	func_dirname "$file" "/" ""
   4523	dir=$func_dirname_result
   4524	func_append dir "$objdir"
   4525
   4526	if test -n "$relink_command"; then
   4527	  # Determine the prefix the user has applied to our future dir.
   4528	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
   4529
   4530	  # Don't allow the user to place us outside of our expected
   4531	  # location b/c this prevents finding dependent libraries that
   4532	  # are installed to the same prefix.
   4533	  # At present, this check doesn't affect windows .dll's that
   4534	  # are installed into $libdir/../bin (currently, that works fine)
   4535	  # but it's something to keep an eye on.
   4536	  test "$inst_prefix_dir" = "$destdir" && \
   4537	    func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
   4538
   4539	  if test -n "$inst_prefix_dir"; then
   4540	    # Stick the inst_prefix_dir data into the link command.
   4541	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
   4542	  else
   4543	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
   4544	  fi
   4545
   4546	  func_warning "relinking '$file'"
   4547	  func_show_eval "$relink_command" \
   4548	    'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
   4549	fi
   4550
   4551	# See the names of the shared library.
   4552	set dummy $library_names; shift
   4553	if test -n "$1"; then
   4554	  realname=$1
   4555	  shift
   4556
   4557	  srcname=$realname
   4558	  test -n "$relink_command" && srcname=${realname}T
   4559
   4560	  # Install the shared library and build the symlinks.
   4561	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
   4562	      'exit $?'
   4563	  tstripme=$stripme
   4564	  case $host_os in
   4565	  cygwin* | mingw* | pw32* | cegcc*)
   4566	    case $realname in
   4567	    *.dll.a)
   4568	      tstripme=
   4569	      ;;
   4570	    esac
   4571	    ;;
   4572	  os2*)
   4573	    case $realname in
   4574	    *_dll.a)
   4575	      tstripme=
   4576	      ;;
   4577	    esac
   4578	    ;;
   4579	  esac
   4580	  if test -n "$tstripme" && test -n "$striplib"; then
   4581	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
   4582	  fi
   4583
   4584	  if test "$#" -gt 0; then
   4585	    # Delete the old symlinks, and create new ones.
   4586	    # Try 'ln -sf' first, because the 'ln' binary might depend on
   4587	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
   4588	    # so we also need to try rm && ln -s.
   4589	    for linkname
   4590	    do
   4591	      test "$linkname" != "$realname" \
   4592		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
   4593	    done
   4594	  fi
   4595
   4596	  # Do each command in the postinstall commands.
   4597	  lib=$destdir/$realname
   4598	  func_execute_cmds "$postinstall_cmds" 'exit $?'
   4599	fi
   4600
   4601	# Install the pseudo-library for information purposes.
   4602	func_basename "$file"
   4603	name=$func_basename_result
   4604	instname=$dir/${name}i
   4605	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
   4606
   4607	# Maybe install the static library, too.
   4608	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
   4609	;;
   4610
   4611      *.lo)
   4612	# Install (i.e. copy) a libtool object.
   4613
   4614	# Figure out destination file name, if it wasn't already specified.
   4615	if test -n "$destname"; then
   4616	  destfile=$destdir/$destname
   4617	else
   4618	  func_basename "$file"
   4619	  destfile=$func_basename_result
   4620	  destfile=$destdir/$destfile
   4621	fi
   4622
   4623	# Deduce the name of the destination old-style object file.
   4624	case $destfile in
   4625	*.lo)
   4626	  func_lo2o "$destfile"
   4627	  staticdest=$func_lo2o_result
   4628	  ;;
   4629	*.$objext)
   4630	  staticdest=$destfile
   4631	  destfile=
   4632	  ;;
   4633	*)
   4634	  func_fatal_help "cannot copy a libtool object to '$destfile'"
   4635	  ;;
   4636	esac
   4637
   4638	# Install the libtool object if requested.
   4639	test -n "$destfile" && \
   4640	  func_show_eval "$install_prog $file $destfile" 'exit $?'
   4641
   4642	# Install the old object if enabled.
   4643	if test yes = "$build_old_libs"; then
   4644	  # Deduce the name of the old-style object file.
   4645	  func_lo2o "$file"
   4646	  staticobj=$func_lo2o_result
   4647	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
   4648	fi
   4649	exit $EXIT_SUCCESS
   4650	;;
   4651
   4652      *)
   4653	# Figure out destination file name, if it wasn't already specified.
   4654	if test -n "$destname"; then
   4655	  destfile=$destdir/$destname
   4656	else
   4657	  func_basename "$file"
   4658	  destfile=$func_basename_result
   4659	  destfile=$destdir/$destfile
   4660	fi
   4661
   4662	# If the file is missing, and there is a .exe on the end, strip it
   4663	# because it is most likely a libtool script we actually want to
   4664	# install
   4665	stripped_ext=
   4666	case $file in
   4667	  *.exe)
   4668	    if test ! -f "$file"; then
   4669	      func_stripname '' '.exe' "$file"
   4670	      file=$func_stripname_result
   4671	      stripped_ext=.exe
   4672	    fi
   4673	    ;;
   4674	esac
   4675
   4676	# Do a test to see if this is really a libtool program.
   4677	case $host in
   4678	*cygwin* | *mingw*)
   4679	    if func_ltwrapper_executable_p "$file"; then
   4680	      func_ltwrapper_scriptname "$file"
   4681	      wrapper=$func_ltwrapper_scriptname_result
   4682	    else
   4683	      func_stripname '' '.exe' "$file"
   4684	      wrapper=$func_stripname_result
   4685	    fi
   4686	    ;;
   4687	*)
   4688	    wrapper=$file
   4689	    ;;
   4690	esac
   4691	if func_ltwrapper_script_p "$wrapper"; then
   4692	  notinst_deplibs=
   4693	  relink_command=
   4694
   4695	  func_source "$wrapper"
   4696
   4697	  # Check the variables that should have been set.
   4698	  test -z "$generated_by_libtool_version" && \
   4699	    func_fatal_error "invalid libtool wrapper script '$wrapper'"
   4700
   4701	  finalize=:
   4702	  for lib in $notinst_deplibs; do
   4703	    # Check to see that each library is installed.
   4704	    libdir=
   4705	    if test -f "$lib"; then
   4706	      func_source "$lib"
   4707	    fi
   4708	    libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
   4709	    if test -n "$libdir" && test ! -f "$libfile"; then
   4710	      func_warning "'$lib' has not been installed in '$libdir'"
   4711	      finalize=false
   4712	    fi
   4713	  done
   4714
   4715	  relink_command=
   4716	  func_source "$wrapper"
   4717
   4718	  outputname=
   4719	  if test no = "$fast_install" && test -n "$relink_command"; then
   4720	    $opt_dry_run || {
   4721	      if $finalize; then
   4722	        tmpdir=`func_mktempdir`
   4723		func_basename "$file$stripped_ext"
   4724		file=$func_basename_result
   4725	        outputname=$tmpdir/$file
   4726	        # Replace the output file specification.
   4727	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
   4728
   4729	        $opt_quiet || {
   4730	          func_quote_arg expand,pretty "$relink_command"
   4731		  eval "func_echo $func_quote_arg_result"
   4732	        }
   4733	        if eval "$relink_command"; then :
   4734	          else
   4735		  func_error "error: relink '$file' with the above command before installing it"
   4736		  $opt_dry_run || ${RM}r "$tmpdir"
   4737		  continue
   4738	        fi
   4739	        file=$outputname
   4740	      else
   4741	        func_warning "cannot relink '$file'"
   4742	      fi
   4743	    }
   4744	  else
   4745	    # Install the binary that we compiled earlier.
   4746	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
   4747	  fi
   4748	fi
   4749
   4750	# remove .exe since cygwin /usr/bin/install will append another
   4751	# one anyway
   4752	case $install_prog,$host in
   4753	*/usr/bin/install*,*cygwin*)
   4754	  case $file:$destfile in
   4755	  *.exe:*.exe)
   4756	    # this is ok
   4757	    ;;
   4758	  *.exe:*)
   4759	    destfile=$destfile.exe
   4760	    ;;
   4761	  *:*.exe)
   4762	    func_stripname '' '.exe' "$destfile"
   4763	    destfile=$func_stripname_result
   4764	    ;;
   4765	  esac
   4766	  ;;
   4767	esac
   4768	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
   4769	$opt_dry_run || if test -n "$outputname"; then
   4770	  ${RM}r "$tmpdir"
   4771	fi
   4772	;;
   4773      esac
   4774    done
   4775
   4776    for file in $staticlibs; do
   4777      func_basename "$file"
   4778      name=$func_basename_result
   4779
   4780      # Set up the ranlib parameters.
   4781      oldlib=$destdir/$name
   4782      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
   4783      tool_oldlib=$func_to_tool_file_result
   4784
   4785      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
   4786
   4787      if test -n "$stripme" && test -n "$old_striplib"; then
   4788	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
   4789      fi
   4790
   4791      # Do each command in the postinstall commands.
   4792      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
   4793    done
   4794
   4795    test -n "$future_libdirs" && \
   4796      func_warning "remember to run '$progname --finish$future_libdirs'"
   4797
   4798    if test -n "$current_libdirs"; then
   4799      # Maybe just do a dry run.
   4800      $opt_dry_run && current_libdirs=" -n$current_libdirs"
   4801      exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
   4802    else
   4803      exit $EXIT_SUCCESS
   4804    fi
   4805}
   4806
   4807test install = "$opt_mode" && func_mode_install ${1+"$@"}
   4808
   4809
   4810# func_generate_dlsyms outputname originator pic_p
   4811# Extract symbols from dlprefiles and create ${outputname}S.o with
   4812# a dlpreopen symbol table.
   4813func_generate_dlsyms ()
   4814{
   4815    $debug_cmd
   4816
   4817    my_outputname=$1
   4818    my_originator=$2
   4819    my_pic_p=${3-false}
   4820    my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
   4821    my_dlsyms=
   4822
   4823    if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
   4824      if test -n "$NM" && test -n "$global_symbol_pipe"; then
   4825	my_dlsyms=${my_outputname}S.c
   4826      else
   4827	func_error "not configured to extract global symbols from dlpreopened files"
   4828      fi
   4829    fi
   4830
   4831    if test -n "$my_dlsyms"; then
   4832      case $my_dlsyms in
   4833      "") ;;
   4834      *.c)
   4835	# Discover the nlist of each of the dlfiles.
   4836	nlist=$output_objdir/$my_outputname.nm
   4837
   4838	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
   4839
   4840	# Parse the name list into a source file.
   4841	func_verbose "creating $output_objdir/$my_dlsyms"
   4842
   4843	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
   4844/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
   4845/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
   4846
   4847#ifdef __cplusplus
   4848extern \"C\" {
   4849#endif
   4850
   4851#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
   4852#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
   4853#endif
   4854
   4855/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
   4856#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
   4857/* DATA imports from DLLs on WIN32 can't be const, because runtime
   4858   relocations are performed -- see ld's documentation on pseudo-relocs.  */
   4859# define LT_DLSYM_CONST
   4860#elif defined __osf__
   4861/* This system does not cope well with relocations in const data.  */
   4862# define LT_DLSYM_CONST
   4863#else
   4864# define LT_DLSYM_CONST const
   4865#endif
   4866
   4867#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
   4868
   4869/* External symbol declarations for the compiler. */\
   4870"
   4871
   4872	if test yes = "$dlself"; then
   4873	  func_verbose "generating symbol list for '$output'"
   4874
   4875	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
   4876
   4877	  # Add our own program objects to the symbol list.
   4878	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
   4879	  for progfile in $progfiles; do
   4880	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
   4881	    func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
   4882	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
   4883	  done
   4884
   4885	  if test -n "$exclude_expsyms"; then
   4886	    $opt_dry_run || {
   4887	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
   4888	      eval '$MV "$nlist"T "$nlist"'
   4889	    }
   4890	  fi
   4891
   4892	  if test -n "$export_symbols_regex"; then
   4893	    $opt_dry_run || {
   4894	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
   4895	      eval '$MV "$nlist"T "$nlist"'
   4896	    }
   4897	  fi
   4898
   4899	  # Prepare the list of exported symbols
   4900	  if test -z "$export_symbols"; then
   4901	    export_symbols=$output_objdir/$outputname.exp
   4902	    $opt_dry_run || {
   4903	      $RM $export_symbols
   4904	      eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
   4905	      case $host in
   4906	      *cygwin* | *mingw* | *cegcc* )
   4907                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
   4908                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
   4909	        ;;
   4910	      esac
   4911	    }
   4912	  else
   4913	    $opt_dry_run || {
   4914	      eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
   4915	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
   4916	      eval '$MV "$nlist"T "$nlist"'
   4917	      case $host in
   4918	        *cygwin* | *mingw* | *cegcc* )
   4919	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
   4920	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
   4921	          ;;
   4922	      esac
   4923	    }
   4924	  fi
   4925	fi
   4926
   4927	for dlprefile in $dlprefiles; do
   4928	  func_verbose "extracting global C symbols from '$dlprefile'"
   4929	  func_basename "$dlprefile"
   4930	  name=$func_basename_result
   4931          case $host in
   4932	    *cygwin* | *mingw* | *cegcc* )
   4933	      # if an import library, we need to obtain dlname
   4934	      if func_win32_import_lib_p "$dlprefile"; then
   4935	        func_tr_sh "$dlprefile"
   4936	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
   4937	        dlprefile_dlbasename=
   4938	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
   4939	          # Use subshell, to avoid clobbering current variable values
   4940	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
   4941	          if test -n "$dlprefile_dlname"; then
   4942	            func_basename "$dlprefile_dlname"
   4943	            dlprefile_dlbasename=$func_basename_result
   4944	          else
   4945	            # no lafile. user explicitly requested -dlpreopen <import library>.
   4946	            $sharedlib_from_linklib_cmd "$dlprefile"
   4947	            dlprefile_dlbasename=$sharedlib_from_linklib_result
   4948	          fi
   4949	        fi
   4950	        $opt_dry_run || {
   4951	          if test -n "$dlprefile_dlbasename"; then
   4952	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
   4953	          else
   4954	            func_warning "Could not compute DLL name from $name"
   4955	            eval '$ECHO ": $name " >> "$nlist"'
   4956	          fi
   4957	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
   4958	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
   4959	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
   4960	        }
   4961	      else # not an import lib
   4962	        $opt_dry_run || {
   4963	          eval '$ECHO ": $name " >> "$nlist"'
   4964	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
   4965	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
   4966	        }
   4967	      fi
   4968	    ;;
   4969	    *)
   4970	      $opt_dry_run || {
   4971	        eval '$ECHO ": $name " >> "$nlist"'
   4972	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
   4973	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
   4974	      }
   4975	    ;;
   4976          esac
   4977	done
   4978
   4979	$opt_dry_run || {
   4980	  # Make sure we have at least an empty file.
   4981	  test -f "$nlist" || : > "$nlist"
   4982
   4983	  if test -n "$exclude_expsyms"; then
   4984	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
   4985	    $MV "$nlist"T "$nlist"
   4986	  fi
   4987
   4988	  # Try sorting and uniquifying the output.
   4989	  if $GREP -v "^: " < "$nlist" |
   4990	      if sort -k 3 </dev/null >/dev/null 2>&1; then
   4991		sort -k 3
   4992	      else
   4993		sort +2
   4994	      fi |
   4995	      uniq > "$nlist"S; then
   4996	    :
   4997	  else
   4998	    $GREP -v "^: " < "$nlist" > "$nlist"S
   4999	  fi
   5000
   5001	  if test -f "$nlist"S; then
   5002	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
   5003	  else
   5004	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
   5005	  fi
   5006
   5007	  func_show_eval '$RM "${nlist}I"'
   5008	  if test -n "$global_symbol_to_import"; then
   5009	    eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
   5010	  fi
   5011
   5012	  echo >> "$output_objdir/$my_dlsyms" "\
   5013
   5014/* The mapping between symbol names and symbols.  */
   5015typedef struct {
   5016  const char *name;
   5017  void *address;
   5018} lt_dlsymlist;
   5019extern LT_DLSYM_CONST lt_dlsymlist
   5020lt_${my_prefix}_LTX_preloaded_symbols[];\
   5021"
   5022
   5023	  if test -s "$nlist"I; then
   5024	    echo >> "$output_objdir/$my_dlsyms" "\
   5025static void lt_syminit(void)
   5026{
   5027  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
   5028  for (; symbol->name; ++symbol)
   5029    {"
   5030	    $SED 's/.*/      if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
   5031	    echo >> "$output_objdir/$my_dlsyms" "\
   5032    }
   5033}"
   5034	  fi
   5035	  echo >> "$output_objdir/$my_dlsyms" "\
   5036LT_DLSYM_CONST lt_dlsymlist
   5037lt_${my_prefix}_LTX_preloaded_symbols[] =
   5038{ {\"$my_originator\", (void *) 0},"
   5039
   5040	  if test -s "$nlist"I; then
   5041	    echo >> "$output_objdir/$my_dlsyms" "\
   5042  {\"@INIT@\", (void *) &lt_syminit},"
   5043	  fi
   5044
   5045	  case $need_lib_prefix in
   5046	  no)
   5047	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
   5048	    ;;
   5049	  *)
   5050	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
   5051	    ;;
   5052	  esac
   5053	  echo >> "$output_objdir/$my_dlsyms" "\
   5054  {0, (void *) 0}
   5055};
   5056
   5057/* This works around a problem in FreeBSD linker */
   5058#ifdef FREEBSD_WORKAROUND
   5059static const void *lt_preloaded_setup() {
   5060  return lt_${my_prefix}_LTX_preloaded_symbols;
   5061}
   5062#endif
   5063
   5064#ifdef __cplusplus
   5065}
   5066#endif\
   5067"
   5068	} # !$opt_dry_run
   5069
   5070	pic_flag_for_symtable=
   5071	case "$compile_command " in
   5072	*" -static "*) ;;
   5073	*)
   5074	  case $host in
   5075	  # compiling the symbol table file with pic_flag works around
   5076	  # a FreeBSD bug that causes programs to crash when -lm is
   5077	  # linked before any other PIC object.  But we must not use
   5078	  # pic_flag when linking with -static.  The problem exists in
   5079	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
   5080	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
   5081	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
   5082	  *-*-hpux*)
   5083	    pic_flag_for_symtable=" $pic_flag"  ;;
   5084	  *)
   5085	    $my_pic_p && pic_flag_for_symtable=" $pic_flag"
   5086	    ;;
   5087	  esac
   5088	  ;;
   5089	esac
   5090	symtab_cflags=
   5091	for arg in $LTCFLAGS; do
   5092	  case $arg in
   5093	  -pie | -fpie | -fPIE) ;;
   5094	  *) func_append symtab_cflags " $arg" ;;
   5095	  esac
   5096	done
   5097
   5098	# Now compile the dynamic symbol file.
   5099	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
   5100
   5101	# Clean up the generated files.
   5102	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
   5103
   5104	# Transform the symbol file into the correct name.
   5105	symfileobj=$output_objdir/${my_outputname}S.$objext
   5106	case $host in
   5107	*cygwin* | *mingw* | *cegcc* )
   5108	  if test -f "$output_objdir/$my_outputname.def"; then
   5109	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
   5110	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
   5111	  else
   5112	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
   5113	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
   5114	  fi
   5115	  ;;
   5116	*)
   5117	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
   5118	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
   5119	  ;;
   5120	esac
   5121	;;
   5122      *)
   5123	func_fatal_error "unknown suffix for '$my_dlsyms'"
   5124	;;
   5125      esac
   5126    else
   5127      # We keep going just in case the user didn't refer to
   5128      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
   5129      # really was required.
   5130
   5131      # Nullify the symbol file.
   5132      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
   5133      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
   5134    fi
   5135}
   5136
   5137# func_cygming_gnu_implib_p ARG
   5138# This predicate returns with zero status (TRUE) if
   5139# ARG is a GNU/binutils-style import library. Returns
   5140# with nonzero status (FALSE) otherwise.
   5141func_cygming_gnu_implib_p ()
   5142{
   5143  $debug_cmd
   5144
   5145  func_to_tool_file "$1" func_convert_file_msys_to_w32
   5146  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)$'`
   5147  test -n "$func_cygming_gnu_implib_tmp"
   5148}
   5149
   5150# func_cygming_ms_implib_p ARG
   5151# This predicate returns with zero status (TRUE) if
   5152# ARG is an MS-style import library. Returns
   5153# with nonzero status (FALSE) otherwise.
   5154func_cygming_ms_implib_p ()
   5155{
   5156  $debug_cmd
   5157
   5158  func_to_tool_file "$1" func_convert_file_msys_to_w32
   5159  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
   5160  test -n "$func_cygming_ms_implib_tmp"
   5161}
   5162
   5163# func_win32_libid arg
   5164# return the library type of file 'arg'
   5165#
   5166# Need a lot of goo to handle *both* DLLs and import libs
   5167# Has to be a shell function in order to 'eat' the argument
   5168# that is supplied when $file_magic_command is called.
   5169# Despite the name, also deal with 64 bit binaries.
   5170func_win32_libid ()
   5171{
   5172  $debug_cmd
   5173
   5174  win32_libid_type=unknown
   5175  win32_fileres=`file -L $1 2>/dev/null`
   5176  case $win32_fileres in
   5177  *ar\ archive\ import\ library*) # definitely import
   5178    win32_libid_type="x86 archive import"
   5179    ;;
   5180  *ar\ archive*) # could be an import, or static
   5181    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
   5182    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
   5183       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
   5184      case $nm_interface in
   5185      "MS dumpbin")
   5186	if func_cygming_ms_implib_p "$1" ||
   5187	   func_cygming_gnu_implib_p "$1"
   5188	then
   5189	  win32_nmres=import
   5190	else
   5191	  win32_nmres=
   5192	fi
   5193	;;
   5194      *)
   5195	func_to_tool_file "$1" func_convert_file_msys_to_w32
   5196	win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
   5197	  $SED -n -e '
   5198	    1,100{
   5199		/ I /{
   5200		    s|.*|import|
   5201		    p
   5202		    q
   5203		}
   5204	    }'`
   5205	;;
   5206      esac
   5207      case $win32_nmres in
   5208      import*)  win32_libid_type="x86 archive import";;
   5209      *)        win32_libid_type="x86 archive static";;
   5210      esac
   5211    fi
   5212    ;;
   5213  *DLL*)
   5214    win32_libid_type="x86 DLL"
   5215    ;;
   5216  *executable*) # but shell scripts are "executable" too...
   5217    case $win32_fileres in
   5218    *MS\ Windows\ PE\ Intel*)
   5219      win32_libid_type="x86 DLL"
   5220      ;;
   5221    esac
   5222    ;;
   5223  esac
   5224  $ECHO "$win32_libid_type"
   5225}
   5226
   5227# func_cygming_dll_for_implib ARG
   5228#
   5229# Platform-specific function to extract the
   5230# name of the DLL associated with the specified
   5231# import library ARG.
   5232# Invoked by eval'ing the libtool variable
   5233#    $sharedlib_from_linklib_cmd
   5234# Result is available in the variable
   5235#    $sharedlib_from_linklib_result
   5236func_cygming_dll_for_implib ()
   5237{
   5238  $debug_cmd
   5239
   5240  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
   5241}
   5242
   5243# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
   5244#
   5245# The is the core of a fallback implementation of a
   5246# platform-specific function to extract the name of the
   5247# DLL associated with the specified import library LIBNAME.
   5248#
   5249# SECTION_NAME is either .idata$6 or .idata$7, depending
   5250# on the platform and compiler that created the implib.
   5251#
   5252# Echos the name of the DLL associated with the
   5253# specified import library.
   5254func_cygming_dll_for_implib_fallback_core ()
   5255{
   5256  $debug_cmd
   5257
   5258  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
   5259  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
   5260    $SED '/^Contents of section '"$match_literal"':/{
   5261      # Place marker at beginning of archive member dllname section
   5262      s/.*/====MARK====/
   5263      p
   5264      d
   5265    }
   5266    # These lines can sometimes be longer than 43 characters, but
   5267    # are always uninteresting
   5268    /:[	 ]*file format pe[i]\{,1\}-/d
   5269    /^In archive [^:]*:/d
   5270    # Ensure marker is printed
   5271    /^====MARK====/p
   5272    # Remove all lines with less than 43 characters
   5273    /^.\{43\}/!d
   5274    # From remaining lines, remove first 43 characters
   5275    s/^.\{43\}//' |
   5276    $SED -n '
   5277      # Join marker and all lines until next marker into a single line
   5278      /^====MARK====/ b para
   5279      H
   5280      $ b para
   5281      b
   5282      :para
   5283      x
   5284      s/\n//g
   5285      # Remove the marker
   5286      s/^====MARK====//
   5287      # Remove trailing dots and whitespace
   5288      s/[\. \t]*$//
   5289      # Print
   5290      /./p' |
   5291    # we now have a list, one entry per line, of the stringified
   5292    # contents of the appropriate section of all members of the
   5293    # archive that possess that section. Heuristic: eliminate
   5294    # all those that have a first or second character that is
   5295    # a '.' (that is, objdump's representation of an unprintable
   5296    # character.) This should work for all archives with less than
   5297    # 0x302f exports -- but will fail for DLLs whose name actually
   5298    # begins with a literal '.' or a single character followed by
   5299    # a '.'.
   5300    #
   5301    # Of those that remain, print the first one.
   5302    $SED -e '/^\./d;/^.\./d;q'
   5303}
   5304
   5305# func_cygming_dll_for_implib_fallback ARG
   5306# Platform-specific function to extract the
   5307# name of the DLL associated with the specified
   5308# import library ARG.
   5309#
   5310# This fallback implementation is for use when $DLLTOOL
   5311# does not support the --identify-strict option.
   5312# Invoked by eval'ing the libtool variable
   5313#    $sharedlib_from_linklib_cmd
   5314# Result is available in the variable
   5315#    $sharedlib_from_linklib_result
   5316func_cygming_dll_for_implib_fallback ()
   5317{
   5318  $debug_cmd
   5319
   5320  if func_cygming_gnu_implib_p "$1"; then
   5321    # binutils import library
   5322    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
   5323  elif func_cygming_ms_implib_p "$1"; then
   5324    # ms-generated import library
   5325    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
   5326  else
   5327    # unknown
   5328    sharedlib_from_linklib_result=
   5329  fi
   5330}
   5331
   5332
   5333# func_extract_an_archive dir oldlib
   5334func_extract_an_archive ()
   5335{
   5336    $debug_cmd
   5337
   5338    f_ex_an_ar_dir=$1; shift
   5339    f_ex_an_ar_oldlib=$1
   5340    if test yes = "$lock_old_archive_extraction"; then
   5341      lockfile=$f_ex_an_ar_oldlib.lock
   5342      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
   5343	func_echo "Waiting for $lockfile to be removed"
   5344	sleep 2
   5345      done
   5346    fi
   5347    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
   5348		   'stat=$?; rm -f "$lockfile"; exit $stat'
   5349    if test yes = "$lock_old_archive_extraction"; then
   5350      $opt_dry_run || rm -f "$lockfile"
   5351    fi
   5352    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
   5353     :
   5354    else
   5355      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
   5356    fi
   5357}
   5358
   5359
   5360# func_extract_archives gentop oldlib ...
   5361func_extract_archives ()
   5362{
   5363    $debug_cmd
   5364
   5365    my_gentop=$1; shift
   5366    my_oldlibs=${1+"$@"}
   5367    my_oldobjs=
   5368    my_xlib=
   5369    my_xabs=
   5370    my_xdir=
   5371
   5372    for my_xlib in $my_oldlibs; do
   5373      # Extract the objects.
   5374      case $my_xlib in
   5375	[\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
   5376	*) my_xabs=`pwd`"/$my_xlib" ;;
   5377      esac
   5378      func_basename "$my_xlib"
   5379      my_xlib=$func_basename_result
   5380      my_xlib_u=$my_xlib
   5381      while :; do
   5382        case " $extracted_archives " in
   5383	*" $my_xlib_u "*)
   5384	  func_arith $extracted_serial + 1
   5385	  extracted_serial=$func_arith_result
   5386	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
   5387	*) break ;;
   5388	esac
   5389      done
   5390      extracted_archives="$extracted_archives $my_xlib_u"
   5391      my_xdir=$my_gentop/$my_xlib_u
   5392
   5393      func_mkdir_p "$my_xdir"
   5394
   5395      case $host in
   5396      *-darwin*)
   5397	func_verbose "Extracting $my_xabs"
   5398	# Do not bother doing anything if just a dry run
   5399	$opt_dry_run || {
   5400	  darwin_orig_dir=`pwd`
   5401	  cd $my_xdir || exit $?
   5402	  darwin_archive=$my_xabs
   5403	  darwin_curdir=`pwd`
   5404	  func_basename "$darwin_archive"
   5405	  darwin_base_archive=$func_basename_result
   5406	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
   5407	  if test -n "$darwin_arches"; then
   5408	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
   5409	    darwin_arch=
   5410	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
   5411	    for darwin_arch in  $darwin_arches; do
   5412	      func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
   5413	      $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
   5414	      cd "unfat-$$/$darwin_base_archive-$darwin_arch"
   5415	      func_extract_an_archive "`pwd`" "$darwin_base_archive"
   5416	      cd "$darwin_curdir"
   5417	      $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
   5418	    done # $darwin_arches
   5419            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
   5420	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
   5421	    darwin_file=
   5422	    darwin_files=
   5423	    for darwin_file in $darwin_filelist; do
   5424	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
   5425	      $LIPO -create -output "$darwin_file" $darwin_files
   5426	    done # $darwin_filelist
   5427	    $RM -rf unfat-$$
   5428	    cd "$darwin_orig_dir"
   5429	  else
   5430	    cd $darwin_orig_dir
   5431	    func_extract_an_archive "$my_xdir" "$my_xabs"
   5432	  fi # $darwin_arches
   5433	} # !$opt_dry_run
   5434	;;
   5435      *)
   5436        func_extract_an_archive "$my_xdir" "$my_xabs"
   5437	;;
   5438      esac
   5439      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
   5440    done
   5441
   5442    func_extract_archives_result=$my_oldobjs
   5443}
   5444
   5445
   5446# func_emit_wrapper [arg=no]
   5447#
   5448# Emit a libtool wrapper script on stdout.
   5449# Don't directly open a file because we may want to
   5450# incorporate the script contents within a cygwin/mingw
   5451# wrapper executable.  Must ONLY be called from within
   5452# func_mode_link because it depends on a number of variables
   5453# set therein.
   5454#
   5455# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
   5456# variable will take.  If 'yes', then the emitted script
   5457# will assume that the directory where it is stored is
   5458# the $objdir directory.  This is a cygwin/mingw-specific
   5459# behavior.
   5460func_emit_wrapper ()
   5461{
   5462	func_emit_wrapper_arg1=${1-no}
   5463
   5464	$ECHO "\
   5465#! $SHELL
   5466
   5467# $output - temporary wrapper script for $objdir/$outputname
   5468# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
   5469#
   5470# The $output program cannot be directly executed until all the libtool
   5471# libraries that it depends on are installed.
   5472#
   5473# This wrapper script should never be moved out of the build directory.
   5474# If it is, it will not operate correctly.
   5475
   5476# Sed substitution that helps us do robust quoting.  It backslashifies
   5477# metacharacters that are still active within double-quoted strings.
   5478sed_quote_subst='$sed_quote_subst'
   5479
   5480# Be Bourne compatible
   5481if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
   5482  emulate sh
   5483  NULLCMD=:
   5484  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
   5485  # is contrary to our usage.  Disable this feature.
   5486  alias -g '\${1+\"\$@\"}'='\"\$@\"'
   5487  setopt NO_GLOB_SUBST
   5488else
   5489  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
   5490fi
   5491BIN_SH=xpg4; export BIN_SH # for Tru64
   5492DUALCASE=1; export DUALCASE # for MKS sh
   5493
   5494# The HP-UX ksh and POSIX shell print the target directory to stdout
   5495# if CDPATH is set.
   5496(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
   5497
   5498relink_command=\"$relink_command\"
   5499
   5500# This environment variable determines our operation mode.
   5501if test \"\$libtool_install_magic\" = \"$magic\"; then
   5502  # install mode needs the following variables:
   5503  generated_by_libtool_version='$macro_version'
   5504  notinst_deplibs='$notinst_deplibs'
   5505else
   5506  # When we are sourced in execute mode, \$file and \$ECHO are already set.
   5507  if test \"\$libtool_execute_magic\" != \"$magic\"; then
   5508    file=\"\$0\""
   5509
   5510    func_quote_arg pretty "$ECHO"
   5511    qECHO=$func_quote_arg_result
   5512    $ECHO "\
   5513
   5514# A function that is used when there is no print builtin or printf.
   5515func_fallback_echo ()
   5516{
   5517  eval 'cat <<_LTECHO_EOF
   5518\$1
   5519_LTECHO_EOF'
   5520}
   5521    ECHO=$qECHO
   5522  fi
   5523
   5524# Very basic option parsing. These options are (a) specific to
   5525# the libtool wrapper, (b) are identical between the wrapper
   5526# /script/ and the wrapper /executable/ that is used only on
   5527# windows platforms, and (c) all begin with the string "--lt-"
   5528# (application programs are unlikely to have options that match
   5529# this pattern).
   5530#
   5531# There are only two supported options: --lt-debug and
   5532# --lt-dump-script. There is, deliberately, no --lt-help.
   5533#
   5534# The first argument to this parsing function should be the
   5535# script's $0 value, followed by "$@".
   5536lt_option_debug=
   5537func_parse_lt_options ()
   5538{
   5539  lt_script_arg0=\$0
   5540  shift
   5541  for lt_opt
   5542  do
   5543    case \"\$lt_opt\" in
   5544    --lt-debug) lt_option_debug=1 ;;
   5545    --lt-dump-script)
   5546        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
   5547        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
   5548        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
   5549        cat \"\$lt_dump_D/\$lt_dump_F\"
   5550        exit 0
   5551      ;;
   5552    --lt-*)
   5553        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
   5554        exit 1
   5555      ;;
   5556    esac
   5557  done
   5558
   5559  # Print the debug banner immediately:
   5560  if test -n \"\$lt_option_debug\"; then
   5561    echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
   5562  fi
   5563}
   5564
   5565# Used when --lt-debug. Prints its arguments to stdout
   5566# (redirection is the responsibility of the caller)
   5567func_lt_dump_args ()
   5568{
   5569  lt_dump_args_N=1;
   5570  for lt_arg
   5571  do
   5572    \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
   5573    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
   5574  done
   5575}
   5576
   5577# Core function for launching the target application
   5578func_exec_program_core ()
   5579{
   5580"
   5581  case $host in
   5582  # Backslashes separate directories on plain windows
   5583  *-*-mingw | *-*-os2* | *-cegcc*)
   5584    $ECHO "\
   5585      if test -n \"\$lt_option_debug\"; then
   5586        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
   5587        func_lt_dump_args \${1+\"\$@\"} 1>&2
   5588      fi
   5589      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
   5590"
   5591    ;;
   5592
   5593  *)
   5594    $ECHO "\
   5595      if test -n \"\$lt_option_debug\"; then
   5596        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
   5597        func_lt_dump_args \${1+\"\$@\"} 1>&2
   5598      fi
   5599      exec \"\$progdir/\$program\" \${1+\"\$@\"}
   5600"
   5601    ;;
   5602  esac
   5603  $ECHO "\
   5604      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
   5605      exit 1
   5606}
   5607
   5608# A function to encapsulate launching the target application
   5609# Strips options in the --lt-* namespace from \$@ and
   5610# launches target application with the remaining arguments.
   5611func_exec_program ()
   5612{
   5613  case \" \$* \" in
   5614  *\\ --lt-*)
   5615    for lt_wr_arg
   5616    do
   5617      case \$lt_wr_arg in
   5618      --lt-*) ;;
   5619      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
   5620      esac
   5621      shift
   5622    done ;;
   5623  esac
   5624  func_exec_program_core \${1+\"\$@\"}
   5625}
   5626
   5627  # Parse options
   5628  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
   5629
   5630  # Find the directory that this script lives in.
   5631  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
   5632  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
   5633
   5634  # Follow symbolic links until we get to the real thisdir.
   5635  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
   5636  while test -n \"\$file\"; do
   5637    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
   5638
   5639    # If there was a directory component, then change thisdir.
   5640    if test \"x\$destdir\" != \"x\$file\"; then
   5641      case \"\$destdir\" in
   5642      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
   5643      *) thisdir=\"\$thisdir/\$destdir\" ;;
   5644      esac
   5645    fi
   5646
   5647    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
   5648    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
   5649  done
   5650
   5651  # Usually 'no', except on cygwin/mingw when embedded into
   5652  # the cwrapper.
   5653  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
   5654  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
   5655    # special case for '.'
   5656    if test \"\$thisdir\" = \".\"; then
   5657      thisdir=\`pwd\`
   5658    fi
   5659    # remove .libs from thisdir
   5660    case \"\$thisdir\" in
   5661    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
   5662    $objdir )   thisdir=. ;;
   5663    esac
   5664  fi
   5665
   5666  # Try to get the absolute directory name.
   5667  absdir=\`cd \"\$thisdir\" && pwd\`
   5668  test -n \"\$absdir\" && thisdir=\"\$absdir\"
   5669"
   5670
   5671	if test yes = "$fast_install"; then
   5672	  $ECHO "\
   5673  program=lt-'$outputname'$exeext
   5674  progdir=\"\$thisdir/$objdir\"
   5675
   5676  if test ! -f \"\$progdir/\$program\" ||
   5677     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
   5678       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
   5679
   5680    file=\"\$\$-\$program\"
   5681
   5682    if test ! -d \"\$progdir\"; then
   5683      $MKDIR \"\$progdir\"
   5684    else
   5685      $RM \"\$progdir/\$file\"
   5686    fi"
   5687
   5688	  $ECHO "\
   5689
   5690    # relink executable if necessary
   5691    if test -n \"\$relink_command\"; then
   5692      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
   5693      else
   5694	\$ECHO \"\$relink_command_output\" >&2
   5695	$RM \"\$progdir/\$file\"
   5696	exit 1
   5697      fi
   5698    fi
   5699
   5700    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
   5701    { $RM \"\$progdir/\$program\";
   5702      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
   5703    $RM \"\$progdir/\$file\"
   5704  fi"
   5705	else
   5706	  $ECHO "\
   5707  program='$outputname'
   5708  progdir=\"\$thisdir/$objdir\"
   5709"
   5710	fi
   5711
   5712	$ECHO "\
   5713
   5714  if test -f \"\$progdir/\$program\"; then"
   5715
   5716	# fixup the dll searchpath if we need to.
   5717	#
   5718	# Fix the DLL searchpath if we need to.  Do this before prepending
   5719	# to shlibpath, because on Windows, both are PATH and uninstalled
   5720	# libraries must come first.
   5721	if test -n "$dllsearchpath"; then
   5722	  $ECHO "\
   5723    # Add the dll search path components to the executable PATH
   5724    PATH=$dllsearchpath:\$PATH
   5725"
   5726	fi
   5727
   5728	# Export our shlibpath_var if we have one.
   5729	if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
   5730	  $ECHO "\
   5731    # Add our own library path to $shlibpath_var
   5732    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
   5733
   5734    # Some systems cannot cope with colon-terminated $shlibpath_var
   5735    # The second colon is a workaround for a bug in BeOS R4 sed
   5736    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
   5737
   5738    export $shlibpath_var
   5739"
   5740	fi
   5741
   5742	$ECHO "\
   5743    if test \"\$libtool_execute_magic\" != \"$magic\"; then
   5744      # Run the actual program with our arguments.
   5745      func_exec_program \${1+\"\$@\"}
   5746    fi
   5747  else
   5748    # The program doesn't exist.
   5749    \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
   5750    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
   5751    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
   5752    exit 1
   5753  fi
   5754fi\
   5755"
   5756}
   5757
   5758
   5759# func_emit_cwrapperexe_src
   5760# emit the source code for a wrapper executable on stdout
   5761# Must ONLY be called from within func_mode_link because
   5762# it depends on a number of variable set therein.
   5763func_emit_cwrapperexe_src ()
   5764{
   5765	cat <<EOF
   5766
   5767/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
   5768   Generated by $PROGRAM (GNU $PACKAGE) $VERSION
   5769
   5770   The $output program cannot be directly executed until all the libtool
   5771   libraries that it depends on are installed.
   5772
   5773   This wrapper executable should never be moved out of the build directory.
   5774   If it is, it will not operate correctly.
   5775*/
   5776EOF
   5777	    cat <<"EOF"
   5778#ifdef _MSC_VER
   5779# define _CRT_SECURE_NO_DEPRECATE 1
   5780#endif
   5781#include <stdio.h>
   5782#include <stdlib.h>
   5783#ifdef _MSC_VER
   5784# include <direct.h>
   5785# include <process.h>
   5786# include <io.h>
   5787#else
   5788# include <unistd.h>
   5789# include <stdint.h>
   5790# ifdef __CYGWIN__
   5791#  include <io.h>
   5792# endif
   5793#endif
   5794#include <malloc.h>
   5795#include <stdarg.h>
   5796#include <assert.h>
   5797#include <string.h>
   5798#include <ctype.h>
   5799#include <errno.h>
   5800#include <fcntl.h>
   5801#include <sys/stat.h>
   5802
   5803#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
   5804
   5805/* declarations of non-ANSI functions */
   5806#if defined __MINGW32__
   5807# ifdef __STRICT_ANSI__
   5808int _putenv (const char *);
   5809# endif
   5810#elif defined __CYGWIN__
   5811# ifdef __STRICT_ANSI__
   5812char *realpath (const char *, char *);
   5813int putenv (char *);
   5814int setenv (const char *, const char *, int);
   5815# endif
   5816/* #elif defined other_platform || defined ... */
   5817#endif
   5818
   5819/* portability defines, excluding path handling macros */
   5820#if defined _MSC_VER
   5821# define setmode _setmode
   5822# define stat    _stat
   5823# define chmod   _chmod
   5824# define getcwd  _getcwd
   5825# define putenv  _putenv
   5826# define S_IXUSR _S_IEXEC
   5827#elif defined __MINGW32__
   5828# define setmode _setmode
   5829# define stat    _stat
   5830# define chmod   _chmod
   5831# define getcwd  _getcwd
   5832# define putenv  _putenv
   5833#elif defined __CYGWIN__
   5834# define HAVE_SETENV
   5835# define FOPEN_WB "wb"
   5836/* #elif defined other platforms ... */
   5837#endif
   5838
   5839#if defined PATH_MAX
   5840# define LT_PATHMAX PATH_MAX
   5841#elif defined MAXPATHLEN
   5842# define LT_PATHMAX MAXPATHLEN
   5843#else
   5844# define LT_PATHMAX 1024
   5845#endif
   5846
   5847#ifndef S_IXOTH
   5848# define S_IXOTH 0
   5849#endif
   5850#ifndef S_IXGRP
   5851# define S_IXGRP 0
   5852#endif
   5853
   5854/* path handling portability macros */
   5855#ifndef DIR_SEPARATOR
   5856# define DIR_SEPARATOR '/'
   5857# define PATH_SEPARATOR ':'
   5858#endif
   5859
   5860#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
   5861  defined __OS2__
   5862# define HAVE_DOS_BASED_FILE_SYSTEM
   5863# define FOPEN_WB "wb"
   5864# ifndef DIR_SEPARATOR_2
   5865#  define DIR_SEPARATOR_2 '\\'
   5866# endif
   5867# ifndef PATH_SEPARATOR_2
   5868#  define PATH_SEPARATOR_2 ';'
   5869# endif
   5870#endif
   5871
   5872#ifndef DIR_SEPARATOR_2
   5873# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
   5874#else /* DIR_SEPARATOR_2 */
   5875# define IS_DIR_SEPARATOR(ch) \
   5876	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
   5877#endif /* DIR_SEPARATOR_2 */
   5878
   5879#ifndef PATH_SEPARATOR_2
   5880# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
   5881#else /* PATH_SEPARATOR_2 */
   5882# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
   5883#endif /* PATH_SEPARATOR_2 */
   5884
   5885#ifndef FOPEN_WB
   5886# define FOPEN_WB "w"
   5887#endif
   5888#ifndef _O_BINARY
   5889# define _O_BINARY 0
   5890#endif
   5891
   5892#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
   5893#define XFREE(stale) do { \
   5894  if (stale) { free (stale); stale = 0; } \
   5895} while (0)
   5896
   5897#if defined LT_DEBUGWRAPPER
   5898static int lt_debug = 1;
   5899#else
   5900static int lt_debug = 0;
   5901#endif
   5902
   5903const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
   5904
   5905void *xmalloc (size_t num);
   5906char *xstrdup (const char *string);
   5907const char *base_name (const char *name);
   5908char *find_executable (const char *wrapper);
   5909char *chase_symlinks (const char *pathspec);
   5910int make_executable (const char *path);
   5911int check_executable (const char *path);
   5912char *strendzap (char *str, const char *pat);
   5913void lt_debugprintf (const char *file, int line, const char *fmt, ...);
   5914void lt_fatal (const char *file, int line, const char *message, ...);
   5915static const char *nonnull (const char *s);
   5916static const char *nonempty (const char *s);
   5917void lt_setenv (const char *name, const char *value);
   5918char *lt_extend_str (const char *orig_value, const char *add, int to_end);
   5919void lt_update_exe_path (const char *name, const char *value);
   5920void lt_update_lib_path (const char *name, const char *value);
   5921char **prepare_spawn (char **argv);
   5922void lt_dump_script (FILE *f);
   5923EOF
   5924
   5925	    cat <<EOF
   5926#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
   5927# define externally_visible volatile
   5928#else
   5929# define externally_visible __attribute__((externally_visible)) volatile
   5930#endif
   5931externally_visible const char * MAGIC_EXE = "$magic_exe";
   5932const char * LIB_PATH_VARNAME = "$shlibpath_var";
   5933EOF
   5934
   5935	    if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
   5936              func_to_host_path "$temp_rpath"
   5937	      cat <<EOF
   5938const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
   5939EOF
   5940	    else
   5941	      cat <<"EOF"
   5942const char * LIB_PATH_VALUE   = "";
   5943EOF
   5944	    fi
   5945
   5946	    if test -n "$dllsearchpath"; then
   5947              func_to_host_path "$dllsearchpath:"
   5948	      cat <<EOF
   5949const char * EXE_PATH_VARNAME = "PATH";
   5950const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
   5951EOF
   5952	    else
   5953	      cat <<"EOF"
   5954const char * EXE_PATH_VARNAME = "";
   5955const char * EXE_PATH_VALUE   = "";
   5956EOF
   5957	    fi
   5958
   5959	    if test yes = "$fast_install"; then
   5960	      cat <<EOF
   5961const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
   5962EOF
   5963	    else
   5964	      cat <<EOF
   5965const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
   5966EOF
   5967	    fi
   5968
   5969
   5970	    cat <<"EOF"
   5971
   5972#define LTWRAPPER_OPTION_PREFIX         "--lt-"
   5973
   5974static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
   5975static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
   5976static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
   5977
   5978int
   5979main (int argc, char *argv[])
   5980{
   5981  char **newargz;
   5982  int  newargc;
   5983  char *tmp_pathspec;
   5984  char *actual_cwrapper_path;
   5985  char *actual_cwrapper_name;
   5986  char *target_name;
   5987  char *lt_argv_zero;
   5988  int rval = 127;
   5989
   5990  int i;
   5991
   5992  program_name = (char *) xstrdup (base_name (argv[0]));
   5993  newargz = XMALLOC (char *, (size_t) argc + 1);
   5994
   5995  /* very simple arg parsing; don't want to rely on getopt
   5996   * also, copy all non cwrapper options to newargz, except
   5997   * argz[0], which is handled differently
   5998   */
   5999  newargc=0;
   6000  for (i = 1; i < argc; i++)
   6001    {
   6002      if (STREQ (argv[i], dumpscript_opt))
   6003	{
   6004EOF
   6005	    case $host in
   6006	      *mingw* | *cygwin* )
   6007		# make stdout use "unix" line endings
   6008		echo "          setmode(1,_O_BINARY);"
   6009		;;
   6010	      esac
   6011
   6012	    cat <<"EOF"
   6013	  lt_dump_script (stdout);
   6014	  return 0;
   6015	}
   6016      if (STREQ (argv[i], debug_opt))
   6017	{
   6018          lt_debug = 1;
   6019          continue;
   6020	}
   6021      if (STREQ (argv[i], ltwrapper_option_prefix))
   6022        {
   6023          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
   6024             namespace, but it is not one of the ones we know about and
   6025             have already dealt with, above (inluding dump-script), then
   6026             report an error. Otherwise, targets might begin to believe
   6027             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
   6028             namespace. The first time any user complains about this, we'll
   6029             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
   6030             or a configure.ac-settable value.
   6031           */
   6032          lt_fatal (__FILE__, __LINE__,
   6033		    "unrecognized %s option: '%s'",
   6034                    ltwrapper_option_prefix, argv[i]);
   6035        }
   6036      /* otherwise ... */
   6037      newargz[++newargc] = xstrdup (argv[i]);
   6038    }
   6039  newargz[++newargc] = NULL;
   6040
   6041EOF
   6042	    cat <<EOF
   6043  /* The GNU banner must be the first non-error debug message */
   6044  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
   6045EOF
   6046	    cat <<"EOF"
   6047  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
   6048  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
   6049
   6050  tmp_pathspec = find_executable (argv[0]);
   6051  if (tmp_pathspec == NULL)
   6052    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
   6053  lt_debugprintf (__FILE__, __LINE__,
   6054                  "(main) found exe (before symlink chase) at: %s\n",
   6055		  tmp_pathspec);
   6056
   6057  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
   6058  lt_debugprintf (__FILE__, __LINE__,
   6059                  "(main) found exe (after symlink chase) at: %s\n",
   6060		  actual_cwrapper_path);
   6061  XFREE (tmp_pathspec);
   6062
   6063  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
   6064  strendzap (actual_cwrapper_path, actual_cwrapper_name);
   6065
   6066  /* wrapper name transforms */
   6067  strendzap (actual_cwrapper_name, ".exe");
   6068  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
   6069  XFREE (actual_cwrapper_name);
   6070  actual_cwrapper_name = tmp_pathspec;
   6071  tmp_pathspec = 0;
   6072
   6073  /* target_name transforms -- use actual target program name; might have lt- prefix */
   6074  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
   6075  strendzap (target_name, ".exe");
   6076  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
   6077  XFREE (target_name);
   6078  target_name = tmp_pathspec;
   6079  tmp_pathspec = 0;
   6080
   6081  lt_debugprintf (__FILE__, __LINE__,
   6082		  "(main) libtool target name: %s\n",
   6083		  target_name);
   6084EOF
   6085
   6086	    cat <<EOF
   6087  newargz[0] =
   6088    XMALLOC (char, (strlen (actual_cwrapper_path) +
   6089		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
   6090  strcpy (newargz[0], actual_cwrapper_path);
   6091  strcat (newargz[0], "$objdir");
   6092  strcat (newargz[0], "/");
   6093EOF
   6094
   6095	    cat <<"EOF"
   6096  /* stop here, and copy so we don't have to do this twice */
   6097  tmp_pathspec = xstrdup (newargz[0]);
   6098
   6099  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
   6100  strcat (newargz[0], actual_cwrapper_name);
   6101
   6102  /* DO want the lt- prefix here if it exists, so use target_name */
   6103  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
   6104  XFREE (tmp_pathspec);
   6105  tmp_pathspec = NULL;
   6106EOF
   6107
   6108	    case $host_os in
   6109	      mingw*)
   6110	    cat <<"EOF"
   6111  {
   6112    char* p;
   6113    while ((p = strchr (newargz[0], '\\')) != NULL)
   6114      {
   6115	*p = '/';
   6116      }
   6117    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
   6118      {
   6119	*p = '/';
   6120      }
   6121  }
   6122EOF
   6123	    ;;
   6124	    esac
   6125
   6126	    cat <<"EOF"
   6127  XFREE (target_name);
   6128  XFREE (actual_cwrapper_path);
   6129  XFREE (actual_cwrapper_name);
   6130
   6131  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
   6132  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
   6133  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
   6134     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
   6135     because on Windows, both *_VARNAMEs are PATH but uninstalled
   6136     libraries must come first. */
   6137  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
   6138  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
   6139
   6140  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
   6141		  nonnull (lt_argv_zero));
   6142  for (i = 0; i < newargc; i++)
   6143    {
   6144      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
   6145		      i, nonnull (newargz[i]));
   6146    }
   6147
   6148EOF
   6149
   6150	    case $host_os in
   6151	      mingw*)
   6152		cat <<"EOF"
   6153  /* execv doesn't actually work on mingw as expected on unix */
   6154  newargz = prepare_spawn (newargz);
   6155  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   6156  if (rval == -1)
   6157    {
   6158      /* failed to start process */
   6159      lt_debugprintf (__FILE__, __LINE__,
   6160		      "(main) failed to launch target \"%s\": %s\n",
   6161		      lt_argv_zero, nonnull (strerror (errno)));
   6162      return 127;
   6163    }
   6164  return rval;
   6165EOF
   6166		;;
   6167	      *)
   6168		cat <<"EOF"
   6169  execv (lt_argv_zero, newargz);
   6170  return rval; /* =127, but avoids unused variable warning */
   6171EOF
   6172		;;
   6173	    esac
   6174
   6175	    cat <<"EOF"
   6176}
   6177
   6178void *
   6179xmalloc (size_t num)
   6180{
   6181  void *p = (void *) malloc (num);
   6182  if (!p)
   6183    lt_fatal (__FILE__, __LINE__, "memory exhausted");
   6184
   6185  return p;
   6186}
   6187
   6188char *
   6189xstrdup (const char *string)
   6190{
   6191  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
   6192			  string) : NULL;
   6193}
   6194
   6195const char *
   6196base_name (const char *name)
   6197{
   6198  const char *base;
   6199
   6200#if defined HAVE_DOS_BASED_FILE_SYSTEM
   6201  /* Skip over the disk name in MSDOS pathnames. */
   6202  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
   6203    name += 2;
   6204#endif
   6205
   6206  for (base = name; *name; name++)
   6207    if (IS_DIR_SEPARATOR (*name))
   6208      base = name + 1;
   6209  return base;
   6210}
   6211
   6212int
   6213check_executable (const char *path)
   6214{
   6215  struct stat st;
   6216
   6217  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
   6218                  nonempty (path));
   6219  if ((!path) || (!*path))
   6220    return 0;
   6221
   6222  if ((stat (path, &st) >= 0)
   6223      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
   6224    return 1;
   6225  else
   6226    return 0;
   6227}
   6228
   6229int
   6230make_executable (const char *path)
   6231{
   6232  int rval = 0;
   6233  struct stat st;
   6234
   6235  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
   6236                  nonempty (path));
   6237  if ((!path) || (!*path))
   6238    return 0;
   6239
   6240  if (stat (path, &st) >= 0)
   6241    {
   6242      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
   6243    }
   6244  return rval;
   6245}
   6246
   6247/* Searches for the full path of the wrapper.  Returns
   6248   newly allocated full path name if found, NULL otherwise
   6249   Does not chase symlinks, even on platforms that support them.
   6250*/
   6251char *
   6252find_executable (const char *wrapper)
   6253{
   6254  int has_slash = 0;
   6255  const char *p;
   6256  const char *p_next;
   6257  /* static buffer for getcwd */
   6258  char tmp[LT_PATHMAX + 1];
   6259  size_t tmp_len;
   6260  char *concat_name;
   6261
   6262  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
   6263                  nonempty (wrapper));
   6264
   6265  if ((wrapper == NULL) || (*wrapper == '\0'))
   6266    return NULL;
   6267
   6268  /* Absolute path? */
   6269#if defined HAVE_DOS_BASED_FILE_SYSTEM
   6270  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
   6271    {
   6272      concat_name = xstrdup (wrapper);
   6273      if (check_executable (concat_name))
   6274	return concat_name;
   6275      XFREE (concat_name);
   6276    }
   6277  else
   6278    {
   6279#endif
   6280      if (IS_DIR_SEPARATOR (wrapper[0]))
   6281	{
   6282	  concat_name = xstrdup (wrapper);
   6283	  if (check_executable (concat_name))
   6284	    return concat_name;
   6285	  XFREE (concat_name);
   6286	}
   6287#if defined HAVE_DOS_BASED_FILE_SYSTEM
   6288    }
   6289#endif
   6290
   6291  for (p = wrapper; *p; p++)
   6292    if (*p == '/')
   6293      {
   6294	has_slash = 1;
   6295	break;
   6296      }
   6297  if (!has_slash)
   6298    {
   6299      /* no slashes; search PATH */
   6300      const char *path = getenv ("PATH");
   6301      if (path != NULL)
   6302	{
   6303	  for (p = path; *p; p = p_next)
   6304	    {
   6305	      const char *q;
   6306	      size_t p_len;
   6307	      for (q = p; *q; q++)
   6308		if (IS_PATH_SEPARATOR (*q))
   6309		  break;
   6310	      p_len = (size_t) (q - p);
   6311	      p_next = (*q == '\0' ? q : q + 1);
   6312	      if (p_len == 0)
   6313		{
   6314		  /* empty path: current directory */
   6315		  if (getcwd (tmp, LT_PATHMAX) == NULL)
   6316		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
   6317                              nonnull (strerror (errno)));
   6318		  tmp_len = strlen (tmp);
   6319		  concat_name =
   6320		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   6321		  memcpy (concat_name, tmp, tmp_len);
   6322		  concat_name[tmp_len] = '/';
   6323		  strcpy (concat_name + tmp_len + 1, wrapper);
   6324		}
   6325	      else
   6326		{
   6327		  concat_name =
   6328		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
   6329		  memcpy (concat_name, p, p_len);
   6330		  concat_name[p_len] = '/';
   6331		  strcpy (concat_name + p_len + 1, wrapper);
   6332		}
   6333	      if (check_executable (concat_name))
   6334		return concat_name;
   6335	      XFREE (concat_name);
   6336	    }
   6337	}
   6338      /* not found in PATH; assume curdir */
   6339    }
   6340  /* Relative path | not found in path: prepend cwd */
   6341  if (getcwd (tmp, LT_PATHMAX) == NULL)
   6342    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
   6343              nonnull (strerror (errno)));
   6344  tmp_len = strlen (tmp);
   6345  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   6346  memcpy (concat_name, tmp, tmp_len);
   6347  concat_name[tmp_len] = '/';
   6348  strcpy (concat_name + tmp_len + 1, wrapper);
   6349
   6350  if (check_executable (concat_name))
   6351    return concat_name;
   6352  XFREE (concat_name);
   6353  return NULL;
   6354}
   6355
   6356char *
   6357chase_symlinks (const char *pathspec)
   6358{
   6359#ifndef S_ISLNK
   6360  return xstrdup (pathspec);
   6361#else
   6362  char buf[LT_PATHMAX];
   6363  struct stat s;
   6364  char *tmp_pathspec = xstrdup (pathspec);
   6365  char *p;
   6366  int has_symlinks = 0;
   6367  while (strlen (tmp_pathspec) && !has_symlinks)
   6368    {
   6369      lt_debugprintf (__FILE__, __LINE__,
   6370		      "checking path component for symlinks: %s\n",
   6371		      tmp_pathspec);
   6372      if (lstat (tmp_pathspec, &s) == 0)
   6373	{
   6374	  if (S_ISLNK (s.st_mode) != 0)
   6375	    {
   6376	      has_symlinks = 1;
   6377	      break;
   6378	    }
   6379
   6380	  /* search backwards for last DIR_SEPARATOR */
   6381	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
   6382	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
   6383	    p--;
   6384	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
   6385	    {
   6386	      /* no more DIR_SEPARATORS left */
   6387	      break;
   6388	    }
   6389	  *p = '\0';
   6390	}
   6391      else
   6392	{
   6393	  lt_fatal (__FILE__, __LINE__,
   6394		    "error accessing file \"%s\": %s",
   6395		    tmp_pathspec, nonnull (strerror (errno)));
   6396	}
   6397    }
   6398  XFREE (tmp_pathspec);
   6399
   6400  if (!has_symlinks)
   6401    {
   6402      return xstrdup (pathspec);
   6403    }
   6404
   6405  tmp_pathspec = realpath (pathspec, buf);
   6406  if (tmp_pathspec == 0)
   6407    {
   6408      lt_fatal (__FILE__, __LINE__,
   6409		"could not follow symlinks for %s", pathspec);
   6410    }
   6411  return xstrdup (tmp_pathspec);
   6412#endif
   6413}
   6414
   6415char *
   6416strendzap (char *str, const char *pat)
   6417{
   6418  size_t len, patlen;
   6419
   6420  assert (str != NULL);
   6421  assert (pat != NULL);
   6422
   6423  len = strlen (str);
   6424  patlen = strlen (pat);
   6425
   6426  if (patlen <= len)
   6427    {
   6428      str += len - patlen;
   6429      if (STREQ (str, pat))
   6430	*str = '\0';
   6431    }
   6432  return str;
   6433}
   6434
   6435void
   6436lt_debugprintf (const char *file, int line, const char *fmt, ...)
   6437{
   6438  va_list args;
   6439  if (lt_debug)
   6440    {
   6441      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
   6442      va_start (args, fmt);
   6443      (void) vfprintf (stderr, fmt, args);
   6444      va_end (args);
   6445    }
   6446}
   6447
   6448static void
   6449lt_error_core (int exit_status, const char *file,
   6450	       int line, const char *mode,
   6451	       const char *message, va_list ap)
   6452{
   6453  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
   6454  vfprintf (stderr, message, ap);
   6455  fprintf (stderr, ".\n");
   6456
   6457  if (exit_status >= 0)
   6458    exit (exit_status);
   6459}
   6460
   6461void
   6462lt_fatal (const char *file, int line, const char *message, ...)
   6463{
   6464  va_list ap;
   6465  va_start (ap, message);
   6466  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
   6467  va_end (ap);
   6468}
   6469
   6470static const char *
   6471nonnull (const char *s)
   6472{
   6473  return s ? s : "(null)";
   6474}
   6475
   6476static const char *
   6477nonempty (const char *s)
   6478{
   6479  return (s && !*s) ? "(empty)" : nonnull (s);
   6480}
   6481
   6482void
   6483lt_setenv (const char *name, const char *value)
   6484{
   6485  lt_debugprintf (__FILE__, __LINE__,
   6486		  "(lt_setenv) setting '%s' to '%s'\n",
   6487                  nonnull (name), nonnull (value));
   6488  {
   6489#ifdef HAVE_SETENV
   6490    /* always make a copy, for consistency with !HAVE_SETENV */
   6491    char *str = xstrdup (value);
   6492    setenv (name, str, 1);
   6493#else
   6494    size_t len = strlen (name) + 1 + strlen (value) + 1;
   6495    char *str = XMALLOC (char, len);
   6496    sprintf (str, "%s=%s", name, value);
   6497    if (putenv (str) != EXIT_SUCCESS)
   6498      {
   6499        XFREE (str);
   6500      }
   6501#endif
   6502  }
   6503}
   6504
   6505char *
   6506lt_extend_str (const char *orig_value, const char *add, int to_end)
   6507{
   6508  char *new_value;
   6509  if (orig_value && *orig_value)
   6510    {
   6511      size_t orig_value_len = strlen (orig_value);
   6512      size_t add_len = strlen (add);
   6513      new_value = XMALLOC (char, add_len + orig_value_len + 1);
   6514      if (to_end)
   6515        {
   6516          strcpy (new_value, orig_value);
   6517          strcpy (new_value + orig_value_len, add);
   6518        }
   6519      else
   6520        {
   6521          strcpy (new_value, add);
   6522          strcpy (new_value + add_len, orig_value);
   6523        }
   6524    }
   6525  else
   6526    {
   6527      new_value = xstrdup (add);
   6528    }
   6529  return new_value;
   6530}
   6531
   6532void
   6533lt_update_exe_path (const char *name, const char *value)
   6534{
   6535  lt_debugprintf (__FILE__, __LINE__,
   6536		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
   6537                  nonnull (name), nonnull (value));
   6538
   6539  if (name && *name && value && *value)
   6540    {
   6541      char *new_value = lt_extend_str (getenv (name), value, 0);
   6542      /* some systems can't cope with a ':'-terminated path #' */
   6543      size_t len = strlen (new_value);
   6544      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
   6545        {
   6546          new_value[--len] = '\0';
   6547        }
   6548      lt_setenv (name, new_value);
   6549      XFREE (new_value);
   6550    }
   6551}
   6552
   6553void
   6554lt_update_lib_path (const char *name, const char *value)
   6555{
   6556  lt_debugprintf (__FILE__, __LINE__,
   6557		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
   6558                  nonnull (name), nonnull (value));
   6559
   6560  if (name && *name && value && *value)
   6561    {
   6562      char *new_value = lt_extend_str (getenv (name), value, 0);
   6563      lt_setenv (name, new_value);
   6564      XFREE (new_value);
   6565    }
   6566}
   6567
   6568EOF
   6569	    case $host_os in
   6570	      mingw*)
   6571		cat <<"EOF"
   6572
   6573/* Prepares an argument vector before calling spawn().
   6574   Note that spawn() does not by itself call the command interpreter
   6575     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
   6576      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
   6577         GetVersionEx(&v);
   6578         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
   6579      }) ? "cmd.exe" : "command.com").
   6580   Instead it simply concatenates the arguments, separated by ' ', and calls
   6581   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
   6582   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
   6583   special way:
   6584   - Space and tab are interpreted as delimiters. They are not treated as
   6585     delimiters if they are surrounded by double quotes: "...".
   6586   - Unescaped double quotes are removed from the input. Their only effect is
   6587     that within double quotes, space and tab are treated like normal
   6588     characters.
   6589   - Backslashes not followed by double quotes are not special.
   6590   - But 2*n+1 backslashes followed by a double quote become
   6591     n backslashes followed by a double quote (n >= 0):
   6592       \" -> "
   6593       \\\" -> \"
   6594       \\\\\" -> \\"
   6595 */
   6596#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"
   6597#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"
   6598char **
   6599prepare_spawn (char **argv)
   6600{
   6601  size_t argc;
   6602  char **new_argv;
   6603  size_t i;
   6604
   6605  /* Count number of arguments.  */
   6606  for (argc = 0; argv[argc] != NULL; argc++)
   6607    ;
   6608
   6609  /* Allocate new argument vector.  */
   6610  new_argv = XMALLOC (char *, argc + 1);
   6611
   6612  /* Put quoted arguments into the new argument vector.  */
   6613  for (i = 0; i < argc; i++)
   6614    {
   6615      const char *string = argv[i];
   6616
   6617      if (string[0] == '\0')
   6618	new_argv[i] = xstrdup ("\"\"");
   6619      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
   6620	{
   6621	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
   6622	  size_t length;
   6623	  unsigned int backslashes;
   6624	  const char *s;
   6625	  char *quoted_string;
   6626	  char *p;
   6627
   6628	  length = 0;
   6629	  backslashes = 0;
   6630	  if (quote_around)
   6631	    length++;
   6632	  for (s = string; *s != '\0'; s++)
   6633	    {
   6634	      char c = *s;
   6635	      if (c == '"')
   6636		length += backslashes + 1;
   6637	      length++;
   6638	      if (c == '\\')
   6639		backslashes++;
   6640	      else
   6641		backslashes = 0;
   6642	    }
   6643	  if (quote_around)
   6644	    length += backslashes + 1;
   6645
   6646	  quoted_string = XMALLOC (char, length + 1);
   6647
   6648	  p = quoted_string;
   6649	  backslashes = 0;
   6650	  if (quote_around)
   6651	    *p++ = '"';
   6652	  for (s = string; *s != '\0'; s++)
   6653	    {
   6654	      char c = *s;
   6655	      if (c == '"')
   6656		{
   6657		  unsigned int j;
   6658		  for (j = backslashes + 1; j > 0; j--)
   6659		    *p++ = '\\';
   6660		}
   6661	      *p++ = c;
   6662	      if (c == '\\')
   6663		backslashes++;
   6664	      else
   6665		backslashes = 0;
   6666	    }
   6667	  if (quote_around)
   6668	    {
   6669	      unsigned int j;
   6670	      for (j = backslashes; j > 0; j--)
   6671		*p++ = '\\';
   6672	      *p++ = '"';
   6673	    }
   6674	  *p = '\0';
   6675
   6676	  new_argv[i] = quoted_string;
   6677	}
   6678      else
   6679	new_argv[i] = (char *) string;
   6680    }
   6681  new_argv[argc] = NULL;
   6682
   6683  return new_argv;
   6684}
   6685EOF
   6686		;;
   6687	    esac
   6688
   6689            cat <<"EOF"
   6690void lt_dump_script (FILE* f)
   6691{
   6692EOF
   6693	    func_emit_wrapper yes |
   6694	      $SED -n -e '
   6695s/^\(.\{79\}\)\(..*\)/\1\
   6696\2/
   6697h
   6698s/\([\\"]\)/\\\1/g
   6699s/$/\\n/
   6700s/\([^\n]*\).*/  fputs ("\1", f);/p
   6701g
   6702D'
   6703            cat <<"EOF"
   6704}
   6705EOF
   6706}
   6707# end: func_emit_cwrapperexe_src
   6708
   6709# func_win32_import_lib_p ARG
   6710# True if ARG is an import lib, as indicated by $file_magic_cmd
   6711func_win32_import_lib_p ()
   6712{
   6713    $debug_cmd
   6714
   6715    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
   6716    *import*) : ;;
   6717    *) false ;;
   6718    esac
   6719}
   6720
   6721# func_suncc_cstd_abi
   6722# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
   6723# Several compiler flags select an ABI that is incompatible with the
   6724# Cstd library. Avoid specifying it if any are in CXXFLAGS.
   6725func_suncc_cstd_abi ()
   6726{
   6727    $debug_cmd
   6728
   6729    case " $compile_command " in
   6730    *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
   6731      suncc_use_cstd_abi=no
   6732      ;;
   6733    *)
   6734      suncc_use_cstd_abi=yes
   6735      ;;
   6736    esac
   6737}
   6738
   6739# func_mode_link arg...
   6740func_mode_link ()
   6741{
   6742    $debug_cmd
   6743
   6744    case $host in
   6745    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
   6746      # It is impossible to link a dll without this setting, and
   6747      # we shouldn't force the makefile maintainer to figure out
   6748      # what system we are compiling for in order to pass an extra
   6749      # flag for every libtool invocation.
   6750      # allow_undefined=no
   6751
   6752      # FIXME: Unfortunately, there are problems with the above when trying
   6753      # to make a dll that has undefined symbols, in which case not
   6754      # even a static library is built.  For now, we need to specify
   6755      # -no-undefined on the libtool link line when we can be certain
   6756      # that all symbols are satisfied, otherwise we get a static library.
   6757      allow_undefined=yes
   6758      ;;
   6759    *)
   6760      allow_undefined=yes
   6761      ;;
   6762    esac
   6763    libtool_args=$nonopt
   6764    base_compile="$nonopt $@"
   6765    compile_command=$nonopt
   6766    finalize_command=$nonopt
   6767
   6768    compile_rpath=
   6769    finalize_rpath=
   6770    compile_shlibpath=
   6771    finalize_shlibpath=
   6772    convenience=
   6773    old_convenience=
   6774    deplibs=
   6775    old_deplibs=
   6776    compiler_flags=
   6777    linker_flags=
   6778    dllsearchpath=
   6779    lib_search_path=`pwd`
   6780    inst_prefix_dir=
   6781    new_inherited_linker_flags=
   6782
   6783    avoid_version=no
   6784    bindir=
   6785    dlfiles=
   6786    dlprefiles=
   6787    dlself=no
   6788    export_dynamic=no
   6789    export_symbols=
   6790    export_symbols_regex=
   6791    generated=
   6792    libobjs=
   6793    ltlibs=
   6794    module=no
   6795    no_install=no
   6796    objs=
   6797    os2dllname=
   6798    non_pic_objects=
   6799    precious_files_regex=
   6800    prefer_static_libs=no
   6801    preload=false
   6802    prev=
   6803    prevarg=
   6804    release=
   6805    rpath=
   6806    xrpath=
   6807    perm_rpath=
   6808    temp_rpath=
   6809    thread_safe=no
   6810    vinfo=
   6811    vinfo_number=no
   6812    weak_libs=
   6813    single_module=$wl-single_module
   6814    func_infer_tag $base_compile
   6815
   6816    # We need to know -static, to get the right output filenames.
   6817    for arg
   6818    do
   6819      case $arg in
   6820      -shared)
   6821	test yes != "$build_libtool_libs" \
   6822	  && func_fatal_configuration "cannot build a shared library"
   6823	build_old_libs=no
   6824	break
   6825	;;
   6826      -all-static | -static | -static-libtool-libs)
   6827	case $arg in
   6828	-all-static)
   6829	  if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
   6830	    func_warning "complete static linking is impossible in this configuration"
   6831	  fi
   6832	  if test -n "$link_static_flag"; then
   6833	    dlopen_self=$dlopen_self_static
   6834	  fi
   6835	  prefer_static_libs=yes
   6836	  ;;
   6837	-static)
   6838	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
   6839	    dlopen_self=$dlopen_self_static
   6840	  fi
   6841	  prefer_static_libs=built
   6842	  ;;
   6843	-static-libtool-libs)
   6844	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
   6845	    dlopen_self=$dlopen_self_static
   6846	  fi
   6847	  prefer_static_libs=yes
   6848	  ;;
   6849	esac
   6850	build_libtool_libs=no
   6851	build_old_libs=yes
   6852	break
   6853	;;
   6854      esac
   6855    done
   6856
   6857    # See if our shared archives depend on static archives.
   6858    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
   6859
   6860    # Go through the arguments, transforming them on the way.
   6861    while test "$#" -gt 0; do
   6862      arg=$1
   6863      shift
   6864      func_quote_arg pretty,unquoted "$arg"
   6865      qarg=$func_quote_arg_unquoted_result
   6866      func_append libtool_args " $func_quote_arg_result"
   6867
   6868      # If the previous option needs an argument, assign it.
   6869      if test -n "$prev"; then
   6870	case $prev in
   6871	output)
   6872	  func_append compile_command " @OUTPUT@"
   6873	  func_append finalize_command " @OUTPUT@"
   6874	  ;;
   6875	esac
   6876
   6877	case $prev in
   6878	bindir)
   6879	  bindir=$arg
   6880	  prev=
   6881	  continue
   6882	  ;;
   6883	dlfiles|dlprefiles)
   6884	  $preload || {
   6885	    # Add the symbol object into the linking commands.
   6886	    func_append compile_command " @SYMFILE@"
   6887	    func_append finalize_command " @SYMFILE@"
   6888	    preload=:
   6889	  }
   6890	  case $arg in
   6891	  *.la | *.lo) ;;  # We handle these cases below.
   6892	  force)
   6893	    if test no = "$dlself"; then
   6894	      dlself=needless
   6895	      export_dynamic=yes
   6896	    fi
   6897	    prev=
   6898	    continue
   6899	    ;;
   6900	  self)
   6901	    if test dlprefiles = "$prev"; then
   6902	      dlself=yes
   6903	    elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
   6904	      dlself=yes
   6905	    else
   6906	      dlself=needless
   6907	      export_dynamic=yes
   6908	    fi
   6909	    prev=
   6910	    continue
   6911	    ;;
   6912	  *)
   6913	    if test dlfiles = "$prev"; then
   6914	      func_append dlfiles " $arg"
   6915	    else
   6916	      func_append dlprefiles " $arg"
   6917	    fi
   6918	    prev=
   6919	    continue
   6920	    ;;
   6921	  esac
   6922	  ;;
   6923	expsyms)
   6924	  export_symbols=$arg
   6925	  test -f "$arg" \
   6926	    || func_fatal_error "symbol file '$arg' does not exist"
   6927	  prev=
   6928	  continue
   6929	  ;;
   6930	expsyms_regex)
   6931	  export_symbols_regex=$arg
   6932	  prev=
   6933	  continue
   6934	  ;;
   6935	framework)
   6936	  case $host in
   6937	    *-*-darwin*)
   6938	      case "$deplibs " in
   6939		*" $qarg.ltframework "*) ;;
   6940		*) func_append deplibs " $qarg.ltframework" # this is fixed later
   6941		   ;;
   6942	      esac
   6943	      ;;
   6944	  esac
   6945	  prev=
   6946	  continue
   6947	  ;;
   6948	inst_prefix)
   6949	  inst_prefix_dir=$arg
   6950	  prev=
   6951	  continue
   6952	  ;;
   6953	mllvm)
   6954	  # Clang does not use LLVM to link, so we can simply discard any
   6955	  # '-mllvm $arg' options when doing the link step.
   6956	  prev=
   6957	  continue
   6958	  ;;
   6959	objectlist)
   6960	  if test -f "$arg"; then
   6961	    save_arg=$arg
   6962	    moreargs=
   6963	    for fil in `cat "$save_arg"`
   6964	    do
   6965#	      func_append moreargs " $fil"
   6966	      arg=$fil
   6967	      # A libtool-controlled object.
   6968
   6969	      # Check to see that this really is a libtool object.
   6970	      if func_lalib_unsafe_p "$arg"; then
   6971		pic_object=
   6972		non_pic_object=
   6973
   6974		# Read the .lo file
   6975		func_source "$arg"
   6976
   6977		if test -z "$pic_object" ||
   6978		   test -z "$non_pic_object" ||
   6979		   test none = "$pic_object" &&
   6980		   test none = "$non_pic_object"; then
   6981		  func_fatal_error "cannot find name of object for '$arg'"
   6982		fi
   6983
   6984		# Extract subdirectory from the argument.
   6985		func_dirname "$arg" "/" ""
   6986		xdir=$func_dirname_result
   6987
   6988		if test none != "$pic_object"; then
   6989		  # Prepend the subdirectory the object is found in.
   6990		  pic_object=$xdir$pic_object
   6991
   6992		  if test dlfiles = "$prev"; then
   6993		    if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
   6994		      func_append dlfiles " $pic_object"
   6995		      prev=
   6996		      continue
   6997		    else
   6998		      # If libtool objects are unsupported, then we need to preload.
   6999		      prev=dlprefiles
   7000		    fi
   7001		  fi
   7002
   7003		  # CHECK ME:  I think I busted this.  -Ossama
   7004		  if test dlprefiles = "$prev"; then
   7005		    # Preload the old-style object.
   7006		    func_append dlprefiles " $pic_object"
   7007		    prev=
   7008		  fi
   7009
   7010		  # A PIC object.
   7011		  func_append libobjs " $pic_object"
   7012		  arg=$pic_object
   7013		fi
   7014
   7015		# Non-PIC object.
   7016		if test none != "$non_pic_object"; then
   7017		  # Prepend the subdirectory the object is found in.
   7018		  non_pic_object=$xdir$non_pic_object
   7019
   7020		  # A standard non-PIC object
   7021		  func_append non_pic_objects " $non_pic_object"
   7022		  if test -z "$pic_object" || test none = "$pic_object"; then
   7023		    arg=$non_pic_object
   7024		  fi
   7025		else
   7026		  # If the PIC object exists, use it instead.
   7027		  # $xdir was prepended to $pic_object above.
   7028		  non_pic_object=$pic_object
   7029		  func_append non_pic_objects " $non_pic_object"
   7030		fi
   7031	      else
   7032		# Only an error if not doing a dry-run.
   7033		if $opt_dry_run; then
   7034		  # Extract subdirectory from the argument.
   7035		  func_dirname "$arg" "/" ""
   7036		  xdir=$func_dirname_result
   7037
   7038		  func_lo2o "$arg"
   7039		  pic_object=$xdir$objdir/$func_lo2o_result
   7040		  non_pic_object=$xdir$func_lo2o_result
   7041		  func_append libobjs " $pic_object"
   7042		  func_append non_pic_objects " $non_pic_object"
   7043	        else
   7044		  func_fatal_error "'$arg' is not a valid libtool object"
   7045		fi
   7046	      fi
   7047	    done
   7048	  else
   7049	    func_fatal_error "link input file '$arg' does not exist"
   7050	  fi
   7051	  arg=$save_arg
   7052	  prev=
   7053	  continue
   7054	  ;;
   7055	os2dllname)
   7056	  os2dllname=$arg
   7057	  prev=
   7058	  continue
   7059	  ;;
   7060	precious_regex)
   7061	  precious_files_regex=$arg
   7062	  prev=
   7063	  continue
   7064	  ;;
   7065	release)
   7066	  release=-$arg
   7067	  prev=
   7068	  continue
   7069	  ;;
   7070	rpath | xrpath)
   7071	  # We need an absolute path.
   7072	  case $arg in
   7073	  [\\/]* | [A-Za-z]:[\\/]*) ;;
   7074	  *)
   7075	    func_fatal_error "only absolute run-paths are allowed"
   7076	    ;;
   7077	  esac
   7078	  if test rpath = "$prev"; then
   7079	    case "$rpath " in
   7080	    *" $arg "*) ;;
   7081	    *) func_append rpath " $arg" ;;
   7082	    esac
   7083	  else
   7084	    case "$xrpath " in
   7085	    *" $arg "*) ;;
   7086	    *) func_append xrpath " $arg" ;;
   7087	    esac
   7088	  fi
   7089	  prev=
   7090	  continue
   7091	  ;;
   7092	shrext)
   7093	  shrext_cmds=$arg
   7094	  prev=
   7095	  continue
   7096	  ;;
   7097	weak)
   7098	  func_append weak_libs " $arg"
   7099	  prev=
   7100	  continue
   7101	  ;;
   7102	xassembler)
   7103	  func_append compiler_flags " -Xassembler $qarg"
   7104	  prev=
   7105	  func_append compile_command " -Xassembler $qarg"
   7106	  func_append finalize_command " -Xassembler $qarg"
   7107	  continue
   7108	  ;;
   7109	xcclinker)
   7110	  func_append linker_flags " $qarg"
   7111	  func_append compiler_flags " $qarg"
   7112	  prev=
   7113	  func_append compile_command " $qarg"
   7114	  func_append finalize_command " $qarg"
   7115	  continue
   7116	  ;;
   7117	xcompiler)
   7118	  func_append compiler_flags " $qarg"
   7119	  prev=
   7120	  func_append compile_command " $qarg"
   7121	  func_append finalize_command " $qarg"
   7122	  continue
   7123	  ;;
   7124	xlinker)
   7125	  func_append linker_flags " $qarg"
   7126	  func_append compiler_flags " $wl$qarg"
   7127	  prev=
   7128	  func_append compile_command " $wl$qarg"
   7129	  func_append finalize_command " $wl$qarg"
   7130	  continue
   7131	  ;;
   7132	*)
   7133	  eval "$prev=\"\$arg\""
   7134	  prev=
   7135	  continue
   7136	  ;;
   7137	esac
   7138      fi # test -n "$prev"
   7139
   7140      prevarg=$arg
   7141
   7142      case $arg in
   7143      -all-static)
   7144	if test -n "$link_static_flag"; then
   7145	  # See comment for -static flag below, for more details.
   7146	  func_append compile_command " $link_static_flag"
   7147	  func_append finalize_command " $link_static_flag"
   7148	fi
   7149	continue
   7150	;;
   7151
   7152      -allow-undefined)
   7153	# FIXME: remove this flag sometime in the future.
   7154	func_fatal_error "'-allow-undefined' must not be used because it is the default"
   7155	;;
   7156
   7157      -avoid-version)
   7158	avoid_version=yes
   7159	continue
   7160	;;
   7161
   7162      -bindir)
   7163	prev=bindir
   7164	continue
   7165	;;
   7166
   7167      -dlopen)
   7168	prev=dlfiles
   7169	continue
   7170	;;
   7171
   7172      -dlpreopen)
   7173	prev=dlprefiles
   7174	continue
   7175	;;
   7176
   7177      -export-dynamic)
   7178	export_dynamic=yes
   7179	continue
   7180	;;
   7181
   7182      -export-symbols | -export-symbols-regex)
   7183	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
   7184	  func_fatal_error "more than one -exported-symbols argument is not allowed"
   7185	fi
   7186	if test X-export-symbols = "X$arg"; then
   7187	  prev=expsyms
   7188	else
   7189	  prev=expsyms_regex
   7190	fi
   7191	continue
   7192	;;
   7193
   7194      -framework)
   7195	prev=framework
   7196	continue
   7197	;;
   7198
   7199      -inst-prefix-dir)
   7200	prev=inst_prefix
   7201	continue
   7202	;;
   7203
   7204      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
   7205      # so, if we see these flags be careful not to treat them like -L
   7206      -L[A-Z][A-Z]*:*)
   7207	case $with_gcc/$host in
   7208	no/*-*-irix* | /*-*-irix*)
   7209	  func_append compile_command " $arg"
   7210	  func_append finalize_command " $arg"
   7211	  ;;
   7212	esac
   7213	continue
   7214	;;
   7215
   7216      -L*)
   7217	func_stripname "-L" '' "$arg"
   7218	if test -z "$func_stripname_result"; then
   7219	  if test "$#" -gt 0; then
   7220	    func_fatal_error "require no space between '-L' and '$1'"
   7221	  else
   7222	    func_fatal_error "need path for '-L' option"
   7223	  fi
   7224	fi
   7225	func_resolve_sysroot "$func_stripname_result"
   7226	dir=$func_resolve_sysroot_result
   7227	# We need an absolute path.
   7228	case $dir in
   7229	[\\/]* | [A-Za-z]:[\\/]*) ;;
   7230	*)
   7231	  absdir=`cd "$dir" && pwd`
   7232	  test -z "$absdir" && \
   7233	    func_fatal_error "cannot determine absolute directory name of '$dir'"
   7234	  dir=$absdir
   7235	  ;;
   7236	esac
   7237	case "$deplibs " in
   7238	*" -L$dir "* | *" $arg "*)
   7239	  # Will only happen for absolute or sysroot arguments
   7240	  ;;
   7241	*)
   7242	  # Preserve sysroot, but never include relative directories
   7243	  case $dir in
   7244	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
   7245	    *) func_append deplibs " -L$dir" ;;
   7246	  esac
   7247	  func_append lib_search_path " $dir"
   7248	  ;;
   7249	esac
   7250	case $host in
   7251	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
   7252	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
   7253	  case :$dllsearchpath: in
   7254	  *":$dir:"*) ;;
   7255	  ::) dllsearchpath=$dir;;
   7256	  *) func_append dllsearchpath ":$dir";;
   7257	  esac
   7258	  case :$dllsearchpath: in
   7259	  *":$testbindir:"*) ;;
   7260	  ::) dllsearchpath=$testbindir;;
   7261	  *) func_append dllsearchpath ":$testbindir";;
   7262	  esac
   7263	  ;;
   7264	esac
   7265	continue
   7266	;;
   7267
   7268      -l*)
   7269	if test X-lc = "X$arg" || test X-lm = "X$arg"; then
   7270	  case $host in
   7271	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
   7272	    # These systems don't actually have a C or math library (as such)
   7273	    continue
   7274	    ;;
   7275	  *-*-os2*)
   7276	    # These systems don't actually have a C library (as such)
   7277	    test X-lc = "X$arg" && continue
   7278	    ;;
   7279	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
   7280	    # Do not include libc due to us having libc/libc_r.
   7281	    test X-lc = "X$arg" && continue
   7282	    ;;
   7283	  *-*-rhapsody* | *-*-darwin1.[012])
   7284	    # Rhapsody C and math libraries are in the System framework
   7285	    func_append deplibs " System.ltframework"
   7286	    continue
   7287	    ;;
   7288	  *-*-sco3.2v5* | *-*-sco5v6*)
   7289	    # Causes problems with __ctype
   7290	    test X-lc = "X$arg" && continue
   7291	    ;;
   7292	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
   7293	    # Compiler inserts libc in the correct place for threads to work
   7294	    test X-lc = "X$arg" && continue
   7295	    ;;
   7296	  esac
   7297	elif test X-lc_r = "X$arg"; then
   7298	 case $host in
   7299	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
   7300	   # Do not include libc_r directly, use -pthread flag.
   7301	   continue
   7302	   ;;
   7303	 esac
   7304	fi
   7305	func_append deplibs " $arg"
   7306	continue
   7307	;;
   7308
   7309      -mllvm)
   7310	prev=mllvm
   7311	continue
   7312	;;
   7313
   7314      -module)
   7315	module=yes
   7316	continue
   7317	;;
   7318
   7319      # Tru64 UNIX uses -model [arg] to determine the layout of C++
   7320      # classes, name mangling, and exception handling.
   7321      # Darwin uses the -arch flag to determine output architecture.
   7322      -model|-arch|-isysroot|--sysroot)
   7323	func_append compiler_flags " $arg"
   7324	func_append compile_command " $arg"
   7325	func_append finalize_command " $arg"
   7326	prev=xcompiler
   7327	continue
   7328	;;
   7329     # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199.
   7330     -pthread)
   7331	case $host in
   7332	  *solaris2*) ;;
   7333	  *)
   7334	    case "$new_inherited_linker_flags " in
   7335	        *" $arg "*) ;;
   7336	        * ) func_append new_inherited_linker_flags " $arg" ;;
   7337	    esac
   7338	  ;;
   7339	esac
   7340	continue
   7341	;;
   7342      -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
   7343      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
   7344	func_append compiler_flags " $arg"
   7345	func_append compile_command " $arg"
   7346	func_append finalize_command " $arg"
   7347	case "$new_inherited_linker_flags " in
   7348	    *" $arg "*) ;;
   7349	    * ) func_append new_inherited_linker_flags " $arg" ;;
   7350	esac
   7351	continue
   7352	;;
   7353
   7354      -multi_module)
   7355	single_module=$wl-multi_module
   7356	continue
   7357	;;
   7358
   7359      -no-fast-install)
   7360	fast_install=no
   7361	continue
   7362	;;
   7363
   7364      -no-install)
   7365	case $host in
   7366	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
   7367	  # The PATH hackery in wrapper scripts is required on Windows
   7368	  # and Darwin in order for the loader to find any dlls it needs.
   7369	  func_warning "'-no-install' is ignored for $host"
   7370	  func_warning "assuming '-no-fast-install' instead"
   7371	  fast_install=no
   7372	  ;;
   7373	*) no_install=yes ;;
   7374	esac
   7375	continue
   7376	;;
   7377
   7378      -no-undefined)
   7379	allow_undefined=no
   7380	continue
   7381	;;
   7382
   7383      -objectlist)
   7384	prev=objectlist
   7385	continue
   7386	;;
   7387
   7388      -os2dllname)
   7389	prev=os2dllname
   7390	continue
   7391	;;
   7392
   7393      -o) prev=output ;;
   7394
   7395      -precious-files-regex)
   7396	prev=precious_regex
   7397	continue
   7398	;;
   7399
   7400      -release)
   7401	prev=release
   7402	continue
   7403	;;
   7404
   7405      -rpath)
   7406	prev=rpath
   7407	continue
   7408	;;
   7409
   7410      -R)
   7411	prev=xrpath
   7412	continue
   7413	;;
   7414
   7415      -R*)
   7416	func_stripname '-R' '' "$arg"
   7417	dir=$func_stripname_result
   7418	# We need an absolute path.
   7419	case $dir in
   7420	[\\/]* | [A-Za-z]:[\\/]*) ;;
   7421	=*)
   7422	  func_stripname '=' '' "$dir"
   7423	  dir=$lt_sysroot$func_stripname_result
   7424	  ;;
   7425	*)
   7426	  func_fatal_error "only absolute run-paths are allowed"
   7427	  ;;
   7428	esac
   7429	case "$xrpath " in
   7430	*" $dir "*) ;;
   7431	*) func_append xrpath " $dir" ;;
   7432	esac
   7433	continue
   7434	;;
   7435
   7436      -shared)
   7437	# The effects of -shared are defined in a previous loop.
   7438	continue
   7439	;;
   7440
   7441      -shrext)
   7442	prev=shrext
   7443	continue
   7444	;;
   7445
   7446      -static | -static-libtool-libs)
   7447	# The effects of -static are defined in a previous loop.
   7448	# We used to do the same as -all-static on platforms that
   7449	# didn't have a PIC flag, but the assumption that the effects
   7450	# would be equivalent was wrong.  It would break on at least
   7451	# Digital Unix and AIX.
   7452	continue
   7453	;;
   7454
   7455      -thread-safe)
   7456	thread_safe=yes
   7457	continue
   7458	;;
   7459
   7460      -version-info)
   7461	prev=vinfo
   7462	continue
   7463	;;
   7464
   7465      -version-number)
   7466	prev=vinfo
   7467	vinfo_number=yes
   7468	continue
   7469	;;
   7470
   7471      -weak)
   7472        prev=weak
   7473	continue
   7474	;;
   7475
   7476      -Wc,*)
   7477	func_stripname '-Wc,' '' "$arg"
   7478	args=$func_stripname_result
   7479	arg=
   7480	save_ifs=$IFS; IFS=,
   7481	for flag in $args; do
   7482	  IFS=$save_ifs
   7483          func_quote_arg pretty "$flag"
   7484	  func_append arg " $func_quote_arg_result"
   7485	  func_append compiler_flags " $func_quote_arg_result"
   7486	done
   7487	IFS=$save_ifs
   7488	func_stripname ' ' '' "$arg"
   7489	arg=$func_stripname_result
   7490	;;
   7491
   7492      -Wl,*)
   7493	func_stripname '-Wl,' '' "$arg"
   7494	args=$func_stripname_result
   7495	arg=
   7496	save_ifs=$IFS; IFS=,
   7497	for flag in $args; do
   7498	  IFS=$save_ifs
   7499          func_quote_arg pretty "$flag"
   7500	  func_append arg " $wl$func_quote_arg_result"
   7501	  func_append compiler_flags " $wl$func_quote_arg_result"
   7502	  func_append linker_flags " $func_quote_arg_result"
   7503	done
   7504	IFS=$save_ifs
   7505	func_stripname ' ' '' "$arg"
   7506	arg=$func_stripname_result
   7507	;;
   7508
   7509      -Xassembler)
   7510        prev=xassembler
   7511        continue
   7512        ;;
   7513
   7514      -Xcompiler)
   7515	prev=xcompiler
   7516	continue
   7517	;;
   7518
   7519      -Xlinker)
   7520	prev=xlinker
   7521	continue
   7522	;;
   7523
   7524      -XCClinker)
   7525	prev=xcclinker
   7526	continue
   7527	;;
   7528
   7529      # -msg_* for osf cc
   7530      -msg_*)
   7531	func_quote_arg pretty "$arg"
   7532	arg=$func_quote_arg_result
   7533	;;
   7534
   7535      # Flags to be passed through unchanged, with rationale:
   7536      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
   7537      # -r[0-9][0-9]*        specify processor for the SGI compiler
   7538      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
   7539      # +DA*, +DD*           enable 64-bit mode for the HP compiler
   7540      # -q*                  compiler args for the IBM compiler
   7541      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
   7542      # -F/path              path to uninstalled frameworks, gcc on darwin
   7543      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
   7544      # -fstack-protector*   stack protector flags for GCC
   7545      # @file                GCC response files
   7546      # -tp=*                Portland pgcc target processor selection
   7547      # --sysroot=*          for sysroot support
   7548      # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
   7549      # -specs=*             GCC specs files
   7550      # -stdlib=*            select c++ std lib with clang
   7551      # -fsanitize=*         Clang/GCC memory and address sanitizer
   7552      # -fuse-ld=*           Linker select flags for GCC
   7553      # -Wa,*                Pass flags directly to the assembler
   7554      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
   7555      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
   7556      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
   7557      -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*)
   7558        func_quote_arg pretty "$arg"
   7559	arg=$func_quote_arg_result
   7560        func_append compile_command " $arg"
   7561        func_append finalize_command " $arg"
   7562        func_append compiler_flags " $arg"
   7563        continue
   7564        ;;
   7565
   7566      -Z*)
   7567        if test os2 = "`expr $host : '.*\(os2\)'`"; then
   7568          # OS/2 uses -Zxxx to specify OS/2-specific options
   7569	  compiler_flags="$compiler_flags $arg"
   7570	  func_append compile_command " $arg"
   7571	  func_append finalize_command " $arg"
   7572	  case $arg in
   7573	  -Zlinker | -Zstack)
   7574	    prev=xcompiler
   7575	    ;;
   7576	  esac
   7577	  continue
   7578        else
   7579	  # Otherwise treat like 'Some other compiler flag' below
   7580	  func_quote_arg pretty "$arg"
   7581	  arg=$func_quote_arg_result
   7582        fi
   7583	;;
   7584
   7585      # Some other compiler flag.
   7586      -* | +*)
   7587        func_quote_arg pretty "$arg"
   7588	arg=$func_quote_arg_result
   7589	;;
   7590
   7591      *.$objext)
   7592	# A standard object.
   7593	func_append objs " $arg"
   7594	;;
   7595
   7596      *.lo)
   7597	# A libtool-controlled object.
   7598
   7599	# Check to see that this really is a libtool object.
   7600	if func_lalib_unsafe_p "$arg"; then
   7601	  pic_object=
   7602	  non_pic_object=
   7603
   7604	  # Read the .lo file
   7605	  func_source "$arg"
   7606
   7607	  if test -z "$pic_object" ||
   7608	     test -z "$non_pic_object" ||
   7609	     test none = "$pic_object" &&
   7610	     test none = "$non_pic_object"; then
   7611	    func_fatal_error "cannot find name of object for '$arg'"
   7612	  fi
   7613
   7614	  # Extract subdirectory from the argument.
   7615	  func_dirname "$arg" "/" ""
   7616	  xdir=$func_dirname_result
   7617
   7618	  test none = "$pic_object" || {
   7619	    # Prepend the subdirectory the object is found in.
   7620	    pic_object=$xdir$pic_object
   7621
   7622	    if test dlfiles = "$prev"; then
   7623	      if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
   7624		func_append dlfiles " $pic_object"
   7625		prev=
   7626		continue
   7627	      else
   7628		# If libtool objects are unsupported, then we need to preload.
   7629		prev=dlprefiles
   7630	      fi
   7631	    fi
   7632
   7633	    # CHECK ME:  I think I busted this.  -Ossama
   7634	    if test dlprefiles = "$prev"; then
   7635	      # Preload the old-style object.
   7636	      func_append dlprefiles " $pic_object"
   7637	      prev=
   7638	    fi
   7639
   7640	    # A PIC object.
   7641	    func_append libobjs " $pic_object"
   7642	    arg=$pic_object
   7643	  }
   7644
   7645	  # Non-PIC object.
   7646	  if test none != "$non_pic_object"; then
   7647	    # Prepend the subdirectory the object is found in.
   7648	    non_pic_object=$xdir$non_pic_object
   7649
   7650	    # A standard non-PIC object
   7651	    func_append non_pic_objects " $non_pic_object"
   7652	    if test -z "$pic_object" || test none = "$pic_object"; then
   7653	      arg=$non_pic_object
   7654	    fi
   7655	  else
   7656	    # If the PIC object exists, use it instead.
   7657	    # $xdir was prepended to $pic_object above.
   7658	    non_pic_object=$pic_object
   7659	    func_append non_pic_objects " $non_pic_object"
   7660	  fi
   7661	else
   7662	  # Only an error if not doing a dry-run.
   7663	  if $opt_dry_run; then
   7664	    # Extract subdirectory from the argument.
   7665	    func_dirname "$arg" "/" ""
   7666	    xdir=$func_dirname_result
   7667
   7668	    func_lo2o "$arg"
   7669	    pic_object=$xdir$objdir/$func_lo2o_result
   7670	    non_pic_object=$xdir$func_lo2o_result
   7671	    func_append libobjs " $pic_object"
   7672	    func_append non_pic_objects " $non_pic_object"
   7673	  else
   7674	    func_fatal_error "'$arg' is not a valid libtool object"
   7675	  fi
   7676	fi
   7677	;;
   7678
   7679      *.$libext)
   7680	# An archive.
   7681	func_append deplibs " $arg"
   7682	func_append old_deplibs " $arg"
   7683	continue
   7684	;;
   7685
   7686      *.la)
   7687	# A libtool-controlled library.
   7688
   7689	func_resolve_sysroot "$arg"
   7690	if test dlfiles = "$prev"; then
   7691	  # This library was specified with -dlopen.
   7692	  func_append dlfiles " $func_resolve_sysroot_result"
   7693	  prev=
   7694	elif test dlprefiles = "$prev"; then
   7695	  # The library was specified with -dlpreopen.
   7696	  func_append dlprefiles " $func_resolve_sysroot_result"
   7697	  prev=
   7698	else
   7699	  func_append deplibs " $func_resolve_sysroot_result"
   7700	fi
   7701	continue
   7702	;;
   7703
   7704      # Some other compiler argument.
   7705      *)
   7706	# Unknown arguments in both finalize_command and compile_command need
   7707	# to be aesthetically quoted because they are evaled later.
   7708	func_quote_arg pretty "$arg"
   7709	arg=$func_quote_arg_result
   7710	;;
   7711      esac # arg
   7712
   7713      # Now actually substitute the argument into the commands.
   7714      if test -n "$arg"; then
   7715	func_append compile_command " $arg"
   7716	func_append finalize_command " $arg"
   7717      fi
   7718    done # argument parsing loop
   7719
   7720    test -n "$prev" && \
   7721      func_fatal_help "the '$prevarg' option requires an argument"
   7722
   7723    if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
   7724      eval arg=\"$export_dynamic_flag_spec\"
   7725      func_append compile_command " $arg"
   7726      func_append finalize_command " $arg"
   7727    fi
   7728
   7729    oldlibs=
   7730    # calculate the name of the file, without its directory
   7731    func_basename "$output"
   7732    outputname=$func_basename_result
   7733    libobjs_save=$libobjs
   7734
   7735    if test -n "$shlibpath_var"; then
   7736      # get the directories listed in $shlibpath_var
   7737      eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
   7738    else
   7739      shlib_search_path=
   7740    fi
   7741    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
   7742    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
   7743
   7744    # Definition is injected by LT_CONFIG during libtool generation.
   7745    func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
   7746
   7747    func_dirname "$output" "/" ""
   7748    output_objdir=$func_dirname_result$objdir
   7749    func_to_tool_file "$output_objdir/"
   7750    tool_output_objdir=$func_to_tool_file_result
   7751    # Create the object directory.
   7752    func_mkdir_p "$output_objdir"
   7753
   7754    # Determine the type of output
   7755    case $output in
   7756    "")
   7757      func_fatal_help "you must specify an output file"
   7758      ;;
   7759    *.$libext) linkmode=oldlib ;;
   7760    *.lo | *.$objext) linkmode=obj ;;
   7761    *.la) linkmode=lib ;;
   7762    *) linkmode=prog ;; # Anything else should be a program.
   7763    esac
   7764
   7765    specialdeplibs=
   7766
   7767    libs=
   7768    # Find all interdependent deplibs by searching for libraries
   7769    # that are linked more than once (e.g. -la -lb -la)
   7770    for deplib in $deplibs; do
   7771      if $opt_preserve_dup_deps; then
   7772	case "$libs " in
   7773	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
   7774	esac
   7775      fi
   7776      func_append libs " $deplib"
   7777    done
   7778
   7779    if test lib = "$linkmode"; then
   7780      libs="$predeps $libs $compiler_lib_search_path $postdeps"
   7781
   7782      # Compute libraries that are listed more than once in $predeps
   7783      # $postdeps and mark them as special (i.e., whose duplicates are
   7784      # not to be eliminated).
   7785      pre_post_deps=
   7786      if $opt_duplicate_compiler_generated_deps; then
   7787	for pre_post_dep in $predeps $postdeps; do
   7788	  case "$pre_post_deps " in
   7789	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
   7790	  esac
   7791	  func_append pre_post_deps " $pre_post_dep"
   7792	done
   7793      fi
   7794      pre_post_deps=
   7795    fi
   7796
   7797    deplibs=
   7798    newdependency_libs=
   7799    newlib_search_path=
   7800    need_relink=no # whether we're linking any uninstalled libtool libraries
   7801    notinst_deplibs= # not-installed libtool libraries
   7802    notinst_path= # paths that contain not-installed libtool libraries
   7803
   7804    case $linkmode in
   7805    lib)
   7806	passes="conv dlpreopen link"
   7807	for file in $dlfiles $dlprefiles; do
   7808	  case $file in
   7809	  *.la) ;;
   7810	  *)
   7811	    func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
   7812	    ;;
   7813	  esac
   7814	done
   7815	;;
   7816    prog)
   7817	compile_deplibs=
   7818	finalize_deplibs=
   7819	alldeplibs=false
   7820	newdlfiles=
   7821	newdlprefiles=
   7822	passes="conv scan dlopen dlpreopen link"
   7823	;;
   7824    *)  passes="conv"
   7825	;;
   7826    esac
   7827
   7828    for pass in $passes; do
   7829      # The preopen pass in lib mode reverses $deplibs; put it back here
   7830      # so that -L comes before libs that need it for instance...
   7831      if test lib,link = "$linkmode,$pass"; then
   7832	## FIXME: Find the place where the list is rebuilt in the wrong
   7833	##        order, and fix it there properly
   7834        tmp_deplibs=
   7835	for deplib in $deplibs; do
   7836	  tmp_deplibs="$deplib $tmp_deplibs"
   7837	done
   7838	deplibs=$tmp_deplibs
   7839      fi
   7840
   7841      if test lib,link = "$linkmode,$pass" ||
   7842	 test prog,scan = "$linkmode,$pass"; then
   7843	libs=$deplibs
   7844	deplibs=
   7845      fi
   7846      if test prog = "$linkmode"; then
   7847	case $pass in
   7848	dlopen) libs=$dlfiles ;;
   7849	dlpreopen) libs=$dlprefiles ;;
   7850	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
   7851	esac
   7852      fi
   7853      if test lib,dlpreopen = "$linkmode,$pass"; then
   7854	# Collect and forward deplibs of preopened libtool libs
   7855	for lib in $dlprefiles; do
   7856	  # Ignore non-libtool-libs
   7857	  dependency_libs=
   7858	  func_resolve_sysroot "$lib"
   7859	  case $lib in
   7860	  *.la)	func_source "$func_resolve_sysroot_result" ;;
   7861	  esac
   7862
   7863	  # Collect preopened libtool deplibs, except any this library
   7864	  # has declared as weak libs
   7865	  for deplib in $dependency_libs; do
   7866	    func_basename "$deplib"
   7867            deplib_base=$func_basename_result
   7868	    case " $weak_libs " in
   7869	    *" $deplib_base "*) ;;
   7870	    *) func_append deplibs " $deplib" ;;
   7871	    esac
   7872	  done
   7873	done
   7874	libs=$dlprefiles
   7875      fi
   7876      if test dlopen = "$pass"; then
   7877	# Collect dlpreopened libraries
   7878	save_deplibs=$deplibs
   7879	deplibs=
   7880      fi
   7881
   7882      for deplib in $libs; do
   7883	lib=
   7884	found=false
   7885	case $deplib in
   7886	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
   7887        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
   7888	  if test prog,link = "$linkmode,$pass"; then
   7889	    compile_deplibs="$deplib $compile_deplibs"
   7890	    finalize_deplibs="$deplib $finalize_deplibs"
   7891	  else
   7892	    func_append compiler_flags " $deplib"
   7893	    if test lib = "$linkmode"; then
   7894		case "$new_inherited_linker_flags " in
   7895		    *" $deplib "*) ;;
   7896		    * ) func_append new_inherited_linker_flags " $deplib" ;;
   7897		esac
   7898	    fi
   7899	  fi
   7900	  continue
   7901	  ;;
   7902	-l*)
   7903	  if test lib != "$linkmode" && test prog != "$linkmode"; then
   7904	    func_warning "'-l' is ignored for archives/objects"
   7905	    continue
   7906	  fi
   7907	  func_stripname '-l' '' "$deplib"
   7908	  name=$func_stripname_result
   7909	  if test lib = "$linkmode"; then
   7910	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
   7911	  else
   7912	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
   7913	  fi
   7914	  for searchdir in $searchdirs; do
   7915	    for search_ext in .la $std_shrext .so .a; do
   7916	      # Search the libtool library
   7917	      lib=$searchdir/lib$name$search_ext
   7918	      if test -f "$lib"; then
   7919		if test .la = "$search_ext"; then
   7920		  found=:
   7921		else
   7922		  found=false
   7923		fi
   7924		break 2
   7925	      fi
   7926	    done
   7927	  done
   7928	  if $found; then
   7929	    # deplib is a libtool library
   7930	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
   7931	    # We need to do some special things here, and not later.
   7932	    if test yes = "$allow_libtool_libs_with_static_runtimes"; then
   7933	      case " $predeps $postdeps " in
   7934	      *" $deplib "*)
   7935		if func_lalib_p "$lib"; then
   7936		  library_names=
   7937		  old_library=
   7938		  func_source "$lib"
   7939		  for l in $old_library $library_names; do
   7940		    ll=$l
   7941		  done
   7942		  if test "X$ll" = "X$old_library"; then # only static version available
   7943		    found=false
   7944		    func_dirname "$lib" "" "."
   7945		    ladir=$func_dirname_result
   7946		    lib=$ladir/$old_library
   7947		    if test prog,link = "$linkmode,$pass"; then
   7948		      compile_deplibs="$deplib $compile_deplibs"
   7949		      finalize_deplibs="$deplib $finalize_deplibs"
   7950		    else
   7951		      deplibs="$deplib $deplibs"
   7952		      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
   7953		    fi
   7954		    continue
   7955		  fi
   7956		fi
   7957		;;
   7958	      *) ;;
   7959	      esac
   7960	    fi
   7961	  else
   7962	    # deplib doesn't seem to be a libtool library
   7963	    if test prog,link = "$linkmode,$pass"; then
   7964	      compile_deplibs="$deplib $compile_deplibs"
   7965	      finalize_deplibs="$deplib $finalize_deplibs"
   7966	    else
   7967	      deplibs="$deplib $deplibs"
   7968	      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
   7969	    fi
   7970	    continue
   7971	  fi
   7972	  ;; # -l
   7973	*.ltframework)
   7974	  if test prog,link = "$linkmode,$pass"; then
   7975	    compile_deplibs="$deplib $compile_deplibs"
   7976	    finalize_deplibs="$deplib $finalize_deplibs"
   7977	  else
   7978	    deplibs="$deplib $deplibs"
   7979	    if test lib = "$linkmode"; then
   7980		case "$new_inherited_linker_flags " in
   7981		    *" $deplib "*) ;;
   7982		    * ) func_append new_inherited_linker_flags " $deplib" ;;
   7983		esac
   7984	    fi
   7985	  fi
   7986	  continue
   7987	  ;;
   7988	-L*)
   7989	  case $linkmode in
   7990	  lib)
   7991	    deplibs="$deplib $deplibs"
   7992	    test conv = "$pass" && continue
   7993	    newdependency_libs="$deplib $newdependency_libs"
   7994	    func_stripname '-L' '' "$deplib"
   7995	    func_resolve_sysroot "$func_stripname_result"
   7996	    func_append newlib_search_path " $func_resolve_sysroot_result"
   7997	    ;;
   7998	  prog)
   7999	    if test conv = "$pass"; then
   8000	      deplibs="$deplib $deplibs"
   8001	      continue
   8002	    fi
   8003	    if test scan = "$pass"; then
   8004	      deplibs="$deplib $deplibs"
   8005	    else
   8006	      compile_deplibs="$deplib $compile_deplibs"
   8007	      finalize_deplibs="$deplib $finalize_deplibs"
   8008	    fi
   8009	    func_stripname '-L' '' "$deplib"
   8010	    func_resolve_sysroot "$func_stripname_result"
   8011	    func_append newlib_search_path " $func_resolve_sysroot_result"
   8012	    ;;
   8013	  *)
   8014	    func_warning "'-L' is ignored for archives/objects"
   8015	    ;;
   8016	  esac # linkmode
   8017	  continue
   8018	  ;; # -L
   8019	-R*)
   8020	  if test link = "$pass"; then
   8021	    func_stripname '-R' '' "$deplib"
   8022	    func_resolve_sysroot "$func_stripname_result"
   8023	    dir=$func_resolve_sysroot_result
   8024	    # Make sure the xrpath contains only unique directories.
   8025	    case "$xrpath " in
   8026	    *" $dir "*) ;;
   8027	    *) func_append xrpath " $dir" ;;
   8028	    esac
   8029	  fi
   8030	  deplibs="$deplib $deplibs"
   8031	  continue
   8032	  ;;
   8033	*.la)
   8034	  func_resolve_sysroot "$deplib"
   8035	  lib=$func_resolve_sysroot_result
   8036	  ;;
   8037	*.$libext)
   8038	  if test conv = "$pass"; then
   8039	    deplibs="$deplib $deplibs"
   8040	    continue
   8041	  fi
   8042	  case $linkmode in
   8043	  lib)
   8044	    # Linking convenience modules into shared libraries is allowed,
   8045	    # but linking other static libraries is non-portable.
   8046	    case " $dlpreconveniencelibs " in
   8047	    *" $deplib "*) ;;
   8048	    *)
   8049	      valid_a_lib=false
   8050	      case $deplibs_check_method in
   8051		match_pattern*)
   8052		  set dummy $deplibs_check_method; shift
   8053		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
   8054		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
   8055		    | $EGREP "$match_pattern_regex" > /dev/null; then
   8056		    valid_a_lib=:
   8057		  fi
   8058		;;
   8059		pass_all)
   8060		  valid_a_lib=:
   8061		;;
   8062	      esac
   8063	      if $valid_a_lib; then
   8064		echo
   8065		$ECHO "*** Warning: Linking the shared library $output against the"
   8066		$ECHO "*** static library $deplib is not portable!"
   8067		deplibs="$deplib $deplibs"
   8068	      else
   8069		echo
   8070		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
   8071		echo "*** I have the capability to make that library automatically link in when"
   8072		echo "*** you link to this library.  But I can only do this if you have a"
   8073		echo "*** shared version of the library, which you do not appear to have"
   8074		echo "*** because the file extensions .$libext of this argument makes me believe"
   8075		echo "*** that it is just a static archive that I should not use here."
   8076	      fi
   8077	      ;;
   8078	    esac
   8079	    continue
   8080	    ;;
   8081	  prog)
   8082	    if test link != "$pass"; then
   8083	      deplibs="$deplib $deplibs"
   8084	    else
   8085	      compile_deplibs="$deplib $compile_deplibs"
   8086	      finalize_deplibs="$deplib $finalize_deplibs"
   8087	    fi
   8088	    continue
   8089	    ;;
   8090	  esac # linkmode
   8091	  ;; # *.$libext
   8092	*.lo | *.$objext)
   8093	  if test conv = "$pass"; then
   8094	    deplibs="$deplib $deplibs"
   8095	  elif test prog = "$linkmode"; then
   8096	    if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
   8097	      # If there is no dlopen support or we're linking statically,
   8098	      # we need to preload.
   8099	      func_append newdlprefiles " $deplib"
   8100	      compile_deplibs="$deplib $compile_deplibs"
   8101	      finalize_deplibs="$deplib $finalize_deplibs"
   8102	    else
   8103	      func_append newdlfiles " $deplib"
   8104	    fi
   8105	  fi
   8106	  continue
   8107	  ;;
   8108	%DEPLIBS%)
   8109	  alldeplibs=:
   8110	  continue
   8111	  ;;
   8112	esac # case $deplib
   8113
   8114	$found || test -f "$lib" \
   8115	  || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
   8116
   8117	# Check to see that this really is a libtool archive.
   8118	func_lalib_unsafe_p "$lib" \
   8119	  || func_fatal_error "'$lib' is not a valid libtool archive"
   8120
   8121	func_dirname "$lib" "" "."
   8122	ladir=$func_dirname_result
   8123
   8124	dlname=
   8125	dlopen=
   8126	dlpreopen=
   8127	libdir=
   8128	library_names=
   8129	old_library=
   8130	inherited_linker_flags=
   8131	# If the library was installed with an old release of libtool,
   8132	# it will not redefine variables installed, or shouldnotlink
   8133	installed=yes
   8134	shouldnotlink=no
   8135	avoidtemprpath=
   8136
   8137
   8138	# Read the .la file
   8139	func_source "$lib"
   8140
   8141	# Convert "-framework foo" to "foo.ltframework"
   8142	if test -n "$inherited_linker_flags"; then
   8143	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
   8144	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
   8145	    case " $new_inherited_linker_flags " in
   8146	      *" $tmp_inherited_linker_flag "*) ;;
   8147	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
   8148	    esac
   8149	  done
   8150	fi
   8151	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   8152	if test lib,link = "$linkmode,$pass" ||
   8153	   test prog,scan = "$linkmode,$pass" ||
   8154	   { test prog != "$linkmode" && test lib != "$linkmode"; }; then
   8155	  test -n "$dlopen" && func_append dlfiles " $dlopen"
   8156	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
   8157	fi
   8158
   8159	if test conv = "$pass"; then
   8160	  # Only check for convenience libraries
   8161	  deplibs="$lib $deplibs"
   8162	  if test -z "$libdir"; then
   8163	    if test -z "$old_library"; then
   8164	      func_fatal_error "cannot find name of link library for '$lib'"
   8165	    fi
   8166	    # It is a libtool convenience library, so add in its objects.
   8167	    func_append convenience " $ladir/$objdir/$old_library"
   8168	    func_append old_convenience " $ladir/$objdir/$old_library"
   8169	  elif test prog != "$linkmode" && test lib != "$linkmode"; then
   8170	    func_fatal_error "'$lib' is not a convenience library"
   8171	  fi
   8172	  tmp_libs=
   8173	  for deplib in $dependency_libs; do
   8174	    deplibs="$deplib $deplibs"
   8175	    if $opt_preserve_dup_deps; then
   8176	      case "$tmp_libs " in
   8177	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
   8178	      esac
   8179	    fi
   8180	    func_append tmp_libs " $deplib"
   8181	  done
   8182	  continue
   8183	fi # $pass = conv
   8184
   8185
   8186	# Get the name of the library we link against.
   8187	linklib=
   8188	if test -n "$old_library" &&
   8189	   { test yes = "$prefer_static_libs" ||
   8190	     test built,no = "$prefer_static_libs,$installed"; }; then
   8191	  linklib=$old_library
   8192	else
   8193	  for l in $old_library $library_names; do
   8194	    linklib=$l
   8195	  done
   8196	fi
   8197	if test -z "$linklib"; then
   8198	  func_fatal_error "cannot find name of link library for '$lib'"
   8199	fi
   8200
   8201	# This library was specified with -dlopen.
   8202	if test dlopen = "$pass"; then
   8203	  test -z "$libdir" \
   8204	    && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
   8205	  if test -z "$dlname" ||
   8206	     test yes != "$dlopen_support" ||
   8207	     test no = "$build_libtool_libs"
   8208	  then
   8209	    # If there is no dlname, no dlopen support or we're linking
   8210	    # statically, we need to preload.  We also need to preload any
   8211	    # dependent libraries so libltdl's deplib preloader doesn't
   8212	    # bomb out in the load deplibs phase.
   8213	    func_append dlprefiles " $lib $dependency_libs"
   8214	  else
   8215	    func_append newdlfiles " $lib"
   8216	  fi
   8217	  continue
   8218	fi # $pass = dlopen
   8219
   8220	# We need an absolute path.
   8221	case $ladir in
   8222	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
   8223	*)
   8224	  abs_ladir=`cd "$ladir" && pwd`
   8225	  if test -z "$abs_ladir"; then
   8226	    func_warning "cannot determine absolute directory name of '$ladir'"
   8227	    func_warning "passing it literally to the linker, although it might fail"
   8228	    abs_ladir=$ladir
   8229	  fi
   8230	  ;;
   8231	esac
   8232	func_basename "$lib"
   8233	laname=$func_basename_result
   8234
   8235	# Find the relevant object directory and library name.
   8236	if test yes = "$installed"; then
   8237	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
   8238	    func_warning "library '$lib' was moved."
   8239	    dir=$ladir
   8240	    absdir=$abs_ladir
   8241	    libdir=$abs_ladir
   8242	  else
   8243	    dir=$lt_sysroot$libdir
   8244	    absdir=$lt_sysroot$libdir
   8245	  fi
   8246	  test yes = "$hardcode_automatic" && avoidtemprpath=yes
   8247	else
   8248	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
   8249	    dir=$ladir
   8250	    absdir=$abs_ladir
   8251	    # Remove this search path later
   8252	    func_append notinst_path " $abs_ladir"
   8253	  else
   8254	    dir=$ladir/$objdir
   8255	    absdir=$abs_ladir/$objdir
   8256	    # Remove this search path later
   8257	    func_append notinst_path " $abs_ladir"
   8258	  fi
   8259	fi # $installed = yes
   8260	func_stripname 'lib' '.la' "$laname"
   8261	name=$func_stripname_result
   8262
   8263	# This library was specified with -dlpreopen.
   8264	if test dlpreopen = "$pass"; then
   8265	  if test -z "$libdir" && test prog = "$linkmode"; then
   8266	    func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
   8267	  fi
   8268	  case $host in
   8269	    # special handling for platforms with PE-DLLs.
   8270	    *cygwin* | *mingw* | *cegcc* )
   8271	      # Linker will automatically link against shared library if both
   8272	      # static and shared are present.  Therefore, ensure we extract
   8273	      # symbols from the import library if a shared library is present
   8274	      # (otherwise, the dlopen module name will be incorrect).  We do
   8275	      # this by putting the import library name into $newdlprefiles.
   8276	      # We recover the dlopen module name by 'saving' the la file
   8277	      # name in a special purpose variable, and (later) extracting the
   8278	      # dlname from the la file.
   8279	      if test -n "$dlname"; then
   8280	        func_tr_sh "$dir/$linklib"
   8281	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
   8282	        func_append newdlprefiles " $dir/$linklib"
   8283	      else
   8284	        func_append newdlprefiles " $dir/$old_library"
   8285	        # Keep a list of preopened convenience libraries to check
   8286	        # that they are being used correctly in the link pass.
   8287	        test -z "$libdir" && \
   8288	          func_append dlpreconveniencelibs " $dir/$old_library"
   8289	      fi
   8290	    ;;
   8291	    * )
   8292	      # Prefer using a static library (so that no silly _DYNAMIC symbols
   8293	      # are required to link).
   8294	      if test -n "$old_library"; then
   8295	        func_append newdlprefiles " $dir/$old_library"
   8296	        # Keep a list of preopened convenience libraries to check
   8297	        # that they are being used correctly in the link pass.
   8298	        test -z "$libdir" && \
   8299	          func_append dlpreconveniencelibs " $dir/$old_library"
   8300	      # Otherwise, use the dlname, so that lt_dlopen finds it.
   8301	      elif test -n "$dlname"; then
   8302	        func_append newdlprefiles " $dir/$dlname"
   8303	      else
   8304	        func_append newdlprefiles " $dir/$linklib"
   8305	      fi
   8306	    ;;
   8307	  esac
   8308	fi # $pass = dlpreopen
   8309
   8310	if test -z "$libdir"; then
   8311	  # Link the convenience library
   8312	  if test lib = "$linkmode"; then
   8313	    deplibs="$dir/$old_library $deplibs"
   8314	  elif test prog,link = "$linkmode,$pass"; then
   8315	    compile_deplibs="$dir/$old_library $compile_deplibs"
   8316	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
   8317	  else
   8318	    deplibs="$lib $deplibs" # used for prog,scan pass
   8319	  fi
   8320	  continue
   8321	fi
   8322
   8323
   8324	if test prog = "$linkmode" && test link != "$pass"; then
   8325	  func_append newlib_search_path " $ladir"
   8326	  deplibs="$lib $deplibs"
   8327
   8328	  linkalldeplibs=false
   8329	  if test no != "$link_all_deplibs" || test -z "$library_names" ||
   8330	     test no = "$build_libtool_libs"; then
   8331	    linkalldeplibs=:
   8332	  fi
   8333
   8334	  tmp_libs=
   8335	  for deplib in $dependency_libs; do
   8336	    case $deplib in
   8337	    -L*) func_stripname '-L' '' "$deplib"
   8338	         func_resolve_sysroot "$func_stripname_result"
   8339	         func_append newlib_search_path " $func_resolve_sysroot_result"
   8340		 ;;
   8341	    esac
   8342	    # Need to link against all dependency_libs?
   8343	    if $linkalldeplibs; then
   8344	      deplibs="$deplib $deplibs"
   8345	    else
   8346	      # Need to hardcode shared library paths
   8347	      # or/and link against static libraries
   8348	      newdependency_libs="$deplib $newdependency_libs"
   8349	    fi
   8350	    if $opt_preserve_dup_deps; then
   8351	      case "$tmp_libs " in
   8352	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
   8353	      esac
   8354	    fi
   8355	    func_append tmp_libs " $deplib"
   8356	  done # for deplib
   8357	  continue
   8358	fi # $linkmode = prog...
   8359
   8360	if test prog,link = "$linkmode,$pass"; then
   8361	  if test -n "$library_names" &&
   8362	     { { test no = "$prefer_static_libs" ||
   8363	         test built,yes = "$prefer_static_libs,$installed"; } ||
   8364	       test -z "$old_library"; }; then
   8365	    # We need to hardcode the library path
   8366	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
   8367	      # Make sure the rpath contains only unique directories.
   8368	      case $temp_rpath: in
   8369	      *"$absdir:"*) ;;
   8370	      *) func_append temp_rpath "$absdir:" ;;
   8371	      esac
   8372	    fi
   8373
   8374	    # Hardcode the library path.
   8375	    # Skip directories that are in the system default run-time
   8376	    # search path.
   8377	    case " $sys_lib_dlsearch_path " in
   8378	    *" $absdir "*) ;;
   8379	    *)
   8380	      case "$compile_rpath " in
   8381	      *" $absdir "*) ;;
   8382	      *) func_append compile_rpath " $absdir" ;;
   8383	      esac
   8384	      ;;
   8385	    esac
   8386	    case " $sys_lib_dlsearch_path " in
   8387	    *" $libdir "*) ;;
   8388	    *)
   8389	      case "$finalize_rpath " in
   8390	      *" $libdir "*) ;;
   8391	      *) func_append finalize_rpath " $libdir" ;;
   8392	      esac
   8393	      ;;
   8394	    esac
   8395	  fi # $linkmode,$pass = prog,link...
   8396
   8397	  if $alldeplibs &&
   8398	     { test pass_all = "$deplibs_check_method" ||
   8399	       { test yes = "$build_libtool_libs" &&
   8400		 test -n "$library_names"; }; }; then
   8401	    # We only need to search for static libraries
   8402	    continue
   8403	  fi
   8404	fi
   8405
   8406	link_static=no # Whether the deplib will be linked statically
   8407	use_static_libs=$prefer_static_libs
   8408	if test built = "$use_static_libs" && test yes = "$installed"; then
   8409	  use_static_libs=no
   8410	fi
   8411	if test -n "$library_names" &&
   8412	   { test no = "$use_static_libs" || test -z "$old_library"; }; then
   8413	  case $host in
   8414	  *cygwin* | *mingw* | *cegcc* | *os2*)
   8415	      # No point in relinking DLLs because paths are not encoded
   8416	      func_append notinst_deplibs " $lib"
   8417	      need_relink=no
   8418	    ;;
   8419	  *)
   8420	    if test no = "$installed"; then
   8421	      func_append notinst_deplibs " $lib"
   8422	      need_relink=yes
   8423	    fi
   8424	    ;;
   8425	  esac
   8426	  # This is a shared library
   8427
   8428	  # Warn about portability, can't link against -module's on some
   8429	  # systems (darwin).  Don't bleat about dlopened modules though!
   8430	  dlopenmodule=
   8431	  for dlpremoduletest in $dlprefiles; do
   8432	    if test "X$dlpremoduletest" = "X$lib"; then
   8433	      dlopenmodule=$dlpremoduletest
   8434	      break
   8435	    fi
   8436	  done
   8437	  if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
   8438	    echo
   8439	    if test prog = "$linkmode"; then
   8440	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
   8441	    else
   8442	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
   8443	    fi
   8444	    $ECHO "*** $linklib is not portable!"
   8445	  fi
   8446	  if test lib = "$linkmode" &&
   8447	     test yes = "$hardcode_into_libs"; then
   8448	    # Hardcode the library path.
   8449	    # Skip directories that are in the system default run-time
   8450	    # search path.
   8451	    case " $sys_lib_dlsearch_path " in
   8452	    *" $absdir "*) ;;
   8453	    *)
   8454	      case "$compile_rpath " in
   8455	      *" $absdir "*) ;;
   8456	      *) func_append compile_rpath " $absdir" ;;
   8457	      esac
   8458	      ;;
   8459	    esac
   8460	    case " $sys_lib_dlsearch_path " in
   8461	    *" $libdir "*) ;;
   8462	    *)
   8463	      case "$finalize_rpath " in
   8464	      *" $libdir "*) ;;
   8465	      *) func_append finalize_rpath " $libdir" ;;
   8466	      esac
   8467	      ;;
   8468	    esac
   8469	  fi
   8470
   8471	  if test -n "$old_archive_from_expsyms_cmds"; then
   8472	    # figure out the soname
   8473	    set dummy $library_names
   8474	    shift
   8475	    realname=$1
   8476	    shift
   8477	    libname=`eval "\\$ECHO \"$libname_spec\""`
   8478	    # use dlname if we got it. it's perfectly good, no?
   8479	    if test -n "$dlname"; then
   8480	      soname=$dlname
   8481	    elif test -n "$soname_spec"; then
   8482	      # bleh windows
   8483	      case $host in
   8484	      *cygwin* | mingw* | *cegcc* | *os2*)
   8485	        func_arith $current - $age
   8486		major=$func_arith_result
   8487		versuffix=-$major
   8488		;;
   8489	      esac
   8490	      eval soname=\"$soname_spec\"
   8491	    else
   8492	      soname=$realname
   8493	    fi
   8494
   8495	    # Make a new name for the extract_expsyms_cmds to use
   8496	    soroot=$soname
   8497	    func_basename "$soroot"
   8498	    soname=$func_basename_result
   8499	    func_stripname 'lib' '.dll' "$soname"
   8500	    newlib=libimp-$func_stripname_result.a
   8501
   8502	    # If the library has no export list, then create one now
   8503	    if test -f "$output_objdir/$soname-def"; then :
   8504	    else
   8505	      func_verbose "extracting exported symbol list from '$soname'"
   8506	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
   8507	    fi
   8508
   8509	    # Create $newlib
   8510	    if test -f "$output_objdir/$newlib"; then :; else
   8511	      func_verbose "generating import library for '$soname'"
   8512	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
   8513	    fi
   8514	    # make sure the library variables are pointing to the new library
   8515	    dir=$output_objdir
   8516	    linklib=$newlib
   8517	  fi # test -n "$old_archive_from_expsyms_cmds"
   8518
   8519	  if test prog = "$linkmode" || test relink != "$opt_mode"; then
   8520	    add_shlibpath=
   8521	    add_dir=
   8522	    add=
   8523	    lib_linked=yes
   8524	    case $hardcode_action in
   8525	    immediate | unsupported)
   8526	      if test no = "$hardcode_direct"; then
   8527		add=$dir/$linklib
   8528		case $host in
   8529		  *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
   8530		  *-*-sysv4*uw2*) add_dir=-L$dir ;;
   8531		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
   8532		    *-*-unixware7*) add_dir=-L$dir ;;
   8533		  *-*-darwin* )
   8534		    # if the lib is a (non-dlopened) module then we cannot
   8535		    # link against it, someone is ignoring the earlier warnings
   8536		    if /usr/bin/file -L $add 2> /dev/null |
   8537			 $GREP ": [^:]* bundle" >/dev/null; then
   8538		      if test "X$dlopenmodule" != "X$lib"; then
   8539			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
   8540			if test -z "$old_library"; then
   8541			  echo
   8542			  echo "*** And there doesn't seem to be a static archive available"
   8543			  echo "*** The link will probably fail, sorry"
   8544			else
   8545			  add=$dir/$old_library
   8546			fi
   8547		      elif test -n "$old_library"; then
   8548			add=$dir/$old_library
   8549		      fi
   8550		    fi
   8551		esac
   8552	      elif test no = "$hardcode_minus_L"; then
   8553		case $host in
   8554		*-*-sunos*) add_shlibpath=$dir ;;
   8555		esac
   8556		add_dir=-L$dir
   8557		add=-l$name
   8558	      elif test no = "$hardcode_shlibpath_var"; then
   8559		add_shlibpath=$dir
   8560		add=-l$name
   8561	      else
   8562		lib_linked=no
   8563	      fi
   8564	      ;;
   8565	    relink)
   8566	      if test yes = "$hardcode_direct" &&
   8567	         test no = "$hardcode_direct_absolute"; then
   8568		add=$dir/$linklib
   8569	      elif test yes = "$hardcode_minus_L"; then
   8570		add_dir=-L$absdir
   8571		# Try looking first in the location we're being installed to.
   8572		if test -n "$inst_prefix_dir"; then
   8573		  case $libdir in
   8574		    [\\/]*)
   8575		      func_append add_dir " -L$inst_prefix_dir$libdir"
   8576		      ;;
   8577		  esac
   8578		fi
   8579		add=-l$name
   8580	      elif test yes = "$hardcode_shlibpath_var"; then
   8581		add_shlibpath=$dir
   8582		add=-l$name
   8583	      else
   8584		lib_linked=no
   8585	      fi
   8586	      ;;
   8587	    *) lib_linked=no ;;
   8588	    esac
   8589
   8590	    if test yes != "$lib_linked"; then
   8591	      func_fatal_configuration "unsupported hardcode properties"
   8592	    fi
   8593
   8594	    if test -n "$add_shlibpath"; then
   8595	      case :$compile_shlibpath: in
   8596	      *":$add_shlibpath:"*) ;;
   8597	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
   8598	      esac
   8599	    fi
   8600	    if test prog = "$linkmode"; then
   8601	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
   8602	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
   8603	    else
   8604	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
   8605	      test -n "$add" && deplibs="$add $deplibs"
   8606	      if test yes != "$hardcode_direct" &&
   8607		 test yes != "$hardcode_minus_L" &&
   8608		 test yes = "$hardcode_shlibpath_var"; then
   8609		case :$finalize_shlibpath: in
   8610		*":$libdir:"*) ;;
   8611		*) func_append finalize_shlibpath "$libdir:" ;;
   8612		esac
   8613	      fi
   8614	    fi
   8615	  fi
   8616
   8617	  if test prog = "$linkmode" || test relink = "$opt_mode"; then
   8618	    add_shlibpath=
   8619	    add_dir=
   8620	    add=
   8621	    # Finalize command for both is simple: just hardcode it.
   8622	    if test yes = "$hardcode_direct" &&
   8623	       test no = "$hardcode_direct_absolute"; then
   8624	      add=$libdir/$linklib
   8625	    elif test yes = "$hardcode_minus_L"; then
   8626	      add_dir=-L$libdir
   8627	      add=-l$name
   8628	    elif test yes = "$hardcode_shlibpath_var"; then
   8629	      case :$finalize_shlibpath: in
   8630	      *":$libdir:"*) ;;
   8631	      *) func_append finalize_shlibpath "$libdir:" ;;
   8632	      esac
   8633	      add=-l$name
   8634	    elif test yes = "$hardcode_automatic"; then
   8635	      if test -n "$inst_prefix_dir" &&
   8636		 test -f "$inst_prefix_dir$libdir/$linklib"; then
   8637		add=$inst_prefix_dir$libdir/$linklib
   8638	      else
   8639		add=$libdir/$linklib
   8640	      fi
   8641	    else
   8642	      # We cannot seem to hardcode it, guess we'll fake it.
   8643	      add_dir=-L$libdir
   8644	      # Try looking first in the location we're being installed to.
   8645	      if test -n "$inst_prefix_dir"; then
   8646		case $libdir in
   8647		  [\\/]*)
   8648		    func_append add_dir " -L$inst_prefix_dir$libdir"
   8649		    ;;
   8650		esac
   8651	      fi
   8652	      add=-l$name
   8653	    fi
   8654
   8655	    if test prog = "$linkmode"; then
   8656	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
   8657	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
   8658	    else
   8659	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
   8660	      test -n "$add" && deplibs="$add $deplibs"
   8661	    fi
   8662	  fi
   8663	elif test prog = "$linkmode"; then
   8664	  # Here we assume that one of hardcode_direct or hardcode_minus_L
   8665	  # is not unsupported.  This is valid on all known static and
   8666	  # shared platforms.
   8667	  if test unsupported != "$hardcode_direct"; then
   8668	    test -n "$old_library" && linklib=$old_library
   8669	    compile_deplibs="$dir/$linklib $compile_deplibs"
   8670	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
   8671	  else
   8672	    compile_deplibs="-l$name -L$dir $compile_deplibs"
   8673	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
   8674	  fi
   8675	elif test yes = "$build_libtool_libs"; then
   8676	  # Not a shared library
   8677	  if test pass_all != "$deplibs_check_method"; then
   8678	    # We're trying link a shared library against a static one
   8679	    # but the system doesn't support it.
   8680
   8681	    # Just print a warning and add the library to dependency_libs so
   8682	    # that the program can be linked against the static library.
   8683	    echo
   8684	    $ECHO "*** Warning: This system cannot link to static lib archive $lib."
   8685	    echo "*** I have the capability to make that library automatically link in when"
   8686	    echo "*** you link to this library.  But I can only do this if you have a"
   8687	    echo "*** shared version of the library, which you do not appear to have."
   8688	    if test yes = "$module"; then
   8689	      echo "*** But as you try to build a module library, libtool will still create "
   8690	      echo "*** a static module, that should work as long as the dlopening application"
   8691	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
   8692	      if test -z "$global_symbol_pipe"; then
   8693		echo
   8694		echo "*** However, this would only work if libtool was able to extract symbol"
   8695		echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
   8696		echo "*** not find such a program.  So, this module is probably useless."
   8697		echo "*** 'nm' from GNU binutils and a full rebuild may help."
   8698	      fi
   8699	      if test no = "$build_old_libs"; then
   8700		build_libtool_libs=module
   8701		build_old_libs=yes
   8702	      else
   8703		build_libtool_libs=no
   8704	      fi
   8705	    fi
   8706	  else
   8707	    deplibs="$dir/$old_library $deplibs"
   8708	    link_static=yes
   8709	  fi
   8710	fi # link shared/static library?
   8711
   8712	if test lib = "$linkmode"; then
   8713	  if test -n "$dependency_libs" &&
   8714	     { test yes != "$hardcode_into_libs" ||
   8715	       test yes = "$build_old_libs" ||
   8716	       test yes = "$link_static"; }; then
   8717	    # Extract -R from dependency_libs
   8718	    temp_deplibs=
   8719	    for libdir in $dependency_libs; do
   8720	      case $libdir in
   8721	      -R*) func_stripname '-R' '' "$libdir"
   8722	           temp_xrpath=$func_stripname_result
   8723		   case " $xrpath " in
   8724		   *" $temp_xrpath "*) ;;
   8725		   *) func_append xrpath " $temp_xrpath";;
   8726		   esac;;
   8727	      *) func_append temp_deplibs " $libdir";;
   8728	      esac
   8729	    done
   8730	    dependency_libs=$temp_deplibs
   8731	  fi
   8732
   8733	  func_append newlib_search_path " $absdir"
   8734	  # Link against this library
   8735	  test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
   8736	  # ... and its dependency_libs
   8737	  tmp_libs=
   8738	  for deplib in $dependency_libs; do
   8739	    newdependency_libs="$deplib $newdependency_libs"
   8740	    case $deplib in
   8741              -L*) func_stripname '-L' '' "$deplib"
   8742                   func_resolve_sysroot "$func_stripname_result";;
   8743              *) func_resolve_sysroot "$deplib" ;;
   8744            esac
   8745	    if $opt_preserve_dup_deps; then
   8746	      case "$tmp_libs " in
   8747	      *" $func_resolve_sysroot_result "*)
   8748                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
   8749	      esac
   8750	    fi
   8751	    func_append tmp_libs " $func_resolve_sysroot_result"
   8752	  done
   8753
   8754	  if test no != "$link_all_deplibs"; then
   8755	    # Add the search paths of all dependency libraries
   8756	    for deplib in $dependency_libs; do
   8757	      path=
   8758	      case $deplib in
   8759	      -L*) path=$deplib ;;
   8760	      *.la)
   8761	        func_resolve_sysroot "$deplib"
   8762	        deplib=$func_resolve_sysroot_result
   8763	        func_dirname "$deplib" "" "."
   8764		dir=$func_dirname_result
   8765		# We need an absolute path.
   8766		case $dir in
   8767		[\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
   8768		*)
   8769		  absdir=`cd "$dir" && pwd`
   8770		  if test -z "$absdir"; then
   8771		    func_warning "cannot determine absolute directory name of '$dir'"
   8772		    absdir=$dir
   8773		  fi
   8774		  ;;
   8775		esac
   8776		if $GREP "^installed=no" $deplib > /dev/null; then
   8777		case $host in
   8778		*-*-darwin*)
   8779		  depdepl=
   8780		  eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
   8781		  if test -n "$deplibrary_names"; then
   8782		    for tmp in $deplibrary_names; do
   8783		      depdepl=$tmp
   8784		    done
   8785		    if test -f "$absdir/$objdir/$depdepl"; then
   8786		      depdepl=$absdir/$objdir/$depdepl
   8787		      darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
   8788                      if test -z "$darwin_install_name"; then
   8789                          darwin_install_name=`$OTOOL64 -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
   8790                      fi
   8791		      func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
   8792		      func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
   8793		      path=
   8794		    fi
   8795		  fi
   8796		  ;;
   8797		*)
   8798		  path=-L$absdir/$objdir
   8799		  ;;
   8800		esac
   8801		else
   8802		  eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
   8803		  test -z "$libdir" && \
   8804		    func_fatal_error "'$deplib' is not a valid libtool archive"
   8805		  test "$absdir" != "$libdir" && \
   8806		    func_warning "'$deplib' seems to be moved"
   8807
   8808		  path=-L$absdir
   8809		fi
   8810		;;
   8811	      esac
   8812	      case " $deplibs " in
   8813	      *" $path "*) ;;
   8814	      *) deplibs="$path $deplibs" ;;
   8815	      esac
   8816	    done
   8817	  fi # link_all_deplibs != no
   8818	fi # linkmode = lib
   8819      done # for deplib in $libs
   8820      if test link = "$pass"; then
   8821	if test prog = "$linkmode"; then
   8822	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
   8823	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
   8824	else
   8825	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   8826	fi
   8827      fi
   8828      dependency_libs=$newdependency_libs
   8829      if test dlpreopen = "$pass"; then
   8830	# Link the dlpreopened libraries before other libraries
   8831	for deplib in $save_deplibs; do
   8832	  deplibs="$deplib $deplibs"
   8833	done
   8834      fi
   8835      if test dlopen != "$pass"; then
   8836	test conv = "$pass" || {
   8837	  # Make sure lib_search_path contains only unique directories.
   8838	  lib_search_path=
   8839	  for dir in $newlib_search_path; do
   8840	    case "$lib_search_path " in
   8841	    *" $dir "*) ;;
   8842	    *) func_append lib_search_path " $dir" ;;
   8843	    esac
   8844	  done
   8845	  newlib_search_path=
   8846	}
   8847
   8848	if test prog,link = "$linkmode,$pass"; then
   8849	  vars="compile_deplibs finalize_deplibs"
   8850	else
   8851	  vars=deplibs
   8852	fi
   8853	for var in $vars dependency_libs; do
   8854	  # Add libraries to $var in reverse order
   8855	  eval tmp_libs=\"\$$var\"
   8856	  new_libs=
   8857	  for deplib in $tmp_libs; do
   8858	    # FIXME: Pedantically, this is the right thing to do, so
   8859	    #        that some nasty dependency loop isn't accidentally
   8860	    #        broken:
   8861	    #new_libs="$deplib $new_libs"
   8862	    # Pragmatically, this seems to cause very few problems in
   8863	    # practice:
   8864	    case $deplib in
   8865	    -L*) new_libs="$deplib $new_libs" ;;
   8866	    -R*) ;;
   8867	    *)
   8868	      # And here is the reason: when a library appears more
   8869	      # than once as an explicit dependence of a library, or
   8870	      # is implicitly linked in more than once by the
   8871	      # compiler, it is considered special, and multiple
   8872	      # occurrences thereof are not removed.  Compare this
   8873	      # with having the same library being listed as a
   8874	      # dependency of multiple other libraries: in this case,
   8875	      # we know (pedantically, we assume) the library does not
   8876	      # need to be listed more than once, so we keep only the
   8877	      # last copy.  This is not always right, but it is rare
   8878	      # enough that we require users that really mean to play
   8879	      # such unportable linking tricks to link the library
   8880	      # using -Wl,-lname, so that libtool does not consider it
   8881	      # for duplicate removal.
   8882	      case " $specialdeplibs " in
   8883	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
   8884	      *)
   8885		case " $new_libs " in
   8886		*" $deplib "*) ;;
   8887		*) new_libs="$deplib $new_libs" ;;
   8888		esac
   8889		;;
   8890	      esac
   8891	      ;;
   8892	    esac
   8893	  done
   8894	  tmp_libs=
   8895	  for deplib in $new_libs; do
   8896	    case $deplib in
   8897	    -L*)
   8898	      case " $tmp_libs " in
   8899	      *" $deplib "*) ;;
   8900	      *) func_append tmp_libs " $deplib" ;;
   8901	      esac
   8902	      ;;
   8903	    *) func_append tmp_libs " $deplib" ;;
   8904	    esac
   8905	  done
   8906	  eval $var=\"$tmp_libs\"
   8907	done # for var
   8908      fi
   8909
   8910      # Add Sun CC postdeps if required:
   8911      test CXX = "$tagname" && {
   8912        case $host_os in
   8913        linux*)
   8914          case `$CC -V 2>&1 | $SED 5q` in
   8915          *Sun\ C*) # Sun C++ 5.9
   8916            func_suncc_cstd_abi
   8917
   8918            if test no != "$suncc_use_cstd_abi"; then
   8919              func_append postdeps ' -library=Cstd -library=Crun'
   8920            fi
   8921            ;;
   8922          esac
   8923          ;;
   8924
   8925        solaris*)
   8926          func_cc_basename "$CC"
   8927          case $func_cc_basename_result in
   8928          CC* | sunCC*)
   8929            func_suncc_cstd_abi
   8930
   8931            if test no != "$suncc_use_cstd_abi"; then
   8932              func_append postdeps ' -library=Cstd -library=Crun'
   8933            fi
   8934            ;;
   8935          esac
   8936          ;;
   8937        esac
   8938      }
   8939
   8940      # Last step: remove runtime libs from dependency_libs
   8941      # (they stay in deplibs)
   8942      tmp_libs=
   8943      for i in $dependency_libs; do
   8944	case " $predeps $postdeps $compiler_lib_search_path " in
   8945	*" $i "*)
   8946	  i=
   8947	  ;;
   8948	esac
   8949	if test -n "$i"; then
   8950	  func_append tmp_libs " $i"
   8951	fi
   8952      done
   8953      dependency_libs=$tmp_libs
   8954    done # for pass
   8955    if test prog = "$linkmode"; then
   8956      dlfiles=$newdlfiles
   8957    fi
   8958    if test prog = "$linkmode" || test lib = "$linkmode"; then
   8959      dlprefiles=$newdlprefiles
   8960    fi
   8961
   8962    case $linkmode in
   8963    oldlib)
   8964      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
   8965	func_warning "'-dlopen' is ignored for archives"
   8966      fi
   8967
   8968      case " $deplibs" in
   8969      *\ -l* | *\ -L*)
   8970	func_warning "'-l' and '-L' are ignored for archives" ;;
   8971      esac
   8972
   8973      test -n "$rpath" && \
   8974	func_warning "'-rpath' is ignored for archives"
   8975
   8976      test -n "$xrpath" && \
   8977	func_warning "'-R' is ignored for archives"
   8978
   8979      test -n "$vinfo" && \
   8980	func_warning "'-version-info/-version-number' is ignored for archives"
   8981
   8982      test -n "$release" && \
   8983	func_warning "'-release' is ignored for archives"
   8984
   8985      test -n "$export_symbols$export_symbols_regex" && \
   8986	func_warning "'-export-symbols' is ignored for archives"
   8987
   8988      # Now set the variables for building old libraries.
   8989      build_libtool_libs=no
   8990      oldlibs=$output
   8991      func_append objs "$old_deplibs"
   8992      ;;
   8993
   8994    lib)
   8995      # Make sure we only generate libraries of the form 'libNAME.la'.
   8996      case $outputname in
   8997      lib*)
   8998	func_stripname 'lib' '.la' "$outputname"
   8999	name=$func_stripname_result
   9000	eval shared_ext=\"$shrext_cmds\"
   9001	eval libname=\"$libname_spec\"
   9002	;;
   9003      *)
   9004	test no = "$module" \
   9005	  && func_fatal_help "libtool library '$output' must begin with 'lib'"
   9006
   9007	if test no != "$need_lib_prefix"; then
   9008	  # Add the "lib" prefix for modules if required
   9009	  func_stripname '' '.la' "$outputname"
   9010	  name=$func_stripname_result
   9011	  eval shared_ext=\"$shrext_cmds\"
   9012	  eval libname=\"$libname_spec\"
   9013	else
   9014	  func_stripname '' '.la' "$outputname"
   9015	  libname=$func_stripname_result
   9016	fi
   9017	;;
   9018      esac
   9019
   9020      if test -n "$objs"; then
   9021	if test pass_all != "$deplibs_check_method"; then
   9022	  func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
   9023	else
   9024	  echo
   9025	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
   9026	  $ECHO "*** objects $objs is not portable!"
   9027	  func_append libobjs " $objs"
   9028	fi
   9029      fi
   9030
   9031      test no = "$dlself" \
   9032	|| func_warning "'-dlopen self' is ignored for libtool libraries"
   9033
   9034      set dummy $rpath
   9035      shift
   9036      test 1 -lt "$#" \
   9037	&& func_warning "ignoring multiple '-rpath's for a libtool library"
   9038
   9039      install_libdir=$1
   9040
   9041      oldlibs=
   9042      if test -z "$rpath"; then
   9043	if test yes = "$build_libtool_libs"; then
   9044	  # Building a libtool convenience library.
   9045	  # Some compilers have problems with a '.al' extension so
   9046	  # convenience libraries should have the same extension an
   9047	  # archive normally would.
   9048	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
   9049	  build_libtool_libs=convenience
   9050	  build_old_libs=yes
   9051	fi
   9052
   9053	test -n "$vinfo" && \
   9054	  func_warning "'-version-info/-version-number' is ignored for convenience libraries"
   9055
   9056	test -n "$release" && \
   9057	  func_warning "'-release' is ignored for convenience libraries"
   9058      else
   9059
   9060	# Parse the version information argument.
   9061	save_ifs=$IFS; IFS=:
   9062	set dummy $vinfo 0 0 0
   9063	shift
   9064	IFS=$save_ifs
   9065
   9066	test -n "$7" && \
   9067	  func_fatal_help "too many parameters to '-version-info'"
   9068
   9069	# convert absolute version numbers to libtool ages
   9070	# this retains compatibility with .la files and attempts
   9071	# to make the code below a bit more comprehensible
   9072
   9073	case $vinfo_number in
   9074	yes)
   9075	  number_major=$1
   9076	  number_minor=$2
   9077	  number_revision=$3
   9078	  #
   9079	  # There are really only two kinds -- those that
   9080	  # use the current revision as the major version
   9081	  # and those that subtract age and use age as
   9082	  # a minor version.  But, then there is irix
   9083	  # that has an extra 1 added just for fun
   9084	  #
   9085	  case $version_type in
   9086	  # correct linux to gnu/linux during the next big refactor
   9087	  darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none)
   9088	    func_arith $number_major + $number_minor
   9089	    current=$func_arith_result
   9090	    age=$number_minor
   9091	    revision=$number_revision
   9092	    ;;
   9093	  freebsd-aout|qnx|sunos)
   9094	    current=$number_major
   9095	    revision=$number_minor
   9096	    age=0
   9097	    ;;
   9098	  irix|nonstopux)
   9099	    func_arith $number_major + $number_minor
   9100	    current=$func_arith_result
   9101	    age=$number_minor
   9102	    revision=$number_minor
   9103	    lt_irix_increment=no
   9104	    ;;
   9105	  esac
   9106	  ;;
   9107	no)
   9108	  current=$1
   9109	  revision=$2
   9110	  age=$3
   9111	  ;;
   9112	esac
   9113
   9114	# Check that each of the things are valid numbers.
   9115	case $current in
   9116	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]) ;;
   9117	*)
   9118	  func_error "CURRENT '$current' must be a nonnegative integer"
   9119	  func_fatal_error "'$vinfo' is not valid version information"
   9120	  ;;
   9121	esac
   9122
   9123	case $revision in
   9124	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]) ;;
   9125	*)
   9126	  func_error "REVISION '$revision' must be a nonnegative integer"
   9127	  func_fatal_error "'$vinfo' is not valid version information"
   9128	  ;;
   9129	esac
   9130
   9131	case $age in
   9132	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]) ;;
   9133	*)
   9134	  func_error "AGE '$age' must be a nonnegative integer"
   9135	  func_fatal_error "'$vinfo' is not valid version information"
   9136	  ;;
   9137	esac
   9138
   9139	if test "$age" -gt "$current"; then
   9140	  func_error "AGE '$age' is greater than the current interface number '$current'"
   9141	  func_fatal_error "'$vinfo' is not valid version information"
   9142	fi
   9143
   9144	# Calculate the version variables.
   9145	major=
   9146	versuffix=
   9147	verstring=
   9148	case $version_type in
   9149	none) ;;
   9150
   9151	darwin)
   9152	  # Like Linux, but with the current version available in
   9153	  # verstring for coding it into the library header
   9154	  func_arith $current - $age
   9155	  major=.$func_arith_result
   9156	  versuffix=$major.$age.$revision
   9157	  # Darwin ld doesn't like 0 for these options...
   9158	  func_arith $current + 1
   9159	  minor_current=$func_arith_result
   9160	  xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
   9161	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
   9162          # On Darwin other compilers
   9163          case $CC in
   9164              nagfor*)
   9165                  verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
   9166                  ;;
   9167              *)
   9168                  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
   9169                  ;;
   9170          esac
   9171	  ;;
   9172
   9173	freebsd-aout)
   9174	  major=.$current
   9175	  versuffix=.$current.$revision
   9176	  ;;
   9177
   9178	freebsd-elf | midnightbsd-elf)
   9179	  func_arith $current - $age
   9180	  major=.$func_arith_result
   9181	  versuffix=$major.$age.$revision
   9182	  ;;
   9183
   9184	irix | nonstopux)
   9185	  if test no = "$lt_irix_increment"; then
   9186	    func_arith $current - $age
   9187	  else
   9188	    func_arith $current - $age + 1
   9189	  fi
   9190	  major=$func_arith_result
   9191
   9192	  case $version_type in
   9193	    nonstopux) verstring_prefix=nonstopux ;;
   9194	    *)         verstring_prefix=sgi ;;
   9195	  esac
   9196	  verstring=$verstring_prefix$major.$revision
   9197
   9198	  # Add in all the interfaces that we are compatible with.
   9199	  loop=$revision
   9200	  while test 0 -ne "$loop"; do
   9201	    func_arith $revision - $loop
   9202	    iface=$func_arith_result
   9203	    func_arith $loop - 1
   9204	    loop=$func_arith_result
   9205	    verstring=$verstring_prefix$major.$iface:$verstring
   9206	  done
   9207
   9208	  # Before this point, $major must not contain '.'.
   9209	  major=.$major
   9210	  versuffix=$major.$revision
   9211	  ;;
   9212
   9213	linux) # correct to gnu/linux during the next big refactor
   9214	  func_arith $current - $age
   9215	  major=.$func_arith_result
   9216	  versuffix=$major.$age.$revision
   9217	  ;;
   9218
   9219	osf)
   9220	  func_arith $current - $age
   9221	  major=.$func_arith_result
   9222	  versuffix=.$current.$age.$revision
   9223	  verstring=$current.$age.$revision
   9224
   9225	  # Add in all the interfaces that we are compatible with.
   9226	  loop=$age
   9227	  while test 0 -ne "$loop"; do
   9228	    func_arith $current - $loop
   9229	    iface=$func_arith_result
   9230	    func_arith $loop - 1
   9231	    loop=$func_arith_result
   9232	    verstring=$verstring:$iface.0
   9233	  done
   9234
   9235	  # Make executables depend on our current version.
   9236	  func_append verstring ":$current.0"
   9237	  ;;
   9238
   9239	qnx)
   9240	  major=.$current
   9241	  versuffix=.$current
   9242	  ;;
   9243
   9244	sco)
   9245	  major=.$current
   9246	  versuffix=.$current
   9247	  ;;
   9248
   9249	sunos)
   9250	  major=.$current
   9251	  versuffix=.$current.$revision
   9252	  ;;
   9253
   9254	windows)
   9255	  # Use '-' rather than '.', since we only want one
   9256	  # extension on DOS 8.3 file systems.
   9257	  func_arith $current - $age
   9258	  major=$func_arith_result
   9259	  versuffix=-$major
   9260	  ;;
   9261
   9262	*)
   9263	  func_fatal_configuration "unknown library version type '$version_type'"
   9264	  ;;
   9265	esac
   9266
   9267	# Clear the version info if we defaulted, and they specified a release.
   9268	if test -z "$vinfo" && test -n "$release"; then
   9269	  major=
   9270	  case $version_type in
   9271	  darwin)
   9272	    # we can't check for "0.0" in archive_cmds due to quoting
   9273	    # problems, so we reset it completely
   9274	    verstring=
   9275	    ;;
   9276	  *)
   9277	    verstring=0.0
   9278	    ;;
   9279	  esac
   9280	  if test no = "$need_version"; then
   9281	    versuffix=
   9282	  else
   9283	    versuffix=.0.0
   9284	  fi
   9285	fi
   9286
   9287	# Remove version info from name if versioning should be avoided
   9288	if test yes,no = "$avoid_version,$need_version"; then
   9289	  major=
   9290	  versuffix=
   9291	  verstring=
   9292	fi
   9293
   9294	# Check to see if the archive will have undefined symbols.
   9295	if test yes = "$allow_undefined"; then
   9296	  if test unsupported = "$allow_undefined_flag"; then
   9297	    if test yes = "$build_old_libs"; then
   9298	      func_warning "undefined symbols not allowed in $host shared libraries; building static only"
   9299	      build_libtool_libs=no
   9300	    else
   9301	      func_fatal_error "can't build $host shared library unless -no-undefined is specified"
   9302	    fi
   9303	  fi
   9304	else
   9305	  # Don't allow undefined symbols.
   9306	  allow_undefined_flag=$no_undefined_flag
   9307	fi
   9308
   9309      fi
   9310
   9311      func_generate_dlsyms "$libname" "$libname" :
   9312      func_append libobjs " $symfileobj"
   9313      test " " = "$libobjs" && libobjs=
   9314
   9315      if test relink != "$opt_mode"; then
   9316	# Remove our outputs, but don't remove object files since they
   9317	# may have been created when compiling PIC objects.
   9318	removelist=
   9319	tempremovelist=`$ECHO "$output_objdir/*"`
   9320	for p in $tempremovelist; do
   9321	  case $p in
   9322	    *.$objext | *.gcno)
   9323	       ;;
   9324	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
   9325	       if test -n "$precious_files_regex"; then
   9326		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
   9327		 then
   9328		   continue
   9329		 fi
   9330	       fi
   9331	       func_append removelist " $p"
   9332	       ;;
   9333	    *) ;;
   9334	  esac
   9335	done
   9336	test -n "$removelist" && \
   9337	  func_show_eval "${RM}r \$removelist"
   9338      fi
   9339
   9340      # Now set the variables for building old libraries.
   9341      if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
   9342	func_append oldlibs " $output_objdir/$libname.$libext"
   9343
   9344	# Transform .lo files to .o files.
   9345	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
   9346      fi
   9347
   9348      # Eliminate all temporary directories.
   9349      #for path in $notinst_path; do
   9350      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
   9351      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
   9352      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
   9353      #done
   9354
   9355      if test -n "$xrpath"; then
   9356	# If the user specified any rpath flags, then add them.
   9357	temp_xrpath=
   9358	for libdir in $xrpath; do
   9359	  func_replace_sysroot "$libdir"
   9360	  func_append temp_xrpath " -R$func_replace_sysroot_result"
   9361	  case "$finalize_rpath " in
   9362	  *" $libdir "*) ;;
   9363	  *) func_append finalize_rpath " $libdir" ;;
   9364	  esac
   9365	done
   9366	if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
   9367	  dependency_libs="$temp_xrpath $dependency_libs"
   9368	fi
   9369      fi
   9370
   9371      # Make sure dlfiles contains only unique files that won't be dlpreopened
   9372      old_dlfiles=$dlfiles
   9373      dlfiles=
   9374      for lib in $old_dlfiles; do
   9375	case " $dlprefiles $dlfiles " in
   9376	*" $lib "*) ;;
   9377	*) func_append dlfiles " $lib" ;;
   9378	esac
   9379      done
   9380
   9381      # Make sure dlprefiles contains only unique files
   9382      old_dlprefiles=$dlprefiles
   9383      dlprefiles=
   9384      for lib in $old_dlprefiles; do
   9385	case "$dlprefiles " in
   9386	*" $lib "*) ;;
   9387	*) func_append dlprefiles " $lib" ;;
   9388	esac
   9389      done
   9390
   9391      if test yes = "$build_libtool_libs"; then
   9392	if test -n "$rpath"; then
   9393	  case $host in
   9394	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
   9395	    # these systems don't actually have a c library (as such)!
   9396	    ;;
   9397	  *-*-rhapsody* | *-*-darwin1.[012])
   9398	    # Rhapsody C library is in the System framework
   9399	    func_append deplibs " System.ltframework"
   9400	    ;;
   9401	  *-*-netbsd*)
   9402	    # Don't link with libc until the a.out ld.so is fixed.
   9403	    ;;
   9404	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
   9405	    # Do not include libc due to us having libc/libc_r.
   9406	    ;;
   9407	  *-*-sco3.2v5* | *-*-sco5v6*)
   9408	    # Causes problems with __ctype
   9409	    ;;
   9410	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
   9411	    # Compiler inserts libc in the correct place for threads to work
   9412	    ;;
   9413	  *)
   9414	    # Add libc to deplibs on all other systems if necessary.
   9415	    if test yes = "$build_libtool_need_lc"; then
   9416	      func_append deplibs " -lc"
   9417	    fi
   9418	    ;;
   9419	  esac
   9420	fi
   9421
   9422	# Transform deplibs into only deplibs that can be linked in shared.
   9423	name_save=$name
   9424	libname_save=$libname
   9425	release_save=$release
   9426	versuffix_save=$versuffix
   9427	major_save=$major
   9428	# I'm not sure if I'm treating the release correctly.  I think
   9429	# release should show up in the -l (ie -lgmp5) so we don't want to
   9430	# add it in twice.  Is that correct?
   9431	release=
   9432	versuffix=
   9433	major=
   9434	newdeplibs=
   9435	droppeddeps=no
   9436	case $deplibs_check_method in
   9437	pass_all)
   9438	  # Don't check for shared/static.  Everything works.
   9439	  # This might be a little naive.  We might want to check
   9440	  # whether the library exists or not.  But this is on
   9441	  # osf3 & osf4 and I'm not really sure... Just
   9442	  # implementing what was already the behavior.
   9443	  newdeplibs=$deplibs
   9444	  ;;
   9445	test_compile)
   9446	  # This code stresses the "libraries are programs" paradigm to its
   9447	  # limits. Maybe even breaks it.  We compile a program, linking it
   9448	  # against the deplibs as a proxy for the library.  Then we can check
   9449	  # whether they linked in statically or dynamically with ldd.
   9450	  $opt_dry_run || $RM conftest.c
   9451	  cat > conftest.c <<EOF
   9452	  int main() { return 0; }
   9453EOF
   9454	  $opt_dry_run || $RM conftest
   9455	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
   9456	    ldd_output=`ldd conftest`
   9457	    for i in $deplibs; do
   9458	      case $i in
   9459	      -l*)
   9460		func_stripname -l '' "$i"
   9461		name=$func_stripname_result
   9462		if test yes = "$allow_libtool_libs_with_static_runtimes"; then
   9463		  case " $predeps $postdeps " in
   9464		  *" $i "*)
   9465		    func_append newdeplibs " $i"
   9466		    i=
   9467		    ;;
   9468		  esac
   9469		fi
   9470		if test -n "$i"; then
   9471		  libname=`eval "\\$ECHO \"$libname_spec\""`
   9472		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
   9473		  set dummy $deplib_matches; shift
   9474		  deplib_match=$1
   9475		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
   9476		    func_append newdeplibs " $i"
   9477		  else
   9478		    droppeddeps=yes
   9479		    echo
   9480		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
   9481		    echo "*** I have the capability to make that library automatically link in when"
   9482		    echo "*** you link to this library.  But I can only do this if you have a"
   9483		    echo "*** shared version of the library, which I believe you do not have"
   9484		    echo "*** because a test_compile did reveal that the linker did not use it for"
   9485		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
   9486		  fi
   9487		fi
   9488		;;
   9489	      *)
   9490		func_append newdeplibs " $i"
   9491		;;
   9492	      esac
   9493	    done
   9494	  else
   9495	    # Error occurred in the first compile.  Let's try to salvage
   9496	    # the situation: Compile a separate program for each library.
   9497	    for i in $deplibs; do
   9498	      case $i in
   9499	      -l*)
   9500		func_stripname -l '' "$i"
   9501		name=$func_stripname_result
   9502		$opt_dry_run || $RM conftest
   9503		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
   9504		  ldd_output=`ldd conftest`
   9505		  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
   9506		    case " $predeps $postdeps " in
   9507		    *" $i "*)
   9508		      func_append newdeplibs " $i"
   9509		      i=
   9510		      ;;
   9511		    esac
   9512		  fi
   9513		  if test -n "$i"; then
   9514		    libname=`eval "\\$ECHO \"$libname_spec\""`
   9515		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
   9516		    set dummy $deplib_matches; shift
   9517		    deplib_match=$1
   9518		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
   9519		      func_append newdeplibs " $i"
   9520		    else
   9521		      droppeddeps=yes
   9522		      echo
   9523		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
   9524		      echo "*** I have the capability to make that library automatically link in when"
   9525		      echo "*** you link to this library.  But I can only do this if you have a"
   9526		      echo "*** shared version of the library, which you do not appear to have"
   9527		      echo "*** because a test_compile did reveal that the linker did not use this one"
   9528		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
   9529		    fi
   9530		  fi
   9531		else
   9532		  droppeddeps=yes
   9533		  echo
   9534		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
   9535		  echo "*** make it link in!  You will probably need to install it or some"
   9536		  echo "*** library that it depends on before this library will be fully"
   9537		  echo "*** functional.  Installing it before continuing would be even better."
   9538		fi
   9539		;;
   9540	      *)
   9541		func_append newdeplibs " $i"
   9542		;;
   9543	      esac
   9544	    done
   9545	  fi
   9546	  ;;
   9547	file_magic*)
   9548	  set dummy $deplibs_check_method; shift
   9549	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
   9550	  for a_deplib in $deplibs; do
   9551	    case $a_deplib in
   9552	    -l*)
   9553	      func_stripname -l '' "$a_deplib"
   9554	      name=$func_stripname_result
   9555	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
   9556		case " $predeps $postdeps " in
   9557		*" $a_deplib "*)
   9558		  func_append newdeplibs " $a_deplib"
   9559		  a_deplib=
   9560		  ;;
   9561		esac
   9562	      fi
   9563	      if test -n "$a_deplib"; then
   9564		libname=`eval "\\$ECHO \"$libname_spec\""`
   9565		if test -n "$file_magic_glob"; then
   9566		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
   9567		else
   9568		  libnameglob=$libname
   9569		fi
   9570		test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
   9571		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
   9572		  if test yes = "$want_nocaseglob"; then
   9573		    shopt -s nocaseglob
   9574		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
   9575		    $nocaseglob
   9576		  else
   9577		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
   9578		  fi
   9579		  for potent_lib in $potential_libs; do
   9580		      # Follow soft links.
   9581		      if ls -lLd "$potent_lib" 2>/dev/null |
   9582			 $GREP " -> " >/dev/null; then
   9583			continue
   9584		      fi
   9585		      # The statement above tries to avoid entering an
   9586		      # endless loop below, in case of cyclic links.
   9587		      # We might still enter an endless loop, since a link
   9588		      # loop can be closed while we follow links,
   9589		      # but so what?
   9590		      potlib=$potent_lib
   9591		      while test -h "$potlib" 2>/dev/null; do
   9592			potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
   9593			case $potliblink in
   9594			[\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
   9595			*) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
   9596			esac
   9597		      done
   9598		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
   9599			 $SED -e 10q |
   9600			 $EGREP "$file_magic_regex" > /dev/null; then
   9601			func_append newdeplibs " $a_deplib"
   9602			a_deplib=
   9603			break 2
   9604		      fi
   9605		  done
   9606		done
   9607	      fi
   9608	      if test -n "$a_deplib"; then
   9609		droppeddeps=yes
   9610		echo
   9611		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
   9612		echo "*** I have the capability to make that library automatically link in when"
   9613		echo "*** you link to this library.  But I can only do this if you have a"
   9614		echo "*** shared version of the library, which you do not appear to have"
   9615		echo "*** because I did check the linker path looking for a file starting"
   9616		if test -z "$potlib"; then
   9617		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
   9618		else
   9619		  $ECHO "*** with $libname and none of the candidates passed a file format test"
   9620		  $ECHO "*** using a file magic. Last file checked: $potlib"
   9621		fi
   9622	      fi
   9623	      ;;
   9624	    *)
   9625	      # Add a -L argument.
   9626	      func_append newdeplibs " $a_deplib"
   9627	      ;;
   9628	    esac
   9629	  done # Gone through all deplibs.
   9630	  ;;
   9631	match_pattern*)
   9632	  set dummy $deplibs_check_method; shift
   9633	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
   9634	  for a_deplib in $deplibs; do
   9635	    case $a_deplib in
   9636	    -l*)
   9637	      func_stripname -l '' "$a_deplib"
   9638	      name=$func_stripname_result
   9639	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
   9640		case " $predeps $postdeps " in
   9641		*" $a_deplib "*)
   9642		  func_append newdeplibs " $a_deplib"
   9643		  a_deplib=
   9644		  ;;
   9645		esac
   9646	      fi
   9647	      if test -n "$a_deplib"; then
   9648		libname=`eval "\\$ECHO \"$libname_spec\""`
   9649		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
   9650		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
   9651		  for potent_lib in $potential_libs; do
   9652		    potlib=$potent_lib # see symlink-check above in file_magic test
   9653		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
   9654		       $EGREP "$match_pattern_regex" > /dev/null; then
   9655		      func_append newdeplibs " $a_deplib"
   9656		      a_deplib=
   9657		      break 2
   9658		    fi
   9659		  done
   9660		done
   9661	      fi
   9662	      if test -n "$a_deplib"; then
   9663		droppeddeps=yes
   9664		echo
   9665		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
   9666		echo "*** I have the capability to make that library automatically link in when"
   9667		echo "*** you link to this library.  But I can only do this if you have a"
   9668		echo "*** shared version of the library, which you do not appear to have"
   9669		echo "*** because I did check the linker path looking for a file starting"
   9670		if test -z "$potlib"; then
   9671		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
   9672		else
   9673		  $ECHO "*** with $libname and none of the candidates passed a file format test"
   9674		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
   9675		fi
   9676	      fi
   9677	      ;;
   9678	    *)
   9679	      # Add a -L argument.
   9680	      func_append newdeplibs " $a_deplib"
   9681	      ;;
   9682	    esac
   9683	  done # Gone through all deplibs.
   9684	  ;;
   9685	none | unknown | *)
   9686	  newdeplibs=
   9687	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
   9688	  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
   9689	    for i in $predeps $postdeps; do
   9690	      # can't use Xsed below, because $i might contain '/'
   9691	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
   9692	    done
   9693	  fi
   9694	  case $tmp_deplibs in
   9695	  *[!\	\ ]*)
   9696	    echo
   9697	    if test none = "$deplibs_check_method"; then
   9698	      echo "*** Warning: inter-library dependencies are not supported in this platform."
   9699	    else
   9700	      echo "*** Warning: inter-library dependencies are not known to be supported."
   9701	    fi
   9702	    echo "*** All declared inter-library dependencies are being dropped."
   9703	    droppeddeps=yes
   9704	    ;;
   9705	  esac
   9706	  ;;
   9707	esac
   9708	versuffix=$versuffix_save
   9709	major=$major_save
   9710	release=$release_save
   9711	libname=$libname_save
   9712	name=$name_save
   9713
   9714	case $host in
   9715	*-*-rhapsody* | *-*-darwin1.[012])
   9716	  # On Rhapsody replace the C library with the System framework
   9717	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
   9718	  ;;
   9719	esac
   9720
   9721	if test yes = "$droppeddeps"; then
   9722	  if test yes = "$module"; then
   9723	    echo
   9724	    echo "*** Warning: libtool could not satisfy all declared inter-library"
   9725	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
   9726	    echo "*** a static module, that should work as long as the dlopening"
   9727	    echo "*** application is linked with the -dlopen flag."
   9728	    if test -z "$global_symbol_pipe"; then
   9729	      echo
   9730	      echo "*** However, this would only work if libtool was able to extract symbol"
   9731	      echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
   9732	      echo "*** not find such a program.  So, this module is probably useless."
   9733	      echo "*** 'nm' from GNU binutils and a full rebuild may help."
   9734	    fi
   9735	    if test no = "$build_old_libs"; then
   9736	      oldlibs=$output_objdir/$libname.$libext
   9737	      build_libtool_libs=module
   9738	      build_old_libs=yes
   9739	    else
   9740	      build_libtool_libs=no
   9741	    fi
   9742	  else
   9743	    echo "*** The inter-library dependencies that have been dropped here will be"
   9744	    echo "*** automatically added whenever a program is linked with this library"
   9745	    echo "*** or is declared to -dlopen it."
   9746
   9747	    if test no = "$allow_undefined"; then
   9748	      echo
   9749	      echo "*** Since this library must not contain undefined symbols,"
   9750	      echo "*** because either the platform does not support them or"
   9751	      echo "*** it was explicitly requested with -no-undefined,"
   9752	      echo "*** libtool will only create a static version of it."
   9753	      if test no = "$build_old_libs"; then
   9754		oldlibs=$output_objdir/$libname.$libext
   9755		build_libtool_libs=module
   9756		build_old_libs=yes
   9757	      else
   9758		build_libtool_libs=no
   9759	      fi
   9760	    fi
   9761	  fi
   9762	fi
   9763	# Done checking deplibs!
   9764	deplibs=$newdeplibs
   9765      fi
   9766      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
   9767      case $host in
   9768	*-*-darwin*)
   9769	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   9770	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   9771	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   9772	  ;;
   9773      esac
   9774
   9775      # move library search paths that coincide with paths to not yet
   9776      # installed libraries to the beginning of the library search list
   9777      new_libs=
   9778      for path in $notinst_path; do
   9779	case " $new_libs " in
   9780	*" -L$path/$objdir "*) ;;
   9781	*)
   9782	  case " $deplibs " in
   9783	  *" -L$path/$objdir "*)
   9784	    func_append new_libs " -L$path/$objdir" ;;
   9785	  esac
   9786	  ;;
   9787	esac
   9788      done
   9789      for deplib in $deplibs; do
   9790	case $deplib in
   9791	-L*)
   9792	  case " $new_libs " in
   9793	  *" $deplib "*) ;;
   9794	  *) func_append new_libs " $deplib" ;;
   9795	  esac
   9796	  ;;
   9797	*) func_append new_libs " $deplib" ;;
   9798	esac
   9799      done
   9800      deplibs=$new_libs
   9801
   9802      # All the library-specific variables (install_libdir is set above).
   9803      library_names=
   9804      old_library=
   9805      dlname=
   9806
   9807      # Test again, we may have decided not to build it any more
   9808      if test yes = "$build_libtool_libs"; then
   9809	# Remove $wl instances when linking with ld.
   9810	# FIXME: should test the right _cmds variable.
   9811	case $archive_cmds in
   9812	  *\$LD\ *) wl= ;;
   9813        esac
   9814	if test yes = "$hardcode_into_libs"; then
   9815	  # Hardcode the library paths
   9816	  hardcode_libdirs=
   9817	  dep_rpath=
   9818	  rpath=$finalize_rpath
   9819	  test relink = "$opt_mode" || rpath=$compile_rpath$rpath
   9820	  for libdir in $rpath; do
   9821	    if test -n "$hardcode_libdir_flag_spec"; then
   9822	      if test -n "$hardcode_libdir_separator"; then
   9823		func_replace_sysroot "$libdir"
   9824		libdir=$func_replace_sysroot_result
   9825		if test -z "$hardcode_libdirs"; then
   9826		  hardcode_libdirs=$libdir
   9827		else
   9828		  # Just accumulate the unique libdirs.
   9829		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
   9830		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
   9831		    ;;
   9832		  *)
   9833		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
   9834		    ;;
   9835		  esac
   9836		fi
   9837	      else
   9838		eval flag=\"$hardcode_libdir_flag_spec\"
   9839		func_append dep_rpath " $flag"
   9840	      fi
   9841	    elif test -n "$runpath_var"; then
   9842	      case "$perm_rpath " in
   9843	      *" $libdir "*) ;;
   9844	      *) func_append perm_rpath " $libdir" ;;
   9845	      esac
   9846	    fi
   9847	  done
   9848	  # Substitute the hardcoded libdirs into the rpath.
   9849	  if test -n "$hardcode_libdir_separator" &&
   9850	     test -n "$hardcode_libdirs"; then
   9851	    libdir=$hardcode_libdirs
   9852	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
   9853	  fi
   9854	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
   9855	    # We should set the runpath_var.
   9856	    rpath=
   9857	    for dir in $perm_rpath; do
   9858	      func_append rpath "$dir:"
   9859	    done
   9860	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
   9861	  fi
   9862	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
   9863	fi
   9864
   9865	shlibpath=$finalize_shlibpath
   9866	test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
   9867	if test -n "$shlibpath"; then
   9868	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
   9869	fi
   9870
   9871	# Get the real and link names of the library.
   9872	eval shared_ext=\"$shrext_cmds\"
   9873	eval library_names=\"$library_names_spec\"
   9874	set dummy $library_names
   9875	shift
   9876	realname=$1
   9877	shift
   9878
   9879	if test -n "$soname_spec"; then
   9880	  eval soname=\"$soname_spec\"
   9881	else
   9882	  soname=$realname
   9883	fi
   9884	if test -z "$dlname"; then
   9885	  dlname=$soname
   9886	fi
   9887
   9888	lib=$output_objdir/$realname
   9889	linknames=
   9890	for link
   9891	do
   9892	  func_append linknames " $link"
   9893	done
   9894
   9895	# Use standard objects if they are pic
   9896	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
   9897	test "X$libobjs" = "X " && libobjs=
   9898
   9899	delfiles=
   9900	if test -n "$export_symbols" && test -n "$include_expsyms"; then
   9901	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
   9902	  export_symbols=$output_objdir/$libname.uexp
   9903	  func_append delfiles " $export_symbols"
   9904	fi
   9905
   9906	orig_export_symbols=
   9907	case $host_os in
   9908	cygwin* | mingw* | cegcc*)
   9909	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
   9910	    # exporting using user supplied symfile
   9911	    func_dll_def_p "$export_symbols" || {
   9912	      # and it's NOT already a .def file. Must figure out
   9913	      # which of the given symbols are data symbols and tag
   9914	      # them as such. So, trigger use of export_symbols_cmds.
   9915	      # export_symbols gets reassigned inside the "prepare
   9916	      # the list of exported symbols" if statement, so the
   9917	      # include_expsyms logic still works.
   9918	      orig_export_symbols=$export_symbols
   9919	      export_symbols=
   9920	      always_export_symbols=yes
   9921	    }
   9922	  fi
   9923	  ;;
   9924	esac
   9925
   9926	# Prepare the list of exported symbols
   9927	if test -z "$export_symbols"; then
   9928	  if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
   9929	    func_verbose "generating symbol list for '$libname.la'"
   9930	    export_symbols=$output_objdir/$libname.exp
   9931	    $opt_dry_run || $RM $export_symbols
   9932	    cmds=$export_symbols_cmds
   9933	    save_ifs=$IFS; IFS='~'
   9934	    for cmd1 in $cmds; do
   9935	      IFS=$save_ifs
   9936	      # Take the normal branch if the nm_file_list_spec branch
   9937	      # doesn't work or if tool conversion is not needed.
   9938	      case $nm_file_list_spec~$to_tool_file_cmd in
   9939		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
   9940		  try_normal_branch=yes
   9941		  eval cmd=\"$cmd1\"
   9942		  func_len " $cmd"
   9943		  len=$func_len_result
   9944		  ;;
   9945		*)
   9946		  try_normal_branch=no
   9947		  ;;
   9948	      esac
   9949	      if test yes = "$try_normal_branch" \
   9950		 && { test "$len" -lt "$max_cmd_len" \
   9951		      || test "$max_cmd_len" -le -1; }
   9952	      then
   9953		func_show_eval "$cmd" 'exit $?'
   9954		skipped_export=false
   9955	      elif test -n "$nm_file_list_spec"; then
   9956		func_basename "$output"
   9957		output_la=$func_basename_result
   9958		save_libobjs=$libobjs
   9959		save_output=$output
   9960		output=$output_objdir/$output_la.nm
   9961		func_to_tool_file "$output"
   9962		libobjs=$nm_file_list_spec$func_to_tool_file_result
   9963		func_append delfiles " $output"
   9964		func_verbose "creating $NM input file list: $output"
   9965		for obj in $save_libobjs; do
   9966		  func_to_tool_file "$obj"
   9967		  $ECHO "$func_to_tool_file_result"
   9968		done > "$output"
   9969		eval cmd=\"$cmd1\"
   9970		func_show_eval "$cmd" 'exit $?'
   9971		output=$save_output
   9972		libobjs=$save_libobjs
   9973		skipped_export=false
   9974	      else
   9975		# The command line is too long to execute in one step.
   9976		func_verbose "using reloadable object file for export list..."
   9977		skipped_export=:
   9978		# Break out early, otherwise skipped_export may be
   9979		# set to false by a later but shorter cmd.
   9980		break
   9981	      fi
   9982	    done
   9983	    IFS=$save_ifs
   9984	    if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
   9985	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
   9986	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
   9987	    fi
   9988	  fi
   9989	fi
   9990
   9991	if test -n "$export_symbols" && test -n "$include_expsyms"; then
   9992	  tmp_export_symbols=$export_symbols
   9993	  test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
   9994	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
   9995	fi
   9996
   9997	if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
   9998	  # The given exports_symbols file has to be filtered, so filter it.
   9999	  func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
  10000	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
  10001	  # 's' commands, which not all seds can handle. GNU sed should be fine
  10002	  # though. Also, the filter scales superlinearly with the number of
  10003	  # global variables. join(1) would be nice here, but unfortunately
  10004	  # isn't a blessed tool.
  10005	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
  10006	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
  10007	  export_symbols=$output_objdir/$libname.def
  10008	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
  10009	fi
  10010
  10011	tmp_deplibs=
  10012	for test_deplib in $deplibs; do
  10013	  case " $convenience " in
  10014	  *" $test_deplib "*) ;;
  10015	  *)
  10016	    func_append tmp_deplibs " $test_deplib"
  10017	    ;;
  10018	  esac
  10019	done
  10020	deplibs=$tmp_deplibs
  10021
  10022	if test -n "$convenience"; then
  10023	  if test -n "$whole_archive_flag_spec" &&
  10024	    test yes = "$compiler_needs_object" &&
  10025	    test -z "$libobjs"; then
  10026	    # extract the archives, so we have objects to list.
  10027	    # TODO: could optimize this to just extract one archive.
  10028	    whole_archive_flag_spec=
  10029	  fi
  10030	  if test -n "$whole_archive_flag_spec"; then
  10031	    save_libobjs=$libobjs
  10032	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
  10033	    test "X$libobjs" = "X " && libobjs=
  10034	  else
  10035	    gentop=$output_objdir/${outputname}x
  10036	    func_append generated " $gentop"
  10037
  10038	    func_extract_archives $gentop $convenience
  10039	    func_append libobjs " $func_extract_archives_result"
  10040	    test "X$libobjs" = "X " && libobjs=
  10041	  fi
  10042	fi
  10043
  10044	if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
  10045	  eval flag=\"$thread_safe_flag_spec\"
  10046	  func_append linker_flags " $flag"
  10047	fi
  10048
  10049	# Make a backup of the uninstalled library when relinking
  10050	if test relink = "$opt_mode"; then
  10051	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
  10052	fi
  10053
  10054	# Do each of the archive commands.
  10055	if test yes = "$module" && test -n "$module_cmds"; then
  10056	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
  10057	    eval test_cmds=\"$module_expsym_cmds\"
  10058	    cmds=$module_expsym_cmds
  10059	  else
  10060	    eval test_cmds=\"$module_cmds\"
  10061	    cmds=$module_cmds
  10062	  fi
  10063	else
  10064	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  10065	    eval test_cmds=\"$archive_expsym_cmds\"
  10066	    cmds=$archive_expsym_cmds
  10067	  else
  10068	    eval test_cmds=\"$archive_cmds\"
  10069	    cmds=$archive_cmds
  10070	  fi
  10071	fi
  10072
  10073	if test : != "$skipped_export" &&
  10074	   func_len " $test_cmds" &&
  10075	   len=$func_len_result &&
  10076	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  10077	  :
  10078	else
  10079	  # The command line is too long to link in one step, link piecewise
  10080	  # or, if using GNU ld and skipped_export is not :, use a linker
  10081	  # script.
  10082
  10083	  # Save the value of $output and $libobjs because we want to
  10084	  # use them later.  If we have whole_archive_flag_spec, we
  10085	  # want to use save_libobjs as it was before
  10086	  # whole_archive_flag_spec was expanded, because we can't
  10087	  # assume the linker understands whole_archive_flag_spec.
  10088	  # This may have to be revisited, in case too many
  10089	  # convenience libraries get linked in and end up exceeding
  10090	  # the spec.
  10091	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
  10092	    save_libobjs=$libobjs
  10093	  fi
  10094	  save_output=$output
  10095	  func_basename "$output"
  10096	  output_la=$func_basename_result
  10097
  10098	  # Clear the reloadable object creation command queue and
  10099	  # initialize k to one.
  10100	  test_cmds=
  10101	  concat_cmds=
  10102	  objlist=
  10103	  last_robj=
  10104	  k=1
  10105
  10106	  if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
  10107	    output=$output_objdir/$output_la.lnkscript
  10108	    func_verbose "creating GNU ld script: $output"
  10109	    echo 'INPUT (' > $output
  10110	    for obj in $save_libobjs
  10111	    do
  10112	      func_to_tool_file "$obj"
  10113	      $ECHO "$func_to_tool_file_result" >> $output
  10114	    done
  10115	    echo ')' >> $output
  10116	    func_append delfiles " $output"
  10117	    func_to_tool_file "$output"
  10118	    output=$func_to_tool_file_result
  10119	  elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
  10120	    output=$output_objdir/$output_la.lnk
  10121	    func_verbose "creating linker input file list: $output"
  10122	    : > $output
  10123	    set x $save_libobjs
  10124	    shift
  10125	    firstobj=
  10126	    if test yes = "$compiler_needs_object"; then
  10127	      firstobj="$1 "
  10128	      shift
  10129	    fi
  10130	    for obj
  10131	    do
  10132	      func_to_tool_file "$obj"
  10133	      $ECHO "$func_to_tool_file_result" >> $output
  10134	    done
  10135	    func_append delfiles " $output"
  10136	    func_to_tool_file "$output"
  10137	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
  10138	  else
  10139	    if test -n "$save_libobjs"; then
  10140	      func_verbose "creating reloadable object files..."
  10141	      output=$output_objdir/$output_la-$k.$objext
  10142	      eval test_cmds=\"$reload_cmds\"
  10143	      func_len " $test_cmds"
  10144	      len0=$func_len_result
  10145	      len=$len0
  10146
  10147	      # Loop over the list of objects to be linked.
  10148	      for obj in $save_libobjs
  10149	      do
  10150		func_len " $obj"
  10151		func_arith $len + $func_len_result
  10152		len=$func_arith_result
  10153		if test -z "$objlist" ||
  10154		   test "$len" -lt "$max_cmd_len"; then
  10155		  func_append objlist " $obj"
  10156		else
  10157		  # The command $test_cmds is almost too long, add a
  10158		  # command to the queue.
  10159		  if test 1 -eq "$k"; then
  10160		    # The first file doesn't have a previous command to add.
  10161		    reload_objs=$objlist
  10162		    eval concat_cmds=\"$reload_cmds\"
  10163		  else
  10164		    # All subsequent reloadable object files will link in
  10165		    # the last one created.
  10166		    reload_objs="$objlist $last_robj"
  10167		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
  10168		  fi
  10169		  last_robj=$output_objdir/$output_la-$k.$objext
  10170		  func_arith $k + 1
  10171		  k=$func_arith_result
  10172		  output=$output_objdir/$output_la-$k.$objext
  10173		  objlist=" $obj"
  10174		  func_len " $last_robj"
  10175		  func_arith $len0 + $func_len_result
  10176		  len=$func_arith_result
  10177		fi
  10178	      done
  10179	      # Handle the remaining objects by creating one last
  10180	      # reloadable object file.  All subsequent reloadable object
  10181	      # files will link in the last one created.
  10182	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  10183	      reload_objs="$objlist $last_robj"
  10184	      eval concat_cmds=\"\$concat_cmds$reload_cmds\"
  10185	      if test -n "$last_robj"; then
  10186	        eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
  10187	      fi
  10188	      func_append delfiles " $output"
  10189
  10190	    else
  10191	      output=
  10192	    fi
  10193
  10194	    ${skipped_export-false} && {
  10195	      func_verbose "generating symbol list for '$libname.la'"
  10196	      export_symbols=$output_objdir/$libname.exp
  10197	      $opt_dry_run || $RM $export_symbols
  10198	      libobjs=$output
  10199	      # Append the command to create the export file.
  10200	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  10201	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
  10202	      if test -n "$last_robj"; then
  10203		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
  10204	      fi
  10205	    }
  10206
  10207	    test -n "$save_libobjs" &&
  10208	      func_verbose "creating a temporary reloadable object file: $output"
  10209
  10210	    # Loop through the commands generated above and execute them.
  10211	    save_ifs=$IFS; IFS='~'
  10212	    for cmd in $concat_cmds; do
  10213	      IFS=$save_ifs
  10214	      $opt_quiet || {
  10215		  func_quote_arg expand,pretty "$cmd"
  10216		  eval "func_echo $func_quote_arg_result"
  10217	      }
  10218	      $opt_dry_run || eval "$cmd" || {
  10219		lt_exit=$?
  10220
  10221		# Restore the uninstalled library and exit
  10222		if test relink = "$opt_mode"; then
  10223		  ( cd "$output_objdir" && \
  10224		    $RM "${realname}T" && \
  10225		    $MV "${realname}U" "$realname" )
  10226		fi
  10227
  10228		exit $lt_exit
  10229	      }
  10230	    done
  10231	    IFS=$save_ifs
  10232
  10233	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
  10234	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
  10235	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
  10236	    fi
  10237	  fi
  10238
  10239          ${skipped_export-false} && {
  10240	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
  10241	      tmp_export_symbols=$export_symbols
  10242	      test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
  10243	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
  10244	    fi
  10245
  10246	    if test -n "$orig_export_symbols"; then
  10247	      # The given exports_symbols file has to be filtered, so filter it.
  10248	      func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
  10249	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
  10250	      # 's' commands, which not all seds can handle. GNU sed should be fine
  10251	      # though. Also, the filter scales superlinearly with the number of
  10252	      # global variables. join(1) would be nice here, but unfortunately
  10253	      # isn't a blessed tool.
  10254	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
  10255	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
  10256	      export_symbols=$output_objdir/$libname.def
  10257	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
  10258	    fi
  10259	  }
  10260
  10261	  libobjs=$output
  10262	  # Restore the value of output.
  10263	  output=$save_output
  10264
  10265	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
  10266	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
  10267	    test "X$libobjs" = "X " && libobjs=
  10268	  fi
  10269	  # Expand the library linking commands again to reset the
  10270	  # value of $libobjs for piecewise linking.
  10271
  10272	  # Do each of the archive commands.
  10273	  if test yes = "$module" && test -n "$module_cmds"; then
  10274	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
  10275	      cmds=$module_expsym_cmds
  10276	    else
  10277	      cmds=$module_cmds
  10278	    fi
  10279	  else
  10280	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  10281	      cmds=$archive_expsym_cmds
  10282	    else
  10283	      cmds=$archive_cmds
  10284	    fi
  10285	  fi
  10286	fi
  10287
  10288	if test -n "$delfiles"; then
  10289	  # Append the command to remove temporary files to $cmds.
  10290	  eval cmds=\"\$cmds~\$RM $delfiles\"
  10291	fi
  10292
  10293	# Add any objects from preloaded convenience libraries
  10294	if test -n "$dlprefiles"; then
  10295	  gentop=$output_objdir/${outputname}x
  10296	  func_append generated " $gentop"
  10297
  10298	  func_extract_archives $gentop $dlprefiles
  10299	  func_append libobjs " $func_extract_archives_result"
  10300	  test "X$libobjs" = "X " && libobjs=
  10301	fi
  10302
  10303	save_ifs=$IFS; IFS='~'
  10304	for cmd in $cmds; do
  10305	  IFS=$sp$nl
  10306	  eval cmd=\"$cmd\"
  10307	  IFS=$save_ifs
  10308	  $opt_quiet || {
  10309	    func_quote_arg expand,pretty "$cmd"
  10310	    eval "func_echo $func_quote_arg_result"
  10311	  }
  10312	  $opt_dry_run || eval "$cmd" || {
  10313	    lt_exit=$?
  10314
  10315	    # Restore the uninstalled library and exit
  10316	    if test relink = "$opt_mode"; then
  10317	      ( cd "$output_objdir" && \
  10318	        $RM "${realname}T" && \
  10319		$MV "${realname}U" "$realname" )
  10320	    fi
  10321
  10322	    exit $lt_exit
  10323	  }
  10324	done
  10325	IFS=$save_ifs
  10326
  10327	# Restore the uninstalled library and exit
  10328	if test relink = "$opt_mode"; then
  10329	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
  10330
  10331	  if test -n "$convenience"; then
  10332	    if test -z "$whole_archive_flag_spec"; then
  10333	      func_show_eval '${RM}r "$gentop"'
  10334	    fi
  10335	  fi
  10336
  10337	  exit $EXIT_SUCCESS
  10338	fi
  10339
  10340	# Create links to the real library.
  10341	for linkname in $linknames; do
  10342	  if test "$realname" != "$linkname"; then
  10343	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
  10344	  fi
  10345	done
  10346
  10347	# If -module or -export-dynamic was specified, set the dlname.
  10348	if test yes = "$module" || test yes = "$export_dynamic"; then
  10349	  # On all known operating systems, these are identical.
  10350	  dlname=$soname
  10351	fi
  10352      fi
  10353      ;;
  10354
  10355    obj)
  10356      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
  10357	func_warning "'-dlopen' is ignored for objects"
  10358      fi
  10359
  10360      case " $deplibs" in
  10361      *\ -l* | *\ -L*)
  10362	func_warning "'-l' and '-L' are ignored for objects" ;;
  10363      esac
  10364
  10365      test -n "$rpath" && \
  10366	func_warning "'-rpath' is ignored for objects"
  10367
  10368      test -n "$xrpath" && \
  10369	func_warning "'-R' is ignored for objects"
  10370
  10371      test -n "$vinfo" && \
  10372	func_warning "'-version-info' is ignored for objects"
  10373
  10374      test -n "$release" && \
  10375	func_warning "'-release' is ignored for objects"
  10376
  10377      case $output in
  10378      *.lo)
  10379	test -n "$objs$old_deplibs" && \
  10380	  func_fatal_error "cannot build library object '$output' from non-libtool objects"
  10381
  10382	libobj=$output
  10383	func_lo2o "$libobj"
  10384	obj=$func_lo2o_result
  10385	;;
  10386      *)
  10387	libobj=
  10388	obj=$output
  10389	;;
  10390      esac
  10391
  10392      # Delete the old objects.
  10393      $opt_dry_run || $RM $obj $libobj
  10394
  10395      # Objects from convenience libraries.  This assumes
  10396      # single-version convenience libraries.  Whenever we create
  10397      # different ones for PIC/non-PIC, this we'll have to duplicate
  10398      # the extraction.
  10399      reload_conv_objs=
  10400      gentop=
  10401      # if reload_cmds runs $LD directly, get rid of -Wl from
  10402      # whole_archive_flag_spec and hope we can get by with turning comma
  10403      # into space.
  10404      case $reload_cmds in
  10405        *\$LD[\ \$]*) wl= ;;
  10406      esac
  10407      if test -n "$convenience"; then
  10408	if test -n "$whole_archive_flag_spec"; then
  10409	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
  10410	  test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
  10411	  reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
  10412	else
  10413	  gentop=$output_objdir/${obj}x
  10414	  func_append generated " $gentop"
  10415
  10416	  func_extract_archives $gentop $convenience
  10417	  reload_conv_objs="$reload_objs $func_extract_archives_result"
  10418	fi
  10419      fi
  10420
  10421      # If we're not building shared, we need to use non_pic_objs
  10422      test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
  10423
  10424      # Create the old-style object.
  10425      reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
  10426
  10427      output=$obj
  10428      func_execute_cmds "$reload_cmds" 'exit $?'
  10429
  10430      # Exit if we aren't doing a library object file.
  10431      if test -z "$libobj"; then
  10432	if test -n "$gentop"; then
  10433	  func_show_eval '${RM}r "$gentop"'
  10434	fi
  10435
  10436	exit $EXIT_SUCCESS
  10437      fi
  10438
  10439      test yes = "$build_libtool_libs" || {
  10440	if test -n "$gentop"; then
  10441	  func_show_eval '${RM}r "$gentop"'
  10442	fi
  10443
  10444	# Create an invalid libtool object if no PIC, so that we don't
  10445	# accidentally link it into a program.
  10446	# $show "echo timestamp > $libobj"
  10447	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
  10448	exit $EXIT_SUCCESS
  10449      }
  10450
  10451      if test -n "$pic_flag" || test default != "$pic_mode"; then
  10452	# Only do commands if we really have different PIC objects.
  10453	reload_objs="$libobjs $reload_conv_objs"
  10454	output=$libobj
  10455	func_execute_cmds "$reload_cmds" 'exit $?'
  10456      fi
  10457
  10458      if test -n "$gentop"; then
  10459	func_show_eval '${RM}r "$gentop"'
  10460      fi
  10461
  10462      exit $EXIT_SUCCESS
  10463      ;;
  10464
  10465    prog)
  10466      case $host in
  10467	*cygwin*) func_stripname '' '.exe' "$output"
  10468	          output=$func_stripname_result.exe;;
  10469      esac
  10470      test -n "$vinfo" && \
  10471	func_warning "'-version-info' is ignored for programs"
  10472
  10473      test -n "$release" && \
  10474	func_warning "'-release' is ignored for programs"
  10475
  10476      $preload \
  10477	&& test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
  10478	&& func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
  10479
  10480      case $host in
  10481      *-*-rhapsody* | *-*-darwin1.[012])
  10482	# On Rhapsody replace the C library is the System framework
  10483	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
  10484	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
  10485	;;
  10486      esac
  10487
  10488      case $host in
  10489      *-*-darwin*)
  10490	# Don't allow lazy linking, it breaks C++ global constructors
  10491	# But is supposedly fixed on 10.4 or later (yay!).
  10492	if test CXX = "$tagname"; then
  10493	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
  10494	    10.[0123])
  10495	      func_append compile_command " $wl-bind_at_load"
  10496	      func_append finalize_command " $wl-bind_at_load"
  10497	    ;;
  10498	  esac
  10499	fi
  10500	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
  10501	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
  10502	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
  10503	;;
  10504      esac
  10505
  10506
  10507      # move library search paths that coincide with paths to not yet
  10508      # installed libraries to the beginning of the library search list
  10509      new_libs=
  10510      for path in $notinst_path; do
  10511	case " $new_libs " in
  10512	*" -L$path/$objdir "*) ;;
  10513	*)
  10514	  case " $compile_deplibs " in
  10515	  *" -L$path/$objdir "*)
  10516	    func_append new_libs " -L$path/$objdir" ;;
  10517	  esac
  10518	  ;;
  10519	esac
  10520      done
  10521      for deplib in $compile_deplibs; do
  10522	case $deplib in
  10523	-L*)
  10524	  case " $new_libs " in
  10525	  *" $deplib "*) ;;
  10526	  *) func_append new_libs " $deplib" ;;
  10527	  esac
  10528	  ;;
  10529	*) func_append new_libs " $deplib" ;;
  10530	esac
  10531      done
  10532      compile_deplibs=$new_libs
  10533
  10534
  10535      func_append compile_command " $compile_deplibs"
  10536      func_append finalize_command " $finalize_deplibs"
  10537
  10538      if test -n "$rpath$xrpath"; then
  10539	# If the user specified any rpath flags, then add them.
  10540	for libdir in $rpath $xrpath; do
  10541	  # This is the magic to use -rpath.
  10542	  case "$finalize_rpath " in
  10543	  *" $libdir "*) ;;
  10544	  *) func_append finalize_rpath " $libdir" ;;
  10545	  esac
  10546	done
  10547      fi
  10548
  10549      # Now hardcode the library paths
  10550      rpath=
  10551      hardcode_libdirs=
  10552      for libdir in $compile_rpath $finalize_rpath; do
  10553	if test -n "$hardcode_libdir_flag_spec"; then
  10554	  if test -n "$hardcode_libdir_separator"; then
  10555	    if test -z "$hardcode_libdirs"; then
  10556	      hardcode_libdirs=$libdir
  10557	    else
  10558	      # Just accumulate the unique libdirs.
  10559	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  10560	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  10561		;;
  10562	      *)
  10563		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
  10564		;;
  10565	      esac
  10566	    fi
  10567	  else
  10568	    eval flag=\"$hardcode_libdir_flag_spec\"
  10569	    func_append rpath " $flag"
  10570	  fi
  10571	elif test -n "$runpath_var"; then
  10572	  case "$perm_rpath " in
  10573	  *" $libdir "*) ;;
  10574	  *) func_append perm_rpath " $libdir" ;;
  10575	  esac
  10576	fi
  10577	case $host in
  10578	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
  10579	  testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
  10580	  case :$dllsearchpath: in
  10581	  *":$libdir:"*) ;;
  10582	  ::) dllsearchpath=$libdir;;
  10583	  *) func_append dllsearchpath ":$libdir";;
  10584	  esac
  10585	  case :$dllsearchpath: in
  10586	  *":$testbindir:"*) ;;
  10587	  ::) dllsearchpath=$testbindir;;
  10588	  *) func_append dllsearchpath ":$testbindir";;
  10589	  esac
  10590	  ;;
  10591	esac
  10592      done
  10593      # Substitute the hardcoded libdirs into the rpath.
  10594      if test -n "$hardcode_libdir_separator" &&
  10595	 test -n "$hardcode_libdirs"; then
  10596	libdir=$hardcode_libdirs
  10597	eval rpath=\" $hardcode_libdir_flag_spec\"
  10598      fi
  10599      compile_rpath=$rpath
  10600
  10601      rpath=
  10602      hardcode_libdirs=
  10603      for libdir in $finalize_rpath; do
  10604	if test -n "$hardcode_libdir_flag_spec"; then
  10605	  if test -n "$hardcode_libdir_separator"; then
  10606	    if test -z "$hardcode_libdirs"; then
  10607	      hardcode_libdirs=$libdir
  10608	    else
  10609	      # Just accumulate the unique libdirs.
  10610	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  10611	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  10612		;;
  10613	      *)
  10614		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
  10615		;;
  10616	      esac
  10617	    fi
  10618	  else
  10619	    eval flag=\"$hardcode_libdir_flag_spec\"
  10620	    func_append rpath " $flag"
  10621	  fi
  10622	elif test -n "$runpath_var"; then
  10623	  case "$finalize_perm_rpath " in
  10624	  *" $libdir "*) ;;
  10625	  *) func_append finalize_perm_rpath " $libdir" ;;
  10626	  esac
  10627	fi
  10628      done
  10629      # Substitute the hardcoded libdirs into the rpath.
  10630      if test -n "$hardcode_libdir_separator" &&
  10631	 test -n "$hardcode_libdirs"; then
  10632	libdir=$hardcode_libdirs
  10633	eval rpath=\" $hardcode_libdir_flag_spec\"
  10634      fi
  10635      finalize_rpath=$rpath
  10636
  10637      if test -n "$libobjs" && test yes = "$build_old_libs"; then
  10638	# Transform all the library objects into standard objects.
  10639	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
  10640	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
  10641      fi
  10642
  10643      func_generate_dlsyms "$outputname" "@PROGRAM@" false
  10644
  10645      # template prelinking step
  10646      if test -n "$prelink_cmds"; then
  10647	func_execute_cmds "$prelink_cmds" 'exit $?'
  10648      fi
  10649
  10650      wrappers_required=:
  10651      case $host in
  10652      *cegcc* | *mingw32ce*)
  10653        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
  10654        wrappers_required=false
  10655        ;;
  10656      *cygwin* | *mingw* )
  10657        test yes = "$build_libtool_libs" || wrappers_required=false
  10658        ;;
  10659      *)
  10660        if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
  10661          wrappers_required=false
  10662        fi
  10663        ;;
  10664      esac
  10665      $wrappers_required || {
  10666	# Replace the output file specification.
  10667	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
  10668	link_command=$compile_command$compile_rpath
  10669
  10670	# We have no uninstalled library dependencies, so finalize right now.
  10671	exit_status=0
  10672	func_show_eval "$link_command" 'exit_status=$?'
  10673
  10674	if test -n "$postlink_cmds"; then
  10675	  func_to_tool_file "$output"
  10676	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
  10677	  func_execute_cmds "$postlink_cmds" 'exit $?'
  10678	fi
  10679
  10680	# Delete the generated files.
  10681	if test -f "$output_objdir/${outputname}S.$objext"; then
  10682	  func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
  10683	fi
  10684
  10685	exit $exit_status
  10686      }
  10687
  10688      if test -n "$compile_shlibpath$finalize_shlibpath"; then
  10689	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
  10690      fi
  10691      if test -n "$finalize_shlibpath"; then
  10692	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
  10693      fi
  10694
  10695      compile_var=
  10696      finalize_var=
  10697      if test -n "$runpath_var"; then
  10698	if test -n "$perm_rpath"; then
  10699	  # We should set the runpath_var.
  10700	  rpath=
  10701	  for dir in $perm_rpath; do
  10702	    func_append rpath "$dir:"
  10703	  done
  10704	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
  10705	fi
  10706	if test -n "$finalize_perm_rpath"; then
  10707	  # We should set the runpath_var.
  10708	  rpath=
  10709	  for dir in $finalize_perm_rpath; do
  10710	    func_append rpath "$dir:"
  10711	  done
  10712	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
  10713	fi
  10714      fi
  10715
  10716      if test yes = "$no_install"; then
  10717	# We don't need to create a wrapper script.
  10718	link_command=$compile_var$compile_command$compile_rpath
  10719	# Replace the output file specification.
  10720	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
  10721	# Delete the old output file.
  10722	$opt_dry_run || $RM $output
  10723	# Link the executable and exit
  10724	func_show_eval "$link_command" 'exit $?'
  10725
  10726	if test -n "$postlink_cmds"; then
  10727	  func_to_tool_file "$output"
  10728	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
  10729	  func_execute_cmds "$postlink_cmds" 'exit $?'
  10730	fi
  10731
  10732	exit $EXIT_SUCCESS
  10733      fi
  10734
  10735      case $hardcode_action,$fast_install in
  10736        relink,*)
  10737	  # Fast installation is not supported
  10738	  link_command=$compile_var$compile_command$compile_rpath
  10739	  relink_command=$finalize_var$finalize_command$finalize_rpath
  10740
  10741	  func_warning "this platform does not like uninstalled shared libraries"
  10742	  func_warning "'$output' will be relinked during installation"
  10743	  ;;
  10744        *,yes)
  10745	  link_command=$finalize_var$compile_command$finalize_rpath
  10746	  relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
  10747          ;;
  10748	*,no)
  10749	  link_command=$compile_var$compile_command$compile_rpath
  10750	  relink_command=$finalize_var$finalize_command$finalize_rpath
  10751          ;;
  10752	*,needless)
  10753	  link_command=$finalize_var$compile_command$finalize_rpath
  10754	  relink_command=
  10755          ;;
  10756      esac
  10757
  10758      # Replace the output file specification.
  10759      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
  10760
  10761      # Delete the old output files.
  10762      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
  10763
  10764      func_show_eval "$link_command" 'exit $?'
  10765
  10766      if test -n "$postlink_cmds"; then
  10767	func_to_tool_file "$output_objdir/$outputname"
  10768	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'`
  10769	func_execute_cmds "$postlink_cmds" 'exit $?'
  10770      fi
  10771
  10772      # Now create the wrapper script.
  10773      func_verbose "creating $output"
  10774
  10775      # Quote the relink command for shipping.
  10776      if test -n "$relink_command"; then
  10777	# Preserve any variables that may affect compiler behavior
  10778	for var in $variables_saved_for_relink; do
  10779	  if eval test -z \"\${$var+set}\"; then
  10780	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
  10781	  elif eval var_value=\$$var; test -z "$var_value"; then
  10782	    relink_command="$var=; export $var; $relink_command"
  10783	  else
  10784	    func_quote_arg pretty "$var_value"
  10785	    relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
  10786	  fi
  10787	done
  10788	func_quote eval cd "`pwd`"
  10789	func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)"
  10790	relink_command=$func_quote_arg_unquoted_result
  10791      fi
  10792
  10793      # Only actually do things if not in dry run mode.
  10794      $opt_dry_run || {
  10795	# win32 will think the script is a binary if it has
  10796	# a .exe suffix, so we strip it off here.
  10797	case $output in
  10798	  *.exe) func_stripname '' '.exe' "$output"
  10799	         output=$func_stripname_result ;;
  10800	esac
  10801	# test for cygwin because mv fails w/o .exe extensions
  10802	case $host in
  10803	  *cygwin*)
  10804	    exeext=.exe
  10805	    func_stripname '' '.exe' "$outputname"
  10806	    outputname=$func_stripname_result ;;
  10807	  *) exeext= ;;
  10808	esac
  10809	case $host in
  10810	  *cygwin* | *mingw* )
  10811	    func_dirname_and_basename "$output" "" "."
  10812	    output_name=$func_basename_result
  10813	    output_path=$func_dirname_result
  10814	    cwrappersource=$output_path/$objdir/lt-$output_name.c
  10815	    cwrapper=$output_path/$output_name.exe
  10816	    $RM $cwrappersource $cwrapper
  10817	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
  10818
  10819	    func_emit_cwrapperexe_src > $cwrappersource
  10820
  10821	    # The wrapper executable is built using the $host compiler,
  10822	    # because it contains $host paths and files. If cross-
  10823	    # compiling, it, like the target executable, must be
  10824	    # executed on the $host or under an emulation environment.
  10825	    $opt_dry_run || {
  10826	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
  10827	      $STRIP $cwrapper
  10828	    }
  10829
  10830	    # Now, create the wrapper script for func_source use:
  10831	    func_ltwrapper_scriptname $cwrapper
  10832	    $RM $func_ltwrapper_scriptname_result
  10833	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
  10834	    $opt_dry_run || {
  10835	      # note: this script will not be executed, so do not chmod.
  10836	      if test "x$build" = "x$host"; then
  10837		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
  10838	      else
  10839		func_emit_wrapper no > $func_ltwrapper_scriptname_result
  10840	      fi
  10841	    }
  10842	  ;;
  10843	  * )
  10844	    $RM $output
  10845	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
  10846
  10847	    func_emit_wrapper no > $output
  10848	    chmod +x $output
  10849	  ;;
  10850	esac
  10851      }
  10852      exit $EXIT_SUCCESS
  10853      ;;
  10854    esac
  10855
  10856    # See if we need to build an old-fashioned archive.
  10857    for oldlib in $oldlibs; do
  10858
  10859      case $build_libtool_libs in
  10860        convenience)
  10861	  oldobjs="$libobjs_save $symfileobj"
  10862	  addlibs=$convenience
  10863	  build_libtool_libs=no
  10864	  ;;
  10865	module)
  10866	  oldobjs=$libobjs_save
  10867	  addlibs=$old_convenience
  10868	  build_libtool_libs=no
  10869          ;;
  10870	*)
  10871	  oldobjs="$old_deplibs $non_pic_objects"
  10872	  $preload && test -f "$symfileobj" \
  10873	    && func_append oldobjs " $symfileobj"
  10874	  addlibs=$old_convenience
  10875	  ;;
  10876      esac
  10877
  10878      if test -n "$addlibs"; then
  10879	gentop=$output_objdir/${outputname}x
  10880	func_append generated " $gentop"
  10881
  10882	func_extract_archives $gentop $addlibs
  10883	func_append oldobjs " $func_extract_archives_result"
  10884      fi
  10885
  10886      # Do each command in the archive commands.
  10887      if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
  10888	cmds=$old_archive_from_new_cmds
  10889      else
  10890
  10891	# Add any objects from preloaded convenience libraries
  10892	if test -n "$dlprefiles"; then
  10893	  gentop=$output_objdir/${outputname}x
  10894	  func_append generated " $gentop"
  10895
  10896	  func_extract_archives $gentop $dlprefiles
  10897	  func_append oldobjs " $func_extract_archives_result"
  10898	fi
  10899
  10900	# POSIX demands no paths to be encoded in archives.  We have
  10901	# to avoid creating archives with duplicate basenames if we
  10902	# might have to extract them afterwards, e.g., when creating a
  10903	# static archive out of a convenience library, or when linking
  10904	# the entirety of a libtool archive into another (currently
  10905	# not supported by libtool).
  10906	if (for obj in $oldobjs
  10907	    do
  10908	      func_basename "$obj"
  10909	      $ECHO "$func_basename_result"
  10910	    done | sort | sort -uc >/dev/null 2>&1); then
  10911	  :
  10912	else
  10913	  echo "copying selected object files to avoid basename conflicts..."
  10914	  gentop=$output_objdir/${outputname}x
  10915	  func_append generated " $gentop"
  10916	  func_mkdir_p "$gentop"
  10917	  save_oldobjs=$oldobjs
  10918	  oldobjs=
  10919	  counter=1
  10920	  for obj in $save_oldobjs
  10921	  do
  10922	    func_basename "$obj"
  10923	    objbase=$func_basename_result
  10924	    case " $oldobjs " in
  10925	    " ") oldobjs=$obj ;;
  10926	    *[\ /]"$objbase "*)
  10927	      while :; do
  10928		# Make sure we don't pick an alternate name that also
  10929		# overlaps.
  10930		newobj=lt$counter-$objbase
  10931		func_arith $counter + 1
  10932		counter=$func_arith_result
  10933		case " $oldobjs " in
  10934		*[\ /]"$newobj "*) ;;
  10935		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
  10936		esac
  10937	      done
  10938	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
  10939	      func_append oldobjs " $gentop/$newobj"
  10940	      ;;
  10941	    *) func_append oldobjs " $obj" ;;
  10942	    esac
  10943	  done
  10944	fi
  10945	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
  10946	tool_oldlib=$func_to_tool_file_result
  10947	eval cmds=\"$old_archive_cmds\"
  10948
  10949	func_len " $cmds"
  10950	len=$func_len_result
  10951	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  10952	  cmds=$old_archive_cmds
  10953	elif test -n "$archiver_list_spec"; then
  10954	  func_verbose "using command file archive linking..."
  10955	  for obj in $oldobjs
  10956	  do
  10957	    func_to_tool_file "$obj"
  10958	    $ECHO "$func_to_tool_file_result"
  10959	  done > $output_objdir/$libname.libcmd
  10960	  func_to_tool_file "$output_objdir/$libname.libcmd"
  10961	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
  10962	  cmds=$old_archive_cmds
  10963	else
  10964	  # the command line is too long to link in one step, link in parts
  10965	  func_verbose "using piecewise archive linking..."
  10966	  save_RANLIB=$RANLIB
  10967	  RANLIB=:
  10968	  objlist=
  10969	  concat_cmds=
  10970	  save_oldobjs=$oldobjs
  10971	  oldobjs=
  10972	  # Is there a better way of finding the last object in the list?
  10973	  for obj in $save_oldobjs
  10974	  do
  10975	    last_oldobj=$obj
  10976	  done
  10977	  eval test_cmds=\"$old_archive_cmds\"
  10978	  func_len " $test_cmds"
  10979	  len0=$func_len_result
  10980	  len=$len0
  10981	  for obj in $save_oldobjs
  10982	  do
  10983	    func_len " $obj"
  10984	    func_arith $len + $func_len_result
  10985	    len=$func_arith_result
  10986	    func_append objlist " $obj"
  10987	    if test "$len" -lt "$max_cmd_len"; then
  10988	      :
  10989	    else
  10990	      # the above command should be used before it gets too long
  10991	      oldobjs=$objlist
  10992	      if test "$obj" = "$last_oldobj"; then
  10993		RANLIB=$save_RANLIB
  10994	      fi
  10995	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  10996	      eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
  10997	      objlist=
  10998	      len=$len0
  10999	    fi
  11000	  done
  11001	  RANLIB=$save_RANLIB
  11002	  oldobjs=$objlist
  11003	  if test -z "$oldobjs"; then
  11004	    eval cmds=\"\$concat_cmds\"
  11005	  else
  11006	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
  11007	  fi
  11008	fi
  11009      fi
  11010      func_execute_cmds "$cmds" 'exit $?'
  11011    done
  11012
  11013    test -n "$generated" && \
  11014      func_show_eval "${RM}r$generated"
  11015
  11016    # Now create the libtool archive.
  11017    case $output in
  11018    *.la)
  11019      old_library=
  11020      test yes = "$build_old_libs" && old_library=$libname.$libext
  11021      func_verbose "creating $output"
  11022
  11023      # Preserve any variables that may affect compiler behavior
  11024      for var in $variables_saved_for_relink; do
  11025	if eval test -z \"\${$var+set}\"; then
  11026	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
  11027	elif eval var_value=\$$var; test -z "$var_value"; then
  11028	  relink_command="$var=; export $var; $relink_command"
  11029	else
  11030	  func_quote_arg pretty,unquoted "$var_value"
  11031	  relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
  11032	fi
  11033      done
  11034      # Quote the link command for shipping.
  11035      func_quote eval cd "`pwd`"
  11036      relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
  11037      func_quote_arg pretty,unquoted "$relink_command"
  11038      relink_command=$func_quote_arg_unquoted_result
  11039      if test yes = "$hardcode_automatic"; then
  11040	relink_command=
  11041      fi
  11042
  11043      # Only create the output if not a dry run.
  11044      $opt_dry_run || {
  11045	for installed in no yes; do
  11046	  if test yes = "$installed"; then
  11047	    if test -z "$install_libdir"; then
  11048	      break
  11049	    fi
  11050	    output=$output_objdir/${outputname}i
  11051	    # Replace all uninstalled libtool libraries with the installed ones
  11052	    newdependency_libs=
  11053	    for deplib in $dependency_libs; do
  11054	      case $deplib in
  11055	      *.la)
  11056		func_basename "$deplib"
  11057		name=$func_basename_result
  11058		func_resolve_sysroot "$deplib"
  11059		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
  11060		test -z "$libdir" && \
  11061		  func_fatal_error "'$deplib' is not a valid libtool archive"
  11062		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
  11063		;;
  11064	      -L*)
  11065		func_stripname -L '' "$deplib"
  11066		func_replace_sysroot "$func_stripname_result"
  11067		func_append newdependency_libs " -L$func_replace_sysroot_result"
  11068		;;
  11069	      -R*)
  11070		func_stripname -R '' "$deplib"
  11071		func_replace_sysroot "$func_stripname_result"
  11072		func_append newdependency_libs " -R$func_replace_sysroot_result"
  11073		;;
  11074	      *) func_append newdependency_libs " $deplib" ;;
  11075	      esac
  11076	    done
  11077	    dependency_libs=$newdependency_libs
  11078	    newdlfiles=
  11079
  11080	    for lib in $dlfiles; do
  11081	      case $lib in
  11082	      *.la)
  11083	        func_basename "$lib"
  11084		name=$func_basename_result
  11085		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
  11086		test -z "$libdir" && \
  11087		  func_fatal_error "'$lib' is not a valid libtool archive"
  11088		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
  11089		;;
  11090	      *) func_append newdlfiles " $lib" ;;
  11091	      esac
  11092	    done
  11093	    dlfiles=$newdlfiles
  11094	    newdlprefiles=
  11095	    for lib in $dlprefiles; do
  11096	      case $lib in
  11097	      *.la)
  11098		# Only pass preopened files to the pseudo-archive (for
  11099		# eventual linking with the app. that links it) if we
  11100		# didn't already link the preopened objects directly into
  11101		# the library:
  11102		func_basename "$lib"
  11103		name=$func_basename_result
  11104		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
  11105		test -z "$libdir" && \
  11106		  func_fatal_error "'$lib' is not a valid libtool archive"
  11107		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
  11108		;;
  11109	      esac
  11110	    done
  11111	    dlprefiles=$newdlprefiles
  11112	  else
  11113	    newdlfiles=
  11114	    for lib in $dlfiles; do
  11115	      case $lib in
  11116		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
  11117		*) abs=`pwd`"/$lib" ;;
  11118	      esac
  11119	      func_append newdlfiles " $abs"
  11120	    done
  11121	    dlfiles=$newdlfiles
  11122	    newdlprefiles=
  11123	    for lib in $dlprefiles; do
  11124	      case $lib in
  11125		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
  11126		*) abs=`pwd`"/$lib" ;;
  11127	      esac
  11128	      func_append newdlprefiles " $abs"
  11129	    done
  11130	    dlprefiles=$newdlprefiles
  11131	  fi
  11132	  $RM $output
  11133	  # place dlname in correct position for cygwin
  11134	  # In fact, it would be nice if we could use this code for all target
  11135	  # systems that can't hard-code library paths into their executables
  11136	  # and that have no shared library path variable independent of PATH,
  11137	  # but it turns out we can't easily determine that from inspecting
  11138	  # libtool variables, so we have to hard-code the OSs to which it
  11139	  # applies here; at the moment, that means platforms that use the PE
  11140	  # object format with DLL files.  See the long comment at the top of
  11141	  # tests/bindir.at for full details.
  11142	  tdlname=$dlname
  11143	  case $host,$output,$installed,$module,$dlname in
  11144	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
  11145	      # If a -bindir argument was supplied, place the dll there.
  11146	      if test -n "$bindir"; then
  11147		func_relative_path "$install_libdir" "$bindir"
  11148		tdlname=$func_relative_path_result/$dlname
  11149	      else
  11150		# Otherwise fall back on heuristic.
  11151		tdlname=../bin/$dlname
  11152	      fi
  11153	      ;;
  11154	  esac
  11155	  $ECHO > $output "\
  11156# $outputname - a libtool library file
  11157# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
  11158#
  11159# Please DO NOT delete this file!
  11160# It is necessary for linking the library.
  11161
  11162# The name that we can dlopen(3).
  11163dlname='$tdlname'
  11164
  11165# Names of this library.
  11166library_names='$library_names'
  11167
  11168# The name of the static archive.
  11169old_library='$old_library'
  11170
  11171# Linker flags that cannot go in dependency_libs.
  11172inherited_linker_flags='$new_inherited_linker_flags'
  11173
  11174# Libraries that this one depends upon.
  11175dependency_libs='$dependency_libs'
  11176
  11177# Names of additional weak libraries provided by this library
  11178weak_library_names='$weak_libs'
  11179
  11180# Version information for $libname.
  11181current=$current
  11182age=$age
  11183revision=$revision
  11184
  11185# Is this an already installed library?
  11186installed=$installed
  11187
  11188# Should we warn about portability when linking against -modules?
  11189shouldnotlink=$module
  11190
  11191# Files to dlopen/dlpreopen
  11192dlopen='$dlfiles'
  11193dlpreopen='$dlprefiles'
  11194
  11195# Directory that this library needs to be installed in:
  11196libdir='$install_libdir'"
  11197	  if test no,yes = "$installed,$need_relink"; then
  11198	    $ECHO >> $output "\
  11199relink_command=\"$relink_command\""
  11200	  fi
  11201	done
  11202      }
  11203
  11204      # Do a symbolic link so that the libtool archive can be found in
  11205      # LD_LIBRARY_PATH before the program is installed.
  11206      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
  11207      ;;
  11208    esac
  11209    exit $EXIT_SUCCESS
  11210}
  11211
  11212if test link = "$opt_mode" || test relink = "$opt_mode"; then
  11213  func_mode_link ${1+"$@"}
  11214fi
  11215
  11216
  11217# func_mode_uninstall arg...
  11218func_mode_uninstall ()
  11219{
  11220    $debug_cmd
  11221
  11222    RM=$nonopt
  11223    files=
  11224    rmforce=false
  11225    exit_status=0
  11226
  11227    # This variable tells wrapper scripts just to set variables rather
  11228    # than running their programs.
  11229    libtool_install_magic=$magic
  11230
  11231    for arg
  11232    do
  11233      case $arg in
  11234      -f) func_append RM " $arg"; rmforce=: ;;
  11235      -*) func_append RM " $arg" ;;
  11236      *) func_append files " $arg" ;;
  11237      esac
  11238    done
  11239
  11240    test -z "$RM" && \
  11241      func_fatal_help "you must specify an RM program"
  11242
  11243    rmdirs=
  11244
  11245    for file in $files; do
  11246      func_dirname "$file" "" "."
  11247      dir=$func_dirname_result
  11248      if test . = "$dir"; then
  11249	odir=$objdir
  11250      else
  11251	odir=$dir/$objdir
  11252      fi
  11253      func_basename "$file"
  11254      name=$func_basename_result
  11255      test uninstall = "$opt_mode" && odir=$dir
  11256
  11257      # Remember odir for removal later, being careful to avoid duplicates
  11258      if test clean = "$opt_mode"; then
  11259	case " $rmdirs " in
  11260	  *" $odir "*) ;;
  11261	  *) func_append rmdirs " $odir" ;;
  11262	esac
  11263      fi
  11264
  11265      # Don't error if the file doesn't exist and rm -f was used.
  11266      if { test -L "$file"; } >/dev/null 2>&1 ||
  11267	 { test -h "$file"; } >/dev/null 2>&1 ||
  11268	 test -f "$file"; then
  11269	:
  11270      elif test -d "$file"; then
  11271	exit_status=1
  11272	continue
  11273      elif $rmforce; then
  11274	continue
  11275      fi
  11276
  11277      rmfiles=$file
  11278
  11279      case $name in
  11280      *.la)
  11281	# Possibly a libtool archive, so verify it.
  11282	if func_lalib_p "$file"; then
  11283	  func_source $dir/$name
  11284
  11285	  # Delete the libtool libraries and symlinks.
  11286	  for n in $library_names; do
  11287	    func_append rmfiles " $odir/$n"
  11288	  done
  11289	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
  11290
  11291	  case $opt_mode in
  11292	  clean)
  11293	    case " $library_names " in
  11294	    *" $dlname "*) ;;
  11295	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
  11296	    esac
  11297	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
  11298	    ;;
  11299	  uninstall)
  11300	    if test -n "$library_names"; then
  11301	      # Do each command in the postuninstall commands.
  11302	      func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
  11303	    fi
  11304
  11305	    if test -n "$old_library"; then
  11306	      # Do each command in the old_postuninstall commands.
  11307	      func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
  11308	    fi
  11309	    # FIXME: should reinstall the best remaining shared library.
  11310	    ;;
  11311	  esac
  11312	fi
  11313	;;
  11314
  11315      *.lo)
  11316	# Possibly a libtool object, so verify it.
  11317	if func_lalib_p "$file"; then
  11318
  11319	  # Read the .lo file
  11320	  func_source $dir/$name
  11321
  11322	  # Add PIC object to the list of files to remove.
  11323	  if test -n "$pic_object" && test none != "$pic_object"; then
  11324	    func_append rmfiles " $dir/$pic_object"
  11325	  fi
  11326
  11327	  # Add non-PIC object to the list of files to remove.
  11328	  if test -n "$non_pic_object" && test none != "$non_pic_object"; then
  11329	    func_append rmfiles " $dir/$non_pic_object"
  11330	  fi
  11331	fi
  11332	;;
  11333
  11334      *)
  11335	if test clean = "$opt_mode"; then
  11336	  noexename=$name
  11337	  case $file in
  11338	  *.exe)
  11339	    func_stripname '' '.exe' "$file"
  11340	    file=$func_stripname_result
  11341	    func_stripname '' '.exe' "$name"
  11342	    noexename=$func_stripname_result
  11343	    # $file with .exe has already been added to rmfiles,
  11344	    # add $file without .exe
  11345	    func_append rmfiles " $file"
  11346	    ;;
  11347	  esac
  11348	  # Do a test to see if this is a libtool program.
  11349	  if func_ltwrapper_p "$file"; then
  11350	    if func_ltwrapper_executable_p "$file"; then
  11351	      func_ltwrapper_scriptname "$file"
  11352	      relink_command=
  11353	      func_source $func_ltwrapper_scriptname_result
  11354	      func_append rmfiles " $func_ltwrapper_scriptname_result"
  11355	    else
  11356	      relink_command=
  11357	      func_source $dir/$noexename
  11358	    fi
  11359
  11360	    # note $name still contains .exe if it was in $file originally
  11361	    # as does the version of $file that was added into $rmfiles
  11362	    func_append rmfiles " $odir/$name $odir/${name}S.$objext"
  11363	    if test yes = "$fast_install" && test -n "$relink_command"; then
  11364	      func_append rmfiles " $odir/lt-$name"
  11365	    fi
  11366	    if test "X$noexename" != "X$name"; then
  11367	      func_append rmfiles " $odir/lt-$noexename.c"
  11368	    fi
  11369	  fi
  11370	fi
  11371	;;
  11372      esac
  11373      func_show_eval "$RM $rmfiles" 'exit_status=1'
  11374    done
  11375
  11376    # Try to remove the $objdir's in the directories where we deleted files
  11377    for dir in $rmdirs; do
  11378      if test -d "$dir"; then
  11379	func_show_eval "rmdir $dir >/dev/null 2>&1"
  11380      fi
  11381    done
  11382
  11383    exit $exit_status
  11384}
  11385
  11386if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
  11387  func_mode_uninstall ${1+"$@"}
  11388fi
  11389
  11390test -z "$opt_mode" && {
  11391  help=$generic_help
  11392  func_fatal_help "you must specify a MODE"
  11393}
  11394
  11395test -z "$exec_cmd" && \
  11396  func_fatal_help "invalid operation mode '$opt_mode'"
  11397
  11398if test -n "$exec_cmd"; then
  11399  eval exec "$exec_cmd"
  11400  exit $EXIT_FAILURE
  11401fi
  11402
  11403exit $exit_status
  11404
  11405
  11406# The TAGs below are defined such that we never get into a situation
  11407# where we disable both kinds of libraries.  Given conflicting
  11408# choices, we go for a static library, that is the most portable,
  11409# since we can't tell whether shared libraries were disabled because
  11410# the user asked for that or because the platform doesn't support
  11411# them.  This is particularly important on AIX, because we don't
  11412# support having both static and shared libraries enabled at the same
  11413# time on that platform, so we default to a shared-only configuration.
  11414# If a disable-shared tag is given, we'll fallback to a static-only
  11415# configuration.  But we'll never go from static-only to shared-only.
  11416
  11417# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
  11418build_libtool_libs=no
  11419build_old_libs=yes
  11420# ### END LIBTOOL TAG CONFIG: disable-shared
  11421
  11422# ### BEGIN LIBTOOL TAG CONFIG: disable-static
  11423build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
  11424# ### END LIBTOOL TAG CONFIG: disable-static
  11425
  11426# Local Variables:
  11427# mode:shell-script
  11428# sh-indentation:2
  11429# End: