Code

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