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