Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Convert GRAS pid from long int to int; setup a virtualization layer in XBT to choose...
[simgrid.git] / libtool
1 #! /bin/sh
2
3 # libtoolT - Provide generalized library-building support services.
4 # Generated automatically by  (GNU simgrid 3.3-cvs)
5 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
6 #
7 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
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 blaise:
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=32768
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\$old_deplibs~\$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 library search path used internally by the compiler when linking
247 # a shared library.
248 compiler_lib_search_path=""
249
250 # Method to check whether dependent libraries are shared objects.
251 deplibs_check_method="pass_all"
252
253 # Command to use when deplibs_check_method == file_magic.
254 file_magic_cmd="\$MAGIC_CMD"
255
256 # Flag that allows shared libraries with undefined symbols to be built.
257 allow_undefined_flag=""
258
259 # Flag that forces no undefined symbols.
260 no_undefined_flag=""
261
262 # Commands used to finish a libtool library installation in a directory.
263 finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
264
265 # Same as above, but a single script fragment to be evaled but not shown.
266 finish_eval=""
267
268 # Take the output of nm and produce a listing of raw symbols and C names.
269 global_symbol_pipe="sed -n -e 's/^.*[   ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[       ][      ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
270
271 # Transform the output of nm in a proper C declaration
272 global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
273
274 # Transform the output of nm in a C name address pair
275 global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (lt_ptr) \\&\\2},/p'"
276
277 # This is the shared library runtime path variable.
278 runpath_var=LD_RUN_PATH
279
280 # This is the shared library path variable.
281 shlibpath_var=LD_LIBRARY_PATH
282
283 # Is shlibpath searched before the hard-coded library search path?
284 shlibpath_overrides_runpath=no
285
286 # How to hardcode a shared library path into an executable.
287 hardcode_action=immediate
288
289 # Whether we should hardcode library paths into libraries.
290 hardcode_into_libs=yes
291
292 # Flag to hardcode $libdir into a binary during linking.
293 # This must work even if $libdir does not exist.
294 hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
295
296 # If ld is used when linking, flag to hardcode $libdir into
297 # a binary during linking. This must work even if $libdir does
298 # not exist.
299 hardcode_libdir_flag_spec_ld=""
300
301 # Whether we need a single -rpath flag with a separated argument.
302 hardcode_libdir_separator=""
303
304 # Set to yes if using DIR/libNAME during linking hardcodes DIR into the
305 # resulting binary.
306 hardcode_direct=no
307
308 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the
309 # resulting binary.
310 hardcode_minus_L=no
311
312 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
313 # the resulting binary.
314 hardcode_shlibpath_var=unsupported
315
316 # Set to yes if building a shared library automatically hardcodes DIR into the library
317 # and all subsequent libraries and executables linked against it.
318 hardcode_automatic=no
319
320 # Variables whose values should be saved in libtool wrapper scripts and
321 # restored at relink time.
322 variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
323
324 # Whether libtool must link a program against all its dependency libraries.
325 link_all_deplibs=no
326
327 # Compile-time system search path for libraries
328 sys_lib_search_path_spec=" /usr/lib/gcc/i486-linux-gnu/4.1.3/ /usr/lib/gcc/i486-linux-gnu/4.1.3/ /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.1.3/ /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../i486-linux-gnu/lib/ /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../i486-linux-gnu/4.1.3/ /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../ /lib/i486-linux-gnu/4.1.3/ /lib/ /usr/lib/i486-linux-gnu/4.1.3/ /usr/lib/"
329
330 # Run-time system search path for libraries
331 sys_lib_dlsearch_path_spec="/lib /usr/lib /lib/i486-linux-gnu /usr/lib/i486-linux-gnu "
332
333 # Fix the shell variable $srcfile for the compiler.
334 fix_srcfile_path=""
335
336 # Set to yes if exported symbols are required.
337 always_export_symbols=no
338
339 # The commands to list exported symbols.
340 export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
341
342 # The commands to extract the exported symbol list from a shared archive.
343 extract_expsyms_cmds=""
344
345 # Symbols that should not be listed in the preloaded symbols.
346 exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
347
348 # Symbols that must always be exported.
349 include_expsyms=""
350
351 # ### END LIBTOOL CONFIG
352
353 # ltmain.sh - Provide generalized library-building support services.
354 # NOTE: Changing this file will not affect anything until you rerun configure.
355 #
356 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
357 # Free Software Foundation, Inc.
358 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
359 #
360 # This program is free software; you can redistribute it and/or modify
361 # it under the terms of the GNU General Public License as published by
362 # the Free Software Foundation; either version 2 of the License, or
363 # (at your option) any later version.
364 #
365 # This program is distributed in the hope that it will be useful, but
366 # WITHOUT ANY WARRANTY; without even the implied warranty of
367 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
368 # General Public License for more details.
369 #
370 # You should have received a copy of the GNU General Public License
371 # along with this program; if not, write to the Free Software
372 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
373 #
374 # As a special exception to the GNU General Public License, if you
375 # distribute this file as part of a program that contains a
376 # configuration script generated by Autoconf, you may include it under
377 # the same distribution terms that you use for the rest of that program.
378
379 basename="s,^.*/,,g"
380
381 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
382 # is ksh but when the shell is invoked as "sh" and the current value of
383 # the _XPG environment variable is not equal to 1 (one), the special
384 # positional parameter $0, within a function call, is the name of the
385 # function.
386 progpath="$0"
387
388 # The name of this program:
389 progname=`echo "$progpath" | $SED $basename`
390 modename="$progname"
391
392 # Global variables:
393 EXIT_SUCCESS=0
394 EXIT_FAILURE=1
395
396 PROGRAM=ltmain.sh
397 PACKAGE=libtool
398 VERSION="1.5.22 Debian 1.5.22-4"
399 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
400
401 # See if we are running on zsh, and set the options which allow our
402 # commands through without removal of \ escapes.
403 if test -n "${ZSH_VERSION+set}" ; then
404   setopt NO_GLOB_SUBST
405 fi
406
407 # Check that we have a working $echo.
408 if test "X$1" = X--no-reexec; then
409   # Discard the --no-reexec flag, and continue.
410   shift
411 elif test "X$1" = X--fallback-echo; then
412   # Avoid inline document here, it may be left over
413   :
414 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
415   # Yippee, $echo works!
416   :
417 else
418   # Restart under the correct shell, and then maybe $echo will work.
419   exec $SHELL "$progpath" --no-reexec ${1+"$@"}
420 fi
421
422 if test "X$1" = X--fallback-echo; then
423   # used as fallback echo
424   shift
425   cat <<EOF
426 $*
427 EOF
428   exit $EXIT_SUCCESS
429 fi
430
431 default_mode=
432 help="Try \`$progname --help' for more information."
433 magic="%%%MAGIC variable%%%"
434 mkdir="mkdir"
435 mv="mv -f"
436 rm="rm -f"
437
438 # Sed substitution that helps us do robust quoting.  It backslashifies
439 # metacharacters that are still active within double-quoted strings.
440 Xsed="${SED}"' -e 1s/^X//'
441 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
442 # test EBCDIC or ASCII
443 case `echo X|tr X '\101'` in
444  A) # ASCII based system
445     # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
446   SP2NL='tr \040 \012'
447   NL2SP='tr \015\012 \040\040'
448   ;;
449  *) # EBCDIC based system
450   SP2NL='tr \100 \n'
451   NL2SP='tr \r\n \100\100'
452   ;;
453 esac
454
455 # NLS nuisances.
456 # Only set LANG and LC_ALL to C if already set.
457 # These must not be set unconditionally because not all systems understand
458 # e.g. LANG=C (notably SCO).
459 # We save the old values to restore during execute mode.
460 if test "${LC_ALL+set}" = set; then
461   save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
462 fi
463 if test "${LANG+set}" = set; then
464   save_LANG="$LANG"; LANG=C; export LANG
465 fi
466
467 # Make sure IFS has a sensible default
468 lt_nl='
469 '
470 IFS="   $lt_nl"
471
472 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
473   $echo "$modename: not configured to build any kind of library" 1>&2
474   $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
475   exit $EXIT_FAILURE
476 fi
477
478 # Global variables.
479 mode=$default_mode
480 nonopt=
481 prev=
482 prevopt=
483 run=
484 show="$echo"
485 show_help=
486 execute_dlfiles=
487 duplicate_deps=no
488 preserve_args=
489 lo2o="s/\\.lo\$/.${objext}/"
490 o2lo="s/\\.${objext}\$/.lo/"
491
492 #####################################
493 # Shell function definitions:
494 # This seems to be the best place for them
495
496 # func_mktempdir [string]
497 # Make a temporary directory that won't clash with other running
498 # libtool processes, and avoids race conditions if possible.  If
499 # given, STRING is the basename for that directory.
500 func_mktempdir ()
501 {
502     my_template="${TMPDIR-/tmp}/${1-$progname}"
503
504     if test "$run" = ":"; then
505       # Return a directory name, but don't create it in dry-run mode
506       my_tmpdir="${my_template}-$$"
507     else
508
509       # If mktemp works, use that first and foremost
510       my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
511
512       if test ! -d "$my_tmpdir"; then
513         # Failing that, at least try and use $RANDOM to avoid a race
514         my_tmpdir="${my_template}-${RANDOM-0}$$"
515
516         save_mktempdir_umask=`umask`
517         umask 0077
518         $mkdir "$my_tmpdir"
519         umask $save_mktempdir_umask
520       fi
521
522       # If we're not in dry-run mode, bomb out on failure
523       test -d "$my_tmpdir" || {
524         $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
525         exit $EXIT_FAILURE
526       }
527     fi
528
529     $echo "X$my_tmpdir" | $Xsed
530 }
531
532
533 # func_win32_libid arg
534 # return the library type of file 'arg'
535 #
536 # Need a lot of goo to handle *both* DLLs and import libs
537 # Has to be a shell function in order to 'eat' the argument
538 # that is supplied when $file_magic_command is called.
539 func_win32_libid ()
540 {
541   win32_libid_type="unknown"
542   win32_fileres=`file -L $1 2>/dev/null`
543   case $win32_fileres in
544   *ar\ archive\ import\ library*) # definitely import
545     win32_libid_type="x86 archive import"
546     ;;
547   *ar\ archive*) # could be an import, or static
548     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
549       $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
550       win32_nmres=`eval $NM -f posix -A $1 | \
551         $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
552       case $win32_nmres in
553       import*)  win32_libid_type="x86 archive import";;
554       *)        win32_libid_type="x86 archive static";;
555       esac
556     fi
557     ;;
558   *DLL*)
559     win32_libid_type="x86 DLL"
560     ;;
561   *executable*) # but shell scripts are "executable" too...
562     case $win32_fileres in
563     *MS\ Windows\ PE\ Intel*)
564       win32_libid_type="x86 DLL"
565       ;;
566     esac
567     ;;
568   esac
569   $echo $win32_libid_type
570 }
571
572
573 # func_infer_tag arg
574 # Infer tagged configuration to use if any are available and
575 # if one wasn't chosen via the "--tag" command line option.
576 # Only attempt this if the compiler in the base compile
577 # command doesn't match the default compiler.
578 # arg is usually of the form 'gcc ...'
579 func_infer_tag ()
580 {
581     if test -n "$available_tags" && test -z "$tagname"; then
582       CC_quoted=
583       for arg in $CC; do
584         case $arg in
585           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
586           arg="\"$arg\""
587           ;;
588         esac
589         CC_quoted="$CC_quoted $arg"
590       done
591       case $@ in
592       # Blanks in the command may have been stripped by the calling shell,
593       # but not from the CC environment variable when configure was run.
594       " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
595       # Blanks at the start of $base_compile will cause this to fail
596       # if we don't check for them as well.
597       *)
598         for z in $available_tags; do
599           if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
600             # Evaluate the configuration.
601             eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
602             CC_quoted=
603             for arg in $CC; do
604             # Double-quote args containing other shell metacharacters.
605             case $arg in
606               *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
607               arg="\"$arg\""
608               ;;
609             esac
610             CC_quoted="$CC_quoted $arg"
611           done
612             case "$@ " in
613               " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
614               # The compiler in the base compile command matches
615               # the one in the tagged configuration.
616               # Assume this is the tagged configuration we want.
617               tagname=$z
618               break
619               ;;
620             esac
621           fi
622         done
623         # If $tagname still isn't set, then no tagged configuration
624         # was found and let the user know that the "--tag" command
625         # line option must be used.
626         if test -z "$tagname"; then
627           $echo "$modename: unable to infer tagged configuration"
628           $echo "$modename: specify a tag with \`--tag'" 1>&2
629           exit $EXIT_FAILURE
630 #        else
631 #          $echo "$modename: using $tagname tagged configuration"
632         fi
633         ;;
634       esac
635     fi
636 }
637
638
639 # func_extract_an_archive dir oldlib
640 func_extract_an_archive ()
641 {
642     f_ex_an_ar_dir="$1"; shift
643     f_ex_an_ar_oldlib="$1"
644
645     $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
646     $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
647     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
648      :
649     else
650       $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
651       exit $EXIT_FAILURE
652     fi
653 }
654
655 # func_extract_archives gentop oldlib ...
656 func_extract_archives ()
657 {
658     my_gentop="$1"; shift
659     my_oldlibs=${1+"$@"}
660     my_oldobjs=""
661     my_xlib=""
662     my_xabs=""
663     my_xdir=""
664     my_status=""
665
666     $show "${rm}r $my_gentop"
667     $run ${rm}r "$my_gentop"
668     $show "$mkdir $my_gentop"
669     $run $mkdir "$my_gentop"
670     my_status=$?
671     if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
672       exit $my_status
673     fi
674
675     for my_xlib in $my_oldlibs; do
676       # Extract the objects.
677       case $my_xlib in
678         [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
679         *) my_xabs=`pwd`"/$my_xlib" ;;
680       esac
681       my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
682       my_xdir="$my_gentop/$my_xlib"
683
684       $show "${rm}r $my_xdir"
685       $run ${rm}r "$my_xdir"
686       $show "$mkdir $my_xdir"
687       $run $mkdir "$my_xdir"
688       exit_status=$?
689       if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
690         exit $exit_status
691       fi
692       case $host in
693       *-darwin*)
694         $show "Extracting $my_xabs"
695         # Do not bother doing anything if just a dry run
696         if test -z "$run"; then
697           darwin_orig_dir=`pwd`
698           cd $my_xdir || exit $?
699           darwin_archive=$my_xabs
700           darwin_curdir=`pwd`
701           darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
702           darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
703           if test -n "$darwin_arches"; then 
704             darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
705             darwin_arch=
706             $show "$darwin_base_archive has multiple architectures $darwin_arches"
707             for darwin_arch in  $darwin_arches ; do
708               mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
709               lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
710               cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
711               func_extract_an_archive "`pwd`" "${darwin_base_archive}"
712               cd "$darwin_curdir"
713               $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
714             done # $darwin_arches
715       ## Okay now we have a bunch of thin objects, gotta fatten them up :)
716             darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
717             darwin_file=
718             darwin_files=
719             for darwin_file in $darwin_filelist; do
720               darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
721               lipo -create -output "$darwin_file" $darwin_files
722             done # $darwin_filelist
723             ${rm}r unfat-$$
724             cd "$darwin_orig_dir"
725           else
726             cd "$darwin_orig_dir"
727             func_extract_an_archive "$my_xdir" "$my_xabs"
728           fi # $darwin_arches
729         fi # $run
730         ;;
731       *)
732         func_extract_an_archive "$my_xdir" "$my_xabs"
733         ;;
734       esac
735       my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
736     done
737     func_extract_archives_result="$my_oldobjs"
738 }
739 # End of Shell function definitions
740 #####################################
741
742 # Darwin sucks
743 eval std_shrext=\"$shrext_cmds\"
744
745 disable_libs=no
746
747 # Parse our command line options once, thoroughly.
748 while test "$#" -gt 0
749 do
750   arg="$1"
751   shift
752
753   case $arg in
754   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
755   *) optarg= ;;
756   esac
757
758   # If the previous option needs an argument, assign it.
759   if test -n "$prev"; then
760     case $prev in
761     execute_dlfiles)
762       execute_dlfiles="$execute_dlfiles $arg"
763       ;;
764     tag)
765       tagname="$arg"
766       preserve_args="${preserve_args}=$arg"
767
768       # Check whether tagname contains only valid characters
769       case $tagname in
770       *[!-_A-Za-z0-9,/]*)
771         $echo "$progname: invalid tag name: $tagname" 1>&2
772         exit $EXIT_FAILURE
773         ;;
774       esac
775
776       case $tagname in
777       CC)
778         # Don't test for the "default" C tag, as we know, it's there, but
779         # not specially marked.
780         ;;
781       *)
782         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
783           taglist="$taglist $tagname"
784           # Evaluate the configuration.
785           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
786         else
787           $echo "$progname: ignoring unknown tag $tagname" 1>&2
788         fi
789         ;;
790       esac
791       ;;
792     *)
793       eval "$prev=\$arg"
794       ;;
795     esac
796
797     prev=
798     prevopt=
799     continue
800   fi
801
802   # Have we seen a non-optional argument yet?
803   case $arg in
804   --help)
805     show_help=yes
806     ;;
807
808   --version)
809     $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
810     $echo
811     $echo "Copyright (C) 2005  Free Software Foundation, Inc."
812     $echo "This is free software; see the source for copying conditions.  There is NO"
813     $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
814     exit $?
815     ;;
816
817   --config)
818     ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
819     # Now print the configurations for the tags.
820     for tagname in $taglist; do
821       ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
822     done
823     exit $?
824     ;;
825
826   --debug)
827     $echo "$progname: enabling shell trace mode"
828     set -x
829     preserve_args="$preserve_args $arg"
830     ;;
831
832   --dry-run | -n)
833     run=:
834     ;;
835
836   --features)
837     $echo "host: $host"
838     if test "$build_libtool_libs" = yes; then
839       $echo "enable shared libraries"
840     else
841       $echo "disable shared libraries"
842     fi
843     if test "$build_old_libs" = yes; then
844       $echo "enable static libraries"
845     else
846       $echo "disable static libraries"
847     fi
848     exit $?
849     ;;
850
851   --finish) mode="finish" ;;
852
853   --mode) prevopt="--mode" prev=mode ;;
854   --mode=*) mode="$optarg" ;;
855
856   --preserve-dup-deps) duplicate_deps="yes" ;;
857
858   --quiet | --silent)
859     show=:
860     preserve_args="$preserve_args $arg"
861     ;;
862
863   --tag)
864     prevopt="--tag"
865     prev=tag
866     preserve_args="$preserve_args --tag"
867     ;;
868   --tag=*)
869     set tag "$optarg" ${1+"$@"}
870     shift
871     prev=tag
872     preserve_args="$preserve_args --tag"
873     ;;
874
875   -dlopen)
876     prevopt="-dlopen"
877     prev=execute_dlfiles
878     ;;
879
880   -*)
881     $echo "$modename: unrecognized option \`$arg'" 1>&2
882     $echo "$help" 1>&2
883     exit $EXIT_FAILURE
884     ;;
885
886   *)
887     nonopt="$arg"
888     break
889     ;;
890   esac
891 done
892
893 if test -n "$prevopt"; then
894   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
895   $echo "$help" 1>&2
896   exit $EXIT_FAILURE
897 fi
898
899 case $disable_libs in
900 no) 
901   ;;
902 shared)
903   build_libtool_libs=no
904   build_old_libs=yes
905   ;;
906 static)
907   build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
908   ;;
909 esac
910
911 # If this variable is set in any of the actions, the command in it
912 # will be execed at the end.  This prevents here-documents from being
913 # left over by shells.
914 exec_cmd=
915
916 if test -z "$show_help"; then
917
918   # Infer the operation mode.
919   if test -z "$mode"; then
920     $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
921     $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
922     case $nonopt in
923     *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
924       mode=link
925       for arg
926       do
927         case $arg in
928         -c)
929            mode=compile
930            break
931            ;;
932         esac
933       done
934       ;;
935     *db | *dbx | *strace | *truss)
936       mode=execute
937       ;;
938     *install*|cp|mv)
939       mode=install
940       ;;
941     *rm)
942       mode=uninstall
943       ;;
944     *)
945       # If we have no mode, but dlfiles were specified, then do execute mode.
946       test -n "$execute_dlfiles" && mode=execute
947
948       # Just use the default operation mode.
949       if test -z "$mode"; then
950         if test -n "$nonopt"; then
951           $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
952         else
953           $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
954         fi
955       fi
956       ;;
957     esac
958   fi
959
960   # Only execute mode is allowed to have -dlopen flags.
961   if test -n "$execute_dlfiles" && test "$mode" != execute; then
962     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
963     $echo "$help" 1>&2
964     exit $EXIT_FAILURE
965   fi
966
967   # Change the help message to a mode-specific one.
968   generic_help="$help"
969   help="Try \`$modename --help --mode=$mode' for more information."
970
971   # These modes are in order of execution frequency so that they run quickly.
972   case $mode in
973   # libtool compile mode
974   compile)
975     modename="$modename: compile"
976     # Get the compilation command and the source file.
977     base_compile=
978     srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
979     suppress_opt=yes
980     suppress_output=
981     arg_mode=normal
982     libobj=
983     later=
984
985     for arg
986     do
987       case $arg_mode in
988       arg  )
989         # do not "continue".  Instead, add this to base_compile
990         lastarg="$arg"
991         arg_mode=normal
992         ;;
993
994       target )
995         libobj="$arg"
996         arg_mode=normal
997         continue
998         ;;
999
1000       normal )
1001         # Accept any command-line options.
1002         case $arg in
1003         -o)
1004           if test -n "$libobj" ; then
1005             $echo "$modename: you cannot specify \`-o' more than once" 1>&2
1006             exit $EXIT_FAILURE
1007           fi
1008           arg_mode=target
1009           continue
1010           ;;
1011
1012         -static | -prefer-pic | -prefer-non-pic)
1013           later="$later $arg"
1014           continue
1015           ;;
1016
1017         -no-suppress)
1018           suppress_opt=no
1019           continue
1020           ;;
1021
1022         -Xcompiler)
1023           arg_mode=arg  #  the next one goes into the "base_compile" arg list
1024           continue      #  The current "srcfile" will either be retained or
1025           ;;            #  replaced later.  I would guess that would be a bug.
1026
1027         -Wc,*)
1028           args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
1029           lastarg=
1030           save_ifs="$IFS"; IFS=','
1031           for arg in $args; do
1032             IFS="$save_ifs"
1033
1034             # Double-quote args containing other shell metacharacters.
1035             # Many Bourne shells cannot handle close brackets correctly
1036             # in scan sets, so we specify it separately.
1037             case $arg in
1038               *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1039               arg="\"$arg\""
1040               ;;
1041             esac
1042             lastarg="$lastarg $arg"
1043           done
1044           IFS="$save_ifs"
1045           lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
1046
1047           # Add the arguments to base_compile.
1048           base_compile="$base_compile $lastarg"
1049           continue
1050           ;;
1051
1052         * )
1053           # Accept the current argument as the source file.
1054           # The previous "srcfile" becomes the current argument.
1055           #
1056           lastarg="$srcfile"
1057           srcfile="$arg"
1058           ;;
1059         esac  #  case $arg
1060         ;;
1061       esac    #  case $arg_mode
1062
1063       # Aesthetically quote the previous argument.
1064       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
1065
1066       case $lastarg in
1067       # Double-quote args containing other shell metacharacters.
1068       # Many Bourne shells cannot handle close brackets correctly
1069       # in scan sets, and some SunOS ksh mistreat backslash-escaping
1070       # in scan sets (worked around with variable expansion),
1071       # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
1072       # at all, so we specify them separately.
1073       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1074         lastarg="\"$lastarg\""
1075         ;;
1076       esac
1077
1078       base_compile="$base_compile $lastarg"
1079     done # for arg
1080
1081     case $arg_mode in
1082     arg)
1083       $echo "$modename: you must specify an argument for -Xcompile"
1084       exit $EXIT_FAILURE
1085       ;;
1086     target)
1087       $echo "$modename: you must specify a target with \`-o'" 1>&2
1088       exit $EXIT_FAILURE
1089       ;;
1090     *)
1091       # Get the name of the library object.
1092       [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
1093       ;;
1094     esac
1095
1096     # Recognize several different file suffixes.
1097     # If the user specifies -o file.o, it is replaced with file.lo
1098     xform='[cCFSifmso]'
1099     case $libobj in
1100     *.ada) xform=ada ;;
1101     *.adb) xform=adb ;;
1102     *.ads) xform=ads ;;
1103     *.asm) xform=asm ;;
1104     *.c++) xform=c++ ;;
1105     *.cc) xform=cc ;;
1106     *.ii) xform=ii ;;
1107     *.class) xform=class ;;
1108     *.cpp) xform=cpp ;;
1109     *.cxx) xform=cxx ;;
1110     *.f90) xform=f90 ;;
1111     *.for) xform=for ;;
1112     *.java) xform=java ;;
1113     esac
1114
1115     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
1116
1117     case $libobj in
1118     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
1119     *)
1120       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
1121       exit $EXIT_FAILURE
1122       ;;
1123     esac
1124
1125     func_infer_tag $base_compile
1126
1127     for arg in $later; do
1128       case $arg in
1129       -static)
1130         build_old_libs=yes
1131         continue
1132         ;;
1133
1134       -prefer-pic)
1135         pic_mode=yes
1136         continue
1137         ;;
1138
1139       -prefer-non-pic)
1140         pic_mode=no
1141         continue
1142         ;;
1143       esac
1144     done
1145
1146     qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
1147     case $qlibobj in
1148       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1149         qlibobj="\"$qlibobj\"" ;;
1150     esac
1151     test "X$libobj" != "X$qlibobj" \
1152         && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"'  &()|`$[]' \
1153         && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
1154     objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
1155     xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
1156     if test "X$xdir" = "X$obj"; then
1157       xdir=
1158     else
1159       xdir=$xdir/
1160     fi
1161     lobj=${xdir}$objdir/$objname
1162
1163     if test -z "$base_compile"; then
1164       $echo "$modename: you must specify a compilation command" 1>&2
1165       $echo "$help" 1>&2
1166       exit $EXIT_FAILURE
1167     fi
1168
1169     # Delete any leftover library objects.
1170     if test "$build_old_libs" = yes; then
1171       removelist="$obj $lobj $libobj ${libobj}T"
1172     else
1173       removelist="$lobj $libobj ${libobj}T"
1174     fi
1175
1176     $run $rm $removelist
1177     trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
1178
1179     # On Cygwin there's no "real" PIC flag so we must build both object types
1180     case $host_os in
1181     cygwin* | mingw* | pw32* | os2*)
1182       pic_mode=default
1183       ;;
1184     esac
1185     if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
1186       # non-PIC code in shared libraries is not supported
1187       pic_mode=default
1188     fi
1189
1190     # Calculate the filename of the output object if compiler does
1191     # not support -o with -c
1192     if test "$compiler_c_o" = no; then
1193       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
1194       lockfile="$output_obj.lock"
1195       removelist="$removelist $output_obj $lockfile"
1196       trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
1197     else
1198       output_obj=
1199       need_locks=no
1200       lockfile=
1201     fi
1202
1203     # Lock this critical section if it is needed
1204     # We use this script file to make the link, it avoids creating a new file
1205     if test "$need_locks" = yes; then
1206       until $run ln "$progpath" "$lockfile" 2>/dev/null; do
1207         $show "Waiting for $lockfile to be removed"
1208         sleep 2
1209       done
1210     elif test "$need_locks" = warn; then
1211       if test -f "$lockfile"; then
1212         $echo "\
1213 *** ERROR, $lockfile exists and contains:
1214 `cat $lockfile 2>/dev/null`
1215
1216 This indicates that another process is trying to use the same
1217 temporary object file, and libtool could not work around it because
1218 your compiler does not support \`-c' and \`-o' together.  If you
1219 repeat this compilation, it may succeed, by chance, but you had better
1220 avoid parallel builds (make -j) in this platform, or get a better
1221 compiler."
1222
1223         $run $rm $removelist
1224         exit $EXIT_FAILURE
1225       fi
1226       $echo "$srcfile" > "$lockfile"
1227     fi
1228
1229     if test -n "$fix_srcfile_path"; then
1230       eval srcfile=\"$fix_srcfile_path\"
1231     fi
1232     qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
1233     case $qsrcfile in
1234       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1235       qsrcfile="\"$qsrcfile\"" ;;
1236     esac
1237
1238     $run $rm "$libobj" "${libobj}T"
1239
1240     # Create a libtool object file (analogous to a ".la" file),
1241     # but don't create it if we're doing a dry run.
1242     test -z "$run" && cat > ${libobj}T <<EOF
1243 # $libobj - a libtool object file
1244 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
1245 #
1246 # Please DO NOT delete this file!
1247 # It is necessary for linking the library.
1248
1249 # Name of the PIC object.
1250 EOF
1251
1252     # Only build a PIC object if we are building libtool libraries.
1253     if test "$build_libtool_libs" = yes; then
1254       # Without this assignment, base_compile gets emptied.
1255       fbsd_hideous_sh_bug=$base_compile
1256
1257       if test "$pic_mode" != no; then
1258         command="$base_compile $qsrcfile $pic_flag"
1259       else
1260         # Don't build PIC code
1261         command="$base_compile $qsrcfile"
1262       fi
1263
1264       if test ! -d "${xdir}$objdir"; then
1265         $show "$mkdir ${xdir}$objdir"
1266         $run $mkdir ${xdir}$objdir
1267         exit_status=$?
1268         if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
1269           exit $exit_status
1270         fi
1271       fi
1272
1273       if test -z "$output_obj"; then
1274         # Place PIC objects in $objdir
1275         command="$command -o $lobj"
1276       fi
1277
1278       $run $rm "$lobj" "$output_obj"
1279
1280       $show "$command"
1281       if $run eval "$command"; then :
1282       else
1283         test -n "$output_obj" && $run $rm $removelist
1284         exit $EXIT_FAILURE
1285       fi
1286
1287       if test "$need_locks" = warn &&
1288          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1289         $echo "\
1290 *** ERROR, $lockfile contains:
1291 `cat $lockfile 2>/dev/null`
1292
1293 but it should contain:
1294 $srcfile
1295
1296 This indicates that another process is trying to use the same
1297 temporary object file, and libtool could not work around it because
1298 your compiler does not support \`-c' and \`-o' together.  If you
1299 repeat this compilation, it may succeed, by chance, but you had better
1300 avoid parallel builds (make -j) in this platform, or get a better
1301 compiler."
1302
1303         $run $rm $removelist
1304         exit $EXIT_FAILURE
1305       fi
1306
1307       # Just move the object if needed, then go on to compile the next one
1308       if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
1309         $show "$mv $output_obj $lobj"
1310         if $run $mv $output_obj $lobj; then :
1311         else
1312           error=$?
1313           $run $rm $removelist
1314           exit $error
1315         fi
1316       fi
1317
1318       # Append the name of the PIC object to the libtool object file.
1319       test -z "$run" && cat >> ${libobj}T <<EOF
1320 pic_object='$objdir/$objname'
1321
1322 EOF
1323
1324       # Allow error messages only from the first compilation.
1325       if test "$suppress_opt" = yes; then
1326         suppress_output=' >/dev/null 2>&1'
1327       fi
1328     else
1329       # No PIC object so indicate it doesn't exist in the libtool
1330       # object file.
1331       test -z "$run" && cat >> ${libobj}T <<EOF
1332 pic_object=none
1333
1334 EOF
1335     fi
1336
1337     # Only build a position-dependent object if we build old libraries.
1338     if test "$build_old_libs" = yes; then
1339       if test "$pic_mode" != yes; then
1340         # Don't build PIC code
1341         command="$base_compile $qsrcfile"
1342       else
1343         command="$base_compile $qsrcfile $pic_flag"
1344       fi
1345       if test "$compiler_c_o" = yes; then
1346         command="$command -o $obj"
1347       fi
1348
1349       # Suppress compiler output if we already did a PIC compilation.
1350       command="$command$suppress_output"
1351       $run $rm "$obj" "$output_obj"
1352       $show "$command"
1353       if $run eval "$command"; then :
1354       else
1355         $run $rm $removelist
1356         exit $EXIT_FAILURE
1357       fi
1358
1359       if test "$need_locks" = warn &&
1360          test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1361         $echo "\
1362 *** ERROR, $lockfile contains:
1363 `cat $lockfile 2>/dev/null`
1364
1365 but it should contain:
1366 $srcfile
1367
1368 This indicates that another process is trying to use the same
1369 temporary object file, and libtool could not work around it because
1370 your compiler does not support \`-c' and \`-o' together.  If you
1371 repeat this compilation, it may succeed, by chance, but you had better
1372 avoid parallel builds (make -j) in this platform, or get a better
1373 compiler."
1374
1375         $run $rm $removelist
1376         exit $EXIT_FAILURE
1377       fi
1378
1379       # Just move the object if needed
1380       if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1381         $show "$mv $output_obj $obj"
1382         if $run $mv $output_obj $obj; then :
1383         else
1384           error=$?
1385           $run $rm $removelist
1386           exit $error
1387         fi
1388       fi
1389
1390       # Append the name of the non-PIC object the libtool object file.
1391       # Only append if the libtool object file exists.
1392       test -z "$run" && cat >> ${libobj}T <<EOF
1393 # Name of the non-PIC object.
1394 non_pic_object='$objname'
1395
1396 EOF
1397     else
1398       # Append the name of the non-PIC object the libtool object file.
1399       # Only append if the libtool object file exists.
1400       test -z "$run" && cat >> ${libobj}T <<EOF
1401 # Name of the non-PIC object.
1402 non_pic_object=none
1403
1404 EOF
1405     fi
1406
1407     $run $mv "${libobj}T" "${libobj}"
1408
1409     # Unlock the critical section if it was locked
1410     if test "$need_locks" != no; then
1411       $run $rm "$lockfile"
1412     fi
1413
1414     exit $EXIT_SUCCESS
1415     ;;
1416
1417   # libtool link mode
1418   link | relink)
1419     modename="$modename: link"
1420     case $host in
1421     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1422       # It is impossible to link a dll without this setting, and
1423       # we shouldn't force the makefile maintainer to figure out
1424       # which system we are compiling for in order to pass an extra
1425       # flag for every libtool invocation.
1426       # allow_undefined=no
1427
1428       # FIXME: Unfortunately, there are problems with the above when trying
1429       # to make a dll which has undefined symbols, in which case not
1430       # even a static library is built.  For now, we need to specify
1431       # -no-undefined on the libtool link line when we can be certain
1432       # that all symbols are satisfied, otherwise we get a static library.
1433       allow_undefined=yes
1434       ;;
1435     *)
1436       allow_undefined=yes
1437       ;;
1438     esac
1439     libtool_args="$nonopt"
1440     base_compile="$nonopt $@"
1441     compile_command="$nonopt"
1442     finalize_command="$nonopt"
1443
1444     compile_rpath=
1445     finalize_rpath=
1446     compile_shlibpath=
1447     finalize_shlibpath=
1448     convenience=
1449     old_convenience=
1450     deplibs=
1451     old_deplibs=
1452     compiler_flags=
1453     linker_flags=
1454     dllsearchpath=
1455     lib_search_path=`pwd`
1456     inst_prefix_dir=
1457
1458     avoid_version=no
1459     dlfiles=
1460     dlprefiles=
1461     dlself=no
1462     export_dynamic=no
1463     export_symbols=
1464     export_symbols_regex=
1465     generated=
1466     libobjs=
1467     ltlibs=
1468     module=no
1469     no_install=no
1470     objs=
1471     non_pic_objects=
1472     notinst_path= # paths that contain not-installed libtool libraries
1473     precious_files_regex=
1474     prefer_static_libs=no
1475     preload=no
1476     prev=
1477     prevarg=
1478     release=
1479     rpath=
1480     xrpath=
1481     perm_rpath=
1482     temp_rpath=
1483     thread_safe=no
1484     vinfo=
1485     vinfo_number=no
1486
1487     func_infer_tag $base_compile
1488
1489     # We need to know -static, to get the right output filenames.
1490     for arg
1491     do
1492       case $arg in
1493       -all-static | -static)
1494         if test "X$arg" = "X-all-static"; then
1495           if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1496             $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1497           fi
1498           if test -n "$link_static_flag"; then
1499             dlopen_self=$dlopen_self_static
1500           fi
1501           prefer_static_libs=yes
1502         else
1503           if test -z "$pic_flag" && test -n "$link_static_flag"; then
1504             dlopen_self=$dlopen_self_static
1505           fi
1506           prefer_static_libs=built
1507         fi
1508         build_libtool_libs=no
1509         build_old_libs=yes
1510         break
1511         ;;
1512       esac
1513     done
1514
1515     # See if our shared archives depend on static archives.
1516     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1517
1518     # Go through the arguments, transforming them on the way.
1519     while test "$#" -gt 0; do
1520       arg="$1"
1521       shift
1522       case $arg in
1523       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1524         qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1525         ;;
1526       *) qarg=$arg ;;
1527       esac
1528       libtool_args="$libtool_args $qarg"
1529
1530       # If the previous option needs an argument, assign it.
1531       if test -n "$prev"; then
1532         case $prev in
1533         output)
1534           compile_command="$compile_command @OUTPUT@"
1535           finalize_command="$finalize_command @OUTPUT@"
1536           ;;
1537         esac
1538
1539         case $prev in
1540         dlfiles|dlprefiles)
1541           if test "$preload" = no; then
1542             # Add the symbol object into the linking commands.
1543             compile_command="$compile_command @SYMFILE@"
1544             finalize_command="$finalize_command @SYMFILE@"
1545             preload=yes
1546           fi
1547           case $arg in
1548           *.la | *.lo) ;;  # We handle these cases below.
1549           force)
1550             if test "$dlself" = no; then
1551               dlself=needless
1552               export_dynamic=yes
1553             fi
1554             prev=
1555             continue
1556             ;;
1557           self)
1558             if test "$prev" = dlprefiles; then
1559               dlself=yes
1560             elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1561               dlself=yes
1562             else
1563               dlself=needless
1564               export_dynamic=yes
1565             fi
1566             prev=
1567             continue
1568             ;;
1569           *)
1570             if test "$prev" = dlfiles; then
1571               dlfiles="$dlfiles $arg"
1572             else
1573               dlprefiles="$dlprefiles $arg"
1574             fi
1575             prev=
1576             continue
1577             ;;
1578           esac
1579           ;;
1580         expsyms)
1581           export_symbols="$arg"
1582           if test ! -f "$arg"; then
1583             $echo "$modename: symbol file \`$arg' does not exist"
1584             exit $EXIT_FAILURE
1585           fi
1586           prev=
1587           continue
1588           ;;
1589         expsyms_regex)
1590           export_symbols_regex="$arg"
1591           prev=
1592           continue
1593           ;;
1594         inst_prefix)
1595           inst_prefix_dir="$arg"
1596           prev=
1597           continue
1598           ;;
1599         precious_regex)
1600           precious_files_regex="$arg"
1601           prev=
1602           continue
1603           ;;
1604         release)
1605           release="-$arg"
1606           prev=
1607           continue
1608           ;;
1609         objectlist)
1610           if test -f "$arg"; then
1611             save_arg=$arg
1612             moreargs=
1613             for fil in `cat $save_arg`
1614             do
1615 #             moreargs="$moreargs $fil"
1616               arg=$fil
1617               # A libtool-controlled object.
1618
1619               # Check to see that this really is a libtool object.
1620               if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1621                 pic_object=
1622                 non_pic_object=
1623
1624                 # Read the .lo file
1625                 # If there is no directory component, then add one.
1626                 case $arg in
1627                 */* | *\\*) . $arg ;;
1628                 *) . ./$arg ;;
1629                 esac
1630
1631                 if test -z "$pic_object" || \
1632                    test -z "$non_pic_object" ||
1633                    test "$pic_object" = none && \
1634                    test "$non_pic_object" = none; then
1635                   $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1636                   exit $EXIT_FAILURE
1637                 fi
1638
1639                 # Extract subdirectory from the argument.
1640                 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1641                 if test "X$xdir" = "X$arg"; then
1642                   xdir=
1643                 else
1644                   xdir="$xdir/"
1645                 fi
1646
1647                 if test "$pic_object" != none; then
1648                   # Prepend the subdirectory the object is found in.
1649                   pic_object="$xdir$pic_object"
1650
1651                   if test "$prev" = dlfiles; then
1652                     if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1653                       dlfiles="$dlfiles $pic_object"
1654                       prev=
1655                       continue
1656                     else
1657                       # If libtool objects are unsupported, then we need to preload.
1658                       prev=dlprefiles
1659                     fi
1660                   fi
1661
1662                   # CHECK ME:  I think I busted this.  -Ossama
1663                   if test "$prev" = dlprefiles; then
1664                     # Preload the old-style object.
1665                     dlprefiles="$dlprefiles $pic_object"
1666                     prev=
1667                   fi
1668
1669                   # A PIC object.
1670                   libobjs="$libobjs $pic_object"
1671                   arg="$pic_object"
1672                 fi
1673
1674                 # Non-PIC object.
1675                 if test "$non_pic_object" != none; then
1676                   # Prepend the subdirectory the object is found in.
1677                   non_pic_object="$xdir$non_pic_object"
1678
1679                   # A standard non-PIC object
1680                   non_pic_objects="$non_pic_objects $non_pic_object"
1681                   if test -z "$pic_object" || test "$pic_object" = none ; then
1682                     arg="$non_pic_object"
1683                   fi
1684                 else
1685                   # If the PIC object exists, use it instead.
1686                   # $xdir was prepended to $pic_object above.
1687                   non_pic_object="$pic_object"
1688                   non_pic_objects="$non_pic_objects $non_pic_object"
1689                 fi
1690               else
1691                 # Only an error if not doing a dry-run.
1692                 if test -z "$run"; then
1693                   $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1694                   exit $EXIT_FAILURE
1695                 else
1696                   # Dry-run case.
1697
1698                   # Extract subdirectory from the argument.
1699                   xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1700                   if test "X$xdir" = "X$arg"; then
1701                     xdir=
1702                   else
1703                     xdir="$xdir/"
1704                   fi
1705
1706                   pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1707                   non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1708                   libobjs="$libobjs $pic_object"
1709                   non_pic_objects="$non_pic_objects $non_pic_object"
1710                 fi
1711               fi
1712             done
1713           else
1714             $echo "$modename: link input file \`$save_arg' does not exist"
1715             exit $EXIT_FAILURE
1716           fi
1717           arg=$save_arg
1718           prev=
1719           continue
1720           ;;
1721         rpath | xrpath)
1722           # We need an absolute path.
1723           case $arg in
1724           [\\/]* | [A-Za-z]:[\\/]*) ;;
1725           *)
1726             $echo "$modename: only absolute run-paths are allowed" 1>&2
1727             exit $EXIT_FAILURE
1728             ;;
1729           esac
1730           if test "$prev" = rpath; then
1731             case "$rpath " in
1732             *" $arg "*) ;;
1733             *) rpath="$rpath $arg" ;;
1734             esac
1735           else
1736             case "$xrpath " in
1737             *" $arg "*) ;;
1738             *) xrpath="$xrpath $arg" ;;
1739             esac
1740           fi
1741           prev=
1742           continue
1743           ;;
1744         xcompiler)
1745           compiler_flags="$compiler_flags $qarg"
1746           prev=
1747           compile_command="$compile_command $qarg"
1748           finalize_command="$finalize_command $qarg"
1749           continue
1750           ;;
1751         xlinker)
1752           linker_flags="$linker_flags $qarg"
1753           compiler_flags="$compiler_flags $wl$qarg"
1754           prev=
1755           compile_command="$compile_command $wl$qarg"
1756           finalize_command="$finalize_command $wl$qarg"
1757           continue
1758           ;;
1759         xcclinker)
1760           linker_flags="$linker_flags $qarg"
1761           compiler_flags="$compiler_flags $qarg"
1762           prev=
1763           compile_command="$compile_command $qarg"
1764           finalize_command="$finalize_command $qarg"
1765           continue
1766           ;;
1767         shrext)
1768           shrext_cmds="$arg"
1769           prev=
1770           continue
1771           ;;
1772         darwin_framework|darwin_framework_skip)
1773           test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1774           compile_command="$compile_command $arg"
1775           finalize_command="$finalize_command $arg"
1776           prev=
1777           continue
1778           ;;
1779         *)
1780           eval "$prev=\"\$arg\""
1781           prev=
1782           continue
1783           ;;
1784         esac
1785       fi # test -n "$prev"
1786
1787       prevarg="$arg"
1788
1789       case $arg in
1790       -all-static)
1791         if test -n "$link_static_flag"; then
1792           compile_command="$compile_command $link_static_flag"
1793           finalize_command="$finalize_command $link_static_flag"
1794         fi
1795         continue
1796         ;;
1797
1798       -allow-undefined)
1799         # FIXME: remove this flag sometime in the future.
1800         $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1801         continue
1802         ;;
1803
1804       -avoid-version)
1805         avoid_version=yes
1806         continue
1807         ;;
1808
1809       -dlopen)
1810         prev=dlfiles
1811         continue
1812         ;;
1813
1814       -dlpreopen)
1815         prev=dlprefiles
1816         continue
1817         ;;
1818
1819       -export-dynamic)
1820         export_dynamic=yes
1821         continue
1822         ;;
1823
1824       -export-symbols | -export-symbols-regex)
1825         if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1826           $echo "$modename: more than one -exported-symbols argument is not allowed"
1827           exit $EXIT_FAILURE
1828         fi
1829         if test "X$arg" = "X-export-symbols"; then
1830           prev=expsyms
1831         else
1832           prev=expsyms_regex
1833         fi
1834         continue
1835         ;;
1836
1837       -framework|-arch|-isysroot)
1838         case " $CC " in
1839           *" ${arg} ${1} "* | *" ${arg} ${1} "*) 
1840                 prev=darwin_framework_skip ;;
1841           *) compiler_flags="$compiler_flags $arg"
1842              prev=darwin_framework ;;
1843         esac
1844         compile_command="$compile_command $arg"
1845         finalize_command="$finalize_command $arg"
1846         continue
1847         ;;
1848
1849       -inst-prefix-dir)
1850         prev=inst_prefix
1851         continue
1852         ;;
1853
1854       # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1855       # so, if we see these flags be careful not to treat them like -L
1856       -L[A-Z][A-Z]*:*)
1857         case $with_gcc/$host in
1858         no/*-*-irix* | /*-*-irix*)
1859           compile_command="$compile_command $arg"
1860           finalize_command="$finalize_command $arg"
1861           ;;
1862         esac
1863         continue
1864         ;;
1865
1866       -L*)
1867         dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1868         # We need an absolute path.
1869         case $dir in
1870         [\\/]* | [A-Za-z]:[\\/]*) ;;
1871         *)
1872           absdir=`cd "$dir" && pwd`
1873           if test -z "$absdir"; then
1874             $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1875             absdir="$dir"
1876             notinst_path="$notinst_path $dir"
1877           fi
1878           dir="$absdir"
1879           ;;
1880         esac
1881         case "$deplibs " in
1882         *" -L$dir "*) ;;
1883         *)
1884           deplibs="$deplibs -L$dir"
1885           lib_search_path="$lib_search_path $dir"
1886           ;;
1887         esac
1888         case $host in
1889         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1890           testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1891           case :$dllsearchpath: in
1892           *":$dir:"*) ;;
1893           *) dllsearchpath="$dllsearchpath:$dir";;
1894           esac
1895           case :$dllsearchpath: in
1896           *":$testbindir:"*) ;;
1897           *) dllsearchpath="$dllsearchpath:$testbindir";;
1898           esac
1899           ;;
1900         esac
1901         continue
1902         ;;
1903
1904       -l*)
1905         if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1906           case $host in
1907           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1908             # These systems don't actually have a C or math library (as such)
1909             continue
1910             ;;
1911           *-*-os2*)
1912             # These systems don't actually have a C library (as such)
1913             test "X$arg" = "X-lc" && continue
1914             ;;
1915           *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1916             # Do not include libc due to us having libc/libc_r.
1917             test "X$arg" = "X-lc" && continue
1918             ;;
1919           *-*-rhapsody* | *-*-darwin1.[012])
1920             # Rhapsody C and math libraries are in the System framework
1921             deplibs="$deplibs -framework System"
1922             continue
1923             ;;
1924           *-*-sco3.2v5* | *-*-sco5v6*)
1925             # Causes problems with __ctype
1926             test "X$arg" = "X-lc" && continue
1927             ;;
1928           *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1929             # Compiler inserts libc in the correct place for threads to work
1930             test "X$arg" = "X-lc" && continue
1931             ;;
1932           esac
1933         elif test "X$arg" = "X-lc_r"; then
1934          case $host in
1935          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1936            # Do not include libc_r directly, use -pthread flag.
1937            continue
1938            ;;
1939          esac
1940         fi
1941         deplibs="$deplibs $arg"
1942         continue
1943         ;;
1944
1945       # Tru64 UNIX uses -model [arg] to determine the layout of C++
1946       # classes, name mangling, and exception handling.
1947       -model)
1948         compile_command="$compile_command $arg"
1949         compiler_flags="$compiler_flags $arg"
1950         finalize_command="$finalize_command $arg"
1951         prev=xcompiler
1952         continue
1953         ;;
1954
1955      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1956         compiler_flags="$compiler_flags $arg"
1957         compile_command="$compile_command $arg"
1958         finalize_command="$finalize_command $arg"
1959         continue
1960         ;;
1961
1962       -module)
1963         module=yes
1964         continue
1965         ;;
1966
1967       # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1968       # -r[0-9][0-9]* specifies the processor on the SGI compiler
1969       # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1970       # +DA*, +DD* enable 64-bit mode on the HP compiler
1971       # -q* pass through compiler args for the IBM compiler
1972       # -m* pass through architecture-specific compiler args for GCC
1973       # -m*, -t[45]*, -txscale* pass through architecture-specific
1974       # compiler args for GCC
1975       # -pg pass through profiling flag for GCC
1976       # @file GCC response files
1977       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1978       -t[45]*|-txscale*|@*)
1979
1980         # Unknown arguments in both finalize_command and compile_command need
1981         # to be aesthetically quoted because they are evaled later.
1982         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1983         case $arg in
1984         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
1985           arg="\"$arg\""
1986           ;;
1987         esac
1988         compile_command="$compile_command $arg"
1989         finalize_command="$finalize_command $arg"
1990         compiler_flags="$compiler_flags $arg"
1991         continue
1992         ;;
1993
1994       -shrext)
1995         prev=shrext
1996         continue
1997         ;;
1998
1999       -no-fast-install)
2000         fast_install=no
2001         continue
2002         ;;
2003
2004       -no-install)
2005         case $host in
2006         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
2007           # The PATH hackery in wrapper scripts is required on Windows
2008           # in order for the loader to find any dlls it needs.
2009           $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
2010           $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
2011           fast_install=no
2012           ;;
2013         *) no_install=yes ;;
2014         esac
2015         continue
2016         ;;
2017
2018       -no-undefined)
2019         allow_undefined=no
2020         continue
2021         ;;
2022
2023       -objectlist)
2024         prev=objectlist
2025         continue
2026         ;;
2027
2028       -o) prev=output ;;
2029
2030       -precious-files-regex)
2031         prev=precious_regex
2032         continue
2033         ;;
2034
2035       -release)
2036         prev=release
2037         continue
2038         ;;
2039
2040       -rpath)
2041         prev=rpath
2042         continue
2043         ;;
2044
2045       -R)
2046         prev=xrpath
2047         continue
2048         ;;
2049
2050       -R*)
2051         dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
2052         # We need an absolute path.
2053         case $dir in
2054         [\\/]* | [A-Za-z]:[\\/]*) ;;
2055         *)
2056           $echo "$modename: only absolute run-paths are allowed" 1>&2
2057           exit $EXIT_FAILURE
2058           ;;
2059         esac
2060         case "$xrpath " in
2061         *" $dir "*) ;;
2062         *) xrpath="$xrpath $dir" ;;
2063         esac
2064         continue
2065         ;;
2066
2067       -static)
2068         # The effects of -static are defined in a previous loop.
2069         # We used to do the same as -all-static on platforms that
2070         # didn't have a PIC flag, but the assumption that the effects
2071         # would be equivalent was wrong.  It would break on at least
2072         # Digital Unix and AIX.
2073         continue
2074         ;;
2075
2076       -thread-safe)
2077         thread_safe=yes
2078         continue
2079         ;;
2080
2081       -version-info)
2082         prev=vinfo
2083         continue
2084         ;;
2085       -version-number)
2086         prev=vinfo
2087         vinfo_number=yes
2088         continue
2089         ;;
2090
2091       -Wc,*)
2092         args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
2093         arg=
2094         save_ifs="$IFS"; IFS=','
2095         for flag in $args; do
2096           IFS="$save_ifs"
2097           case $flag in
2098             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
2099             flag="\"$flag\""
2100             ;;
2101           esac
2102           arg="$arg $wl$flag"
2103           compiler_flags="$compiler_flags $flag"
2104         done
2105         IFS="$save_ifs"
2106         arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
2107         ;;
2108
2109       -Wl,*)
2110         args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
2111         arg=
2112         save_ifs="$IFS"; IFS=','
2113         for flag in $args; do
2114           IFS="$save_ifs"
2115           case $flag in
2116             *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
2117             flag="\"$flag\""
2118             ;;
2119           esac
2120           arg="$arg $wl$flag"
2121           compiler_flags="$compiler_flags $wl$flag"
2122           linker_flags="$linker_flags $flag"
2123         done
2124         IFS="$save_ifs"
2125         arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
2126         ;;
2127
2128       -Xcompiler)
2129         prev=xcompiler
2130         continue
2131         ;;
2132
2133       -Xlinker)
2134         prev=xlinker
2135         continue
2136         ;;
2137
2138       -XCClinker)
2139         prev=xcclinker
2140         continue
2141         ;;
2142
2143       # Some other compiler flag.
2144       -* | +*)
2145         # Unknown arguments in both finalize_command and compile_command need
2146         # to be aesthetically quoted because they are evaled later.
2147         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2148         case $arg in
2149         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
2150           arg="\"$arg\""
2151           ;;
2152         esac
2153         ;;
2154
2155       *.$objext)
2156         # A standard object.
2157         objs="$objs $arg"
2158         ;;
2159
2160       *.lo)
2161         # A libtool-controlled object.
2162
2163         # Check to see that this really is a libtool object.
2164         if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2165           pic_object=
2166           non_pic_object=
2167
2168           # Read the .lo file
2169           # If there is no directory component, then add one.
2170           case $arg in
2171           */* | *\\*) . $arg ;;
2172           *) . ./$arg ;;
2173           esac
2174
2175           if test -z "$pic_object" || \
2176              test -z "$non_pic_object" ||
2177              test "$pic_object" = none && \
2178              test "$non_pic_object" = none; then
2179             $echo "$modename: cannot find name of object for \`$arg'" 1>&2
2180             exit $EXIT_FAILURE
2181           fi
2182
2183           # Extract subdirectory from the argument.
2184           xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
2185           if test "X$xdir" = "X$arg"; then
2186             xdir=
2187           else
2188             xdir="$xdir/"
2189           fi
2190
2191           if test "$pic_object" != none; then
2192             # Prepend the subdirectory the object is found in.
2193             pic_object="$xdir$pic_object"
2194
2195             if test "$prev" = dlfiles; then
2196               if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
2197                 dlfiles="$dlfiles $pic_object"
2198                 prev=
2199                 continue
2200               else
2201                 # If libtool objects are unsupported, then we need to preload.
2202                 prev=dlprefiles
2203               fi
2204             fi
2205
2206             # CHECK ME:  I think I busted this.  -Ossama
2207             if test "$prev" = dlprefiles; then
2208               # Preload the old-style object.
2209               dlprefiles="$dlprefiles $pic_object"
2210               prev=
2211             fi
2212
2213             # A PIC object.
2214             libobjs="$libobjs $pic_object"
2215             arg="$pic_object"
2216           fi
2217
2218           # Non-PIC object.
2219           if test "$non_pic_object" != none; then
2220             # Prepend the subdirectory the object is found in.
2221             non_pic_object="$xdir$non_pic_object"
2222
2223             # A standard non-PIC object
2224             non_pic_objects="$non_pic_objects $non_pic_object"
2225             if test -z "$pic_object" || test "$pic_object" = none ; then
2226               arg="$non_pic_object"
2227             fi
2228           else
2229             # If the PIC object exists, use it instead.
2230             # $xdir was prepended to $pic_object above.
2231             non_pic_object="$pic_object"
2232             non_pic_objects="$non_pic_objects $non_pic_object"
2233           fi
2234         else
2235           # Only an error if not doing a dry-run.
2236           if test -z "$run"; then
2237             $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
2238             exit $EXIT_FAILURE
2239           else
2240             # Dry-run case.
2241
2242             # Extract subdirectory from the argument.
2243             xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
2244             if test "X$xdir" = "X$arg"; then
2245               xdir=
2246             else
2247               xdir="$xdir/"
2248             fi
2249
2250             pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
2251             non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
2252             libobjs="$libobjs $pic_object"
2253             non_pic_objects="$non_pic_objects $non_pic_object"
2254           fi
2255         fi
2256         ;;
2257
2258       *.$libext)
2259         # An archive.
2260         deplibs="$deplibs $arg"
2261         old_deplibs="$old_deplibs $arg"
2262         continue
2263         ;;
2264
2265       *.la)
2266         # A libtool-controlled library.
2267
2268         if test "$prev" = dlfiles; then
2269           # This library was specified with -dlopen.
2270           dlfiles="$dlfiles $arg"
2271           prev=
2272         elif test "$prev" = dlprefiles; then
2273           # The library was specified with -dlpreopen.
2274           dlprefiles="$dlprefiles $arg"
2275           prev=
2276         else
2277           deplibs="$deplibs $arg"
2278         fi
2279         continue
2280         ;;
2281
2282       # Some other compiler argument.
2283       *)
2284         # Unknown arguments in both finalize_command and compile_command need
2285         # to be aesthetically quoted because they are evaled later.
2286         arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2287         case $arg in
2288         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
2289           arg="\"$arg\""
2290           ;;
2291         esac
2292         ;;
2293       esac # arg
2294
2295       # Now actually substitute the argument into the commands.
2296       if test -n "$arg"; then
2297         compile_command="$compile_command $arg"
2298         finalize_command="$finalize_command $arg"
2299       fi
2300     done # argument parsing loop
2301
2302     if test -n "$prev"; then
2303       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
2304       $echo "$help" 1>&2
2305       exit $EXIT_FAILURE
2306     fi
2307
2308     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
2309       eval arg=\"$export_dynamic_flag_spec\"
2310       compile_command="$compile_command $arg"
2311       finalize_command="$finalize_command $arg"
2312     fi
2313
2314     oldlibs=
2315     # calculate the name of the file, without its directory
2316     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2317     libobjs_save="$libobjs"
2318
2319     if test -n "$shlibpath_var"; then
2320       # get the directories listed in $shlibpath_var
2321       eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2322     else
2323       shlib_search_path=
2324     fi
2325     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2326     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2327
2328     output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2329     if test "X$output_objdir" = "X$output"; then
2330       output_objdir="$objdir"
2331     else
2332       output_objdir="$output_objdir/$objdir"
2333     fi
2334     # Create the object directory.
2335     if test ! -d "$output_objdir"; then
2336       $show "$mkdir $output_objdir"
2337       $run $mkdir $output_objdir
2338       exit_status=$?
2339       if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
2340         exit $exit_status
2341       fi
2342     fi
2343
2344     # Determine the type of output
2345     case $output in
2346     "")
2347       $echo "$modename: you must specify an output file" 1>&2
2348       $echo "$help" 1>&2
2349       exit $EXIT_FAILURE
2350       ;;
2351     *.$libext) linkmode=oldlib ;;
2352     *.lo | *.$objext) linkmode=obj ;;
2353     *.la) linkmode=lib ;;
2354     *) linkmode=prog ;; # Anything else should be a program.
2355     esac
2356
2357     case $host in
2358     *cygwin* | *mingw* | *pw32*)
2359       # don't eliminate duplications in $postdeps and $predeps
2360       duplicate_compiler_generated_deps=yes
2361       ;;
2362     *)
2363       duplicate_compiler_generated_deps=$duplicate_deps
2364       ;;
2365     esac
2366     specialdeplibs=
2367
2368     libs=
2369     # Find all interdependent deplibs by searching for libraries
2370     # that are linked more than once (e.g. -la -lb -la)
2371     for deplib in $deplibs; do
2372       if test "X$duplicate_deps" = "Xyes" ; then
2373         case "$libs " in
2374         *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2375         esac
2376       fi
2377       libs="$libs $deplib"
2378     done
2379
2380     if test "$linkmode" = lib; then
2381       libs="$predeps $libs $compiler_lib_search_path $postdeps"
2382
2383       # Compute libraries that are listed more than once in $predeps
2384       # $postdeps and mark them as special (i.e., whose duplicates are
2385       # not to be eliminated).
2386       pre_post_deps=
2387       if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2388         for pre_post_dep in $predeps $postdeps; do
2389           case "$pre_post_deps " in
2390           *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2391           esac
2392           pre_post_deps="$pre_post_deps $pre_post_dep"
2393         done
2394       fi
2395       pre_post_deps=
2396     fi
2397
2398     deplibs=
2399     newdependency_libs=
2400     newlib_search_path=
2401     need_relink=no # whether we're linking any uninstalled libtool libraries
2402     notinst_deplibs= # not-installed libtool libraries
2403     case $linkmode in
2404     lib)
2405         passes="conv link"
2406         for file in $dlfiles $dlprefiles; do
2407           case $file in
2408           *.la) ;;
2409           *)
2410             $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2411             exit $EXIT_FAILURE
2412             ;;
2413           esac
2414         done
2415         ;;
2416     prog)
2417         compile_deplibs=
2418         finalize_deplibs=
2419         alldeplibs=no
2420         newdlfiles=
2421         newdlprefiles=
2422         passes="conv scan dlopen dlpreopen link"
2423         ;;
2424     *)  passes="conv"
2425         ;;
2426     esac
2427     for pass in $passes; do
2428       if test "$linkmode,$pass" = "lib,link" ||
2429          test "$linkmode,$pass" = "prog,scan"; then
2430         libs="$deplibs"
2431         deplibs=
2432       fi
2433       if test "$linkmode" = prog; then
2434         case $pass in
2435         dlopen) libs="$dlfiles" ;;
2436         dlpreopen) libs="$dlprefiles" ;;
2437         link)
2438           libs="$deplibs %DEPLIBS%"
2439           test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
2440           ;;
2441         esac
2442       fi
2443       if test "$pass" = dlopen; then
2444         # Collect dlpreopened libraries
2445         save_deplibs="$deplibs"
2446         deplibs=
2447       fi
2448       for deplib in $libs; do
2449         lib=
2450         found=no
2451         case $deplib in
2452         -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2453           if test "$linkmode,$pass" = "prog,link"; then
2454             compile_deplibs="$deplib $compile_deplibs"
2455             finalize_deplibs="$deplib $finalize_deplibs"
2456           else
2457             compiler_flags="$compiler_flags $deplib"
2458           fi
2459           continue
2460           ;;
2461         -l*)
2462           if test "$linkmode" != lib && test "$linkmode" != prog; then
2463             $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2464             continue
2465           fi
2466           name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2467           for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2468             for search_ext in .la $std_shrext .so .a; do
2469               # Search the libtool library
2470               lib="$searchdir/lib${name}${search_ext}"
2471               if test -f "$lib"; then
2472                 if test "$search_ext" = ".la"; then
2473                   found=yes
2474                 else
2475                   found=no
2476                 fi
2477                 break 2
2478               fi
2479             done
2480           done
2481           if test "$found" != yes; then
2482             # deplib doesn't seem to be a libtool library
2483             if test "$linkmode,$pass" = "prog,link"; then
2484               compile_deplibs="$deplib $compile_deplibs"
2485               finalize_deplibs="$deplib $finalize_deplibs"
2486             else
2487               deplibs="$deplib $deplibs"
2488               test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2489             fi
2490             continue
2491           else # deplib is a libtool library
2492             # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2493             # We need to do some special things here, and not later.
2494             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2495               case " $predeps $postdeps " in
2496               *" $deplib "*)
2497                 if (${SED} -e '2q' $lib |
2498                     grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2499                   library_names=
2500                   old_library=
2501                   case $lib in
2502                   */* | *\\*) . $lib ;;
2503                   *) . ./$lib ;;
2504                   esac
2505                   for l in $old_library $library_names; do
2506                     ll="$l"
2507                   done
2508                   if test "X$ll" = "X$old_library" ; then # only static version available
2509                     found=no
2510                     ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2511                     test "X$ladir" = "X$lib" && ladir="."
2512                     lib=$ladir/$old_library
2513                     if test "$linkmode,$pass" = "prog,link"; then
2514                       compile_deplibs="$deplib $compile_deplibs"
2515                       finalize_deplibs="$deplib $finalize_deplibs"
2516                     else
2517                       deplibs="$deplib $deplibs"
2518                       test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2519                     fi
2520                     continue
2521                   fi
2522                 fi
2523                 ;;
2524               *) ;;
2525               esac
2526             fi
2527           fi
2528           ;; # -l
2529         -L*)
2530           case $linkmode in
2531           lib)
2532             deplibs="$deplib $deplibs"
2533             test "$pass" = conv && continue
2534             newdependency_libs="$deplib $newdependency_libs"
2535             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2536             ;;
2537           prog)
2538             if test "$pass" = conv; then
2539               deplibs="$deplib $deplibs"
2540               continue
2541             fi
2542             if test "$pass" = scan; then
2543               deplibs="$deplib $deplibs"
2544             else
2545               compile_deplibs="$deplib $compile_deplibs"
2546               finalize_deplibs="$deplib $finalize_deplibs"
2547             fi
2548             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2549             ;;
2550           *)
2551             $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2552             ;;
2553           esac # linkmode
2554           continue
2555           ;; # -L
2556         -R*)
2557           if test "$pass" = link; then
2558             dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2559             # Make sure the xrpath contains only unique directories.
2560             case "$xrpath " in
2561             *" $dir "*) ;;
2562             *) xrpath="$xrpath $dir" ;;
2563             esac
2564           fi
2565           deplibs="$deplib $deplibs"
2566           continue
2567           ;;
2568         *.la) lib="$deplib" ;;
2569         *.$libext)
2570           if test "$pass" = conv; then
2571             deplibs="$deplib $deplibs"
2572             continue
2573           fi
2574           case $linkmode in
2575           lib)
2576             valid_a_lib=no
2577             case $deplibs_check_method in
2578               match_pattern*)
2579                 set dummy $deplibs_check_method
2580                 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2581                 if eval $echo \"$deplib\" 2>/dev/null \
2582                     | $SED 10q \
2583                     | $EGREP "$match_pattern_regex" > /dev/null; then
2584                   valid_a_lib=yes
2585                 fi
2586                 ;;
2587               pass_all)
2588                 valid_a_lib=yes
2589                 ;;
2590             esac
2591             if test "$valid_a_lib" != yes; then
2592               $echo
2593               $echo "*** Warning: Trying to link with static lib archive $deplib."
2594               $echo "*** I have the capability to make that library automatically link in when"
2595               $echo "*** you link to this library.  But I can only do this if you have a"
2596               $echo "*** shared version of the library, which you do not appear to have"
2597               $echo "*** because the file extensions .$libext of this argument makes me believe"
2598               $echo "*** that it is just a static archive that I should not used here."
2599             else
2600               $echo
2601               $echo "*** Warning: Linking the shared library $output against the"
2602               $echo "*** static library $deplib is not portable!"
2603               deplibs="$deplib $deplibs"
2604             fi
2605             continue
2606             ;;
2607           prog)
2608             if test "$pass" != link; then
2609               deplibs="$deplib $deplibs"
2610             else
2611               compile_deplibs="$deplib $compile_deplibs"
2612               finalize_deplibs="$deplib $finalize_deplibs"
2613             fi
2614             continue
2615             ;;
2616           esac # linkmode
2617           ;; # *.$libext
2618         *.lo | *.$objext)
2619           if test "$pass" = conv; then
2620             deplibs="$deplib $deplibs"
2621           elif test "$linkmode" = prog; then
2622             if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2623               # If there is no dlopen support or we're linking statically,
2624               # we need to preload.
2625               newdlprefiles="$newdlprefiles $deplib"
2626               compile_deplibs="$deplib $compile_deplibs"
2627               finalize_deplibs="$deplib $finalize_deplibs"
2628             else
2629               newdlfiles="$newdlfiles $deplib"
2630             fi
2631           fi
2632           continue
2633           ;;
2634         %DEPLIBS%)
2635           alldeplibs=yes
2636           continue
2637           ;;
2638         esac # case $deplib
2639         if test "$found" = yes || test -f "$lib"; then :
2640         else
2641           $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2642           exit $EXIT_FAILURE
2643         fi
2644
2645         # Check to see that this really is a libtool archive.
2646         if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2647         else
2648           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2649           exit $EXIT_FAILURE
2650         fi
2651
2652         ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2653         test "X$ladir" = "X$lib" && ladir="."
2654
2655         dlname=
2656         dlopen=
2657         dlpreopen=
2658         libdir=
2659         library_names=
2660         old_library=
2661         # If the library was installed with an old release of libtool,
2662         # it will not redefine variables installed, or shouldnotlink
2663         installed=yes
2664         shouldnotlink=no
2665         avoidtemprpath=
2666
2667
2668         # Read the .la file
2669         case $lib in
2670         */* | *\\*) . $lib ;;
2671         *) . ./$lib ;;
2672         esac
2673
2674         if test "$linkmode,$pass" = "lib,link" ||
2675            test "$linkmode,$pass" = "prog,scan" ||
2676            { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2677           test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2678           test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2679         fi
2680
2681         if test "$pass" = conv; then
2682           # Only check for convenience libraries
2683           deplibs="$lib $deplibs"
2684           if test -z "$libdir"; then
2685             if test -z "$old_library"; then
2686               $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2687               exit $EXIT_FAILURE
2688             fi
2689             # It is a libtool convenience library, so add in its objects.
2690             convenience="$convenience $ladir/$objdir/$old_library"
2691             old_convenience="$old_convenience $ladir/$objdir/$old_library"
2692             tmp_libs=
2693             for deplib in $dependency_libs; do
2694               deplibs="$deplib $deplibs"
2695               if test "X$duplicate_deps" = "Xyes" ; then
2696                 case "$tmp_libs " in
2697                 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2698                 esac
2699               fi
2700               tmp_libs="$tmp_libs $deplib"
2701             done
2702           elif test "$linkmode" != prog && test "$linkmode" != lib; then
2703             $echo "$modename: \`$lib' is not a convenience library" 1>&2
2704             exit $EXIT_FAILURE
2705           fi
2706           continue
2707         fi # $pass = conv
2708
2709
2710         # Get the name of the library we link against.
2711         linklib=
2712         for l in $old_library $library_names; do
2713           linklib="$l"
2714         done
2715         if test -z "$linklib"; then
2716           $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2717           exit $EXIT_FAILURE
2718         fi
2719
2720         # This library was specified with -dlopen.
2721         if test "$pass" = dlopen; then
2722           if test -z "$libdir"; then
2723             $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2724             exit $EXIT_FAILURE
2725           fi
2726           if test -z "$dlname" ||
2727              test "$dlopen_support" != yes ||
2728              test "$build_libtool_libs" = no; then
2729             # If there is no dlname, no dlopen support or we're linking
2730             # statically, we need to preload.  We also need to preload any
2731             # dependent libraries so libltdl's deplib preloader doesn't
2732             # bomb out in the load deplibs phase.
2733             dlprefiles="$dlprefiles $lib $dependency_libs"
2734           else
2735             newdlfiles="$newdlfiles $lib"
2736           fi
2737           continue
2738         fi # $pass = dlopen
2739
2740         # We need an absolute path.
2741         case $ladir in
2742         [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2743         *)
2744           abs_ladir=`cd "$ladir" && pwd`
2745           if test -z "$abs_ladir"; then
2746             $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2747             $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2748             abs_ladir="$ladir"
2749           fi
2750           ;;
2751         esac
2752         laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2753
2754         # Find the relevant object directory and library name.
2755         if test "X$installed" = Xyes; then
2756           if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2757             $echo "$modename: warning: library \`$lib' was moved." 1>&2
2758             dir="$ladir"
2759             absdir="$abs_ladir"
2760             libdir="$abs_ladir"
2761           else
2762             dir="$libdir"
2763             absdir="$libdir"
2764           fi
2765           test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2766         else
2767           if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2768             dir="$ladir"
2769             absdir="$abs_ladir"
2770             # Remove this search path later
2771             notinst_path="$notinst_path $abs_ladir"
2772           else
2773             dir="$ladir/$objdir"
2774             absdir="$abs_ladir/$objdir"
2775             # Remove this search path later
2776             notinst_path="$notinst_path $abs_ladir"
2777           fi
2778         fi # $installed = yes
2779         name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2780
2781         # This library was specified with -dlpreopen.
2782         if test "$pass" = dlpreopen; then
2783           if test -z "$libdir"; then
2784             $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2785             exit $EXIT_FAILURE
2786           fi
2787           # Prefer using a static library (so that no silly _DYNAMIC symbols
2788           # are required to link).
2789           if test -n "$old_library"; then
2790             newdlprefiles="$newdlprefiles $dir/$old_library"
2791           # Otherwise, use the dlname, so that lt_dlopen finds it.
2792           elif test -n "$dlname"; then
2793             newdlprefiles="$newdlprefiles $dir/$dlname"
2794           else
2795             newdlprefiles="$newdlprefiles $dir/$linklib"
2796           fi
2797         fi # $pass = dlpreopen
2798
2799         if test -z "$libdir"; then
2800           # Link the convenience library
2801           if test "$linkmode" = lib; then
2802             deplibs="$dir/$old_library $deplibs"
2803           elif test "$linkmode,$pass" = "prog,link"; then
2804             compile_deplibs="$dir/$old_library $compile_deplibs"
2805             finalize_deplibs="$dir/$old_library $finalize_deplibs"
2806           else
2807             deplibs="$lib $deplibs" # used for prog,scan pass
2808           fi
2809           continue
2810         fi
2811
2812
2813         if test "$linkmode" = prog && test "$pass" != link; then
2814           newlib_search_path="$newlib_search_path $ladir"
2815           deplibs="$lib $deplibs"
2816
2817           linkalldeplibs=no
2818           if test "$link_all_deplibs" != no || test -z "$library_names" ||
2819              test "$build_libtool_libs" = no; then
2820             linkalldeplibs=yes
2821           fi
2822
2823           tmp_libs=
2824           for deplib in $dependency_libs; do
2825             case $deplib in
2826             -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2827             esac
2828             # Need to link against all dependency_libs?
2829             if test "$linkalldeplibs" = yes; then
2830               deplibs="$deplib $deplibs"
2831             else
2832               # Need to hardcode shared library paths
2833               # or/and link against static libraries
2834               newdependency_libs="$deplib $newdependency_libs"
2835             fi
2836             if test "X$duplicate_deps" = "Xyes" ; then
2837               case "$tmp_libs " in
2838               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2839               esac
2840             fi
2841             tmp_libs="$tmp_libs $deplib"
2842           done # for deplib
2843           continue
2844         fi # $linkmode = prog...
2845
2846         if test "$linkmode,$pass" = "prog,link"; then
2847           if test -n "$library_names" &&
2848              { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2849             # We need to hardcode the library path
2850             if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2851               # Make sure the rpath contains only unique directories.
2852               case "$temp_rpath " in
2853               *" $dir "*) ;;
2854               *" $absdir "*) ;;
2855               *) temp_rpath="$temp_rpath $absdir" ;;
2856               esac
2857             fi
2858
2859             # Hardcode the library path.
2860             # Skip directories that are in the system default run-time
2861             # search path.
2862             case " $sys_lib_dlsearch_path " in
2863             *" $absdir "*) ;;
2864             *)
2865               case "$compile_rpath " in
2866               *" $absdir "*) ;;
2867               *) compile_rpath="$compile_rpath $absdir"
2868               esac
2869               ;;
2870             esac
2871             case " $sys_lib_dlsearch_path " in
2872             *" $libdir "*) ;;
2873             *)
2874               case "$finalize_rpath " in
2875               *" $libdir "*) ;;
2876               *) finalize_rpath="$finalize_rpath $libdir"
2877               esac
2878               ;;
2879             esac
2880           fi # $linkmode,$pass = prog,link...
2881
2882           if test "$alldeplibs" = yes &&
2883              { test "$deplibs_check_method" = pass_all ||
2884                { test "$build_libtool_libs" = yes &&
2885                  test -n "$library_names"; }; }; then
2886             # We only need to search for static libraries
2887             continue
2888           fi
2889         fi
2890
2891         link_static=no # Whether the deplib will be linked statically
2892         use_static_libs=$prefer_static_libs
2893         if test "$use_static_libs" = built && test "$installed" = yes ; then
2894           use_static_libs=no
2895         fi
2896         if test -n "$library_names" &&
2897            { test "$use_static_libs" = no || test -z "$old_library"; }; then
2898           if test "$installed" = no; then
2899             notinst_deplibs="$notinst_deplibs $lib"
2900             need_relink=yes
2901           fi
2902           # This is a shared library
2903
2904           # Warn about portability, can't link against -module's on
2905           # some systems (darwin)
2906           if test "$shouldnotlink" = yes && test "$pass" = link ; then
2907             $echo
2908             if test "$linkmode" = prog; then
2909               $echo "*** Warning: Linking the executable $output against the loadable module"
2910             else
2911               $echo "*** Warning: Linking the shared library $output against the loadable module"
2912             fi
2913             $echo "*** $linklib is not portable!"
2914           fi
2915           if test "$linkmode" = lib &&
2916              test "$hardcode_into_libs" = yes; then
2917             # Hardcode the library path.
2918             # Skip directories that are in the system default run-time
2919             # search path.
2920             case " $sys_lib_dlsearch_path " in
2921             *" $absdir "*) ;;
2922             *)
2923               case "$compile_rpath " in
2924               *" $absdir "*) ;;
2925               *) compile_rpath="$compile_rpath $absdir"
2926               esac
2927               ;;
2928             esac
2929             case " $sys_lib_dlsearch_path " in
2930             *" $libdir "*) ;;
2931             *)
2932               case "$finalize_rpath " in
2933               *" $libdir "*) ;;
2934               *) finalize_rpath="$finalize_rpath $libdir"
2935               esac
2936               ;;
2937             esac
2938           fi
2939
2940           if test -n "$old_archive_from_expsyms_cmds"; then
2941             # figure out the soname
2942             set dummy $library_names
2943             realname="$2"
2944             shift; shift
2945             libname=`eval \\$echo \"$libname_spec\"`
2946             # use dlname if we got it. it's perfectly good, no?
2947             if test -n "$dlname"; then
2948               soname="$dlname"
2949             elif test -n "$soname_spec"; then
2950               # bleh windows
2951               case $host in
2952               *cygwin* | mingw*)
2953                 major=`expr $current - $age`
2954                 versuffix="-$major"
2955                 ;;
2956               esac
2957               eval soname=\"$soname_spec\"
2958             else
2959               soname="$realname"
2960             fi
2961
2962             # Make a new name for the extract_expsyms_cmds to use
2963             soroot="$soname"
2964             soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2965             newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2966
2967             # If the library has no export list, then create one now
2968             if test -f "$output_objdir/$soname-def"; then :
2969             else
2970               $show "extracting exported symbol list from \`$soname'"
2971               save_ifs="$IFS"; IFS='~'
2972               cmds=$extract_expsyms_cmds
2973               for cmd in $cmds; do
2974                 IFS="$save_ifs"
2975                 eval cmd=\"$cmd\"
2976                 $show "$cmd"
2977                 $run eval "$cmd" || exit $?
2978               done
2979               IFS="$save_ifs"
2980             fi
2981
2982             # Create $newlib
2983             if test -f "$output_objdir/$newlib"; then :; else
2984               $show "generating import library for \`$soname'"
2985               save_ifs="$IFS"; IFS='~'
2986               cmds=$old_archive_from_expsyms_cmds
2987               for cmd in $cmds; do
2988                 IFS="$save_ifs"
2989                 eval cmd=\"$cmd\"
2990                 $show "$cmd"
2991                 $run eval "$cmd" || exit $?
2992               done
2993               IFS="$save_ifs"
2994             fi
2995             # make sure the library variables are pointing to the new library
2996             dir=$output_objdir
2997             linklib=$newlib
2998           fi # test -n "$old_archive_from_expsyms_cmds"
2999
3000           if test "$linkmode" = prog || test "$mode" != relink; then
3001             add_shlibpath=
3002             add_dir=
3003             add=
3004             lib_linked=yes
3005             case $hardcode_action in
3006             immediate | unsupported)
3007               if test "$hardcode_direct" = no; then
3008                 add="$dir/$linklib"
3009                 case $host in
3010                   *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
3011                   *-*-sysv4*uw2*) add_dir="-L$dir" ;;
3012                   *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
3013                     *-*-unixware7*) add_dir="-L$dir" ;;
3014                   *-*-darwin* )
3015                     # if the lib is a module then we can not link against
3016                     # it, someone is ignoring the new warnings I added
3017                     if /usr/bin/file -L $add 2> /dev/null |
3018                       $EGREP ": [^:]* bundle" >/dev/null ; then
3019                       $echo "** Warning, lib $linklib is a module, not a shared library"
3020                       if test -z "$old_library" ; then
3021                         $echo
3022                         $echo "** And there doesn't seem to be a static archive available"
3023                         $echo "** The link will probably fail, sorry"
3024                       else
3025                         add="$dir/$old_library"
3026                       fi
3027                     fi
3028                 esac
3029               elif test "$hardcode_minus_L" = no; then
3030                 case $host in
3031                 *-*-sunos*) add_shlibpath="$dir" ;;
3032                 esac
3033                 add_dir="-L$dir"
3034                 add="-l$name"
3035               elif test "$hardcode_shlibpath_var" = no; then
3036                 add_shlibpath="$dir"
3037                 add="-l$name"
3038               else
3039                 lib_linked=no
3040               fi
3041               ;;
3042             relink)
3043               if test "$hardcode_direct" = yes; then
3044                 add="$dir/$linklib"
3045               elif test "$hardcode_minus_L" = yes; then
3046                 add_dir="-L$dir"
3047                 # Try looking first in the location we're being installed to.
3048                 if test -n "$inst_prefix_dir"; then
3049                   case $libdir in
3050                     [\\/]*)
3051                       add_dir="$add_dir -L$inst_prefix_dir$libdir"
3052                       ;;
3053                   esac
3054                 fi
3055                 add="-l$name"
3056               elif test "$hardcode_shlibpath_var" = yes; then
3057                 add_shlibpath="$dir"
3058                 add="-l$name"
3059               else
3060                 lib_linked=no
3061               fi
3062               ;;
3063             *) lib_linked=no ;;
3064             esac
3065
3066             if test "$lib_linked" != yes; then
3067               $echo "$modename: configuration error: unsupported hardcode properties"
3068               exit $EXIT_FAILURE
3069             fi
3070
3071             if test -n "$add_shlibpath"; then
3072               case :$compile_shlibpath: in
3073               *":$add_shlibpath:"*) ;;
3074               *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
3075               esac
3076             fi
3077             if test "$linkmode" = prog; then
3078               test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
3079               test -n "$add" && compile_deplibs="$add $compile_deplibs"
3080             else
3081               test -n "$add_dir" && deplibs="$add_dir $deplibs"
3082               test -n "$add" && deplibs="$add $deplibs"
3083               if test "$hardcode_direct" != yes && \
3084                  test "$hardcode_minus_L" != yes && \
3085                  test "$hardcode_shlibpath_var" = yes; then
3086                 case :$finalize_shlibpath: in
3087                 *":$libdir:"*) ;;
3088                 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
3089                 esac
3090               fi
3091             fi
3092           fi
3093
3094           if test "$linkmode" = prog || test "$mode" = relink; then
3095             add_shlibpath=
3096             add_dir=
3097             add=
3098             # Finalize command for both is simple: just hardcode it.
3099             if test "$hardcode_direct" = yes; then
3100               add="$libdir/$linklib"
3101             elif test "$hardcode_minus_L" = yes; then
3102               add_dir="-L$libdir"
3103               add="-l$name"
3104             elif test "$hardcode_shlibpath_var" = yes; then
3105               case :$finalize_shlibpath: in
3106               *":$libdir:"*) ;;
3107               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
3108               esac
3109               add="-l$name"
3110             elif test "$hardcode_automatic" = yes; then
3111               if test -n "$inst_prefix_dir" &&
3112                  test -f "$inst_prefix_dir$libdir/$linklib" ; then
3113                 add="$inst_prefix_dir$libdir/$linklib"
3114               else
3115                 add="$libdir/$linklib"
3116               fi
3117             else
3118               # We cannot seem to hardcode it, guess we'll fake it.
3119               add_dir="-L$libdir"
3120               # Try looking first in the location we're being installed to.
3121               if test -n "$inst_prefix_dir"; then
3122                 case $libdir in
3123                   [\\/]*)
3124                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
3125                     ;;
3126                 esac
3127               fi
3128               add="-l$name"
3129             fi
3130
3131             if test "$linkmode" = prog; then
3132               test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
3133               test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
3134             else
3135               test -n "$add_dir" && deplibs="$add_dir $deplibs"
3136               test -n "$add" && deplibs="$add $deplibs"
3137             fi
3138           fi
3139         elif test "$linkmode" = prog; then
3140           # Here we assume that one of hardcode_direct or hardcode_minus_L
3141           # is not unsupported.  This is valid on all known static and
3142           # shared platforms.
3143           if test "$hardcode_direct" != unsupported; then
3144             test -n "$old_library" && linklib="$old_library"
3145             compile_deplibs="$dir/$linklib $compile_deplibs"
3146             finalize_deplibs="$dir/$linklib $finalize_deplibs"
3147           else
3148             compile_deplibs="-l$name -L$dir $compile_deplibs"
3149             finalize_deplibs="-l$name -L$dir $finalize_deplibs"
3150           fi
3151         elif test "$build_libtool_libs" = yes; then
3152           # Not a shared library
3153           if test "$deplibs_check_method" != pass_all; then
3154             # We're trying link a shared library against a static one
3155             # but the system doesn't support it.
3156
3157             # Just print a warning and add the library to dependency_libs so
3158             # that the program can be linked against the static library.
3159             $echo
3160             $echo "*** Warning: This system can not link to static lib archive $lib."
3161             $echo "*** I have the capability to make that library automatically link in when"
3162             $echo "*** you link to this library.  But I can only do this if you have a"
3163             $echo "*** shared version of the library, which you do not appear to have."
3164             if test "$module" = yes; then
3165               $echo "*** But as you try to build a module library, libtool will still create "
3166               $echo "*** a static module, that should work as long as the dlopening application"
3167               $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
3168               if test -z "$global_symbol_pipe"; then
3169                 $echo
3170                 $echo "*** However, this would only work if libtool was able to extract symbol"
3171                 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3172                 $echo "*** not find such a program.  So, this module is probably useless."
3173                 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3174               fi
3175               if test "$build_old_libs" = no; then
3176                 build_libtool_libs=module
3177                 build_old_libs=yes
3178               else
3179                 build_libtool_libs=no
3180               fi
3181             fi
3182           else
3183             deplibs="$dir/$old_library $deplibs"
3184             link_static=yes
3185           fi
3186         fi # link shared/static library?
3187
3188         if test "$linkmode" = lib; then
3189           if test -n "$dependency_libs" &&
3190              { test "$hardcode_into_libs" != yes ||
3191                test "$build_old_libs" = yes ||
3192                test "$link_static" = yes; }; then
3193             # Extract -R from dependency_libs
3194             temp_deplibs=
3195             for libdir in $dependency_libs; do
3196               case $libdir in
3197               -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
3198                    case " $xrpath " in
3199                    *" $temp_xrpath "*) ;;
3200                    *) xrpath="$xrpath $temp_xrpath";;
3201                    esac;;
3202               *) temp_deplibs="$temp_deplibs $libdir";;
3203               esac
3204             done
3205             dependency_libs="$temp_deplibs"
3206           fi
3207
3208           newlib_search_path="$newlib_search_path $absdir"
3209           # Link against this library
3210           test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
3211           # ... and its dependency_libs
3212           tmp_libs=
3213           for deplib in $dependency_libs; do
3214             newdependency_libs="$deplib $newdependency_libs"
3215             if test "X$duplicate_deps" = "Xyes" ; then
3216               case "$tmp_libs " in
3217               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
3218               esac
3219             fi
3220             tmp_libs="$tmp_libs $deplib"
3221           done
3222
3223           if test "$link_all_deplibs" != no; then
3224             # Add the search paths of all dependency libraries
3225             for deplib in $dependency_libs; do
3226               case $deplib in
3227               -L*) path="$deplib" ;;
3228               *.la)
3229                 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
3230                 test "X$dir" = "X$deplib" && dir="."
3231                 # We need an absolute path.
3232                 case $dir in
3233                 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
3234                 *)
3235                   absdir=`cd "$dir" && pwd`
3236                   if test -z "$absdir"; then
3237                     $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
3238                     absdir="$dir"
3239                   fi
3240                   ;;
3241                 esac
3242                 if grep "^installed=no" $deplib > /dev/null; then
3243                   path="$absdir/$objdir"
3244                 else
3245                   eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3246                   if test -z "$libdir"; then
3247                     $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3248                     exit $EXIT_FAILURE
3249                   fi
3250                   if test "$absdir" != "$libdir"; then
3251                     $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
3252                   fi
3253                   path="$absdir"
3254                 fi
3255                 depdepl=
3256                 case $host in
3257                 *-*-darwin*)
3258                   # we do not want to link against static libs,
3259                   # but need to link against shared
3260                   eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
3261                   if test -n "$deplibrary_names" ; then
3262                     for tmp in $deplibrary_names ; do
3263                       depdepl=$tmp
3264                     done
3265                     if test -f "$path/$depdepl" ; then
3266                       depdepl="$path/$depdepl"
3267                     fi
3268                     # do not add paths which are already there
3269                     case " $newlib_search_path " in
3270                     *" $path "*) ;;
3271                     *) newlib_search_path="$newlib_search_path $path";;
3272                     esac
3273                   fi
3274                   path=""
3275                   ;;
3276                 *)
3277                   path="-L$path"
3278                   ;;
3279                 esac
3280                 ;;
3281               -l*)
3282                 case $host in
3283                 *-*-darwin*)
3284                   # Again, we only want to link against shared libraries
3285                   eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
3286                   for tmp in $newlib_search_path ; do
3287                     if test -f "$tmp/lib$tmp_libs.dylib" ; then
3288                       eval depdepl="$tmp/lib$tmp_libs.dylib"
3289                       break
3290                     fi
3291                   done
3292                   path=""
3293                   ;;
3294                 *) continue ;;
3295                 esac
3296                 ;;
3297               *) continue ;;
3298               esac
3299               case " $deplibs " in
3300               *" $path "*) ;;
3301               *) deplibs="$path $deplibs" ;;
3302               esac
3303               case " $deplibs " in
3304               *" $depdepl "*) ;;
3305               *) deplibs="$depdepl $deplibs" ;;
3306               esac
3307             done
3308           fi # link_all_deplibs != no
3309         fi # linkmode = lib
3310       done # for deplib in $libs
3311       dependency_libs="$newdependency_libs"
3312       if test "$pass" = dlpreopen; then
3313         # Link the dlpreopened libraries before other libraries
3314         for deplib in $save_deplibs; do
3315           deplibs="$deplib $deplibs"
3316         done
3317       fi
3318       if test "$pass" != dlopen; then
3319         if test "$pass" != conv; then
3320           # Make sure lib_search_path contains only unique directories.
3321           lib_search_path=
3322           for dir in $newlib_search_path; do
3323             case "$lib_search_path " in
3324             *" $dir "*) ;;
3325             *) lib_search_path="$lib_search_path $dir" ;;
3326             esac
3327           done
3328           newlib_search_path=
3329         fi
3330
3331         if test "$linkmode,$pass" != "prog,link"; then
3332           vars="deplibs"
3333         else
3334           vars="compile_deplibs finalize_deplibs"
3335         fi
3336         for var in $vars dependency_libs; do
3337           # Add libraries to $var in reverse order
3338           eval tmp_libs=\"\$$var\"
3339           new_libs=
3340           for deplib in $tmp_libs; do
3341             # FIXME: Pedantically, this is the right thing to do, so
3342             #        that some nasty dependency loop isn't accidentally
3343             #        broken:
3344             #new_libs="$deplib $new_libs"
3345             # Pragmatically, this seems to cause very few problems in
3346             # practice:
3347             case $deplib in
3348             -L*) new_libs="$deplib $new_libs" ;;
3349             -R*) ;;
3350             *)
3351               # And here is the reason: when a library appears more
3352               # than once as an explicit dependence of a library, or
3353               # is implicitly linked in more than once by the
3354               # compiler, it is considered special, and multiple
3355               # occurrences thereof are not removed.  Compare this
3356               # with having the same library being listed as a
3357               # dependency of multiple other libraries: in this case,
3358               # we know (pedantically, we assume) the library does not
3359               # need to be listed more than once, so we keep only the
3360               # last copy.  This is not always right, but it is rare
3361               # enough that we require users that really mean to play
3362               # such unportable linking tricks to link the library
3363               # using -Wl,-lname, so that libtool does not consider it
3364               # for duplicate removal.
3365               case " $specialdeplibs " in
3366               *" $deplib "*) new_libs="$deplib $new_libs" ;;
3367               *)
3368                 case " $new_libs " in
3369                 *" $deplib "*) ;;
3370                 *) new_libs="$deplib $new_libs" ;;
3371                 esac
3372                 ;;
3373               esac
3374               ;;
3375             esac
3376           done
3377           tmp_libs=
3378           for deplib in $new_libs; do
3379             case $deplib in
3380             -L*)
3381               case " $tmp_libs " in
3382               *" $deplib "*) ;;
3383               *) tmp_libs="$tmp_libs $deplib" ;;
3384               esac
3385               ;;
3386             *) tmp_libs="$tmp_libs $deplib" ;;
3387             esac
3388           done
3389           eval $var=\"$tmp_libs\"
3390         done # for var
3391       fi
3392       # Last step: remove runtime libs from dependency_libs
3393       # (they stay in deplibs)
3394       tmp_libs=
3395       for i in $dependency_libs ; do
3396         case " $predeps $postdeps $compiler_lib_search_path " in
3397         *" $i "*)
3398           i=""
3399           ;;
3400         esac
3401         if test -n "$i" ; then
3402           tmp_libs="$tmp_libs $i"
3403         fi
3404       done
3405       dependency_libs=$tmp_libs
3406     done # for pass
3407     if test "$linkmode" = prog; then
3408       dlfiles="$newdlfiles"
3409       dlprefiles="$newdlprefiles"
3410     fi
3411
3412     case $linkmode in
3413     oldlib)
3414       if test -n "$deplibs"; then
3415         $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3416       fi
3417
3418       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3419         $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3420       fi
3421
3422       if test -n "$rpath"; then
3423         $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3424       fi
3425
3426       if test -n "$xrpath"; then
3427         $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3428       fi
3429
3430       if test -n "$vinfo"; then
3431         $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3432       fi
3433
3434       if test -n "$release"; then
3435         $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3436       fi
3437
3438       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3439         $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3440       fi
3441
3442       # Now set the variables for building old libraries.
3443       build_libtool_libs=no
3444       oldlibs="$output"
3445       objs="$objs$old_deplibs"
3446       ;;
3447
3448     lib)
3449       # Make sure we only generate libraries of the form `libNAME.la'.
3450       case $outputname in
3451       lib*)
3452         name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3453         eval shared_ext=\"$shrext_cmds\"
3454         eval libname=\"$libname_spec\"
3455         ;;
3456       *)
3457         if test "$module" = no; then
3458           $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3459           $echo "$help" 1>&2
3460           exit $EXIT_FAILURE
3461         fi
3462         if test "$need_lib_prefix" != no; then
3463           # Add the "lib" prefix for modules if required
3464           name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3465           eval shared_ext=\"$shrext_cmds\"
3466           eval libname=\"$libname_spec\"
3467         else
3468           libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3469         fi
3470         ;;
3471       esac
3472
3473       if test -n "$objs"; then
3474         if test "$deplibs_check_method" != pass_all; then
3475           $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3476           exit $EXIT_FAILURE
3477         else
3478           $echo
3479           $echo "*** Warning: Linking the shared library $output against the non-libtool"
3480           $echo "*** objects $objs is not portable!"
3481           libobjs="$libobjs $objs"
3482         fi
3483       fi
3484
3485       if test "$dlself" != no; then
3486         $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3487       fi
3488
3489       set dummy $rpath
3490       if test "$#" -gt 2; then
3491         $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3492       fi
3493       install_libdir="$2"
3494
3495       oldlibs=
3496       if test -z "$rpath"; then
3497         if test "$build_libtool_libs" = yes; then
3498           # Building a libtool convenience library.
3499           # Some compilers have problems with a `.al' extension so
3500           # convenience libraries should have the same extension an
3501           # archive normally would.
3502           oldlibs="$output_objdir/$libname.$libext $oldlibs"
3503           build_libtool_libs=convenience
3504           build_old_libs=yes
3505         fi
3506
3507         if test -n "$vinfo"; then
3508           $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3509         fi
3510
3511         if test -n "$release"; then
3512           $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3513         fi
3514       else
3515
3516         # Parse the version information argument.
3517         save_ifs="$IFS"; IFS=':'
3518         set dummy $vinfo 0 0 0
3519         IFS="$save_ifs"
3520
3521         if test -n "$8"; then
3522           $echo "$modename: too many parameters to \`-version-info'" 1>&2
3523           $echo "$help" 1>&2
3524           exit $EXIT_FAILURE
3525         fi
3526
3527         # convert absolute version numbers to libtool ages
3528         # this retains compatibility with .la files and attempts
3529         # to make the code below a bit more comprehensible
3530
3531         case $vinfo_number in
3532         yes)
3533           number_major="$2"
3534           number_minor="$3"
3535           number_revision="$4"
3536           #
3537           # There are really only two kinds -- those that
3538           # use the current revision as the major version
3539           # and those that subtract age and use age as
3540           # a minor version.  But, then there is irix
3541           # which has an extra 1 added just for fun
3542           #
3543           case $version_type in
3544           darwin|linux|osf|windows)
3545             current=`expr $number_major + $number_minor`
3546             age="$number_minor"
3547             revision="$number_revision"
3548             ;;
3549           freebsd-aout|freebsd-elf|sunos)
3550             current="$number_major"
3551             revision="$number_minor"
3552             age="0"
3553             ;;
3554           irix|nonstopux)
3555             current=`expr $number_major + $number_minor - 1`
3556             age="$number_minor"
3557             revision="$number_minor"
3558             ;;
3559           *)
3560             $echo "$modename: unknown library version type \`$version_type'" 1>&2
3561             $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3562             exit $EXIT_FAILURE
3563             ;;
3564           esac
3565           ;;
3566         no)
3567           current="$2"
3568           revision="$3"
3569           age="$4"
3570           ;;
3571         esac
3572
3573         # Check that each of the things are valid numbers.
3574         case $current in
3575         0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3576         *)
3577           $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3578           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3579           exit $EXIT_FAILURE
3580           ;;
3581         esac
3582
3583         case $revision in
3584         0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3585         *)
3586           $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3587           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3588           exit $EXIT_FAILURE
3589           ;;
3590         esac
3591
3592         case $age in
3593         0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3594         *)
3595           $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3596           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3597           exit $EXIT_FAILURE
3598           ;;
3599         esac
3600
3601         if test "$age" -gt "$current"; then
3602           $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3603           $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3604           exit $EXIT_FAILURE
3605         fi
3606
3607         # Calculate the version variables.
3608         major=
3609         versuffix=
3610         verstring=
3611         case $version_type in
3612         none) ;;
3613
3614         darwin)
3615           # Like Linux, but with the current version available in
3616           # verstring for coding it into the library header
3617           major=.`expr $current - $age`
3618           versuffix="$major.$age.$revision"
3619           # Darwin ld doesn't like 0 for these options...
3620           minor_current=`expr $current + 1`
3621           verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3622           ;;
3623
3624         freebsd-aout)
3625           major=".$current"
3626           versuffix=".$current.$revision";
3627           ;;
3628
3629         freebsd-elf)
3630           major=".$current"
3631           versuffix=".$current";
3632           ;;
3633
3634         irix | nonstopux)
3635           major=`expr $current - $age + 1`
3636
3637           case $version_type in
3638             nonstopux) verstring_prefix=nonstopux ;;
3639             *)         verstring_prefix=sgi ;;
3640           esac
3641           verstring="$verstring_prefix$major.$revision"
3642
3643           # Add in all the interfaces that we are compatible with.
3644           loop=$revision
3645           while test "$loop" -ne 0; do
3646             iface=`expr $revision - $loop`
3647             loop=`expr $loop - 1`
3648             verstring="$verstring_prefix$major.$iface:$verstring"
3649           done
3650
3651           # Before this point, $major must not contain `.'.
3652           major=.$major
3653           versuffix="$major.$revision"
3654           ;;
3655
3656         linux)
3657           major=.`expr $current - $age`
3658           versuffix="$major.$age.$revision"
3659           ;;
3660
3661         osf)
3662           major=.`expr $current - $age`
3663           versuffix=".$current.$age.$revision"
3664           verstring="$current.$age.$revision"
3665
3666           # Add in all the interfaces that we are compatible with.
3667           loop=$age
3668           while test "$loop" -ne 0; do
3669             iface=`expr $current - $loop`
3670             loop=`expr $loop - 1`
3671             verstring="$verstring:${iface}.0"
3672           done
3673
3674           # Make executables depend on our current version.
3675           verstring="$verstring:${current}.0"
3676           ;;
3677
3678         sunos)
3679           major=".$current"
3680           versuffix=".$current.$revision"
3681           ;;
3682
3683         windows)
3684           # Use '-' rather than '.', since we only want one
3685           # extension on DOS 8.3 filesystems.
3686           major=`expr $current - $age`
3687           versuffix="-$major"
3688           ;;
3689
3690         *)
3691           $echo "$modename: unknown library version type \`$version_type'" 1>&2
3692           $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3693           exit $EXIT_FAILURE
3694           ;;
3695         esac
3696
3697         # Clear the version info if we defaulted, and they specified a release.
3698         if test -z "$vinfo" && test -n "$release"; then
3699           major=
3700           case $version_type in
3701           darwin)
3702             # we can't check for "0.0" in archive_cmds due to quoting
3703             # problems, so we reset it completely
3704             verstring=
3705             ;;
3706           *)
3707             verstring="0.0"
3708             ;;
3709           esac
3710           if test "$need_version" = no; then
3711             versuffix=
3712           else
3713             versuffix=".0.0"
3714           fi
3715         fi
3716
3717         # Remove version info from name if versioning should be avoided
3718         if test "$avoid_version" = yes && test "$need_version" = no; then
3719           major=
3720           versuffix=
3721           verstring=""
3722         fi
3723
3724         # Check to see if the archive will have undefined symbols.
3725         if test "$allow_undefined" = yes; then
3726           if test "$allow_undefined_flag" = unsupported; then
3727             $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3728             build_libtool_libs=no
3729             build_old_libs=yes
3730           fi
3731         else
3732           # Don't allow undefined symbols.
3733           allow_undefined_flag="$no_undefined_flag"
3734         fi
3735       fi
3736
3737       if test "$mode" != relink; then
3738         # Remove our outputs, but don't remove object files since they
3739         # may have been created when compiling PIC objects.
3740         removelist=
3741         tempremovelist=`$echo "$output_objdir/*"`
3742         for p in $tempremovelist; do
3743           case $p in
3744             *.$objext)
3745                ;;
3746             $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3747                if test "X$precious_files_regex" != "X"; then
3748                  if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3749                  then
3750                    continue
3751                  fi
3752                fi
3753                removelist="$removelist $p"
3754                ;;
3755             *) ;;
3756           esac
3757         done
3758         if test -n "$removelist"; then
3759           $show "${rm}r $removelist"
3760           $run ${rm}r $removelist
3761         fi
3762       fi
3763
3764       # Now set the variables for building old libraries.
3765       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3766         oldlibs="$oldlibs $output_objdir/$libname.$libext"
3767
3768         # Transform .lo files to .o files.
3769         oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3770       fi
3771
3772       # Eliminate all temporary directories.
3773       for path in $notinst_path; do
3774         lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3775         deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3776         dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3777       done
3778
3779       if test -n "$xrpath"; then
3780         # If the user specified any rpath flags, then add them.
3781         temp_xrpath=
3782         for libdir in $xrpath; do
3783           temp_xrpath="$temp_xrpath -R$libdir"
3784           case "$finalize_rpath " in
3785           *" $libdir "*) ;;
3786           *) finalize_rpath="$finalize_rpath $libdir" ;;
3787           esac
3788         done
3789         if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3790           dependency_libs="$temp_xrpath $dependency_libs"
3791         fi
3792       fi
3793
3794       # Make sure dlfiles contains only unique files that won't be dlpreopened
3795       old_dlfiles="$dlfiles"
3796       dlfiles=
3797       for lib in $old_dlfiles; do
3798         case " $dlprefiles $dlfiles " in
3799         *" $lib "*) ;;
3800         *) dlfiles="$dlfiles $lib" ;;
3801         esac
3802       done
3803
3804       # Make sure dlprefiles contains only unique files
3805       old_dlprefiles="$dlprefiles"
3806       dlprefiles=
3807       for lib in $old_dlprefiles; do
3808         case "$dlprefiles " in
3809         *" $lib "*) ;;
3810         *) dlprefiles="$dlprefiles $lib" ;;
3811         esac
3812       done
3813
3814       if test "$build_libtool_libs" = yes; then
3815         if test -n "$rpath"; then
3816           case $host in
3817           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3818             # these systems don't actually have a c library (as such)!
3819             ;;
3820           *-*-rhapsody* | *-*-darwin1.[012])
3821             # Rhapsody C library is in the System framework
3822             deplibs="$deplibs -framework System"
3823             ;;
3824           *-*-netbsd*)
3825             # Don't link with libc until the a.out ld.so is fixed.
3826             ;;
3827           *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3828             # Do not include libc due to us having libc/libc_r.
3829             ;;
3830           *-*-sco3.2v5* | *-*-sco5v6*)
3831             # Causes problems with __ctype
3832             ;;
3833           *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3834             # Compiler inserts libc in the correct place for threads to work
3835             ;;
3836           *)
3837             # Add libc to deplibs on all other systems if necessary.
3838             if test "$build_libtool_need_lc" = "yes"; then
3839               deplibs="$deplibs -lc"
3840             fi
3841             ;;
3842           esac
3843         fi
3844
3845         # Transform deplibs into only deplibs that can be linked in shared.
3846         name_save=$name
3847         libname_save=$libname
3848         release_save=$release
3849         versuffix_save=$versuffix
3850         major_save=$major
3851         # I'm not sure if I'm treating the release correctly.  I think
3852         # release should show up in the -l (ie -lgmp5) so we don't want to
3853         # add it in twice.  Is that correct?
3854         release=""
3855         versuffix=""
3856         major=""
3857         newdeplibs=
3858         droppeddeps=no
3859         case $deplibs_check_method in
3860         pass_all)
3861           # Don't check for shared/static.  Everything works.
3862           # This might be a little naive.  We might want to check
3863           # whether the library exists or not.  But this is on
3864           # osf3 & osf4 and I'm not really sure... Just
3865           # implementing what was already the behavior.
3866           newdeplibs=$deplibs
3867           ;;
3868         test_compile)
3869           # This code stresses the "libraries are programs" paradigm to its
3870           # limits. Maybe even breaks it.  We compile a program, linking it
3871           # against the deplibs as a proxy for the library.  Then we can check
3872           # whether they linked in statically or dynamically with ldd.
3873           $rm conftest.c
3874           cat > conftest.c <<EOF
3875           int main() { return 0; }
3876 EOF
3877           $rm conftest
3878           $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3879           if test "$?" -eq 0 ; then
3880             ldd_output=`ldd conftest`
3881             for i in $deplibs; do
3882               name=`expr $i : '-l\(.*\)'`
3883               # If $name is empty we are operating on a -L argument.
3884               if test "$name" != "" && test "$name" -ne "0"; then
3885                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3886                   case " $predeps $postdeps " in
3887                   *" $i "*)
3888                     newdeplibs="$newdeplibs $i"
3889                     i=""
3890                     ;;
3891                   esac
3892                 fi
3893                 if test -n "$i" ; then
3894                   libname=`eval \\$echo \"$libname_spec\"`
3895                   deplib_matches=`eval \\$echo \"$library_names_spec\"`
3896                   set dummy $deplib_matches
3897                   deplib_match=$2
3898                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3899                     newdeplibs="$newdeplibs $i"
3900                   else
3901                     droppeddeps=yes
3902                     $echo
3903                     $echo "*** Warning: dynamic linker does not accept needed library $i."
3904                     $echo "*** I have the capability to make that library automatically link in when"
3905                     $echo "*** you link to this library.  But I can only do this if you have a"
3906                     $echo "*** shared version of the library, which I believe you do not have"
3907                     $echo "*** because a test_compile did reveal that the linker did not use it for"
3908                     $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3909                   fi
3910                 fi
3911               else
3912                 newdeplibs="$newdeplibs $i"
3913               fi
3914             done
3915           else
3916             # Error occurred in the first compile.  Let's try to salvage
3917             # the situation: Compile a separate program for each library.
3918             for i in $deplibs; do
3919               name=`expr $i : '-l\(.*\)'`
3920               # If $name is empty we are operating on a -L argument.
3921               if test "$name" != "" && test "$name" != "0"; then
3922                 $rm conftest
3923                 $LTCC $LTCFLAGS -o conftest conftest.c $i
3924                 # Did it work?
3925                 if test "$?" -eq 0 ; then
3926                   ldd_output=`ldd conftest`
3927                   if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3928                     case " $predeps $postdeps " in
3929                     *" $i "*)
3930                       newdeplibs="$newdeplibs $i"
3931                       i=""
3932                       ;;
3933                     esac
3934                   fi
3935                   if test -n "$i" ; then
3936                     libname=`eval \\$echo \"$libname_spec\"`
3937                     deplib_matches=`eval \\$echo \"$library_names_spec\"`
3938                     set dummy $deplib_matches
3939                     deplib_match=$2
3940                     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3941                       newdeplibs="$newdeplibs $i"
3942                     else
3943                       droppeddeps=yes
3944                       $echo
3945                       $echo "*** Warning: dynamic linker does not accept needed library $i."
3946                       $echo "*** I have the capability to make that library automatically link in when"
3947                       $echo "*** you link to this library.  But I can only do this if you have a"
3948                       $echo "*** shared version of the library, which you do not appear to have"
3949                       $echo "*** because a test_compile did reveal that the linker did not use this one"
3950                       $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3951                     fi
3952                   fi
3953                 else
3954                   droppeddeps=yes
3955                   $echo
3956                   $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3957                   $echo "***  make it link in!  You will probably need to install it or some"
3958                   $echo "*** library that it depends on before this library will be fully"
3959                   $echo "*** functional.  Installing it before continuing would be even better."
3960                 fi
3961               else
3962                 newdeplibs="$newdeplibs $i"
3963               fi
3964             done
3965           fi
3966           ;;
3967         file_magic*)
3968           set dummy $deplibs_check_method
3969           file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3970           for a_deplib in $deplibs; do
3971             name=`expr $a_deplib : '-l\(.*\)'`
3972             # If $name is empty we are operating on a -L argument.
3973             if test "$name" != "" && test  "$name" != "0"; then
3974               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3975                 case " $predeps $postdeps " in
3976                 *" $a_deplib "*)
3977                   newdeplibs="$newdeplibs $a_deplib"
3978                   a_deplib=""
3979                   ;;
3980                 esac
3981               fi
3982               if test -n "$a_deplib" ; then
3983                 libname=`eval \\$echo \"$libname_spec\"`
3984                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3985                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3986                   for potent_lib in $potential_libs; do
3987                       # Follow soft links.
3988                       if ls -lLd "$potent_lib" 2>/dev/null \
3989                          | grep " -> " >/dev/null; then
3990                         continue
3991                       fi
3992                       # The statement above tries to avoid entering an
3993                       # endless loop below, in case of cyclic links.
3994                       # We might still enter an endless loop, since a link
3995                       # loop can be closed while we follow links,
3996                       # but so what?
3997                       potlib="$potent_lib"
3998                       while test -h "$potlib" 2>/dev/null; do
3999                         potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
4000                         case $potliblink in
4001                         [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
4002                         *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
4003                         esac
4004                       done
4005                       if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
4006                          | ${SED} 10q \
4007                          | $EGREP "$file_magic_regex" > /dev/null; then
4008                         newdeplibs="$newdeplibs $a_deplib"
4009                         a_deplib=""
4010                         break 2
4011                       fi
4012                   done
4013                 done
4014               fi
4015               if test -n "$a_deplib" ; then
4016                 droppeddeps=yes
4017                 $echo
4018                 $echo "*** Warning: linker path does not have real file for library $a_deplib."
4019                 $echo "*** I have the capability to make that library automatically link in when"
4020                 $echo "*** you link to this library.  But I can only do this if you have a"
4021                 $echo "*** shared version of the library, which you do not appear to have"
4022                 $echo "*** because I did check the linker path looking for a file starting"
4023                 if test -z "$potlib" ; then
4024                   $echo "*** with $libname but no candidates were found. (...for file magic test)"
4025                 else
4026                   $echo "*** with $libname and none of the candidates passed a file format test"
4027                   $echo "*** using a file magic. Last file checked: $potlib"
4028                 fi
4029               fi
4030             else
4031               # Add a -L argument.
4032               newdeplibs="$newdeplibs $a_deplib"
4033             fi
4034           done # Gone through all deplibs.
4035           ;;
4036         match_pattern*)
4037           set dummy $deplibs_check_method
4038           match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
4039           for a_deplib in $deplibs; do
4040             name=`expr $a_deplib : '-l\(.*\)'`
4041             # If $name is empty we are operating on a -L argument.
4042             if test -n "$name" && test "$name" != "0"; then
4043               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
4044                 case " $predeps $postdeps " in
4045                 *" $a_deplib "*)
4046                   newdeplibs="$newdeplibs $a_deplib"
4047                   a_deplib=""
4048                   ;;
4049                 esac
4050               fi
4051               if test -n "$a_deplib" ; then
4052                 libname=`eval \\$echo \"$libname_spec\"`
4053                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
4054                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
4055                   for potent_lib in $potential_libs; do
4056                     potlib="$potent_lib" # see symlink-check above in file_magic test
4057                     if eval $echo \"$potent_lib\" 2>/dev/null \
4058                         | ${SED} 10q \
4059                         | $EGREP "$match_pattern_regex" > /dev/null; then
4060                       newdeplibs="$newdeplibs $a_deplib"
4061                       a_deplib=""
4062                       break 2
4063                     fi
4064                   done
4065                 done
4066               fi
4067               if test -n "$a_deplib" ; then
4068                 droppeddeps=yes
4069                 $echo
4070                 $echo "*** Warning: linker path does not have real file for library $a_deplib."
4071                 $echo "*** I have the capability to make that library automatically link in when"
4072                 $echo "*** you link to this library.  But I can only do this if you have a"
4073                 $echo "*** shared version of the library, which you do not appear to have"
4074                 $echo "*** because I did check the linker path looking for a file starting"
4075                 if test -z "$potlib" ; then
4076                   $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
4077                 else
4078                   $echo "*** with $libname and none of the candidates passed a file format test"
4079                   $echo "*** using a regex pattern. Last file checked: $potlib"
4080                 fi
4081               fi
4082             else
4083               # Add a -L argument.
4084               newdeplibs="$newdeplibs $a_deplib"
4085             fi
4086           done # Gone through all deplibs.
4087           ;;
4088         none | unknown | *)
4089           newdeplibs=""
4090           tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
4091             -e 's/ -[LR][^ ]*//g'`
4092           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
4093             for i in $predeps $postdeps ; do
4094               # can't use Xsed below, because $i might contain '/'
4095               tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
4096             done
4097           fi
4098           if $echo "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' \
4099             | grep . >/dev/null; then
4100             $echo
4101             if test "X$deplibs_check_method" = "Xnone"; then
4102               $echo "*** Warning: inter-library dependencies are not supported in this platform."
4103             else
4104               $echo "*** Warning: inter-library dependencies are not known to be supported."
4105             fi
4106             $echo "*** All declared inter-library dependencies are being dropped."
4107             droppeddeps=yes
4108           fi
4109           ;;
4110         esac
4111         versuffix=$versuffix_save
4112         major=$major_save
4113         release=$release_save
4114         libname=$libname_save
4115         name=$name_save
4116
4117         case $host in
4118         *-*-rhapsody* | *-*-darwin1.[012])
4119           # On Rhapsody replace the C library is the System framework
4120           newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
4121           ;;
4122         esac
4123
4124         if test "$droppeddeps" = yes; then
4125           if test "$module" = yes; then
4126             $echo
4127             $echo "*** Warning: libtool could not satisfy all declared inter-library"
4128             $echo "*** dependencies of module $libname.  Therefore, libtool will create"
4129             $echo "*** a static module, that should work as long as the dlopening"
4130             $echo "*** application is linked with the -dlopen flag."
4131             if test -z "$global_symbol_pipe"; then
4132               $echo
4133               $echo "*** However, this would only work if libtool was able to extract symbol"
4134               $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
4135               $echo "*** not find such a program.  So, this module is probably useless."
4136               $echo "*** \`nm' from GNU binutils and a full rebuild may help."
4137             fi
4138             if test "$build_old_libs" = no; then
4139               oldlibs="$output_objdir/$libname.$libext"
4140               build_libtool_libs=module
4141               build_old_libs=yes
4142             else
4143               build_libtool_libs=no
4144             fi
4145           else
4146             $echo "*** The inter-library dependencies that have been dropped here will be"
4147             $echo "*** automatically added whenever a program is linked with this library"
4148             $echo "*** or is declared to -dlopen it."
4149
4150             if test "$allow_undefined" = no; then
4151               $echo
4152               $echo "*** Since this library must not contain undefined symbols,"
4153               $echo "*** because either the platform does not support them or"
4154               $echo "*** it was explicitly requested with -no-undefined,"
4155               $echo "*** libtool will only create a static version of it."
4156               if test "$build_old_libs" = no; then
4157                 oldlibs="$output_objdir/$libname.$libext"
4158                 build_libtool_libs=module
4159                 build_old_libs=yes
4160               else
4161                 build_libtool_libs=no
4162               fi
4163             fi
4164           fi
4165         fi
4166         # Done checking deplibs!
4167         deplibs=$newdeplibs
4168       fi
4169
4170
4171       # move library search paths that coincide with paths to not yet
4172       # installed libraries to the beginning of the library search list
4173       new_libs=
4174       for path in $notinst_path; do
4175         case " $new_libs " in
4176         *" -L$path/$objdir "*) ;;
4177         *)
4178           case " $deplibs " in
4179           *" -L$path/$objdir "*)
4180             new_libs="$new_libs -L$path/$objdir" ;;
4181           esac
4182           ;;
4183         esac
4184       done
4185       for deplib in $deplibs; do
4186         case $deplib in
4187         -L*)
4188           case " $new_libs " in
4189           *" $deplib "*) ;;
4190           *) new_libs="$new_libs $deplib" ;;
4191           esac
4192           ;;
4193         *) new_libs="$new_libs $deplib" ;;
4194         esac
4195       done
4196       deplibs="$new_libs"
4197
4198
4199       # All the library-specific variables (install_libdir is set above).
4200       library_names=
4201       old_library=
4202       dlname=
4203
4204       # Test again, we may have decided not to build it any more
4205       if test "$build_libtool_libs" = yes; then
4206         if test "$hardcode_into_libs" = yes; then
4207           # Hardcode the library paths
4208           hardcode_libdirs=
4209           dep_rpath=
4210           rpath="$finalize_rpath"
4211           test "$mode" != relink && rpath="$compile_rpath$rpath"
4212           for libdir in $rpath; do
4213             if test -n "$hardcode_libdir_flag_spec"; then
4214               if test -n "$hardcode_libdir_separator"; then
4215                 if test -z "$hardcode_libdirs"; then
4216                   hardcode_libdirs="$libdir"
4217                 else
4218                   # Just accumulate the unique libdirs.
4219                   case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4220                   *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4221                     ;;
4222                   *)
4223                     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4224                     ;;
4225                   esac
4226                 fi
4227               else
4228                 eval flag=\"$hardcode_libdir_flag_spec\"
4229                 dep_rpath="$dep_rpath $flag"
4230               fi
4231             elif test -n "$runpath_var"; then
4232               case "$perm_rpath " in
4233               *" $libdir "*) ;;
4234               *) perm_rpath="$perm_rpath $libdir" ;;
4235               esac
4236             fi
4237           done
4238           # Substitute the hardcoded libdirs into the rpath.
4239           if test -n "$hardcode_libdir_separator" &&
4240              test -n "$hardcode_libdirs"; then
4241             libdir="$hardcode_libdirs"
4242             if test -n "$hardcode_libdir_flag_spec_ld"; then
4243               eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
4244             else
4245               eval dep_rpath=\"$hardcode_libdir_flag_spec\"
4246             fi
4247           fi
4248           if test -n "$runpath_var" && test -n "$perm_rpath"; then
4249             # We should set the runpath_var.
4250             rpath=
4251             for dir in $perm_rpath; do
4252               rpath="$rpath$dir:"
4253             done
4254             eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
4255           fi
4256           test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
4257         fi
4258
4259         shlibpath="$finalize_shlibpath"
4260         test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
4261         if test -n "$shlibpath"; then
4262           eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
4263         fi
4264
4265         # Get the real and link names of the library.
4266         eval shared_ext=\"$shrext_cmds\"
4267         eval library_names=\"$library_names_spec\"
4268         set dummy $library_names
4269         realname="$2"
4270         shift; shift
4271
4272         if test -n "$soname_spec"; then
4273           eval soname=\"$soname_spec\"
4274         else
4275           soname="$realname"