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