vshost-util-vserver

Build script and sources for util-vserver.
git clone https://ccx.te2000.cz/git/vshost-util-vserver
Log | Files | Refs

ltmain.sh (283672B)


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