Code

Imported upstream SVN snapshot 1.4~rc2+20091004.
[pkg-rrdtool.git] / libtool
1 #! /bin/sh
3 # libtool - Provide generalized library-building support services.
4 # Generated automatically by config.status (rrdtool) 1.3.999
5 # Libtool was configured on host kolibri:
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=powerpc-unknown-linux-gnu
60 host_os=linux-gnu
62 # The build system.
63 build_alias=
64 build=powerpc-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=805306365
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="-O0 -g -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/sh"
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/powerpc-linux-gnu/4.3.4 /usr/lib /lib /usr/lib/powerpc-linux-gnu"
239 # Run-time system search path for libraries.
240 sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas /opt/headas/powerpc-unknown-linux-gnu-libc2.7/lib /usr/local/lib /usr/lib/openais /usr/lib/openais /lib/powerpc-linux-gnu /usr/lib/powerpc-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"
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=no
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 Debian-2.2.6a-4
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 Debian-2.2.6a-4"
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="/bin/grep -E"}
511 : ${FGREP="/bin/grep -F"}
512 : ${GREP="/bin/grep"}
513 : ${LN_S="ln -s"}
514 : ${MAKE="make"}
515 : ${MKDIR="mkdir"}
516 : ${MV="mv -f"}
517 : ${RM="rm -f"}
518 : ${SED="/bin/sed"}
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)
5524           libs="$deplibs %DEPLIBS%"
5525           test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
5526           ;;
5527         esac
5528       fi
5529       if test "$linkmode,$pass" = "lib,dlpreopen"; then
5530         # Collect and forward deplibs of preopened libtool libs
5531         for lib in $dlprefiles; do
5532           # Ignore non-libtool-libs
5533           dependency_libs=
5534           case $lib in
5535           *.la) func_source "$lib" ;;
5536           esac
5538           # Collect preopened libtool deplibs, except any this library
5539           # has declared as weak libs
5540           for deplib in $dependency_libs; do
5541             deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
5542             case " $weak_libs " in
5543             *" $deplib_base "*) ;;
5544             *) deplibs="$deplibs $deplib" ;;
5545             esac
5546           done
5547         done
5548         libs="$dlprefiles"
5549       fi
5550       if test "$pass" = dlopen; then
5551         # Collect dlpreopened libraries
5552         save_deplibs="$deplibs"
5553         deplibs=
5554       fi
5556       for deplib in $libs; do
5557         lib=
5558         found=no
5559         case $deplib in
5560         -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
5561           if test "$linkmode,$pass" = "prog,link"; then
5562             compile_deplibs="$deplib $compile_deplibs"
5563             finalize_deplibs="$deplib $finalize_deplibs"
5564           else
5565             compiler_flags="$compiler_flags $deplib"
5566             if test "$linkmode" = lib ; then
5567                 case "$new_inherited_linker_flags " in
5568                     *" $deplib "*) ;;
5569                     * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
5570                 esac
5571             fi
5572           fi
5573           continue
5574           ;;
5575         -l*)
5576           if test "$linkmode" != lib && test "$linkmode" != prog; then
5577             func_warning "\`-l' is ignored for archives/objects"
5578             continue
5579           fi
5580           func_stripname '-l' '' "$deplib"
5581           name=$func_stripname_result
5582           if test "$linkmode" = lib; then
5583             searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
5584           else
5585             searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
5586           fi
5587           for searchdir in $searchdirs; do
5588             for search_ext in .la $std_shrext .so .a; do
5589               # Search the libtool library
5590               lib="$searchdir/lib${name}${search_ext}"
5591               if test -f "$lib"; then
5592                 if test "$search_ext" = ".la"; then
5593                   found=yes
5594                 else
5595                   found=no
5596                 fi
5597                 break 2
5598               fi
5599             done
5600           done
5601           if test "$found" != yes; then
5602             # deplib doesn't seem to be a libtool library
5603             if test "$linkmode,$pass" = "prog,link"; then
5604               compile_deplibs="$deplib $compile_deplibs"
5605               finalize_deplibs="$deplib $finalize_deplibs"
5606             else
5607               deplibs="$deplib $deplibs"
5608               test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
5609             fi
5610             continue
5611           else # deplib is a libtool library
5612             # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
5613             # We need to do some special things here, and not later.
5614             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
5615               case " $predeps $postdeps " in
5616               *" $deplib "*)
5617                 if func_lalib_p "$lib"; then
5618                   library_names=
5619                   old_library=
5620                   func_source "$lib"
5621                   for l in $old_library $library_names; do
5622                     ll="$l"
5623                   done
5624                   if test "X$ll" = "X$old_library" ; then # only static version available
5625                     found=no
5626                     func_dirname "$lib" "" "."
5627                     ladir="$func_dirname_result"
5628                     lib=$ladir/$old_library
5629                     if test "$linkmode,$pass" = "prog,link"; then
5630                       compile_deplibs="$deplib $compile_deplibs"
5631                       finalize_deplibs="$deplib $finalize_deplibs"
5632                     else
5633                       deplibs="$deplib $deplibs"
5634                       test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
5635                     fi
5636                     continue
5637                   fi
5638                 fi
5639                 ;;
5640               *) ;;
5641               esac
5642             fi
5643           fi
5644           ;; # -l
5645         *.ltframework)
5646           if test "$linkmode,$pass" = "prog,link"; then
5647             compile_deplibs="$deplib $compile_deplibs"
5648             finalize_deplibs="$deplib $finalize_deplibs"
5649           else
5650             deplibs="$deplib $deplibs"
5651             if test "$linkmode" = lib ; then
5652                 case "$new_inherited_linker_flags " in
5653                     *" $deplib "*) ;;
5654                     * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
5655                 esac
5656             fi
5657           fi
5658           continue
5659           ;;
5660         -L*)
5661           case $linkmode in
5662           lib)
5663             deplibs="$deplib $deplibs"
5664             test "$pass" = conv && continue
5665             newdependency_libs="$deplib $newdependency_libs"
5666             func_stripname '-L' '' "$deplib"
5667             newlib_search_path="$newlib_search_path $func_stripname_result"
5668             ;;
5669           prog)
5670             if test "$pass" = conv; then
5671               deplibs="$deplib $deplibs"
5672               continue
5673             fi
5674             if test "$pass" = scan; then
5675               deplibs="$deplib $deplibs"
5676             else
5677               compile_deplibs="$deplib $compile_deplibs"
5678               finalize_deplibs="$deplib $finalize_deplibs"
5679             fi
5680             func_stripname '-L' '' "$deplib"
5681             newlib_search_path="$newlib_search_path $func_stripname_result"
5682             ;;
5683           *)
5684             func_warning "\`-L' is ignored for archives/objects"
5685             ;;
5686           esac # linkmode
5687           continue
5688           ;; # -L
5689         -R*)
5690           if test "$pass" = link; then
5691             func_stripname '-R' '' "$deplib"
5692             dir=$func_stripname_result
5693             # Make sure the xrpath contains only unique directories.
5694             case "$xrpath " in
5695             *" $dir "*) ;;
5696             *) xrpath="$xrpath $dir" ;;
5697             esac
5698           fi
5699           deplibs="$deplib $deplibs"
5700           continue
5701           ;;
5702         *.la) lib="$deplib" ;;
5703         *.$libext)
5704           if test "$pass" = conv; then
5705             deplibs="$deplib $deplibs"
5706             continue
5707           fi
5708           case $linkmode in
5709           lib)
5710             # Linking convenience modules into shared libraries is allowed,
5711             # but linking other static libraries is non-portable.
5712             case " $dlpreconveniencelibs " in
5713             *" $deplib "*) ;;
5714             *)
5715               valid_a_lib=no
5716               case $deplibs_check_method in
5717                 match_pattern*)
5718                   set dummy $deplibs_check_method; shift
5719                   match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5720                   if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
5721                     | $EGREP "$match_pattern_regex" > /dev/null; then
5722                     valid_a_lib=yes
5723                   fi
5724                 ;;
5725                 pass_all)
5726                   valid_a_lib=yes
5727                 ;;
5728               esac
5729               if test "$valid_a_lib" != yes; then
5730                 $ECHO
5731                 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
5732                 $ECHO "*** I have the capability to make that library automatically link in when"
5733                 $ECHO "*** you link to this library.  But I can only do this if you have a"
5734                 $ECHO "*** shared version of the library, which you do not appear to have"
5735                 $ECHO "*** because the file extensions .$libext of this argument makes me believe"
5736                 $ECHO "*** that it is just a static archive that I should not use here."
5737               else
5738                 $ECHO
5739                 $ECHO "*** Warning: Linking the shared library $output against the"
5740                 $ECHO "*** static library $deplib is not portable!"
5741                 deplibs="$deplib $deplibs"
5742               fi
5743               ;;
5744             esac
5745             continue
5746             ;;
5747           prog)
5748             if test "$pass" != link; then
5749               deplibs="$deplib $deplibs"
5750             else
5751               compile_deplibs="$deplib $compile_deplibs"
5752               finalize_deplibs="$deplib $finalize_deplibs"
5753             fi
5754             continue
5755             ;;
5756           esac # linkmode
5757           ;; # *.$libext
5758         *.lo | *.$objext)
5759           if test "$pass" = conv; then
5760             deplibs="$deplib $deplibs"
5761           elif test "$linkmode" = prog; then
5762             if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
5763               # If there is no dlopen support or we're linking statically,
5764               # we need to preload.
5765               newdlprefiles="$newdlprefiles $deplib"
5766               compile_deplibs="$deplib $compile_deplibs"
5767               finalize_deplibs="$deplib $finalize_deplibs"
5768             else
5769               newdlfiles="$newdlfiles $deplib"
5770             fi
5771           fi
5772           continue
5773           ;;
5774         %DEPLIBS%)
5775           alldeplibs=yes
5776           continue
5777           ;;
5778         esac # case $deplib
5780         if test "$found" = yes || test -f "$lib"; then :
5781         else
5782           func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
5783         fi
5785         # Check to see that this really is a libtool archive.
5786         func_lalib_unsafe_p "$lib" \
5787           || func_fatal_error "\`$lib' is not a valid libtool archive"
5789         func_dirname "$lib" "" "."
5790         ladir="$func_dirname_result"
5792         dlname=
5793         dlopen=
5794         dlpreopen=
5795         libdir=
5796         library_names=
5797         old_library=
5798         inherited_linker_flags=
5799         # If the library was installed with an old release of libtool,
5800         # it will not redefine variables installed, or shouldnotlink
5801         installed=yes
5802         shouldnotlink=no
5803         avoidtemprpath=
5806         # Read the .la file
5807         func_source "$lib"
5809         # Convert "-framework foo" to "foo.ltframework"
5810         if test -n "$inherited_linker_flags"; then
5811           tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
5812           for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
5813             case " $new_inherited_linker_flags " in
5814               *" $tmp_inherited_linker_flag "*) ;;
5815               *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
5816             esac
5817           done
5818         fi
5819         dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
5820         if test "$linkmode,$pass" = "lib,link" ||
5821            test "$linkmode,$pass" = "prog,scan" ||
5822            { test "$linkmode" != prog && test "$linkmode" != lib; }; then
5823           test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
5824           test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
5825         fi
5827         if test "$pass" = conv; then
5828           # Only check for convenience libraries
5829           deplibs="$lib $deplibs"
5830           if test -z "$libdir"; then
5831             if test -z "$old_library"; then
5832               func_fatal_error "cannot find name of link library for \`$lib'"
5833             fi
5834             # It is a libtool convenience library, so add in its objects.
5835             convenience="$convenience $ladir/$objdir/$old_library"
5836             old_convenience="$old_convenience $ladir/$objdir/$old_library"
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           elif test "$linkmode" != prog && test "$linkmode" != lib; then
5848             func_fatal_error "\`$lib' is not a convenience library"
5849           fi
5850           continue
5851         fi # $pass = conv
5854         # Get the name of the library we link against.
5855         linklib=
5856         for l in $old_library $library_names; do
5857           linklib="$l"
5858         done
5859         if test -z "$linklib"; then
5860           func_fatal_error "cannot find name of link library for \`$lib'"
5861         fi
5863         # This library was specified with -dlopen.
5864         if test "$pass" = dlopen; then
5865           if test -z "$libdir"; then
5866             func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
5867           fi
5868           if test -z "$dlname" ||
5869              test "$dlopen_support" != yes ||
5870              test "$build_libtool_libs" = no; then
5871             # If there is no dlname, no dlopen support or we're linking
5872             # statically, we need to preload.  We also need to preload any
5873             # dependent libraries so libltdl's deplib preloader doesn't
5874             # bomb out in the load deplibs phase.
5875             dlprefiles="$dlprefiles $lib $dependency_libs"
5876           else
5877             newdlfiles="$newdlfiles $lib"
5878           fi
5879           continue
5880         fi # $pass = dlopen
5882         # We need an absolute path.
5883         case $ladir in
5884         [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
5885         *)
5886           abs_ladir=`cd "$ladir" && pwd`
5887           if test -z "$abs_ladir"; then
5888             func_warning "cannot determine absolute directory name of \`$ladir'"
5889             func_warning "passing it literally to the linker, although it might fail"
5890             abs_ladir="$ladir"
5891           fi
5892           ;;
5893         esac
5894         func_basename "$lib"
5895         laname="$func_basename_result"
5897         # Find the relevant object directory and library name.
5898         if test "X$installed" = Xyes; then
5899           if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
5900             func_warning "library \`$lib' was moved."
5901             dir="$ladir"
5902             absdir="$abs_ladir"
5903             libdir="$abs_ladir"
5904           else
5905             dir="$libdir"
5906             absdir="$libdir"
5907           fi
5908           test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
5909         else
5910           if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
5911             dir="$ladir"
5912             absdir="$abs_ladir"
5913             # Remove this search path later
5914             notinst_path="$notinst_path $abs_ladir"
5915           else
5916             dir="$ladir/$objdir"
5917             absdir="$abs_ladir/$objdir"
5918             # Remove this search path later
5919             notinst_path="$notinst_path $abs_ladir"
5920           fi
5921         fi # $installed = yes
5922         func_stripname 'lib' '.la' "$laname"
5923         name=$func_stripname_result
5925         # This library was specified with -dlpreopen.
5926         if test "$pass" = dlpreopen; then
5927           if test -z "$libdir" && test "$linkmode" = prog; then
5928             func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
5929           fi
5930           # Prefer using a static library (so that no silly _DYNAMIC symbols
5931           # are required to link).
5932           if test -n "$old_library"; then
5933             newdlprefiles="$newdlprefiles $dir/$old_library"
5934             # Keep a list of preopened convenience libraries to check
5935             # that they are being used correctly in the link pass.
5936             test -z "$libdir" && \
5937                 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
5938           # Otherwise, use the dlname, so that lt_dlopen finds it.
5939           elif test -n "$dlname"; then
5940             newdlprefiles="$newdlprefiles $dir/$dlname"
5941           else
5942             newdlprefiles="$newdlprefiles $dir/$linklib"
5943           fi
5944         fi # $pass = dlpreopen
5946         if test -z "$libdir"; then
5947           # Link the convenience library
5948           if test "$linkmode" = lib; then
5949             deplibs="$dir/$old_library $deplibs"
5950           elif test "$linkmode,$pass" = "prog,link"; then
5951             compile_deplibs="$dir/$old_library $compile_deplibs"
5952             finalize_deplibs="$dir/$old_library $finalize_deplibs"
5953           else
5954             deplibs="$lib $deplibs" # used for prog,scan pass
5955           fi
5956           continue
5957         fi
5960         if test "$linkmode" = prog && test "$pass" != link; then
5961           newlib_search_path="$newlib_search_path $ladir"
5962           deplibs="$lib $deplibs"
5964           linkalldeplibs=no
5965           if test "$link_all_deplibs" != no || test -z "$library_names" ||
5966              test "$build_libtool_libs" = no; then
5967             linkalldeplibs=yes
5968           fi
5970           tmp_libs=
5971           for deplib in $dependency_libs; do
5972             case $deplib in
5973             -L*) func_stripname '-L' '' "$deplib"
5974                  newlib_search_path="$newlib_search_path $func_stripname_result"
5975                  ;;
5976             esac
5977             # Need to link against all dependency_libs?
5978             if test "$linkalldeplibs" = yes; then
5979               deplibs="$deplib $deplibs"
5980             else
5981               # Need to hardcode shared library paths
5982               # or/and link against static libraries
5983               newdependency_libs="$deplib $newdependency_libs"
5984             fi
5985             if $opt_duplicate_deps ; then
5986               case "$tmp_libs " in
5987               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
5988               esac
5989             fi
5990             tmp_libs="$tmp_libs $deplib"
5991           done # for deplib
5992           continue
5993         fi # $linkmode = prog...
5995         if test "$linkmode,$pass" = "prog,link"; then
5996           if test -n "$library_names" &&
5997              { { test "$prefer_static_libs" = no ||
5998                  test "$prefer_static_libs,$installed" = "built,yes"; } ||
5999                test -z "$old_library"; }; then
6000             # We need to hardcode the library path
6001             if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
6002               # Make sure the rpath contains only unique directories.
6003               case "$temp_rpath:" in
6004               *"$absdir:"*) ;;
6005               *) temp_rpath="$temp_rpath$absdir:" ;;
6006               esac
6007             fi
6009             # Hardcode the library path.
6010             # Skip directories that are in the system default run-time
6011             # search path.
6012             case " $sys_lib_dlsearch_path " in
6013             *" $absdir "*) ;;
6014             *)
6015               case "$compile_rpath " in
6016               *" $absdir "*) ;;
6017               *) compile_rpath="$compile_rpath $absdir"
6018               esac
6019               ;;
6020             esac
6021             case " $sys_lib_dlsearch_path " in
6022             *" $libdir "*) ;;
6023             *)
6024               case "$finalize_rpath " in
6025               *" $libdir "*) ;;
6026               *) finalize_rpath="$finalize_rpath $libdir"
6027               esac
6028               ;;
6029             esac
6030           fi # $linkmode,$pass = prog,link...
6032           if test "$alldeplibs" = yes &&
6033              { test "$deplibs_check_method" = pass_all ||
6034                { test "$build_libtool_libs" = yes &&
6035                  test -n "$library_names"; }; }; then
6036             # We only need to search for static libraries
6037             continue
6038           fi
6039         fi
6041         link_static=no # Whether the deplib will be linked statically
6042         use_static_libs=$prefer_static_libs
6043         if test "$use_static_libs" = built && test "$installed" = yes; then
6044           use_static_libs=no
6045         fi
6046         if test -n "$library_names" &&
6047            { test "$use_static_libs" = no || test -z "$old_library"; }; then
6048           case $host in
6049           *cygwin* | *mingw* | *cegcc*)
6050               # No point in relinking DLLs because paths are not encoded
6051               notinst_deplibs="$notinst_deplibs $lib"
6052               need_relink=no
6053             ;;
6054           *)
6055             if test "$installed" = no; then
6056               notinst_deplibs="$notinst_deplibs $lib"
6057               need_relink=yes
6058             fi
6059             ;;
6060           esac
6061           # This is a shared library
6063           # Warn about portability, can't link against -module's on some
6064           # systems (darwin).  Don't bleat about dlopened modules though!
6065           dlopenmodule=""
6066           for dlpremoduletest in $dlprefiles; do
6067             if test "X$dlpremoduletest" = "X$lib"; then
6068               dlopenmodule="$dlpremoduletest"
6069               break
6070             fi
6071           done
6072           if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
6073             $ECHO
6074             if test "$linkmode" = prog; then
6075               $ECHO "*** Warning: Linking the executable $output against the loadable module"
6076             else
6077               $ECHO "*** Warning: Linking the shared library $output against the loadable module"
6078             fi
6079             $ECHO "*** $linklib is not portable!"
6080           fi
6081           if test "$linkmode" = lib &&
6082              test "$hardcode_into_libs" = yes; then
6083             # Hardcode the library path.
6084             # Skip directories that are in the system default run-time
6085             # search path.
6086             case " $sys_lib_dlsearch_path " in
6087             *" $absdir "*) ;;
6088             *)
6089               case "$compile_rpath " in
6090               *" $absdir "*) ;;
6091               *) compile_rpath="$compile_rpath $absdir"
6092               esac
6093               ;;
6094             esac
6095             case " $sys_lib_dlsearch_path " in
6096             *" $libdir "*) ;;
6097             *)
6098               case "$finalize_rpath " in
6099               *" $libdir "*) ;;
6100               *) finalize_rpath="$finalize_rpath $libdir"
6101               esac
6102               ;;
6103             esac
6104           fi
6106           if test -n "$old_archive_from_expsyms_cmds"; then
6107             # figure out the soname
6108             set dummy $library_names
6109             shift
6110             realname="$1"
6111             shift
6112             libname=`eval "\\$ECHO \"$libname_spec\""`
6113             # use dlname if we got it. it's perfectly good, no?
6114             if test -n "$dlname"; then
6115               soname="$dlname"
6116             elif test -n "$soname_spec"; then
6117               # bleh windows
6118               case $host in
6119               *cygwin* | mingw* | *cegcc*)
6120                 func_arith $current - $age
6121                 major=$func_arith_result
6122                 versuffix="-$major"
6123                 ;;
6124               esac
6125               eval soname=\"$soname_spec\"
6126             else
6127               soname="$realname"
6128             fi
6130             # Make a new name for the extract_expsyms_cmds to use
6131             soroot="$soname"
6132             func_basename "$soroot"
6133             soname="$func_basename_result"
6134             func_stripname 'lib' '.dll' "$soname"
6135             newlib=libimp-$func_stripname_result.a
6137             # If the library has no export list, then create one now
6138             if test -f "$output_objdir/$soname-def"; then :
6139             else
6140               func_verbose "extracting exported symbol list from \`$soname'"
6141               func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
6142             fi
6144             # Create $newlib
6145             if test -f "$output_objdir/$newlib"; then :; else
6146               func_verbose "generating import library for \`$soname'"
6147               func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
6148             fi
6149             # make sure the library variables are pointing to the new library
6150             dir=$output_objdir
6151             linklib=$newlib
6152           fi # test -n "$old_archive_from_expsyms_cmds"
6154           if test "$linkmode" = prog || test "$mode" != relink; then
6155             add_shlibpath=
6156             add_dir=
6157             add=
6158             lib_linked=yes
6159             case $hardcode_action in
6160             immediate | unsupported)
6161               if test "$hardcode_direct" = no; then
6162                 add="$dir/$linklib"
6163                 case $host in
6164                   *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
6165                   *-*-sysv4*uw2*) add_dir="-L$dir" ;;
6166                   *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
6167                     *-*-unixware7*) add_dir="-L$dir" ;;
6168                   *-*-darwin* )
6169                     # if the lib is a (non-dlopened) module then we can not
6170                     # link against it, someone is ignoring the earlier warnings
6171                     if /usr/bin/file -L $add 2> /dev/null |
6172                          $GREP ": [^:]* bundle" >/dev/null ; then
6173                       if test "X$dlopenmodule" != "X$lib"; then
6174                         $ECHO "*** Warning: lib $linklib is a module, not a shared library"
6175                         if test -z "$old_library" ; then
6176                           $ECHO
6177                           $ECHO "*** And there doesn't seem to be a static archive available"
6178                           $ECHO "*** The link will probably fail, sorry"
6179                         else
6180                           add="$dir/$old_library"
6181                         fi
6182                       elif test -n "$old_library"; then
6183                         add="$dir/$old_library"
6184                       fi
6185                     fi
6186                 esac
6187               elif test "$hardcode_minus_L" = no; then
6188                 case $host in
6189                 *-*-sunos*) add_shlibpath="$dir" ;;
6190                 esac
6191                 add_dir="-L$dir"
6192                 add="-l$name"
6193               elif test "$hardcode_shlibpath_var" = no; then
6194                 add_shlibpath="$dir"
6195                 add="-l$name"
6196               else
6197                 lib_linked=no
6198               fi
6199               ;;
6200             relink)
6201               if test "$hardcode_direct" = yes &&
6202                  test "$hardcode_direct_absolute" = no; then
6203                 add="$dir/$linklib"
6204               elif test "$hardcode_minus_L" = yes; then
6205                 add_dir="-L$dir"
6206                 # Try looking first in the location we're being installed to.
6207                 if test -n "$inst_prefix_dir"; then
6208                   case $libdir in
6209                     [\\/]*)
6210                       add_dir="$add_dir -L$inst_prefix_dir$libdir"
6211                       ;;
6212                   esac
6213                 fi
6214                 add="-l$name"
6215               elif test "$hardcode_shlibpath_var" = yes; then
6216                 add_shlibpath="$dir"
6217                 add="-l$name"
6218               else
6219                 lib_linked=no
6220               fi
6221               ;;
6222             *) lib_linked=no ;;
6223             esac
6225             if test "$lib_linked" != yes; then
6226               func_fatal_configuration "unsupported hardcode properties"
6227             fi
6229             if test -n "$add_shlibpath"; then
6230               case :$compile_shlibpath: in
6231               *":$add_shlibpath:"*) ;;
6232               *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
6233               esac
6234             fi
6235             if test "$linkmode" = prog; then
6236               test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
6237               test -n "$add" && compile_deplibs="$add $compile_deplibs"
6238             else
6239               test -n "$add_dir" && deplibs="$add_dir $deplibs"
6240               test -n "$add" && deplibs="$add $deplibs"
6241               if test "$hardcode_direct" != yes &&
6242                  test "$hardcode_minus_L" != yes &&
6243                  test "$hardcode_shlibpath_var" = yes; then
6244                 case :$finalize_shlibpath: in
6245                 *":$libdir:"*) ;;
6246                 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6247                 esac
6248               fi
6249             fi
6250           fi
6252           if test "$linkmode" = prog || test "$mode" = relink; then
6253             add_shlibpath=
6254             add_dir=
6255             add=
6256             # Finalize command for both is simple: just hardcode it.
6257             if test "$hardcode_direct" = yes &&
6258                test "$hardcode_direct_absolute" = no; then
6259               add="$libdir/$linklib"
6260             elif test "$hardcode_minus_L" = yes; then
6261               add_dir="-L$libdir"
6262               add="-l$name"
6263             elif test "$hardcode_shlibpath_var" = yes; then
6264               case :$finalize_shlibpath: in
6265               *":$libdir:"*) ;;
6266               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6267               esac
6268               add="-l$name"
6269             elif test "$hardcode_automatic" = yes; then
6270               if test -n "$inst_prefix_dir" &&
6271                  test -f "$inst_prefix_dir$libdir/$linklib" ; then
6272                 add="$inst_prefix_dir$libdir/$linklib"
6273               else
6274                 add="$libdir/$linklib"
6275               fi
6276             else
6277               # We cannot seem to hardcode it, guess we'll fake it.
6278               add_dir="-L$libdir"
6279               # Try looking first in the location we're being installed to.
6280               if test -n "$inst_prefix_dir"; then
6281                 case $libdir in
6282                   [\\/]*)
6283                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
6284                     ;;
6285                 esac
6286               fi
6287               add="-l$name"
6288             fi
6290             if test "$linkmode" = prog; then
6291               test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
6292               test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
6293             else
6294               test -n "$add_dir" && deplibs="$add_dir $deplibs"
6295               test -n "$add" && deplibs="$add $deplibs"
6296             fi
6297           fi
6298         elif test "$linkmode" = prog; then
6299           # Here we assume that one of hardcode_direct or hardcode_minus_L
6300           # is not unsupported.  This is valid on all known static and
6301           # shared platforms.
6302           if test "$hardcode_direct" != unsupported; then
6303             test -n "$old_library" && linklib="$old_library"
6304             compile_deplibs="$dir/$linklib $compile_deplibs"
6305             finalize_deplibs="$dir/$linklib $finalize_deplibs"
6306           else
6307             compile_deplibs="-l$name -L$dir $compile_deplibs"
6308             finalize_deplibs="-l$name -L$dir $finalize_deplibs"
6309           fi
6310         elif test "$build_libtool_libs" = yes; then
6311           # Not a shared library
6312           if test "$deplibs_check_method" != pass_all; then
6313             # We're trying link a shared library against a static one
6314             # but the system doesn't support it.
6316             # Just print a warning and add the library to dependency_libs so
6317             # that the program can be linked against the static library.
6318             $ECHO
6319             $ECHO "*** Warning: This system can not link to static lib archive $lib."
6320             $ECHO "*** I have the capability to make that library automatically link in when"
6321             $ECHO "*** you link to this library.  But I can only do this if you have a"
6322             $ECHO "*** shared version of the library, which you do not appear to have."
6323             if test "$module" = yes; then
6324               $ECHO "*** But as you try to build a module library, libtool will still create "
6325               $ECHO "*** a static module, that should work as long as the dlopening application"
6326               $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
6327               if test -z "$global_symbol_pipe"; then
6328                 $ECHO
6329                 $ECHO "*** However, this would only work if libtool was able to extract symbol"
6330                 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
6331                 $ECHO "*** not find such a program.  So, this module is probably useless."
6332                 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
6333               fi
6334               if test "$build_old_libs" = no; then
6335                 build_libtool_libs=module
6336                 build_old_libs=yes
6337               else
6338                 build_libtool_libs=no
6339               fi
6340             fi
6341           else
6342             deplibs="$dir/$old_library $deplibs"
6343             link_static=yes
6344           fi
6345         fi # link shared/static library?
6347         if test "$linkmode" = lib; then
6348           if test -n "$dependency_libs" &&
6349              { test "$hardcode_into_libs" != yes ||
6350                test "$build_old_libs" = yes ||
6351                test "$link_static" = yes; }; then
6352             # Extract -R from dependency_libs
6353             temp_deplibs=
6354             for libdir in $dependency_libs; do
6355               case $libdir in
6356               -R*) func_stripname '-R' '' "$libdir"
6357                    temp_xrpath=$func_stripname_result
6358                    case " $xrpath " in
6359                    *" $temp_xrpath "*) ;;
6360                    *) xrpath="$xrpath $temp_xrpath";;
6361                    esac;;
6362               *) temp_deplibs="$temp_deplibs $libdir";;
6363               esac
6364             done
6365             dependency_libs="$temp_deplibs"
6366           fi
6368           newlib_search_path="$newlib_search_path $absdir"
6369           # Link against this library
6370           test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
6371           # ... and its dependency_libs
6372           tmp_libs=
6373           for deplib in $dependency_libs; do
6374             newdependency_libs="$deplib $newdependency_libs"
6375             if $opt_duplicate_deps ; then
6376               case "$tmp_libs " in
6377               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6378               esac
6379             fi
6380             tmp_libs="$tmp_libs $deplib"
6381           done
6383           if test "$link_all_deplibs" != no; then
6384             # Add the search paths of all dependency libraries
6385             for deplib in $dependency_libs; do
6386               path=
6387               case $deplib in
6388               -L*) path="$deplib" ;;
6389               *.la)
6390                 func_dirname "$deplib" "" "."
6391                 dir="$func_dirname_result"
6392                 # We need an absolute path.
6393                 case $dir in
6394                 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
6395                 *)
6396                   absdir=`cd "$dir" && pwd`
6397                   if test -z "$absdir"; then
6398                     func_warning "cannot determine absolute directory name of \`$dir'"
6399                     absdir="$dir"
6400                   fi
6401                   ;;
6402                 esac
6403                 if $GREP "^installed=no" $deplib > /dev/null; then
6404                 case $host in
6405                 *-*-darwin*)
6406                   depdepl=
6407                   eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
6408                   if test -n "$deplibrary_names" ; then
6409                     for tmp in $deplibrary_names ; do
6410                       depdepl=$tmp
6411                     done
6412                     if test -f "$absdir/$objdir/$depdepl" ; then
6413                       depdepl="$absdir/$objdir/$depdepl"
6414                       darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
6415                       if test -z "$darwin_install_name"; then
6416                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
6417                       fi
6418                       compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
6419                       linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
6420                       path=
6421                     fi
6422                   fi
6423                   ;;
6424                 *)
6425                   path="-L$absdir/$objdir"
6426                   ;;
6427                 esac
6428                 else
6429                   eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
6430                   test -z "$libdir" && \
6431                     func_fatal_error "\`$deplib' is not a valid libtool archive"
6432                   test "$absdir" != "$libdir" && \
6433                     func_warning "\`$deplib' seems to be moved"
6435                   path="-L$absdir"
6436                 fi
6437                 ;;
6438               esac
6439               case " $deplibs " in
6440               *" $path "*) ;;
6441               *) deplibs="$path $deplibs" ;;
6442               esac
6443             done
6444           fi # link_all_deplibs != no
6445         fi # linkmode = lib
6446       done # for deplib in $libs
6447       if test "$pass" = link; then
6448         if test "$linkmode" = "prog"; then
6449           compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
6450           finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
6451         else
6452           compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6453         fi
6454       fi
6455       dependency_libs="$newdependency_libs"
6456       if test "$pass" = dlpreopen; then
6457         # Link the dlpreopened libraries before other libraries
6458         for deplib in $save_deplibs; do
6459           deplibs="$deplib $deplibs"
6460         done
6461       fi
6462       if test "$pass" != dlopen; then
6463         if test "$pass" != conv; then
6464           # Make sure lib_search_path contains only unique directories.
6465           lib_search_path=
6466           for dir in $newlib_search_path; do
6467             case "$lib_search_path " in
6468             *" $dir "*) ;;
6469             *) lib_search_path="$lib_search_path $dir" ;;
6470             esac
6471           done
6472           newlib_search_path=
6473         fi
6475         if test "$linkmode,$pass" != "prog,link"; then
6476           vars="deplibs"
6477         else
6478           vars="compile_deplibs finalize_deplibs"
6479         fi
6480         for var in $vars dependency_libs; do
6481           # Add libraries to $var in reverse order
6482           eval tmp_libs=\"\$$var\"
6483           new_libs=
6484           for deplib in $tmp_libs; do
6485             # FIXME: Pedantically, this is the right thing to do, so
6486             #        that some nasty dependency loop isn't accidentally
6487             #        broken:
6488             #new_libs="$deplib $new_libs"
6489             # Pragmatically, this seems to cause very few problems in
6490             # practice:
6491             case $deplib in
6492             -L*) new_libs="$deplib $new_libs" ;;
6493             -R*) ;;
6494             *)
6495               # And here is the reason: when a library appears more
6496               # than once as an explicit dependence of a library, or
6497               # is implicitly linked in more than once by the
6498               # compiler, it is considered special, and multiple
6499               # occurrences thereof are not removed.  Compare this
6500               # with having the same library being listed as a
6501               # dependency of multiple other libraries: in this case,
6502               # we know (pedantically, we assume) the library does not
6503               # need to be listed more than once, so we keep only the
6504               # last copy.  This is not always right, but it is rare
6505               # enough that we require users that really mean to play
6506               # such unportable linking tricks to link the library
6507               # using -Wl,-lname, so that libtool does not consider it
6508               # for duplicate removal.
6509               case " $specialdeplibs " in
6510               *" $deplib "*) new_libs="$deplib $new_libs" ;;
6511               *)
6512                 case " $new_libs " in
6513                 *" $deplib "*) ;;
6514                 *) new_libs="$deplib $new_libs" ;;
6515                 esac
6516                 ;;
6517               esac
6518               ;;
6519             esac
6520           done
6521           tmp_libs=
6522           for deplib in $new_libs; do
6523             case $deplib in
6524             -L*)
6525               case " $tmp_libs " in
6526               *" $deplib "*) ;;
6527               *) tmp_libs="$tmp_libs $deplib" ;;
6528               esac
6529               ;;
6530             *) tmp_libs="$tmp_libs $deplib" ;;
6531             esac
6532           done
6533           eval $var=\"$tmp_libs\"
6534         done # for var
6535       fi
6536       # Last step: remove runtime libs from dependency_libs
6537       # (they stay in deplibs)
6538       tmp_libs=
6539       for i in $dependency_libs ; do
6540         case " $predeps $postdeps $compiler_lib_search_path " in
6541         *" $i "*)
6542           i=""
6543           ;;
6544         esac
6545         if test -n "$i" ; then
6546           tmp_libs="$tmp_libs $i"
6547         fi
6548       done
6549       dependency_libs=$tmp_libs
6550     done # for pass
6551     if test "$linkmode" = prog; then
6552       dlfiles="$newdlfiles"
6553     fi
6554     if test "$linkmode" = prog || test "$linkmode" = lib; then
6555       dlprefiles="$newdlprefiles"
6556     fi
6558     case $linkmode in
6559     oldlib)
6560       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
6561         func_warning "\`-dlopen' is ignored for archives"
6562       fi
6564       case " $deplibs" in
6565       *\ -l* | *\ -L*)
6566         func_warning "\`-l' and \`-L' are ignored for archives" ;;
6567       esac
6569       test -n "$rpath" && \
6570         func_warning "\`-rpath' is ignored for archives"
6572       test -n "$xrpath" && \
6573         func_warning "\`-R' is ignored for archives"
6575       test -n "$vinfo" && \
6576         func_warning "\`-version-info/-version-number' is ignored for archives"
6578       test -n "$release" && \
6579         func_warning "\`-release' is ignored for archives"
6581       test -n "$export_symbols$export_symbols_regex" && \
6582         func_warning "\`-export-symbols' is ignored for archives"
6584       # Now set the variables for building old libraries.
6585       build_libtool_libs=no
6586       oldlibs="$output"
6587       objs="$objs$old_deplibs"
6588       ;;
6590     lib)
6591       # Make sure we only generate libraries of the form `libNAME.la'.
6592       case $outputname in
6593       lib*)
6594         func_stripname 'lib' '.la' "$outputname"
6595         name=$func_stripname_result
6596         eval shared_ext=\"$shrext_cmds\"
6597         eval libname=\"$libname_spec\"
6598         ;;
6599       *)
6600         test "$module" = no && \
6601           func_fatal_help "libtool library \`$output' must begin with \`lib'"
6603         if test "$need_lib_prefix" != no; then
6604           # Add the "lib" prefix for modules if required
6605           func_stripname '' '.la' "$outputname"
6606           name=$func_stripname_result
6607           eval shared_ext=\"$shrext_cmds\"
6608           eval libname=\"$libname_spec\"
6609         else
6610           func_stripname '' '.la' "$outputname"
6611           libname=$func_stripname_result
6612         fi
6613         ;;
6614       esac
6616       if test -n "$objs"; then
6617         if test "$deplibs_check_method" != pass_all; then
6618           func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
6619         else
6620           $ECHO
6621           $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
6622           $ECHO "*** objects $objs is not portable!"
6623           libobjs="$libobjs $objs"
6624         fi
6625       fi
6627       test "$dlself" != no && \
6628         func_warning "\`-dlopen self' is ignored for libtool libraries"
6630       set dummy $rpath
6631       shift
6632       test "$#" -gt 1 && \
6633         func_warning "ignoring multiple \`-rpath's for a libtool library"
6635       install_libdir="$1"
6637       oldlibs=
6638       if test -z "$rpath"; then
6639         if test "$build_libtool_libs" = yes; then
6640           # Building a libtool convenience library.
6641           # Some compilers have problems with a `.al' extension so
6642           # convenience libraries should have the same extension an
6643           # archive normally would.
6644           oldlibs="$output_objdir/$libname.$libext $oldlibs"
6645           build_libtool_libs=convenience
6646           build_old_libs=yes
6647         fi
6649         test -n "$vinfo" && \
6650           func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
6652         test -n "$release" && \
6653           func_warning "\`-release' is ignored for convenience libraries"
6654       else
6656         # Parse the version information argument.
6657         save_ifs="$IFS"; IFS=':'
6658         set dummy $vinfo 0 0 0
6659         shift
6660         IFS="$save_ifs"
6662         test -n "$7" && \
6663           func_fatal_help "too many parameters to \`-version-info'"
6665         # convert absolute version numbers to libtool ages
6666         # this retains compatibility with .la files and attempts
6667         # to make the code below a bit more comprehensible
6669         case $vinfo_number in
6670         yes)
6671           number_major="$1"
6672           number_minor="$2"
6673           number_revision="$3"
6674           #
6675           # There are really only two kinds -- those that
6676           # use the current revision as the major version
6677           # and those that subtract age and use age as
6678           # a minor version.  But, then there is irix
6679           # which has an extra 1 added just for fun
6680           #
6681           case $version_type in
6682           darwin|linux|osf|windows|none)
6683             func_arith $number_major + $number_minor
6684             current=$func_arith_result
6685             age="$number_minor"
6686             revision="$number_revision"
6687             ;;
6688           freebsd-aout|freebsd-elf|sunos)
6689             current="$number_major"
6690             revision="$number_minor"
6691             age="0"
6692             ;;
6693           irix|nonstopux)
6694             func_arith $number_major + $number_minor
6695             current=$func_arith_result
6696             age="$number_minor"
6697             revision="$number_minor"
6698             lt_irix_increment=no
6699             ;;
6700           *)
6701             func_fatal_configuration "$modename: unknown library version type \`$version_type'"
6702             ;;
6703           esac
6704           ;;
6705         no)
6706           current="$1"
6707           revision="$2"
6708           age="$3"
6709           ;;
6710         esac
6712         # Check that each of the things are valid numbers.
6713         case $current in
6714         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]) ;;
6715         *)
6716           func_error "CURRENT \`$current' must be a nonnegative integer"
6717           func_fatal_error "\`$vinfo' is not valid version information"
6718           ;;
6719         esac
6721         case $revision in
6722         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]) ;;
6723         *)
6724           func_error "REVISION \`$revision' must be a nonnegative integer"
6725           func_fatal_error "\`$vinfo' is not valid version information"
6726           ;;
6727         esac
6729         case $age in
6730         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]) ;;
6731         *)
6732           func_error "AGE \`$age' must be a nonnegative integer"
6733           func_fatal_error "\`$vinfo' is not valid version information"
6734           ;;
6735         esac
6737         if test "$age" -gt "$current"; then
6738           func_error "AGE \`$age' is greater than the current interface number \`$current'"
6739           func_fatal_error "\`$vinfo' is not valid version information"
6740         fi
6742         # Calculate the version variables.
6743         major=
6744         versuffix=
6745         verstring=
6746         case $version_type in
6747         none) ;;
6749         darwin)
6750           # Like Linux, but with the current version available in
6751           # verstring for coding it into the library header
6752           func_arith $current - $age
6753           major=.$func_arith_result
6754           versuffix="$major.$age.$revision"
6755           # Darwin ld doesn't like 0 for these options...
6756           func_arith $current + 1
6757           minor_current=$func_arith_result
6758           xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
6759           verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
6760           ;;
6762         freebsd-aout)
6763           major=".$current"
6764           versuffix=".$current.$revision";
6765           ;;
6767         freebsd-elf)
6768           major=".$current"
6769           versuffix=".$current"
6770           ;;
6772         irix | nonstopux)
6773           if test "X$lt_irix_increment" = "Xno"; then
6774             func_arith $current - $age
6775           else
6776             func_arith $current - $age + 1
6777           fi
6778           major=$func_arith_result
6780           case $version_type in
6781             nonstopux) verstring_prefix=nonstopux ;;
6782             *)         verstring_prefix=sgi ;;
6783           esac
6784           verstring="$verstring_prefix$major.$revision"
6786           # Add in all the interfaces that we are compatible with.
6787           loop=$revision
6788           while test "$loop" -ne 0; do
6789             func_arith $revision - $loop
6790             iface=$func_arith_result
6791             func_arith $loop - 1
6792             loop=$func_arith_result
6793             verstring="$verstring_prefix$major.$iface:$verstring"
6794           done
6796           # Before this point, $major must not contain `.'.
6797           major=.$major
6798           versuffix="$major.$revision"
6799           ;;
6801         linux)
6802           func_arith $current - $age
6803           major=.$func_arith_result
6804           versuffix="$major.$age.$revision"
6805           ;;
6807         osf)
6808           func_arith $current - $age
6809           major=.$func_arith_result
6810           versuffix=".$current.$age.$revision"
6811           verstring="$current.$age.$revision"
6813           # Add in all the interfaces that we are compatible with.
6814           loop=$age
6815           while test "$loop" -ne 0; do
6816             func_arith $current - $loop
6817             iface=$func_arith_result
6818             func_arith $loop - 1
6819             loop=$func_arith_result
6820             verstring="$verstring:${iface}.0"
6821           done
6823           # Make executables depend on our current version.
6824           verstring="$verstring:${current}.0"
6825           ;;
6827         qnx)
6828           major=".$current"
6829           versuffix=".$current"
6830           ;;
6832         sunos)
6833           major=".$current"
6834           versuffix=".$current.$revision"
6835           ;;
6837         windows)
6838           # Use '-' rather than '.', since we only want one
6839           # extension on DOS 8.3 filesystems.
6840           func_arith $current - $age
6841           major=$func_arith_result
6842           versuffix="-$major"
6843           ;;
6845         *)
6846           func_fatal_configuration "unknown library version type \`$version_type'"
6847           ;;
6848         esac
6850         # Clear the version info if we defaulted, and they specified a release.
6851         if test -z "$vinfo" && test -n "$release"; then
6852           major=
6853           case $version_type in
6854           darwin)
6855             # we can't check for "0.0" in archive_cmds due to quoting
6856             # problems, so we reset it completely
6857             verstring=
6858             ;;
6859           *)
6860             verstring="0.0"
6861             ;;
6862           esac
6863           if test "$need_version" = no; then
6864             versuffix=
6865           else
6866             versuffix=".0.0"
6867           fi
6868         fi
6870         # Remove version info from name if versioning should be avoided
6871         if test "$avoid_version" = yes && test "$need_version" = no; then
6872           major=
6873           versuffix=
6874           verstring=""
6875         fi
6877         # Check to see if the archive will have undefined symbols.
6878         if test "$allow_undefined" = yes; then
6879           if test "$allow_undefined_flag" = unsupported; then
6880             func_warning "undefined symbols not allowed in $host shared libraries"
6881             build_libtool_libs=no
6882             build_old_libs=yes
6883           fi
6884         else
6885           # Don't allow undefined symbols.
6886           allow_undefined_flag="$no_undefined_flag"
6887         fi
6889       fi
6891       func_generate_dlsyms "$libname" "$libname" "yes"
6892       libobjs="$libobjs $symfileobj"
6893       test "X$libobjs" = "X " && libobjs=
6895       if test "$mode" != relink; then
6896         # Remove our outputs, but don't remove object files since they
6897         # may have been created when compiling PIC objects.
6898         removelist=
6899         tempremovelist=`$ECHO "$output_objdir/*"`
6900         for p in $tempremovelist; do
6901           case $p in
6902             *.$objext | *.gcno)
6903                ;;
6904             $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
6905                if test "X$precious_files_regex" != "X"; then
6906                  if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
6907                  then
6908                    continue
6909                  fi
6910                fi
6911                removelist="$removelist $p"
6912                ;;
6913             *) ;;
6914           esac
6915         done
6916         test -n "$removelist" && \
6917           func_show_eval "${RM}r \$removelist"
6918       fi
6920       # Now set the variables for building old libraries.
6921       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
6922         oldlibs="$oldlibs $output_objdir/$libname.$libext"
6924         # Transform .lo files to .o files.
6925         oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
6926       fi
6928       # Eliminate all temporary directories.
6929       #for path in $notinst_path; do
6930       # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
6931       # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
6932       # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
6933       #done
6935       if test -n "$xrpath"; then
6936         # If the user specified any rpath flags, then add them.
6937         temp_xrpath=
6938         for libdir in $xrpath; do
6939           temp_xrpath="$temp_xrpath -R$libdir"
6940           case "$finalize_rpath " in
6941           *" $libdir "*) ;;
6942           *) finalize_rpath="$finalize_rpath $libdir" ;;
6943           esac
6944         done
6945         if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
6946           dependency_libs="$temp_xrpath $dependency_libs"
6947         fi
6948       fi
6950       # Make sure dlfiles contains only unique files that won't be dlpreopened
6951       old_dlfiles="$dlfiles"
6952       dlfiles=
6953       for lib in $old_dlfiles; do
6954         case " $dlprefiles $dlfiles " in
6955         *" $lib "*) ;;
6956         *) dlfiles="$dlfiles $lib" ;;
6957         esac
6958       done
6960       # Make sure dlprefiles contains only unique files
6961       old_dlprefiles="$dlprefiles"
6962       dlprefiles=
6963       for lib in $old_dlprefiles; do
6964         case "$dlprefiles " in
6965         *" $lib "*) ;;
6966         *) dlprefiles="$dlprefiles $lib" ;;
6967         esac
6968       done
6970       if test "$build_libtool_libs" = yes; then
6971         if test -n "$rpath"; then
6972           case $host in
6973           *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
6974             # these systems don't actually have a c library (as such)!
6975             ;;
6976           *-*-rhapsody* | *-*-darwin1.[012])
6977             # Rhapsody C library is in the System framework
6978             deplibs="$deplibs System.ltframework"
6979             ;;
6980           *-*-netbsd*)
6981             # Don't link with libc until the a.out ld.so is fixed.
6982             ;;
6983           *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
6984             # Do not include libc due to us having libc/libc_r.
6985             ;;
6986           *-*-sco3.2v5* | *-*-sco5v6*)
6987             # Causes problems with __ctype
6988             ;;
6989           *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
6990             # Compiler inserts libc in the correct place for threads to work
6991             ;;
6992           *)
6993             # Add libc to deplibs on all other systems if necessary.
6994             if test "$build_libtool_need_lc" = "yes"; then
6995               deplibs="$deplibs -lc"
6996             fi
6997             ;;
6998           esac
6999         fi
7001         # Transform deplibs into only deplibs that can be linked in shared.
7002         name_save=$name
7003         libname_save=$libname
7004         release_save=$release
7005         versuffix_save=$versuffix
7006         major_save=$major
7007         # I'm not sure if I'm treating the release correctly.  I think
7008         # release should show up in the -l (ie -lgmp5) so we don't want to
7009         # add it in twice.  Is that correct?
7010         release=""
7011         versuffix=""
7012         major=""
7013         newdeplibs=
7014         droppeddeps=no
7015         case $deplibs_check_method in
7016         pass_all)
7017           # Don't check for shared/static.  Everything works.
7018           # This might be a little naive.  We might want to check
7019           # whether the library exists or not.  But this is on
7020           # osf3 & osf4 and I'm not really sure... Just
7021           # implementing what was already the behavior.
7022           newdeplibs=$deplibs
7023           ;;
7024         test_compile)
7025           # This code stresses the "libraries are programs" paradigm to its
7026           # limits. Maybe even breaks it.  We compile a program, linking it
7027           # against the deplibs as a proxy for the library.  Then we can check
7028           # whether they linked in statically or dynamically with ldd.
7029           $opt_dry_run || $RM conftest.c
7030           cat > conftest.c <<EOF
7031           int main() { return 0; }
7032 EOF
7033           $opt_dry_run || $RM conftest
7034           if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
7035             ldd_output=`ldd conftest`
7036             for i in $deplibs; do
7037               case $i in
7038               -l*)
7039                 func_stripname -l '' "$i"
7040                 name=$func_stripname_result
7041                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7042                   case " $predeps $postdeps " in
7043                   *" $i "*)
7044                     newdeplibs="$newdeplibs $i"
7045                     i=""
7046                     ;;
7047                   esac
7048                 fi
7049                 if test -n "$i" ; then
7050                   libname=`eval "\\$ECHO \"$libname_spec\""`
7051                   deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7052                   set dummy $deplib_matches; shift
7053                   deplib_match=$1
7054                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7055                     newdeplibs="$newdeplibs $i"
7056                   else
7057                     droppeddeps=yes
7058                     $ECHO
7059                     $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7060                     $ECHO "*** I have the capability to make that library automatically link in when"
7061                     $ECHO "*** you link to this library.  But I can only do this if you have a"
7062                     $ECHO "*** shared version of the library, which I believe you do not have"
7063                     $ECHO "*** because a test_compile did reveal that the linker did not use it for"
7064                     $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
7065                   fi
7066                 fi
7067                 ;;
7068               *)
7069                 newdeplibs="$newdeplibs $i"
7070                 ;;
7071               esac
7072             done
7073           else
7074             # Error occurred in the first compile.  Let's try to salvage
7075             # the situation: Compile a separate program for each library.
7076             for i in $deplibs; do
7077               case $i in
7078               -l*)
7079                 func_stripname -l '' "$i"
7080                 name=$func_stripname_result
7081                 $opt_dry_run || $RM conftest
7082                 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
7083                   ldd_output=`ldd conftest`
7084                   if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7085                     case " $predeps $postdeps " in
7086                     *" $i "*)
7087                       newdeplibs="$newdeplibs $i"
7088                       i=""
7089                       ;;
7090                     esac
7091                   fi
7092                   if test -n "$i" ; then
7093                     libname=`eval "\\$ECHO \"$libname_spec\""`
7094                     deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7095                     set dummy $deplib_matches; shift
7096                     deplib_match=$1
7097                     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7098                       newdeplibs="$newdeplibs $i"
7099                     else
7100                       droppeddeps=yes
7101                       $ECHO
7102                       $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7103                       $ECHO "*** I have the capability to make that library automatically link in when"
7104                       $ECHO "*** you link to this library.  But I can only do this if you have a"
7105                       $ECHO "*** shared version of the library, which you do not appear to have"
7106                       $ECHO "*** because a test_compile did reveal that the linker did not use this one"
7107                       $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
7108                     fi
7109                   fi
7110                 else
7111                   droppeddeps=yes
7112                   $ECHO
7113                   $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
7114                   $ECHO "*** make it link in!  You will probably need to install it or some"
7115                   $ECHO "*** library that it depends on before this library will be fully"
7116                   $ECHO "*** functional.  Installing it before continuing would be even better."
7117                 fi
7118                 ;;
7119               *)
7120                 newdeplibs="$newdeplibs $i"
7121                 ;;
7122               esac
7123             done
7124           fi
7125           ;;
7126         file_magic*)
7127           set dummy $deplibs_check_method; shift
7128           file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7129           for a_deplib in $deplibs; do
7130             case $a_deplib in
7131             -l*)
7132               func_stripname -l '' "$a_deplib"
7133               name=$func_stripname_result
7134               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7135                 case " $predeps $postdeps " in
7136                 *" $a_deplib "*)
7137                   newdeplibs="$newdeplibs $a_deplib"
7138                   a_deplib=""
7139                   ;;
7140                 esac
7141               fi
7142               if test -n "$a_deplib" ; then
7143                 libname=`eval "\\$ECHO \"$libname_spec\""`
7144                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7145                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7146                   for potent_lib in $potential_libs; do
7147                       # Follow soft links.
7148                       if ls -lLd "$potent_lib" 2>/dev/null |
7149                          $GREP " -> " >/dev/null; then
7150                         continue
7151                       fi
7152                       # The statement above tries to avoid entering an
7153                       # endless loop below, in case of cyclic links.
7154                       # We might still enter an endless loop, since a link
7155                       # loop can be closed while we follow links,
7156                       # but so what?
7157                       potlib="$potent_lib"
7158                       while test -h "$potlib" 2>/dev/null; do
7159                         potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
7160                         case $potliblink in
7161                         [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
7162                         *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
7163                         esac
7164                       done
7165                       if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
7166                          $SED -e 10q |
7167                          $EGREP "$file_magic_regex" > /dev/null; then
7168                         newdeplibs="$newdeplibs $a_deplib"
7169                         a_deplib=""
7170                         break 2
7171                       fi
7172                   done
7173                 done
7174               fi
7175               if test -n "$a_deplib" ; then
7176                 droppeddeps=yes
7177                 $ECHO
7178                 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7179                 $ECHO "*** I have the capability to make that library automatically link in when"
7180                 $ECHO "*** you link to this library.  But I can only do this if you have a"
7181                 $ECHO "*** shared version of the library, which you do not appear to have"
7182                 $ECHO "*** because I did check the linker path looking for a file starting"
7183                 if test -z "$potlib" ; then
7184                   $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7185                 else
7186                   $ECHO "*** with $libname and none of the candidates passed a file format test"
7187                   $ECHO "*** using a file magic. Last file checked: $potlib"
7188                 fi
7189               fi
7190               ;;
7191             *)
7192               # Add a -L argument.
7193               newdeplibs="$newdeplibs $a_deplib"
7194               ;;
7195             esac
7196           done # Gone through all deplibs.
7197           ;;
7198         match_pattern*)
7199           set dummy $deplibs_check_method; shift
7200           match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7201           for a_deplib in $deplibs; do
7202             case $a_deplib in
7203             -l*)
7204               func_stripname -l '' "$a_deplib"
7205               name=$func_stripname_result
7206               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7207                 case " $predeps $postdeps " in
7208                 *" $a_deplib "*)
7209                   newdeplibs="$newdeplibs $a_deplib"
7210                   a_deplib=""
7211                   ;;
7212                 esac
7213               fi
7214               if test -n "$a_deplib" ; then
7215                 libname=`eval "\\$ECHO \"$libname_spec\""`
7216                 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7217                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7218                   for potent_lib in $potential_libs; do
7219                     potlib="$potent_lib" # see symlink-check above in file_magic test
7220                     if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
7221                        $EGREP "$match_pattern_regex" > /dev/null; then
7222                       newdeplibs="$newdeplibs $a_deplib"
7223                       a_deplib=""
7224                       break 2
7225                     fi
7226                   done
7227                 done
7228               fi
7229               if test -n "$a_deplib" ; then
7230                 droppeddeps=yes
7231                 $ECHO
7232                 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7233                 $ECHO "*** I have the capability to make that library automatically link in when"
7234                 $ECHO "*** you link to this library.  But I can only do this if you have a"
7235                 $ECHO "*** shared version of the library, which you do not appear to have"
7236                 $ECHO "*** because I did check the linker path looking for a file starting"
7237                 if test -z "$potlib" ; then
7238                   $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7239                 else
7240                   $ECHO "*** with $libname and none of the candidates passed a file format test"
7241                   $ECHO "*** using a regex pattern. Last file checked: $potlib"
7242                 fi
7243               fi
7244               ;;
7245             *)
7246               # Add a -L argument.
7247               newdeplibs="$newdeplibs $a_deplib"
7248               ;;
7249             esac
7250           done # Gone through all deplibs.
7251           ;;
7252         none | unknown | *)
7253           newdeplibs=""
7254           tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
7255               -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
7256           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7257             for i in $predeps $postdeps ; do
7258               # can't use Xsed below, because $i might contain '/'
7259               tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
7260             done
7261           fi
7262           if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
7263              $GREP . >/dev/null; then
7264             $ECHO
7265             if test "X$deplibs_check_method" = "Xnone"; then
7266               $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
7267             else
7268               $ECHO "*** Warning: inter-library dependencies are not known to be supported."
7269             fi
7270             $ECHO "*** All declared inter-library dependencies are being dropped."
7271             droppeddeps=yes
7272           fi
7273           ;;
7274         esac
7275         versuffix=$versuffix_save
7276         major=$major_save
7277         release=$release_save
7278         libname=$libname_save
7279         name=$name_save
7281         case $host in
7282         *-*-rhapsody* | *-*-darwin1.[012])
7283           # On Rhapsody replace the C library with the System framework
7284           newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7285           ;;
7286         esac
7288         if test "$droppeddeps" = yes; then
7289           if test "$module" = yes; then
7290             $ECHO
7291             $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
7292             $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
7293             $ECHO "*** a static module, that should work as long as the dlopening"
7294             $ECHO "*** application is linked with the -dlopen flag."
7295             if test -z "$global_symbol_pipe"; then
7296               $ECHO
7297               $ECHO "*** However, this would only work if libtool was able to extract symbol"
7298               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
7299               $ECHO "*** not find such a program.  So, this module is probably useless."
7300               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
7301             fi
7302             if test "$build_old_libs" = no; then
7303               oldlibs="$output_objdir/$libname.$libext"
7304               build_libtool_libs=module
7305               build_old_libs=yes
7306             else
7307               build_libtool_libs=no
7308             fi
7309           else
7310             $ECHO "*** The inter-library dependencies that have been dropped here will be"
7311             $ECHO "*** automatically added whenever a program is linked with this library"
7312             $ECHO "*** or is declared to -dlopen it."
7314             if test "$allow_undefined" = no; then
7315               $ECHO
7316               $ECHO "*** Since this library must not contain undefined symbols,"
7317               $ECHO "*** because either the platform does not support them or"
7318               $ECHO "*** it was explicitly requested with -no-undefined,"
7319               $ECHO "*** libtool will only create a static version of it."
7320               if test "$build_old_libs" = no; then
7321                 oldlibs="$output_objdir/$libname.$libext"
7322                 build_libtool_libs=module
7323                 build_old_libs=yes
7324               else
7325                 build_libtool_libs=no
7326               fi
7327             fi
7328           fi
7329         fi
7330         # Done checking deplibs!
7331         deplibs=$newdeplibs
7332       fi
7333       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7334       case $host in
7335         *-*-darwin*)
7336           newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7337           new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7338           deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7339           ;;
7340       esac
7342       # move library search paths that coincide with paths to not yet
7343       # installed libraries to the beginning of the library search list
7344       new_libs=
7345       for path in $notinst_path; do
7346         case " $new_libs " in
7347         *" -L$path/$objdir "*) ;;
7348         *)
7349           case " $deplibs " in
7350           *" -L$path/$objdir "*)
7351             new_libs="$new_libs -L$path/$objdir" ;;
7352           esac
7353           ;;
7354         esac
7355       done
7356       for deplib in $deplibs; do
7357         case $deplib in
7358         -L*)
7359           case " $new_libs " in
7360           *" $deplib "*) ;;
7361           *) new_libs="$new_libs $deplib" ;;
7362           esac
7363           ;;
7364         *) new_libs="$new_libs $deplib" ;;
7365         esac
7366       done
7367       deplibs="$new_libs"
7369       # All the library-specific variables (install_libdir is set above).
7370       library_names=
7371       old_library=
7372       dlname=
7374       # Test again, we may have decided not to build it any more
7375       if test "$build_libtool_libs" = yes; then
7376         if test "$hardcode_into_libs" = yes; then
7377           # Hardcode the library paths
7378           hardcode_libdirs=
7379           dep_rpath=
7380           rpath="$finalize_rpath"
7381           test "$mode" != relink && rpath="$compile_rpath$rpath"
7382           for libdir in $rpath; do
7383             if test -n "$hardcode_libdir_flag_spec"; then
7384               if test -n "$hardcode_libdir_separator"; then
7385                 if test -z "$hardcode_libdirs"; then
7386                   hardcode_libdirs="$libdir"
7387                 else
7388                   # Just accumulate the unique libdirs.
7389                   case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
7390                   *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
7391                     ;;
7392                   *)
7393                     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
7394                     ;;
7395                   esac
7396                 fi
7397               else
7398                 eval flag=\"$hardcode_libdir_flag_spec\"
7399                 dep_rpath="$dep_rpath $flag"
7400               fi
7401             elif test -n "$runpath_var"; then
7402               case "$perm_rpath " in
7403               *" $libdir "*) ;;
7404               *) perm_rpath="$perm_rpath $libdir" ;;
7405               esac
7406             fi
7407           done
7408           # Substitute the hardcoded libdirs into the rpath.
7409           if test -n "$hardcode_libdir_separator" &&
7410              test -n "$hardcode_libdirs"; then
7411             libdir="$hardcode_libdirs"
7412             if test -n "$hardcode_libdir_flag_spec_ld"; then
7413               eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
7414             else
7415               eval dep_rpath=\"$hardcode_libdir_flag_spec\"
7416             fi
7417           fi
7418           if test -n "$runpath_var" && test -n "$perm_rpath"; then
7419             # We should set the runpath_var.
7420             rpath=
7421             for dir in $perm_rpath; do
7422               rpath="$rpath$dir:"
7423             done
7424             eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
7425           fi
7426           test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
7427         fi
7429         shlibpath="$finalize_shlibpath"
7430         test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
7431         if test -n "$shlibpath"; then
7432           eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
7433         fi
7435         # Get the real and link names of the library.
7436         eval shared_ext=\"$shrext_cmds\"
7437         eval library_names=\"$library_names_spec\"
7438         set dummy $library_names
7439         shift
7440         realname="$1"
7441         shift
7443         if test -n "$soname_spec"; then
7444           eval soname=\"$soname_spec\"
7445         else
7446           soname="$realname"
7447         fi
7448         if test -z "$dlname"; then
7449           dlname=$soname
7450         fi
7452         lib="$output_objdir/$realname"
7453         linknames=
7454         for link
7455         do
7456           linknames="$linknames $link"
7457         done
7459         # Use standard objects if they are pic
7460         test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7461         test "X$libobjs" = "X " && libobjs=
7463         delfiles=
7464         if test -n "$export_symbols" && test -n "$include_expsyms"; then
7465           $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
7466           export_symbols="$output_objdir/$libname.uexp"
7467           delfiles="$delfiles $export_symbols"
7468         fi
7470         orig_export_symbols=
7471         case $host_os in
7472         cygwin* | mingw* | cegcc*)
7473           if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
7474             # exporting using user supplied symfile
7475             if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
7476               # and it's NOT already a .def file. Must figure out
7477               # which of the given symbols are data symbols and tag
7478               # them as such. So, trigger use of export_symbols_cmds.
7479               # export_symbols gets reassigned inside the "prepare
7480               # the list of exported symbols" if statement, so the
7481               # include_expsyms logic still works.
7482               orig_export_symbols="$export_symbols"
7483               export_symbols=
7484               always_export_symbols=yes
7485             fi
7486           fi
7487           ;;
7488         esac
7490         # Prepare the list of exported symbols
7491         if test -z "$export_symbols"; then
7492           if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
7493             func_verbose "generating symbol list for \`$libname.la'"
7494             export_symbols="$output_objdir/$libname.exp"
7495             $opt_dry_run || $RM $export_symbols
7496             cmds=$export_symbols_cmds
7497             save_ifs="$IFS"; IFS='~'
7498             for cmd in $cmds; do
7499               IFS="$save_ifs"
7500               eval cmd=\"$cmd\"
7501               func_len " $cmd"
7502               len=$func_len_result
7503               if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7504                 func_show_eval "$cmd" 'exit $?'
7505                 skipped_export=false
7506               else
7507                 # The command line is too long to execute in one step.
7508                 func_verbose "using reloadable object file for export list..."
7509                 skipped_export=:
7510                 # Break out early, otherwise skipped_export may be
7511                 # set to false by a later but shorter cmd.
7512                 break
7513               fi
7514             done
7515             IFS="$save_ifs"
7516             if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
7517               func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
7518               func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
7519             fi
7520           fi
7521         fi
7523         if test -n "$export_symbols" && test -n "$include_expsyms"; then
7524           tmp_export_symbols="$export_symbols"
7525           test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7526           $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7527         fi
7529         if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
7530           # The given exports_symbols file has to be filtered, so filter it.
7531           func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
7532           # FIXME: $output_objdir/$libname.filter potentially contains lots of
7533           # 's' commands which not all seds can handle. GNU sed should be fine
7534           # though. Also, the filter scales superlinearly with the number of
7535           # global variables. join(1) would be nice here, but unfortunately
7536           # isn't a blessed tool.
7537           $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7538           delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
7539           export_symbols=$output_objdir/$libname.def
7540           $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7541         fi
7543         tmp_deplibs=
7544         for test_deplib in $deplibs; do
7545           case " $convenience " in
7546           *" $test_deplib "*) ;;
7547           *)
7548             tmp_deplibs="$tmp_deplibs $test_deplib"
7549             ;;
7550           esac
7551         done
7552         deplibs="$tmp_deplibs"
7554         if test -n "$convenience"; then
7555           if test -n "$whole_archive_flag_spec" &&
7556             test "$compiler_needs_object" = yes &&
7557             test -z "$libobjs"; then
7558             # extract the archives, so we have objects to list.
7559             # TODO: could optimize this to just extract one archive.
7560             whole_archive_flag_spec=
7561           fi
7562           if test -n "$whole_archive_flag_spec"; then
7563             save_libobjs=$libobjs
7564             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
7565             test "X$libobjs" = "X " && libobjs=
7566           else
7567             gentop="$output_objdir/${outputname}x"
7568             generated="$generated $gentop"
7570             func_extract_archives $gentop $convenience
7571             libobjs="$libobjs $func_extract_archives_result"
7572             test "X$libobjs" = "X " && libobjs=
7573           fi
7574         fi
7576         if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
7577           eval flag=\"$thread_safe_flag_spec\"
7578           linker_flags="$linker_flags $flag"
7579         fi
7581         # Make a backup of the uninstalled library when relinking
7582         if test "$mode" = relink; then
7583           $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
7584         fi
7586         # Do each of the archive commands.
7587         if test "$module" = yes && test -n "$module_cmds" ; then
7588           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
7589             eval test_cmds=\"$module_expsym_cmds\"
7590             cmds=$module_expsym_cmds
7591           else
7592             eval test_cmds=\"$module_cmds\"
7593             cmds=$module_cmds
7594           fi
7595         else
7596           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
7597             eval test_cmds=\"$archive_expsym_cmds\"
7598             cmds=$archive_expsym_cmds
7599           else
7600             eval test_cmds=\"$archive_cmds\"
7601             cmds=$archive_cmds
7602           fi
7603         fi
7605         if test "X$skipped_export" != "X:" &&
7606            func_len " $test_cmds" &&
7607            len=$func_len_result &&
7608            test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
7609           :
7610         else
7611           # The command line is too long to link in one step, link piecewise
7612           # or, if using GNU ld and skipped_export is not :, use a linker
7613           # script.
7615           # Save the value of $output and $libobjs because we want to
7616           # use them later.  If we have whole_archive_flag_spec, we
7617           # want to use save_libobjs as it was before
7618           # whole_archive_flag_spec was expanded, because we can't
7619           # assume the linker understands whole_archive_flag_spec.
7620           # This may have to be revisited, in case too many
7621           # convenience libraries get linked in and end up exceeding
7622           # the spec.
7623           if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
7624             save_libobjs=$libobjs
7625           fi
7626           save_output=$output
7627           output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
7629           # Clear the reloadable object creation command queue and
7630           # initialize k to one.
7631           test_cmds=
7632           concat_cmds=
7633           objlist=
7634           last_robj=
7635           k=1
7637           if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
7638             output=${output_objdir}/${output_la}.lnkscript
7639             func_verbose "creating GNU ld script: $output"
7640             $ECHO 'INPUT (' > $output
7641             for obj in $save_libobjs
7642             do
7643               $ECHO "$obj" >> $output
7644             done
7645             $ECHO ')' >> $output
7646             delfiles="$delfiles $output"
7647           elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
7648             output=${output_objdir}/${output_la}.lnk
7649             func_verbose "creating linker input file list: $output"
7650             : > $output
7651             set x $save_libobjs
7652             shift
7653             firstobj=
7654             if test "$compiler_needs_object" = yes; then
7655               firstobj="$1 "
7656               shift
7657             fi
7658             for obj
7659             do
7660               $ECHO "$obj" >> $output
7661             done
7662             delfiles="$delfiles $output"
7663             output=$firstobj\"$file_list_spec$output\"
7664           else
7665             if test -n "$save_libobjs"; then
7666               func_verbose "creating reloadable object files..."
7667               output=$output_objdir/$output_la-${k}.$objext
7668               eval test_cmds=\"$reload_cmds\"
7669               func_len " $test_cmds"
7670               len0=$func_len_result
7671               len=$len0
7673               # Loop over the list of objects to be linked.
7674               for obj in $save_libobjs
7675               do
7676                 func_len " $obj"
7677                 func_arith $len + $func_len_result
7678                 len=$func_arith_result
7679                 if test "X$objlist" = X ||
7680                    test "$len" -lt "$max_cmd_len"; then
7681                   func_append objlist " $obj"
7682                 else
7683                   # The command $test_cmds is almost too long, add a
7684                   # command to the queue.
7685                   if test "$k" -eq 1 ; then
7686                     # The first file doesn't have a previous command to add.
7687                     eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
7688                   else
7689                     # All subsequent reloadable object files will link in
7690                     # the last one created.
7691                     eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
7692                   fi
7693                   last_robj=$output_objdir/$output_la-${k}.$objext
7694                   func_arith $k + 1
7695                   k=$func_arith_result
7696                   output=$output_objdir/$output_la-${k}.$objext
7697                   objlist=$obj
7698                   func_len " $last_robj"
7699                   func_arith $len0 + $func_len_result
7700                   len=$func_arith_result
7701                 fi
7702               done
7703               # Handle the remaining objects by creating one last
7704               # reloadable object file.  All subsequent reloadable object
7705               # files will link in the last one created.
7706               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7707               eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
7708               if test -n "$last_robj"; then
7709                 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7710               fi
7711               delfiles="$delfiles $output"
7713             else
7714               output=
7715             fi
7717             if ${skipped_export-false}; then
7718               func_verbose "generating symbol list for \`$libname.la'"
7719               export_symbols="$output_objdir/$libname.exp"
7720               $opt_dry_run || $RM $export_symbols
7721               libobjs=$output
7722               # Append the command to create the export file.
7723               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7724               eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
7725               if test -n "$last_robj"; then
7726                 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
7727               fi
7728             fi
7730             test -n "$save_libobjs" &&
7731               func_verbose "creating a temporary reloadable object file: $output"
7733             # Loop through the commands generated above and execute them.
7734             save_ifs="$IFS"; IFS='~'
7735             for cmd in $concat_cmds; do
7736               IFS="$save_ifs"
7737               $opt_silent || {
7738                   func_quote_for_expand "$cmd"
7739                   eval "func_echo $func_quote_for_expand_result"
7740               }
7741               $opt_dry_run || eval "$cmd" || {
7742                 lt_exit=$?
7744                 # Restore the uninstalled library and exit
7745                 if test "$mode" = relink; then
7746                   ( cd "$output_objdir" && \
7747                     $RM "${realname}T" && \
7748                     $MV "${realname}U" "$realname" )
7749                 fi
7751                 exit $lt_exit
7752               }
7753             done
7754             IFS="$save_ifs"
7756             if test -n "$export_symbols_regex" && ${skipped_export-false}; then
7757               func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
7758               func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
7759             fi
7760           fi
7762           if ${skipped_export-false}; then
7763             if test -n "$export_symbols" && test -n "$include_expsyms"; then
7764               tmp_export_symbols="$export_symbols"
7765               test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7766               $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7767             fi
7769             if test -n "$orig_export_symbols"; then
7770               # The given exports_symbols file has to be filtered, so filter it.
7771               func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
7772               # FIXME: $output_objdir/$libname.filter potentially contains lots of
7773               # 's' commands which not all seds can handle. GNU sed should be fine
7774               # though. Also, the filter scales superlinearly with the number of
7775               # global variables. join(1) would be nice here, but unfortunately
7776               # isn't a blessed tool.
7777               $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7778               delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
7779               export_symbols=$output_objdir/$libname.def
7780               $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
7781             fi
7782           fi
7784           libobjs=$output
7785           # Restore the value of output.
7786           output=$save_output
7788           if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
7789             eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
7790             test "X$libobjs" = "X " && libobjs=
7791           fi
7792           # Expand the library linking commands again to reset the
7793           # value of $libobjs for piecewise linking.
7795           # Do each of the archive commands.
7796           if test "$module" = yes && test -n "$module_cmds" ; then
7797             if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
7798               cmds=$module_expsym_cmds
7799             else
7800               cmds=$module_cmds
7801             fi
7802           else
7803             if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
7804               cmds=$archive_expsym_cmds
7805             else
7806               cmds=$archive_cmds
7807             fi
7808           fi
7809         fi
7811         if test -n "$delfiles"; then
7812           # Append the command to remove temporary files to $cmds.
7813           eval cmds=\"\$cmds~\$RM $delfiles\"
7814         fi
7816         # Add any objects from preloaded convenience libraries
7817         if test -n "$dlprefiles"; then
7818           gentop="$output_objdir/${outputname}x"
7819           generated="$generated $gentop"
7821           func_extract_archives $gentop $dlprefiles
7822           libobjs="$libobjs $func_extract_archives_result"
7823           test "X$libobjs" = "X " && libobjs=
7824         fi
7826         save_ifs="$IFS"; IFS='~'
7827         for cmd in $cmds; do
7828           IFS="$save_ifs"
7829           eval cmd=\"$cmd\"
7830           $opt_silent || {
7831             func_quote_for_expand "$cmd"
7832             eval "func_echo $func_quote_for_expand_result"
7833           }
7834           $opt_dry_run || eval "$cmd" || {
7835             lt_exit=$?
7837             # Restore the uninstalled library and exit
7838             if test "$mode" = relink; then
7839               ( cd "$output_objdir" && \
7840                 $RM "${realname}T" && \
7841                 $MV "${realname}U" "$realname" )
7842             fi
7844             exit $lt_exit
7845           }
7846         done
7847         IFS="$save_ifs"
7849         # Restore the uninstalled library and exit
7850         if test "$mode" = relink; then
7851           $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
7853           if test -n "$convenience"; then
7854             if test -z "$whole_archive_flag_spec"; then
7855               func_show_eval '${RM}r "$gentop"'
7856             fi
7857           fi
7859           exit $EXIT_SUCCESS
7860         fi
7862         # Create links to the real library.
7863         for linkname in $linknames; do
7864           if test "$realname" != "$linkname"; then
7865             func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
7866           fi
7867         done
7869         # If -module or -export-dynamic was specified, set the dlname.
7870         if test "$module" = yes || test "$export_dynamic" = yes; then
7871           # On all known operating systems, these are identical.
7872           dlname="$soname"
7873         fi
7874       fi
7875       ;;
7877     obj)
7878       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
7879         func_warning "\`-dlopen' is ignored for objects"
7880       fi
7882       case " $deplibs" in
7883       *\ -l* | *\ -L*)
7884         func_warning "\`-l' and \`-L' are ignored for objects" ;;
7885       esac
7887       test -n "$rpath" && \
7888         func_warning "\`-rpath' is ignored for objects"
7890       test -n "$xrpath" && \
7891         func_warning "\`-R' is ignored for objects"
7893       test -n "$vinfo" && \
7894         func_warning "\`-version-info' is ignored for objects"
7896       test -n "$release" && \
7897         func_warning "\`-release' is ignored for objects"
7899       case $output in
7900       *.lo)
7901         test -n "$objs$old_deplibs" && \
7902           func_fatal_error "cannot build library object \`$output' from non-libtool objects"
7904         libobj=$output
7905         func_lo2o "$libobj"
7906         obj=$func_lo2o_result
7907         ;;
7908       *)
7909         libobj=
7910         obj="$output"
7911         ;;
7912       esac
7914       # Delete the old objects.
7915       $opt_dry_run || $RM $obj $libobj
7917       # Objects from convenience libraries.  This assumes
7918       # single-version convenience libraries.  Whenever we create
7919       # different ones for PIC/non-PIC, this we'll have to duplicate
7920       # the extraction.
7921       reload_conv_objs=
7922       gentop=
7923       # reload_cmds runs $LD directly, so let us get rid of
7924       # -Wl from whole_archive_flag_spec and hope we can get by with
7925       # turning comma into space..
7926       wl=
7928       if test -n "$convenience"; then
7929         if test -n "$whole_archive_flag_spec"; then
7930           eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7931           reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
7932         else
7933           gentop="$output_objdir/${obj}x"
7934           generated="$generated $gentop"
7936           func_extract_archives $gentop $convenience
7937           reload_conv_objs="$reload_objs $func_extract_archives_result"
7938         fi
7939       fi
7941       # Create the old-style object.
7942       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
7944       output="$obj"
7945       func_execute_cmds "$reload_cmds" 'exit $?'
7947       # Exit if we aren't doing a library object file.
7948       if test -z "$libobj"; then
7949         if test -n "$gentop"; then
7950           func_show_eval '${RM}r "$gentop"'
7951         fi
7953         exit $EXIT_SUCCESS
7954       fi
7956       if test "$build_libtool_libs" != yes; then
7957         if test -n "$gentop"; then
7958           func_show_eval '${RM}r "$gentop"'
7959         fi
7961         # Create an invalid libtool object if no PIC, so that we don't
7962         # accidentally link it into a program.
7963         # $show "echo timestamp > $libobj"
7964         # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
7965         exit $EXIT_SUCCESS
7966       fi
7968       if test -n "$pic_flag" || test "$pic_mode" != default; then
7969         # Only do commands if we really have different PIC objects.
7970         reload_objs="$libobjs $reload_conv_objs"
7971         output="$libobj"
7972         func_execute_cmds "$reload_cmds" 'exit $?'
7973       fi
7975       if test -n "$gentop"; then
7976         func_show_eval '${RM}r "$gentop"'
7977       fi
7979       exit $EXIT_SUCCESS
7980       ;;
7982     prog)
7983       case $host in
7984         *cygwin*) func_stripname '' '.exe' "$output"
7985                   output=$func_stripname_result.exe;;
7986       esac
7987       test -n "$vinfo" && \
7988         func_warning "\`-version-info' is ignored for programs"
7990       test -n "$release" && \
7991         func_warning "\`-release' is ignored for programs"
7993       test "$preload" = yes \
7994         && test "$dlopen_support" = unknown \
7995         && test "$dlopen_self" = unknown \
7996         && test "$dlopen_self_static" = unknown && \
7997           func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
7999       case $host in
8000       *-*-rhapsody* | *-*-darwin1.[012])
8001         # On Rhapsody replace the C library is the System framework
8002         compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
8003         finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
8004         ;;
8005       esac
8007       case $host in
8008       *-*-darwin*)
8009         # Don't allow lazy linking, it breaks C++ global constructors
8010         # But is supposedly fixed on 10.4 or later (yay!).
8011         if test "$tagname" = CXX ; then
8012           case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
8013             10.[0123])
8014               compile_command="$compile_command ${wl}-bind_at_load"
8015               finalize_command="$finalize_command ${wl}-bind_at_load"
8016             ;;
8017           esac
8018         fi
8019         # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8020         compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8021         finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
8022         ;;
8023       esac
8026       # move library search paths that coincide with paths to not yet
8027       # installed libraries to the beginning of the library search list
8028       new_libs=
8029       for path in $notinst_path; do
8030         case " $new_libs " in
8031         *" -L$path/$objdir "*) ;;
8032         *)
8033           case " $compile_deplibs " in
8034           *" -L$path/$objdir "*)
8035             new_libs="$new_libs -L$path/$objdir" ;;
8036           esac
8037           ;;
8038         esac
8039       done
8040       for deplib in $compile_deplibs; do
8041         case $deplib in
8042         -L*)
8043           case " $new_libs " in
8044           *" $deplib "*) ;;
8045           *) new_libs="$new_libs $deplib" ;;
8046           esac
8047           ;;
8048         *) new_libs="$new_libs $deplib" ;;
8049         esac
8050       done
8051       compile_deplibs="$new_libs"
8054       compile_command="$compile_command $compile_deplibs"
8055       finalize_command="$finalize_command $finalize_deplibs"
8057       if test -n "$rpath$xrpath"; then
8058         # If the user specified any rpath flags, then add them.
8059         for libdir in $rpath $xrpath; do
8060           # This is the magic to use -rpath.
8061           case "$finalize_rpath " in
8062           *" $libdir "*) ;;
8063           *) finalize_rpath="$finalize_rpath $libdir" ;;
8064           esac
8065         done
8066       fi
8068       # Now hardcode the library paths
8069       rpath=
8070       hardcode_libdirs=
8071       for libdir in $compile_rpath $finalize_rpath; do
8072         if test -n "$hardcode_libdir_flag_spec"; then
8073           if test -n "$hardcode_libdir_separator"; then
8074             if test -z "$hardcode_libdirs"; then
8075               hardcode_libdirs="$libdir"
8076             else
8077               # Just accumulate the unique libdirs.
8078               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8079               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8080                 ;;
8081               *)
8082                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8083                 ;;
8084               esac
8085             fi
8086           else
8087             eval flag=\"$hardcode_libdir_flag_spec\"
8088             rpath="$rpath $flag"
8089           fi
8090         elif test -n "$runpath_var"; then
8091           case "$perm_rpath " in
8092           *" $libdir "*) ;;
8093           *) perm_rpath="$perm_rpath $libdir" ;;
8094           esac
8095         fi
8096         case $host in
8097         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
8098           testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
8099           case :$dllsearchpath: in
8100           *":$libdir:"*) ;;
8101           ::) dllsearchpath=$libdir;;
8102           *) dllsearchpath="$dllsearchpath:$libdir";;
8103           esac
8104           case :$dllsearchpath: in
8105           *":$testbindir:"*) ;;
8106           ::) dllsearchpath=$testbindir;;
8107           *) dllsearchpath="$dllsearchpath:$testbindir";;
8108           esac
8109           ;;
8110         esac
8111       done
8112       # Substitute the hardcoded libdirs into the rpath.
8113       if test -n "$hardcode_libdir_separator" &&
8114          test -n "$hardcode_libdirs"; then
8115         libdir="$hardcode_libdirs"
8116         eval rpath=\" $hardcode_libdir_flag_spec\"
8117       fi
8118       compile_rpath="$rpath"
8120       rpath=
8121       hardcode_libdirs=
8122       for libdir in $finalize_rpath; do
8123         if test -n "$hardcode_libdir_flag_spec"; then
8124           if test -n "$hardcode_libdir_separator"; then
8125             if test -z "$hardcode_libdirs"; then
8126               hardcode_libdirs="$libdir"
8127             else
8128               # Just accumulate the unique libdirs.
8129               case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8130               *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8131                 ;;
8132               *)
8133                 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8134                 ;;
8135               esac
8136             fi
8137           else
8138             eval flag=\"$hardcode_libdir_flag_spec\"
8139             rpath="$rpath $flag"
8140           fi
8141         elif test -n "$runpath_var"; then
8142           case "$finalize_perm_rpath " in
8143           *" $libdir "*) ;;
8144           *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
8145           esac
8146         fi
8147       done
8148       # Substitute the hardcoded libdirs into the rpath.
8149       if test -n "$hardcode_libdir_separator" &&
8150          test -n "$hardcode_libdirs"; then
8151         libdir="$hardcode_libdirs"
8152         eval rpath=\" $hardcode_libdir_flag_spec\"
8153       fi
8154       finalize_rpath="$rpath"
8156       if test -n "$libobjs" && test "$build_old_libs" = yes; then
8157         # Transform all the library objects into standard objects.
8158         compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8159         finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8160       fi
8162       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
8164       # template prelinking step
8165       if test -n "$prelink_cmds"; then
8166         func_execute_cmds "$prelink_cmds" 'exit $?'
8167       fi
8169       wrappers_required=yes
8170       case $host in
8171       *cygwin* | *mingw* )
8172         if test "$build_libtool_libs" != yes; then
8173           wrappers_required=no
8174         fi
8175         ;;
8176       *cegcc)
8177         # Disable wrappers for cegcc, we are cross compiling anyway.
8178         wrappers_required=no
8179         ;;
8180       *)
8181         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
8182           wrappers_required=no
8183         fi
8184         ;;
8185       esac
8186       if test "$wrappers_required" = no; then
8187         # Replace the output file specification.
8188         compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8189         link_command="$compile_command$compile_rpath"
8191         # We have no uninstalled library dependencies, so finalize right now.
8192         exit_status=0
8193         func_show_eval "$link_command" 'exit_status=$?'
8195         # Delete the generated files.
8196         if test -f "$output_objdir/${outputname}S.${objext}"; then
8197           func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
8198         fi
8200         exit $exit_status
8201       fi
8203       if test -n "$compile_shlibpath$finalize_shlibpath"; then
8204         compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
8205       fi
8206       if test -n "$finalize_shlibpath"; then
8207         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
8208       fi
8210       compile_var=
8211       finalize_var=
8212       if test -n "$runpath_var"; then
8213         if test -n "$perm_rpath"; then
8214           # We should set the runpath_var.
8215           rpath=
8216           for dir in $perm_rpath; do
8217             rpath="$rpath$dir:"
8218           done
8219           compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
8220         fi
8221         if test -n "$finalize_perm_rpath"; then
8222           # We should set the runpath_var.
8223           rpath=
8224           for dir in $finalize_perm_rpath; do
8225             rpath="$rpath$dir:"
8226           done
8227           finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
8228         fi
8229       fi
8231       if test "$no_install" = yes; then
8232         # We don't need to create a wrapper script.
8233         link_command="$compile_var$compile_command$compile_rpath"
8234         # Replace the output file specification.
8235         link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8236         # Delete the old output file.
8237         $opt_dry_run || $RM $output
8238         # Link the executable and exit
8239         func_show_eval "$link_command" 'exit $?'
8240         exit $EXIT_SUCCESS
8241       fi
8243       if test "$hardcode_action" = relink; then
8244         # Fast installation is not supported
8245         link_command="$compile_var$compile_command$compile_rpath"
8246         relink_command="$finalize_var$finalize_command$finalize_rpath"
8248         func_warning "this platform does not like uninstalled shared libraries"
8249         func_warning "\`$output' will be relinked during installation"
8250       else
8251         if test "$fast_install" != no; then
8252           link_command="$finalize_var$compile_command$finalize_rpath"
8253           if test "$fast_install" = yes; then
8254             relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
8255           else
8256             # fast_install is set to needless
8257             relink_command=
8258           fi
8259         else
8260           link_command="$compile_var$compile_command$compile_rpath"
8261           relink_command="$finalize_var$finalize_command$finalize_rpath"
8262         fi
8263       fi
8265       # Replace the output file specification.
8266       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8268       # Delete the old output files.
8269       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
8271       func_show_eval "$link_command" 'exit $?'
8273       # Now create the wrapper script.
8274       func_verbose "creating $output"
8276       # Quote the relink command for shipping.
8277       if test -n "$relink_command"; then
8278         # Preserve any variables that may affect compiler behavior
8279         for var in $variables_saved_for_relink; do
8280           if eval test -z \"\${$var+set}\"; then
8281             relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8282           elif eval var_value=\$$var; test -z "$var_value"; then
8283             relink_command="$var=; export $var; $relink_command"
8284           else
8285             func_quote_for_eval "$var_value"
8286             relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
8287           fi
8288         done
8289         relink_command="(cd `pwd`; $relink_command)"
8290         relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
8291       fi
8293       # Quote $ECHO for shipping.
8294       if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
8295         case $progpath in
8296         [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
8297         *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
8298         esac
8299         qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
8300       else
8301         qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
8302       fi
8304       # Only actually do things if not in dry run mode.
8305       $opt_dry_run || {
8306         # win32 will think the script is a binary if it has
8307         # a .exe suffix, so we strip it off here.
8308         case $output in
8309           *.exe) func_stripname '' '.exe' "$output"
8310                  output=$func_stripname_result ;;
8311         esac
8312         # test for cygwin because mv fails w/o .exe extensions
8313         case $host in
8314           *cygwin*)
8315             exeext=.exe
8316             func_stripname '' '.exe' "$outputname"
8317             outputname=$func_stripname_result ;;
8318           *) exeext= ;;
8319         esac
8320         case $host in
8321           *cygwin* | *mingw* )
8322             func_dirname_and_basename "$output" "" "."
8323             output_name=$func_basename_result
8324             output_path=$func_dirname_result
8325             cwrappersource="$output_path/$objdir/lt-$output_name.c"
8326             cwrapper="$output_path/$output_name.exe"
8327             $RM $cwrappersource $cwrapper
8328             trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
8330             func_emit_cwrapperexe_src > $cwrappersource
8332             # The wrapper executable is built using the $host compiler,
8333             # because it contains $host paths and files. If cross-
8334             # compiling, it, like the target executable, must be
8335             # executed on the $host or under an emulation environment.
8336             $opt_dry_run || {
8337               $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
8338               $STRIP $cwrapper
8339             }
8341             # Now, create the wrapper script for func_source use:
8342             func_ltwrapper_scriptname $cwrapper
8343             $RM $func_ltwrapper_scriptname_result
8344             trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
8345             $opt_dry_run || {
8346               # note: this script will not be executed, so do not chmod.
8347               if test "x$build" = "x$host" ; then
8348                 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
8349               else
8350                 func_emit_wrapper no > $func_ltwrapper_scriptname_result
8351               fi
8352             }
8353           ;;
8354           * )
8355             $RM $output
8356             trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
8358             func_emit_wrapper no > $output
8359             chmod +x $output
8360           ;;
8361         esac
8362       }
8363       exit $EXIT_SUCCESS
8364       ;;
8365     esac
8367     # See if we need to build an old-fashioned archive.
8368     for oldlib in $oldlibs; do
8370       if test "$build_libtool_libs" = convenience; then
8371         oldobjs="$libobjs_save $symfileobj"
8372         addlibs="$convenience"
8373         build_libtool_libs=no
8374       else
8375         if test "$build_libtool_libs" = module; then
8376           oldobjs="$libobjs_save"
8377           build_libtool_libs=no
8378         else
8379           oldobjs="$old_deplibs $non_pic_objects"
8380           if test "$preload" = yes && test -f "$symfileobj"; then
8381             oldobjs="$oldobjs $symfileobj"
8382           fi
8383         fi
8384         addlibs="$old_convenience"
8385       fi
8387       if test -n "$addlibs"; then
8388         gentop="$output_objdir/${outputname}x"
8389         generated="$generated $gentop"
8391         func_extract_archives $gentop $addlibs
8392         oldobjs="$oldobjs $func_extract_archives_result"
8393       fi
8395       # Do each command in the archive commands.
8396       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
8397         cmds=$old_archive_from_new_cmds
8398       else
8400         # Add any objects from preloaded convenience libraries
8401         if test -n "$dlprefiles"; then
8402           gentop="$output_objdir/${outputname}x"
8403           generated="$generated $gentop"
8405           func_extract_archives $gentop $dlprefiles
8406           oldobjs="$oldobjs $func_extract_archives_result"
8407         fi
8409         # POSIX demands no paths to be encoded in archives.  We have
8410         # to avoid creating archives with duplicate basenames if we
8411         # might have to extract them afterwards, e.g., when creating a
8412         # static archive out of a convenience library, or when linking
8413         # the entirety of a libtool archive into another (currently
8414         # not supported by libtool).
8415         if (for obj in $oldobjs
8416             do
8417               func_basename "$obj"
8418               $ECHO "$func_basename_result"
8419             done | sort | sort -uc >/dev/null 2>&1); then
8420           :
8421         else
8422           $ECHO "copying selected object files to avoid basename conflicts..."
8423           gentop="$output_objdir/${outputname}x"
8424           generated="$generated $gentop"
8425           func_mkdir_p "$gentop"
8426           save_oldobjs=$oldobjs
8427           oldobjs=
8428           counter=1
8429           for obj in $save_oldobjs
8430           do
8431             func_basename "$obj"
8432             objbase="$func_basename_result"
8433             case " $oldobjs " in
8434             " ") oldobjs=$obj ;;
8435             *[\ /]"$objbase "*)
8436               while :; do
8437                 # Make sure we don't pick an alternate name that also
8438                 # overlaps.
8439                 newobj=lt$counter-$objbase
8440                 func_arith $counter + 1
8441                 counter=$func_arith_result
8442                 case " $oldobjs " in
8443                 *[\ /]"$newobj "*) ;;
8444                 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
8445                 esac
8446               done
8447               func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
8448               oldobjs="$oldobjs $gentop/$newobj"
8449               ;;
8450             *) oldobjs="$oldobjs $obj" ;;
8451             esac
8452           done
8453         fi
8454         eval cmds=\"$old_archive_cmds\"
8456         func_len " $cmds"
8457         len=$func_len_result
8458         if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
8459           cmds=$old_archive_cmds
8460         else
8461           # the command line is too long to link in one step, link in parts
8462           func_verbose "using piecewise archive linking..."
8463           save_RANLIB=$RANLIB
8464           RANLIB=:
8465           objlist=
8466           concat_cmds=
8467           save_oldobjs=$oldobjs
8468           oldobjs=
8469           # Is there a better way of finding the last object in the list?
8470           for obj in $save_oldobjs
8471           do
8472             last_oldobj=$obj
8473           done
8474           eval test_cmds=\"$old_archive_cmds\"
8475           func_len " $test_cmds"
8476           len0=$func_len_result
8477           len=$len0
8478           for obj in $save_oldobjs
8479           do
8480             func_len " $obj"
8481             func_arith $len + $func_len_result
8482             len=$func_arith_result
8483             func_append objlist " $obj"
8484             if test "$len" -lt "$max_cmd_len"; then
8485               :
8486             else
8487               # the above command should be used before it gets too long
8488               oldobjs=$objlist
8489               if test "$obj" = "$last_oldobj" ; then
8490                 RANLIB=$save_RANLIB
8491               fi
8492               test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8493               eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
8494               objlist=
8495               len=$len0
8496             fi
8497           done
8498           RANLIB=$save_RANLIB
8499           oldobjs=$objlist
8500           if test "X$oldobjs" = "X" ; then
8501             eval cmds=\"\$concat_cmds\"
8502           else
8503             eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
8504           fi
8505         fi
8506       fi
8507       func_execute_cmds "$cmds" 'exit $?'
8508     done
8510     test -n "$generated" && \
8511       func_show_eval "${RM}r$generated"
8513     # Now create the libtool archive.
8514     case $output in
8515     *.la)
8516       old_library=
8517       test "$build_old_libs" = yes && old_library="$libname.$libext"
8518       func_verbose "creating $output"
8520       # Preserve any variables that may affect compiler behavior
8521       for var in $variables_saved_for_relink; do
8522         if eval test -z \"\${$var+set}\"; then
8523           relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8524         elif eval var_value=\$$var; test -z "$var_value"; then
8525           relink_command="$var=; export $var; $relink_command"
8526         else
8527           func_quote_for_eval "$var_value"
8528           relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
8529         fi
8530       done
8531       # Quote the link command for shipping.
8532       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8533       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
8534       if test "$hardcode_automatic" = yes ; then
8535         relink_command=
8536       fi
8538       # Only create the output if not a dry run.
8539       $opt_dry_run || {
8540         for installed in no yes; do
8541           if test "$installed" = yes; then
8542             if test -z "$install_libdir"; then
8543               break
8544             fi
8545             output="$output_objdir/$outputname"i
8546             # Replace all uninstalled libtool libraries with the installed ones
8547             newdependency_libs=
8548             for deplib in $dependency_libs; do
8549               case $deplib in
8550               *.la)
8551                 func_basename "$deplib"
8552                 name="$func_basename_result"
8553                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
8554                 test -z "$libdir" && \
8555                   func_fatal_error "\`$deplib' is not a valid libtool archive"
8556                 newdependency_libs="$newdependency_libs $libdir/$name"
8557                 ;;
8558               *) newdependency_libs="$newdependency_libs $deplib" ;;
8559               esac
8560             done
8561             dependency_libs="$newdependency_libs"
8562             newdlfiles=
8564             for lib in $dlfiles; do
8565               case $lib in
8566               *.la)
8567                 func_basename "$lib"
8568                 name="$func_basename_result"
8569                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8570                 test -z "$libdir" && \
8571                   func_fatal_error "\`$lib' is not a valid libtool archive"
8572                 newdlfiles="$newdlfiles $libdir/$name"
8573                 ;;
8574               *) newdlfiles="$newdlfiles $lib" ;;
8575               esac
8576             done
8577             dlfiles="$newdlfiles"
8578             newdlprefiles=
8579             for lib in $dlprefiles; do
8580               case $lib in
8581               *.la)
8582                 # Only pass preopened files to the pseudo-archive (for
8583                 # eventual linking with the app. that links it) if we
8584                 # didn't already link the preopened objects directly into
8585                 # the library:
8586                 func_basename "$lib"
8587                 name="$func_basename_result"
8588                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
8589                 test -z "$libdir" && \
8590                   func_fatal_error "\`$lib' is not a valid libtool archive"
8591                 newdlprefiles="$newdlprefiles $libdir/$name"
8592                 ;;
8593               esac
8594             done
8595             dlprefiles="$newdlprefiles"
8596           else
8597             newdlfiles=
8598             for lib in $dlfiles; do
8599               case $lib in
8600                 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8601                 *) abs=`pwd`"/$lib" ;;
8602               esac
8603               newdlfiles="$newdlfiles $abs"
8604             done
8605             dlfiles="$newdlfiles"
8606             newdlprefiles=
8607             for lib in $dlprefiles; do
8608               case $lib in
8609                 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
8610                 *) abs=`pwd`"/$lib" ;;
8611               esac
8612               newdlprefiles="$newdlprefiles $abs"
8613             done
8614             dlprefiles="$newdlprefiles"
8615           fi
8616           $RM $output
8617           # place dlname in correct position for cygwin
8618           tdlname=$dlname
8619           case $host,$output,$installed,$module,$dlname in
8620             *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
8621           esac
8622           $ECHO > $output "\
8623 # $outputname - a libtool library file
8624 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
8626 # Please DO NOT delete this file!
8627 # It is necessary for linking the library.
8629 # The name that we can dlopen(3).
8630 dlname='$tdlname'
8632 # Names of this library.
8633 library_names='$library_names'
8635 # The name of the static archive.
8636 old_library='$old_library'
8638 # Linker flags that can not go in dependency_libs.
8639 inherited_linker_flags='$new_inherited_linker_flags'
8641 # Libraries that this one depends upon.
8642 dependency_libs='$dependency_libs'
8644 # Names of additional weak libraries provided by this library
8645 weak_library_names='$weak_libs'
8647 # Version information for $libname.
8648 current=$current
8649 age=$age
8650 revision=$revision
8652 # Is this an already installed library?
8653 installed=$installed
8655 # Should we warn about portability when linking against -modules?
8656 shouldnotlink=$module
8658 # Files to dlopen/dlpreopen
8659 dlopen='$dlfiles'
8660 dlpreopen='$dlprefiles'
8662 # Directory that this library needs to be installed in:
8663 libdir='$install_libdir'"
8664           if test "$installed" = no && test "$need_relink" = yes; then
8665             $ECHO >> $output "\
8666 relink_command=\"$relink_command\""
8667           fi
8668         done
8669       }
8671       # Do a symbolic link so that the libtool archive can be found in
8672       # LD_LIBRARY_PATH before the program is installed.
8673       func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
8674       ;;
8675     esac
8676     exit $EXIT_SUCCESS
8679 { test "$mode" = link || test "$mode" = relink; } &&
8680     func_mode_link ${1+"$@"}
8683 # func_mode_uninstall arg...
8684 func_mode_uninstall ()
8686     $opt_debug
8687     RM="$nonopt"
8688     files=
8689     rmforce=
8690     exit_status=0
8692     # This variable tells wrapper scripts just to set variables rather
8693     # than running their programs.
8694     libtool_install_magic="$magic"
8696     for arg
8697     do
8698       case $arg in
8699       -f) RM="$RM $arg"; rmforce=yes ;;
8700       -*) RM="$RM $arg" ;;
8701       *) files="$files $arg" ;;
8702       esac
8703     done
8705     test -z "$RM" && \
8706       func_fatal_help "you must specify an RM program"
8708     rmdirs=
8710     origobjdir="$objdir"
8711     for file in $files; do
8712       func_dirname "$file" "" "."
8713       dir="$func_dirname_result"
8714       if test "X$dir" = X.; then
8715         objdir="$origobjdir"
8716       else
8717         objdir="$dir/$origobjdir"
8718       fi
8719       func_basename "$file"
8720       name="$func_basename_result"
8721       test "$mode" = uninstall && objdir="$dir"
8723       # Remember objdir for removal later, being careful to avoid duplicates
8724       if test "$mode" = clean; then
8725         case " $rmdirs " in
8726           *" $objdir "*) ;;
8727           *) rmdirs="$rmdirs $objdir" ;;
8728         esac
8729       fi
8731       # Don't error if the file doesn't exist and rm -f was used.
8732       if { test -L "$file"; } >/dev/null 2>&1 ||
8733          { test -h "$file"; } >/dev/null 2>&1 ||
8734          test -f "$file"; then
8735         :
8736       elif test -d "$file"; then
8737         exit_status=1
8738         continue
8739       elif test "$rmforce" = yes; then
8740         continue
8741       fi
8743       rmfiles="$file"
8745       case $name in
8746       *.la)
8747         # Possibly a libtool archive, so verify it.
8748         if func_lalib_p "$file"; then
8749           func_source $dir/$name
8751           # Delete the libtool libraries and symlinks.
8752           for n in $library_names; do
8753             rmfiles="$rmfiles $objdir/$n"
8754           done
8755           test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
8757           case "$mode" in
8758           clean)
8759             case "  $library_names " in
8760             # "  " in the beginning catches empty $dlname
8761             *" $dlname "*) ;;
8762             *) rmfiles="$rmfiles $objdir/$dlname" ;;
8763             esac
8764             test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
8765             ;;
8766           uninstall)
8767             if test -n "$library_names"; then
8768               # Do each command in the postuninstall commands.
8769               func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8770             fi
8772             if test -n "$old_library"; then
8773               # Do each command in the old_postuninstall commands.
8774               func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8775             fi
8776             # FIXME: should reinstall the best remaining shared library.
8777             ;;
8778           esac
8779         fi
8780         ;;
8782       *.lo)
8783         # Possibly a libtool object, so verify it.
8784         if func_lalib_p "$file"; then
8786           # Read the .lo file
8787           func_source $dir/$name
8789           # Add PIC object to the list of files to remove.
8790           if test -n "$pic_object" &&
8791              test "$pic_object" != none; then
8792             rmfiles="$rmfiles $dir/$pic_object"
8793           fi
8795           # Add non-PIC object to the list of files to remove.
8796           if test -n "$non_pic_object" &&
8797              test "$non_pic_object" != none; then
8798             rmfiles="$rmfiles $dir/$non_pic_object"
8799           fi
8800         fi
8801         ;;
8803       *)
8804         if test "$mode" = clean ; then
8805           noexename=$name
8806           case $file in
8807           *.exe)
8808             func_stripname '' '.exe' "$file"
8809             file=$func_stripname_result
8810             func_stripname '' '.exe' "$name"
8811             noexename=$func_stripname_result
8812             # $file with .exe has already been added to rmfiles,
8813             # add $file without .exe
8814             rmfiles="$rmfiles $file"
8815             ;;
8816           esac
8817           # Do a test to see if this is a libtool program.
8818           if func_ltwrapper_p "$file"; then
8819             if func_ltwrapper_executable_p "$file"; then
8820               func_ltwrapper_scriptname "$file"
8821               relink_command=
8822               func_source $func_ltwrapper_scriptname_result
8823               rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
8824             else
8825               relink_command=
8826               func_source $dir/$noexename
8827             fi
8829             # note $name still contains .exe if it was in $file originally
8830             # as does the version of $file that was added into $rmfiles
8831             rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
8832             if test "$fast_install" = yes && test -n "$relink_command"; then
8833               rmfiles="$rmfiles $objdir/lt-$name"
8834             fi
8835             if test "X$noexename" != "X$name" ; then
8836               rmfiles="$rmfiles $objdir/lt-${noexename}.c"
8837             fi
8838           fi
8839         fi
8840         ;;
8841       esac
8842       func_show_eval "$RM $rmfiles" 'exit_status=1'
8843     done
8844     objdir="$origobjdir"
8846     # Try to remove the ${objdir}s in the directories where we deleted files
8847     for dir in $rmdirs; do
8848       if test -d "$dir"; then
8849         func_show_eval "rmdir $dir >/dev/null 2>&1"
8850       fi
8851     done
8853     exit $exit_status
8856 { test "$mode" = uninstall || test "$mode" = clean; } &&
8857     func_mode_uninstall ${1+"$@"}
8859 test -z "$mode" && {
8860   help="$generic_help"
8861   func_fatal_help "you must specify a MODE"
8864 test -z "$exec_cmd" && \
8865   func_fatal_help "invalid operation mode \`$mode'"
8867 if test -n "$exec_cmd"; then
8868   eval exec "$exec_cmd"
8869   exit $EXIT_FAILURE
8870 fi
8872 exit $exit_status
8875 # The TAGs below are defined such that we never get into a situation
8876 # in which we disable both kinds of libraries.  Given conflicting
8877 # choices, we go for a static library, that is the most portable,
8878 # since we can't tell whether shared libraries were disabled because
8879 # the user asked for that or because the platform doesn't support
8880 # them.  This is particularly important on AIX, because we don't
8881 # support having both static and shared libraries enabled at the same
8882 # time on that platform, so we default to a shared-only configuration.
8883 # If a disable-shared tag is given, we'll fallback to a static-only
8884 # configuration.  But we'll never go from static-only to shared-only.
8886 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
8887 build_libtool_libs=no
8888 build_old_libs=yes
8889 # ### END LIBTOOL TAG CONFIG: disable-shared
8891 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
8892 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
8893 # ### END LIBTOOL TAG CONFIG: disable-static
8895 # Local Variables:
8896 # mode:shell-script
8897 # sh-indentation:2
8898 # End:
8899 # vi:sw=2