• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 # Generated from ltmain.m4sh.
2 
3 # libtool (GNU libtool) 2.2.10
4 # Written by Gordon Matzigkeit <gord@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@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