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