sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

ltmain.sh (283088B)


      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
     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
     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 returned 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 can'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 (including 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     *)
   5105       allow_undefined=yes
   5106       ;;
   5107     esac
   5108     libtool_args=$nonopt
   5109     base_compile="$nonopt $@"
   5110     compile_command=$nonopt
   5111     finalize_command=$nonopt
   5112 
   5113     compile_rpath=
   5114     finalize_rpath=
   5115     compile_shlibpath=
   5116     finalize_shlibpath=
   5117     convenience=
   5118     old_convenience=
   5119     deplibs=
   5120     old_deplibs=
   5121     compiler_flags=
   5122     linker_flags=
   5123     dllsearchpath=
   5124     lib_search_path=`pwd`
   5125     inst_prefix_dir=
   5126     new_inherited_linker_flags=
   5127 
   5128     avoid_version=no
   5129     bindir=
   5130     dlfiles=
   5131     dlprefiles=
   5132     dlself=no
   5133     export_dynamic=no
   5134     export_symbols=
   5135     export_symbols_regex=
   5136     generated=
   5137     libobjs=
   5138     ltlibs=
   5139     module=no
   5140     no_install=no
   5141     objs=
   5142     non_pic_objects=
   5143     precious_files_regex=
   5144     prefer_static_libs=no
   5145     preload=no
   5146     prev=
   5147     prevarg=
   5148     release=
   5149     rpath=
   5150     xrpath=
   5151     perm_rpath=
   5152     temp_rpath=
   5153     thread_safe=no
   5154     vinfo=
   5155     vinfo_number=no
   5156     weak_libs=
   5157     single_module="${wl}-single_module"
   5158     func_infer_tag $base_compile
   5159 
   5160     # We need to know -static, to get the right output filenames.
   5161     for arg
   5162     do
   5163       case $arg in
   5164       -shared)
   5165 	test "$build_libtool_libs" != yes && \
   5166 	  func_fatal_configuration "can not build a shared library"
   5167 	build_old_libs=no
   5168 	break
   5169 	;;
   5170       -all-static | -static | -static-libtool-libs)
   5171 	case $arg in
   5172 	-all-static)
   5173 	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
   5174 	    func_warning "complete static linking is impossible in this configuration"
   5175 	  fi
   5176 	  if test -n "$link_static_flag"; then
   5177 	    dlopen_self=$dlopen_self_static
   5178 	  fi
   5179 	  prefer_static_libs=yes
   5180 	  ;;
   5181 	-static)
   5182 	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
   5183 	    dlopen_self=$dlopen_self_static
   5184 	  fi
   5185 	  prefer_static_libs=built
   5186 	  ;;
   5187 	-static-libtool-libs)
   5188 	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
   5189 	    dlopen_self=$dlopen_self_static
   5190 	  fi
   5191 	  prefer_static_libs=yes
   5192 	  ;;
   5193 	esac
   5194 	build_libtool_libs=no
   5195 	build_old_libs=yes
   5196 	break
   5197 	;;
   5198       esac
   5199     done
   5200 
   5201     # See if our shared archives depend on static archives.
   5202     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
   5203 
   5204     # Go through the arguments, transforming them on the way.
   5205     while test "$#" -gt 0; do
   5206       arg="$1"
   5207       shift
   5208       func_quote_for_eval "$arg"
   5209       qarg=$func_quote_for_eval_unquoted_result
   5210       func_append libtool_args " $func_quote_for_eval_result"
   5211 
   5212       # If the previous option needs an argument, assign it.
   5213       if test -n "$prev"; then
   5214 	case $prev in
   5215 	output)
   5216 	  func_append compile_command " @OUTPUT@"
   5217 	  func_append finalize_command " @OUTPUT@"
   5218 	  ;;
   5219 	esac
   5220 
   5221 	case $prev in
   5222 	bindir)
   5223 	  bindir="$arg"
   5224 	  prev=
   5225 	  continue
   5226 	  ;;
   5227 	dlfiles|dlprefiles)
   5228 	  if test "$preload" = no; then
   5229 	    # Add the symbol object into the linking commands.
   5230 	    func_append compile_command " @SYMFILE@"
   5231 	    func_append finalize_command " @SYMFILE@"
   5232 	    preload=yes
   5233 	  fi
   5234 	  case $arg in
   5235 	  *.la | *.lo) ;;  # We handle these cases below.
   5236 	  force)
   5237 	    if test "$dlself" = no; then
   5238 	      dlself=needless
   5239 	      export_dynamic=yes
   5240 	    fi
   5241 	    prev=
   5242 	    continue
   5243 	    ;;
   5244 	  self)
   5245 	    if test "$prev" = dlprefiles; then
   5246 	      dlself=yes
   5247 	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
   5248 	      dlself=yes
   5249 	    else
   5250 	      dlself=needless
   5251 	      export_dynamic=yes
   5252 	    fi
   5253 	    prev=
   5254 	    continue
   5255 	    ;;
   5256 	  *)
   5257 	    if test "$prev" = dlfiles; then
   5258 	      func_append dlfiles " $arg"
   5259 	    else
   5260 	      func_append dlprefiles " $arg"
   5261 	    fi
   5262 	    prev=
   5263 	    continue
   5264 	    ;;
   5265 	  esac
   5266 	  ;;
   5267 	expsyms)
   5268 	  export_symbols="$arg"
   5269 	  test -f "$arg" \
   5270 	    || func_fatal_error "symbol file \`$arg' does not exist"
   5271 	  prev=
   5272 	  continue
   5273 	  ;;
   5274 	expsyms_regex)
   5275 	  export_symbols_regex="$arg"
   5276 	  prev=
   5277 	  continue
   5278 	  ;;
   5279 	framework)
   5280 	  case $host in
   5281 	    *-*-darwin*)
   5282 	      case "$deplibs " in
   5283 		*" $qarg.ltframework "*) ;;
   5284 		*) func_append deplibs " $qarg.ltframework" # this is fixed later
   5285 		   ;;
   5286 	      esac
   5287 	      ;;
   5288 	  esac
   5289 	  prev=
   5290 	  continue
   5291 	  ;;
   5292 	inst_prefix)
   5293 	  inst_prefix_dir="$arg"
   5294 	  prev=
   5295 	  continue
   5296 	  ;;
   5297 	objectlist)
   5298 	  if test -f "$arg"; then
   5299 	    save_arg=$arg
   5300 	    moreargs=
   5301 	    for fil in `cat "$save_arg"`
   5302 	    do
   5303 #	      func_append moreargs " $fil"
   5304 	      arg=$fil
   5305 	      # A libtool-controlled object.
   5306 
   5307 	      # Check to see that this really is a libtool object.
   5308 	      if func_lalib_unsafe_p "$arg"; then
   5309 		pic_object=
   5310 		non_pic_object=
   5311 
   5312 		# Read the .lo file
   5313 		func_source "$arg"
   5314 
   5315 		if test -z "$pic_object" ||
   5316 		   test -z "$non_pic_object" ||
   5317 		   test "$pic_object" = none &&
   5318 		   test "$non_pic_object" = none; then
   5319 		  func_fatal_error "cannot find name of object for \`$arg'"
   5320 		fi
   5321 
   5322 		# Extract subdirectory from the argument.
   5323 		func_dirname "$arg" "/" ""
   5324 		xdir="$func_dirname_result"
   5325 
   5326 		if test "$pic_object" != none; then
   5327 		  # Prepend the subdirectory the object is found in.
   5328 		  pic_object="$xdir$pic_object"
   5329 
   5330 		  if test "$prev" = dlfiles; then
   5331 		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
   5332 		      func_append dlfiles " $pic_object"
   5333 		      prev=
   5334 		      continue
   5335 		    else
   5336 		      # If libtool objects are unsupported, then we need to preload.
   5337 		      prev=dlprefiles
   5338 		    fi
   5339 		  fi
   5340 
   5341 		  # CHECK ME:  I think I busted this.  -Ossama
   5342 		  if test "$prev" = dlprefiles; then
   5343 		    # Preload the old-style object.
   5344 		    func_append dlprefiles " $pic_object"
   5345 		    prev=
   5346 		  fi
   5347 
   5348 		  # A PIC object.
   5349 		  func_append libobjs " $pic_object"
   5350 		  arg="$pic_object"
   5351 		fi
   5352 
   5353 		# Non-PIC object.
   5354 		if test "$non_pic_object" != none; then
   5355 		  # Prepend the subdirectory the object is found in.
   5356 		  non_pic_object="$xdir$non_pic_object"
   5357 
   5358 		  # A standard non-PIC object
   5359 		  func_append non_pic_objects " $non_pic_object"
   5360 		  if test -z "$pic_object" || test "$pic_object" = none ; then
   5361 		    arg="$non_pic_object"
   5362 		  fi
   5363 		else
   5364 		  # If the PIC object exists, use it instead.
   5365 		  # $xdir was prepended to $pic_object above.
   5366 		  non_pic_object="$pic_object"
   5367 		  func_append non_pic_objects " $non_pic_object"
   5368 		fi
   5369 	      else
   5370 		# Only an error if not doing a dry-run.
   5371 		if $opt_dry_run; then
   5372 		  # Extract subdirectory from the argument.
   5373 		  func_dirname "$arg" "/" ""
   5374 		  xdir="$func_dirname_result"
   5375 
   5376 		  func_lo2o "$arg"
   5377 		  pic_object=$xdir$objdir/$func_lo2o_result
   5378 		  non_pic_object=$xdir$func_lo2o_result
   5379 		  func_append libobjs " $pic_object"
   5380 		  func_append non_pic_objects " $non_pic_object"
   5381 	        else
   5382 		  func_fatal_error "\`$arg' is not a valid libtool object"
   5383 		fi
   5384 	      fi
   5385 	    done
   5386 	  else
   5387 	    func_fatal_error "link input file \`$arg' does not exist"
   5388 	  fi
   5389 	  arg=$save_arg
   5390 	  prev=
   5391 	  continue
   5392 	  ;;
   5393 	precious_regex)
   5394 	  precious_files_regex="$arg"
   5395 	  prev=
   5396 	  continue
   5397 	  ;;
   5398 	release)
   5399 	  release="-$arg"
   5400 	  prev=
   5401 	  continue
   5402 	  ;;
   5403 	rpath | xrpath)
   5404 	  # We need an absolute path.
   5405 	  case $arg in
   5406 	  [\\/]* | [A-Za-z]:[\\/]*) ;;
   5407 	  *)
   5408 	    func_fatal_error "only absolute run-paths are allowed"
   5409 	    ;;
   5410 	  esac
   5411 	  if test "$prev" = rpath; then
   5412 	    case "$rpath " in
   5413 	    *" $arg "*) ;;
   5414 	    *) func_append rpath " $arg" ;;
   5415 	    esac
   5416 	  else
   5417 	    case "$xrpath " in
   5418 	    *" $arg "*) ;;
   5419 	    *) func_append xrpath " $arg" ;;
   5420 	    esac
   5421 	  fi
   5422 	  prev=
   5423 	  continue
   5424 	  ;;
   5425 	shrext)
   5426 	  shrext_cmds="$arg"
   5427 	  prev=
   5428 	  continue
   5429 	  ;;
   5430 	weak)
   5431 	  func_append weak_libs " $arg"
   5432 	  prev=
   5433 	  continue
   5434 	  ;;
   5435 	xcclinker)
   5436 	  func_append linker_flags " $qarg"
   5437 	  func_append compiler_flags " $qarg"
   5438 	  prev=
   5439 	  func_append compile_command " $qarg"
   5440 	  func_append finalize_command " $qarg"
   5441 	  continue
   5442 	  ;;
   5443 	xcompiler)
   5444 	  func_append compiler_flags " $qarg"
   5445 	  prev=
   5446 	  func_append compile_command " $qarg"
   5447 	  func_append finalize_command " $qarg"
   5448 	  continue
   5449 	  ;;
   5450 	xlinker)
   5451 	  func_append linker_flags " $qarg"
   5452 	  func_append compiler_flags " $wl$qarg"
   5453 	  prev=
   5454 	  func_append compile_command " $wl$qarg"
   5455 	  func_append finalize_command " $wl$qarg"
   5456 	  continue
   5457 	  ;;
   5458 	*)
   5459 	  eval "$prev=\"\$arg\""
   5460 	  prev=
   5461 	  continue
   5462 	  ;;
   5463 	esac
   5464       fi # test -n "$prev"
   5465 
   5466       prevarg="$arg"
   5467 
   5468       case $arg in
   5469       -all-static)
   5470 	if test -n "$link_static_flag"; then
   5471 	  # See comment for -static flag below, for more details.
   5472 	  func_append compile_command " $link_static_flag"
   5473 	  func_append finalize_command " $link_static_flag"
   5474 	fi
   5475 	continue
   5476 	;;
   5477 
   5478       -allow-undefined)
   5479 	# FIXME: remove this flag sometime in the future.
   5480 	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
   5481 	;;
   5482 
   5483       -avoid-version)
   5484 	avoid_version=yes
   5485 	continue
   5486 	;;
   5487 
   5488       -bindir)
   5489 	prev=bindir
   5490 	continue
   5491 	;;
   5492 
   5493       -dlopen)
   5494 	prev=dlfiles
   5495 	continue
   5496 	;;
   5497 
   5498       -dlpreopen)
   5499 	prev=dlprefiles
   5500 	continue
   5501 	;;
   5502 
   5503       -export-dynamic)
   5504 	export_dynamic=yes
   5505 	continue
   5506 	;;
   5507 
   5508       -export-symbols | -export-symbols-regex)
   5509 	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
   5510 	  func_fatal_error "more than one -exported-symbols argument is not allowed"
   5511 	fi
   5512 	if test "X$arg" = "X-export-symbols"; then
   5513 	  prev=expsyms
   5514 	else
   5515 	  prev=expsyms_regex
   5516 	fi
   5517 	continue
   5518 	;;
   5519 
   5520       -framework)
   5521 	prev=framework
   5522 	continue
   5523 	;;
   5524 
   5525       -inst-prefix-dir)
   5526 	prev=inst_prefix
   5527 	continue
   5528 	;;
   5529 
   5530       # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
   5531       # so, if we see these flags be careful not to treat them like -L
   5532       -L[A-Z][A-Z]*:*)
   5533 	case $with_gcc/$host in
   5534 	no/*-*-irix* | /*-*-irix*)
   5535 	  func_append compile_command " $arg"
   5536 	  func_append finalize_command " $arg"
   5537 	  ;;
   5538 	esac
   5539 	continue
   5540 	;;
   5541 
   5542       -L*)
   5543 	func_stripname "-L" '' "$arg"
   5544 	if test -z "$func_stripname_result"; then
   5545 	  if test "$#" -gt 0; then
   5546 	    func_fatal_error "require no space between \`-L' and \`$1'"
   5547 	  else
   5548 	    func_fatal_error "need path for \`-L' option"
   5549 	  fi
   5550 	fi
   5551 	func_resolve_sysroot "$func_stripname_result"
   5552 	dir=$func_resolve_sysroot_result
   5553 	# We need an absolute path.
   5554 	case $dir in
   5555 	[\\/]* | [A-Za-z]:[\\/]*) ;;
   5556 	*)
   5557 	  absdir=`cd "$dir" && pwd`
   5558 	  test -z "$absdir" && \
   5559 	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
   5560 	  dir="$absdir"
   5561 	  ;;
   5562 	esac
   5563 	case "$deplibs " in
   5564 	*" -L$dir "* | *" $arg "*)
   5565 	  # Will only happen for absolute or sysroot arguments
   5566 	  ;;
   5567 	*)
   5568 	  # Preserve sysroot, but never include relative directories
   5569 	  case $dir in
   5570 	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
   5571 	    *) func_append deplibs " -L$dir" ;;
   5572 	  esac
   5573 	  func_append lib_search_path " $dir"
   5574 	  ;;
   5575 	esac
   5576 	case $host in
   5577 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
   5578 	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
   5579 	  case :$dllsearchpath: in
   5580 	  *":$dir:"*) ;;
   5581 	  ::) dllsearchpath=$dir;;
   5582 	  *) func_append dllsearchpath ":$dir";;
   5583 	  esac
   5584 	  case :$dllsearchpath: in
   5585 	  *":$testbindir:"*) ;;
   5586 	  ::) dllsearchpath=$testbindir;;
   5587 	  *) func_append dllsearchpath ":$testbindir";;
   5588 	  esac
   5589 	  ;;
   5590 	esac
   5591 	continue
   5592 	;;
   5593 
   5594       -l*)
   5595 	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
   5596 	  case $host in
   5597 	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
   5598 	    # These systems don't actually have a C or math library (as such)
   5599 	    continue
   5600 	    ;;
   5601 	  *-*-os2*)
   5602 	    # These systems don't actually have a C library (as such)
   5603 	    test "X$arg" = "X-lc" && continue
   5604 	    ;;
   5605 	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
   5606 	    # Do not include libc due to us having libc/libc_r.
   5607 	    test "X$arg" = "X-lc" && continue
   5608 	    ;;
   5609 	  *-*-rhapsody* | *-*-darwin1.[012])
   5610 	    # Rhapsody C and math libraries are in the System framework
   5611 	    func_append deplibs " System.ltframework"
   5612 	    continue
   5613 	    ;;
   5614 	  *-*-sco3.2v5* | *-*-sco5v6*)
   5615 	    # Causes problems with __ctype
   5616 	    test "X$arg" = "X-lc" && continue
   5617 	    ;;
   5618 	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
   5619 	    # Compiler inserts libc in the correct place for threads to work
   5620 	    test "X$arg" = "X-lc" && continue
   5621 	    ;;
   5622 	  esac
   5623 	elif test "X$arg" = "X-lc_r"; then
   5624 	 case $host in
   5625 	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
   5626 	   # Do not include libc_r directly, use -pthread flag.
   5627 	   continue
   5628 	   ;;
   5629 	 esac
   5630 	fi
   5631 	func_append deplibs " $arg"
   5632 	continue
   5633 	;;
   5634 
   5635       -module)
   5636 	module=yes
   5637 	continue
   5638 	;;
   5639 
   5640       # Tru64 UNIX uses -model [arg] to determine the layout of C++
   5641       # classes, name mangling, and exception handling.
   5642       # Darwin uses the -arch flag to determine output architecture.
   5643       -model|-arch|-isysroot|--sysroot)
   5644 	func_append compiler_flags " $arg"
   5645 	func_append compile_command " $arg"
   5646 	func_append finalize_command " $arg"
   5647 	prev=xcompiler
   5648 	continue
   5649 	;;
   5650 
   5651       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
   5652       |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
   5653 	func_append compiler_flags " $arg"
   5654 	func_append compile_command " $arg"
   5655 	func_append finalize_command " $arg"
   5656 	case "$new_inherited_linker_flags " in
   5657 	    *" $arg "*) ;;
   5658 	    * ) func_append new_inherited_linker_flags " $arg" ;;
   5659 	esac
   5660 	continue
   5661 	;;
   5662 
   5663       -multi_module)
   5664 	single_module="${wl}-multi_module"
   5665 	continue
   5666 	;;
   5667 
   5668       -no-fast-install)
   5669 	fast_install=no
   5670 	continue
   5671 	;;
   5672 
   5673       -no-install)
   5674 	case $host in
   5675 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
   5676 	  # The PATH hackery in wrapper scripts is required on Windows
   5677 	  # and Darwin in order for the loader to find any dlls it needs.
   5678 	  func_warning "\`-no-install' is ignored for $host"
   5679 	  func_warning "assuming \`-no-fast-install' instead"
   5680 	  fast_install=no
   5681 	  ;;
   5682 	*) no_install=yes ;;
   5683 	esac
   5684 	continue
   5685 	;;
   5686 
   5687       -no-undefined)
   5688 	allow_undefined=no
   5689 	continue
   5690 	;;
   5691 
   5692       -objectlist)
   5693 	prev=objectlist
   5694 	continue
   5695 	;;
   5696 
   5697       -o) prev=output ;;
   5698 
   5699       -precious-files-regex)
   5700 	prev=precious_regex
   5701 	continue
   5702 	;;
   5703 
   5704       -release)
   5705 	prev=release
   5706 	continue
   5707 	;;
   5708 
   5709       -rpath)
   5710 	prev=rpath
   5711 	continue
   5712 	;;
   5713 
   5714       -R)
   5715 	prev=xrpath
   5716 	continue
   5717 	;;
   5718 
   5719       -R*)
   5720 	func_stripname '-R' '' "$arg"
   5721 	dir=$func_stripname_result
   5722 	# We need an absolute path.
   5723 	case $dir in
   5724 	[\\/]* | [A-Za-z]:[\\/]*) ;;
   5725 	=*)
   5726 	  func_stripname '=' '' "$dir"
   5727 	  dir=$lt_sysroot$func_stripname_result
   5728 	  ;;
   5729 	*)
   5730 	  func_fatal_error "only absolute run-paths are allowed"
   5731 	  ;;
   5732 	esac
   5733 	case "$xrpath " in
   5734 	*" $dir "*) ;;
   5735 	*) func_append xrpath " $dir" ;;
   5736 	esac
   5737 	continue
   5738 	;;
   5739 
   5740       -shared)
   5741 	# The effects of -shared are defined in a previous loop.
   5742 	continue
   5743 	;;
   5744 
   5745       -shrext)
   5746 	prev=shrext
   5747 	continue
   5748 	;;
   5749 
   5750       -static | -static-libtool-libs)
   5751 	# The effects of -static are defined in a previous loop.
   5752 	# We used to do the same as -all-static on platforms that
   5753 	# didn't have a PIC flag, but the assumption that the effects
   5754 	# would be equivalent was wrong.  It would break on at least
   5755 	# Digital Unix and AIX.
   5756 	continue
   5757 	;;
   5758 
   5759       -thread-safe)
   5760 	thread_safe=yes
   5761 	continue
   5762 	;;
   5763 
   5764       -version-info)
   5765 	prev=vinfo
   5766 	continue
   5767 	;;
   5768 
   5769       -version-number)
   5770 	prev=vinfo
   5771 	vinfo_number=yes
   5772 	continue
   5773 	;;
   5774 
   5775       -weak)
   5776         prev=weak
   5777 	continue
   5778 	;;
   5779 
   5780       -Wc,*)
   5781 	func_stripname '-Wc,' '' "$arg"
   5782 	args=$func_stripname_result
   5783 	arg=
   5784 	save_ifs="$IFS"; IFS=','
   5785 	for flag in $args; do
   5786 	  IFS="$save_ifs"
   5787           func_quote_for_eval "$flag"
   5788 	  func_append arg " $func_quote_for_eval_result"
   5789 	  func_append compiler_flags " $func_quote_for_eval_result"
   5790 	done
   5791 	IFS="$save_ifs"
   5792 	func_stripname ' ' '' "$arg"
   5793 	arg=$func_stripname_result
   5794 	;;
   5795 
   5796       -Wl,*)
   5797 	func_stripname '-Wl,' '' "$arg"
   5798 	args=$func_stripname_result
   5799 	arg=
   5800 	save_ifs="$IFS"; IFS=','
   5801 	for flag in $args; do
   5802 	  IFS="$save_ifs"
   5803           func_quote_for_eval "$flag"
   5804 	  func_append arg " $wl$func_quote_for_eval_result"
   5805 	  func_append compiler_flags " $wl$func_quote_for_eval_result"
   5806 	  func_append linker_flags " $func_quote_for_eval_result"
   5807 	done
   5808 	IFS="$save_ifs"
   5809 	func_stripname ' ' '' "$arg"
   5810 	arg=$func_stripname_result
   5811 	;;
   5812 
   5813       -Xcompiler)
   5814 	prev=xcompiler
   5815 	continue
   5816 	;;
   5817 
   5818       -Xlinker)
   5819 	prev=xlinker
   5820 	continue
   5821 	;;
   5822 
   5823       -XCClinker)
   5824 	prev=xcclinker
   5825 	continue
   5826 	;;
   5827 
   5828       # -msg_* for osf cc
   5829       -msg_*)
   5830 	func_quote_for_eval "$arg"
   5831 	arg="$func_quote_for_eval_result"
   5832 	;;
   5833 
   5834       # Flags to be passed through unchanged, with rationale:
   5835       # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
   5836       # -r[0-9][0-9]*        specify processor for the SGI compiler
   5837       # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
   5838       # +DA*, +DD*           enable 64-bit mode for the HP compiler
   5839       # -q*                  compiler args for the IBM compiler
   5840       # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
   5841       # -F/path              path to uninstalled frameworks, gcc on darwin
   5842       # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
   5843       # @file                GCC response files
   5844       # -tp=*                Portland pgcc target processor selection
   5845       # --sysroot=*          for sysroot support
   5846       # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
   5847       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
   5848       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
   5849       -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
   5850         func_quote_for_eval "$arg"
   5851 	arg="$func_quote_for_eval_result"
   5852         func_append compile_command " $arg"
   5853         func_append finalize_command " $arg"
   5854         func_append compiler_flags " $arg"
   5855         continue
   5856         ;;
   5857 
   5858       # Some other compiler flag.
   5859       -* | +*)
   5860         func_quote_for_eval "$arg"
   5861 	arg="$func_quote_for_eval_result"
   5862 	;;
   5863 
   5864       *.$objext)
   5865 	# A standard object.
   5866 	func_append objs " $arg"
   5867 	;;
   5868 
   5869       *.lo)
   5870 	# A libtool-controlled object.
   5871 
   5872 	# Check to see that this really is a libtool object.
   5873 	if func_lalib_unsafe_p "$arg"; then
   5874 	  pic_object=
   5875 	  non_pic_object=
   5876 
   5877 	  # Read the .lo file
   5878 	  func_source "$arg"
   5879 
   5880 	  if test -z "$pic_object" ||
   5881 	     test -z "$non_pic_object" ||
   5882 	     test "$pic_object" = none &&
   5883 	     test "$non_pic_object" = none; then
   5884 	    func_fatal_error "cannot find name of object for \`$arg'"
   5885 	  fi
   5886 
   5887 	  # Extract subdirectory from the argument.
   5888 	  func_dirname "$arg" "/" ""
   5889 	  xdir="$func_dirname_result"
   5890 
   5891 	  if test "$pic_object" != none; then
   5892 	    # Prepend the subdirectory the object is found in.
   5893 	    pic_object="$xdir$pic_object"
   5894 
   5895 	    if test "$prev" = dlfiles; then
   5896 	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
   5897 		func_append dlfiles " $pic_object"
   5898 		prev=
   5899 		continue
   5900 	      else
   5901 		# If libtool objects are unsupported, then we need to preload.
   5902 		prev=dlprefiles
   5903 	      fi
   5904 	    fi
   5905 
   5906 	    # CHECK ME:  I think I busted this.  -Ossama
   5907 	    if test "$prev" = dlprefiles; then
   5908 	      # Preload the old-style object.
   5909 	      func_append dlprefiles " $pic_object"
   5910 	      prev=
   5911 	    fi
   5912 
   5913 	    # A PIC object.
   5914 	    func_append libobjs " $pic_object"
   5915 	    arg="$pic_object"
   5916 	  fi
   5917 
   5918 	  # Non-PIC object.
   5919 	  if test "$non_pic_object" != none; then
   5920 	    # Prepend the subdirectory the object is found in.
   5921 	    non_pic_object="$xdir$non_pic_object"
   5922 
   5923 	    # A standard non-PIC object
   5924 	    func_append non_pic_objects " $non_pic_object"
   5925 	    if test -z "$pic_object" || test "$pic_object" = none ; then
   5926 	      arg="$non_pic_object"
   5927 	    fi
   5928 	  else
   5929 	    # If the PIC object exists, use it instead.
   5930 	    # $xdir was prepended to $pic_object above.
   5931 	    non_pic_object="$pic_object"
   5932 	    func_append non_pic_objects " $non_pic_object"
   5933 	  fi
   5934 	else
   5935 	  # Only an error if not doing a dry-run.
   5936 	  if $opt_dry_run; then
   5937 	    # Extract subdirectory from the argument.
   5938 	    func_dirname "$arg" "/" ""
   5939 	    xdir="$func_dirname_result"
   5940 
   5941 	    func_lo2o "$arg"
   5942 	    pic_object=$xdir$objdir/$func_lo2o_result
   5943 	    non_pic_object=$xdir$func_lo2o_result
   5944 	    func_append libobjs " $pic_object"
   5945 	    func_append non_pic_objects " $non_pic_object"
   5946 	  else
   5947 	    func_fatal_error "\`$arg' is not a valid libtool object"
   5948 	  fi
   5949 	fi
   5950 	;;
   5951 
   5952       *.$libext)
   5953 	# An archive.
   5954 	func_append deplibs " $arg"
   5955 	func_append old_deplibs " $arg"
   5956 	continue
   5957 	;;
   5958 
   5959       *.la)
   5960 	# A libtool-controlled library.
   5961 
   5962 	func_resolve_sysroot "$arg"
   5963 	if test "$prev" = dlfiles; then
   5964 	  # This library was specified with -dlopen.
   5965 	  func_append dlfiles " $func_resolve_sysroot_result"
   5966 	  prev=
   5967 	elif test "$prev" = dlprefiles; then
   5968 	  # The library was specified with -dlpreopen.
   5969 	  func_append dlprefiles " $func_resolve_sysroot_result"
   5970 	  prev=
   5971 	else
   5972 	  func_append deplibs " $func_resolve_sysroot_result"
   5973 	fi
   5974 	continue
   5975 	;;
   5976 
   5977       # Some other compiler argument.
   5978       *)
   5979 	# Unknown arguments in both finalize_command and compile_command need
   5980 	# to be aesthetically quoted because they are evaled later.
   5981 	func_quote_for_eval "$arg"
   5982 	arg="$func_quote_for_eval_result"
   5983 	;;
   5984       esac # arg
   5985 
   5986       # Now actually substitute the argument into the commands.
   5987       if test -n "$arg"; then
   5988 	func_append compile_command " $arg"
   5989 	func_append finalize_command " $arg"
   5990       fi
   5991     done # argument parsing loop
   5992 
   5993     test -n "$prev" && \
   5994       func_fatal_help "the \`$prevarg' option requires an argument"
   5995 
   5996     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
   5997       eval arg=\"$export_dynamic_flag_spec\"
   5998       func_append compile_command " $arg"
   5999       func_append finalize_command " $arg"
   6000     fi
   6001 
   6002     oldlibs=
   6003     # calculate the name of the file, without its directory
   6004     func_basename "$output"
   6005     outputname="$func_basename_result"
   6006     libobjs_save="$libobjs"
   6007 
   6008     if test -n "$shlibpath_var"; then
   6009       # get the directories listed in $shlibpath_var
   6010       eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
   6011     else
   6012       shlib_search_path=
   6013     fi
   6014     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
   6015     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
   6016 
   6017     func_dirname "$output" "/" ""
   6018     output_objdir="$func_dirname_result$objdir"
   6019     func_to_tool_file "$output_objdir/"
   6020     tool_output_objdir=$func_to_tool_file_result
   6021     # Create the object directory.
   6022     func_mkdir_p "$output_objdir"
   6023 
   6024     # Determine the type of output
   6025     case $output in
   6026     "")
   6027       func_fatal_help "you must specify an output file"
   6028       ;;
   6029     *.$libext) linkmode=oldlib ;;
   6030     *.lo | *.$objext) linkmode=obj ;;
   6031     *.la) linkmode=lib ;;
   6032     *) linkmode=prog ;; # Anything else should be a program.
   6033     esac
   6034 
   6035     specialdeplibs=
   6036 
   6037     libs=
   6038     # Find all interdependent deplibs by searching for libraries
   6039     # that are linked more than once (e.g. -la -lb -la)
   6040     for deplib in $deplibs; do
   6041       if $opt_preserve_dup_deps ; then
   6042 	case "$libs " in
   6043 	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
   6044 	esac
   6045       fi
   6046       func_append libs " $deplib"
   6047     done
   6048 
   6049     if test "$linkmode" = lib; then
   6050       libs="$predeps $libs $compiler_lib_search_path $postdeps"
   6051 
   6052       # Compute libraries that are listed more than once in $predeps
   6053       # $postdeps and mark them as special (i.e., whose duplicates are
   6054       # not to be eliminated).
   6055       pre_post_deps=
   6056       if $opt_duplicate_compiler_generated_deps; then
   6057 	for pre_post_dep in $predeps $postdeps; do
   6058 	  case "$pre_post_deps " in
   6059 	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
   6060 	  esac
   6061 	  func_append pre_post_deps " $pre_post_dep"
   6062 	done
   6063       fi
   6064       pre_post_deps=
   6065     fi
   6066 
   6067     deplibs=
   6068     newdependency_libs=
   6069     newlib_search_path=
   6070     need_relink=no # whether we're linking any uninstalled libtool libraries
   6071     notinst_deplibs= # not-installed libtool libraries
   6072     notinst_path= # paths that contain not-installed libtool libraries
   6073 
   6074     case $linkmode in
   6075     lib)
   6076 	passes="conv dlpreopen link"
   6077 	for file in $dlfiles $dlprefiles; do
   6078 	  case $file in
   6079 	  *.la) ;;
   6080 	  *)
   6081 	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
   6082 	    ;;
   6083 	  esac
   6084 	done
   6085 	;;
   6086     prog)
   6087 	compile_deplibs=
   6088 	finalize_deplibs=
   6089 	alldeplibs=no
   6090 	newdlfiles=
   6091 	newdlprefiles=
   6092 	passes="conv scan dlopen dlpreopen link"
   6093 	;;
   6094     *)  passes="conv"
   6095 	;;
   6096     esac
   6097 
   6098     for pass in $passes; do
   6099       # The preopen pass in lib mode reverses $deplibs; put it back here
   6100       # so that -L comes before libs that need it for instance...
   6101       if test "$linkmode,$pass" = "lib,link"; then
   6102 	## FIXME: Find the place where the list is rebuilt in the wrong
   6103 	##        order, and fix it there properly
   6104         tmp_deplibs=
   6105 	for deplib in $deplibs; do
   6106 	  tmp_deplibs="$deplib $tmp_deplibs"
   6107 	done
   6108 	deplibs="$tmp_deplibs"
   6109       fi
   6110 
   6111       if test "$linkmode,$pass" = "lib,link" ||
   6112 	 test "$linkmode,$pass" = "prog,scan"; then
   6113 	libs="$deplibs"
   6114 	deplibs=
   6115       fi
   6116       if test "$linkmode" = prog; then
   6117 	case $pass in
   6118 	dlopen) libs="$dlfiles" ;;
   6119 	dlpreopen) libs="$dlprefiles" ;;
   6120 	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
   6121 	esac
   6122       fi
   6123       if test "$linkmode,$pass" = "lib,dlpreopen"; then
   6124 	# Collect and forward deplibs of preopened libtool libs
   6125 	for lib in $dlprefiles; do
   6126 	  # Ignore non-libtool-libs
   6127 	  dependency_libs=
   6128 	  func_resolve_sysroot "$lib"
   6129 	  case $lib in
   6130 	  *.la)	func_source "$func_resolve_sysroot_result" ;;
   6131 	  esac
   6132 
   6133 	  # Collect preopened libtool deplibs, except any this library
   6134 	  # has declared as weak libs
   6135 	  for deplib in $dependency_libs; do
   6136 	    func_basename "$deplib"
   6137             deplib_base=$func_basename_result
   6138 	    case " $weak_libs " in
   6139 	    *" $deplib_base "*) ;;
   6140 	    *) func_append deplibs " $deplib" ;;
   6141 	    esac
   6142 	  done
   6143 	done
   6144 	libs="$dlprefiles"
   6145       fi
   6146       if test "$pass" = dlopen; then
   6147 	# Collect dlpreopened libraries
   6148 	save_deplibs="$deplibs"
   6149 	deplibs=
   6150       fi
   6151 
   6152       for deplib in $libs; do
   6153 	lib=
   6154 	found=no
   6155 	case $deplib in
   6156 	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
   6157         |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
   6158 	  if test "$linkmode,$pass" = "prog,link"; then
   6159 	    compile_deplibs="$deplib $compile_deplibs"
   6160 	    finalize_deplibs="$deplib $finalize_deplibs"
   6161 	  else
   6162 	    func_append compiler_flags " $deplib"
   6163 	    if test "$linkmode" = lib ; then
   6164 		case "$new_inherited_linker_flags " in
   6165 		    *" $deplib "*) ;;
   6166 		    * ) func_append new_inherited_linker_flags " $deplib" ;;
   6167 		esac
   6168 	    fi
   6169 	  fi
   6170 	  continue
   6171 	  ;;
   6172 	-l*)
   6173 	  if test "$linkmode" != lib && test "$linkmode" != prog; then
   6174 	    func_warning "\`-l' is ignored for archives/objects"
   6175 	    continue
   6176 	  fi
   6177 	  func_stripname '-l' '' "$deplib"
   6178 	  name=$func_stripname_result
   6179 	  if test "$linkmode" = lib; then
   6180 	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
   6181 	  else
   6182 	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
   6183 	  fi
   6184 	  for searchdir in $searchdirs; do
   6185 	    for search_ext in .la $std_shrext .so .a; do
   6186 	      # Search the libtool library
   6187 	      lib="$searchdir/lib${name}${search_ext}"
   6188 	      if test -f "$lib"; then
   6189 		if test "$search_ext" = ".la"; then
   6190 		  found=yes
   6191 		else
   6192 		  found=no
   6193 		fi
   6194 		break 2
   6195 	      fi
   6196 	    done
   6197 	  done
   6198 	  if test "$found" != yes; then
   6199 	    # deplib doesn't seem to be a libtool library
   6200 	    if test "$linkmode,$pass" = "prog,link"; then
   6201 	      compile_deplibs="$deplib $compile_deplibs"
   6202 	      finalize_deplibs="$deplib $finalize_deplibs"
   6203 	    else
   6204 	      deplibs="$deplib $deplibs"
   6205 	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
   6206 	    fi
   6207 	    continue
   6208 	  else # deplib is a libtool library
   6209 	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
   6210 	    # We need to do some special things here, and not later.
   6211 	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
   6212 	      case " $predeps $postdeps " in
   6213 	      *" $deplib "*)
   6214 		if func_lalib_p "$lib"; then
   6215 		  library_names=
   6216 		  old_library=
   6217 		  func_source "$lib"
   6218 		  for l in $old_library $library_names; do
   6219 		    ll="$l"
   6220 		  done
   6221 		  if test "X$ll" = "X$old_library" ; then # only static version available
   6222 		    found=no
   6223 		    func_dirname "$lib" "" "."
   6224 		    ladir="$func_dirname_result"
   6225 		    lib=$ladir/$old_library
   6226 		    if test "$linkmode,$pass" = "prog,link"; then
   6227 		      compile_deplibs="$deplib $compile_deplibs"
   6228 		      finalize_deplibs="$deplib $finalize_deplibs"
   6229 		    else
   6230 		      deplibs="$deplib $deplibs"
   6231 		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
   6232 		    fi
   6233 		    continue
   6234 		  fi
   6235 		fi
   6236 		;;
   6237 	      *) ;;
   6238 	      esac
   6239 	    fi
   6240 	  fi
   6241 	  ;; # -l
   6242 	*.ltframework)
   6243 	  if test "$linkmode,$pass" = "prog,link"; then
   6244 	    compile_deplibs="$deplib $compile_deplibs"
   6245 	    finalize_deplibs="$deplib $finalize_deplibs"
   6246 	  else
   6247 	    deplibs="$deplib $deplibs"
   6248 	    if test "$linkmode" = lib ; then
   6249 		case "$new_inherited_linker_flags " in
   6250 		    *" $deplib "*) ;;
   6251 		    * ) func_append new_inherited_linker_flags " $deplib" ;;
   6252 		esac
   6253 	    fi
   6254 	  fi
   6255 	  continue
   6256 	  ;;
   6257 	-L*)
   6258 	  case $linkmode in
   6259 	  lib)
   6260 	    deplibs="$deplib $deplibs"
   6261 	    test "$pass" = conv && continue
   6262 	    newdependency_libs="$deplib $newdependency_libs"
   6263 	    func_stripname '-L' '' "$deplib"
   6264 	    func_resolve_sysroot "$func_stripname_result"
   6265 	    func_append newlib_search_path " $func_resolve_sysroot_result"
   6266 	    ;;
   6267 	  prog)
   6268 	    if test "$pass" = conv; then
   6269 	      deplibs="$deplib $deplibs"
   6270 	      continue
   6271 	    fi
   6272 	    if test "$pass" = scan; then
   6273 	      deplibs="$deplib $deplibs"
   6274 	    else
   6275 	      compile_deplibs="$deplib $compile_deplibs"
   6276 	      finalize_deplibs="$deplib $finalize_deplibs"
   6277 	    fi
   6278 	    func_stripname '-L' '' "$deplib"
   6279 	    func_resolve_sysroot "$func_stripname_result"
   6280 	    func_append newlib_search_path " $func_resolve_sysroot_result"
   6281 	    ;;
   6282 	  *)
   6283 	    func_warning "\`-L' is ignored for archives/objects"
   6284 	    ;;
   6285 	  esac # linkmode
   6286 	  continue
   6287 	  ;; # -L
   6288 	-R*)
   6289 	  if test "$pass" = link; then
   6290 	    func_stripname '-R' '' "$deplib"
   6291 	    func_resolve_sysroot "$func_stripname_result"
   6292 	    dir=$func_resolve_sysroot_result
   6293 	    # Make sure the xrpath contains only unique directories.
   6294 	    case "$xrpath " in
   6295 	    *" $dir "*) ;;
   6296 	    *) func_append xrpath " $dir" ;;
   6297 	    esac
   6298 	  fi
   6299 	  deplibs="$deplib $deplibs"
   6300 	  continue
   6301 	  ;;
   6302 	*.la)
   6303 	  func_resolve_sysroot "$deplib"
   6304 	  lib=$func_resolve_sysroot_result
   6305 	  ;;
   6306 	*.$libext)
   6307 	  if test "$pass" = conv; then
   6308 	    deplibs="$deplib $deplibs"
   6309 	    continue
   6310 	  fi
   6311 	  case $linkmode in
   6312 	  lib)
   6313 	    # Linking convenience modules into shared libraries is allowed,
   6314 	    # but linking other static libraries is non-portable.
   6315 	    case " $dlpreconveniencelibs " in
   6316 	    *" $deplib "*) ;;
   6317 	    *)
   6318 	      valid_a_lib=no
   6319 	      case $deplibs_check_method in
   6320 		match_pattern*)
   6321 		  set dummy $deplibs_check_method; shift
   6322 		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
   6323 		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
   6324 		    | $EGREP "$match_pattern_regex" > /dev/null; then
   6325 		    valid_a_lib=yes
   6326 		  fi
   6327 		;;
   6328 		pass_all)
   6329 		  valid_a_lib=yes
   6330 		;;
   6331 	      esac
   6332 	      if test "$valid_a_lib" != yes; then
   6333 		echo
   6334 		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
   6335 		echo "*** I have the capability to make that library automatically link in when"
   6336 		echo "*** you link to this library.  But I can only do this if you have a"
   6337 		echo "*** shared version of the library, which you do not appear to have"
   6338 		echo "*** because the file extensions .$libext of this argument makes me believe"
   6339 		echo "*** that it is just a static archive that I should not use here."
   6340 	      else
   6341 		echo
   6342 		$ECHO "*** Warning: Linking the shared library $output against the"
   6343 		$ECHO "*** static library $deplib is not portable!"
   6344 		deplibs="$deplib $deplibs"
   6345 	      fi
   6346 	      ;;
   6347 	    esac
   6348 	    continue
   6349 	    ;;
   6350 	  prog)
   6351 	    if test "$pass" != link; then
   6352 	      deplibs="$deplib $deplibs"
   6353 	    else
   6354 	      compile_deplibs="$deplib $compile_deplibs"
   6355 	      finalize_deplibs="$deplib $finalize_deplibs"
   6356 	    fi
   6357 	    continue
   6358 	    ;;
   6359 	  esac # linkmode
   6360 	  ;; # *.$libext
   6361 	*.lo | *.$objext)
   6362 	  if test "$pass" = conv; then
   6363 	    deplibs="$deplib $deplibs"
   6364 	  elif test "$linkmode" = prog; then
   6365 	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
   6366 	      # If there is no dlopen support or we're linking statically,
   6367 	      # we need to preload.
   6368 	      func_append newdlprefiles " $deplib"
   6369 	      compile_deplibs="$deplib $compile_deplibs"
   6370 	      finalize_deplibs="$deplib $finalize_deplibs"
   6371 	    else
   6372 	      func_append newdlfiles " $deplib"
   6373 	    fi
   6374 	  fi
   6375 	  continue
   6376 	  ;;
   6377 	%DEPLIBS%)
   6378 	  alldeplibs=yes
   6379 	  continue
   6380 	  ;;
   6381 	esac # case $deplib
   6382 
   6383 	if test "$found" = yes || test -f "$lib"; then :
   6384 	else
   6385 	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
   6386 	fi
   6387 
   6388 	# Check to see that this really is a libtool archive.
   6389 	func_lalib_unsafe_p "$lib" \
   6390 	  || func_fatal_error "\`$lib' is not a valid libtool archive"
   6391 
   6392 	func_dirname "$lib" "" "."
   6393 	ladir="$func_dirname_result"
   6394 
   6395 	dlname=
   6396 	dlopen=
   6397 	dlpreopen=
   6398 	libdir=
   6399 	library_names=
   6400 	old_library=
   6401 	inherited_linker_flags=
   6402 	# If the library was installed with an old release of libtool,
   6403 	# it will not redefine variables installed, or shouldnotlink
   6404 	installed=yes
   6405 	shouldnotlink=no
   6406 	avoidtemprpath=
   6407 
   6408 
   6409 	# Read the .la file
   6410 	func_source "$lib"
   6411 
   6412 	# Convert "-framework foo" to "foo.ltframework"
   6413 	if test -n "$inherited_linker_flags"; then
   6414 	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
   6415 	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
   6416 	    case " $new_inherited_linker_flags " in
   6417 	      *" $tmp_inherited_linker_flag "*) ;;
   6418 	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
   6419 	    esac
   6420 	  done
   6421 	fi
   6422 	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   6423 	if test "$linkmode,$pass" = "lib,link" ||
   6424 	   test "$linkmode,$pass" = "prog,scan" ||
   6425 	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
   6426 	  test -n "$dlopen" && func_append dlfiles " $dlopen"
   6427 	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
   6428 	fi
   6429 
   6430 	if test "$pass" = conv; then
   6431 	  # Only check for convenience libraries
   6432 	  deplibs="$lib $deplibs"
   6433 	  if test -z "$libdir"; then
   6434 	    if test -z "$old_library"; then
   6435 	      func_fatal_error "cannot find name of link library for \`$lib'"
   6436 	    fi
   6437 	    # It is a libtool convenience library, so add in its objects.
   6438 	    func_append convenience " $ladir/$objdir/$old_library"
   6439 	    func_append old_convenience " $ladir/$objdir/$old_library"
   6440 	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
   6441 	    func_fatal_error "\`$lib' is not a convenience library"
   6442 	  fi
   6443 	  tmp_libs=
   6444 	  for deplib in $dependency_libs; do
   6445 	    deplibs="$deplib $deplibs"
   6446 	    if $opt_preserve_dup_deps ; then
   6447 	      case "$tmp_libs " in
   6448 	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
   6449 	      esac
   6450 	    fi
   6451 	    func_append tmp_libs " $deplib"
   6452 	  done
   6453 	  continue
   6454 	fi # $pass = conv
   6455 
   6456 
   6457 	# Get the name of the library we link against.
   6458 	linklib=
   6459 	if test -n "$old_library" &&
   6460 	   { test "$prefer_static_libs" = yes ||
   6461 	     test "$prefer_static_libs,$installed" = "built,no"; }; then
   6462 	  linklib=$old_library
   6463 	else
   6464 	  for l in $old_library $library_names; do
   6465 	    linklib="$l"
   6466 	  done
   6467 	fi
   6468 	if test -z "$linklib"; then
   6469 	  func_fatal_error "cannot find name of link library for \`$lib'"
   6470 	fi
   6471 
   6472 	# This library was specified with -dlopen.
   6473 	if test "$pass" = dlopen; then
   6474 	  if test -z "$libdir"; then
   6475 	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
   6476 	  fi
   6477 	  if test -z "$dlname" ||
   6478 	     test "$dlopen_support" != yes ||
   6479 	     test "$build_libtool_libs" = no; then
   6480 	    # If there is no dlname, no dlopen support or we're linking
   6481 	    # statically, we need to preload.  We also need to preload any
   6482 	    # dependent libraries so libltdl's deplib preloader doesn't
   6483 	    # bomb out in the load deplibs phase.
   6484 	    func_append dlprefiles " $lib $dependency_libs"
   6485 	  else
   6486 	    func_append newdlfiles " $lib"
   6487 	  fi
   6488 	  continue
   6489 	fi # $pass = dlopen
   6490 
   6491 	# We need an absolute path.
   6492 	case $ladir in
   6493 	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
   6494 	*)
   6495 	  abs_ladir=`cd "$ladir" && pwd`
   6496 	  if test -z "$abs_ladir"; then
   6497 	    func_warning "cannot determine absolute directory name of \`$ladir'"
   6498 	    func_warning "passing it literally to the linker, although it might fail"
   6499 	    abs_ladir="$ladir"
   6500 	  fi
   6501 	  ;;
   6502 	esac
   6503 	func_basename "$lib"
   6504 	laname="$func_basename_result"
   6505 
   6506 	# Find the relevant object directory and library name.
   6507 	if test "X$installed" = Xyes; then
   6508 	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
   6509 	    func_warning "library \`$lib' was moved."
   6510 	    dir="$ladir"
   6511 	    absdir="$abs_ladir"
   6512 	    libdir="$abs_ladir"
   6513 	  else
   6514 	    dir="$lt_sysroot$libdir"
   6515 	    absdir="$lt_sysroot$libdir"
   6516 	  fi
   6517 	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
   6518 	else
   6519 	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
   6520 	    dir="$ladir"
   6521 	    absdir="$abs_ladir"
   6522 	    # Remove this search path later
   6523 	    func_append notinst_path " $abs_ladir"
   6524 	  else
   6525 	    dir="$ladir/$objdir"
   6526 	    absdir="$abs_ladir/$objdir"
   6527 	    # Remove this search path later
   6528 	    func_append notinst_path " $abs_ladir"
   6529 	  fi
   6530 	fi # $installed = yes
   6531 	func_stripname 'lib' '.la' "$laname"
   6532 	name=$func_stripname_result
   6533 
   6534 	# This library was specified with -dlpreopen.
   6535 	if test "$pass" = dlpreopen; then
   6536 	  if test -z "$libdir" && test "$linkmode" = prog; then
   6537 	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
   6538 	  fi
   6539 	  case "$host" in
   6540 	    # special handling for platforms with PE-DLLs.
   6541 	    *cygwin* | *mingw* | *cegcc* )
   6542 	      # Linker will automatically link against shared library if both
   6543 	      # static and shared are present.  Therefore, ensure we extract
   6544 	      # symbols from the import library if a shared library is present
   6545 	      # (otherwise, the dlopen module name will be incorrect).  We do
   6546 	      # this by putting the import library name into $newdlprefiles.
   6547 	      # We recover the dlopen module name by 'saving' the la file
   6548 	      # name in a special purpose variable, and (later) extracting the
   6549 	      # dlname from the la file.
   6550 	      if test -n "$dlname"; then
   6551 	        func_tr_sh "$dir/$linklib"
   6552 	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
   6553 	        func_append newdlprefiles " $dir/$linklib"
   6554 	      else
   6555 	        func_append newdlprefiles " $dir/$old_library"
   6556 	        # Keep a list of preopened convenience libraries to check
   6557 	        # that they are being used correctly in the link pass.
   6558 	        test -z "$libdir" && \
   6559 	          func_append dlpreconveniencelibs " $dir/$old_library"
   6560 	      fi
   6561 	    ;;
   6562 	    * )
   6563 	      # Prefer using a static library (so that no silly _DYNAMIC symbols
   6564 	      # are required to link).
   6565 	      if test -n "$old_library"; then
   6566 	        func_append newdlprefiles " $dir/$old_library"
   6567 	        # Keep a list of preopened convenience libraries to check
   6568 	        # that they are being used correctly in the link pass.
   6569 	        test -z "$libdir" && \
   6570 	          func_append dlpreconveniencelibs " $dir/$old_library"
   6571 	      # Otherwise, use the dlname, so that lt_dlopen finds it.
   6572 	      elif test -n "$dlname"; then
   6573 	        func_append newdlprefiles " $dir/$dlname"
   6574 	      else
   6575 	        func_append newdlprefiles " $dir/$linklib"
   6576 	      fi
   6577 	    ;;
   6578 	  esac
   6579 	fi # $pass = dlpreopen
   6580 
   6581 	if test -z "$libdir"; then
   6582 	  # Link the convenience library
   6583 	  if test "$linkmode" = lib; then
   6584 	    deplibs="$dir/$old_library $deplibs"
   6585 	  elif test "$linkmode,$pass" = "prog,link"; then
   6586 	    compile_deplibs="$dir/$old_library $compile_deplibs"
   6587 	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
   6588 	  else
   6589 	    deplibs="$lib $deplibs" # used for prog,scan pass
   6590 	  fi
   6591 	  continue
   6592 	fi
   6593 
   6594 
   6595 	if test "$linkmode" = prog && test "$pass" != link; then
   6596 	  func_append newlib_search_path " $ladir"
   6597 	  deplibs="$lib $deplibs"
   6598 
   6599 	  linkalldeplibs=no
   6600 	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
   6601 	     test "$build_libtool_libs" = no; then
   6602 	    linkalldeplibs=yes
   6603 	  fi
   6604 
   6605 	  tmp_libs=
   6606 	  for deplib in $dependency_libs; do
   6607 	    case $deplib in
   6608 	    -L*) func_stripname '-L' '' "$deplib"
   6609 	         func_resolve_sysroot "$func_stripname_result"
   6610 	         func_append newlib_search_path " $func_resolve_sysroot_result"
   6611 		 ;;
   6612 	    esac
   6613 	    # Need to link against all dependency_libs?
   6614 	    if test "$linkalldeplibs" = yes; then
   6615 	      deplibs="$deplib $deplibs"
   6616 	    else
   6617 	      # Need to hardcode shared library paths
   6618 	      # or/and link against static libraries
   6619 	      newdependency_libs="$deplib $newdependency_libs"
   6620 	    fi
   6621 	    if $opt_preserve_dup_deps ; then
   6622 	      case "$tmp_libs " in
   6623 	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
   6624 	      esac
   6625 	    fi
   6626 	    func_append tmp_libs " $deplib"
   6627 	  done # for deplib
   6628 	  continue
   6629 	fi # $linkmode = prog...
   6630 
   6631 	if test "$linkmode,$pass" = "prog,link"; then
   6632 	  if test -n "$library_names" &&
   6633 	     { { test "$prefer_static_libs" = no ||
   6634 	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
   6635 	       test -z "$old_library"; }; then
   6636 	    # We need to hardcode the library path
   6637 	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
   6638 	      # Make sure the rpath contains only unique directories.
   6639 	      case "$temp_rpath:" in
   6640 	      *"$absdir:"*) ;;
   6641 	      *) func_append temp_rpath "$absdir:" ;;
   6642 	      esac
   6643 	    fi
   6644 
   6645 	    # Hardcode the library path.
   6646 	    # Skip directories that are in the system default run-time
   6647 	    # search path.
   6648 	    case " $sys_lib_dlsearch_path " in
   6649 	    *" $absdir "*) ;;
   6650 	    *)
   6651 	      case "$compile_rpath " in
   6652 	      *" $absdir "*) ;;
   6653 	      *) func_append compile_rpath " $absdir" ;;
   6654 	      esac
   6655 	      ;;
   6656 	    esac
   6657 	    case " $sys_lib_dlsearch_path " in
   6658 	    *" $libdir "*) ;;
   6659 	    *)
   6660 	      case "$finalize_rpath " in
   6661 	      *" $libdir "*) ;;
   6662 	      *) func_append finalize_rpath " $libdir" ;;
   6663 	      esac
   6664 	      ;;
   6665 	    esac
   6666 	  fi # $linkmode,$pass = prog,link...
   6667 
   6668 	  if test "$alldeplibs" = yes &&
   6669 	     { test "$deplibs_check_method" = pass_all ||
   6670 	       { test "$build_libtool_libs" = yes &&
   6671 		 test -n "$library_names"; }; }; then
   6672 	    # We only need to search for static libraries
   6673 	    continue
   6674 	  fi
   6675 	fi
   6676 
   6677 	link_static=no # Whether the deplib will be linked statically
   6678 	use_static_libs=$prefer_static_libs
   6679 	if test "$use_static_libs" = built && test "$installed" = yes; then
   6680 	  use_static_libs=no
   6681 	fi
   6682 	if test -n "$library_names" &&
   6683 	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
   6684 	  case $host in
   6685 	  *cygwin* | *mingw* | *cegcc*)
   6686 	      # No point in relinking DLLs because paths are not encoded
   6687 	      func_append notinst_deplibs " $lib"
   6688 	      need_relink=no
   6689 	    ;;
   6690 	  *)
   6691 	    if test "$installed" = no; then
   6692 	      func_append notinst_deplibs " $lib"
   6693 	      need_relink=yes
   6694 	    fi
   6695 	    ;;
   6696 	  esac
   6697 	  # This is a shared library
   6698 
   6699 	  # Warn about portability, can't link against -module's on some
   6700 	  # systems (darwin).  Don't bleat about dlopened modules though!
   6701 	  dlopenmodule=""
   6702 	  for dlpremoduletest in $dlprefiles; do
   6703 	    if test "X$dlpremoduletest" = "X$lib"; then
   6704 	      dlopenmodule="$dlpremoduletest"
   6705 	      break
   6706 	    fi
   6707 	  done
   6708 	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
   6709 	    echo
   6710 	    if test "$linkmode" = prog; then
   6711 	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
   6712 	    else
   6713 	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
   6714 	    fi
   6715 	    $ECHO "*** $linklib is not portable!"
   6716 	  fi
   6717 	  if test "$linkmode" = lib &&
   6718 	     test "$hardcode_into_libs" = yes; then
   6719 	    # Hardcode the library path.
   6720 	    # Skip directories that are in the system default run-time
   6721 	    # search path.
   6722 	    case " $sys_lib_dlsearch_path " in
   6723 	    *" $absdir "*) ;;
   6724 	    *)
   6725 	      case "$compile_rpath " in
   6726 	      *" $absdir "*) ;;
   6727 	      *) func_append compile_rpath " $absdir" ;;
   6728 	      esac
   6729 	      ;;
   6730 	    esac
   6731 	    case " $sys_lib_dlsearch_path " in
   6732 	    *" $libdir "*) ;;
   6733 	    *)
   6734 	      case "$finalize_rpath " in
   6735 	      *" $libdir "*) ;;
   6736 	      *) func_append finalize_rpath " $libdir" ;;
   6737 	      esac
   6738 	      ;;
   6739 	    esac
   6740 	  fi
   6741 
   6742 	  if test -n "$old_archive_from_expsyms_cmds"; then
   6743 	    # figure out the soname
   6744 	    set dummy $library_names
   6745 	    shift
   6746 	    realname="$1"
   6747 	    shift
   6748 	    libname=`eval "\\$ECHO \"$libname_spec\""`
   6749 	    # use dlname if we got it. it's perfectly good, no?
   6750 	    if test -n "$dlname"; then
   6751 	      soname="$dlname"
   6752 	    elif test -n "$soname_spec"; then
   6753 	      # bleh windows
   6754 	      case $host in
   6755 	      *cygwin* | mingw* | *cegcc*)
   6756 	        func_arith $current - $age
   6757 		major=$func_arith_result
   6758 		versuffix="-$major"
   6759 		;;
   6760 	      esac
   6761 	      eval soname=\"$soname_spec\"
   6762 	    else
   6763 	      soname="$realname"
   6764 	    fi
   6765 
   6766 	    # Make a new name for the extract_expsyms_cmds to use
   6767 	    soroot="$soname"
   6768 	    func_basename "$soroot"
   6769 	    soname="$func_basename_result"
   6770 	    func_stripname 'lib' '.dll' "$soname"
   6771 	    newlib=libimp-$func_stripname_result.a
   6772 
   6773 	    # If the library has no export list, then create one now
   6774 	    if test -f "$output_objdir/$soname-def"; then :
   6775 	    else
   6776 	      func_verbose "extracting exported symbol list from \`$soname'"
   6777 	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
   6778 	    fi
   6779 
   6780 	    # Create $newlib
   6781 	    if test -f "$output_objdir/$newlib"; then :; else
   6782 	      func_verbose "generating import library for \`$soname'"
   6783 	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
   6784 	    fi
   6785 	    # make sure the library variables are pointing to the new library
   6786 	    dir=$output_objdir
   6787 	    linklib=$newlib
   6788 	  fi # test -n "$old_archive_from_expsyms_cmds"
   6789 
   6790 	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
   6791 	    add_shlibpath=
   6792 	    add_dir=
   6793 	    add=
   6794 	    lib_linked=yes
   6795 	    case $hardcode_action in
   6796 	    immediate | unsupported)
   6797 	      if test "$hardcode_direct" = no; then
   6798 		add="$dir/$linklib"
   6799 		case $host in
   6800 		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
   6801 		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
   6802 		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
   6803 		    *-*-unixware7*) add_dir="-L$dir" ;;
   6804 		  *-*-darwin* )
   6805 		    # if the lib is a (non-dlopened) module then we can not
   6806 		    # link against it, someone is ignoring the earlier warnings
   6807 		    if /usr/bin/file -L $add 2> /dev/null |
   6808 			 $GREP ": [^:]* bundle" >/dev/null ; then
   6809 		      if test "X$dlopenmodule" != "X$lib"; then
   6810 			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
   6811 			if test -z "$old_library" ; then
   6812 			  echo
   6813 			  echo "*** And there doesn't seem to be a static archive available"
   6814 			  echo "*** The link will probably fail, sorry"
   6815 			else
   6816 			  add="$dir/$old_library"
   6817 			fi
   6818 		      elif test -n "$old_library"; then
   6819 			add="$dir/$old_library"
   6820 		      fi
   6821 		    fi
   6822 		esac
   6823 	      elif test "$hardcode_minus_L" = no; then
   6824 		case $host in
   6825 		*-*-sunos*) add_shlibpath="$dir" ;;
   6826 		esac
   6827 		add_dir="-L$dir"
   6828 		add="-l$name"
   6829 	      elif test "$hardcode_shlibpath_var" = no; then
   6830 		add_shlibpath="$dir"
   6831 		add="-l$name"
   6832 	      else
   6833 		lib_linked=no
   6834 	      fi
   6835 	      ;;
   6836 	    relink)
   6837 	      if test "$hardcode_direct" = yes &&
   6838 	         test "$hardcode_direct_absolute" = no; then
   6839 		add="$dir/$linklib"
   6840 	      elif test "$hardcode_minus_L" = yes; then
   6841 		add_dir="-L$absdir"
   6842 		# Try looking first in the location we're being installed to.
   6843 		if test -n "$inst_prefix_dir"; then
   6844 		  case $libdir in
   6845 		    [\\/]*)
   6846 		      func_append add_dir " -L$inst_prefix_dir$libdir"
   6847 		      ;;
   6848 		  esac
   6849 		fi
   6850 		add="-l$name"
   6851 	      elif test "$hardcode_shlibpath_var" = yes; then
   6852 		add_shlibpath="$dir"
   6853 		add="-l$name"
   6854 	      else
   6855 		lib_linked=no
   6856 	      fi
   6857 	      ;;
   6858 	    *) lib_linked=no ;;
   6859 	    esac
   6860 
   6861 	    if test "$lib_linked" != yes; then
   6862 	      func_fatal_configuration "unsupported hardcode properties"
   6863 	    fi
   6864 
   6865 	    if test -n "$add_shlibpath"; then
   6866 	      case :$compile_shlibpath: in
   6867 	      *":$add_shlibpath:"*) ;;
   6868 	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
   6869 	      esac
   6870 	    fi
   6871 	    if test "$linkmode" = prog; then
   6872 	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
   6873 	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
   6874 	    else
   6875 	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
   6876 	      test -n "$add" && deplibs="$add $deplibs"
   6877 	      if test "$hardcode_direct" != yes &&
   6878 		 test "$hardcode_minus_L" != yes &&
   6879 		 test "$hardcode_shlibpath_var" = yes; then
   6880 		case :$finalize_shlibpath: in
   6881 		*":$libdir:"*) ;;
   6882 		*) func_append finalize_shlibpath "$libdir:" ;;
   6883 		esac
   6884 	      fi
   6885 	    fi
   6886 	  fi
   6887 
   6888 	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
   6889 	    add_shlibpath=
   6890 	    add_dir=
   6891 	    add=
   6892 	    # Finalize command for both is simple: just hardcode it.
   6893 	    if test "$hardcode_direct" = yes &&
   6894 	       test "$hardcode_direct_absolute" = no; then
   6895 	      add="$libdir/$linklib"
   6896 	    elif test "$hardcode_minus_L" = yes; then
   6897 	      add_dir="-L$libdir"
   6898 	      add="-l$name"
   6899 	    elif test "$hardcode_shlibpath_var" = yes; then
   6900 	      case :$finalize_shlibpath: in
   6901 	      *":$libdir:"*) ;;
   6902 	      *) func_append finalize_shlibpath "$libdir:" ;;
   6903 	      esac
   6904 	      add="-l$name"
   6905 	    elif test "$hardcode_automatic" = yes; then
   6906 	      if test -n "$inst_prefix_dir" &&
   6907 		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
   6908 		add="$inst_prefix_dir$libdir/$linklib"
   6909 	      else
   6910 		add="$libdir/$linklib"
   6911 	      fi
   6912 	    else
   6913 	      # We cannot seem to hardcode it, guess we'll fake it.
   6914 	      add_dir="-L$libdir"
   6915 	      # Try looking first in the location we're being installed to.
   6916 	      if test -n "$inst_prefix_dir"; then
   6917 		case $libdir in
   6918 		  [\\/]*)
   6919 		    func_append add_dir " -L$inst_prefix_dir$libdir"
   6920 		    ;;
   6921 		esac
   6922 	      fi
   6923 	      add="-l$name"
   6924 	    fi
   6925 
   6926 	    if test "$linkmode" = prog; then
   6927 	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
   6928 	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
   6929 	    else
   6930 	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
   6931 	      test -n "$add" && deplibs="$add $deplibs"
   6932 	    fi
   6933 	  fi
   6934 	elif test "$linkmode" = prog; then
   6935 	  # Here we assume that one of hardcode_direct or hardcode_minus_L
   6936 	  # is not unsupported.  This is valid on all known static and
   6937 	  # shared platforms.
   6938 	  if test "$hardcode_direct" != unsupported; then
   6939 	    test -n "$old_library" && linklib="$old_library"
   6940 	    compile_deplibs="$dir/$linklib $compile_deplibs"
   6941 	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
   6942 	  else
   6943 	    compile_deplibs="-l$name -L$dir $compile_deplibs"
   6944 	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
   6945 	  fi
   6946 	elif test "$build_libtool_libs" = yes; then
   6947 	  # Not a shared library
   6948 	  if test "$deplibs_check_method" != pass_all; then
   6949 	    # We're trying link a shared library against a static one
   6950 	    # but the system doesn't support it.
   6951 
   6952 	    # Just print a warning and add the library to dependency_libs so
   6953 	    # that the program can be linked against the static library.
   6954 	    echo
   6955 	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
   6956 	    echo "*** I have the capability to make that library automatically link in when"
   6957 	    echo "*** you link to this library.  But I can only do this if you have a"
   6958 	    echo "*** shared version of the library, which you do not appear to have."
   6959 	    if test "$module" = yes; then
   6960 	      echo "*** But as you try to build a module library, libtool will still create "
   6961 	      echo "*** a static module, that should work as long as the dlopening application"
   6962 	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
   6963 	      if test -z "$global_symbol_pipe"; then
   6964 		echo
   6965 		echo "*** However, this would only work if libtool was able to extract symbol"
   6966 		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
   6967 		echo "*** not find such a program.  So, this module is probably useless."
   6968 		echo "*** \`nm' from GNU binutils and a full rebuild may help."
   6969 	      fi
   6970 	      if test "$build_old_libs" = no; then
   6971 		build_libtool_libs=module
   6972 		build_old_libs=yes
   6973 	      else
   6974 		build_libtool_libs=no
   6975 	      fi
   6976 	    fi
   6977 	  else
   6978 	    deplibs="$dir/$old_library $deplibs"
   6979 	    link_static=yes
   6980 	  fi
   6981 	fi # link shared/static library?
   6982 
   6983 	if test "$linkmode" = lib; then
   6984 	  if test -n "$dependency_libs" &&
   6985 	     { test "$hardcode_into_libs" != yes ||
   6986 	       test "$build_old_libs" = yes ||
   6987 	       test "$link_static" = yes; }; then
   6988 	    # Extract -R from dependency_libs
   6989 	    temp_deplibs=
   6990 	    for libdir in $dependency_libs; do
   6991 	      case $libdir in
   6992 	      -R*) func_stripname '-R' '' "$libdir"
   6993 	           temp_xrpath=$func_stripname_result
   6994 		   case " $xrpath " in
   6995 		   *" $temp_xrpath "*) ;;
   6996 		   *) func_append xrpath " $temp_xrpath";;
   6997 		   esac;;
   6998 	      *) func_append temp_deplibs " $libdir";;
   6999 	      esac
   7000 	    done
   7001 	    dependency_libs="$temp_deplibs"
   7002 	  fi
   7003 
   7004 	  func_append newlib_search_path " $absdir"
   7005 	  # Link against this library
   7006 	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
   7007 	  # ... and its dependency_libs
   7008 	  tmp_libs=
   7009 	  for deplib in $dependency_libs; do
   7010 	    newdependency_libs="$deplib $newdependency_libs"
   7011 	    case $deplib in
   7012               -L*) func_stripname '-L' '' "$deplib"
   7013                    func_resolve_sysroot "$func_stripname_result";;
   7014               *) func_resolve_sysroot "$deplib" ;;
   7015             esac
   7016 	    if $opt_preserve_dup_deps ; then
   7017 	      case "$tmp_libs " in
   7018 	      *" $func_resolve_sysroot_result "*)
   7019                 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
   7020 	      esac
   7021 	    fi
   7022 	    func_append tmp_libs " $func_resolve_sysroot_result"
   7023 	  done
   7024 
   7025 	  if test "$link_all_deplibs" != no; then
   7026 	    # Add the search paths of all dependency libraries
   7027 	    for deplib in $dependency_libs; do
   7028 	      path=
   7029 	      case $deplib in
   7030 	      -L*) path="$deplib" ;;
   7031 	      *.la)
   7032 	        func_resolve_sysroot "$deplib"
   7033 	        deplib=$func_resolve_sysroot_result
   7034 	        func_dirname "$deplib" "" "."
   7035 		dir=$func_dirname_result
   7036 		# We need an absolute path.
   7037 		case $dir in
   7038 		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
   7039 		*)
   7040 		  absdir=`cd "$dir" && pwd`
   7041 		  if test -z "$absdir"; then
   7042 		    func_warning "cannot determine absolute directory name of \`$dir'"
   7043 		    absdir="$dir"
   7044 		  fi
   7045 		  ;;
   7046 		esac
   7047 		if $GREP "^installed=no" $deplib > /dev/null; then
   7048 		case $host in
   7049 		*-*-darwin*)
   7050 		  depdepl=
   7051 		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
   7052 		  if test -n "$deplibrary_names" ; then
   7053 		    for tmp in $deplibrary_names ; do
   7054 		      depdepl=$tmp
   7055 		    done
   7056 		    if test -f "$absdir/$objdir/$depdepl" ; then
   7057 		      depdepl="$absdir/$objdir/$depdepl"
   7058 		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
   7059                       if test -z "$darwin_install_name"; then
   7060                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
   7061                       fi
   7062 		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
   7063 		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
   7064 		      path=
   7065 		    fi
   7066 		  fi
   7067 		  ;;
   7068 		*)
   7069 		  path="-L$absdir/$objdir"
   7070 		  ;;
   7071 		esac
   7072 		else
   7073 		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
   7074 		  test -z "$libdir" && \
   7075 		    func_fatal_error "\`$deplib' is not a valid libtool archive"
   7076 		  test "$absdir" != "$libdir" && \
   7077 		    func_warning "\`$deplib' seems to be moved"
   7078 
   7079 		  path="-L$absdir"
   7080 		fi
   7081 		;;
   7082 	      esac
   7083 	      case " $deplibs " in
   7084 	      *" $path "*) ;;
   7085 	      *) deplibs="$path $deplibs" ;;
   7086 	      esac
   7087 	    done
   7088 	  fi # link_all_deplibs != no
   7089 	fi # linkmode = lib
   7090       done # for deplib in $libs
   7091       if test "$pass" = link; then
   7092 	if test "$linkmode" = "prog"; then
   7093 	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
   7094 	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
   7095 	else
   7096 	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   7097 	fi
   7098       fi
   7099       dependency_libs="$newdependency_libs"
   7100       if test "$pass" = dlpreopen; then
   7101 	# Link the dlpreopened libraries before other libraries
   7102 	for deplib in $save_deplibs; do
   7103 	  deplibs="$deplib $deplibs"
   7104 	done
   7105       fi
   7106       if test "$pass" != dlopen; then
   7107 	if test "$pass" != conv; then
   7108 	  # Make sure lib_search_path contains only unique directories.
   7109 	  lib_search_path=
   7110 	  for dir in $newlib_search_path; do
   7111 	    case "$lib_search_path " in
   7112 	    *" $dir "*) ;;
   7113 	    *) func_append lib_search_path " $dir" ;;
   7114 	    esac
   7115 	  done
   7116 	  newlib_search_path=
   7117 	fi
   7118 
   7119 	if test "$linkmode,$pass" != "prog,link"; then
   7120 	  vars="deplibs"
   7121 	else
   7122 	  vars="compile_deplibs finalize_deplibs"
   7123 	fi
   7124 	for var in $vars dependency_libs; do
   7125 	  # Add libraries to $var in reverse order
   7126 	  eval tmp_libs=\"\$$var\"
   7127 	  new_libs=
   7128 	  for deplib in $tmp_libs; do
   7129 	    # FIXME: Pedantically, this is the right thing to do, so
   7130 	    #        that some nasty dependency loop isn't accidentally
   7131 	    #        broken:
   7132 	    #new_libs="$deplib $new_libs"
   7133 	    # Pragmatically, this seems to cause very few problems in
   7134 	    # practice:
   7135 	    case $deplib in
   7136 	    -L*) new_libs="$deplib $new_libs" ;;
   7137 	    -R*) ;;
   7138 	    *)
   7139 	      # And here is the reason: when a library appears more
   7140 	      # than once as an explicit dependence of a library, or
   7141 	      # is implicitly linked in more than once by the
   7142 	      # compiler, it is considered special, and multiple
   7143 	      # occurrences thereof are not removed.  Compare this
   7144 	      # with having the same library being listed as a
   7145 	      # dependency of multiple other libraries: in this case,
   7146 	      # we know (pedantically, we assume) the library does not
   7147 	      # need to be listed more than once, so we keep only the
   7148 	      # last copy.  This is not always right, but it is rare
   7149 	      # enough that we require users that really mean to play
   7150 	      # such unportable linking tricks to link the library
   7151 	      # using -Wl,-lname, so that libtool does not consider it
   7152 	      # for duplicate removal.
   7153 	      case " $specialdeplibs " in
   7154 	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
   7155 	      *)
   7156 		case " $new_libs " in
   7157 		*" $deplib "*) ;;
   7158 		*) new_libs="$deplib $new_libs" ;;
   7159 		esac
   7160 		;;
   7161 	      esac
   7162 	      ;;
   7163 	    esac
   7164 	  done
   7165 	  tmp_libs=
   7166 	  for deplib in $new_libs; do
   7167 	    case $deplib in
   7168 	    -L*)
   7169 	      case " $tmp_libs " in
   7170 	      *" $deplib "*) ;;
   7171 	      *) func_append tmp_libs " $deplib" ;;
   7172 	      esac
   7173 	      ;;
   7174 	    *) func_append tmp_libs " $deplib" ;;
   7175 	    esac
   7176 	  done
   7177 	  eval $var=\"$tmp_libs\"
   7178 	done # for var
   7179       fi
   7180       # Last step: remove runtime libs from dependency_libs
   7181       # (they stay in deplibs)
   7182       tmp_libs=
   7183       for i in $dependency_libs ; do
   7184 	case " $predeps $postdeps $compiler_lib_search_path " in
   7185 	*" $i "*)
   7186 	  i=""
   7187 	  ;;
   7188 	esac
   7189 	if test -n "$i" ; then
   7190 	  func_append tmp_libs " $i"
   7191 	fi
   7192       done
   7193       dependency_libs=$tmp_libs
   7194     done # for pass
   7195     if test "$linkmode" = prog; then
   7196       dlfiles="$newdlfiles"
   7197     fi
   7198     if test "$linkmode" = prog || test "$linkmode" = lib; then
   7199       dlprefiles="$newdlprefiles"
   7200     fi
   7201 
   7202     case $linkmode in
   7203     oldlib)
   7204       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
   7205 	func_warning "\`-dlopen' is ignored for archives"
   7206       fi
   7207 
   7208       case " $deplibs" in
   7209       *\ -l* | *\ -L*)
   7210 	func_warning "\`-l' and \`-L' are ignored for archives" ;;
   7211       esac
   7212 
   7213       test -n "$rpath" && \
   7214 	func_warning "\`-rpath' is ignored for archives"
   7215 
   7216       test -n "$xrpath" && \
   7217 	func_warning "\`-R' is ignored for archives"
   7218 
   7219       test -n "$vinfo" && \
   7220 	func_warning "\`-version-info/-version-number' is ignored for archives"
   7221 
   7222       test -n "$release" && \
   7223 	func_warning "\`-release' is ignored for archives"
   7224 
   7225       test -n "$export_symbols$export_symbols_regex" && \
   7226 	func_warning "\`-export-symbols' is ignored for archives"
   7227 
   7228       # Now set the variables for building old libraries.
   7229       build_libtool_libs=no
   7230       oldlibs="$output"
   7231       func_append objs "$old_deplibs"
   7232       ;;
   7233 
   7234     lib)
   7235       # Make sure we only generate libraries of the form `libNAME.la'.
   7236       case $outputname in
   7237       lib*)
   7238 	func_stripname 'lib' '.la' "$outputname"
   7239 	name=$func_stripname_result
   7240 	eval shared_ext=\"$shrext_cmds\"
   7241 	eval libname=\"$libname_spec\"
   7242 	;;
   7243       *)
   7244 	test "$module" = no && \
   7245 	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
   7246 
   7247 	if test "$need_lib_prefix" != no; then
   7248 	  # Add the "lib" prefix for modules if required
   7249 	  func_stripname '' '.la' "$outputname"
   7250 	  name=$func_stripname_result
   7251 	  eval shared_ext=\"$shrext_cmds\"
   7252 	  eval libname=\"$libname_spec\"
   7253 	else
   7254 	  func_stripname '' '.la' "$outputname"
   7255 	  libname=$func_stripname_result
   7256 	fi
   7257 	;;
   7258       esac
   7259 
   7260       if test -n "$objs"; then
   7261 	if test "$deplibs_check_method" != pass_all; then
   7262 	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
   7263 	else
   7264 	  echo
   7265 	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
   7266 	  $ECHO "*** objects $objs is not portable!"
   7267 	  func_append libobjs " $objs"
   7268 	fi
   7269       fi
   7270 
   7271       test "$dlself" != no && \
   7272 	func_warning "\`-dlopen self' is ignored for libtool libraries"
   7273 
   7274       set dummy $rpath
   7275       shift
   7276       test "$#" -gt 1 && \
   7277 	func_warning "ignoring multiple \`-rpath's for a libtool library"
   7278 
   7279       install_libdir="$1"
   7280 
   7281       oldlibs=
   7282       if test -z "$rpath"; then
   7283 	if test "$build_libtool_libs" = yes; then
   7284 	  # Building a libtool convenience library.
   7285 	  # Some compilers have problems with a `.al' extension so
   7286 	  # convenience libraries should have the same extension an
   7287 	  # archive normally would.
   7288 	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
   7289 	  build_libtool_libs=convenience
   7290 	  build_old_libs=yes
   7291 	fi
   7292 
   7293 	test -n "$vinfo" && \
   7294 	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
   7295 
   7296 	test -n "$release" && \
   7297 	  func_warning "\`-release' is ignored for convenience libraries"
   7298       else
   7299 
   7300 	# Parse the version information argument.
   7301 	save_ifs="$IFS"; IFS=':'
   7302 	set dummy $vinfo 0 0 0
   7303 	shift
   7304 	IFS="$save_ifs"
   7305 
   7306 	test -n "$7" && \
   7307 	  func_fatal_help "too many parameters to \`-version-info'"
   7308 
   7309 	# convert absolute version numbers to libtool ages
   7310 	# this retains compatibility with .la files and attempts
   7311 	# to make the code below a bit more comprehensible
   7312 
   7313 	case $vinfo_number in
   7314 	yes)
   7315 	  number_major="$1"
   7316 	  number_minor="$2"
   7317 	  number_revision="$3"
   7318 	  #
   7319 	  # There are really only two kinds -- those that
   7320 	  # use the current revision as the major version
   7321 	  # and those that subtract age and use age as
   7322 	  # a minor version.  But, then there is irix
   7323 	  # which has an extra 1 added just for fun
   7324 	  #
   7325 	  case $version_type in
   7326 	  # correct linux to gnu/linux during the next big refactor
   7327 	  darwin|linux|osf|windows|none)
   7328 	    func_arith $number_major + $number_minor
   7329 	    current=$func_arith_result
   7330 	    age="$number_minor"
   7331 	    revision="$number_revision"
   7332 	    ;;
   7333 	  freebsd-aout|freebsd-elf|qnx|sunos)
   7334 	    current="$number_major"
   7335 	    revision="$number_minor"
   7336 	    age="0"
   7337 	    ;;
   7338 	  irix|nonstopux)
   7339 	    func_arith $number_major + $number_minor
   7340 	    current=$func_arith_result
   7341 	    age="$number_minor"
   7342 	    revision="$number_minor"
   7343 	    lt_irix_increment=no
   7344 	    ;;
   7345 	  esac
   7346 	  ;;
   7347 	no)
   7348 	  current="$1"
   7349 	  revision="$2"
   7350 	  age="$3"
   7351 	  ;;
   7352 	esac
   7353 
   7354 	# Check that each of the things are valid numbers.
   7355 	case $current in
   7356 	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]) ;;
   7357 	*)
   7358 	  func_error "CURRENT \`$current' must be a nonnegative integer"
   7359 	  func_fatal_error "\`$vinfo' is not valid version information"
   7360 	  ;;
   7361 	esac
   7362 
   7363 	case $revision in
   7364 	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]) ;;
   7365 	*)
   7366 	  func_error "REVISION \`$revision' must be a nonnegative integer"
   7367 	  func_fatal_error "\`$vinfo' is not valid version information"
   7368 	  ;;
   7369 	esac
   7370 
   7371 	case $age in
   7372 	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]) ;;
   7373 	*)
   7374 	  func_error "AGE \`$age' must be a nonnegative integer"
   7375 	  func_fatal_error "\`$vinfo' is not valid version information"
   7376 	  ;;
   7377 	esac
   7378 
   7379 	if test "$age" -gt "$current"; then
   7380 	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
   7381 	  func_fatal_error "\`$vinfo' is not valid version information"
   7382 	fi
   7383 
   7384 	# Calculate the version variables.
   7385 	major=
   7386 	versuffix=
   7387 	verstring=
   7388 	case $version_type in
   7389 	none) ;;
   7390 
   7391 	darwin)
   7392 	  # Like Linux, but with the current version available in
   7393 	  # verstring for coding it into the library header
   7394 	  func_arith $current - $age
   7395 	  major=.$func_arith_result
   7396 	  versuffix="$major.$age.$revision"
   7397 	  # Darwin ld doesn't like 0 for these options...
   7398 	  func_arith $current + 1
   7399 	  minor_current=$func_arith_result
   7400 	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
   7401 	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
   7402 	  ;;
   7403 
   7404 	freebsd-aout)
   7405 	  major=".$current"
   7406 	  versuffix=".$current.$revision";
   7407 	  ;;
   7408 
   7409 	freebsd-elf)
   7410 	  major=".$current"
   7411 	  versuffix=".$current"
   7412 	  ;;
   7413 
   7414 	irix | nonstopux)
   7415 	  if test "X$lt_irix_increment" = "Xno"; then
   7416 	    func_arith $current - $age
   7417 	  else
   7418 	    func_arith $current - $age + 1
   7419 	  fi
   7420 	  major=$func_arith_result
   7421 
   7422 	  case $version_type in
   7423 	    nonstopux) verstring_prefix=nonstopux ;;
   7424 	    *)         verstring_prefix=sgi ;;
   7425 	  esac
   7426 	  verstring="$verstring_prefix$major.$revision"
   7427 
   7428 	  # Add in all the interfaces that we are compatible with.
   7429 	  loop=$revision
   7430 	  while test "$loop" -ne 0; do
   7431 	    func_arith $revision - $loop
   7432 	    iface=$func_arith_result
   7433 	    func_arith $loop - 1
   7434 	    loop=$func_arith_result
   7435 	    verstring="$verstring_prefix$major.$iface:$verstring"
   7436 	  done
   7437 
   7438 	  # Before this point, $major must not contain `.'.
   7439 	  major=.$major
   7440 	  versuffix="$major.$revision"
   7441 	  ;;
   7442 
   7443 	linux) # correct to gnu/linux during the next big refactor
   7444 	  func_arith $current - $age
   7445 	  major=.$func_arith_result
   7446 	  versuffix="$major.$age.$revision"
   7447 	  ;;
   7448 
   7449 	osf)
   7450 	  func_arith $current - $age
   7451 	  major=.$func_arith_result
   7452 	  versuffix=".$current.$age.$revision"
   7453 	  verstring="$current.$age.$revision"
   7454 
   7455 	  # Add in all the interfaces that we are compatible with.
   7456 	  loop=$age
   7457 	  while test "$loop" -ne 0; do
   7458 	    func_arith $current - $loop
   7459 	    iface=$func_arith_result
   7460 	    func_arith $loop - 1
   7461 	    loop=$func_arith_result
   7462 	    verstring="$verstring:${iface}.0"
   7463 	  done
   7464 
   7465 	  # Make executables depend on our current version.
   7466 	  func_append verstring ":${current}.0"
   7467 	  ;;
   7468 
   7469 	qnx)
   7470 	  major=".$current"
   7471 	  versuffix=".$current"
   7472 	  ;;
   7473 
   7474 	sunos)
   7475 	  major=".$current"
   7476 	  versuffix=".$current.$revision"
   7477 	  ;;
   7478 
   7479 	windows)
   7480 	  # Use '-' rather than '.', since we only want one
   7481 	  # extension on DOS 8.3 filesystems.
   7482 	  func_arith $current - $age
   7483 	  major=$func_arith_result
   7484 	  versuffix="-$major"
   7485 	  ;;
   7486 
   7487 	*)
   7488 	  func_fatal_configuration "unknown library version type \`$version_type'"
   7489 	  ;;
   7490 	esac
   7491 
   7492 	# Clear the version info if we defaulted, and they specified a release.
   7493 	if test -z "$vinfo" && test -n "$release"; then
   7494 	  major=
   7495 	  case $version_type in
   7496 	  darwin)
   7497 	    # we can't check for "0.0" in archive_cmds due to quoting
   7498 	    # problems, so we reset it completely
   7499 	    verstring=
   7500 	    ;;
   7501 	  *)
   7502 	    verstring="0.0"
   7503 	    ;;
   7504 	  esac
   7505 	  if test "$need_version" = no; then
   7506 	    versuffix=
   7507 	  else
   7508 	    versuffix=".0.0"
   7509 	  fi
   7510 	fi
   7511 
   7512 	# Remove version info from name if versioning should be avoided
   7513 	if test "$avoid_version" = yes && test "$need_version" = no; then
   7514 	  major=
   7515 	  versuffix=
   7516 	  verstring=""
   7517 	fi
   7518 
   7519 	# Check to see if the archive will have undefined symbols.
   7520 	if test "$allow_undefined" = yes; then
   7521 	  if test "$allow_undefined_flag" = unsupported; then
   7522 	    func_warning "undefined symbols not allowed in $host shared libraries"
   7523 	    build_libtool_libs=no
   7524 	    build_old_libs=yes
   7525 	  fi
   7526 	else
   7527 	  # Don't allow undefined symbols.
   7528 	  allow_undefined_flag="$no_undefined_flag"
   7529 	fi
   7530 
   7531       fi
   7532 
   7533       func_generate_dlsyms "$libname" "$libname" "yes"
   7534       func_append libobjs " $symfileobj"
   7535       test "X$libobjs" = "X " && libobjs=
   7536 
   7537       if test "$opt_mode" != relink; then
   7538 	# Remove our outputs, but don't remove object files since they
   7539 	# may have been created when compiling PIC objects.
   7540 	removelist=
   7541 	tempremovelist=`$ECHO "$output_objdir/*"`
   7542 	for p in $tempremovelist; do
   7543 	  case $p in
   7544 	    *.$objext | *.gcno)
   7545 	       ;;
   7546 	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
   7547 	       if test "X$precious_files_regex" != "X"; then
   7548 		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
   7549 		 then
   7550 		   continue
   7551 		 fi
   7552 	       fi
   7553 	       func_append removelist " $p"
   7554 	       ;;
   7555 	    *) ;;
   7556 	  esac
   7557 	done
   7558 	test -n "$removelist" && \
   7559 	  func_show_eval "${RM}r \$removelist"
   7560       fi
   7561 
   7562       # Now set the variables for building old libraries.
   7563       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
   7564 	func_append oldlibs " $output_objdir/$libname.$libext"
   7565 
   7566 	# Transform .lo files to .o files.
   7567 	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
   7568       fi
   7569 
   7570       # Eliminate all temporary directories.
   7571       #for path in $notinst_path; do
   7572       #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
   7573       #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
   7574       #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
   7575       #done
   7576 
   7577       if test -n "$xrpath"; then
   7578 	# If the user specified any rpath flags, then add them.
   7579 	temp_xrpath=
   7580 	for libdir in $xrpath; do
   7581 	  func_replace_sysroot "$libdir"
   7582 	  func_append temp_xrpath " -R$func_replace_sysroot_result"
   7583 	  case "$finalize_rpath " in
   7584 	  *" $libdir "*) ;;
   7585 	  *) func_append finalize_rpath " $libdir" ;;
   7586 	  esac
   7587 	done
   7588 	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
   7589 	  dependency_libs="$temp_xrpath $dependency_libs"
   7590 	fi
   7591       fi
   7592 
   7593       # Make sure dlfiles contains only unique files that won't be dlpreopened
   7594       old_dlfiles="$dlfiles"
   7595       dlfiles=
   7596       for lib in $old_dlfiles; do
   7597 	case " $dlprefiles $dlfiles " in
   7598 	*" $lib "*) ;;
   7599 	*) func_append dlfiles " $lib" ;;
   7600 	esac
   7601       done
   7602 
   7603       # Make sure dlprefiles contains only unique files
   7604       old_dlprefiles="$dlprefiles"
   7605       dlprefiles=
   7606       for lib in $old_dlprefiles; do
   7607 	case "$dlprefiles " in
   7608 	*" $lib "*) ;;
   7609 	*) func_append dlprefiles " $lib" ;;
   7610 	esac
   7611       done
   7612 
   7613       if test "$build_libtool_libs" = yes; then
   7614 	if test -n "$rpath"; then
   7615 	  case $host in
   7616 	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
   7617 	    # these systems don't actually have a c library (as such)!
   7618 	    ;;
   7619 	  *-*-rhapsody* | *-*-darwin1.[012])
   7620 	    # Rhapsody C library is in the System framework
   7621 	    func_append deplibs " System.ltframework"
   7622 	    ;;
   7623 	  *-*-netbsd*)
   7624 	    # Don't link with libc until the a.out ld.so is fixed.
   7625 	    ;;
   7626 	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
   7627 	    # Do not include libc due to us having libc/libc_r.
   7628 	    ;;
   7629 	  *-*-sco3.2v5* | *-*-sco5v6*)
   7630 	    # Causes problems with __ctype
   7631 	    ;;
   7632 	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
   7633 	    # Compiler inserts libc in the correct place for threads to work
   7634 	    ;;
   7635 	  *)
   7636 	    # Add libc to deplibs on all other systems if necessary.
   7637 	    if test "$build_libtool_need_lc" = "yes"; then
   7638 	      func_append deplibs " -lc"
   7639 	    fi
   7640 	    ;;
   7641 	  esac
   7642 	fi
   7643 
   7644 	# Transform deplibs into only deplibs that can be linked in shared.
   7645 	name_save=$name
   7646 	libname_save=$libname
   7647 	release_save=$release
   7648 	versuffix_save=$versuffix
   7649 	major_save=$major
   7650 	# I'm not sure if I'm treating the release correctly.  I think
   7651 	# release should show up in the -l (ie -lgmp5) so we don't want to
   7652 	# add it in twice.  Is that correct?
   7653 	release=""
   7654 	versuffix=""
   7655 	major=""
   7656 	newdeplibs=
   7657 	droppeddeps=no
   7658 	case $deplibs_check_method in
   7659 	pass_all)
   7660 	  # Don't check for shared/static.  Everything works.
   7661 	  # This might be a little naive.  We might want to check
   7662 	  # whether the library exists or not.  But this is on
   7663 	  # osf3 & osf4 and I'm not really sure... Just
   7664 	  # implementing what was already the behavior.
   7665 	  newdeplibs=$deplibs
   7666 	  ;;
   7667 	test_compile)
   7668 	  # This code stresses the "libraries are programs" paradigm to its
   7669 	  # limits. Maybe even breaks it.  We compile a program, linking it
   7670 	  # against the deplibs as a proxy for the library.  Then we can check
   7671 	  # whether they linked in statically or dynamically with ldd.
   7672 	  $opt_dry_run || $RM conftest.c
   7673 	  cat > conftest.c <<EOF
   7674 	  int main() { return 0; }
   7675 EOF
   7676 	  $opt_dry_run || $RM conftest
   7677 	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
   7678 	    ldd_output=`ldd conftest`
   7679 	    for i in $deplibs; do
   7680 	      case $i in
   7681 	      -l*)
   7682 		func_stripname -l '' "$i"
   7683 		name=$func_stripname_result
   7684 		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
   7685 		  case " $predeps $postdeps " in
   7686 		  *" $i "*)
   7687 		    func_append newdeplibs " $i"
   7688 		    i=""
   7689 		    ;;
   7690 		  esac
   7691 		fi
   7692 		if test -n "$i" ; then
   7693 		  libname=`eval "\\$ECHO \"$libname_spec\""`
   7694 		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
   7695 		  set dummy $deplib_matches; shift
   7696 		  deplib_match=$1
   7697 		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
   7698 		    func_append newdeplibs " $i"
   7699 		  else
   7700 		    droppeddeps=yes
   7701 		    echo
   7702 		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
   7703 		    echo "*** I have the capability to make that library automatically link in when"
   7704 		    echo "*** you link to this library.  But I can only do this if you have a"
   7705 		    echo "*** shared version of the library, which I believe you do not have"
   7706 		    echo "*** because a test_compile did reveal that the linker did not use it for"
   7707 		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
   7708 		  fi
   7709 		fi
   7710 		;;
   7711 	      *)
   7712 		func_append newdeplibs " $i"
   7713 		;;
   7714 	      esac
   7715 	    done
   7716 	  else
   7717 	    # Error occurred in the first compile.  Let's try to salvage
   7718 	    # the situation: Compile a separate program for each library.
   7719 	    for i in $deplibs; do
   7720 	      case $i in
   7721 	      -l*)
   7722 		func_stripname -l '' "$i"
   7723 		name=$func_stripname_result
   7724 		$opt_dry_run || $RM conftest
   7725 		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
   7726 		  ldd_output=`ldd conftest`
   7727 		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
   7728 		    case " $predeps $postdeps " in
   7729 		    *" $i "*)
   7730 		      func_append newdeplibs " $i"
   7731 		      i=""
   7732 		      ;;
   7733 		    esac
   7734 		  fi
   7735 		  if test -n "$i" ; then
   7736 		    libname=`eval "\\$ECHO \"$libname_spec\""`
   7737 		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
   7738 		    set dummy $deplib_matches; shift
   7739 		    deplib_match=$1
   7740 		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
   7741 		      func_append newdeplibs " $i"
   7742 		    else
   7743 		      droppeddeps=yes
   7744 		      echo
   7745 		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
   7746 		      echo "*** I have the capability to make that library automatically link in when"
   7747 		      echo "*** you link to this library.  But I can only do this if you have a"
   7748 		      echo "*** shared version of the library, which you do not appear to have"
   7749 		      echo "*** because a test_compile did reveal that the linker did not use this one"
   7750 		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
   7751 		    fi
   7752 		  fi
   7753 		else
   7754 		  droppeddeps=yes
   7755 		  echo
   7756 		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
   7757 		  echo "*** make it link in!  You will probably need to install it or some"
   7758 		  echo "*** library that it depends on before this library will be fully"
   7759 		  echo "*** functional.  Installing it before continuing would be even better."
   7760 		fi
   7761 		;;
   7762 	      *)
   7763 		func_append newdeplibs " $i"
   7764 		;;
   7765 	      esac
   7766 	    done
   7767 	  fi
   7768 	  ;;
   7769 	file_magic*)
   7770 	  set dummy $deplibs_check_method; shift
   7771 	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
   7772 	  for a_deplib in $deplibs; do
   7773 	    case $a_deplib in
   7774 	    -l*)
   7775 	      func_stripname -l '' "$a_deplib"
   7776 	      name=$func_stripname_result
   7777 	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
   7778 		case " $predeps $postdeps " in
   7779 		*" $a_deplib "*)
   7780 		  func_append newdeplibs " $a_deplib"
   7781 		  a_deplib=""
   7782 		  ;;
   7783 		esac
   7784 	      fi
   7785 	      if test -n "$a_deplib" ; then
   7786 		libname=`eval "\\$ECHO \"$libname_spec\""`
   7787 		if test -n "$file_magic_glob"; then
   7788 		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
   7789 		else
   7790 		  libnameglob=$libname
   7791 		fi
   7792 		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
   7793 		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
   7794 		  if test "$want_nocaseglob" = yes; then
   7795 		    shopt -s nocaseglob
   7796 		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
   7797 		    $nocaseglob
   7798 		  else
   7799 		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
   7800 		  fi
   7801 		  for potent_lib in $potential_libs; do
   7802 		      # Follow soft links.
   7803 		      if ls -lLd "$potent_lib" 2>/dev/null |
   7804 			 $GREP " -> " >/dev/null; then
   7805 			continue
   7806 		      fi
   7807 		      # The statement above tries to avoid entering an
   7808 		      # endless loop below, in case of cyclic links.
   7809 		      # We might still enter an endless loop, since a link
   7810 		      # loop can be closed while we follow links,
   7811 		      # but so what?
   7812 		      potlib="$potent_lib"
   7813 		      while test -h "$potlib" 2>/dev/null; do
   7814 			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
   7815 			case $potliblink in
   7816 			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
   7817 			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
   7818 			esac
   7819 		      done
   7820 		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
   7821 			 $SED -e 10q |
   7822 			 $EGREP "$file_magic_regex" > /dev/null; then
   7823 			func_append newdeplibs " $a_deplib"
   7824 			a_deplib=""
   7825 			break 2
   7826 		      fi
   7827 		  done
   7828 		done
   7829 	      fi
   7830 	      if test -n "$a_deplib" ; then
   7831 		droppeddeps=yes
   7832 		echo
   7833 		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
   7834 		echo "*** I have the capability to make that library automatically link in when"
   7835 		echo "*** you link to this library.  But I can only do this if you have a"
   7836 		echo "*** shared version of the library, which you do not appear to have"
   7837 		echo "*** because I did check the linker path looking for a file starting"
   7838 		if test -z "$potlib" ; then
   7839 		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
   7840 		else
   7841 		  $ECHO "*** with $libname and none of the candidates passed a file format test"
   7842 		  $ECHO "*** using a file magic. Last file checked: $potlib"
   7843 		fi
   7844 	      fi
   7845 	      ;;
   7846 	    *)
   7847 	      # Add a -L argument.
   7848 	      func_append newdeplibs " $a_deplib"
   7849 	      ;;
   7850 	    esac
   7851 	  done # Gone through all deplibs.
   7852 	  ;;
   7853 	match_pattern*)
   7854 	  set dummy $deplibs_check_method; shift
   7855 	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
   7856 	  for a_deplib in $deplibs; do
   7857 	    case $a_deplib in
   7858 	    -l*)
   7859 	      func_stripname -l '' "$a_deplib"
   7860 	      name=$func_stripname_result
   7861 	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
   7862 		case " $predeps $postdeps " in
   7863 		*" $a_deplib "*)
   7864 		  func_append newdeplibs " $a_deplib"
   7865 		  a_deplib=""
   7866 		  ;;
   7867 		esac
   7868 	      fi
   7869 	      if test -n "$a_deplib" ; then
   7870 		libname=`eval "\\$ECHO \"$libname_spec\""`
   7871 		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
   7872 		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
   7873 		  for potent_lib in $potential_libs; do
   7874 		    potlib="$potent_lib" # see symlink-check above in file_magic test
   7875 		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
   7876 		       $EGREP "$match_pattern_regex" > /dev/null; then
   7877 		      func_append newdeplibs " $a_deplib"
   7878 		      a_deplib=""
   7879 		      break 2
   7880 		    fi
   7881 		  done
   7882 		done
   7883 	      fi
   7884 	      if test -n "$a_deplib" ; then
   7885 		droppeddeps=yes
   7886 		echo
   7887 		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
   7888 		echo "*** I have the capability to make that library automatically link in when"
   7889 		echo "*** you link to this library.  But I can only do this if you have a"
   7890 		echo "*** shared version of the library, which you do not appear to have"
   7891 		echo "*** because I did check the linker path looking for a file starting"
   7892 		if test -z "$potlib" ; then
   7893 		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
   7894 		else
   7895 		  $ECHO "*** with $libname and none of the candidates passed a file format test"
   7896 		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
   7897 		fi
   7898 	      fi
   7899 	      ;;
   7900 	    *)
   7901 	      # Add a -L argument.
   7902 	      func_append newdeplibs " $a_deplib"
   7903 	      ;;
   7904 	    esac
   7905 	  done # Gone through all deplibs.
   7906 	  ;;
   7907 	none | unknown | *)
   7908 	  newdeplibs=""
   7909 	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
   7910 	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
   7911 	    for i in $predeps $postdeps ; do
   7912 	      # can't use Xsed below, because $i might contain '/'
   7913 	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
   7914 	    done
   7915 	  fi
   7916 	  case $tmp_deplibs in
   7917 	  *[!\	\ ]*)
   7918 	    echo
   7919 	    if test "X$deplibs_check_method" = "Xnone"; then
   7920 	      echo "*** Warning: inter-library dependencies are not supported in this platform."
   7921 	    else
   7922 	      echo "*** Warning: inter-library dependencies are not known to be supported."
   7923 	    fi
   7924 	    echo "*** All declared inter-library dependencies are being dropped."
   7925 	    droppeddeps=yes
   7926 	    ;;
   7927 	  esac
   7928 	  ;;
   7929 	esac
   7930 	versuffix=$versuffix_save
   7931 	major=$major_save
   7932 	release=$release_save
   7933 	libname=$libname_save
   7934 	name=$name_save
   7935 
   7936 	case $host in
   7937 	*-*-rhapsody* | *-*-darwin1.[012])
   7938 	  # On Rhapsody replace the C library with the System framework
   7939 	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
   7940 	  ;;
   7941 	esac
   7942 
   7943 	if test "$droppeddeps" = yes; then
   7944 	  if test "$module" = yes; then
   7945 	    echo
   7946 	    echo "*** Warning: libtool could not satisfy all declared inter-library"
   7947 	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
   7948 	    echo "*** a static module, that should work as long as the dlopening"
   7949 	    echo "*** application is linked with the -dlopen flag."
   7950 	    if test -z "$global_symbol_pipe"; then
   7951 	      echo
   7952 	      echo "*** However, this would only work if libtool was able to extract symbol"
   7953 	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
   7954 	      echo "*** not find such a program.  So, this module is probably useless."
   7955 	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
   7956 	    fi
   7957 	    if test "$build_old_libs" = no; then
   7958 	      oldlibs="$output_objdir/$libname.$libext"
   7959 	      build_libtool_libs=module
   7960 	      build_old_libs=yes
   7961 	    else
   7962 	      build_libtool_libs=no
   7963 	    fi
   7964 	  else
   7965 	    echo "*** The inter-library dependencies that have been dropped here will be"
   7966 	    echo "*** automatically added whenever a program is linked with this library"
   7967 	    echo "*** or is declared to -dlopen it."
   7968 
   7969 	    if test "$allow_undefined" = no; then
   7970 	      echo
   7971 	      echo "*** Since this library must not contain undefined symbols,"
   7972 	      echo "*** because either the platform does not support them or"
   7973 	      echo "*** it was explicitly requested with -no-undefined,"
   7974 	      echo "*** libtool will only create a static version of it."
   7975 	      if test "$build_old_libs" = no; then
   7976 		oldlibs="$output_objdir/$libname.$libext"
   7977 		build_libtool_libs=module
   7978 		build_old_libs=yes
   7979 	      else
   7980 		build_libtool_libs=no
   7981 	      fi
   7982 	    fi
   7983 	  fi
   7984 	fi
   7985 	# Done checking deplibs!
   7986 	deplibs=$newdeplibs
   7987       fi
   7988       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
   7989       case $host in
   7990 	*-*-darwin*)
   7991 	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   7992 	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   7993 	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   7994 	  ;;
   7995       esac
   7996 
   7997       # move library search paths that coincide with paths to not yet
   7998       # installed libraries to the beginning of the library search list
   7999       new_libs=
   8000       for path in $notinst_path; do
   8001 	case " $new_libs " in
   8002 	*" -L$path/$objdir "*) ;;
   8003 	*)
   8004 	  case " $deplibs " in
   8005 	  *" -L$path/$objdir "*)
   8006 	    func_append new_libs " -L$path/$objdir" ;;
   8007 	  esac
   8008 	  ;;
   8009 	esac
   8010       done
   8011       for deplib in $deplibs; do
   8012 	case $deplib in
   8013 	-L*)
   8014 	  case " $new_libs " in
   8015 	  *" $deplib "*) ;;
   8016 	  *) func_append new_libs " $deplib" ;;
   8017 	  esac
   8018 	  ;;
   8019 	*) func_append new_libs " $deplib" ;;
   8020 	esac
   8021       done
   8022       deplibs="$new_libs"
   8023 
   8024       # All the library-specific variables (install_libdir is set above).
   8025       library_names=
   8026       old_library=
   8027       dlname=
   8028 
   8029       # Test again, we may have decided not to build it any more
   8030       if test "$build_libtool_libs" = yes; then
   8031 	# Remove ${wl} instances when linking with ld.
   8032 	# FIXME: should test the right _cmds variable.
   8033 	case $archive_cmds in
   8034 	  *\$LD\ *) wl= ;;
   8035         esac
   8036 	if test "$hardcode_into_libs" = yes; then
   8037 	  # Hardcode the library paths
   8038 	  hardcode_libdirs=
   8039 	  dep_rpath=
   8040 	  rpath="$finalize_rpath"
   8041 	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
   8042 	  for libdir in $rpath; do
   8043 	    if test -n "$hardcode_libdir_flag_spec"; then
   8044 	      if test -n "$hardcode_libdir_separator"; then
   8045 		func_replace_sysroot "$libdir"
   8046 		libdir=$func_replace_sysroot_result
   8047 		if test -z "$hardcode_libdirs"; then
   8048 		  hardcode_libdirs="$libdir"
   8049 		else
   8050 		  # Just accumulate the unique libdirs.
   8051 		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
   8052 		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
   8053 		    ;;
   8054 		  *)
   8055 		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
   8056 		    ;;
   8057 		  esac
   8058 		fi
   8059 	      else
   8060 		eval flag=\"$hardcode_libdir_flag_spec\"
   8061 		func_append dep_rpath " $flag"
   8062 	      fi
   8063 	    elif test -n "$runpath_var"; then
   8064 	      case "$perm_rpath " in
   8065 	      *" $libdir "*) ;;
   8066 	      *) func_append perm_rpath " $libdir" ;;
   8067 	      esac
   8068 	    fi
   8069 	  done
   8070 	  # Substitute the hardcoded libdirs into the rpath.
   8071 	  if test -n "$hardcode_libdir_separator" &&
   8072 	     test -n "$hardcode_libdirs"; then
   8073 	    libdir="$hardcode_libdirs"
   8074 	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
   8075 	  fi
   8076 	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
   8077 	    # We should set the runpath_var.
   8078 	    rpath=
   8079 	    for dir in $perm_rpath; do
   8080 	      func_append rpath "$dir:"
   8081 	    done
   8082 	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
   8083 	  fi
   8084 	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
   8085 	fi
   8086 
   8087 	shlibpath="$finalize_shlibpath"
   8088 	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
   8089 	if test -n "$shlibpath"; then
   8090 	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
   8091 	fi
   8092 
   8093 	# Get the real and link names of the library.
   8094 	eval shared_ext=\"$shrext_cmds\"
   8095 	eval library_names=\"$library_names_spec\"
   8096 	set dummy $library_names
   8097 	shift
   8098 	realname="$1"
   8099 	shift
   8100 
   8101 	if test -n "$soname_spec"; then
   8102 	  eval soname=\"$soname_spec\"
   8103 	else
   8104 	  soname="$realname"
   8105 	fi
   8106 	if test -z "$dlname"; then
   8107 	  dlname=$soname
   8108 	fi
   8109 
   8110 	lib="$output_objdir/$realname"
   8111 	linknames=
   8112 	for link
   8113 	do
   8114 	  func_append linknames " $link"
   8115 	done
   8116 
   8117 	# Use standard objects if they are pic
   8118 	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
   8119 	test "X$libobjs" = "X " && libobjs=
   8120 
   8121 	delfiles=
   8122 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
   8123 	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
   8124 	  export_symbols="$output_objdir/$libname.uexp"
   8125 	  func_append delfiles " $export_symbols"
   8126 	fi
   8127 
   8128 	orig_export_symbols=
   8129 	case $host_os in
   8130 	cygwin* | mingw* | cegcc*)
   8131 	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
   8132 	    # exporting using user supplied symfile
   8133 	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
   8134 	      # and it's NOT already a .def file. Must figure out
   8135 	      # which of the given symbols are data symbols and tag
   8136 	      # them as such. So, trigger use of export_symbols_cmds.
   8137 	      # export_symbols gets reassigned inside the "prepare
   8138 	      # the list of exported symbols" if statement, so the
   8139 	      # include_expsyms logic still works.
   8140 	      orig_export_symbols="$export_symbols"
   8141 	      export_symbols=
   8142 	      always_export_symbols=yes
   8143 	    fi
   8144 	  fi
   8145 	  ;;
   8146 	esac
   8147 
   8148 	# Prepare the list of exported symbols
   8149 	if test -z "$export_symbols"; then
   8150 	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
   8151 	    func_verbose "generating symbol list for \`$libname.la'"
   8152 	    export_symbols="$output_objdir/$libname.exp"
   8153 	    $opt_dry_run || $RM $export_symbols
   8154 	    cmds=$export_symbols_cmds
   8155 	    save_ifs="$IFS"; IFS='~'
   8156 	    for cmd1 in $cmds; do
   8157 	      IFS="$save_ifs"
   8158 	      # Take the normal branch if the nm_file_list_spec branch
   8159 	      # doesn't work or if tool conversion is not needed.
   8160 	      case $nm_file_list_spec~$to_tool_file_cmd in
   8161 		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
   8162 		  try_normal_branch=yes
   8163 		  eval cmd=\"$cmd1\"
   8164 		  func_len " $cmd"
   8165 		  len=$func_len_result
   8166 		  ;;
   8167 		*)
   8168 		  try_normal_branch=no
   8169 		  ;;
   8170 	      esac
   8171 	      if test "$try_normal_branch" = yes \
   8172 		 && { test "$len" -lt "$max_cmd_len" \
   8173 		      || test "$max_cmd_len" -le -1; }
   8174 	      then
   8175 		func_show_eval "$cmd" 'exit $?'
   8176 		skipped_export=false
   8177 	      elif test -n "$nm_file_list_spec"; then
   8178 		func_basename "$output"
   8179 		output_la=$func_basename_result
   8180 		save_libobjs=$libobjs
   8181 		save_output=$output
   8182 		output=${output_objdir}/${output_la}.nm
   8183 		func_to_tool_file "$output"
   8184 		libobjs=$nm_file_list_spec$func_to_tool_file_result
   8185 		func_append delfiles " $output"
   8186 		func_verbose "creating $NM input file list: $output"
   8187 		for obj in $save_libobjs; do
   8188 		  func_to_tool_file "$obj"
   8189 		  $ECHO "$func_to_tool_file_result"
   8190 		done > "$output"
   8191 		eval cmd=\"$cmd1\"
   8192 		func_show_eval "$cmd" 'exit $?'
   8193 		output=$save_output
   8194 		libobjs=$save_libobjs
   8195 		skipped_export=false
   8196 	      else
   8197 		# The command line is too long to execute in one step.
   8198 		func_verbose "using reloadable object file for export list..."
   8199 		skipped_export=:
   8200 		# Break out early, otherwise skipped_export may be
   8201 		# set to false by a later but shorter cmd.
   8202 		break
   8203 	      fi
   8204 	    done
   8205 	    IFS="$save_ifs"
   8206 	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
   8207 	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
   8208 	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
   8209 	    fi
   8210 	  fi
   8211 	fi
   8212 
   8213 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
   8214 	  tmp_export_symbols="$export_symbols"
   8215 	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
   8216 	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
   8217 	fi
   8218 
   8219 	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
   8220 	  # The given exports_symbols file has to be filtered, so filter it.
   8221 	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
   8222 	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
   8223 	  # 's' commands which not all seds can handle. GNU sed should be fine
   8224 	  # though. Also, the filter scales superlinearly with the number of
   8225 	  # global variables. join(1) would be nice here, but unfortunately
   8226 	  # isn't a blessed tool.
   8227 	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
   8228 	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
   8229 	  export_symbols=$output_objdir/$libname.def
   8230 	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
   8231 	fi
   8232 
   8233 	tmp_deplibs=
   8234 	for test_deplib in $deplibs; do
   8235 	  case " $convenience " in
   8236 	  *" $test_deplib "*) ;;
   8237 	  *)
   8238 	    func_append tmp_deplibs " $test_deplib"
   8239 	    ;;
   8240 	  esac
   8241 	done
   8242 	deplibs="$tmp_deplibs"
   8243 
   8244 	if test -n "$convenience"; then
   8245 	  if test -n "$whole_archive_flag_spec" &&
   8246 	    test "$compiler_needs_object" = yes &&
   8247 	    test -z "$libobjs"; then
   8248 	    # extract the archives, so we have objects to list.
   8249 	    # TODO: could optimize this to just extract one archive.
   8250 	    whole_archive_flag_spec=
   8251 	  fi
   8252 	  if test -n "$whole_archive_flag_spec"; then
   8253 	    save_libobjs=$libobjs
   8254 	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
   8255 	    test "X$libobjs" = "X " && libobjs=
   8256 	  else
   8257 	    gentop="$output_objdir/${outputname}x"
   8258 	    func_append generated " $gentop"
   8259 
   8260 	    func_extract_archives $gentop $convenience
   8261 	    func_append libobjs " $func_extract_archives_result"
   8262 	    test "X$libobjs" = "X " && libobjs=
   8263 	  fi
   8264 	fi
   8265 
   8266 	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
   8267 	  eval flag=\"$thread_safe_flag_spec\"
   8268 	  func_append linker_flags " $flag"
   8269 	fi
   8270 
   8271 	# Make a backup of the uninstalled library when relinking
   8272 	if test "$opt_mode" = relink; then
   8273 	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
   8274 	fi
   8275 
   8276 	# Do each of the archive commands.
   8277 	if test "$module" = yes && test -n "$module_cmds" ; then
   8278 	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
   8279 	    eval test_cmds=\"$module_expsym_cmds\"
   8280 	    cmds=$module_expsym_cmds
   8281 	  else
   8282 	    eval test_cmds=\"$module_cmds\"
   8283 	    cmds=$module_cmds
   8284 	  fi
   8285 	else
   8286 	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
   8287 	    eval test_cmds=\"$archive_expsym_cmds\"
   8288 	    cmds=$archive_expsym_cmds
   8289 	  else
   8290 	    eval test_cmds=\"$archive_cmds\"
   8291 	    cmds=$archive_cmds
   8292 	  fi
   8293 	fi
   8294 
   8295 	if test "X$skipped_export" != "X:" &&
   8296 	   func_len " $test_cmds" &&
   8297 	   len=$func_len_result &&
   8298 	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
   8299 	  :
   8300 	else
   8301 	  # The command line is too long to link in one step, link piecewise
   8302 	  # or, if using GNU ld and skipped_export is not :, use a linker
   8303 	  # script.
   8304 
   8305 	  # Save the value of $output and $libobjs because we want to
   8306 	  # use them later.  If we have whole_archive_flag_spec, we
   8307 	  # want to use save_libobjs as it was before
   8308 	  # whole_archive_flag_spec was expanded, because we can't
   8309 	  # assume the linker understands whole_archive_flag_spec.
   8310 	  # This may have to be revisited, in case too many
   8311 	  # convenience libraries get linked in and end up exceeding
   8312 	  # the spec.
   8313 	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
   8314 	    save_libobjs=$libobjs
   8315 	  fi
   8316 	  save_output=$output
   8317 	  func_basename "$output"
   8318 	  output_la=$func_basename_result
   8319 
   8320 	  # Clear the reloadable object creation command queue and
   8321 	  # initialize k to one.
   8322 	  test_cmds=
   8323 	  concat_cmds=
   8324 	  objlist=
   8325 	  last_robj=
   8326 	  k=1
   8327 
   8328 	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
   8329 	    output=${output_objdir}/${output_la}.lnkscript
   8330 	    func_verbose "creating GNU ld script: $output"
   8331 	    echo 'INPUT (' > $output
   8332 	    for obj in $save_libobjs
   8333 	    do
   8334 	      func_to_tool_file "$obj"
   8335 	      $ECHO "$func_to_tool_file_result" >> $output
   8336 	    done
   8337 	    echo ')' >> $output
   8338 	    func_append delfiles " $output"
   8339 	    func_to_tool_file "$output"
   8340 	    output=$func_to_tool_file_result
   8341 	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
   8342 	    output=${output_objdir}/${output_la}.lnk
   8343 	    func_verbose "creating linker input file list: $output"
   8344 	    : > $output
   8345 	    set x $save_libobjs
   8346 	    shift
   8347 	    firstobj=
   8348 	    if test "$compiler_needs_object" = yes; then
   8349 	      firstobj="$1 "
   8350 	      shift
   8351 	    fi
   8352 	    for obj
   8353 	    do
   8354 	      func_to_tool_file "$obj"
   8355 	      $ECHO "$func_to_tool_file_result" >> $output
   8356 	    done
   8357 	    func_append delfiles " $output"
   8358 	    func_to_tool_file "$output"
   8359 	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
   8360 	  else
   8361 	    if test -n "$save_libobjs"; then
   8362 	      func_verbose "creating reloadable object files..."
   8363 	      output=$output_objdir/$output_la-${k}.$objext
   8364 	      eval test_cmds=\"$reload_cmds\"
   8365 	      func_len " $test_cmds"
   8366 	      len0=$func_len_result
   8367 	      len=$len0
   8368 
   8369 	      # Loop over the list of objects to be linked.
   8370 	      for obj in $save_libobjs
   8371 	      do
   8372 		func_len " $obj"
   8373 		func_arith $len + $func_len_result
   8374 		len=$func_arith_result
   8375 		if test "X$objlist" = X ||
   8376 		   test "$len" -lt "$max_cmd_len"; then
   8377 		  func_append objlist " $obj"
   8378 		else
   8379 		  # The command $test_cmds is almost too long, add a
   8380 		  # command to the queue.
   8381 		  if test "$k" -eq 1 ; then
   8382 		    # The first file doesn't have a previous command to add.
   8383 		    reload_objs=$objlist
   8384 		    eval concat_cmds=\"$reload_cmds\"
   8385 		  else
   8386 		    # All subsequent reloadable object files will link in
   8387 		    # the last one created.
   8388 		    reload_objs="$objlist $last_robj"
   8389 		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
   8390 		  fi
   8391 		  last_robj=$output_objdir/$output_la-${k}.$objext
   8392 		  func_arith $k + 1
   8393 		  k=$func_arith_result
   8394 		  output=$output_objdir/$output_la-${k}.$objext
   8395 		  objlist=" $obj"
   8396 		  func_len " $last_robj"
   8397 		  func_arith $len0 + $func_len_result
   8398 		  len=$func_arith_result
   8399 		fi
   8400 	      done
   8401 	      # Handle the remaining objects by creating one last
   8402 	      # reloadable object file.  All subsequent reloadable object
   8403 	      # files will link in the last one created.
   8404 	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
   8405 	      reload_objs="$objlist $last_robj"
   8406 	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
   8407 	      if test -n "$last_robj"; then
   8408 	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
   8409 	      fi
   8410 	      func_append delfiles " $output"
   8411 
   8412 	    else
   8413 	      output=
   8414 	    fi
   8415 
   8416 	    if ${skipped_export-false}; then
   8417 	      func_verbose "generating symbol list for \`$libname.la'"
   8418 	      export_symbols="$output_objdir/$libname.exp"
   8419 	      $opt_dry_run || $RM $export_symbols
   8420 	      libobjs=$output
   8421 	      # Append the command to create the export file.
   8422 	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
   8423 	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
   8424 	      if test -n "$last_robj"; then
   8425 		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
   8426 	      fi
   8427 	    fi
   8428 
   8429 	    test -n "$save_libobjs" &&
   8430 	      func_verbose "creating a temporary reloadable object file: $output"
   8431 
   8432 	    # Loop through the commands generated above and execute them.
   8433 	    save_ifs="$IFS"; IFS='~'
   8434 	    for cmd in $concat_cmds; do
   8435 	      IFS="$save_ifs"
   8436 	      $opt_silent || {
   8437 		  func_quote_for_expand "$cmd"
   8438 		  eval "func_echo $func_quote_for_expand_result"
   8439 	      }
   8440 	      $opt_dry_run || eval "$cmd" || {
   8441 		lt_exit=$?
   8442 
   8443 		# Restore the uninstalled library and exit
   8444 		if test "$opt_mode" = relink; then
   8445 		  ( cd "$output_objdir" && \
   8446 		    $RM "${realname}T" && \
   8447 		    $MV "${realname}U" "$realname" )
   8448 		fi
   8449 
   8450 		exit $lt_exit
   8451 	      }
   8452 	    done
   8453 	    IFS="$save_ifs"
   8454 
   8455 	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
   8456 	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
   8457 	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
   8458 	    fi
   8459 	  fi
   8460 
   8461           if ${skipped_export-false}; then
   8462 	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
   8463 	      tmp_export_symbols="$export_symbols"
   8464 	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
   8465 	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
   8466 	    fi
   8467 
   8468 	    if test -n "$orig_export_symbols"; then
   8469 	      # The given exports_symbols file has to be filtered, so filter it.
   8470 	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
   8471 	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
   8472 	      # 's' commands which not all seds can handle. GNU sed should be fine
   8473 	      # though. Also, the filter scales superlinearly with the number of
   8474 	      # global variables. join(1) would be nice here, but unfortunately
   8475 	      # isn't a blessed tool.
   8476 	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
   8477 	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
   8478 	      export_symbols=$output_objdir/$libname.def
   8479 	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
   8480 	    fi
   8481 	  fi
   8482 
   8483 	  libobjs=$output
   8484 	  # Restore the value of output.
   8485 	  output=$save_output
   8486 
   8487 	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
   8488 	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
   8489 	    test "X$libobjs" = "X " && libobjs=
   8490 	  fi
   8491 	  # Expand the library linking commands again to reset the
   8492 	  # value of $libobjs for piecewise linking.
   8493 
   8494 	  # Do each of the archive commands.
   8495 	  if test "$module" = yes && test -n "$module_cmds" ; then
   8496 	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
   8497 	      cmds=$module_expsym_cmds
   8498 	    else
   8499 	      cmds=$module_cmds
   8500 	    fi
   8501 	  else
   8502 	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
   8503 	      cmds=$archive_expsym_cmds
   8504 	    else
   8505 	      cmds=$archive_cmds
   8506 	    fi
   8507 	  fi
   8508 	fi
   8509 
   8510 	if test -n "$delfiles"; then
   8511 	  # Append the command to remove temporary files to $cmds.
   8512 	  eval cmds=\"\$cmds~\$RM $delfiles\"
   8513 	fi
   8514 
   8515 	# Add any objects from preloaded convenience libraries
   8516 	if test -n "$dlprefiles"; then
   8517 	  gentop="$output_objdir/${outputname}x"
   8518 	  func_append generated " $gentop"
   8519 
   8520 	  func_extract_archives $gentop $dlprefiles
   8521 	  func_append libobjs " $func_extract_archives_result"
   8522 	  test "X$libobjs" = "X " && libobjs=
   8523 	fi
   8524 
   8525 	save_ifs="$IFS"; IFS='~'
   8526 	for cmd in $cmds; do
   8527 	  IFS="$save_ifs"
   8528 	  eval cmd=\"$cmd\"
   8529 	  $opt_silent || {
   8530 	    func_quote_for_expand "$cmd"
   8531 	    eval "func_echo $func_quote_for_expand_result"
   8532 	  }
   8533 	  $opt_dry_run || eval "$cmd" || {
   8534 	    lt_exit=$?
   8535 
   8536 	    # Restore the uninstalled library and exit
   8537 	    if test "$opt_mode" = relink; then
   8538 	      ( cd "$output_objdir" && \
   8539 	        $RM "${realname}T" && \
   8540 		$MV "${realname}U" "$realname" )
   8541 	    fi
   8542 
   8543 	    exit $lt_exit
   8544 	  }
   8545 	done
   8546 	IFS="$save_ifs"
   8547 
   8548 	# Restore the uninstalled library and exit
   8549 	if test "$opt_mode" = relink; then
   8550 	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
   8551 
   8552 	  if test -n "$convenience"; then
   8553 	    if test -z "$whole_archive_flag_spec"; then
   8554 	      func_show_eval '${RM}r "$gentop"'
   8555 	    fi
   8556 	  fi
   8557 
   8558 	  exit $EXIT_SUCCESS
   8559 	fi
   8560 
   8561 	# Create links to the real library.
   8562 	for linkname in $linknames; do
   8563 	  if test "$realname" != "$linkname"; then
   8564 	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
   8565 	  fi
   8566 	done
   8567 
   8568 	# If -module or -export-dynamic was specified, set the dlname.
   8569 	if test "$module" = yes || test "$export_dynamic" = yes; then
   8570 	  # On all known operating systems, these are identical.
   8571 	  dlname="$soname"
   8572 	fi
   8573       fi
   8574       ;;
   8575 
   8576     obj)
   8577       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
   8578 	func_warning "\`-dlopen' is ignored for objects"
   8579       fi
   8580 
   8581       case " $deplibs" in
   8582       *\ -l* | *\ -L*)
   8583 	func_warning "\`-l' and \`-L' are ignored for objects" ;;
   8584       esac
   8585 
   8586       test -n "$rpath" && \
   8587 	func_warning "\`-rpath' is ignored for objects"
   8588 
   8589       test -n "$xrpath" && \
   8590 	func_warning "\`-R' is ignored for objects"
   8591 
   8592       test -n "$vinfo" && \
   8593 	func_warning "\`-version-info' is ignored for objects"
   8594 
   8595       test -n "$release" && \
   8596 	func_warning "\`-release' is ignored for objects"
   8597 
   8598       case $output in
   8599       *.lo)
   8600 	test -n "$objs$old_deplibs" && \
   8601 	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
   8602 
   8603 	libobj=$output
   8604 	func_lo2o "$libobj"
   8605 	obj=$func_lo2o_result
   8606 	;;
   8607       *)
   8608 	libobj=
   8609 	obj="$output"
   8610 	;;
   8611       esac
   8612 
   8613       # Delete the old objects.
   8614       $opt_dry_run || $RM $obj $libobj
   8615 
   8616       # Objects from convenience libraries.  This assumes
   8617       # single-version convenience libraries.  Whenever we create
   8618       # different ones for PIC/non-PIC, this we'll have to duplicate
   8619       # the extraction.
   8620       reload_conv_objs=
   8621       gentop=
   8622       # reload_cmds runs $LD directly, so let us get rid of
   8623       # -Wl from whole_archive_flag_spec and hope we can get by with
   8624       # turning comma into space..
   8625       wl=
   8626 
   8627       if test -n "$convenience"; then
   8628 	if test -n "$whole_archive_flag_spec"; then
   8629 	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
   8630 	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
   8631 	else
   8632 	  gentop="$output_objdir/${obj}x"
   8633 	  func_append generated " $gentop"
   8634 
   8635 	  func_extract_archives $gentop $convenience
   8636 	  reload_conv_objs="$reload_objs $func_extract_archives_result"
   8637 	fi
   8638       fi
   8639 
   8640       # If we're not building shared, we need to use non_pic_objs
   8641       test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
   8642 
   8643       # Create the old-style object.
   8644       reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
   8645 
   8646       output="$obj"
   8647       func_execute_cmds "$reload_cmds" 'exit $?'
   8648 
   8649       # Exit if we aren't doing a library object file.
   8650       if test -z "$libobj"; then
   8651 	if test -n "$gentop"; then
   8652 	  func_show_eval '${RM}r "$gentop"'
   8653 	fi
   8654 
   8655 	exit $EXIT_SUCCESS
   8656       fi
   8657 
   8658       if test "$build_libtool_libs" != yes; then
   8659 	if test -n "$gentop"; then
   8660 	  func_show_eval '${RM}r "$gentop"'
   8661 	fi
   8662 
   8663 	# Create an invalid libtool object if no PIC, so that we don't
   8664 	# accidentally link it into a program.
   8665 	# $show "echo timestamp > $libobj"
   8666 	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
   8667 	exit $EXIT_SUCCESS
   8668       fi
   8669 
   8670       if test -n "$pic_flag" || test "$pic_mode" != default; then
   8671 	# Only do commands if we really have different PIC objects.
   8672 	reload_objs="$libobjs $reload_conv_objs"
   8673 	output="$libobj"
   8674 	func_execute_cmds "$reload_cmds" 'exit $?'
   8675       fi
   8676 
   8677       if test -n "$gentop"; then
   8678 	func_show_eval '${RM}r "$gentop"'
   8679       fi
   8680 
   8681       exit $EXIT_SUCCESS
   8682       ;;
   8683 
   8684     prog)
   8685       case $host in
   8686 	*cygwin*) func_stripname '' '.exe' "$output"
   8687 	          output=$func_stripname_result.exe;;
   8688       esac
   8689       test -n "$vinfo" && \
   8690 	func_warning "\`-version-info' is ignored for programs"
   8691 
   8692       test -n "$release" && \
   8693 	func_warning "\`-release' is ignored for programs"
   8694 
   8695       test "$preload" = yes \
   8696         && test "$dlopen_support" = unknown \
   8697 	&& test "$dlopen_self" = unknown \
   8698 	&& test "$dlopen_self_static" = unknown && \
   8699 	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
   8700 
   8701       case $host in
   8702       *-*-rhapsody* | *-*-darwin1.[012])
   8703 	# On Rhapsody replace the C library is the System framework
   8704 	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
   8705 	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
   8706 	;;
   8707       esac
   8708 
   8709       case $host in
   8710       *-*-darwin*)
   8711 	# Don't allow lazy linking, it breaks C++ global constructors
   8712 	# But is supposedly fixed on 10.4 or later (yay!).
   8713 	if test "$tagname" = CXX ; then
   8714 	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
   8715 	    10.[0123])
   8716 	      func_append compile_command " ${wl}-bind_at_load"
   8717 	      func_append finalize_command " ${wl}-bind_at_load"
   8718 	    ;;
   8719 	  esac
   8720 	fi
   8721 	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
   8722 	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   8723 	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
   8724 	;;
   8725       esac
   8726 
   8727 
   8728       # move library search paths that coincide with paths to not yet
   8729       # installed libraries to the beginning of the library search list
   8730       new_libs=
   8731       for path in $notinst_path; do
   8732 	case " $new_libs " in
   8733 	*" -L$path/$objdir "*) ;;
   8734 	*)
   8735 	  case " $compile_deplibs " in
   8736 	  *" -L$path/$objdir "*)
   8737 	    func_append new_libs " -L$path/$objdir" ;;
   8738 	  esac
   8739 	  ;;
   8740 	esac
   8741       done
   8742       for deplib in $compile_deplibs; do
   8743 	case $deplib in
   8744 	-L*)
   8745 	  case " $new_libs " in
   8746 	  *" $deplib "*) ;;
   8747 	  *) func_append new_libs " $deplib" ;;
   8748 	  esac
   8749 	  ;;
   8750 	*) func_append new_libs " $deplib" ;;
   8751 	esac
   8752       done
   8753       compile_deplibs="$new_libs"
   8754 
   8755 
   8756       func_append compile_command " $compile_deplibs"
   8757       func_append finalize_command " $finalize_deplibs"
   8758 
   8759       if test -n "$rpath$xrpath"; then
   8760 	# If the user specified any rpath flags, then add them.
   8761 	for libdir in $rpath $xrpath; do
   8762 	  # This is the magic to use -rpath.
   8763 	  case "$finalize_rpath " in
   8764 	  *" $libdir "*) ;;
   8765 	  *) func_append finalize_rpath " $libdir" ;;
   8766 	  esac
   8767 	done
   8768       fi
   8769 
   8770       # Now hardcode the library paths
   8771       rpath=
   8772       hardcode_libdirs=
   8773       for libdir in $compile_rpath $finalize_rpath; do
   8774 	if test -n "$hardcode_libdir_flag_spec"; then
   8775 	  if test -n "$hardcode_libdir_separator"; then
   8776 	    if test -z "$hardcode_libdirs"; then
   8777 	      hardcode_libdirs="$libdir"
   8778 	    else
   8779 	      # Just accumulate the unique libdirs.
   8780 	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
   8781 	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
   8782 		;;
   8783 	      *)
   8784 		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
   8785 		;;
   8786 	      esac
   8787 	    fi
   8788 	  else
   8789 	    eval flag=\"$hardcode_libdir_flag_spec\"
   8790 	    func_append rpath " $flag"
   8791 	  fi
   8792 	elif test -n "$runpath_var"; then
   8793 	  case "$perm_rpath " in
   8794 	  *" $libdir "*) ;;
   8795 	  *) func_append perm_rpath " $libdir" ;;
   8796 	  esac
   8797 	fi
   8798 	case $host in
   8799 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
   8800 	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
   8801 	  case :$dllsearchpath: in
   8802 	  *":$libdir:"*) ;;
   8803 	  ::) dllsearchpath=$libdir;;
   8804 	  *) func_append dllsearchpath ":$libdir";;
   8805 	  esac
   8806 	  case :$dllsearchpath: in
   8807 	  *":$testbindir:"*) ;;
   8808 	  ::) dllsearchpath=$testbindir;;
   8809 	  *) func_append dllsearchpath ":$testbindir";;
   8810 	  esac
   8811 	  ;;
   8812 	esac
   8813       done
   8814       # Substitute the hardcoded libdirs into the rpath.
   8815       if test -n "$hardcode_libdir_separator" &&
   8816 	 test -n "$hardcode_libdirs"; then
   8817 	libdir="$hardcode_libdirs"
   8818 	eval rpath=\" $hardcode_libdir_flag_spec\"
   8819       fi
   8820       compile_rpath="$rpath"
   8821 
   8822       rpath=
   8823       hardcode_libdirs=
   8824       for libdir in $finalize_rpath; do
   8825 	if test -n "$hardcode_libdir_flag_spec"; then
   8826 	  if test -n "$hardcode_libdir_separator"; then
   8827 	    if test -z "$hardcode_libdirs"; then
   8828 	      hardcode_libdirs="$libdir"
   8829 	    else
   8830 	      # Just accumulate the unique libdirs.
   8831 	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
   8832 	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
   8833 		;;
   8834 	      *)
   8835 		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
   8836 		;;
   8837 	      esac
   8838 	    fi
   8839 	  else
   8840 	    eval flag=\"$hardcode_libdir_flag_spec\"
   8841 	    func_append rpath " $flag"
   8842 	  fi
   8843 	elif test -n "$runpath_var"; then
   8844 	  case "$finalize_perm_rpath " in
   8845 	  *" $libdir "*) ;;
   8846 	  *) func_append finalize_perm_rpath " $libdir" ;;
   8847 	  esac
   8848 	fi
   8849       done
   8850       # Substitute the hardcoded libdirs into the rpath.
   8851       if test -n "$hardcode_libdir_separator" &&
   8852 	 test -n "$hardcode_libdirs"; then
   8853 	libdir="$hardcode_libdirs"
   8854 	eval rpath=\" $hardcode_libdir_flag_spec\"
   8855       fi
   8856       finalize_rpath="$rpath"
   8857 
   8858       if test -n "$libobjs" && test "$build_old_libs" = yes; then
   8859 	# Transform all the library objects into standard objects.
   8860 	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
   8861 	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
   8862       fi
   8863 
   8864       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
   8865 
   8866       # template prelinking step
   8867       if test -n "$prelink_cmds"; then
   8868 	func_execute_cmds "$prelink_cmds" 'exit $?'
   8869       fi
   8870 
   8871       wrappers_required=yes
   8872       case $host in
   8873       *cegcc* | *mingw32ce*)
   8874         # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
   8875         wrappers_required=no
   8876         ;;
   8877       *cygwin* | *mingw* )
   8878         if test "$build_libtool_libs" != yes; then
   8879           wrappers_required=no
   8880         fi
   8881         ;;
   8882       *)
   8883         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
   8884           wrappers_required=no
   8885         fi
   8886         ;;
   8887       esac
   8888       if test "$wrappers_required" = no; then
   8889 	# Replace the output file specification.
   8890 	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
   8891 	link_command="$compile_command$compile_rpath"
   8892 
   8893 	# We have no uninstalled library dependencies, so finalize right now.
   8894 	exit_status=0
   8895 	func_show_eval "$link_command" 'exit_status=$?'
   8896 
   8897 	if test -n "$postlink_cmds"; then
   8898 	  func_to_tool_file "$output"
   8899 	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
   8900 	  func_execute_cmds "$postlink_cmds" 'exit $?'
   8901 	fi
   8902 
   8903 	# Delete the generated files.
   8904 	if test -f "$output_objdir/${outputname}S.${objext}"; then
   8905 	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
   8906 	fi
   8907 
   8908 	exit $exit_status
   8909       fi
   8910 
   8911       if test -n "$compile_shlibpath$finalize_shlibpath"; then
   8912 	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
   8913       fi
   8914       if test -n "$finalize_shlibpath"; then
   8915 	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
   8916       fi
   8917 
   8918       compile_var=
   8919       finalize_var=
   8920       if test -n "$runpath_var"; then
   8921 	if test -n "$perm_rpath"; then
   8922 	  # We should set the runpath_var.
   8923 	  rpath=
   8924 	  for dir in $perm_rpath; do
   8925 	    func_append rpath "$dir:"
   8926 	  done
   8927 	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
   8928 	fi
   8929 	if test -n "$finalize_perm_rpath"; then
   8930 	  # We should set the runpath_var.
   8931 	  rpath=
   8932 	  for dir in $finalize_perm_rpath; do
   8933 	    func_append rpath "$dir:"
   8934 	  done
   8935 	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
   8936 	fi
   8937       fi
   8938 
   8939       if test "$no_install" = yes; then
   8940 	# We don't need to create a wrapper script.
   8941 	link_command="$compile_var$compile_command$compile_rpath"
   8942 	# Replace the output file specification.
   8943 	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
   8944 	# Delete the old output file.
   8945 	$opt_dry_run || $RM $output
   8946 	# Link the executable and exit
   8947 	func_show_eval "$link_command" 'exit $?'
   8948 
   8949 	if test -n "$postlink_cmds"; then
   8950 	  func_to_tool_file "$output"
   8951 	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
   8952 	  func_execute_cmds "$postlink_cmds" 'exit $?'
   8953 	fi
   8954 
   8955 	exit $EXIT_SUCCESS
   8956       fi
   8957 
   8958       if test "$hardcode_action" = relink; then
   8959 	# Fast installation is not supported
   8960 	link_command="$compile_var$compile_command$compile_rpath"
   8961 	relink_command="$finalize_var$finalize_command$finalize_rpath"
   8962 
   8963 	func_warning "this platform does not like uninstalled shared libraries"
   8964 	func_warning "\`$output' will be relinked during installation"
   8965       else
   8966 	if test "$fast_install" != no; then
   8967 	  link_command="$finalize_var$compile_command$finalize_rpath"
   8968 	  if test "$fast_install" = yes; then
   8969 	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
   8970 	  else
   8971 	    # fast_install is set to needless
   8972 	    relink_command=
   8973 	  fi
   8974 	else
   8975 	  link_command="$compile_var$compile_command$compile_rpath"
   8976 	  relink_command="$finalize_var$finalize_command$finalize_rpath"
   8977 	fi
   8978       fi
   8979 
   8980       # Replace the output file specification.
   8981       link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
   8982 
   8983       # Delete the old output files.
   8984       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
   8985 
   8986       func_show_eval "$link_command" 'exit $?'
   8987 
   8988       if test -n "$postlink_cmds"; then
   8989 	func_to_tool_file "$output_objdir/$outputname"
   8990 	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'`
   8991 	func_execute_cmds "$postlink_cmds" 'exit $?'
   8992       fi
   8993 
   8994       # Now create the wrapper script.
   8995       func_verbose "creating $output"
   8996 
   8997       # Quote the relink command for shipping.
   8998       if test -n "$relink_command"; then
   8999 	# Preserve any variables that may affect compiler behavior
   9000 	for var in $variables_saved_for_relink; do
   9001 	  if eval test -z \"\${$var+set}\"; then
   9002 	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
   9003 	  elif eval var_value=\$$var; test -z "$var_value"; then
   9004 	    relink_command="$var=; export $var; $relink_command"
   9005 	  else
   9006 	    func_quote_for_eval "$var_value"
   9007 	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
   9008 	  fi
   9009 	done
   9010 	relink_command="(cd `pwd`; $relink_command)"
   9011 	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
   9012       fi
   9013 
   9014       # Only actually do things if not in dry run mode.
   9015       $opt_dry_run || {
   9016 	# win32 will think the script is a binary if it has
   9017 	# a .exe suffix, so we strip it off here.
   9018 	case $output in
   9019 	  *.exe) func_stripname '' '.exe' "$output"
   9020 	         output=$func_stripname_result ;;
   9021 	esac
   9022 	# test for cygwin because mv fails w/o .exe extensions
   9023 	case $host in
   9024 	  *cygwin*)
   9025 	    exeext=.exe
   9026 	    func_stripname '' '.exe' "$outputname"
   9027 	    outputname=$func_stripname_result ;;
   9028 	  *) exeext= ;;
   9029 	esac
   9030 	case $host in
   9031 	  *cygwin* | *mingw* )
   9032 	    func_dirname_and_basename "$output" "" "."
   9033 	    output_name=$func_basename_result
   9034 	    output_path=$func_dirname_result
   9035 	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
   9036 	    cwrapper="$output_path/$output_name.exe"
   9037 	    $RM $cwrappersource $cwrapper
   9038 	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
   9039 
   9040 	    func_emit_cwrapperexe_src > $cwrappersource
   9041 
   9042 	    # The wrapper executable is built using the $host compiler,
   9043 	    # because it contains $host paths and files. If cross-
   9044 	    # compiling, it, like the target executable, must be
   9045 	    # executed on the $host or under an emulation environment.
   9046 	    $opt_dry_run || {
   9047 	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
   9048 	      $STRIP $cwrapper
   9049 	    }
   9050 
   9051 	    # Now, create the wrapper script for func_source use:
   9052 	    func_ltwrapper_scriptname $cwrapper
   9053 	    $RM $func_ltwrapper_scriptname_result
   9054 	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
   9055 	    $opt_dry_run || {
   9056 	      # note: this script will not be executed, so do not chmod.
   9057 	      if test "x$build" = "x$host" ; then
   9058 		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
   9059 	      else
   9060 		func_emit_wrapper no > $func_ltwrapper_scriptname_result
   9061 	      fi
   9062 	    }
   9063 	  ;;
   9064 	  * )
   9065 	    $RM $output
   9066 	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
   9067 
   9068 	    func_emit_wrapper no > $output
   9069 	    chmod +x $output
   9070 	  ;;
   9071 	esac
   9072       }
   9073       exit $EXIT_SUCCESS
   9074       ;;
   9075     esac
   9076 
   9077     # See if we need to build an old-fashioned archive.
   9078     for oldlib in $oldlibs; do
   9079 
   9080       if test "$build_libtool_libs" = convenience; then
   9081 	oldobjs="$libobjs_save $symfileobj"
   9082 	addlibs="$convenience"
   9083 	build_libtool_libs=no
   9084       else
   9085 	if test "$build_libtool_libs" = module; then
   9086 	  oldobjs="$libobjs_save"
   9087 	  build_libtool_libs=no
   9088 	else
   9089 	  oldobjs="$old_deplibs $non_pic_objects"
   9090 	  if test "$preload" = yes && test -f "$symfileobj"; then
   9091 	    func_append oldobjs " $symfileobj"
   9092 	  fi
   9093 	fi
   9094 	addlibs="$old_convenience"
   9095       fi
   9096 
   9097       if test -n "$addlibs"; then
   9098 	gentop="$output_objdir/${outputname}x"
   9099 	func_append generated " $gentop"
   9100 
   9101 	func_extract_archives $gentop $addlibs
   9102 	func_append oldobjs " $func_extract_archives_result"
   9103       fi
   9104 
   9105       # Do each command in the archive commands.
   9106       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
   9107 	cmds=$old_archive_from_new_cmds
   9108       else
   9109 
   9110 	# Add any objects from preloaded convenience libraries
   9111 	if test -n "$dlprefiles"; then
   9112 	  gentop="$output_objdir/${outputname}x"
   9113 	  func_append generated " $gentop"
   9114 
   9115 	  func_extract_archives $gentop $dlprefiles
   9116 	  func_append oldobjs " $func_extract_archives_result"
   9117 	fi
   9118 
   9119 	# POSIX demands no paths to be encoded in archives.  We have
   9120 	# to avoid creating archives with duplicate basenames if we
   9121 	# might have to extract them afterwards, e.g., when creating a
   9122 	# static archive out of a convenience library, or when linking
   9123 	# the entirety of a libtool archive into another (currently
   9124 	# not supported by libtool).
   9125 	if (for obj in $oldobjs
   9126 	    do
   9127 	      func_basename "$obj"
   9128 	      $ECHO "$func_basename_result"
   9129 	    done | sort | sort -uc >/dev/null 2>&1); then
   9130 	  :
   9131 	else
   9132 	  echo "copying selected object files to avoid basename conflicts..."
   9133 	  gentop="$output_objdir/${outputname}x"
   9134 	  func_append generated " $gentop"
   9135 	  func_mkdir_p "$gentop"
   9136 	  save_oldobjs=$oldobjs
   9137 	  oldobjs=
   9138 	  counter=1
   9139 	  for obj in $save_oldobjs
   9140 	  do
   9141 	    func_basename "$obj"
   9142 	    objbase="$func_basename_result"
   9143 	    case " $oldobjs " in
   9144 	    " ") oldobjs=$obj ;;
   9145 	    *[\ /]"$objbase "*)
   9146 	      while :; do
   9147 		# Make sure we don't pick an alternate name that also
   9148 		# overlaps.
   9149 		newobj=lt$counter-$objbase
   9150 		func_arith $counter + 1
   9151 		counter=$func_arith_result
   9152 		case " $oldobjs " in
   9153 		*[\ /]"$newobj "*) ;;
   9154 		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
   9155 		esac
   9156 	      done
   9157 	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
   9158 	      func_append oldobjs " $gentop/$newobj"
   9159 	      ;;
   9160 	    *) func_append oldobjs " $obj" ;;
   9161 	    esac
   9162 	  done
   9163 	fi
   9164 	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
   9165 	tool_oldlib=$func_to_tool_file_result
   9166 	eval cmds=\"$old_archive_cmds\"
   9167 
   9168 	func_len " $cmds"
   9169 	len=$func_len_result
   9170 	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
   9171 	  cmds=$old_archive_cmds
   9172 	elif test -n "$archiver_list_spec"; then
   9173 	  func_verbose "using command file archive linking..."
   9174 	  for obj in $oldobjs
   9175 	  do
   9176 	    func_to_tool_file "$obj"
   9177 	    $ECHO "$func_to_tool_file_result"
   9178 	  done > $output_objdir/$libname.libcmd
   9179 	  func_to_tool_file "$output_objdir/$libname.libcmd"
   9180 	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
   9181 	  cmds=$old_archive_cmds
   9182 	else
   9183 	  # the command line is too long to link in one step, link in parts
   9184 	  func_verbose "using piecewise archive linking..."
   9185 	  save_RANLIB=$RANLIB
   9186 	  RANLIB=:
   9187 	  objlist=
   9188 	  concat_cmds=
   9189 	  save_oldobjs=$oldobjs
   9190 	  oldobjs=
   9191 	  # Is there a better way of finding the last object in the list?
   9192 	  for obj in $save_oldobjs
   9193 	  do
   9194 	    last_oldobj=$obj
   9195 	  done
   9196 	  eval test_cmds=\"$old_archive_cmds\"
   9197 	  func_len " $test_cmds"
   9198 	  len0=$func_len_result
   9199 	  len=$len0
   9200 	  for obj in $save_oldobjs
   9201 	  do
   9202 	    func_len " $obj"
   9203 	    func_arith $len + $func_len_result
   9204 	    len=$func_arith_result
   9205 	    func_append objlist " $obj"
   9206 	    if test "$len" -lt "$max_cmd_len"; then
   9207 	      :
   9208 	    else
   9209 	      # the above command should be used before it gets too long
   9210 	      oldobjs=$objlist
   9211 	      if test "$obj" = "$last_oldobj" ; then
   9212 		RANLIB=$save_RANLIB
   9213 	      fi
   9214 	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
   9215 	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
   9216 	      objlist=
   9217 	      len=$len0
   9218 	    fi
   9219 	  done
   9220 	  RANLIB=$save_RANLIB
   9221 	  oldobjs=$objlist
   9222 	  if test "X$oldobjs" = "X" ; then
   9223 	    eval cmds=\"\$concat_cmds\"
   9224 	  else
   9225 	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
   9226 	  fi
   9227 	fi
   9228       fi
   9229       func_execute_cmds "$cmds" 'exit $?'
   9230     done
   9231 
   9232     test -n "$generated" && \
   9233       func_show_eval "${RM}r$generated"
   9234 
   9235     # Now create the libtool archive.
   9236     case $output in
   9237     *.la)
   9238       old_library=
   9239       test "$build_old_libs" = yes && old_library="$libname.$libext"
   9240       func_verbose "creating $output"
   9241 
   9242       # Preserve any variables that may affect compiler behavior
   9243       for var in $variables_saved_for_relink; do
   9244 	if eval test -z \"\${$var+set}\"; then
   9245 	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
   9246 	elif eval var_value=\$$var; test -z "$var_value"; then
   9247 	  relink_command="$var=; export $var; $relink_command"
   9248 	else
   9249 	  func_quote_for_eval "$var_value"
   9250 	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
   9251 	fi
   9252       done
   9253       # Quote the link command for shipping.
   9254       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
   9255       relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
   9256       if test "$hardcode_automatic" = yes ; then
   9257 	relink_command=
   9258       fi
   9259 
   9260       # Only create the output if not a dry run.
   9261       $opt_dry_run || {
   9262 	for installed in no yes; do
   9263 	  if test "$installed" = yes; then
   9264 	    if test -z "$install_libdir"; then
   9265 	      break
   9266 	    fi
   9267 	    output="$output_objdir/$outputname"i
   9268 	    # Replace all uninstalled libtool libraries with the installed ones
   9269 	    newdependency_libs=
   9270 	    for deplib in $dependency_libs; do
   9271 	      case $deplib in
   9272 	      *.la)
   9273 		func_basename "$deplib"
   9274 		name="$func_basename_result"
   9275 		func_resolve_sysroot "$deplib"
   9276 		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
   9277 		test -z "$libdir" && \
   9278 		  func_fatal_error "\`$deplib' is not a valid libtool archive"
   9279 		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
   9280 		;;
   9281 	      -L*)
   9282 		func_stripname -L '' "$deplib"
   9283 		func_replace_sysroot "$func_stripname_result"
   9284 		func_append newdependency_libs " -L$func_replace_sysroot_result"
   9285 		;;
   9286 	      -R*)
   9287 		func_stripname -R '' "$deplib"
   9288 		func_replace_sysroot "$func_stripname_result"
   9289 		func_append newdependency_libs " -R$func_replace_sysroot_result"
   9290 		;;
   9291 	      *) func_append newdependency_libs " $deplib" ;;
   9292 	      esac
   9293 	    done
   9294 	    dependency_libs="$newdependency_libs"
   9295 	    newdlfiles=
   9296 
   9297 	    for lib in $dlfiles; do
   9298 	      case $lib in
   9299 	      *.la)
   9300 	        func_basename "$lib"
   9301 		name="$func_basename_result"
   9302 		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
   9303 		test -z "$libdir" && \
   9304 		  func_fatal_error "\`$lib' is not a valid libtool archive"
   9305 		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
   9306 		;;
   9307 	      *) func_append newdlfiles " $lib" ;;
   9308 	      esac
   9309 	    done
   9310 	    dlfiles="$newdlfiles"
   9311 	    newdlprefiles=
   9312 	    for lib in $dlprefiles; do
   9313 	      case $lib in
   9314 	      *.la)
   9315 		# Only pass preopened files to the pseudo-archive (for
   9316 		# eventual linking with the app. that links it) if we
   9317 		# didn't already link the preopened objects directly into
   9318 		# the library:
   9319 		func_basename "$lib"
   9320 		name="$func_basename_result"
   9321 		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
   9322 		test -z "$libdir" && \
   9323 		  func_fatal_error "\`$lib' is not a valid libtool archive"
   9324 		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
   9325 		;;
   9326 	      esac
   9327 	    done
   9328 	    dlprefiles="$newdlprefiles"
   9329 	  else
   9330 	    newdlfiles=
   9331 	    for lib in $dlfiles; do
   9332 	      case $lib in
   9333 		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
   9334 		*) abs=`pwd`"/$lib" ;;
   9335 	      esac
   9336 	      func_append newdlfiles " $abs"
   9337 	    done
   9338 	    dlfiles="$newdlfiles"
   9339 	    newdlprefiles=
   9340 	    for lib in $dlprefiles; do
   9341 	      case $lib in
   9342 		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
   9343 		*) abs=`pwd`"/$lib" ;;
   9344 	      esac
   9345 	      func_append newdlprefiles " $abs"
   9346 	    done
   9347 	    dlprefiles="$newdlprefiles"
   9348 	  fi
   9349 	  $RM $output
   9350 	  # place dlname in correct position for cygwin
   9351 	  # In fact, it would be nice if we could use this code for all target
   9352 	  # systems that can't hard-code library paths into their executables
   9353 	  # and that have no shared library path variable independent of PATH,
   9354 	  # but it turns out we can't easily determine that from inspecting
   9355 	  # libtool variables, so we have to hard-code the OSs to which it
   9356 	  # applies here; at the moment, that means platforms that use the PE
   9357 	  # object format with DLL files.  See the long comment at the top of
   9358 	  # tests/bindir.at for full details.
   9359 	  tdlname=$dlname
   9360 	  case $host,$output,$installed,$module,$dlname in
   9361 	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
   9362 	      # If a -bindir argument was supplied, place the dll there.
   9363 	      if test "x$bindir" != x ;
   9364 	      then
   9365 		func_relative_path "$install_libdir" "$bindir"
   9366 		tdlname=$func_relative_path_result$dlname
   9367 	      else
   9368 		# Otherwise fall back on heuristic.
   9369 		tdlname=../bin/$dlname
   9370 	      fi
   9371 	      ;;
   9372 	  esac
   9373 	  $ECHO > $output "\
   9374 # $outputname - a libtool library file
   9375 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
   9376 #
   9377 # Please DO NOT delete this file!
   9378 # It is necessary for linking the library.
   9379 
   9380 # The name that we can dlopen(3).
   9381 dlname='$tdlname'
   9382 
   9383 # Names of this library.
   9384 library_names='$library_names'
   9385 
   9386 # The name of the static archive.
   9387 old_library='$old_library'
   9388 
   9389 # Linker flags that can not go in dependency_libs.
   9390 inherited_linker_flags='$new_inherited_linker_flags'
   9391 
   9392 # Libraries that this one depends upon.
   9393 dependency_libs='$dependency_libs'
   9394 
   9395 # Names of additional weak libraries provided by this library
   9396 weak_library_names='$weak_libs'
   9397 
   9398 # Version information for $libname.
   9399 current=$current
   9400 age=$age
   9401 revision=$revision
   9402 
   9403 # Is this an already installed library?
   9404 installed=$installed
   9405 
   9406 # Should we warn about portability when linking against -modules?
   9407 shouldnotlink=$module
   9408 
   9409 # Files to dlopen/dlpreopen
   9410 dlopen='$dlfiles'
   9411 dlpreopen='$dlprefiles'
   9412 
   9413 # Directory that this library needs to be installed in:
   9414 libdir='$install_libdir'"
   9415 	  if test "$installed" = no && test "$need_relink" = yes; then
   9416 	    $ECHO >> $output "\
   9417 relink_command=\"$relink_command\""
   9418 	  fi
   9419 	done
   9420       }
   9421 
   9422       # Do a symbolic link so that the libtool archive can be found in
   9423       # LD_LIBRARY_PATH before the program is installed.
   9424       func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
   9425       ;;
   9426     esac
   9427     exit $EXIT_SUCCESS
   9428 }
   9429 
   9430 { test "$opt_mode" = link || test "$opt_mode" = relink; } &&
   9431     func_mode_link ${1+"$@"}
   9432 
   9433 
   9434 # func_mode_uninstall arg...
   9435 func_mode_uninstall ()
   9436 {
   9437     $opt_debug
   9438     RM="$nonopt"
   9439     files=
   9440     rmforce=
   9441     exit_status=0
   9442 
   9443     # This variable tells wrapper scripts just to set variables rather
   9444     # than running their programs.
   9445     libtool_install_magic="$magic"
   9446 
   9447     for arg
   9448     do
   9449       case $arg in
   9450       -f) func_append RM " $arg"; rmforce=yes ;;
   9451       -*) func_append RM " $arg" ;;
   9452       *) func_append files " $arg" ;;
   9453       esac
   9454     done
   9455 
   9456     test -z "$RM" && \
   9457       func_fatal_help "you must specify an RM program"
   9458 
   9459     rmdirs=
   9460 
   9461     for file in $files; do
   9462       func_dirname "$file" "" "."
   9463       dir="$func_dirname_result"
   9464       if test "X$dir" = X.; then
   9465 	odir="$objdir"
   9466       else
   9467 	odir="$dir/$objdir"
   9468       fi
   9469       func_basename "$file"
   9470       name="$func_basename_result"
   9471       test "$opt_mode" = uninstall && odir="$dir"
   9472 
   9473       # Remember odir for removal later, being careful to avoid duplicates
   9474       if test "$opt_mode" = clean; then
   9475 	case " $rmdirs " in
   9476 	  *" $odir "*) ;;
   9477 	  *) func_append rmdirs " $odir" ;;
   9478 	esac
   9479       fi
   9480 
   9481       # Don't error if the file doesn't exist and rm -f was used.
   9482       if { test -L "$file"; } >/dev/null 2>&1 ||
   9483 	 { test -h "$file"; } >/dev/null 2>&1 ||
   9484 	 test -f "$file"; then
   9485 	:
   9486       elif test -d "$file"; then
   9487 	exit_status=1
   9488 	continue
   9489       elif test "$rmforce" = yes; then
   9490 	continue
   9491       fi
   9492 
   9493       rmfiles="$file"
   9494 
   9495       case $name in
   9496       *.la)
   9497 	# Possibly a libtool archive, so verify it.
   9498 	if func_lalib_p "$file"; then
   9499 	  func_source $dir/$name
   9500 
   9501 	  # Delete the libtool libraries and symlinks.
   9502 	  for n in $library_names; do
   9503 	    func_append rmfiles " $odir/$n"
   9504 	  done
   9505 	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
   9506 
   9507 	  case "$opt_mode" in
   9508 	  clean)
   9509 	    case " $library_names " in
   9510 	    *" $dlname "*) ;;
   9511 	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
   9512 	    esac
   9513 	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
   9514 	    ;;
   9515 	  uninstall)
   9516 	    if test -n "$library_names"; then
   9517 	      # Do each command in the postuninstall commands.
   9518 	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
   9519 	    fi
   9520 
   9521 	    if test -n "$old_library"; then
   9522 	      # Do each command in the old_postuninstall commands.
   9523 	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
   9524 	    fi
   9525 	    # FIXME: should reinstall the best remaining shared library.
   9526 	    ;;
   9527 	  esac
   9528 	fi
   9529 	;;
   9530 
   9531       *.lo)
   9532 	# Possibly a libtool object, so verify it.
   9533 	if func_lalib_p "$file"; then
   9534 
   9535 	  # Read the .lo file
   9536 	  func_source $dir/$name
   9537 
   9538 	  # Add PIC object to the list of files to remove.
   9539 	  if test -n "$pic_object" &&
   9540 	     test "$pic_object" != none; then
   9541 	    func_append rmfiles " $dir/$pic_object"
   9542 	  fi
   9543 
   9544 	  # Add non-PIC object to the list of files to remove.
   9545 	  if test -n "$non_pic_object" &&
   9546 	     test "$non_pic_object" != none; then
   9547 	    func_append rmfiles " $dir/$non_pic_object"
   9548 	  fi
   9549 	fi
   9550 	;;
   9551 
   9552       *)
   9553 	if test "$opt_mode" = clean ; then
   9554 	  noexename=$name
   9555 	  case $file in
   9556 	  *.exe)
   9557 	    func_stripname '' '.exe' "$file"
   9558 	    file=$func_stripname_result
   9559 	    func_stripname '' '.exe' "$name"
   9560 	    noexename=$func_stripname_result
   9561 	    # $file with .exe has already been added to rmfiles,
   9562 	    # add $file without .exe
   9563 	    func_append rmfiles " $file"
   9564 	    ;;
   9565 	  esac
   9566 	  # Do a test to see if this is a libtool program.
   9567 	  if func_ltwrapper_p "$file"; then
   9568 	    if func_ltwrapper_executable_p "$file"; then
   9569 	      func_ltwrapper_scriptname "$file"
   9570 	      relink_command=
   9571 	      func_source $func_ltwrapper_scriptname_result
   9572 	      func_append rmfiles " $func_ltwrapper_scriptname_result"
   9573 	    else
   9574 	      relink_command=
   9575 	      func_source $dir/$noexename
   9576 	    fi
   9577 
   9578 	    # note $name still contains .exe if it was in $file originally
   9579 	    # as does the version of $file that was added into $rmfiles
   9580 	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
   9581 	    if test "$fast_install" = yes && test -n "$relink_command"; then
   9582 	      func_append rmfiles " $odir/lt-$name"
   9583 	    fi
   9584 	    if test "X$noexename" != "X$name" ; then
   9585 	      func_append rmfiles " $odir/lt-${noexename}.c"
   9586 	    fi
   9587 	  fi
   9588 	fi
   9589 	;;
   9590       esac
   9591       func_show_eval "$RM $rmfiles" 'exit_status=1'
   9592     done
   9593 
   9594     # Try to remove the ${objdir}s in the directories where we deleted files
   9595     for dir in $rmdirs; do
   9596       if test -d "$dir"; then
   9597 	func_show_eval "rmdir $dir >/dev/null 2>&1"
   9598       fi
   9599     done
   9600 
   9601     exit $exit_status
   9602 }
   9603 
   9604 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
   9605     func_mode_uninstall ${1+"$@"}
   9606 
   9607 test -z "$opt_mode" && {
   9608   help="$generic_help"
   9609   func_fatal_help "you must specify a MODE"
   9610 }
   9611 
   9612 test -z "$exec_cmd" && \
   9613   func_fatal_help "invalid operation mode \`$opt_mode'"
   9614 
   9615 if test -n "$exec_cmd"; then
   9616   eval exec "$exec_cmd"
   9617   exit $EXIT_FAILURE
   9618 fi
   9619 
   9620 exit $exit_status
   9621 
   9622 
   9623 # The TAGs below are defined such that we never get into a situation
   9624 # in which we disable both kinds of libraries.  Given conflicting
   9625 # choices, we go for a static library, that is the most portable,
   9626 # since we can't tell whether shared libraries were disabled because
   9627 # the user asked for that or because the platform doesn't support
   9628 # them.  This is particularly important on AIX, because we don't
   9629 # support having both static and shared libraries enabled at the same
   9630 # time on that platform, so we default to a shared-only configuration.
   9631 # If a disable-shared tag is given, we'll fallback to a static-only
   9632 # configuration.  But we'll never go from static-only to shared-only.
   9633 
   9634 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
   9635 build_libtool_libs=no
   9636 build_old_libs=yes
   9637 # ### END LIBTOOL TAG CONFIG: disable-shared
   9638 
   9639 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
   9640 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
   9641 # ### END LIBTOOL TAG CONFIG: disable-static
   9642 
   9643 # Local Variables:
   9644 # mode:shell-script
   9645 # sh-indentation:2
   9646 # End:
   9647 # vi:sw=2
   9648