JWS-112 Bumping version of ClustalO (src, binaries and windows) to version 1.2.4.
[jabaws.git] / binaries / src / clustalo / libtool
1 #! /bin/sh
2
3 # libtool - Provide generalized library-building support services.
4 # Generated automatically by config.status (clustal-omega) 1.2.4
5 # Libtool was configured on host ningal.cluster.lifesci.dundee.ac.uk:
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.6
43 macro_revision=1.3012
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=x86_64-unknown-linux-gnu
60 host_os=linux-gnu
61
62 # The build system.
63 build_alias=
64 build=x86_64-unknown-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=1966080
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/sh"
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/x86_64-redhat-linux/4.4.7 /usr/lib64 /lib64"
238
239 # Run-time system search path for libraries.
240 sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64/R/lib /usr/lib64/atlas /usr/lib64/mysql /usr/lib64/papi-4.1.3 /usr/lib64/papi-5.1.1/usr/lib /usr/lib64/qt-3.3/lib /opt/dell/srvadmin/lib64 /opt/dell/srvadmin/lib64/openmanage /opt/dell/srvadmin/lib64 /opt/dell/srvadmin/lib64 /opt/dell/srvadmin/lib64/srvadmin-isvc /opt/dell/srvadmin/lib64 /opt/dell/srvadmin/lib64/openmanage /opt/dell/srvadmin/lib64 /opt/dell/srvadmin/lib64/openmanage /usr/lib64/tcl8.5 /usr/lib/wine/ /usr/lib64/wine/ /usr/lib64/xulrunner "
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 -m elf_x86_64"
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=unknown
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.6
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.6 Debian-2.2.6a-1ubuntu1
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.6 Debian-2.2.6a-1ubuntu1"
482 TIMESTAMP=""
483 package_revision=1.3012
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           elif test "$linkmode" != prog && test "$linkmode" != lib; then
5852             func_fatal_error "\`$lib' is not a convenience library"
5853           fi
5854           tmp_libs=
5855           for deplib in $dependency_libs; do
5856             deplibs="$deplib $deplibs"
5857             if $opt_duplicate_deps ; then
5858               case "$tmp_libs " in
5859               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
5860               esac
5861             fi
5862             tmp_libs="$tmp_libs $deplib"
5863           done
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               case $deplib in
6401               -L*) path="$deplib" ;;
6402               *.la)
6403                 func_dirname "$deplib" "" "."
6404                 dir="$func_dirname_result"
6405                 # We need an absolute path.
6406                 case $dir in
6407                 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
6408                 *)
6409                   absdir=`cd "$dir" && pwd`
6410                   if test -z "$absdir"; then
6411                     func_warning "cannot determine absolute directory name of \`$dir'"
6412                     absdir="$dir"
6413                   fi
6414                   ;;
6415                 esac
6416                 if $GREP "^installed=no" $deplib > /dev/null; then
6417                 case $host in
6418                 *-*-darwin*)
6419                   depdepl=
6420                   eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
6421                   if test -n "$deplibrary_names" ; then
6422                     for tmp in $deplibrary_names ; do
6423                       depdepl=$tmp
6424                     done
6425                     if test -f "$absdir/$objdir/$depdepl" ; then
6426                       depdepl="$absdir/$objdir/$depdepl"
6427                       darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
6428                       if test -z "$darwin_install_name"; then
6429                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
6430                       fi
6431                       compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
6432                       linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
6433                       path=
6434                     fi
6435                   fi
6436                   ;;
6437                 *)
6438                   path="-L$absdir/$objdir"
6439                   ;;
6440                 esac
6441                 else
6442                   eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
6443                   test -z "$libdir" && \
6444                     func_fatal_error "\`$deplib' is not a valid libtool archive"
6445                   test "$absdir" != "$libdir" && \
6446                     func_warning "\`$deplib' seems to be moved"
6447
6448                   path="-L$absdir"
6449                 fi
6450                 ;;
6451               esac
6452               case " $deplibs " in
6453               *" $path "*) ;;
6454               *) deplibs="$path $deplibs" ;;
6455               esac
6456             done
6457           fi # link_all_deplibs != no
6458         fi # linkmode = lib
6459       done # for deplib in $libs
6460       if test "$pass" = link; then
6461         if test "$linkmode" = "prog"; then
6462           compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
6463           finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
6464         else
6465           compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6466         fi
6467       fi
6468       dependency_libs="$newdependency_libs"
6469       if test "$pass" = dlpreopen; then
6470         # Link the dlpreopened libraries before other libraries
6471         for deplib in $save_deplibs; do
6472           deplibs="$deplib $deplibs"
6473         done
6474       fi
6475       if test "$pass" != dlopen; then
6476         if test "$pass" != conv; then
6477           # Make sure lib_search_path contains only unique directories.
6478           lib_search_path=
6479           for dir in $newlib_search_path; do
6480             case "$lib_search_path " in
6481             *" $dir "*) ;;
6482             *) lib_search_path="$lib_search_path $dir" ;;
6483             esac
6484           done
6485           newlib_search_path=
6486         fi
6487
6488         if test "$linkmode,$pass" != "prog,link"; then
6489           vars="deplibs"
6490         else
6491           vars="compile_deplibs finalize_deplibs"
6492         fi
6493         for var in $vars dependency_libs; do
6494           # Add libraries to $var in reverse order
6495           eval tmp_libs=\"\$$var\"
6496           new_libs=
6497           for deplib in $tmp_libs; do
6498             # FIXME: Pedantically, this is the right thing to do, so
6499             #        that some nasty dependency loop isn't accidentally
6500             #        broken:
6501             #new_libs="$deplib $new_libs"
6502             # Pragmatically, this seems to cause very few problems in
6503             # practice:
6504             case $deplib in
6505             -L*) new_libs="$deplib $new_libs" ;;
6506             -R*) ;;
6507             *)
6508               # And here is the reason: when a library appears more
6509               # than once as an explicit dependence of a library, or
6510               # is implicitly linked in more than once by the
6511               # compiler, it is considered special, and multiple
6512               # occurrences thereof are not removed.  Compare this
6513               # with having the same library being listed as a
6514               # dependency of multiple other libraries: in this case,
6515               # we know (pedantically, we assume) the library does not
6516               # need to be listed more than once, so we keep only the
6517               # last copy.  This is not always right, but it is rare
6518               # enough that we require users that really mean to play
6519               # such unportable linking tricks to link the library
6520               # using -Wl,-lname, so that libtool does not consider it
6521               # for duplicate removal.
6522               case " $specialdeplibs " in
6523               *" $deplib "*) new_libs="$deplib $new_libs" ;;
6524               *)
6525                 case " $new_libs " in
6526                 *" $deplib "*) ;;
6527                 *) new_libs="$deplib $new_libs" ;;
6528                 esac
6529                 ;;
6530               esac
6531               ;;
6532             esac
6533           done
6534           tmp_libs=
6535           for deplib in $new_libs; do
6536             case $deplib in
6537             -L*)
6538               case " $tmp_libs " in
6539               *" $deplib "*) ;;
6540               *) tmp_libs="$tmp_libs $deplib" ;;
6541               esac
6542               ;;
6543             *) tmp_libs="$tmp_libs $deplib" ;;
6544             esac
6545           done
6546           eval $var=\"$tmp_libs\"
6547         done # for var
6548       fi
6549       # Last step: remove runtime libs from dependency_libs
6550       # (they stay in deplibs)
6551       tmp_libs=
6552       for i in $dependency_libs ; do
6553         case " $predeps $postdeps $compiler_lib_search_path " in
6554         *" $i "*)
6555           i=""
6556           ;;
6557         esac
6558         if test -n "$i" ; then
6559           tmp_libs="$tmp_libs $i"
6560         fi
6561       done
6562       dependency_libs=$tmp_libs
6563     done # for pass
6564     if test "$linkmode" = prog; then
6565       dlfiles="$newdlfiles"
6566     fi
6567     if test "$linkmode" = prog || test "$linkmode" = lib; then
6568       dlprefiles="$newdlprefiles"
6569     fi
6570
6571     case $linkmode in
6572     oldlib)
6573       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
6574         func_warning "\`-dlopen' is ignored for archives"
6575       fi
6576
6577       case " $deplibs" in
6578       *\ -l* | *\ -L*)
6579         func_warning "\`-l' and \`-L' are ignored for archives" ;;
6580       esac
6581
6582       test -n "$rpath" && \
6583         func_warning "\`-rpath' is ignored for archives"
6584
6585       test -n "$xrpath" && \
6586         func_warning "\`-R' is ignored for archives"
6587
6588       test -n "$vinfo" && \
6589         func_warning "\`-version-info/-version-number' is ignored for archives"
6590
6591       test -n "$release" && \
6592         func_warning "\`-release' is ignored for archives"
6593
6594       test -n "$export_symbols$export_symbols_regex" && \
6595         func_warning "\`-export-symbols' is ignored for archives"
6596
6597       # Now set the variables for building old libraries.
6598       build_libtool_libs=no
6599       oldlibs="$output"
6600       objs="$objs$old_deplibs"
6601       ;;
6602
6603     lib)
6604       # Make sure we only generate libraries of the form `libNAME.la'.
6605       case $outputname in
6606       lib*)
6607         func_stripname 'lib' '.la' "$outputname"
6608         name=$func_stripname_result
6609         eval shared_ext=\"$shrext_cmds\"
6610         eval libname=\"$libname_spec\"
6611         ;;
6612       *)
6613         test "$module" = no && \
6614           func_fatal_help "libtool library \`$output' must begin with \`lib'"
6615
6616         if test "$need_lib_prefix" != no; then
6617           # Add the "lib" prefix for modules if required
6618           func_stripname '' '.la' "$outputname"
6619           name=$func_stripname_result
6620           eval shared_ext=\"$shrext_cmds\"
6621           eval libname=\"$libname_spec\"
6622         else
6623           func_stripname '' '.la' "$outputname"
6624           libname=$func_stripname_result
6625         fi
6626         ;;
6627       esac
6628
6629       if test -n "$objs"; then
6630         if test "$deplibs_check_method" != pass_all; then
6631           func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
6632         else
6633           $ECHO
6634           $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
6635           $ECHO "*** objects $objs is not portable!"
6636           libobjs="$libobjs $objs"
6637         fi
6638       fi
6639
6640       test "$dlself" != no && \
6641         func_warning "\`-dlopen self' is ignored for libtool libraries"
6642
6643       set dummy $rpath
6644       shift
6645       test "$#" -gt 1 && \
6646         func_warning "ignoring multiple \`-rpath's for a libtool library"
6647
6648       install_libdir="$1"
6649
6650       oldlibs=
6651       if test -z "$rpath"; then
6652         if test "$build_libtool_libs" = yes; then
6653           # Building a libtool convenience library.
6654           # Some compilers have problems with a `.al' extension so
6655           # convenience libraries should have the same extension an
6656           # archive normally would.
6657           oldlibs="$output_objdir/$libname.$libext $oldlibs"
6658           build_libtool_libs=convenience
6659           build_old_libs=yes
6660         fi
6661
6662         test -n "$vinfo" && \
6663           func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
6664
6665         test -n "$release" && \
6666           func_warning "\`-release' is ignored for convenience libraries"
6667       else
6668
6669         # Parse the version information argument.
6670         save_ifs="$IFS"; IFS=':'
6671         set dummy $vinfo 0 0 0
6672         shift
6673         IFS="$save_ifs"
6674
6675         test -n "$7" && \
6676           func_fatal_help "too many parameters to \`-version-info'"
6677
6678         # convert absolute version numbers to libtool ages
6679         # this retains compatibility with .la files and attempts
6680         # to make the code below a bit more comprehensible
6681
6682         case $vinfo_number in
6683         yes)
6684           number_major="$1"
6685           number_minor="$2"
6686           number_revision="$3"
6687           #
6688           # There are really only two kinds -- those that
6689           # use the current revision as the major version
6690           # and those that subtract age and use age as
6691           # a minor version.  But, then there is irix
6692           # which has an extra 1 added just for fun
6693           #
6694           case $version_type in
6695           darwin|linux|osf|windows|none)
6696             func_arith $number_major + $number_minor
6697             current=$func_arith_result
6698             age="$number_minor"
6699             revision="$number_revision"
6700             ;;
6701           freebsd-aout|freebsd-elf|sunos)
6702             current="$number_major"
6703             revision="$number_minor"
6704             age="0"
6705             ;;
6706           irix|nonstopux)
6707             func_arith $number_major + $number_minor
6708             current=$func_arith_result
6709             age="$number_minor"
6710             revision="$number_minor"
6711             lt_irix_increment=no
6712             ;;
6713           *)
6714             func_fatal_configuration "$modename: unknown library version type \`$version_type'"
6715             ;;
6716           esac
6717           ;;
6718         no)
6719           current="$1"
6720           revision="$2"
6721           age="$3"
6722           ;;
6723         esac
6724
6725         # Check that each of the things are valid numbers.
6726         case $current in
6727         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]) ;;
6728         *)
6729           func_error "CURRENT \`$current' must be a nonnegative integer"
6730           func_fatal_error "\`$vinfo' is not valid version information"
6731           ;;
6732         esac
6733
6734         case $revision in
6735         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]) ;;
6736         *)
6737           func_error "REVISION \`$revision' must be a nonnegative integer"
6738           func_fatal_error "\`$vinfo' is not valid version information"
6739           ;;
6740         esac
6741
6742         case $age in
6743         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]) ;;
6744         *)
6745           func_error "AGE \`$age' must be a nonnegative integer"
6746           func_fatal_error "\`$vinfo' is not valid version information"
6747           ;;
6748         esac
6749
6750         if test "$age" -gt "$current"; then
6751           func_error "AGE \`$age' is greater than the current interface number \`$current'"
6752           func_fatal_error "\`$vinfo' is not valid version information"
6753         fi
6754
6755         # Calculate the version variables.
6756         major=
6757         versuffix=
6758         verstring=
6759         case $version_type in
6760         none) ;;
6761
6762         darwin)
6763           # Like Linux, but with the current version available in
6764           # verstring for coding it into the library header
6765           func_arith $current - $age
6766           major=.$func_arith_result
6767           versuffix="$major.$age.$revision"
6768           # Darwin ld doesn't like 0 for these options...
6769           func_arith $current + 1
6770           minor_current=$func_arith_result
6771           xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
6772           verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
6773           ;;
6774
6775         freebsd-aout)
6776           major=".$current"
6777           versuffix=".$current.$revision";
6778           ;;
6779
6780         freebsd-elf)
6781           major=".$current"
6782           versuffix=".$current"
6783           ;;
6784
6785         irix | nonstopux)
6786           if test "X$lt_irix_increment" = "Xno"; then
6787             func_arith $current - $age
6788           else
6789             func_arith $current - $age + 1
6790           fi
6791           major=$func_arith_result
6792
6793           case $version_type in
6794             nonstopux) verstring_prefix=nonstopux ;;
6795             *)         verstring_prefix=sgi ;;
6796           esac
6797           verstring="$verstring_prefix$major.$revision"
6798
6799           # Add in all the interfaces that we are compatible with.
6800           loop=$revision
6801           while test "$loop" -ne 0; do
6802             func_arith $revision - $loop
6803             iface=$func_arith_result
6804             func_arith $loop - 1
6805             loop=$func_arith_result
6806             verstring="$verstring_prefix$major.$iface:$verstring"
6807           done
6808
6809           # Before this point, $major must not contain `.'.
6810           major=.$major
6811           versuffix="$major.$revision"
6812           ;;
6813
6814         linux)
6815           func_arith $current - $age
6816           major=.$func_arith_result
6817           versuffix="$major.$age.$revision"
6818           ;;
6819
6820         osf)
6821           func_arith $current - $age
6822           major=.$func_arith_result
6823           versuffix=".$current.$age.$revision"
6824           verstring="$current.$age.$revision"
6825
6826           # Add in all the interfaces that we are compatible with.
6827           loop=$age
6828           while test "$loop" -ne 0; do
6829             func_arith $current - $loop
6830             iface=$func_arith_result
6831             func_arith $loop - 1
6832             loop=$func_arith_result
6833             verstring="$verstring:${iface}.0"
6834           done
6835
6836           # Make executables depend on our current version.
6837           verstring="$verstring:${current}.0"
6838           ;;
6839
6840         qnx)
6841           major=".$current"
6842           versuffix=".$current"
6843           ;;
6844
6845         sunos)
6846           major=".$current"
6847           versuffix=".$current.$revision"
6848           ;;
6849
6850         windows)
6851           # Use '-' rather than '.', since we only want one
6852           # extension on DOS 8.3 filesystems.
6853           func_arith $current - $age
6854           major=$func_arith_result
6855           versuffix="-$major"
6856           ;;
6857
6858         *)
6859           func_fatal_configuration "unknown library version type \`$version_type'"
6860           ;;
6861         esac
6862
6863         # Clear the version info if we defaulted, and they specified a release.
6864         if test -z "$vinfo" && test -n "$release"; then
6865           major=
6866           case $version_type in
6867           darwin)
6868             # we can't check for "0.0" in archive_cmds due to quoting
6869             # problems, so we reset it completely
6870             verstring=
6871             ;;
6872           *)
6873             verstring="0.0"
6874             ;;
6875           esac
6876           if test "$need_version" = no; then
6877             versuffix=
6878           else
6879             versuffix=".0.0"
6880           fi
6881         fi
6882
6883         # Remove version info from name if versioning should be avoided
6884         if test "$avoid_version" = yes && test "$need_version" = no; then
6885           major=
6886           versuffix=
6887           verstring=""
6888         fi
6889
6890         # Check to see if the archive will have undefined symbols.
6891         if test "$allow_undefined" = yes; then
6892           if test "$allow_undefined_flag" = unsupported; then
6893             func_warning "undefined symbols not allowed in $host shared libraries"
6894             build_libtool_libs=no
6895             build_old_libs=yes
6896           fi
6897         else
6898           # Don't allow undefined symbols.
6899           allow_undefined_flag="$no_undefined_flag"
6900         fi
6901
6902       fi
6903
6904       func_generate_dlsyms "$libname" "$libname" "yes"
6905       libobjs="$libobjs $symfileobj"
6906       test "X$libobjs" = "X " && libobjs=
6907
6908       if test "$mode" != relink; then
6909         # Remove our outputs, but don't remove object files since they
6910         # may have been created when compiling PIC objects.
6911         removelist=
6912         tempremovelist=`$ECHO "$output_objdir/*"`
6913         for p in $tempremovelist; do
6914           case $p in
6915             *.$objext | *.gcno)
6916                ;;
6917             $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
6918                if test "X$precious_files_regex" != "X"; then
6919                  if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
6920                  then
6921                    continue
6922                  fi
6923                fi
6924                removelist="$removelist $p"
6925                ;;
6926             *) ;;
6927           esac
6928         done
6929         test -n "$removelist" && \
6930           func_show_eval "${RM}r \$removelist"
6931       fi
6932
6933       # Now set the variables for building old libraries.
6934       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
6935         oldlibs="$oldlibs $output_objdir/$libname.$libext"
6936
6937         # Transform .lo files to .o files.
6938         oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
6939       fi
6940
6941       # Eliminate all temporary directories.
6942       #for path in $notinst_path; do
6943       # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
6944       # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
6945       # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
6946       #done
6947
6948       if test -n "$xrpath"; then
6949         # If the user specified any rpath flags, then add them.
6950         temp_xrpath=
6951         for libdir in $xrpath; do
6952           temp_xrpath="$temp_xrpath -R$libdir"
6953           case "$finalize_rpath " in
6954           *" $libdir "*) ;;
6955           *) finalize_rpath="$finalize_rpath $libdir" ;;
6956           esac
6957         done
6958         if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
6959           dependency_libs="$temp_xrpath $dependency_libs"
6960         fi
6961       fi
6962
6963       # Make sure dlfiles contains only unique files that won't be dlpreopened
6964       old_dlfiles="$dlfiles"
6965       dlfiles=
6966       for lib in $old_dlfiles; do
6967         case " $dlprefiles $dlfiles " in
6968         *" $lib "*) ;;
6969         *) dlfiles="$dlfiles $lib" ;;
6970         esac
6971       done
6972
6973       # Make sure dlprefiles contains only unique files
6974       old_dlprefiles="$dlprefiles"
6975       dlprefiles=
6976       for lib in $old_dlprefiles; do
6977         case "$dlprefiles " in
6978         *" $lib "*) ;;
6979         *) dlprefiles="$dlprefiles $lib" ;;
6980         esac
6981       done
6982
6983       if test "$build_libtool_libs" = yes; then
6984         if test -n "$rpath"; then
6985           case $host in
6986           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
6987             # these systems don't actually have a c library (as such)!
6988             ;;
6989           *-*-rhapsody* | *-*-darwin1.[012])
6990             # Rhapsody C library is in the System framework
6991             deplibs="$deplibs System.ltframework"
6992             ;;
6993           *-*-netbsd*)
6994             # Don't link with libc until the a.out ld.so is fixed.
6995             ;;
6996           *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
6997             # Do not include libc due to us having libc/libc_r.
6998             ;;
6999           *-*-sco3.2v5* | *-*-sco5v6*)
7000             # Causes problems with __ctype
7001             ;;
7002           *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
7003             # Compiler inserts libc in the correct place for threads to work
7004             ;;
7005           *)
7006             # Add libc to deplibs on all other systems if necessary.
7007             if test "$build_libtool_need_lc" = "yes"; then
7008               deplibs="$deplibs -lc"
7009             fi
7010             ;;
7011           esac
7012         fi
7013
7014         # Transform deplibs into only deplibs that can be linked in shared.
7015         name_save=$name
7016         libname_save=$libname
7017         release_save=$release
7018         versuffix_save=$versuffix
7019         major_save=$major
7020         # I'm not sure if I'm treating the release correctly.  I think
7021         # release should show up in the -l (ie -lgmp5) so we don't want to
7022         # add it in twice.  Is that correct?
7023         release=""
7024         versuffix=""
7025         major=""
7026         newdeplibs=
7027         droppeddeps=no
7028         case $deplibs_check_method in
7029         pass_all)
7030           # Don't check for shared/static.  Everything works.
7031           # This might be a little naive.  We might want to check
7032           # whether the library exists or not.  But this is on
7033           # osf3 & osf4 and I'm not really sure... Just
7034           # implementing what was already the behavior.
7035           newdeplibs=$deplibs
7036           ;;
7037         test_compile)
7038           # This code stresses the "libraries are programs" paradigm to its
7039           # limits. Maybe even breaks it.  We compile a program, linking it
7040           # against the deplibs as a proxy for the library.  Then we can check
7041           # whether they linked in statically or dynamically with ldd.
7042           $opt_dry_run || $RM conftest.c
7043           cat > conftest.c <<EOF
7044           int main() { return 0; }
7045 EOF
7046           $opt_dry_run || $RM conftest
7047           if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
7048             ldd_output=`ldd conftest`
7049             for i in $deplibs; do
7050               case $i in
7051               -l*)
7052                 func_stripname -l '' "$i"
7053                 name=$func_stripname_result
7054                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7055                   case " $predeps $postdeps " in
7056                   *" $i "*)
7057                     newdeplibs="$newdeplibs $i"
7058                     i=""
7059                     ;;
7060                   esac
7061                 fi
7062                 if test -n "$i" ; then
7063                   libname=`eval "\\$ECHO \"$libname_spec\""`
7064                   deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7065                   set dummy $deplib_matches; shift
7066                   deplib_match=$1
7067                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7068                     newdeplibs="$newdeplibs $i"
7069                   else
7070                     droppeddeps=yes
7071                     $ECHO
7072                     $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7073                     $ECHO "*** I have the capability to make that library automatically link in when"
7074                     $ECHO "*** you link to this library.  But I can only do this if you have a"
7075                     $ECHO "*** shared version of the library, which I believe you do not have"
7076                     $ECHO "*** because a test_compile did reveal that the linker did not use it for"
7077                     $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
7078                   fi
7079                 fi
7080                 ;;
7081               *)
7082                 newdeplibs="$newdeplibs $i"
7083                 ;;
7084               esac
7085             done
7086           else
7087             # Error occurred in the first compile.  Let's try to salvage
7088             # the situation: Compile a separate program for each library.
7089             for i in $deplibs; do
7090               case $i in
7091               -l*)
7092                 func_stripname -l '' "$i"
7093                 name=$func_stripname_result
7094                 $opt_dry_run || $RM conftest
7095                 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
7096                   ldd_output=`ldd conftest`
7097                   if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7098                     case " $predeps $postdeps " in
7099                     *" $i "*)
7100                       newdeplibs="$newdeplibs $i"
7101                       i=""
7102                       ;;
7103                     esac
7104                   fi
7105                   if test -n "$i" ; then
7106                     libname=`eval "\\$ECHO \"$libname_spec\""`
7107                     deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7108                     set dummy $deplib_matches; shift
7109                     deplib_match=$1
7110                     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7111                       newdeplibs="$newdeplibs $i"
7112                     else
7113                       droppeddeps=yes
7114                       $ECHO
7115                       $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7116                       $ECHO "*** I have the capability to make that library automatically link in when"
7117                       $ECHO "*** you link to this library.  But I can only do this if you have a"
7118                       $ECHO "*** shared version of the library, which you do not appear to have"
7119                       $ECHO "*** because a test_compile did reveal that the linker did not use this one"
7120                       $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
7121                     fi
7122                   fi
7123                 else
7124                   droppeddeps=yes
7125                   $ECHO
7126                   $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
7127                   $ECHO "*** make it link in!  You will probably need to install it or some"
7128                   $ECHO "*** library that it depends on before this library will be fully"
7129                   $ECHO "*** functional.  Installing it before continuing would be even better."
7130                 fi
7131                 ;;
7132               *)
7133                 newdeplibs="$newdeplibs $i"
7134                 ;;
7135               esac
7136             done
7137           fi
7138           ;;
7139         file_magic*)
7140           set dummy $deplibs_check_method; shift
7141           file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7142           for a_deplib in $deplibs; do
7143             case $a_deplib in
7144             -l*)
7145               func_stripname -l '' "$a_deplib"
7146               name=$func_stripname_result
7147               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7148                 case " $predeps $postdeps " in
7149                 *" $a_deplib "*)
7150                   newdeplibs="$newdeplibs $a_deplib"
7151                   a_deplib=""
7152                   ;;
7153                 esac
7154               fi
7155               if test -n "$a_deplib" ; then
7156                 libname=`eval "\\$ECHO \"$libname_spec\""`
7157                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7158                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7159                   for potent_lib in $potential_libs; do
7160                       # Follow soft links.
7161                       if ls -lLd "$potent_lib" 2>/dev/null |
7162                          $GREP " -> " >/dev/null; then
7163                         continue
7164                       fi
7165                       # The statement above tries to avoid entering an
7166                       # endless loop below, in case of cyclic links.
7167                       # We might still enter an endless loop, since a link
7168                       # loop can be closed while we follow links,
7169                       # but so what?
7170                       potlib="$potent_lib"
7171                       while test -h "$potlib" 2>/dev/null; do
7172                         potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
7173                         case $potliblink in
7174                         [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
7175                         *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
7176                         esac
7177                       done
7178                       if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
7179                          $SED -e 10q |
7180                          $EGREP "$file_magic_regex" > /dev/null; then
7181                         newdeplibs="$newdeplibs $a_deplib"
7182                         a_deplib=""
7183                         break 2
7184                       fi
7185                   done
7186                 done
7187               fi
7188               if test -n "$a_deplib" ; then
7189                 droppeddeps=yes
7190                 $ECHO
7191                 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7192                 $ECHO "*** I have the capability to make that library automatically link in when"
7193                 $ECHO "*** you link to this library.  But I can only do this if you have a"
7194                 $ECHO "*** shared version of the library, which you do not appear to have"
7195                 $ECHO "*** because I did check the linker path looking for a file starting"
7196                 if test -z "$potlib" ; then
7197                   $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7198                 else
7199                   $ECHO "*** with $libname and none of the candidates passed a file format test"
7200                   $ECHO "*** using a file magic. Last file checked: $potlib"
7201                 fi
7202               fi
7203               ;;
7204             *)
7205               # Add a -L argument.
7206               newdeplibs="$newdeplibs $a_deplib"
7207               ;;
7208             esac
7209           done # Gone through all deplibs.
7210           ;;
7211         match_pattern*)
7212           set dummy $deplibs_check_method; shift
7213           match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7214           for a_deplib in $deplibs; do
7215             case $a_deplib in
7216             -l*)
7217               func_stripname -l '' "$a_deplib"
7218               name=$func_stripname_result
7219               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7220                 case " $predeps $postdeps " in
7221                 *" $a_deplib "*)
7222                   newdeplibs="$newdeplibs $a_deplib"
7223                   a_deplib=""
7224                   ;;
7225                 esac
7226               fi
7227               if test -n "$a_deplib" ; then
7228                 libname=`eval "\\$ECHO \"$libname_spec\""`
7229                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7230                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7231                   for potent_lib in $potential_libs; do
7232                     potlib="$potent_lib" # see symlink-check above in file_magic test
7233                     if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
7234                        $EGREP "$match_pattern_regex" > /dev/null; then
7235                       newdeplibs="$newdeplibs $a_deplib"
7236                       a_deplib=""
7237                       break 2
7238                     fi
7239                   done
7240                 done
7241               fi
7242               if test -n "$a_deplib" ; then
7243                 droppeddeps=yes
7244                 $ECHO
7245                 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7246                 $ECHO "*** I have the capability to make that library automatically link in when"
7247                 $ECHO "*** you link to this library.  But I can only do this if you have a"
7248                 $ECHO "*** shared version of the library, which you do not appear to have"
7249                 $ECHO "*** because I did check the linker path looking for a file starting"
7250                 if test -z "$potlib" ; then
7251                   $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7252                 else
7253                   $ECHO "*** with $libname and none of the candidates passed a file format test"
7254                   $ECHO "*** using a regex pattern. Last file checked: $potlib"
7255                 fi
7256               fi
7257               ;;
7258             *)
7259               # Add a -L argument.
7260               newdeplibs="$newdeplibs $a_deplib"
7261               ;;
7262             esac
7263           done # Gone through all deplibs.
7264           ;;
7265         none | unknown | *)
7266           newdeplibs=""
7267           tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
7268               -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
7269           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7270             for i in $predeps $postdeps ; do
7271               # can't use Xsed below, because $i might contain '/'
7272               tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
7273             done
7274           fi
7275           if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
7276              $GREP . >/dev/null; then
7277             $ECHO
7278             if test "X$deplibs_check_method" = "Xnone"; then
7279               $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
7280             else
7281               $ECHO "*** Warning: inter-library dependencies are not known to be supported."
7282             fi
7283             $ECHO "*** All declared inter-library dependencies are being dropped."
7284             droppeddeps=yes
7285           fi
7286           ;;
7287         esac
7288         versuffix=$versuffix_save
7289         major=$major_save
7290         release=$release_save
7291         libname=$libname_save
7292         name=$name_save
7293
7294         case $host in
7295         *-*-rhapsody* | *-*-darwin1.[012])
7296           # On Rhapsody replace the C library with the System framework
7297           newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7298           ;;
7299         esac
7300
7301         if test "$droppeddeps" = yes; then
7302           if test "$module" = yes; then
7303             $ECHO
7304             $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
7305             $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
7306             $ECHO "*** a static module, that should work as long as the dlopening"
7307             $ECHO "*** application is linked with the -dlopen flag."
7308             if test -z "$global_symbol_pipe"; then
7309               $ECHO
7310               $ECHO "*** However, this would only work if libtool was able to extract symbol"
7311               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
7312               $ECHO "*** not find such a program.  So, this module is probably useless."
7313               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
7314             fi
7315             if test "$build_old_libs" = no; then
7316               oldlibs="$output_objdir/$libname.$libext"
7317               build_libtool_libs=module
7318               build_old_libs=yes
7319             else
7320               build_libtool_libs=no
7321             fi
7322           else
7323             $ECHO "*** The inter-library dependencies that have been dropped here will be"
7324             $ECHO "*** automatically added whenever a program is linked with this library"
7325             $ECHO "*** or is declared to -dlopen it."
7326
7327             if test "$allow_undefined" = no; then
7328               $ECHO
7329               $ECHO "*** Since this library must not contain undefined symbols,"
7330               $ECHO "*** because either the platform does not support them or"
7331               $ECHO "*** it was explicitly requested with -no-undefined,"
7332               $ECHO "*** libtool will only create a static version of it."
7333               if test "$build_old_libs" = no; then
7334                 oldlibs="$output_objdir/$libname.$libext"
7335                 build_libtool_libs=module
7336                 build_old_libs=yes
7337               else
7338                 build_libtool_libs=no
7339               fi
7340             fi
7341           fi
7342         fi
7343         # Done checking deplibs!
7344         deplibs=$newdeplibs
7345       fi
7346       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7347       case $host in
7348         *-*-darwin*)
7349           newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7350           new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7351           deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7352           ;;
7353       esac
7354
7355       # move library search paths that coincide with paths to not yet
7356       # installed libraries to the beginning of the library search list
7357       new_libs=
7358       for path in $notinst_path; do
7359         case " $new_libs " in
7360         *" -L$path/$objdir "*) ;;
7361         *)
7362           case " $deplibs " in
7363           *" -L$path/$objdir "*)
7364             new_libs="$new_libs -L$path/$objdir" ;;
7365           esac
7366           ;;
7367         esac
7368       done
7369       for deplib in $deplibs; do
7370         case $deplib in
7371         -L*)
7372           case " $new_libs " in
7373           *" $deplib "*) ;;
7374           *) new_libs="$new_libs $deplib" ;;
7375           esac
7376           ;;
7377         *) new_libs="$new_libs $deplib" ;;
7378         esac
7379       done
7380       deplibs="$new_libs"
7381
7382       # All the library-specific variables (install_libdir is set above).
7383       library_names=
7384       old_library=
7385       dlname=
7386
7387       # Test again, we may have decided not to build it any more
7388       if test "$build_libtool_libs" = yes; then
7389         if test "$hardcode_into_libs" = yes; then
7390           # Hardcode the library paths
7391           hardcode_libdirs=
7392           dep_rpath=
7393           rpath="$finalize_rpath"
7394           test "$mode" != relink && rpath="$compile_rpath$rpath"
7395           for libdir in $rpath; do
7396             if test -n "$hardcode_libdir_flag_spec"; then
7397               if test -n "$hardcode_libdir_separator"; then
7398                 if test -z "$hardcode_libdirs"; then
7399                   hardcode_libdirs="$libdir"
7400                 else
7401                   # Just accumulate the unique libdirs.
7402                   case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
7403                   *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7404                     ;;
7405                   *)
7406                     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
7407                     ;;
7408                   esac
7409                 fi
7410               else
7411                 eval flag=\"$hardcode_libdir_flag_spec\"
7412                 dep_rpath="$dep_rpath $flag"
7413               fi
7414             elif test -n "$runpath_var"; then
7415               case "$perm_rpath " in
7416               *" $libdir "*) ;;
7417               *) perm_rpath="$perm_rpath $libdir" ;;
7418               esac
7419             fi
7420           done
7421           # Substitute the hardcoded libdirs into the rpath.
7422           if test -n "$hardcode_libdir_separator" &&
7423              test -n "$hardcode_libdirs"; then
7424             libdir="$hardcode_libdirs"
7425             if test -n "$hardcode_libdir_flag_spec_ld"; then
7426               eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
7427             else
7428               eval dep_rpath=\"$hardcode_libdir_flag_spec\"
7429             fi
7430           fi
7431           if test -n "$runpath_var" && test -n "$perm_rpath"; then
7432             # We should set the runpath_var.
7433             rpath=
7434             for dir in $perm_rpath; do
7435               rpath="$rpath$dir:"
7436             done
7437             eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
7438           fi
7439           test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
7440         fi
7441
7442         shlibpath="$finalize_shlibpath"
7443         test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
7444         if test -n "$shlibpath"; then
7445           eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
7446         fi
7447
7448         # Get the real and link names of the library.
7449         eval shared_ext=\"$shrext_cmds\"
7450         eval library_names=\"$library_names_spec\"
7451         set dummy $library_names
7452         shift
7453         realname="$1"
7454         shift
7455
7456         if test -n "$soname_spec"; then
7457           eval soname=\"$soname_spec\"
7458         else
7459           soname="$realname"
7460         fi
7461         if test -z "$dlname"; then
7462           dlname=$soname
7463         fi
7464
7465         lib="$output_objdir/$realname"
7466         linknames=
7467         for link
7468         do
7469           linknames="$linknames $link"
7470         done
7471
7472         # Use standard objects if they are pic
7473         test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7474         test "X$libobjs" = "X " && libobjs=
7475
7476         delfiles=
7477         if test -n "$export_symbols" && test -n "$include_expsyms"; then
7478           $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
7479           export_symbols="$output_objdir/$libname.uexp"
7480           delfiles="$delfiles $export_symbols"
7481         fi
7482
7483         orig_export_symbols=
7484         case $host_os in
7485         cygwin* | mingw* | cegcc*)
7486           if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
7487             # exporting using user supplied symfile
7488             if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
7489               # and it's NOT already a .def file. Must figure out
7490               # which of the given symbols are data symbols and tag
7491               # them as such. So, trigger use of export_symbols_cmds.
7492               # export_symbols gets reassigned inside the "prepare
7493               # the list of exported symbols" if statement, so the
7494               # include_expsyms logic still works.
7495               orig_export_symbols="$export_symbols"
7496               export_symbols=
7497               always_export_symbols=yes
7498             fi
7499           fi
7500           ;;
7501         esac
7502
7503         # Prepare the list of exported symbols
7504         if test -z "$export_symbols"; then
7505           if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
7506             func_verbose "generating symbol list for \`$libname.la'"
7507             export_symbols="$output_objdir/$libname.exp"
7508             $opt_dry_run || $RM $export_symbols
7509             cmds=$export_symbols_cmds
7510             save_ifs="$IFS"; IFS='~'
7511             for cmd in $cmds; do
7512               IFS="$save_ifs"
7513               eval cmd=\"$cmd\"
7514               func_len " $cmd"
7515               len=$func_len_result
7516               if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7517                 func_show_eval "$cmd" 'exit $?'
7518                 skipped_export=false
7519               else
7520                 # The command line is too long to execute in one step.
7521                 func_verbose "using reloadable object file for export list..."
7522                 skipped_export=:
7523                 # Break out early, otherwise skipped_export may be
7524                 # set to false by a later but shorter cmd.
7525                 break
7526               fi
7527             done
7528             IFS="$save_ifs"
7529             if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
7530               func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
7531               func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
7532             fi
7533           fi
7534         fi
7535
7536         if test -n "$export_symbols" && test -n "$include_expsyms"; then
7537           tmp_export_symbols="$export_symbols"
7538           test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7539           $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7540         fi
7541
7542         if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
7543           # The given exports_symbols file has to be filtered, so filter it.
7544           func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
7545           # FIXME: $output_objdir/$libname.filter potentially contains lots of
7546           # 's' commands which not all seds can handle. GNU sed should be fine
7547           # though. Also, the filter scales superlinearly with the number of
7548           # global variables. join(1) would be nice here, but unfortunately
7549           # isn't a blessed tool.
7550           $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7551           delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
7552           export_symbols=$output_objdir/$libname.def
7553           $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7554         fi
7555
7556         tmp_deplibs=
7557         for test_deplib in $deplibs; do
7558           case " $convenience " in
7559           *" $test_deplib "*) ;;
7560           *)
7561             tmp_deplibs="$tmp_deplibs $test_deplib"
7562             ;;
7563           esac
7564         done
7565         deplibs="$tmp_deplibs"
7566
7567         if test -n "$convenience"; then
7568           if test -n "$whole_archive_flag_spec" &&
7569             test "$compiler_needs_object" = yes &&
7570             test -z "$libobjs"; then
7571             # extract the archives, so we have objects to list.
7572             # TODO: could optimize this to just extract one archive.
7573             whole_archive_flag_spec=
7574           fi
7575           if test -n "$whole_archive_flag_spec"; then
7576             save_libobjs=$libobjs
7577             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
7578             test "X$libobjs" = "X " && libobjs=
7579           else
7580             gentop="$output_objdir/${outputname}x"
7581             generated="$generated $gentop"
7582
7583             func_extract_archives $gentop $convenience
7584             libobjs="$libobjs $func_extract_archives_result"
7585             test "X$libobjs" = "X " && libobjs=
7586           fi
7587         fi
7588
7589         if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
7590           eval flag=\"$thread_safe_flag_spec\"
7591           linker_flags="$linker_flags $flag"
7592         fi
7593
7594         # Make a backup of the uninstalled library when relinking
7595         if test "$mode" = relink; then
7596           $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
7597         fi
7598
7599         # Do each of the archive commands.
7600         if test "$module" = yes && test -n "$module_cmds" ; then
7601           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
7602             eval test_cmds=\"$module_expsym_cmds\"
7603             cmds=$module_expsym_cmds
7604           else
7605             eval test_cmds=\"$module_cmds\"
7606             cmds=$module_cmds
7607           fi
7608         else
7609           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
7610             eval test_cmds=\"$archive_expsym_cmds\"
7611             cmds=$archive_expsym_cmds
7612           else
7613             eval test_cmds=\"$archive_cmds\"
7614             cmds=$archive_cmds
7615           fi
7616         fi
7617
7618         if test "X$skipped_export" != "X:" &&
7619            func_len " $test_cmds" &&
7620            len=$func_len_result &&
7621            test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7622           :
7623         else
7624           # The command line is too long to link in one step, link piecewise
7625           # or, if using GNU ld and skipped_export is not :, use a linker
7626           # script.
7627
7628           # Save the value of $output and $libobjs because we want to
7629           # use them later.  If we have whole_archive_flag_spec, we
7630           # want to use save_libobjs as it was before
7631           # whole_archive_flag_spec was expanded, because we can't
7632           # assume the linker understands whole_archive_flag_spec.
7633           # This may have to be revisited, in case too many
7634           # convenience libraries get linked in and end up exceeding
7635           # the spec.
7636           if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
7637             save_libobjs=$libobjs
7638           fi
7639           save_output=$output
7640           output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
7641
7642           # Clear the reloadable object creation command queue and
7643           # initialize k to one.
7644           test_cmds=
7645           concat_cmds=
7646           objlist=
7647           last_robj=
7648           k=1
7649
7650           if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
7651             output=${output_objdir}/${output_la}.lnkscript
7652             func_verbose "creating GNU ld script: $output"
7653             $ECHO 'INPUT (' > $output
7654             for obj in $save_libobjs
7655             do
7656               $ECHO "$obj" >> $output
7657             done
7658             $ECHO ')' >> $output
7659             delfiles="$delfiles $output"
7660           elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
7661             output=${output_objdir}/${output_la}.lnk
7662             func_verbose "creating linker input file list: $output"
7663             : > $output
7664             set x $save_libobjs
7665             shift
7666             firstobj=
7667             if test "$compiler_needs_object" = yes; then
7668               firstobj="$1 "
7669               shift
7670             fi
7671             for obj
7672             do
7673               $ECHO "$obj" >> $output
7674             done
7675             delfiles="$delfiles $output"
7676             output=$firstobj\"$file_list_spec$output\"
7677           else
7678             if test -n "$save_libobjs"; then
7679               func_verbose "creating reloadable object files..."
7680               output=$output_objdir/$output_la-${k}.$objext
7681               eval test_cmds=\"$reload_cmds\"
7682               func_len " $test_cmds"
7683               len0=$func_len_result
7684               len=$len0
7685
7686               # Loop over the list of objects to be linked.
7687               for obj in $save_libobjs
7688               do
7689                 func_len " $obj"
7690                 func_arith $len + $func_len_result
7691                 len=$func_arith_result
7692                 if test "X$objlist" = X ||
7693                    test "$len" -lt "$max_cmd_len"; then
7694                   func_append objlist " $obj"
7695                 else
7696                   # The command $test_cmds is almost too long, add a
7697                   # command to the queue.
7698                   if test "$k" -eq 1 ; then
7699                     # The first file doesn't have a previous command to add.
7700                     eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
7701                   else
7702                     # All subsequent reloadable object files will link in
7703                     # the last one created.
7704                     eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
7705                   fi
7706                   last_robj=$output_objdir/$output_la-${k}.$objext
7707                   func_arith $k + 1
7708                   k=$func_arith_result
7709                   output=$output_objdir/$output_la-${k}.$objext
7710                   objlist=$obj
7711                   func_len " $last_robj"
7712                   func_arith $len0 + $func_len_result
7713                   len=$func_arith_result
7714                 fi
7715               done
7716               # Handle the remaining objects by creating one last
7717               # reloadable object file.  All subsequent reloadable object
7718               # files will link in the last one created.
7719               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7720               eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
7721               if test -n "$last_robj"; then
7722                 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7723               fi
7724               delfiles="$delfiles $output"
7725
7726             else
7727               output=
7728             fi
7729
7730             if ${skipped_export-false}; then
7731               func_verbose "generating symbol list for \`$libname.la'"
7732               export_symbols="$output_objdir/$libname.exp"
7733               $opt_dry_run || $RM $export_symbols
7734               libobjs=$output
7735               # Append the command to create the export file.
7736               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7737               eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
7738               if test -n "$last_robj"; then
7739                 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
7740               fi
7741             fi
7742
7743             test -n "$save_libobjs" &&
7744               func_verbose "creating a temporary reloadable object file: $output"
7745
7746             # Loop through the commands generated above and execute them.
7747             save_ifs="$IFS"; IFS='~'
7748             for cmd in $concat_cmds; do
7749               IFS="$save_ifs"
7750               $opt_silent || {
7751                   func_quote_for_expand "$cmd"
7752                   eval "func_echo $func_quote_for_expand_result"
7753               }
7754               $opt_dry_run || eval "$cmd" || {
7755                 lt_exit=$?
7756
7757                 # Restore the uninstalled library and exit
7758                 if test "$mode" = relink; then
7759                   ( cd "$output_objdir" && \
7760                     $RM "${realname}T" && \
7761                     $MV "${realname}U" "$realname" )
7762                 fi
7763
7764                 exit $lt_exit
7765               }
7766             done
7767             IFS="$save_ifs"
7768
7769             if test -n "$export_symbols_regex" && ${skipped_export-false}; then
7770               func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
7771               func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
7772             fi
7773           fi
7774
7775           if ${skipped_export-false}; then
7776             if test -n "$export_symbols" && test -n "$include_expsyms"; then
7777               tmp_export_symbols="$export_symbols"
7778               test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7779               $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7780             fi
7781
7782             if test -n "$orig_export_symbols"; then
7783               # The given exports_symbols file has to be filtered, so filter it.
7784               func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
7785               # FIXME: $output_objdir/$libname.filter potentially contains lots of
7786               # 's' commands which not all seds can handle. GNU sed should be fine
7787               # though. Also, the filter scales superlinearly with the number of
7788               # global variables. join(1) would be nice here, but unfortunately
7789               # isn't a blessed tool.
7790               $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7791               delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
7792               export_symbols=$output_objdir/$libname.def
7793               $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7794             fi
7795           fi
7796
7797           libobjs=$output
7798           # Restore the value of output.
7799           output=$save_output
7800
7801           if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
7802             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
7803             test "X$libobjs" = "X " && libobjs=
7804           fi
7805           # Expand the library linking commands again to reset the
7806           # value of $libobjs for piecewise linking.
7807
7808           # Do each of the archive commands.
7809           if test "$module" = yes && test -n "$module_cmds" ; then
7810             if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
7811               cmds=$module_expsym_cmds
7812             else
7813               cmds=$module_cmds
7814             fi
7815           else
7816             if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
7817               cmds=$archive_expsym_cmds
7818             else
7819               cmds=$archive_cmds
7820             fi
7821           fi
7822         fi
7823
7824         if test -n "$delfiles"; then
7825           # Append the command to remove temporary files to $cmds.
7826           eval cmds=\"\$cmds~\$RM $delfiles\"
7827         fi
7828
7829         # Add any objects from preloaded convenience libraries
7830         if test -n "$dlprefiles"; then
7831           gentop="$output_objdir/${outputname}x"
7832           generated="$generated $gentop"
7833
7834           func_extract_archives $gentop $dlprefiles
7835           libobjs="$libobjs $func_extract_archives_result"
7836           test "X$libobjs" = "X " && libobjs=
7837         fi
7838
7839         save_ifs="$IFS"; IFS='~'
7840         for cmd in $cmds; do
7841           IFS="$save_ifs"
7842           eval cmd=\"$cmd\"
7843           $opt_silent || {
7844             func_quote_for_expand "$cmd"
7845             eval "func_echo $func_quote_for_expand_result"
7846           }
7847           $opt_dry_run || eval "$cmd" || {
7848             lt_exit=$?
7849
7850             # Restore the uninstalled library and exit
7851             if test "$mode" = relink; then
7852               ( cd "$output_objdir" && \
7853                 $RM "${realname}T" && \
7854                 $MV "${realname}U" "$realname" )
7855             fi
7856
7857             exit $lt_exit
7858           }
7859         done
7860         IFS="$save_ifs"
7861
7862         # Restore the uninstalled library and exit
7863         if test "$mode" = relink; then
7864           $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
7865
7866           if test -n "$convenience"; then
7867             if test -z "$whole_archive_flag_spec"; then
7868               func_show_eval '${RM}r "$gentop"'
7869             fi
7870           fi
7871
7872           exit $EXIT_SUCCESS
7873         fi
7874
7875         # Create links to the real library.
7876         for linkname in $linknames; do
7877           if test "$realname" != "$linkname"; then
7878             func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
7879           fi
7880         done
7881
7882         # If -module or -export-dynamic was specified, set the dlname.
7883         if test "$module" = yes || test "$export_dynamic" = yes; then
7884           # On all known operating systems, these are identical.
7885           dlname="$soname"
7886         fi
7887       fi
7888       ;;
7889
7890     obj)
7891       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
7892         func_warning "\`-dlopen' is ignored for objects"
7893       fi
7894
7895       case " $deplibs" in
7896       *\ -l* | *\ -L*)
7897         func_warning "\`-l' and \`-L' are ignored for objects" ;;
7898       esac
7899
7900       test -n "$rpath" && \
7901         func_warning "\`-rpath' is ignored for objects"
7902
7903       test -n "$xrpath" && \
7904         func_warning "\`-R' is ignored for objects"
7905
7906       test -n "$vinfo" && \
7907         func_warning "\`-version-info' is ignored for objects"
7908
7909       test -n "$release" && \
7910         func_warning "\`-release' is ignored for objects"
7911
7912       case $output in
7913       *.lo)
7914         test -n "$objs$old_deplibs" && \
7915           func_fatal_error "cannot build library object \`$output' from non-libtool objects"
7916
7917         libobj=$output
7918         func_lo2o "$libobj"
7919         obj=$func_lo2o_result
7920         ;;
7921       *)
7922         libobj=
7923         obj="$output"
7924         ;;
7925       esac
7926
7927       # Delete the old objects.
7928       $opt_dry_run || $RM $obj $libobj
7929
7930       # Objects from convenience libraries.  This assumes
7931       # single-version convenience libraries.  Whenever we create
7932       # different ones for PIC/non-PIC, this we'll have to duplicate
7933       # the extraction.
7934       reload_conv_objs=
7935       gentop=
7936       # reload_cmds runs $LD directly, so let us get rid of
7937       # -Wl from whole_archive_flag_spec and hope we can get by with
7938       # turning comma into space..
7939       wl=
7940
7941       if test -n "$convenience"; then
7942         if test -n "$whole_archive_flag_spec"; then
7943           eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7944           reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
7945         else
7946           gentop="$output_objdir/${obj}x"
7947           generated="$generated $gentop"
7948
7949           func_extract_archives $gentop $convenience
7950           reload_conv_objs="$reload_objs $func_extract_archives_result"
7951         fi
7952       fi
7953
7954       # Create the old-style object.
7955       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
7956
7957       output="$obj"
7958       func_execute_cmds "$reload_cmds" 'exit $?'
7959
7960       # Exit if we aren't doing a library object file.
7961       if test -z "$libobj"; then
7962         if test -n "$gentop"; then
7963           func_show_eval '${RM}r "$gentop"'
7964         fi
7965
7966         exit $EXIT_SUCCESS
7967       fi
7968
7969       if test "$build_libtool_libs" != yes; then
7970         if test -n "$gentop"; then
7971           func_show_eval '${RM}r "$gentop"'
7972         fi
7973
7974         # Create an invalid libtool object if no PIC, so that we don't
7975         # accidentally link it into a program.
7976         # $show "echo timestamp > $libobj"
7977         # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
7978         exit $EXIT_SUCCESS
7979       fi
7980
7981       if test -n "$pic_flag" || test "$pic_mode" != default; then
7982         # Only do commands if we really have different PIC objects.
7983         reload_objs="$libobjs $reload_conv_objs"
7984         output="$libobj"
7985         func_execute_cmds "$reload_cmds" 'exit $?'
7986       fi
7987
7988       if test -n "$gentop"; then
7989         func_show_eval '${RM}r "$gentop"'
7990       fi
7991
7992       exit $EXIT_SUCCESS
7993       ;;
7994
7995     prog)
7996       case $host in
7997         *cygwin*) func_stripname '' '.exe' "$output"
7998                   output=$func_stripname_result.exe;;
7999       esac
8000       test -n "$vinfo" && \
8001         func_warning "\`-version-info' is ignored for programs"
8002
8003       test -n "$release" && \
8004         func_warning "\`-release' is ignored for programs"
8005
8006       test "$preload" = yes \
8007         && test "$dlopen_support" = unknown \
8008         && test "$dlopen_self" = unknown \
8009         && test "$dlopen_self_static" = unknown && \
8010           func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
8011
8012       case $host in
8013       *-*-rhapsody* | *-*-darwin1.[012])
8014         # On Rhapsody replace the C library is the System framework
8015         compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
8016         finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
8017         ;;
8018       esac
8019
8020       case $host in
8021       *-*-darwin*)
8022         # Don't allow lazy linking, it breaks C++ global constructors
8023         # But is supposedly fixed on 10.4 or later (yay!).
8024         if test "$tagname" = CXX ; then
8025           case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
8026             10.[0123])
8027               compile_command="$compile_command ${wl}-bind_at_load"
8028               finalize_command="$finalize_command ${wl}-bind_at_load"
8029             ;;
8030           esac
8031         fi
8032         # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8033         compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8034         finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8035         ;;
8036       esac
8037
8038
8039       # move library search paths that coincide with paths to not yet
8040       # installed libraries to the beginning of the library search list
8041       new_libs=
8042       for path in $notinst_path; do
8043         case " $new_libs " in
8044         *" -L$path/$objdir "*) ;;
8045         *)
8046           case " $compile_deplibs " in
8047           *" -L$path/$objdir "*)
8048             new_libs="$new_libs -L$path/$objdir" ;;
8049           esac
8050           ;;
8051         esac
8052       done
8053       for deplib in $compile_deplibs; do
8054         case $deplib in
8055         -L*)
8056           case " $new_libs " in
8057           *" $deplib "*) ;;
8058           *) new_libs="$new_libs $deplib" ;;
8059           esac
8060           ;;
8061         *) new_libs="$new_libs $deplib" ;;
8062         esac
8063       done
8064       compile_deplibs="$new_libs"
8065
8066
8067       compile_command="$compile_command $compile_deplibs"
8068       finalize_command="$finalize_command $finalize_deplibs"
8069
8070       if test -n "$rpath$xrpath"; then
8071         # If the user specified any rpath flags, then add them.
8072         for libdir in $rpath $xrpath; do
8073           # This is the magic to use -rpath.
8074           case "$finalize_rpath " in
8075           *" $libdir "*) ;;
8076           *) finalize_rpath="$finalize_rpath $libdir" ;;
8077           esac
8078         done
8079       fi
8080
8081       # Now hardcode the library paths
8082       rpath=
8083       hardcode_libdirs=
8084       for libdir in $compile_rpath $finalize_rpath; do
8085         if test -n "$hardcode_libdir_flag_spec"; then
8086           if test -n "$hardcode_libdir_separator"; then
8087             if test -z "$hardcode_libdirs"; then
8088               hardcode_libdirs="$libdir"
8089             else
8090               # Just accumulate the unique libdirs.
8091               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8092               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8093                 ;;
8094               *)
8095                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8096                 ;;
8097               esac
8098             fi
8099           else
8100             eval flag=\"$hardcode_libdir_flag_spec\"
8101             rpath="$rpath $flag"
8102           fi
8103         elif test -n "$runpath_var"; then
8104           case "$perm_rpath " in
8105           *" $libdir "*) ;;
8106           *) perm_rpath="$perm_rpath $libdir" ;;
8107           esac
8108         fi
8109         case $host in
8110         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
8111           testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
8112           case :$dllsearchpath: in
8113           *":$libdir:"*) ;;
8114           ::) dllsearchpath=$libdir;;
8115           *) dllsearchpath="$dllsearchpath:$libdir";;
8116           esac
8117           case :$dllsearchpath: in
8118           *":$testbindir:"*) ;;
8119           ::) dllsearchpath=$testbindir;;
8120           *) dllsearchpath="$dllsearchpath:$testbindir";;
8121           esac
8122           ;;
8123         esac
8124       done
8125       # Substitute the hardcoded libdirs into the rpath.
8126       if test -n "$hardcode_libdir_separator" &&
8127          test -n "$hardcode_libdirs"; then
8128         libdir="$hardcode_libdirs"
8129         eval rpath=\" $hardcode_libdir_flag_spec\"
8130       fi
8131       compile_rpath="$rpath"
8132
8133       rpath=
8134       hardcode_libdirs=
8135       for libdir in $finalize_rpath; do
8136         if test -n "$hardcode_libdir_flag_spec"; then
8137           if test -n "$hardcode_libdir_separator"; then
8138             if test -z "$hardcode_libdirs"; then
8139               hardcode_libdirs="$libdir"
8140             else
8141               # Just accumulate the unique libdirs.
8142               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8143               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8144                 ;;
8145               *)
8146                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8147                 ;;
8148               esac
8149             fi
8150           else
8151             eval flag=\"$hardcode_libdir_flag_spec\"
8152             rpath="$rpath $flag"
8153           fi
8154         elif test -n "$runpath_var"; then
8155           case "$finalize_perm_rpath " in
8156           *" $libdir "*) ;;
8157           *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
8158           esac
8159         fi
8160       done
8161       # Substitute the hardcoded libdirs into the rpath.
8162       if test -n "$hardcode_libdir_separator" &&
8163          test -n "$hardcode_libdirs"; then
8164         libdir="$hardcode_libdirs"
8165         eval rpath=\" $hardcode_libdir_flag_spec\"
8166       fi
8167       finalize_rpath="$rpath"
8168
8169       if test -n "$libobjs" && test "$build_old_libs" = yes; then
8170         # Transform all the library objects into standard objects.
8171         compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8172         finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8173       fi
8174
8175       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
8176
8177       # template prelinking step
8178       if test -n "$prelink_cmds"; then
8179         func_execute_cmds "$prelink_cmds" 'exit $?'
8180       fi
8181
8182       wrappers_required=yes
8183       case $host in
8184       *cygwin* | *mingw* )
8185         if test "$build_libtool_libs" != yes; then
8186           wrappers_required=no
8187         fi
8188         ;;
8189       *cegcc)
8190         # Disable wrappers for cegcc, we are cross compiling anyway.
8191         wrappers_required=no
8192         ;;
8193       *)
8194         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
8195           wrappers_required=no
8196         fi
8197         ;;
8198       esac
8199       if test "$wrappers_required" = no; then
8200         # Replace the output file specification.
8201         compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8202         link_command="$compile_command$compile_rpath"
8203
8204         # We have no uninstalled library dependencies, so finalize right now.
8205         exit_status=0
8206         func_show_eval "$link_command" 'exit_status=$?'
8207
8208         # Delete the generated files.
8209         if test -f "$output_objdir/${outputname}S.${objext}"; then
8210           func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
8211         fi
8212
8213         exit $exit_status
8214       fi
8215
8216       if test -n "$compile_shlibpath$finalize_shlibpath"; then
8217         compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
8218       fi
8219       if test -n "$finalize_shlibpath"; then
8220         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
8221       fi
8222
8223       compile_var=
8224       finalize_var=
8225       if test -n "$runpath_var"; then
8226         if test -n "$perm_rpath"; then
8227           # We should set the runpath_var.
8228           rpath=
8229           for dir in $perm_rpath; do
8230             rpath="$rpath$dir:"
8231           done
8232           compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
8233         fi
8234         if test -n "$finalize_perm_rpath"; then
8235           # We should set the runpath_var.
8236           rpath=
8237           for dir in $finalize_perm_rpath; do
8238             rpath="$rpath$dir:"
8239           done
8240           finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
8241         fi
8242       fi
8243
8244       if test "$no_install" = yes; then
8245         # We don't need to create a wrapper script.
8246         link_command="$compile_var$compile_command$compile_rpath"
8247         # Replace the output file specification.
8248         link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8249         # Delete the old output file.
8250         $opt_dry_run || $RM $output
8251         # Link the executable and exit
8252         func_show_eval "$link_command" 'exit $?'
8253         exit $EXIT_SUCCESS
8254       fi
8255
8256       if test "$hardcode_action" = relink; then
8257         # Fast installation is not supported
8258         link_command="$compile_var$compile_command$compile_rpath"
8259         relink_command="$finalize_var$finalize_command$finalize_rpath"
8260
8261         func_warning "this platform does not like uninstalled shared libraries"
8262         func_warning "\`$output' will be relinked during installation"
8263       else
8264         if test "$fast_install" != no; then
8265           link_command="$finalize_var$compile_command$finalize_rpath"
8266           if test "$fast_install" = yes; then
8267             relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
8268           else
8269             # fast_install is set to needless
8270             relink_command=
8271           fi
8272         else
8273           link_command="$compile_var$compile_command$compile_rpath"
8274           relink_command="$finalize_var$finalize_command$finalize_rpath"
8275         fi
8276       fi
8277
8278       # Replace the output file specification.
8279       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8280
8281       # Delete the old output files.
8282       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
8283
8284       func_show_eval "$link_command" 'exit $?'
8285
8286       # Now create the wrapper script.
8287       func_verbose "creating $output"
8288
8289       # Quote the relink command for shipping.
8290       if test -n "$relink_command"; then
8291         # Preserve any variables that may affect compiler behavior
8292         for var in $variables_saved_for_relink; do
8293           if eval test -z \"\${$var+set}\"; then
8294             relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8295           elif eval var_value=\$$var; test -z "$var_value"; then
8296             relink_command="$var=; export $var; $relink_command"
8297           else
8298             func_quote_for_eval "$var_value"
8299             relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
8300           fi
8301         done
8302         relink_command="(cd `pwd`; $relink_command)"
8303         relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
8304       fi
8305
8306       # Quote $ECHO for shipping.
8307       if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
8308         case $progpath in
8309         [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
8310         *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
8311         esac
8312         qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
8313       else
8314         qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
8315       fi
8316
8317       # Only actually do things if not in dry run mode.
8318       $opt_dry_run || {
8319         # win32 will think the script is a binary if it has
8320         # a .exe suffix, so we strip it off here.
8321         case $output in
8322           *.exe) func_stripname '' '.exe' "$output"
8323                  output=$func_stripname_result ;;
8324         esac
8325         # test for cygwin because mv fails w/o .exe extensions
8326         case $host in
8327           *cygwin*)
8328             exeext=.exe
8329             func_stripname '' '.exe' "$outputname"
8330             outputname=$func_stripname_result ;;
8331           *) exeext= ;;
8332         esac
8333         case $host in
8334           *cygwin* | *mingw* )
8335             func_dirname_and_basename "$output" "" "."
8336             output_name=$func_basename_result
8337             output_path=$func_dirname_result
8338             cwrappersource="$output_path/$objdir/lt-$output_name.c"
8339             cwrapper="$output_path/$output_name.exe"
8340             $RM $cwrappersource $cwrapper
8341             trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
8342
8343             func_emit_cwrapperexe_src > $cwrappersource
8344
8345             # The wrapper executable is built using the $host compiler,
8346             # because it contains $host paths and files. If cross-
8347             # compiling, it, like the target executable, must be
8348             # executed on the $host or under an emulation environment.
8349             $opt_dry_run || {
8350               $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
8351               $STRIP $cwrapper
8352             }
8353
8354             # Now, create the wrapper script for func_source use:
8355             func_ltwrapper_scriptname $cwrapper
8356             $RM $func_ltwrapper_scriptname_result
8357             trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
8358             $opt_dry_run || {
8359               # note: this script will not be executed, so do not chmod.
8360               if test "x$build" = "x$host" ; then
8361                 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
8362               else
8363                 func_emit_wrapper no > $func_ltwrapper_scriptname_result
8364               fi
8365             }
8366           ;;
8367           * )
8368             $RM $output
8369             trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
8370
8371             func_emit_wrapper no > $output
8372             chmod +x $output
8373           ;;
8374         esac
8375       }
8376       exit $EXIT_SUCCESS
8377       ;;
8378     esac
8379
8380     # See if we need to build an old-fashioned archive.
8381     for oldlib in $oldlibs; do
8382
8383       if test "$build_libtool_libs" = convenience; then
8384         oldobjs="$libobjs_save $symfileobj"
8385         addlibs="$convenience"
8386         build_libtool_libs=no
8387       else
8388         if test "$build_libtool_libs" = module; then
8389           oldobjs="$libobjs_save"
8390           build_libtool_libs=no
8391         else
8392           oldobjs="$old_deplibs $non_pic_objects"
8393           if test "$preload" = yes && test -f "$symfileobj"; then
8394             oldobjs="$oldobjs $symfileobj"
8395           fi
8396         fi
8397         addlibs="$old_convenience"
8398       fi
8399
8400       if test -n "$addlibs"; then
8401         gentop="$output_objdir/${outputname}x"
8402         generated="$generated $gentop"
8403
8404         func_extract_archives $gentop $addlibs
8405         oldobjs="$oldobjs $func_extract_archives_result"
8406       fi
8407
8408       # Do each command in the archive commands.
8409       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
8410         cmds=$old_archive_from_new_cmds
8411       else
8412
8413         # Add any objects from preloaded convenience libraries
8414         if test -n "$dlprefiles"; then
8415           gentop="$output_objdir/${outputname}x"
8416           generated="$generated $gentop"
8417
8418           func_extract_archives $gentop $dlprefiles
8419           oldobjs="$oldobjs $func_extract_archives_result"
8420         fi
8421
8422         # POSIX demands no paths to be encoded in archives.  We have
8423         # to avoid creating archives with duplicate basenames if we
8424         # might have to extract them afterwards, e.g., when creating a
8425         # static archive out of a convenience library, or when linking
8426         # the entirety of a libtool archive into another (currently
8427         # not supported by libtool).
8428         if (for obj in $oldobjs
8429             do
8430               func_basename "$obj"
8431               $ECHO "$func_basename_result"
8432             done | sort | sort -uc >/dev/null 2>&1); then
8433           :
8434         else
8435           $ECHO "copying selected object files to avoid basename conflicts..."
8436           gentop="$output_objdir/${outputname}x"
8437           generated="$generated $gentop"
8438           func_mkdir_p "$gentop"
8439           save_oldobjs=$oldobjs
8440           oldobjs=
8441           counter=1
8442           for obj in $save_oldobjs
8443           do
8444             func_basename "$obj"
8445             objbase="$func_basename_result"
8446             case " $oldobjs " in
8447             " ") oldobjs=$obj ;;
8448             *[\ /]"$objbase "*)
8449               while :; do
8450                 # Make sure we don't pick an alternate name that also
8451                 # overlaps.
8452                 newobj=lt$counter-$objbase
8453                 func_arith $counter + 1
8454                 counter=$func_arith_result
8455                 case " $oldobjs " in
8456                 *[\ /]"$newobj "*) ;;
8457                 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
8458                 esac
8459               done
8460               func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
8461               oldobjs="$oldobjs $gentop/$newobj"
8462               ;;
8463             *) oldobjs="$oldobjs $obj" ;;
8464             esac
8465           done
8466         fi
8467         eval cmds=\"$old_archive_cmds\"
8468
8469         func_len " $cmds"
8470         len=$func_len_result
8471         if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
8472           cmds=$old_archive_cmds
8473         else
8474           # the command line is too long to link in one step, link in parts
8475           func_verbose "using piecewise archive linking..."
8476           save_RANLIB=$RANLIB
8477           RANLIB=:
8478           objlist=
8479           concat_cmds=
8480           save_oldobjs=$oldobjs
8481           oldobjs=
8482           # Is there a better way of finding the last object in the list?
8483           for obj in $save_oldobjs
8484           do
8485             last_oldobj=$obj
8486           done
8487           eval test_cmds=\"$old_archive_cmds\"
8488           func_len " $test_cmds"
8489           len0=$func_len_result
8490           len=$len0
8491           for obj in $save_oldobjs
8492           do
8493             func_len " $obj"
8494             func_arith $len + $func_len_result
8495             len=$func_arith_result
8496             func_append objlist " $obj"
8497             if test "$len" -lt "$max_cmd_len"; then
8498               :
8499             else
8500               # the above command should be used before it gets too long
8501               oldobjs=$objlist
8502               if test "$obj" = "$last_oldobj" ; then
8503                 RANLIB=$save_RANLIB
8504               fi
8505               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8506               eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
8507               objlist=
8508               len=$len0
8509             fi
8510           done
8511           RANLIB=$save_RANLIB
8512           oldobjs=$objlist
8513           if test "X$oldobjs" = "X" ; then
8514             eval cmds=\"\$concat_cmds\"
8515           else
8516             eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
8517           fi
8518         fi
8519       fi
8520       func_execute_cmds "$cmds" 'exit $?'
8521     done
8522
8523     test -n "$generated" && \
8524       func_show_eval "${RM}r$generated"
8525
8526     # Now create the libtool archive.
8527     case $output in
8528     *.la)
8529       old_library=
8530       test "$build_old_libs" = yes && old_library="$libname.$libext"
8531       func_verbose "creating $output"
8532
8533       # Preserve any variables that may affect compiler behavior
8534       for var in $variables_saved_for_relink; do
8535         if eval test -z \"\${$var+set}\"; then
8536           relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8537         elif eval var_value=\$$var; test -z "$var_value"; then
8538           relink_command="$var=; export $var; $relink_command"
8539         else
8540           func_quote_for_eval "$var_value"
8541           relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
8542         fi
8543       done
8544       # Quote the link command for shipping.
8545       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8546       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
8547       if test "$hardcode_automatic" = yes ; then
8548         relink_command=
8549       fi
8550
8551       # Only create the output if not a dry run.
8552       $opt_dry_run || {
8553         for installed in no yes; do
8554           if test "$installed" = yes; then
8555             if test -z "$install_libdir"; then
8556               break
8557             fi
8558             output="$output_objdir/$outputname"i
8559             # Replace all uninstalled libtool libraries with the installed ones
8560             newdependency_libs=
8561             for deplib in $dependency_libs; do
8562               case $deplib in
8563               *.la)
8564                 func_basename "$deplib"
8565                 name="$func_basename_result"
8566                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
8567                 test -z "$libdir" && \
8568                   func_fatal_error "\`$deplib' is not a valid libtool archive"
8569                 newdependency_libs="$newdependency_libs $libdir/$name"
8570                 ;;
8571               *) newdependency_libs="$newdependency_libs $deplib" ;;
8572               esac
8573             done
8574             dependency_libs="$newdependency_libs"
8575             newdlfiles=
8576
8577             for lib in $dlfiles; do
8578               case $lib in
8579               *.la)
8580                 func_basename "$lib"
8581                 name="$func_basename_result"
8582                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8583                 test -z "$libdir" && \
8584                   func_fatal_error "\`$lib' is not a valid libtool archive"
8585                 newdlfiles="$newdlfiles $libdir/$name"
8586                 ;;
8587               *) newdlfiles="$newdlfiles $lib" ;;
8588               esac
8589             done
8590             dlfiles="$newdlfiles"
8591             newdlprefiles=
8592             for lib in $dlprefiles; do
8593               case $lib in
8594               *.la)
8595                 # Only pass preopened files to the pseudo-archive (for
8596                 # eventual linking with the app. that links it) if we
8597                 # didn't already link the preopened objects directly into
8598                 # the library:
8599                 func_basename "$lib"
8600                 name="$func_basename_result"
8601                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8602                 test -z "$libdir" && \
8603                   func_fatal_error "\`$lib' is not a valid libtool archive"
8604                 newdlprefiles="$newdlprefiles $libdir/$name"
8605                 ;;
8606               esac
8607             done
8608             dlprefiles="$newdlprefiles"
8609           else
8610             newdlfiles=
8611             for lib in $dlfiles; do
8612               case $lib in
8613                 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8614                 *) abs=`pwd`"/$lib" ;;
8615               esac
8616               newdlfiles="$newdlfiles $abs"
8617             done
8618             dlfiles="$newdlfiles"
8619             newdlprefiles=
8620             for lib in $dlprefiles; do
8621               case $lib in
8622                 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8623                 *) abs=`pwd`"/$lib" ;;
8624               esac
8625               newdlprefiles="$newdlprefiles $abs"
8626             done
8627             dlprefiles="$newdlprefiles"
8628           fi
8629           $RM $output
8630           # place dlname in correct position for cygwin
8631           tdlname=$dlname
8632           case $host,$output,$installed,$module,$dlname in
8633             *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
8634           esac
8635           $ECHO > $output "\
8636 # $outputname - a libtool library file
8637 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
8638 #
8639 # Please DO NOT delete this file!
8640 # It is necessary for linking the library.
8641
8642 # The name that we can dlopen(3).
8643 dlname='$tdlname'
8644
8645 # Names of this library.
8646 library_names='$library_names'
8647
8648 # The name of the static archive.
8649 old_library='$old_library'
8650
8651 # Linker flags that can not go in dependency_libs.
8652 inherited_linker_flags='$new_inherited_linker_flags'
8653
8654 # Libraries that this one depends upon.
8655 dependency_libs='$dependency_libs'
8656
8657 # Names of additional weak libraries provided by this library
8658 weak_library_names='$weak_libs'
8659
8660 # Version information for $libname.
8661 current=$current
8662 age=$age
8663 revision=$revision
8664
8665 # Is this an already installed library?
8666 installed=$installed
8667
8668 # Should we warn about portability when linking against -modules?
8669 shouldnotlink=$module
8670
8671 # Files to dlopen/dlpreopen
8672 dlopen='$dlfiles'
8673 dlpreopen='$dlprefiles'
8674
8675 # Directory that this library needs to be installed in:
8676 libdir='$install_libdir'"
8677           if test "$installed" = no && test "$need_relink" = yes; then
8678             $ECHO >> $output "\
8679 relink_command=\"$relink_command\""
8680           fi
8681         done
8682       }
8683
8684       # Do a symbolic link so that the libtool archive can be found in
8685       # LD_LIBRARY_PATH before the program is installed.
8686       func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
8687       ;;
8688     esac
8689     exit $EXIT_SUCCESS
8690 }
8691
8692 { test "$mode" = link || test "$mode" = relink; } &&
8693     func_mode_link ${1+"$@"}
8694
8695
8696 # func_mode_uninstall arg...
8697 func_mode_uninstall ()
8698 {
8699     $opt_debug
8700     RM="$nonopt"
8701     files=
8702     rmforce=
8703     exit_status=0
8704
8705     # This variable tells wrapper scripts just to set variables rather
8706     # than running their programs.
8707     libtool_install_magic="$magic"
8708
8709     for arg
8710     do
8711       case $arg in
8712       -f) RM="$RM $arg"; rmforce=yes ;;
8713       -*) RM="$RM $arg" ;;
8714       *) files="$files $arg" ;;
8715       esac
8716     done
8717
8718     test -z "$RM" && \
8719       func_fatal_help "you must specify an RM program"
8720
8721     rmdirs=
8722
8723     origobjdir="$objdir"
8724     for file in $files; do
8725       func_dirname "$file" "" "."
8726       dir="$func_dirname_result"
8727       if test "X$dir" = X.; then
8728         objdir="$origobjdir"
8729       else
8730         objdir="$dir/$origobjdir"
8731       fi
8732       func_basename "$file"
8733       name="$func_basename_result"
8734       test "$mode" = uninstall && objdir="$dir"
8735
8736       # Remember objdir for removal later, being careful to avoid duplicates
8737       if test "$mode" = clean; then
8738         case " $rmdirs " in
8739           *" $objdir "*) ;;
8740           *) rmdirs="$rmdirs $objdir" ;;
8741         esac
8742       fi
8743
8744       # Don't error if the file doesn't exist and rm -f was used.
8745       if { test -L "$file"; } >/dev/null 2>&1 ||
8746          { test -h "$file"; } >/dev/null 2>&1 ||
8747          test -f "$file"; then
8748         :
8749       elif test -d "$file"; then
8750         exit_status=1
8751         continue
8752       elif test "$rmforce" = yes; then
8753         continue
8754       fi
8755
8756       rmfiles="$file"
8757
8758       case $name in
8759       *.la)
8760         # Possibly a libtool archive, so verify it.
8761         if func_lalib_p "$file"; then
8762           func_source $dir/$name
8763
8764           # Delete the libtool libraries and symlinks.
8765           for n in $library_names; do
8766             rmfiles="$rmfiles $objdir/$n"
8767           done
8768           test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
8769
8770           case "$mode" in
8771           clean)
8772             case "  $library_names " in
8773             # "  " in the beginning catches empty $dlname
8774             *" $dlname "*) ;;
8775             *) rmfiles="$rmfiles $objdir/$dlname" ;;
8776             esac
8777             test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
8778             ;;
8779           uninstall)
8780             if test -n "$library_names"; then
8781               # Do each command in the postuninstall commands.
8782               func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8783             fi
8784
8785             if test -n "$old_library"; then
8786               # Do each command in the old_postuninstall commands.
8787               func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8788             fi
8789             # FIXME: should reinstall the best remaining shared library.
8790             ;;
8791           esac
8792         fi
8793         ;;
8794
8795       *.lo)
8796         # Possibly a libtool object, so verify it.
8797         if func_lalib_p "$file"; then
8798
8799           # Read the .lo file
8800           func_source $dir/$name
8801
8802           # Add PIC object to the list of files to remove.
8803           if test -n "$pic_object" &&
8804              test "$pic_object" != none; then
8805             rmfiles="$rmfiles $dir/$pic_object"
8806           fi
8807
8808           # Add non-PIC object to the list of files to remove.
8809           if test -n "$non_pic_object" &&
8810              test "$non_pic_object" != none; then
8811             rmfiles="$rmfiles $dir/$non_pic_object"
8812           fi
8813         fi
8814         ;;
8815
8816       *)
8817         if test "$mode" = clean ; then
8818           noexename=$name
8819           case $file in
8820           *.exe)
8821             func_stripname '' '.exe' "$file"
8822             file=$func_stripname_result
8823             func_stripname '' '.exe' "$name"
8824             noexename=$func_stripname_result
8825             # $file with .exe has already been added to rmfiles,
8826             # add $file without .exe
8827             rmfiles="$rmfiles $file"
8828             ;;
8829           esac
8830           # Do a test to see if this is a libtool program.
8831           if func_ltwrapper_p "$file"; then
8832             if func_ltwrapper_executable_p "$file"; then
8833               func_ltwrapper_scriptname "$file"
8834               relink_command=
8835               func_source $func_ltwrapper_scriptname_result
8836               rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
8837             else
8838               relink_command=
8839               func_source $dir/$noexename
8840             fi
8841
8842             # note $name still contains .exe if it was in $file originally
8843             # as does the version of $file that was added into $rmfiles
8844             rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
8845             if test "$fast_install" = yes && test -n "$relink_command"; then
8846               rmfiles="$rmfiles $objdir/lt-$name"
8847             fi
8848             if test "X$noexename" != "X$name" ; then
8849               rmfiles="$rmfiles $objdir/lt-${noexename}.c"
8850             fi
8851           fi
8852         fi
8853         ;;
8854       esac
8855       func_show_eval "$RM $rmfiles" 'exit_status=1'
8856     done
8857     objdir="$origobjdir"
8858
8859     # Try to remove the ${objdir}s in the directories where we deleted files
8860     for dir in $rmdirs; do
8861       if test -d "$dir"; then
8862         func_show_eval "rmdir $dir >/dev/null 2>&1"
8863       fi
8864     done
8865
8866     exit $exit_status
8867 }
8868
8869 { test "$mode" = uninstall || test "$mode" = clean; } &&
8870     func_mode_uninstall ${1+"$@"}
8871
8872 test -z "$mode" && {
8873   help="$generic_help"
8874   func_fatal_help "you must specify a MODE"
8875 }
8876
8877 test -z "$exec_cmd" && \
8878   func_fatal_help "invalid operation mode \`$mode'"
8879
8880 if test -n "$exec_cmd"; then
8881   eval exec "$exec_cmd"
8882   exit $EXIT_FAILURE
8883 fi
8884
8885 exit $exit_status
8886
8887
8888 # The TAGs below are defined such that we never get into a situation
8889 # in which we disable both kinds of libraries.  Given conflicting
8890 # choices, we go for a static library, that is the most portable,
8891 # since we can't tell whether shared libraries were disabled because
8892 # the user asked for that or because the platform doesn't support
8893 # them.  This is particularly important on AIX, because we don't
8894 # support having both static and shared libraries enabled at the same
8895 # time on that platform, so we default to a shared-only configuration.
8896 # If a disable-shared tag is given, we'll fallback to a static-only
8897 # configuration.  But we'll never go from static-only to shared-only.
8898
8899 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
8900 build_libtool_libs=no
8901 build_old_libs=yes
8902 # ### END LIBTOOL TAG CONFIG: disable-shared
8903
8904 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
8905 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
8906 # ### END LIBTOOL TAG CONFIG: disable-static
8907
8908 # Local Variables:
8909 # mode:shell-script
8910 # sh-indentation:2
8911 # End:
8912 # vi:sw=2
8913
8914
8915 # ### BEGIN LIBTOOL TAG CONFIG: CXX
8916
8917 # The linker used to build libraries.
8918 LD="/usr/bin/ld -m elf_x86_64"
8919
8920 # Commands used to build an old-style archive.
8921 old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
8922
8923 # A language specific compiler.
8924 CC="g++"
8925
8926 # Is the compiler the GNU compiler?
8927 with_gcc=yes
8928
8929 # Compiler flag to turn off builtin functions.
8930 no_builtin_flag=" -fno-builtin"
8931
8932 # How to pass a linker flag through the compiler.
8933 wl="-Wl,"
8934
8935 # Additional compiler flags for building library objects.
8936 pic_flag=" -fPIC -DPIC"
8937
8938 # Compiler flag to prevent dynamic linking.
8939 link_static_flag="-static"
8940
8941 # Does compiler simultaneously support -c and -o options?
8942 compiler_c_o="yes"
8943
8944 # Whether or not to add -lc for building shared libraries.
8945 build_libtool_need_lc=no
8946
8947 # Whether or not to disallow shared libs when runtime libs are static.
8948 allow_libtool_libs_with_static_runtimes=no
8949
8950 # Compiler flag to allow reflexive dlopens.
8951 export_dynamic_flag_spec="\${wl}--export-dynamic"
8952
8953 # Compiler flag to generate shared objects directly from archives.
8954 whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
8955
8956 # Whether the compiler copes with passing no objects directly.
8957 compiler_needs_object="no"
8958
8959 # Create an old-style archive from a shared archive.
8960 old_archive_from_new_cmds=""
8961
8962 # Create a temporary old-style archive to link instead of a shared archive.
8963 old_archive_from_expsyms_cmds=""
8964
8965 # Commands used to build a shared archive.
8966 archive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
8967 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"
8968
8969 # Commands used to build a loadable module if different from building
8970 # a shared archive.
8971 module_cmds=""
8972 module_expsym_cmds=""
8973
8974 # Whether we are building with GNU ld or not.
8975 with_gnu_ld="yes"
8976
8977 # Flag that allows shared libraries with undefined symbols to be built.
8978 allow_undefined_flag=""
8979
8980 # Flag that enforces no undefined symbols.
8981 no_undefined_flag=""
8982
8983 # Flag to hardcode $libdir into a binary during linking.
8984 # This must work even if $libdir does not exist
8985 hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
8986
8987 # If ld is used when linking, flag to hardcode $libdir into a binary
8988 # during linking.  This must work even if $libdir does not exist.
8989 hardcode_libdir_flag_spec_ld=""
8990
8991 # Whether we need a single "-rpath" flag with a separated argument.
8992 hardcode_libdir_separator=""
8993
8994 # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
8995 # DIR into the resulting binary.
8996 hardcode_direct=no
8997
8998 # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
8999 # DIR into the resulting binary and the resulting library dependency is
9000 # "absolute",i.e impossible to change by setting ${shlibpath_var} if the
9001 # library is relocated.
9002 hardcode_direct_absolute=no
9003
9004 # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
9005 # into the resulting binary.
9006 hardcode_minus_L=no
9007
9008 # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
9009 # into the resulting binary.
9010 hardcode_shlibpath_var=unsupported
9011
9012 # Set to "yes" if building a shared library automatically hardcodes DIR
9013 # into the library and all subsequent libraries and executables linked
9014 # against it.
9015 hardcode_automatic=no
9016
9017 # Set to yes if linker adds runtime paths of dependent libraries
9018 # to runtime path list.
9019 inherit_rpath=no
9020
9021 # Whether libtool must link a program against all its dependency libraries.
9022 link_all_deplibs=no
9023
9024 # Fix the shell variable $srcfile for the compiler.
9025 fix_srcfile_path=""
9026
9027 # Set to "yes" if exported symbols are required.
9028 always_export_symbols=no
9029
9030 # The commands to list exported symbols.
9031 export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
9032
9033 # Symbols that should not be listed in the preloaded symbols.
9034 exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
9035
9036 # Symbols that must always be exported.
9037 include_expsyms=""
9038
9039 # Commands necessary for linking programs (against libraries) with templates.
9040 prelink_cmds=""
9041
9042 # Specify filename containing input files.
9043 file_list_spec=""
9044
9045 # How to hardcode a shared library path into an executable.
9046 hardcode_action=immediate
9047
9048 # The directories searched by this compiler when creating a shared library.
9049 compiler_lib_search_dirs="/usr/lib/gcc/x86_64-redhat-linux/4.4.7 /usr/lib/gcc/x86_64-redhat-linux/4.4.7 /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.."
9050
9051 # Dependencies to place before and after the objects being linked to
9052 # create a shared library.
9053 predep_objects="/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbeginS.o"
9054 postdep_objects="/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o"
9055 predeps=""
9056 postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
9057
9058 # The library search path used internally by the compiler when linking
9059 # a shared library.
9060 compiler_lib_search_path="-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.."
9061
9062 # ### END LIBTOOL TAG CONFIG: CXX