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