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