chiark / gitweb /
Remove CVS subdirectories
[sympathy.git] / libtool
1 #! /bin/sh
2
3 # libtoolT - Provide generalized library-building support services.
4 # Generated automatically by  (GNU libsympathy 1.2.1)
5 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
6 #
7 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
8 # Free Software Foundation, Inc.
9 #
10 # This file is part of GNU Libtool:
11 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
12 #
13 # This program is free software; you can redistribute it and/or modify
14 # it under the terms of the GNU General Public License as published by
15 # the Free Software Foundation; either version 2 of the License, or
16 # (at your option) any later version.
17 #
18 # This program is distributed in the hope that it will be useful, but
19 # WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 # General Public License for more details.
22 #
23 # You should have received a copy of the GNU General Public License
24 # along with this program; if not, write to the Free Software
25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 #
27 # As a special exception to the GNU General Public License, if you
28 # distribute this file as part of a program that contains a
29 # configuration script generated by Autoconf, you may include it under
30 # the same distribution terms that you use for the rest of that program.
31
32 # A sed program that does not truncate output.
33 SED="/bin/sed"
34
35 # Sed that helps us avoid accidentally triggering echo(1) options like -n.
36 Xsed="/bin/sed -e 1s/^X//"
37
38 # The HP-UX ksh and POSIX shell print the target directory to stdout
39 # if CDPATH is set.
40 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
41
42 # The names of the tagged configurations supported by this script.
43 available_tags=" CXX"
44
45 # ### BEGIN LIBTOOL CONFIG
46
47 # Libtool was configured on host woking.xci-test.com:
48
49 # Shell to use when invoking shell scripts.
50 SHELL="/bin/sh"
51
52 # Whether or not to build shared libraries.
53 build_libtool_libs=yes
54
55 # Whether or not to build static libraries.
56 build_old_libs=yes
57
58 # Whether or not to add -lc for building shared libraries.
59 build_libtool_need_lc=no
60
61 # Whether or not to disallow shared libs when runtime libs are static
62 allow_libtool_libs_with_static_runtimes=no
63
64 # Whether or not to optimize for fast installation.
65 fast_install=yes
66
67 # The host system.
68 host_alias=
69 host=i686-pc-linux-gnu
70 host_os=linux-gnu
71
72 # The build system.
73 build_alias=
74 build=i686-pc-linux-gnu
75 build_os=linux-gnu
76
77 # An echo program that does not interpret backslashes.
78 echo="echo"
79
80 # The archiver.
81 AR="ar"
82 AR_FLAGS="cru"
83
84 # A C compiler.
85 LTCC="gcc"
86
87 # LTCC compiler flags.
88 LTCFLAGS="-g -O2"
89
90 # A language-specific compiler.
91 CC="gcc"
92
93 # Is the compiler the GNU C compiler?
94 with_gcc=yes
95
96 # An ERE matcher.
97 EGREP="/bin/grep -E"
98
99 # The linker used to build libraries.
100 LD="/usr/bin/ld"
101
102 # Whether we need hard or soft links.
103 LN_S="ln -s"
104
105 # A BSD-compatible nm program.
106 NM="/usr/bin/nm -B"
107
108 # A symbol stripping program
109 STRIP="strip"
110
111 # Used to examine libraries when file_magic_cmd begins "file"
112 MAGIC_CMD=file
113
114 # Used on cygwin: DLL creation program.
115 DLLTOOL="dlltool"
116
117 # Used on cygwin: object dumper.
118 OBJDUMP="objdump"
119
120 # Used on cygwin: assembler.
121 AS="as"
122
123 # The name of the directory that contains temporary libtool files.
124 objdir=.libs
125
126 # How to create reloadable object files.
127 reload_flag=" -r"
128 reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
129
130 # How to pass a linker flag through the compiler.
131 wl="-Wl,"
132
133 # Object file suffix (normally "o").
134 objext="o"
135
136 # Old archive suffix (normally "a").
137 libext="a"
138
139 # Shared library suffix (normally ".so").
140 shrext_cmds='.so'
141
142 # Executable file suffix (normally "").
143 exeext=""
144
145 # Additional compiler flags for building library objects.
146 pic_flag=" -fPIC -DPIC"
147 pic_mode=default
148
149 # What is the maximum length of a command?
150 max_cmd_len=98304
151
152 # Does compiler simultaneously support -c and -o options?
153 compiler_c_o="yes"
154
155 # Must we lock files when doing compilation?
156 need_locks="no"
157
158 # Do we need the lib prefix for modules?
159 need_lib_prefix=no
160
161 # Do we need a version for libraries?
162 need_version=no
163
164 # Whether dlopen is supported.
165 dlopen_support=unknown
166
167 # Whether dlopen of programs is supported.
168 dlopen_self=unknown
169
170 # Whether dlopen of statically linked programs is supported.
171 dlopen_self_static=unknown
172
173 # Compiler flag to prevent dynamic linking.
174 link_static_flag="-static"
175
176 # Compiler flag to turn off builtin functions.
177 no_builtin_flag=" -fno-builtin"
178
179 # Compiler flag to allow reflexive dlopens.
180 export_dynamic_flag_spec="\${wl}--export-dynamic"
181
182 # Compiler flag to generate shared objects directly from archives.
183 whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
184
185 # Compiler flag to generate thread-safe objects.
186 thread_safe_flag_spec=""
187
188 # Library versioning type.
189 version_type=linux
190
191 # Format of library name prefix.
192 libname_spec="lib\$name"
193
194 # List of archive names.  First name is the real one, the rest are links.
195 # The last name is the one that the linker finds with -lNAME.
196 library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
197
198 # The coded name of the library, if different from the real name.
199 soname_spec="\${libname}\${release}\${shared_ext}\$major"
200
201 # Commands used to build and install an old-style archive.
202 RANLIB="ranlib"
203 old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
204 old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
205 old_postuninstall_cmds=""
206
207 # Create an old-style archive from a shared archive.
208 old_archive_from_new_cmds=""
209
210 # Create a temporary old-style archive to link instead of a shared archive.
211 old_archive_from_expsyms_cmds=""
212
213 # Commands used to build and install a shared archive.
214 archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
215 archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
216   cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
217   \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
218           \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
219 postinstall_cmds=""
220 postuninstall_cmds=""
221
222 # Commands used to build a loadable module (assumed same as above if empty)
223 module_cmds=""
224 module_expsym_cmds=""
225
226 # Commands to strip libraries.
227 old_striplib="strip --strip-debug"
228 striplib="strip --strip-unneeded"
229
230 # Dependencies to place before the objects being linked to create a
231 # shared library.
232 predep_objects=""
233
234 # Dependencies to place after the objects being linked to create a
235 # shared library.
236 postdep_objects=""
237
238 # Dependencies to place before the objects being linked to create a
239 # shared library.
240 predeps=""
241
242 # Dependencies to place after the objects being linked to create a
243 # shared library.
244 postdeps=""
245
246 # The directories searched by this compiler when creating a shared
247 # library
248 compiler_lib_search_dirs=""
249
250 # The library search path used internally by the compiler when linking
251 # a shared library.
252 compiler_lib_search_path=""
253
254 # Method to check whether dependent libraries are shared objects.
255 deplibs_check_method="pass_all"
256
257 # Command to use when deplibs_check_method == file_magic.
258 file_magic_cmd="\$MAGIC_CMD"
259
260 # Flag that allows shared libraries with undefined symbols to be built.
261 allow_undefined_flag=""
262
263 # Flag that forces no undefined symbols.
264 no_undefined_flag=""
265
266 # Commands used to finish a libtool library installation in a directory.
267 finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
268
269 # Same as above, but a single script fragment to be evaled but not shown.
270 finish_eval=""
271
272 # Take the output of nm and produce a listing of raw symbols and C names.
273 global_symbol_pipe="sed -n -e 's/^.*[   ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[       ][      ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
274
275 # Transform the output of nm in a proper C declaration
276 global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
277
278 # Transform the output of nm in a C name address pair
279 global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (lt_ptr) \\&\\2},/p'"
280
281 # This is the shared library runtime path variable.
282 runpath_var=LD_RUN_PATH
283
284 # This is the shared library path variable.
285 shlibpath_var=LD_LIBRARY_PATH
286
287 # Is shlibpath searched before the hard-coded library search path?
288 shlibpath_overrides_runpath=no
289
290 # How to hardcode a shared library path into an executable.
291 hardcode_action=immediate
292
293 # Whether we should hardcode library paths into libraries.
294 hardcode_into_libs=yes
295
296 # Flag to hardcode $libdir into a binary during linking.
297 # This must work even if $libdir does not exist.
298 hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
299
300 # If ld is used when linking, flag to hardcode $libdir into
301 # a binary during linking. This must work even if $libdir does
302 # not exist.
303 hardcode_libdir_flag_spec_ld=""
304
305 # Whether we need a single -rpath flag with a separated argument.
306 hardcode_libdir_separator=""
307
308 # Set to yes if using DIR/libNAME during linking hardcodes DIR into the
309 # resulting binary.
310 hardcode_direct=no
311
312 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the
313 # resulting binary.
314 hardcode_minus_L=no
315
316 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
317 # the resulting binary.
318 hardcode_shlibpath_var=unsupported
319
320 # Set to yes if building a shared library automatically hardcodes DIR into the library
321 # and all subsequent libraries and executables linked against it.
322 hardcode_automatic=no
323
324 # Variables whose values should be saved in libtool wrapper scripts and
325 # restored at relink time.
326 variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
327
328 # Whether libtool must link a program against all its dependency libraries.
329 link_all_deplibs=no
330
331 # Compile-time system search path for libraries
332 sys_lib_search_path_spec="/usr/lib/gcc/i486-linux-gnu/4.3.2 /usr/lib /lib"
333
334 # Run-time system search path for libraries
335 sys_lib_dlsearch_path_spec="/lib /usr/lib /lib/i486-linux-gnu /usr/lib/i486-linux-gnu /usr/local/lib "
336
337 # Fix the shell variable $srcfile for the compiler.
338 fix_srcfile_path=""
339
340 # Set to yes if exported symbols are required.
341 always_export_symbols=no
342
343 # The commands to list exported symbols.
344 export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
345
346 # The commands to extract the exported symbol list from a shared archive.
347 extract_expsyms_cmds=""
348
349 # Symbols that should not be listed in the preloaded symbols.
350 exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
351
352 # Symbols that must always be exported.
353 include_expsyms=""
354
355 # ### END LIBTOOL CONFIG
356
357 # ltmain.sh - Provide generalized library-building support services.
358 # NOTE: Changing this file will not affect anything until you rerun configure.
359 #
360 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
361 # 2007, 2008  Free Software Foundation, Inc.
362 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
363 #
364 # This program is free software; you can redistribute it and/or modify
365 # it under the terms of the GNU General Public License as published by
366 # the Free Software Foundation; either version 2 of the License, or
367 # (at your option) any later version.
368 #
369 # This program is distributed in the hope that it will be useful, but
370 # WITHOUT ANY WARRANTY; without even the implied warranty of
371 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
372 # General Public License for more details.
373 #
374 # You should have received a copy of the GNU General Public License
375 # along with this program; if not, write to the Free Software
376 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
377 #
378 # As a special exception to the GNU General Public License, if you
379 # distribute this file as part of a program that contains a
380 # configuration script generated by Autoconf, you may include it under
381 # the same distribution terms that you use for the rest of that program.
382
383 basename="s,^.*/,,g"
384
385 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
386 # is ksh but when the shell is invoked as "sh" and the current value of
387 # the _XPG environment variable is not equal to 1 (one), the special
388 # positional parameter $0, within a function call, is the name of the
389 # function.
390 progpath="$0"
391
392 # The name of this program:
393 progname=`echo "$progpath" | $SED $basename`
394 modename="$progname"
395
396 # Global variables:
397 EXIT_SUCCESS=0
398 EXIT_FAILURE=1
399
400 PROGRAM=ltmain.sh
401 PACKAGE=libtool
402 VERSION="1.5.26 Debian 1.5.26-4"
403 TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
404
405 # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
406 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
407   emulate sh
408   NULLCMD=:
409   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
410   # is contrary to our usage.  Disable this feature.
411   alias -g '${1+"$@"}'='"$@"'
412   setopt NO_GLOB_SUBST
413 else
414   case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
415 fi
416 BIN_SH=xpg4; export BIN_SH # for Tru64
417 DUALCASE=1; export DUALCASE # for MKS sh
418
419 # Check that we have a working $echo.
420 if test "X$1" = X--no-reexec; then
421   # Discard the --no-reexec flag, and continue.
422   shift
423 elif test "X$1" = X--fallback-echo; then
424   # Avoid inline document here, it may be left over
425   :
426 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
427   # Yippee, $echo works!
428   :
429 else
430   # Restart under the correct shell, and then maybe $echo will work.
431   exec $SHELL "$progpath" --no-reexec ${1+"$@"}
432 fi
433
434 if test "X$1" = X--fallback-echo; then
435   # used as fallback echo
436   shift
437   cat <<EOF
438 $*
439 EOF
440   exit $EXIT_SUCCESS
441 fi
442
443 default_mode=
444 help="Try \`$progname --help' for more information."
445 magic="%%%MAGIC variable%%%"
446 mkdir="mkdir"
447 mv="mv -f"
448 rm="rm -f"
449
450 # Sed substitution that helps us do robust quoting.  It backslashifies
451 # metacharacters that are still active within double-quoted strings.
452 Xsed="${SED}"' -e 1s/^X//'
453 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
454 # test EBCDIC or ASCII
455 case `echo X|tr X '\101'` in
456  A) # ASCII based system
457     # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
458   SP2NL='tr \040 \012'
459   NL2SP='tr \015\012 \040\040'
460   ;;
461  *) # EBCDIC based system
462   SP2NL='tr \100 \n'
463   NL2SP='tr \r\n \100\100'
464   ;;
465 esac
466
467 # NLS nuisances.
468 # Only set LANG and LC_ALL to C if already set.
469 # These must not be set unconditionally because not all systems understand
470 # e.g. LANG=C (notably SCO).
471 # We save the old values to restore during execute mode.
472 lt_env=
473 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
474 do
475   eval "if test \"\${$lt_var+set}\" = set; then
476           save_$lt_var=\$$lt_var
477           lt_env=\"$lt_var=\$$lt_var \$lt_env\"
478           $lt_var=C
479           export $lt_var
480         fi"
481 done
482
483 if test -n "$lt_env"; then
484   lt_env="env $lt_env"
485 fi
486
487 # Make sure IFS has a sensible default
488 lt_nl='
489 '
490 IFS="   $lt_nl"
491
492 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
493   $echo "$modename: not configured to build any kind of library" 1>&2
494   $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
495   exit $EXIT_FAILURE
496 fi
497
498 # Global variables.
499 mode=$default_mode
500 nonopt=
501 prev=
502 prevopt=
503 run=
504 show="$echo"
505 show_help=
506 execute_dlfiles=
507 duplicate_deps=no
508 preserve_args=
509 lo2o="s/\\.lo\$/.${objext}/"
510 o2lo="s/\\.${objext}\$/.lo/"
511 extracted_archives=
512 extracted_serial=0
513
514 #####################################
515 # Shell function definitions:
516 # This seems to be the best place for them
517
518 # func_mktempdir [string]
519 # Make a temporary directory that won't clash with other running
520 # libtool processes, and avoids race conditions if possible.  If
521 # given, STRING is the basename for that directory.
522 func_mktempdir ()
523 {
524     my_template="${TMPDIR-/tmp}/${1-$progname}"
525
526     if test "$run" = ":"; then
527       # Return a directory name, but don't create it in dry-run mode
528       my_tmpdir="${my_template}-$$"
529     else
530
531       # If mktemp works, use that first and foremost
532       my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
533
534       if test ! -d "$my_tmpdir"; then
535         # Failing that, at least try and use $RANDOM to avoid a race
536         my_tmpdir="${my_template}-${RANDOM-0}$$"
537
538         save_mktempdir_umask=`umask`
539         umask 0077
540         $mkdir "$my_tmpdir"
541         umask $save_mktempdir_umask
542       fi
543
544       # If we're not in dry-run mode, bomb out on failure
545       test -d "$my_tmpdir" || {
546         $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
547         exit $EXIT_FAILURE
548       }
549     fi
550
551     $echo "X$my_tmpdir" | $Xsed
552 }
553
554
555 # func_win32_libid arg
556 # return the library type of file 'arg'
557 #
558 # Need a lot of goo to handle *both* DLLs and import libs
559 # Has to be a shell function in order to 'eat' the argument
560 # that is supplied when $file_magic_command is called.
561 func_win32_libid ()
562 {
563   win32_libid_type="unknown"
564   win32_fileres=`file -L $1 2>/dev/null`
565   case $win32_fileres in
566   *ar\ archive\ import\ library*) # definitely import
567     win32_libid_type="x86 archive import"
568     ;;
569   *ar\ archive*) # could be an import, or static
570     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
571       $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
572       win32_nmres=`eval $NM -f posix -A $1 | \
573         $SED -n -e '1,100{
574                 / I /{
575                         s,.*,import,
576                         p
577                         q
578                         }
579                 }'`
580       case $win32_nmres in
581       import*)  win32_libid_type="x86 archive import";;
582       *)        win32_libid_type="x86 archive static";;
583       esac
584     fi
585     ;;
586   *DLL*)
587     win32_libid_type="x86 DLL"
588     ;;
589   *executable*) # but shell scripts are "executable" too...
590     case $win32_fileres in
591     *MS\ Windows\ PE\ Intel*)
592       win32_libid_type="x86 DLL"
593       ;;
594     esac
595     ;;
596   esac
597   $echo $win32_libid_type
598 }
599
600
601 # func_infer_tag arg
602 # Infer tagged configuration to use if any are available and
603 # if one wasn't chosen via the "--tag" command line option.
604 # Only attempt this if the compiler in the base compile
605 # command doesn't match the default compiler.
606 # arg is usually of the form 'gcc ...'
607 func_infer_tag ()
608 {
609     if test -n "$available_tags" && test -z "$tagname"; then
610       CC_quoted=
611       for arg in $CC; do
612         case $arg in
613           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
614           arg="\"$arg\""
615           ;;
616         esac
617         CC_quoted="$CC_quoted $arg"
618       done
619       case $@ in
620       # Blanks in the command may have been stripped by the calling shell,
621       # but not from the CC environment variable when configure was run.
622       " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
623       # Blanks at the start of $base_compile will cause this to fail
624       # if we don't check for them as well.
625       *)
626         for z in $available_tags; do
627           if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
628             # Evaluate the configuration.
629             eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
630             CC_quoted=
631             for arg in $CC; do
632             # Double-quote args containing other shell metacharacters.
633             case $arg in
634               *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
635               arg="\"$arg\""
636               ;;
637             esac
638             CC_quoted="$CC_quoted $arg"
639           done
640             case "$@ " in
641               " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
642               # The compiler in the base compile command matches
643               # the one in the tagged configuration.
644               # Assume this is the tagged configuration we want.
645               tagname=$z
646               break
647               ;;
648             esac
649           fi
650         done
651         # If $tagname still isn't set, then no tagged configuration
652         # was found and let the user know that the "--tag" command
653         # line option must be used.
654         if test -z "$tagname"; then
655           $echo "$modename: unable to infer tagged configuration"
656           $echo "$modename: specify a tag with \`--tag'" 1>&2
657           exit $EXIT_FAILURE
658 #        else
659 #          $echo "$modename: using $tagname tagged configuration"
660         fi
661         ;;
662       esac
663     fi
664 }
665
666
667 # func_extract_an_archive dir oldlib
668 func_extract_an_archive ()
669 {
670     f_ex_an_ar_dir="$1"; shift
671     f_ex_an_ar_oldlib="$1"
672
673     $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
674     $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
675     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
676      :
677     else
678       $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
679       exit $EXIT_FAILURE
680     fi
681 }
682
683 # func_extract_archives gentop oldlib ...
684 func_extract_archives ()
685 {
686     my_gentop="$1"; shift
687     my_oldlibs=${1+"$@"}
688     my_oldobjs=""
689     my_xlib=""
690     my_xabs=""
691     my_xdir=""
692     my_status=""
693
694     $show "${rm}r $my_gentop"
695     $run ${rm}r "$my_gentop"
696     $show "$mkdir $my_gentop"
697     $run $mkdir "$my_gentop"
698     my_status=$?
699     if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
700       exit $my_status
701     fi
702
703     for my_xlib in $my_oldlibs; do
704       # Extract the objects.
705       case $my_xlib in
706         [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
707         *) my_xabs=`pwd`"/$my_xlib" ;;
708       esac
709       my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
710       my_xlib_u=$my_xlib
711       while :; do
712         case " $extracted_archives " in
713         *" $my_xlib_u "*)
714           extracted_serial=`expr $extracted_serial + 1`
715           my_xlib_u=lt$extracted_serial-$my_xlib ;;
716         *) break ;;
717         esac
718       done
719       extracted_archives="$extracted_archives $my_xlib_u"
720       my_xdir="$my_gentop/$my_xlib_u"
721
722       $show "${rm}r $my_xdir"
723       $run ${rm}r "$my_xdir"
724       $show "$mkdir $my_xdir"
725       $run $mkdir "$my_xdir"
726       exit_status=$?
727       if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
728         exit $exit_status
729       fi
730       case $host in
731       *-darwin*)
732         $show "Extracting $my_xabs"
733         # Do not bother doing anything if just a dry run
734         if test -z "$run"; then
735           darwin_orig_dir=`pwd`
736           cd $my_xdir || exit $?
737           darwin_archive=$my_xabs
738           darwin_curdir=`pwd`
739           darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
740           darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
741           if test -n "$darwin_arches"; then 
742             darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
743             darwin_arch=
744             $show "$darwin_base_archive has multiple architectures $darwin_arches"
745             for darwin_arch in  $darwin_arches ; do
746               mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
747               lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
748               cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
749               func_extract_an_archive "`pwd`" "${darwin_base_archive}"
750               cd "$darwin_curdir"
751               $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
752             done # $darwin_arches
753       ## Okay now we have a bunch of thin objects, gotta fatten them up :)
754             darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
755             darwin_file=
756             darwin_files=
757             for darwin_file in $darwin_filelist; do
758               darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
759               lipo -create -output "$darwin_file" $darwin_files
760             done # $darwin_filelist
761             ${rm}r unfat-$$
762             cd "$darwin_orig_dir"
763           else
764             cd "$darwin_orig_dir"
765             func_extract_an_archive "$my_xdir" "$my_xabs"
766           fi # $darwin_arches
767         fi # $run
768         ;;
769       *)
770         func_extract_an_archive "$my_xdir" "$my_xabs"
771         ;;
772       esac
773       my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
774     done
775     func_extract_archives_result="$my_oldobjs"
776 }
777 # End of Shell function definitions
778 #####################################
779
780 # Darwin sucks
781 eval std_shrext=\"$shrext_cmds\"
782
783 disable_libs=no
784
785 # Parse our command line options once, thoroughly.
786 while test "$#" -gt 0
787 do
788   arg="$1"
789   shift
790
791   case $arg in
792   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
793   *) optarg= ;;
794   esac
795
796   # If the previous option needs an argument, assign it.
797   if test -n "$prev"; then
798     case $prev in
799     execute_dlfiles)
800       execute_dlfiles="$execute_dlfiles $arg"
801       ;;
802     tag)
803       tagname="$arg"
804       preserve_args="${preserve_args}=$arg"
805
806       # Check whether tagname contains only valid characters
807       case $tagname in
808       *[!-_A-Za-z0-9,/]*)
809         $echo "$progname: invalid tag name: $tagname" 1>&2
810         exit $EXIT_FAILURE
811         ;;
812       esac
813
814       case $tagname in
815       CC)
816         # Don't test for the "default" C tag, as we know, it's there, but
817         # not specially marked.
818         ;;
819       *)
820         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
821           taglist="$taglist $tagname"
822           # Evaluate the configuration.
823           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
824         else
825           $echo "$progname: ignoring unknown tag $tagname" 1>&2
826         fi
827         ;;
828       esac
829       ;;
830     *)
831       eval "$prev=\$arg"
832       ;;
833     esac
834
835     prev=
836     prevopt=
837     continue
838   fi
839
840   # Have we seen a non-optional argument yet?
841   case $arg in
842   --help)
843     show_help=yes
844     ;;
845
846   --version)
847     echo "\
848 $PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
849
850 Copyright (C) 2008  Free Software Foundation, Inc.
851 This is free software; see the source for copying conditions.  There is NO
852 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
853     exit $?
854     ;;
855
856   --config)
857     ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
858     # Now print the configurations for the tags.
859     for tagname in $taglist; do
860       ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
861     done
862     exit $?
863     ;;
864
865   --debug)
866     $echo "$progname: enabling shell trace mode"
867     set -x
868     preserve_args="$preserve_args $arg"
869     ;;
870
871   --dry-run | -n)
872     run=:
873     ;;
874
875   --features)
876     $echo "host: $host"
877     if test "$build_libtool_libs" = yes; then
878       $echo "enable shared libraries"
879     else
880       $echo "disable shared libraries"
881     fi
882     if test "$build_old_libs" = yes; then
883       $echo "enable static libraries"
884     else
885       $echo "disable static libraries"
886     fi
887     exit $?
888     ;;
889
890   --finish) mode="finish" ;;
891
892   --mode) prevopt="--mode" prev=mode ;;
893   --mode=*) mode="$optarg" ;;
894
895   --preserve-dup-deps) duplicate_deps="yes" ;;
896
897   --quiet | --silent)
898     show=:
899     preserve_args="$preserve_args $arg"
900     ;;
901
902   --tag)
903     prevopt="--tag"
904     prev=tag
905     preserve_args="$preserve_args --tag"
906     ;;
907   --tag=*)
908     set tag "$optarg" ${1+"$@"}
909     shift
910     prev=tag
911     preserve_args="$preserve_args --tag"
912     ;;
913
914   -dlopen)
915     prevopt="-dlopen"
916     prev=execute_dlfiles
917     ;;
918
919   -*)
920     $echo "$modename: unrecognized option \`$arg'" 1>&2
921     $echo "$help" 1>&2
922     exit $EXIT_FAILURE
923     ;;
924
925   *)
926     nonopt="$arg"
927     break
928     ;;
929   esac
930 done
931
932 if test -n "$prevopt"; then
933   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
934   $echo "$help" 1>&2
935   exit $EXIT_FAILURE
936 fi
937
938 case $disable_libs in
939 no) 
940   ;;
941 shared)
942   build_libtool_libs=no
943   build_old_libs=yes
944   ;;
945 static)
946   build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
947   ;;
948 esac
949
950 # If this variable is set in any of the actions, the command in it
951 # will be execed at the end.  This prevents here-documents from being
952 # left over by shells.
953 exec_cmd=
954
955 if test -z "$show_help"; then
956
957   # Infer the operation mode.
958   if test -z "$mode"; then
959     $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
960     $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
961     case $nonopt in
962     *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
963       mode=link
964       for arg
965       do
966         case $arg in
967         -c)
968            mode=compile
969            break
970            ;;
971         esac
972       done
973       ;;
974     *db | *dbx | *strace | *truss)
975       mode=execute
976       ;;
977     *install*|cp|mv)
978       mode=install
979       ;;
980     *rm)
981       mode=uninstall
982       ;;
983     *)
984       # If we have no mode, but dlfiles were specified, then do execute mode.
985       test -n "$execute_dlfiles" && mode=execute
986
987       # Just use the default operation mode.
988       if test -z "$mode"; then
989         if test -n "$nonopt"; then
990           $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
991         else
992           $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
993         fi
994       fi
995       ;;
996     esac
997   fi
998
999   # Only execute mode is allowed to have -dlopen flags.
1000   if test -n "$execute_dlfiles" && test "$mode" != execute; then
1001     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
1002     $echo "$help" 1>&2
1003     exit $EXIT_FAILURE
1004   fi
1005
1006   # Change the help message to a mode-specific one.
1007   generic_help="$help"
1008   help="Try \`$modename --help --mode=$mode' for more information."
1009
1010   # These modes are in order of execution frequency so that they run quickly.
1011   case $mode in
1012   # libtool compile mode
1013   compile)
1014     modename="$modename: compile"
1015     # Get the compilation command and the source file.
1016     base_compile=
1017     srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
1018     suppress_opt=yes
1019     suppress_output=
1020     arg_mode=normal
1021     libobj=
1022     later=
1023
1024     for arg
1025     do
1026       case $arg_mode in
1027       arg  )
1028         # do not "continue".  Instead, add this to base_compile
1029         lastarg="$arg"
1030         arg_mode=normal
1031         ;;
1032
1033       target )
1034         libobj="$arg"
1035         arg_mode=normal
1036         continue
1037         ;;
1038
1039       normal )
1040         # Accept any command-line options.
1041         case $arg in
1042         -o)
1043           if test -n "$libobj" ; then
1044             $echo "$modename: you cannot specify \`-o' more than once" 1>&2
1045             exit $EXIT_FAILURE
1046           fi
1047           arg_mode=target
1048           continue
1049           ;;
1050
1051         -static | -prefer-pic | -prefer-non-pic)
1052           later="$later $arg"
1053           continue
1054           ;;
1055
1056         -no-suppress)
1057           suppress_opt=no
1058           continue
1059           ;;
1060
1061         -Xcompiler)
1062           arg_mode=arg  #  the next one goes into the "base_compile" arg list
1063           continue      #  The current "srcfile" will either be retained or
1064           ;;            #  replaced later.  I would guess that would be a bug.
1065
1066         -Wc,*)
1067           args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
1068           lastarg=
1069           save_ifs="$IFS"; IFS=','
1070           for arg in $args; do
1071             IFS="$save_ifs"
1072
1073             # Double-quote args containing other shell metacharacters.
1074             # Many Bourne shells cannot handle close brackets correctly
1075             # in scan sets, so we specify it separately.
1076             case $arg in
1077               *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1078               arg="\"$arg\""
1079               ;;
1080             esac
1081             lastarg="$lastarg $arg"
1082           done
1083           IFS="$save_ifs"
1084           lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
1085
1086           # Add the arguments to base_compile.
1087           base_compile="$base_compile $lastarg"
1088           continue
1089           ;;
1090
1091         * )
1092           # Accept the current argument as the source file.
1093           # The previous "srcfile" becomes the current argument.
1094           #
1095           lastarg="$srcfile"
1096           srcfile="$arg"
1097           ;;
1098         esac  #  case $arg
1099         ;;
1100       esac    #  case $arg_mode
1101
1102       # Aesthetically quote the previous argument.
1103       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
1104
1105       case $lastarg in
1106       # Double-quote args containing other shell metacharacters.
1107       # Many Bourne shells cannot handle close brackets correctly
1108       # in scan sets, and some SunOS ksh mistreat backslash-escaping
1109       # in scan sets (worked around with variable expansion),
1110       # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
1111       # at all, so we specify them separately.
1112       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1113         lastarg="\"$lastarg\""
1114         ;;
1115       esac
1116
1117       base_compile="$base_compile $lastarg"
1118     done # for arg
1119
1120     case $arg_mode in
1121     arg)
1122       $echo "$modename: you must specify an argument for -Xcompile"
1123       exit $EXIT_FAILURE
1124       ;;
1125     target)
1126       $echo "$modename: you must specify a target with \`-o'" 1>&2
1127       exit $EXIT_FAILURE
1128       ;;
1129     *)
1130       # Get the name of the library object.
1131       [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
1132       ;;
1133     esac
1134
1135     # Recognize several different file suffixes.
1136     # If the user specifies -o file.o, it is replaced with file.lo
1137     xform='[cCFSifmso]'
1138     case $libobj in
1139     *.ada) xform=ada ;;
1140     *.adb) xform=adb ;;
1141     *.ads) xform=ads ;;
1142     *.asm) xform=asm ;;
1143     *.c++) xform=c++ ;;
1144     *.cc) xform=cc ;;
1145     *.ii) xform=ii ;;
1146     *.class) xform=class ;;
1147     *.cpp) xform=cpp ;;
1148     *.cxx) xform=cxx ;;
1149     *.[fF][09]?) xform=[fF][09]. ;;
1150     *.for) xform=for ;;
1151     *.java) xform=java ;;
1152     *.obj) xform=obj ;;
1153     *.sx) xform=sx ;;
1154     esac
1155
1156     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
1157
1158     case $libobj in
1159     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
1160     *)
1161       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
1162       exit $EXIT_FAILURE
1163       ;;
1164     esac
1165
1166     func_infer_tag $base_compile
1167
1168     for arg in $later; do
1169       case $arg in
1170       -static)
1171         build_old_libs=yes
1172         continue
1173         ;;
1174
1175       -prefer-pic)
1176         pic_mode=yes
1177         continue
1178         ;;
1179
1180       -prefer-non-pic)
1181         pic_mode=no
1182         continue
1183         ;;
1184       esac
1185     done
1186
1187     qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
1188     case $qlibobj in
1189       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1190         qlibobj="\"$qlibobj\"" ;;
1191     esac
1192     test "X$libobj" != "X$qlibobj" \
1193         && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"'  &()|`$[]' \
1194         && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
1195     objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
1196     xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
1197     if test "X$xdir" = "X$obj"; then
1198       xdir=
1199     else
1200       xdir=$xdir/
1201     fi
1202     lobj=${xdir}$objdir/$objname
1203
1204     if test -z "$base_compile"; then
1205       $echo "$modename: you must specify a compilation command" 1>&2
1206       $echo "$help" 1>&2
1207       exit $EXIT_FAILURE
1208     fi
1209
1210     # Delete any leftover library objects.
1211     if test "$build_old_libs" = yes; then
1212       removelist="$obj $lobj $libobj ${libobj}T"
1213     else
1214       removelist="$lobj $libobj ${libobj}T"
1215     fi
1216
1217     $run $rm $removelist
1218     trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
1219
1220     # On Cygwin there's no "real" PIC flag so we must build both object types
1221     case $host_os in
1222     cygwin* | mingw* | pw32* | os2*)
1223       pic_mode=default
1224       ;;
1225     esac
1226     if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
1227       # non-PIC code in shared libraries is not supported
1228       pic_mode=default
1229     fi
1230
1231     # Calculate the filename of the output object if compiler does
1232     # not support -o with -c
1233     if test "$compiler_c_o" = no; then
1234       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
1235       lockfile="$output_obj.lock"
1236       removelist="$removelist $output_obj $lockfile"
1237       trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
1238     else
1239       output_obj=
1240       need_locks=no
1241       lockfile=
1242     fi
1243
1244     # Lock this critical section if it is needed
1245     # We use this script file to make the link, it avoids creating a new file
1246     if test "$need_locks" = yes; then
1247       until $run ln "$progpath" "$lockfile" 2>/dev/null; do
1248         $show "Waiting for $lockfile to be removed"
1249         sleep 2
1250       done
1251     elif test "$need_locks" = warn; then
1252       if test -f "$lockfile"; then
1253         $echo "\
1254 *** ERROR, $lockfile exists and contains:
1255 `cat $lockfile 2>/dev/null`
1256
1257 This indicates that another process is trying to use the same
1258 temporary object file, and libtool could not work around it because
1259 your compiler does not support \`-c' and \`-o' together.  If you
1260 repeat this compilation, it may succeed, by chance, but you had better
1261 avoid parallel builds (make -j) in this platform, or get a better
1262 compiler."
1263
1264         $run $rm $removelist
1265         exit $EXIT_FAILURE
1266       fi
1267       $echo "$srcfile" > "$lockfile"
1268     fi
1269
1270     if test -n "$fix_srcfile_path"; then
1271       eval srcfile=\"$fix_srcfile_path\"
1272     fi
1273     qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
1274     case $qsrcfile in
1275       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1276       qsrcfile="\"$qsrcfile\"" ;;
1277     esac
1278
1279     $run $rm "$libobj" "${libobj}T"
1280
1281     # Create a libtool object file (analogous to a ".la" file),
1282     # but don't create it if we're doing a dry run.
1283     test -z "$run" && cat > ${libobj}T <<EOF
1284 # $libobj - a libtool object file
1285 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
1286 #
1287 # Please DO NOT delete this file!
1288 # It is necessary for linking the library.
1289
1290 # Name of the PIC object.
1291 EOF
1292
1293     # Only build a PIC object if we are building libtool libraries.
1294     if test "$build_libtool_libs" = yes; then
1295       # Without this assignment, base_compile gets emptied.
1296       fbsd_hideous_sh_bug=$base_compile
1297
1298       if test "$pic_mode" != no; then
1299         command="$base_compile $qsrcfile $pic_flag"
1300       else
1301         # Don't build PIC code
1302         command="$base_compile $qsrcfile"
1303       fi
1304
1305       if test ! -d "${xdir}$objdir"; then
1306         $show "$mkdir ${xdir}$objdir"
1307         $run $mkdir ${xdir}$objdir
1308         exit_status=$?
1309         if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
1310           exit $exit_status
1311         fi
1312       fi
1313
1314       if test -z "$output_obj"; then
1315         # Place PIC objects in $objdir
1316         command="$command -o $lobj"
1317       fi
1318
1319       $run $rm "$lobj" "$output_obj"
1320
1321       $show "$command"
1322       if $run eval $lt_env "$command"; then :
1323       else
1324         test -n "$output_obj" && $run $rm $removelist
1325         exit $EXIT_FAILURE
1326       fi
1327
1328       if test "$need_locks" = warn &&
1329          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1330         $echo "\
1331 *** ERROR, $lockfile contains:
1332 `cat $lockfile 2>/dev/null`
1333
1334 but it should contain:
1335 $srcfile
1336
1337 This indicates that another process is trying to use the same
1338 temporary object file, and libtool could not work around it because
1339 your compiler does not support \`-c' and \`-o' together.  If you
1340 repeat this compilation, it may succeed, by chance, but you had better
1341 avoid parallel builds (make -j) in this platform, or get a better
1342 compiler."
1343
1344         $run $rm $removelist
1345         exit $EXIT_FAILURE
1346       fi
1347
1348       # Just move the object if needed, then go on to compile the next one
1349       if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
1350         $show "$mv $output_obj $lobj"
1351         if $run $mv $output_obj $lobj; then :
1352         else
1353           error=$?
1354           $run $rm $removelist
1355           exit $error
1356         fi
1357       fi
1358
1359       # Append the name of the PIC object to the libtool object file.
1360       test -z "$run" && cat >> ${libobj}T <<EOF
1361 pic_object='$objdir/$objname'
1362
1363 EOF
1364
1365       # Allow error messages only from the first compilation.
1366       if test "$suppress_opt" = yes; then
1367         suppress_output=' >/dev/null 2>&1'
1368       fi
1369     else
1370       # No PIC object so indicate it doesn't exist in the libtool
1371       # object file.
1372       test -z "$run" && cat >> ${libobj}T <<EOF
1373 pic_object=none
1374
1375 EOF
1376     fi
1377
1378     # Only build a position-dependent object if we build old libraries.
1379     if test "$build_old_libs" = yes; then
1380       if test "$pic_mode" != yes; then
1381         # Don't build PIC code
1382         command="$base_compile $qsrcfile"
1383       else
1384         command="$base_compile $qsrcfile $pic_flag"
1385       fi
1386       if test "$compiler_c_o" = yes; then
1387         command="$command -o $obj"
1388       fi
1389
1390       # Suppress compiler output if we already did a PIC compilation.
1391       command="$command$suppress_output"
1392       $run $rm "$obj" "$output_obj"
1393       $show "$command"
1394       if $run eval $lt_env "$command"; then :
1395       else
1396         $run $rm $removelist
1397         exit $EXIT_FAILURE
1398       fi
1399
1400       if test "$need_locks" = warn &&
1401          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1402         $echo "\
1403 *** ERROR, $lockfile contains:
1404 `cat $lockfile 2>/dev/null`
1405
1406 but it should contain:
1407 $srcfile
1408
1409 This indicates that another process is trying to use the same
1410 temporary object file, and libtool could not work around it because
1411 your compiler does not support \`-c' and \`-o' together.  If you
1412 repeat this compilation, it may succeed, by chance, but you had better
1413 avoid parallel builds (make -j) in this platform, or get a better
1414 compiler."
1415
1416         $run $rm $removelist
1417         exit $EXIT_FAILURE
1418       fi
1419
1420       # Just move the object if needed
1421       if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1422         $show "$mv $output_obj $obj"
1423         if $run $mv $output_obj $obj; then :
1424         else
1425           error=$?
1426           $run $rm $removelist
1427           exit $error
1428         fi
1429       fi
1430
1431       # Append the name of the non-PIC object the libtool object file.
1432       # Only append if the libtool object file exists.
1433       test -z "$run" && cat >> ${libobj}T <<EOF
1434 # Name of the non-PIC object.
1435 non_pic_object='$objname'
1436
1437 EOF
1438     else
1439       # Append the name of the non-PIC object the libtool object file.
1440       # Only append if the libtool object file exists.
1441       test -z "$run" && cat >> ${libobj}T <<EOF
1442 # Name of the non-PIC object.
1443 non_pic_object=none
1444
1445 EOF
1446     fi
1447
1448     $run $mv "${libobj}T" "${libobj}"
1449
1450     # Unlock the critical section if it was locked
1451     if test "$need_locks" != no; then
1452       $run $rm "$lockfile"
1453     fi
1454
1455     exit $EXIT_SUCCESS
1456     ;;
1457
1458   # libtool link mode
1459   link | relink)
1460     modename="$modename: link"
1461     case $host in
1462     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1463       # It is impossible to link a dll without this setting, and
1464       # we shouldn't force the makefile maintainer to figure out
1465       # which system we are compiling for in order to pass an extra
1466       # flag for every libtool invocation.
1467       # allow_undefined=no
1468
1469       # FIXME: Unfortunately, there are problems with the above when trying
1470       # to make a dll which has undefined symbols, in which case not
1471       # even a static library is built.  For now, we need to specify
1472       # -no-undefined on the libtool link line when we can be certain
1473       # that all symbols are satisfied, otherwise we get a static library.
1474       allow_undefined=yes
1475       ;;
1476     *)
1477       allow_undefined=yes
1478       ;;
1479     esac
1480     libtool_args="$nonopt"
1481     base_compile="$nonopt $@"
1482     compile_command="$nonopt"
1483     finalize_command="$nonopt"
1484
1485     compile_rpath=
1486     finalize_rpath=
1487     compile_shlibpath=
1488     finalize_shlibpath=
1489     convenience=
1490     old_convenience=
1491     deplibs=
1492     old_deplibs=
1493     compiler_flags=
1494     linker_flags=
1495     dllsearchpath=
1496     lib_search_path=`pwd`
1497     inst_prefix_dir=
1498
1499     avoid_version=no
1500     dlfiles=
1501     dlprefiles=
1502     dlself=no
1503     export_dynamic=no
1504     export_symbols=
1505     export_symbols_regex=
1506     generated=
1507     libobjs=
1508     ltlibs=
1509     module=no
1510     no_install=no
1511     objs=
1512     non_pic_objects=
1513     notinst_path= # paths that contain not-installed libtool libraries
1514     precious_files_regex=
1515     prefer_static_libs=no
1516     preload=no
1517     prev=
1518     prevarg=
1519     release=
1520     rpath=
1521     xrpath=
1522     perm_rpath=
1523     temp_rpath=
1524     thread_safe=no
1525     vinfo=
1526     vinfo_number=no
1527     single_module="${wl}-single_module"
1528
1529     func_infer_tag $base_compile
1530
1531     # We need to know -static, to get the right output filenames.
1532     for arg
1533     do
1534       case $arg in
1535       -all-static | -static | -static-libtool-libs)
1536         case $arg in
1537         -all-static)
1538           if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1539             $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1540           fi
1541           if test -n "$link_static_flag"; then
1542             dlopen_self=$dlopen_self_static
1543           fi
1544           prefer_static_libs=yes
1545           ;;
1546         -static)
1547           if test -z "$pic_flag" && test -n "$link_static_flag"; then
1548             dlopen_self=$dlopen_self_static
1549           fi
1550           prefer_static_libs=built
1551           ;;
1552         -static-libtool-libs)
1553           if test -z "$pic_flag" && test -n "$link_static_flag"; then
1554             dlopen_self=$dlopen_self_static
1555           fi
1556           prefer_static_libs=yes
1557           ;;
1558         esac
1559         build_libtool_libs=no
1560         build_old_libs=yes
1561         break
1562         ;;
1563       esac
1564     done
1565
1566     # See if our shared archives depend on static archives.
1567     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1568
1569     # Go through the arguments, transforming them on the way.
1570     while test "$#" -gt 0; do
1571       arg="$1"
1572       shift
1573       case $arg in
1574       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1575         qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1576         ;;
1577       *) qarg=$arg ;;
1578       esac
1579       libtool_args="$libtool_args $qarg"
1580
1581       # If the previous option needs an argument, assign it.
1582       if test -n "$prev"; then
1583         case $prev in
1584         output)
1585           compile_command="$compile_command @OUTPUT@"
1586           finalize_command="$finalize_command @OUTPUT@"
1587           ;;
1588         esac
1589
1590         case $prev in
1591         dlfiles|dlprefiles)
1592           if test "$preload" = no; then
1593             # Add the symbol object into the linking commands.
1594             compile_command="$compile_command @SYMFILE@"
1595             finalize_command="$finalize_command @SYMFILE@"
1596             preload=yes
1597           fi
1598           case $arg in
1599           *.la | *.lo) ;;  # We handle these cases below.
1600           force)
1601             if test "$dlself" = no; then
1602               dlself=needless
1603               export_dynamic=yes
1604             fi
1605             prev=
1606             continue
1607             ;;
1608           self)
1609             if test "$prev" = dlprefiles; then
1610               dlself=yes
1611             elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1612               dlself=yes
1613             else
1614               dlself=needless
1615               export_dynamic=yes
1616             fi
1617             prev=
1618             continue
1619             ;;
1620           *)
1621             if test "$prev" = dlfiles; then
1622               dlfiles="$dlfiles $arg"
1623             else
1624               dlprefiles="$dlprefiles $arg"
1625             fi
1626             prev=
1627             continue
1628             ;;
1629           esac
1630           ;;
1631         expsyms)
1632           export_symbols="$arg"
1633           if test ! -f "$arg"; then
1634             $echo "$modename: symbol file \`$arg' does not exist"
1635             exit $EXIT_FAILURE
1636           fi
1637           prev=
1638           continue
1639           ;;
1640         expsyms_regex)
1641           export_symbols_regex="$arg"
1642           prev=
1643           continue
1644           ;;
1645         inst_prefix)
1646           inst_prefix_dir="$arg"
1647           prev=
1648           continue
1649           ;;
1650         precious_regex)
1651           precious_files_regex="$arg"
1652           prev=
1653           continue
1654           ;;
1655         release)
1656           release="-$arg"
1657           prev=
1658           continue
1659           ;;
1660         objectlist)
1661           if test -f "$arg"; then
1662             save_arg=$arg
1663             moreargs=
1664             for fil in `cat $save_arg`
1665             do
1666 #             moreargs="$moreargs $fil"
1667               arg=$fil
1668               # A libtool-controlled object.
1669
1670               # Check to see that this really is a libtool object.
1671               if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1672                 pic_object=
1673                 non_pic_object=
1674
1675                 # Read the .lo file
1676                 # If there is no directory component, then add one.
1677                 case $arg in
1678                 */* | *\\*) . $arg ;;
1679                 *) . ./$arg ;;
1680                 esac
1681
1682                 if test -z "$pic_object" || \
1683                    test -z "$non_pic_object" ||
1684                    test "$pic_object" = none && \
1685                    test "$non_pic_object" = none; then
1686                   $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1687                   exit $EXIT_FAILURE
1688                 fi
1689
1690                 # Extract subdirectory from the argument.
1691                 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1692                 if test "X$xdir" = "X$arg"; then
1693                   xdir=
1694                 else
1695                   xdir="$xdir/"
1696                 fi
1697
1698                 if test "$pic_object" != none; then
1699                   # Prepend the subdirectory the object is found in.
1700                   pic_object="$xdir$pic_object"
1701
1702                   if test "$prev" = dlfiles; then
1703                     if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1704                       dlfiles="$dlfiles $pic_object"
1705                       prev=
1706                       continue
1707                     else
1708                       # If libtool objects are unsupported, then we need to preload.
1709                       prev=dlprefiles
1710                     fi
1711                   fi
1712
1713                   # CHECK ME:  I think I busted this.  -Ossama
1714                   if test "$prev" = dlprefiles; then
1715                     # Preload the old-style object.
1716                     dlprefiles="$dlprefiles $pic_object"
1717                     prev=
1718                   fi
1719
1720                   # A PIC object.
1721                   libobjs="$libobjs $pic_object"
1722                   arg="$pic_object"
1723                 fi
1724
1725                 # Non-PIC object.
1726                 if test "$non_pic_object" != none; then
1727                   # Prepend the subdirectory the object is found in.
1728                   non_pic_object="$xdir$non_pic_object"
1729
1730                   # A standard non-PIC object
1731                   non_pic_objects="$non_pic_objects $non_pic_object"
1732                   if test -z "$pic_object" || test "$pic_object" = none ; then
1733                     arg="$non_pic_object"
1734                   fi
1735                 else
1736                   # If the PIC object exists, use it instead.
1737                   # $xdir was prepended to $pic_object above.
1738                   non_pic_object="$pic_object"
1739                   non_pic_objects="$non_pic_objects $non_pic_object"
1740                 fi
1741               else
1742                 # Only an error if not doing a dry-run.
1743                 if test -z "$run"; then
1744                   $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1745                   exit $EXIT_FAILURE
1746                 else
1747                   # Dry-run case.
1748
1749                   # Extract subdirectory from the argument.
1750                   xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1751                   if test "X$xdir" = "X$arg"; then
1752                     xdir=
1753                   else
1754                     xdir="$xdir/"
1755                   fi
1756
1757                   pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1758                   non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1759                   libobjs="$libobjs $pic_object"
1760                   non_pic_objects="$non_pic_objects $non_pic_object"
1761                 fi
1762               fi
1763             done
1764           else
1765             $echo "$modename: link input file \`$save_arg' does not exist"
1766             exit $EXIT_FAILURE
1767           fi
1768           arg=$save_arg
1769           prev=
1770           continue
1771           ;;
1772         rpath | xrpath)
1773           # We need an absolute path.
1774           case $arg in
1775           [\\/]* | [A-Za-z]:[\\/]*) ;;
1776           *)
1777             $echo "$modename: only absolute run-paths are allowed" 1>&2
1778             exit $EXIT_FAILURE
1779             ;;
1780           esac
1781           if test "$prev" = rpath; then
1782             case "$rpath " in
1783             *" $arg "*) ;;
1784             *) rpath="$rpath $arg" ;;
1785             esac
1786           else
1787             case "$xrpath " in
1788             *" $arg "*) ;;
1789             *) xrpath="$xrpath $arg" ;;
1790             esac
1791           fi
1792           prev=
1793           continue
1794           ;;
1795         xcompiler)
1796           compiler_flags="$compiler_flags $qarg"
1797           prev=
1798           compile_command="$compile_command $qarg"
1799           finalize_command="$finalize_command $qarg"
1800           continue
1801           ;;
1802         xlinker)
1803           linker_flags="$linker_flags $qarg"
1804           compiler_flags="$compiler_flags $wl$qarg"
1805           prev=
1806           compile_command="$compile_command $wl$qarg"
1807           finalize_command="$finalize_command $wl$qarg"
1808           continue
1809           ;;
1810         xcclinker)
1811           linker_flags="$linker_flags $qarg"
1812           compiler_flags="$compiler_flags $qarg"
1813           prev=
1814           compile_command="$compile_command $qarg"
1815           finalize_command="$finalize_command $qarg"
1816           continue
1817           ;;
1818         shrext)
1819           shrext_cmds="$arg"
1820           prev=
1821           continue
1822           ;;
1823         darwin_framework|darwin_framework_skip)
1824           test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1825           compile_command="$compile_command $arg"
1826           finalize_command="$finalize_command $arg"
1827           prev=
1828           continue
1829           ;;
1830         *)
1831           eval "$prev=\"\$arg\""
1832           prev=
1833           continue
1834           ;;
1835         esac
1836       fi # test -n "$prev"
1837
1838       prevarg="$arg"
1839
1840       case $arg in
1841       -all-static)
1842         if test -n "$link_static_flag"; then
1843           compile_command="$compile_command $link_static_flag"
1844           finalize_command="$finalize_command $link_static_flag"
1845         fi
1846         continue
1847         ;;
1848
1849       -allow-undefined)
1850         # FIXME: remove this flag sometime in the future.
1851         $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1852         continue
1853         ;;
1854
1855       -avoid-version)
1856         avoid_version=yes
1857         continue
1858         ;;
1859
1860       -dlopen)
1861         prev=dlfiles
1862         continue
1863         ;;
1864
1865       -dlpreopen)
1866         prev=dlprefiles
1867         continue
1868         ;;
1869
1870       -export-dynamic)
1871         export_dynamic=yes
1872         continue
1873         ;;
1874
1875       -export-symbols | -export-symbols-regex)
1876         if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1877           $echo "$modename: more than one -exported-symbols argument is not allowed"
1878           exit $EXIT_FAILURE
1879         fi
1880         if test "X$arg" = "X-export-symbols"; then
1881           prev=expsyms
1882         else
1883           prev=expsyms_regex
1884         fi
1885         continue
1886         ;;
1887
1888       -framework|-arch|-isysroot)
1889         case " $CC " in
1890           *" ${arg} ${1} "* | *" ${arg} ${1} "*) 
1891                 prev=darwin_framework_skip ;;
1892           *) compiler_flags="$compiler_flags $arg"
1893              prev=darwin_framework ;;
1894         esac
1895         compile_command="$compile_command $arg"
1896         finalize_command="$finalize_command $arg"
1897         continue
1898         ;;
1899
1900       -inst-prefix-dir)
1901         prev=inst_prefix
1902         continue
1903         ;;
1904
1905       # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1906       # so, if we see these flags be careful not to treat them like -L
1907       -L[A-Z][A-Z]*:*)
1908         case $with_gcc/$host in
1909         no/*-*-irix* | /*-*-irix*)
1910           compile_command="$compile_command $arg"
1911           finalize_command="$finalize_command $arg"
1912           ;;
1913         esac
1914         continue
1915         ;;
1916
1917       -L*)
1918         dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1919         # We need an absolute path.
1920         case $dir in
1921         [\\/]* | [A-Za-z]:[\\/]*) ;;
1922         *)
1923           absdir=`cd "$dir" && pwd`
1924           if test -z "$absdir"; then
1925             $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1926             absdir="$dir"
1927             notinst_path="$notinst_path $dir"
1928           fi
1929           dir="$absdir"
1930           ;;
1931         esac
1932         case "$deplibs " in
1933         *" -L$dir "*) ;;
1934         *)
1935           deplibs="$deplibs -L$dir"
1936           lib_search_path="$lib_search_path $dir"
1937           ;;
1938         esac
1939         case $host in
1940         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1941           testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1942           case :$dllsearchpath: in
1943           *":$dir:"*) ;;
1944           *) dllsearchpath="$dllsearchpath:$dir";;
1945           esac
1946           case :$dllsearchpath: in
1947           *":$testbindir:"*) ;;
1948           *) dllsearchpath="$dllsearchpath:$testbindir";;
1949           esac
1950           ;;
1951         esac
1952         continue
1953         ;;
1954
1955       -l*)
1956         if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1957           case $host in
1958           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1959             # These systems don't actually have a C or math library (as such)
1960             continue
1961             ;;
1962           *-*-os2*)
1963             # These systems don't actually have a C library (as such)
1964             test "X$arg" = "X-lc" && continue
1965             ;;
1966           *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1967             # Do not include libc due to us having libc/libc_r.
1968             test "X$arg" = "X-lc" && continue
1969             ;;
1970           *-*-rhapsody* | *-*-darwin1.[012])
1971             # Rhapsody C and math libraries are in the System framework
1972             deplibs="$deplibs -framework System"
1973             continue
1974             ;;
1975           *-*-sco3.2v5* | *-*-sco5v6*)
1976             # Causes problems with __ctype
1977             test "X$arg" = "X-lc" && continue
1978             ;;
1979           *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1980             # Compiler inserts libc in the correct place for threads to work
1981             test "X$arg" = "X-lc" && continue
1982             ;;
1983           esac
1984         elif test "X$arg" = "X-lc_r"; then
1985          case $host in
1986          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1987            # Do not include libc_r directly, use -pthread flag.
1988            continue
1989            ;;
1990          esac
1991         fi
1992         deplibs="$deplibs $arg"
1993         continue
1994         ;;
1995
1996       # Tru64 UNIX uses -model [arg] to determine the layout of C++
1997       # classes, name mangling, and exception handling.
1998       -model)
1999         compile_command="$compile_command $arg"
2000         compiler_flags="$compiler_flags $arg"
2001         finalize_command="$finalize_command $arg"
2002         prev=xcompiler
2003         continue
2004         ;;
2005
2006      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2007         compiler_flags="$compiler_flags $arg"
2008         compile_command="$compile_command $arg"
2009         finalize_command="$finalize_command $arg"
2010         continue
2011         ;;
2012
2013       -multi_module)
2014         single_module="${wl}-multi_module"
2015         continue
2016         ;;
2017
2018       -module)
2019         module=yes
2020         continue
2021         ;;
2022
2023       # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
2024       # -r[0-9][0-9]* specifies the processor on the SGI compiler
2025       # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
2026       # +DA*, +DD* enable 64-bit mode on the HP compiler
2027       # -q* pass through compiler args for the IBM compiler
2028       # -m* pass through architecture-specific compiler args for GCC
2029       # -m*, -t[45]*, -txscale* pass through architecture-specific
2030       # compiler args for GCC
2031       # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
2032       # -F/path gives path to uninstalled frameworks, gcc on darwin
2033       # @file GCC response files
2034       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
2035       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
2036
2037         # Unknown arguments in both finalize_command and compile_command need
2038         # to be aesthetically quoted because they are evaled later.
2039         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2040         case $arg in
2041         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
2042           arg="\"$arg\""
2043           ;;
2044         esac
2045         compile_command="$compile_command $arg"
2046         finalize_command="$finalize_command $arg"
2047         compiler_flags="$compiler_flags $arg"
2048         continue
2049         ;;
2050
2051       -shrext)
2052         prev=shrext
2053         continue
2054         ;;
2055
2056       -no-fast-install)
2057         fast_install=no
2058         continue
2059         ;;
2060
2061       -no-install)
2062         case $host in
2063         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
2064           # The PATH hackery in wrapper scripts is required on Windows
2065           # and Darwin in order for the loader to find any dlls it needs.
2066           $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
2067           $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
2068           fast_install=no
2069           ;;
2070         *) no_install=yes ;;
2071         esac
2072         continue
2073         ;;
2074
2075       -no-undefined)
2076         allow_undefined=no
2077         continue
2078         ;;
2079
2080       -objectlist)
2081         prev=objectlist
2082         continue
2083         ;;
2084
2085       -o) prev=output ;;
2086
2087       -precious-files-regex)
2088         prev=precious_regex
2089         continue
2090         ;;
2091
2092       -release)
2093         prev=release
2094         continue
2095         ;;
2096
2097       -rpath)
2098         prev=rpath
2099         continue
2100         ;;
2101
2102       -R)
2103         prev=xrpath
2104         continue
2105         ;;
2106
2107       -R*)
2108         dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
2109         # We need an absolute path.
2110         case $dir in
2111         [\\/]* | [A-Za-z]:[\\/]*) ;;
2112         *)
2113           $echo "$modename: only absolute run-paths are allowed" 1>&2
2114           exit $EXIT_FAILURE
2115           ;;
2116         esac
2117         case "$xrpath " in
2118         *" $dir "*) ;;
2119         *) xrpath="$xrpath $dir" ;;
2120         esac
2121         continue
2122         ;;
2123
2124       -static | -static-libtool-libs)
2125         # The effects of -static are defined in a previous loop.
2126         # We used to do the same as -all-static on platforms that
2127         # didn't have a PIC flag, but the assumption that the effects
2128         # would be equivalent was wrong.  It would break on at least
2129         # Digital Unix and AIX.
2130         continue
2131         ;;
2132
2133       -thread-safe)
2134         thread_safe=yes
2135         continue
2136         ;;
2137
2138       -version-info)
2139         prev=vinfo
2140         continue
2141         ;;
2142       -version-number)
2143         prev=vinfo
2144         vinfo_number=yes
2145         continue
2146         ;;
2147
2148       -Wc,*)
2149         args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
2150         arg=
2151         save_ifs="$IFS"; IFS=','
2152         for flag in $args; do
2153           IFS="$save_ifs"
2154           case $flag in
2155             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
2156             flag="\"$flag\""
2157             ;;
2158           esac
2159           arg="$arg $wl$flag"
2160           compiler_flags="$compiler_flags $flag"
2161         done
2162         IFS="$save_ifs"
2163         arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
2164         ;;
2165
2166       -Wl,*)
2167         args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
2168         arg=
2169         save_ifs="$IFS"; IFS=','
2170         for flag in $args; do
2171           IFS="$save_ifs"
2172           case $flag in
2173             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
2174             flag="\"$flag\""
2175             ;;
2176           esac
2177           arg="$arg $wl$flag"
2178           compiler_flags="$compiler_flags $wl$flag"
2179           linker_flags="$linker_flags $flag"
2180         done
2181         IFS="$save_ifs"
2182         arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
2183         ;;
2184
2185       -Xcompiler)
2186         prev=xcompiler
2187         continue
2188         ;;
2189
2190       -Xlinker)
2191         prev=xlinker
2192         continue
2193         ;;
2194
2195       -XCClinker)
2196         prev=xcclinker
2197         continue
2198         ;;
2199
2200       # Some other compiler flag.
2201       -* | +*)
2202         # Unknown arguments in both finalize_command and compile_command need
2203         # to be aesthetically quoted because they are evaled later.
2204         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2205         case $arg in
2206         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
2207           arg="\"$arg\""
2208           ;;
2209         esac
2210         ;;
2211
2212       *.$objext)
2213         # A standard object.
2214         objs="$objs $arg"
2215         ;;
2216
2217       *.lo)
2218         # A libtool-controlled object.
2219
2220         # Check to see that this really is a libtool object.
2221         if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2222           pic_object=
2223           non_pic_object=
2224
2225           # Read the .lo file
2226           # If there is no directory component, then add one.
2227           case $arg in
2228           */* | *\\*) . $arg ;;
2229           *) . ./$arg ;;
2230           esac
2231
2232           if test -z "$pic_object" || \
2233              test -z "$non_pic_object" ||
2234              test "$pic_object" = none && \
2235              test "$non_pic_object" = none; then
2236             $echo "$modename: cannot find name of object for \`$arg'" 1>&2
2237             exit $EXIT_FAILURE
2238           fi
2239
2240           # Extract subdirectory from the argument.
2241           xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
2242           if test "X$xdir" = "X$arg"; then
2243             xdir=
2244           else
2245             xdir="$xdir/"
2246           fi
2247
2248           if test "$pic_object" != none; then
2249             # Prepend the subdirectory the object is found in.
2250             pic_object="$xdir$pic_object"
2251
2252             if test "$prev" = dlfiles; then
2253               if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
2254                 dlfiles="$dlfiles $pic_object"
2255                 prev=
2256                 continue
2257               else
2258                 # If libtool objects are unsupported, then we need to preload.
2259                 prev=dlprefiles
2260               fi
2261             fi
2262
2263             # CHECK ME:  I think I busted this.  -Ossama
2264             if test "$prev" = dlprefiles; then
2265               # Preload the old-style object.
2266               dlprefiles="$dlprefiles $pic_object"
2267               prev=
2268             fi
2269
2270             # A PIC object.
2271             libobjs="$libobjs $pic_object"
2272             arg="$pic_object"
2273           fi
2274
2275           # Non-PIC object.
2276           if test "$non_pic_object" != none; then
2277             # Prepend the subdirectory the object is found in.
2278             non_pic_object="$xdir$non_pic_object"
2279
2280             # A standard non-PIC object
2281             non_pic_objects="$non_pic_objects $non_pic_object"
2282             if test -z "$pic_object" || test "$pic_object" = none ; then
2283               arg="$non_pic_object"
2284             fi
2285           else
2286             # If the PIC object exists, use it instead.
2287             # $xdir was prepended to $pic_object above.
2288             non_pic_object="$pic_object"
2289             non_pic_objects="$non_pic_objects $non_pic_object"
2290           fi
2291         else
2292           # Only an error if not doing a dry-run.
2293           if test -z "$run"; then
2294             $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
2295             exit $EXIT_FAILURE
2296           else
2297             # Dry-run case.
2298
2299             # Extract subdirectory from the argument.
2300             xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
2301             if test "X$xdir" = "X$arg"; then
2302               xdir=
2303             else
2304               xdir="$xdir/"
2305             fi
2306
2307             pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
2308             non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
2309             libobjs="$libobjs $pic_object"
2310             non_pic_objects="$non_pic_objects $non_pic_object"
2311           fi
2312         fi
2313         ;;
2314
2315       *.$libext)
2316         # An archive.
2317         deplibs="$deplibs $arg"
2318         old_deplibs="$old_deplibs $arg"
2319         continue
2320         ;;
2321
2322       *.la)
2323         # A libtool-controlled library.
2324
2325         if test "$prev" = dlfiles; then
2326           # This library was specified with -dlopen.
2327           dlfiles="$dlfiles $arg"
2328           prev=
2329         elif test "$prev" = dlprefiles; then
2330           # The library was specified with -dlpreopen.
2331           dlprefiles="$dlprefiles $arg"
2332           prev=
2333         else
2334           deplibs="$deplibs $arg"
2335         fi
2336         continue
2337         ;;
2338
2339       # Some other compiler argument.
2340       *)
2341         # Unknown arguments in both finalize_command and compile_command need
2342         # to be aesthetically quoted because they are evaled later.
2343         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2344         case $arg in
2345         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
2346           arg="\"$arg\""
2347           ;;
2348         esac
2349         ;;
2350       esac # arg
2351
2352       # Now actually substitute the argument into the commands.
2353       if test -n "$arg"; then
2354         compile_command="$compile_command $arg"
2355         finalize_command="$finalize_command $arg"
2356       fi
2357     done # argument parsing loop
2358
2359     if test -n "$prev"; then
2360       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
2361       $echo "$help" 1>&2
2362       exit $EXIT_FAILURE
2363     fi
2364
2365     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
2366       eval arg=\"$export_dynamic_flag_spec\"
2367       compile_command="$compile_command $arg"
2368       finalize_command="$finalize_command $arg"
2369     fi
2370
2371     oldlibs=
2372     # calculate the name of the file, without its directory
2373     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2374     libobjs_save="$libobjs"
2375
2376     if test -n "$shlibpath_var"; then
2377       # get the directories listed in $shlibpath_var
2378       eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2379     else
2380       shlib_search_path=
2381     fi
2382     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2383     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2384
2385     output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2386     if test "X$output_objdir" = "X$output"; then
2387       output_objdir="$objdir"
2388     else
2389       output_objdir="$output_objdir/$objdir"
2390     fi
2391     # Create the object directory.
2392     if test ! -d "$output_objdir"; then
2393       $show "$mkdir $output_objdir"
2394       $run $mkdir $output_objdir
2395       exit_status=$?
2396       if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
2397         exit $exit_status
2398       fi
2399     fi
2400
2401     # Determine the type of output
2402     case $output in
2403     "")
2404       $echo "$modename: you must specify an output file" 1>&2
2405       $echo "$help" 1>&2
2406       exit $EXIT_FAILURE
2407       ;;
2408     *.$libext) linkmode=oldlib ;;
2409     *.lo | *.$objext) linkmode=obj ;;
2410     *.la) linkmode=lib ;;
2411     *) linkmode=prog ;; # Anything else should be a program.
2412     esac
2413
2414     case $host in
2415     *cygwin* | *mingw* | *pw32*)
2416       # don't eliminate duplications in $postdeps and $predeps
2417       duplicate_compiler_generated_deps=yes
2418       ;;
2419     *)
2420       duplicate_compiler_generated_deps=$duplicate_deps
2421       ;;
2422     esac
2423     specialdeplibs=
2424
2425     libs=
2426     # Find all interdependent deplibs by searching for libraries
2427     # that are linked more than once (e.g. -la -lb -la)
2428     for deplib in $deplibs; do
2429       if test "X$duplicate_deps" = "Xyes" ; then
2430         case "$libs " in
2431         *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2432         esac
2433       fi
2434       libs="$libs $deplib"
2435     done
2436
2437     if test "$linkmode" = lib; then
2438       libs="$predeps $libs $compiler_lib_search_path $postdeps"
2439
2440       # Compute libraries that are listed more than once in $predeps
2441       # $postdeps and mark them as special (i.e., whose duplicates are
2442       # not to be eliminated).
2443       pre_post_deps=
2444       if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2445         for pre_post_dep in $predeps $postdeps; do
2446           case "$pre_post_deps " in
2447           *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2448           esac
2449           pre_post_deps="$pre_post_deps $pre_post_dep"
2450         done
2451       fi
2452       pre_post_deps=
2453     fi
2454
2455     deplibs=
2456     newdependency_libs=
2457     newlib_search_path=
2458     need_relink=no # whether we're linking any uninstalled libtool libraries
2459     notinst_deplibs= # not-installed libtool libraries
2460     case $linkmode in
2461     lib)
2462         passes="conv link"
2463         for file in $dlfiles $dlprefiles; do
2464           case $file in
2465           *.la) ;;
2466           *)
2467             $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2468             exit $EXIT_FAILURE
2469             ;;
2470           esac
2471         done
2472         ;;
2473     prog)
2474         compile_deplibs=
2475         finalize_deplibs=
2476         alldeplibs=no
2477         newdlfiles=
2478         newdlprefiles=
2479         passes="conv scan dlopen dlpreopen link"
2480         ;;
2481     *)  passes="conv"
2482         ;;
2483     esac
2484     for pass in $passes; do
2485       if test "$linkmode,$pass" = "lib,link" ||
2486          test "$linkmode,$pass" = "prog,scan"; then
2487         libs="$deplibs"
2488         deplibs=
2489       fi
2490       if test "$linkmode" = prog; then
2491         case $pass in
2492         dlopen) libs="$dlfiles" ;;
2493         dlpreopen) libs="$dlprefiles" ;;
2494         link)
2495           libs="$deplibs %DEPLIBS%"
2496           test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
2497           ;;
2498         esac
2499       fi
2500       if test "$pass" = dlopen; then
2501         # Collect dlpreopened libraries
2502         save_deplibs="$deplibs"
2503         deplibs=
2504       fi
2505       for deplib in $libs; do
2506         lib=
2507         found=no
2508         case $deplib in
2509         -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2510           if test "$linkmode,$pass" = "prog,link"; then
2511             compile_deplibs="$deplib $compile_deplibs"
2512             finalize_deplibs="$deplib $finalize_deplibs"
2513           else
2514             compiler_flags="$compiler_flags $deplib"
2515           fi
2516           continue
2517           ;;
2518         -l*)
2519           if test "$linkmode" != lib && test "$linkmode" != prog; then
2520             $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2521             continue
2522           fi
2523           name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2524           if test "$linkmode" = lib; then
2525             searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
2526           else
2527             searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
2528           fi
2529           for searchdir in $searchdirs; do
2530             for search_ext in .la $std_shrext .so .a; do
2531               # Search the libtool library
2532               lib="$searchdir/lib${name}${search_ext}"
2533               if test -f "$lib"; then
2534                 if test "$search_ext" = ".la"; then
2535                   found=yes
2536                 else
2537                   found=no
2538                 fi
2539                 break 2
2540               fi
2541             done
2542           done
2543           if test "$found" != yes; then
2544             # deplib doesn't seem to be a libtool library
2545             if test "$linkmode,$pass" = "prog,link"; then
2546               compile_deplibs="$deplib $compile_deplibs"
2547               finalize_deplibs="$deplib $finalize_deplibs"
2548             else
2549               deplibs="$deplib $deplibs"
2550               test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2551             fi
2552             continue
2553           else # deplib is a libtool library
2554             # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2555             # We need to do some special things here, and not later.
2556             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2557               case " $predeps $postdeps " in
2558               *" $deplib "*)
2559                 if (${SED} -e '2q' $lib |
2560                     grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2561                   library_names=
2562                   old_library=
2563                   case $lib in
2564                   */* | *\\*) . $lib ;;
2565                   *) . ./$lib ;;
2566                   esac
2567                   for l in $old_library $library_names; do
2568                     ll="$l"
2569                   done
2570                   if test "X$ll" = "X$old_library" ; then # only static version available
2571                     found=no
2572                     ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2573                     test "X$ladir" = "X$lib" && ladir="."
2574                     lib=$ladir/$old_library
2575                     if test "$linkmode,$pass" = "prog,link"; then
2576                       compile_deplibs="$deplib $compile_deplibs"
2577                       finalize_deplibs="$deplib $finalize_deplibs"
2578                     else
2579                       deplibs="$deplib $deplibs"
2580                       test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2581                     fi
2582                     continue
2583                   fi
2584                 fi
2585                 ;;
2586               *) ;;
2587               esac
2588             fi
2589           fi
2590           ;; # -l
2591         -L*)
2592           case $linkmode in
2593           lib)
2594             deplibs="$deplib $deplibs"
2595             test "$pass" = conv && continue
2596             newdependency_libs="$deplib $newdependency_libs"
2597             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2598             ;;
2599           prog)
2600             if test "$pass" = conv; then
2601               deplibs="$deplib $deplibs"
2602               continue
2603             fi
2604             if test "$pass" = scan; then
2605               deplibs="$deplib $deplibs"
2606             else
2607               compile_deplibs="$deplib $compile_deplibs"
2608               finalize_deplibs="$deplib $finalize_deplibs"
2609             fi
2610             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2611             ;;
2612           *)
2613             $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2614             ;;
2615           esac # linkmode
2616           continue
2617           ;; # -L
2618         -R*)
2619           if test "$pass" = link; then
2620             dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2621             # Make sure the xrpath contains only unique directories.
2622             case "$xrpath " in
2623             *" $dir "*) ;;
2624             *) xrpath="$xrpath $dir" ;;
2625             esac
2626           fi
2627           deplibs="$deplib $deplibs"
2628           continue
2629           ;;
2630         *.la) lib="$deplib" ;;
2631         *.$libext)
2632           if test "$pass" = conv; then
2633             deplibs="$deplib $deplibs"
2634             continue
2635           fi
2636           case $linkmode in
2637           lib)
2638             valid_a_lib=no
2639             case $deplibs_check_method in
2640               match_pattern*)
2641                 set dummy $deplibs_check_method
2642                 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2643                 if eval $echo \"$deplib\" 2>/dev/null \
2644                     | $SED 10q \
2645                     | $EGREP "$match_pattern_regex" > /dev/null; then
2646                   valid_a_lib=yes
2647                 fi
2648                 ;;
2649               pass_all)
2650                 valid_a_lib=yes
2651                 ;;
2652             esac
2653             if test "$valid_a_lib" != yes; then
2654               $echo
2655               $echo "*** Warning: Trying to link with static lib archive $deplib."
2656               $echo "*** I have the capability to make that library automatically link in when"
2657               $echo "*** you link to this library.  But I can only do this if you have a"
2658               $echo "*** shared version of the library, which you do not appear to have"
2659               $echo "*** because the file extensions .$libext of this argument makes me believe"
2660               $echo "*** that it is just a static archive that I should not used here."
2661             else
2662               $echo
2663               $echo "*** Warning: Linking the shared library $output against the"
2664               $echo "*** static library $deplib is not portable!"
2665               deplibs="$deplib $deplibs"
2666             fi
2667             continue
2668             ;;
2669           prog)
2670             if test "$pass" != link; then
2671               deplibs="$deplib $deplibs"
2672             else
2673               compile_deplibs="$deplib $compile_deplibs"
2674               finalize_deplibs="$deplib $finalize_deplibs"
2675             fi
2676             continue
2677             ;;
2678           esac # linkmode
2679           ;; # *.$libext
2680         *.lo | *.$objext)
2681           if test "$pass" = conv; then
2682             deplibs="$deplib $deplibs"
2683           elif test "$linkmode" = prog; then
2684             if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2685               # If there is no dlopen support or we're linking statically,
2686               # we need to preload.
2687               newdlprefiles="$newdlprefiles $deplib"
2688               compile_deplibs="$deplib $compile_deplibs"
2689               finalize_deplibs="$deplib $finalize_deplibs"
2690             else
2691               newdlfiles="$newdlfiles $deplib"
2692             fi
2693           fi
2694           continue
2695           ;;
2696         %DEPLIBS%)
2697           alldeplibs=yes
2698           continue
2699           ;;
2700         esac # case $deplib
2701         if test "$found" = yes || test -f "$lib"; then :
2702         else
2703           $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2704           exit $EXIT_FAILURE
2705         fi
2706
2707         # Check to see that this really is a libtool archive.
2708         if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2709         else
2710           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2711           exit $EXIT_FAILURE
2712         fi
2713
2714         ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2715         test "X$ladir" = "X$lib" && ladir="."
2716
2717         dlname=
2718         dlopen=
2719         dlpreopen=
2720         libdir=
2721         library_names=
2722         old_library=
2723         # If the library was installed with an old release of libtool,
2724         # it will not redefine variables installed, or shouldnotlink
2725         installed=yes
2726         shouldnotlink=no
2727         avoidtemprpath=
2728
2729
2730         # Read the .la file
2731         case $lib in
2732         */* | *\\*) . $lib ;;
2733         *) . ./$lib ;;
2734         esac
2735
2736         if test "$linkmode,$pass" = "lib,link" ||
2737            test "$linkmode,$pass" = "prog,scan" ||
2738            { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2739           test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2740           test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2741         fi
2742
2743         if test "$pass" = conv; then
2744           # Only check for convenience libraries
2745           deplibs="$lib $deplibs"
2746           if test -z "$libdir"; then
2747             if test -z "$old_library"; then
2748               $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2749               exit $EXIT_FAILURE
2750             fi
2751             # It is a libtool convenience library, so add in its objects.
2752             convenience="$convenience $ladir/$objdir/$old_library"
2753             old_convenience="$old_convenience $ladir/$objdir/$old_library"
2754             tmp_libs=
2755             for deplib in $dependency_libs; do
2756               deplibs="$deplib $deplibs"
2757               if test "X$duplicate_deps" = "Xyes" ; then
2758                 case "$tmp_libs " in
2759                 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2760                 esac
2761               fi
2762               tmp_libs="$tmp_libs $deplib"
2763             done
2764           elif test "$linkmode" != prog && test "$linkmode" != lib; then
2765             $echo "$modename: \`$lib' is not a convenience library" 1>&2
2766             exit $EXIT_FAILURE
2767           fi
2768           continue
2769         fi # $pass = conv
2770
2771
2772         # Get the name of the library we link against.
2773         linklib=
2774         for l in $old_library $library_names; do
2775           linklib="$l"
2776         done
2777         if test -z "$linklib"; then
2778           $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2779           exit $EXIT_FAILURE
2780         fi
2781
2782         # This library was specified with -dlopen.
2783         if test "$pass" = dlopen; then
2784           if test -z "$libdir"; then
2785             $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2786             exit $EXIT_FAILURE
2787           fi
2788           if test -z "$dlname" ||
2789              test "$dlopen_support" != yes ||
2790              test "$build_libtool_libs" = no; then
2791             # If there is no dlname, no dlopen support or we're linking
2792             # statically, we need to preload.  We also need to preload any
2793             # dependent libraries so libltdl's deplib preloader doesn't
2794             # bomb out in the load deplibs phase.
2795             dlprefiles="$dlprefiles $lib $dependency_libs"
2796           else
2797             newdlfiles="$newdlfiles $lib"
2798           fi
2799           continue
2800         fi # $pass = dlopen
2801
2802         # We need an absolute path.
2803         case $ladir in
2804         [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2805         *)
2806           abs_ladir=`cd "$ladir" && pwd`
2807           if test -z "$abs_ladir"; then
2808             $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2809             $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2810             abs_ladir="$ladir"
2811           fi
2812           ;;
2813         esac
2814         laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2815
2816         # Find the relevant object directory and library name.
2817         if test "X$installed" = Xyes; then
2818           if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2819             $echo "$modename: warning: library \`$lib' was moved." 1>&2
2820             dir="$ladir"
2821             absdir="$abs_ladir"
2822             libdir="$abs_ladir"
2823           else
2824             dir="$libdir"
2825             absdir="$libdir"
2826           fi
2827           test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2828         else
2829           if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2830             dir="$ladir"
2831             absdir="$abs_ladir"
2832             # Remove this search path later
2833             notinst_path="$notinst_path $abs_ladir"
2834           else
2835             dir="$ladir/$objdir"
2836             absdir="$abs_ladir/$objdir"
2837             # Remove this search path later
2838             notinst_path="$notinst_path $abs_ladir"
2839           fi
2840         fi # $installed = yes
2841         name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2842
2843         # This library was specified with -dlpreopen.
2844         if test "$pass" = dlpreopen; then
2845           if test -z "$libdir"; then
2846             $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2847             exit $EXIT_FAILURE
2848           fi
2849           # Prefer using a static library (so that no silly _DYNAMIC symbols
2850           # are required to link).
2851           if test -n "$old_library"; then
2852             newdlprefiles="$newdlprefiles $dir/$old_library"
2853           # Otherwise, use the dlname, so that lt_dlopen finds it.
2854           elif test -n "$dlname"; then
2855             newdlprefiles="$newdlprefiles $dir/$dlname"
2856           else
2857             newdlprefiles="$newdlprefiles $dir/$linklib"
2858           fi
2859         fi # $pass = dlpreopen
2860
2861         if test -z "$libdir"; then
2862           # Link the convenience library
2863           if test "$linkmode" = lib; then
2864             deplibs="$dir/$old_library $deplibs"
2865           elif test "$linkmode,$pass" = "prog,link"; then
2866             compile_deplibs="$dir/$old_library $compile_deplibs"
2867             finalize_deplibs="$dir/$old_library $finalize_deplibs"
2868           else
2869             deplibs="$lib $deplibs" # used for prog,scan pass
2870           fi
2871           continue
2872         fi
2873
2874
2875         if test "$linkmode" = prog && test "$pass" != link; then
2876           newlib_search_path="$newlib_search_path $ladir"
2877           deplibs="$lib $deplibs"
2878
2879           linkalldeplibs=no
2880           if test "$link_all_deplibs" != no || test -z "$library_names" ||
2881              test "$build_libtool_libs" = no; then
2882             linkalldeplibs=yes
2883           fi
2884
2885           tmp_libs=
2886           for deplib in $dependency_libs; do
2887             case $deplib in
2888             -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2889             esac
2890             # Need to link against all dependency_libs?
2891             if test "$linkalldeplibs" = yes; then
2892               deplibs="$deplib $deplibs"
2893             else
2894               # Need to hardcode shared library paths
2895               # or/and link against static libraries
2896               newdependency_libs="$deplib $newdependency_libs"
2897             fi
2898             if test "X$duplicate_deps" = "Xyes" ; then
2899               case "$tmp_libs " in
2900               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2901               esac
2902             fi
2903             tmp_libs="$tmp_libs $deplib"
2904           done # for deplib
2905           continue
2906         fi # $linkmode = prog...
2907
2908         if test "$linkmode,$pass" = "prog,link"; then
2909           if test -n "$library_names" &&
2910              { { test "$prefer_static_libs" = no ||
2911                  test "$prefer_static_libs,$installed" = "built,yes"; } ||
2912                test -z "$old_library"; }; then
2913             # We need to hardcode the library path
2914             if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2915               # Make sure the rpath contains only unique directories.
2916               case "$temp_rpath " in
2917               *" $dir "*) ;;
2918               *" $absdir "*) ;;
2919               *) temp_rpath="$temp_rpath $absdir" ;;
2920               esac
2921             fi
2922
2923             # Hardcode the library path.
2924             # Skip directories that are in the system default run-time
2925             # search path.
2926             case " $sys_lib_dlsearch_path " in
2927             *" $absdir "*) ;;
2928             *)
2929               case "$compile_rpath " in
2930               *" $absdir "*) ;;
2931               *) compile_rpath="$compile_rpath $absdir"
2932               esac
2933               ;;
2934             esac
2935             case " $sys_lib_dlsearch_path " in
2936             *" $libdir "*) ;;
2937             *)
2938               case "$finalize_rpath " in
2939               *" $libdir "*) ;;
2940               *) finalize_rpath="$finalize_rpath $libdir"
2941               esac
2942               ;;
2943             esac
2944           fi # $linkmode,$pass = prog,link...
2945
2946           if test "$alldeplibs" = yes &&
2947              { test "$deplibs_check_method" = pass_all ||
2948                { test "$build_libtool_libs" = yes &&
2949                  test -n "$library_names"; }; }; then
2950             # We only need to search for static libraries
2951             continue
2952           fi
2953         fi
2954
2955         link_static=no # Whether the deplib will be linked statically
2956         use_static_libs=$prefer_static_libs
2957         if test "$use_static_libs" = built && test "$installed" = yes ; then
2958           use_static_libs=no
2959         fi
2960         if test -n "$library_names" &&
2961            { test "$use_static_libs" = no || test -z "$old_library"; }; then
2962           if test "$installed" = no; then
2963             notinst_deplibs="$notinst_deplibs $lib"
2964             need_relink=yes
2965           fi
2966           # This is a shared library
2967
2968           # Warn about portability, can't link against -module's on
2969           # some systems (darwin)
2970           if test "$shouldnotlink" = yes && test "$pass" = link ; then
2971             $echo
2972             if test "$linkmode" = prog; then
2973               $echo "*** Warning: Linking the executable $output against the loadable module"
2974             else
2975               $echo "*** Warning: Linking the shared library $output against the loadable module"
2976             fi
2977             $echo "*** $linklib is not portable!"
2978           fi
2979           if test "$linkmode" = lib &&
2980              test "$hardcode_into_libs" = yes; then
2981             # Hardcode the library path.
2982             # Skip directories that are in the system default run-time
2983             # search path.
2984             case " $sys_lib_dlsearch_path " in
2985             *" $absdir "*) ;;
2986             *)
2987               case "$compile_rpath " in
2988               *" $absdir "*) ;;
2989               *) compile_rpath="$compile_rpath $absdir"
2990               esac
2991               ;;
2992             esac
2993             case " $sys_lib_dlsearch_path " in
2994             *" $libdir "*) ;;
2995             *)
2996               case "$finalize_rpath " in
2997               *" $libdir "*) ;;
2998               *) finalize_rpath="$finalize_rpath $libdir"
2999               esac
3000               ;;
3001             esac
3002           fi
3003
3004           if test -n "$old_archive_from_expsyms_cmds"; then
3005             # figure out the soname
3006             set dummy $library_names
3007             realname="$2"
3008             shift; shift
3009             libname=`eval \\$echo \"$libname_spec\"`
3010             # use dlname if we got it. it's perfectly good, no?
3011             if test -n "$dlname"; then
3012               soname="$dlname"
3013             elif test -n "$soname_spec"; then
3014               # bleh windows
3015               case $host in
3016               *cygwin* | mingw*)
3017                 major=`expr $current - $age`
3018                 versuffix="-$major"
3019                 ;;
3020               esac
3021               eval soname=\"$soname_spec\"
3022             else
3023               soname="$realname"
3024             fi
3025
3026             # Make a new name for the extract_expsyms_cmds to use
3027             soroot="$soname"
3028             soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
3029             newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
3030
3031             # If the library has no export list, then create one now
3032             if test -f "$output_objdir/$soname-def"; then :
3033             else
3034               $show "extracting exported symbol list from \`$soname'"
3035               save_ifs="$IFS"; IFS='~'
3036               cmds=$extract_expsyms_cmds
3037               for cmd in $cmds; do
3038                 IFS="$save_ifs"
3039                 eval cmd=\"$cmd\"
3040                 $show "$cmd"
3041                 $run eval "$cmd" || exit $?
3042               done
3043               IFS="$save_ifs"
3044             fi
3045
3046             # Create $newlib
3047             if test -f "$output_objdir/$newlib"; then :; else
3048               $show "generating import library for \`$soname'"
3049               save_ifs="$IFS"; IFS='~'
3050               cmds=$old_archive_from_expsyms_cmds
3051               for cmd in $cmds; do
3052                 IFS="$save_ifs"
3053                 eval cmd=\"$cmd\"
3054                 $show "$cmd"
3055                 $run eval "$cmd" || exit $?
3056               done
3057               IFS="$save_ifs"
3058             fi
3059             # make sure the library variables are pointing to the new library
3060             dir=$output_objdir
3061             linklib=$newlib
3062           fi # test -n "$old_archive_from_expsyms_cmds"
3063
3064           if test "$linkmode" = prog || test "$mode" != relink; then
3065             add_shlibpath=
3066             add_dir=
3067             add=
3068             lib_linked=yes
3069             case $hardcode_action in
3070             immediate | unsupported)
3071               if test "$hardcode_direct" = no; then
3072                 add="$dir/$linklib"
3073                 case $host in
3074                   *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
3075                   *-*-sysv4*uw2*) add_dir="-L$dir" ;;
3076                   *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
3077                     *-*-unixware7*) add_dir="-L$dir" ;;
3078                   *-*-darwin* )
3079                     # if the lib is a module then we can not link against
3080                     # it, someone is ignoring the new warnings I added
3081                     if /usr/bin/file -L $add 2> /dev/null |
3082                       $EGREP ": [^:]* bundle" >/dev/null ; then
3083                       $echo "** Warning, lib $linklib is a module, not a shared library"
3084                       if test -z "$old_library" ; then
3085                         $echo
3086                         $echo "** And there doesn't seem to be a static archive available"
3087                         $echo "** The link will probably fail, sorry"
3088                       else
3089                         add="$dir/$old_library"
3090                       fi
3091                     fi
3092                 esac
3093               elif test "$hardcode_minus_L" = no; then
3094                 case $host in
3095                 *-*-sunos*) add_shlibpath="$dir" ;;
3096                 esac
3097                 add_dir="-L$dir"
3098                 add="-l$name"
3099               elif test "$hardcode_shlibpath_var" = no; then
3100                 add_shlibpath="$dir"
3101                 add="-l$name"
3102               else
3103                 lib_linked=no
3104               fi
3105               ;;
3106             relink)
3107               if test "$hardcode_direct" = yes; then
3108                 add="$dir/$linklib"
3109               elif test "$hardcode_minus_L" = yes; then
3110                 add_dir="-L$dir"
3111                 # Try looking first in the location we're being installed to.
3112                 if test -n "$inst_prefix_dir"; then
3113                   case $libdir in
3114                     [\\/]*)
3115                       add_dir="$add_dir -L$inst_prefix_dir$libdir"
3116                       ;;
3117                   esac
3118                 fi
3119                 add="-l$name"
3120               elif test "$hardcode_shlibpath_var" = yes; then
3121                 add_shlibpath="$dir"
3122                 add="-l$name"
3123               else
3124                 lib_linked=no
3125               fi
3126               ;;
3127             *) lib_linked=no ;;
3128             esac
3129
3130             if test "$lib_linked" != yes; then
3131               $echo "$modename: configuration error: unsupported hardcode properties"
3132               exit $EXIT_FAILURE
3133             fi
3134
3135             if test -n "$add_shlibpath"; then
3136               case :$compile_shlibpath: in
3137               *":$add_shlibpath:"*) ;;
3138               *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
3139               esac
3140             fi
3141             if test "$linkmode" = prog; then
3142               test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
3143               test -n "$add" && compile_deplibs="$add $compile_deplibs"
3144             else
3145               test -n "$add_dir" && deplibs="$add_dir $deplibs"
3146               test -n "$add" && deplibs="$add $deplibs"
3147               if test "$hardcode_direct" != yes && \
3148                  test "$hardcode_minus_L" != yes && \
3149                  test "$hardcode_shlibpath_var" = yes; then
3150                 case :$finalize_shlibpath: in
3151                 *":$libdir:"*) ;;
3152                 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
3153                 esac
3154               fi
3155             fi
3156           fi
3157
3158           if test "$linkmode" = prog || test "$mode" = relink; then
3159             add_shlibpath=
3160             add_dir=
3161             add=
3162             # Finalize command for both is simple: just hardcode it.
3163             if test "$hardcode_direct" = yes; then
3164               add="$libdir/$linklib"
3165             elif test "$hardcode_minus_L" = yes; then
3166               add_dir="-L$libdir"
3167               add="-l$name"
3168             elif test "$hardcode_shlibpath_var" = yes; then
3169               case :$finalize_shlibpath: in
3170               *":$libdir:"*) ;;
3171               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
3172               esac
3173               add="-l$name"
3174             elif test "$hardcode_automatic" = yes; then
3175               if test -n "$inst_prefix_dir" &&
3176                  test -f "$inst_prefix_dir$libdir/$linklib" ; then
3177                 add="$inst_prefix_dir$libdir/$linklib"
3178               else
3179                 add="$libdir/$linklib"
3180               fi
3181             else
3182               # We cannot seem to hardcode it, guess we'll fake it.
3183               add_dir="-L$libdir"
3184               # Try looking first in the location we're being installed to.
3185               if test -n "$inst_prefix_dir"; then
3186                 case $libdir in
3187                   [\\/]*)
3188                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
3189                     ;;
3190                 esac
3191               fi
3192               add="-l$name"
3193             fi
3194
3195             if test "$linkmode" = prog; then
3196               test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
3197               test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
3198             else
3199               test -n "$add_dir" && deplibs="$add_dir $deplibs"
3200               test -n "$add" && deplibs="$add $deplibs"
3201             fi
3202           fi
3203         elif test "$linkmode" = prog; then
3204           # Here we assume that one of hardcode_direct or hardcode_minus_L
3205           # is not unsupported.  This is valid on all known static and
3206           # shared platforms.
3207           if test "$hardcode_direct" != unsupported; then
3208             test -n "$old_library" && linklib="$old_library"
3209             compile_deplibs="$dir/$linklib $compile_deplibs"
3210             finalize_deplibs="$dir/$linklib $finalize_deplibs"
3211           else
3212             compile_deplibs="-l$name -L$dir $compile_deplibs"
3213             finalize_deplibs="-l$name -L$dir $finalize_deplibs"
3214           fi
3215         elif test "$build_libtool_libs" = yes; then
3216           # Not a shared library
3217           if test "$deplibs_check_method" != pass_all; then
3218             # We're trying link a shared library against a static one
3219             # but the system doesn't support it.
3220
3221             # Just print a warning and add the library to dependency_libs so
3222             # that the program can be linked against the static library.
3223             $echo
3224             $echo "*** Warning: This system can not link to static lib archive $lib."
3225             $echo "*** I have the capability to make that library automatically link in when"
3226             $echo "*** you link to this library.  But I can only do this if you have a"
3227             $echo "*** shared version of the library, which you do not appear to have."
3228             if test "$module" = yes; then
3229               $echo "*** But as you try to build a module library, libtool will still create "
3230               $echo "*** a static module, that should work as long as the dlopening application"
3231               $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
3232               if test -z "$global_symbol_pipe"; then
3233                 $echo
3234                 $echo "*** However, this would only work if libtool was able to extract symbol"
3235                 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3236                 $echo "*** not find such a program.  So, this module is probably useless."
3237                 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3238               fi
3239               if test "$build_old_libs" = no; then
3240                 build_libtool_libs=module
3241                 build_old_libs=yes
3242               else
3243                 build_libtool_libs=no
3244               fi
3245             fi
3246           else
3247             deplibs="$dir/$old_library $deplibs"
3248             link_static=yes
3249           fi
3250         fi # link shared/static library?
3251
3252         if test "$linkmode" = lib; then
3253           if test -n "$dependency_libs" &&
3254              { test "$hardcode_into_libs" != yes ||
3255                test "$build_old_libs" = yes ||
3256                test "$link_static" = yes; }; then
3257             # Extract -R from dependency_libs
3258             temp_deplibs=
3259             for libdir in $dependency_libs; do
3260               case $libdir in
3261               -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
3262                    case " $xrpath " in
3263                    *" $temp_xrpath "*) ;;
3264                    *) xrpath="$xrpath $temp_xrpath";;
3265                    esac;;
3266               *) temp_deplibs="$temp_deplibs $libdir";;
3267               esac
3268             done
3269             dependency_libs="$temp_deplibs"
3270           fi
3271
3272           newlib_search_path="$newlib_search_path $absdir"
3273           # Link against this library
3274           test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
3275           # ... and its dependency_libs
3276           tmp_libs=
3277           for deplib in $dependency_libs; do
3278             newdependency_libs="$deplib $newdependency_libs"
3279             if test "X$duplicate_deps" = "Xyes" ; then
3280               case "$tmp_libs " in
3281               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
3282               esac
3283             fi
3284             tmp_libs="$tmp_libs $deplib"
3285           done
3286
3287           if test "$link_all_deplibs" != no; then
3288             # Add the search paths of all dependency libraries
3289             for deplib in $dependency_libs; do
3290               case $deplib in
3291               -L*) path="$deplib" ;;
3292               *.la)
3293                 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
3294                 test "X$dir" = "X$deplib" && dir="."
3295                 # We need an absolute path.
3296                 case $dir in
3297                 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
3298                 *)
3299                   absdir=`cd "$dir" && pwd`
3300                   if test -z "$absdir"; then
3301                     $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
3302                     absdir="$dir"
3303                   fi
3304                   ;;
3305                 esac
3306                 if grep "^installed=no" $deplib > /dev/null; then
3307                   path="$absdir/$objdir"
3308                 else
3309                   eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3310                   if test -z "$libdir"; then
3311                     $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3312                     exit $EXIT_FAILURE
3313                   fi
3314                   if test "$absdir" != "$libdir"; then
3315                     $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
3316                   fi
3317                   path="$absdir"
3318                 fi
3319                 depdepl=
3320                 case $host in
3321                 *-*-darwin*)
3322                   # we do not want to link against static libs,
3323                   # but need to link against shared
3324                   eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
3325                   eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3326                   if test -n "$deplibrary_names" ; then
3327                     for tmp in $deplibrary_names ; do
3328                       depdepl=$tmp
3329                     done
3330                     if test -f "$deplibdir/$depdepl" ; then
3331                       depdepl="$deplibdir/$depdepl"
3332                     elif test -f "$path/$depdepl" ; then
3333                       depdepl="$path/$depdepl"
3334                     else
3335                       # Can't find it, oh well...
3336                       depdepl=
3337                     fi
3338                     # do not add paths which are already there
3339                     case " $newlib_search_path " in
3340                     *" $path "*) ;;
3341                     *) newlib_search_path="$newlib_search_path $path";;
3342                     esac
3343                   fi
3344                   path=""
3345                   ;;
3346                 *)
3347                   path="-L$path"
3348                   ;;
3349                 esac
3350                 ;;
3351               -l*)
3352                 case $host in
3353                 *-*-darwin*)
3354                   # Again, we only want to link against shared libraries
3355                   eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
3356                   for tmp in $newlib_search_path ; do
3357                     if test -f "$tmp/lib$tmp_libs.dylib" ; then
3358                       eval depdepl="$tmp/lib$tmp_libs.dylib"
3359                       break
3360                     fi
3361                   done
3362                   path=""
3363                   ;;
3364                 *) continue ;;
3365                 esac
3366                 ;;
3367               *) continue ;;
3368               esac
3369               case " $deplibs " in
3370               *" $path "*) ;;
3371               *) deplibs="$path $deplibs" ;;
3372               esac
3373               case " $deplibs " in
3374               *" $depdepl "*) ;;
3375               *) deplibs="$depdepl $deplibs" ;;
3376               esac
3377             done
3378           fi # link_all_deplibs != no
3379         fi # linkmode = lib
3380       done # for deplib in $libs
3381       dependency_libs="$newdependency_libs"
3382       if test "$pass" = dlpreopen; then
3383         # Link the dlpreopened libraries before other libraries
3384         for deplib in $save_deplibs; do
3385           deplibs="$deplib $deplibs"
3386         done
3387       fi
3388       if test "$pass" != dlopen; then
3389         if test "$pass" != conv; then
3390           # Make sure lib_search_path contains only unique directories.
3391           lib_search_path=
3392           for dir in $newlib_search_path; do
3393             case "$lib_search_path " in
3394             *" $dir "*) ;;
3395             *) lib_search_path="$lib_search_path $dir" ;;
3396             esac
3397           done
3398           newlib_search_path=
3399         fi
3400
3401         if test "$linkmode,$pass" != "prog,link"; then
3402           vars="deplibs"
3403         else
3404           vars="compile_deplibs finalize_deplibs"
3405         fi
3406         for var in $vars dependency_libs; do
3407           # Add libraries to $var in reverse order
3408           eval tmp_libs=\"\$$var\"
3409           new_libs=
3410           for deplib in $tmp_libs; do
3411             # FIXME: Pedantically, this is the right thing to do, so
3412             #        that some nasty dependency loop isn't accidentally
3413             #        broken:
3414             #new_libs="$deplib $new_libs"
3415             # Pragmatically, this seems to cause very few problems in
3416             # practice:
3417             case $deplib in
3418             -L*) new_libs="$deplib $new_libs" ;;
3419             -R*) ;;
3420             *)
3421               # And here is the reason: when a library appears more
3422               # than once as an explicit dependence of a library, or
3423               # is implicitly linked in more than once by the
3424               # compiler, it is considered special, and multiple
3425               # occurrences thereof are not removed.  Compare this
3426               # with having the same library being listed as a
3427               # dependency of multiple other libraries: in this case,
3428               # we know (pedantically, we assume) the library does not
3429               # need to be listed more than once, so we keep only the
3430               # last copy.  This is not always right, but it is rare
3431               # enough that we require users that really mean to play
3432               # such unportable linking tricks to link the library
3433               # using -Wl,-lname, so that libtool does not consider it
3434               # for duplicate removal.
3435               case " $specialdeplibs " in
3436               *" $deplib "*) new_libs="$deplib $new_libs" ;;
3437               *)
3438                 case " $new_libs " in
3439                 *" $deplib "*) ;;
3440                 *) new_libs="$deplib $new_libs" ;;
3441                 esac
3442                 ;;
3443               esac
3444               ;;
3445             esac
3446           done
3447           tmp_libs=
3448           for deplib in $new_libs; do
3449             case $deplib in
3450             -L*)
3451               case " $tmp_libs " in
3452               *" $deplib "*) ;;
3453               *) tmp_libs="$tmp_libs $deplib" ;;
3454               esac
3455               ;;
3456             *) tmp_libs="$tmp_libs $deplib" ;;
3457             esac
3458           done
3459           eval $var=\"$tmp_libs\"
3460         done # for var
3461       fi
3462       # Last step: remove runtime libs from dependency_libs
3463       # (they stay in deplibs)
3464       tmp_libs=
3465       for i in $dependency_libs ; do
3466         case " $predeps $postdeps $compiler_lib_search_path " in
3467         *" $i "*)
3468           i=""
3469           ;;
3470         esac
3471         if test -n "$i" ; then
3472           tmp_libs="$tmp_libs $i"
3473         fi
3474       done
3475       dependency_libs=$tmp_libs
3476     done # for pass
3477     if test "$linkmode" = prog; then
3478       dlfiles="$newdlfiles"
3479       dlprefiles="$newdlprefiles"
3480     fi
3481
3482     case $linkmode in
3483     oldlib)
3484       case " $deplibs" in
3485       *\ -l* | *\ -L*)
3486         $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
3487       esac
3488
3489       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3490         $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3491       fi
3492
3493       if test -n "$rpath"; then
3494         $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3495       fi
3496
3497       if test -n "$xrpath"; then
3498         $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3499       fi
3500
3501       if test -n "$vinfo"; then
3502         $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2