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