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