1bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#! /bin/sh
2bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# libtoolT - Provide generalized library-building support services.
4bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated automatically by  (GNU cmockery 0.1.2)
5bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# NOTE: Changes made to this file will be lost: look at ltmain.sh.
6bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
7bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
8bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Free Software Foundation, Inc.
9bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
10bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This file is part of GNU Libtool:
11bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
12bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
13bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is free software; you can redistribute it and/or modify
14bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# it under the terms of the GNU General Public License as published by
15bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the Free Software Foundation; either version 2 of the License, or
16bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# (at your option) any later version.
17bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
18bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is distributed in the hope that it will be useful, but
19bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# WITHOUT ANY WARRANTY; without even the implied warranty of
20bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# General Public License for more details.
22bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
23bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# You should have received a copy of the GNU General Public License
24bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# along with this program; if not, write to the Free Software
25bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
26bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
27bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# As a special exception to the GNU General Public License, if you
28bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# distribute this file as part of a program that contains a
29bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# configuration script generated by Autoconf, you may include it under
30bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the same distribution terms that you use for the rest of that program.
31bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
32bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A sed program that does not truncate output.
33bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSED="/bin/sed"
34bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
35bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Sed that helps us avoid accidentally triggering echo(1) options like -n.
36bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonXsed="/bin/sed -e 1s/^X//"
37bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
38bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The HP-UX ksh and POSIX shell print the target directory to stdout
39bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# if CDPATH is set.
40bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
41bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
42bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The names of the tagged configurations supported by this script.
43bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavailable_tags=" CXX"
44bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
45bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL CONFIG
46bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
47bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Libtool was configured on host battlefront.corp.google.com:
48bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
49bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shell to use when invoking shell scripts.
50bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSHELL="/bin/sh"
51bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
52bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to build shared libraries.
53bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_libtool_libs=yes
54bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
55bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to build static libraries.
56bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_old_libs=yes
57bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
58bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to add -lc for building shared libraries.
59bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_libtool_need_lc=no
60bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
61bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to disallow shared libs when runtime libs are static
62bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonallow_libtool_libs_with_static_runtimes=no
63bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
64bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to optimize for fast installation.
65bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfast_install=yes
66bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
67bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The host system.
68bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost_alias=
69bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost=x86_64-unknown-linux-gnu
70bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost_os=linux-gnu
71bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
72bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The build system.
73bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_alias=
74bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild=x86_64-unknown-linux-gnu
75bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_os=linux-gnu
76bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
77bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# An echo program that does not interpret backslashes.
78bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonecho="echo"
79bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
80bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The archiver.
81bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAR="ar"
82bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAR_FLAGS="cru"
83bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
84bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A C compiler.
85bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLTCC="gcc"
86bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
87bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# LTCC compiler flags.
88bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLTCFLAGS="-g -O2"
89bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
90bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A language-specific compiler.
91bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCC="gcc"
92bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
93bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is the compiler the GNU C compiler?
94bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwith_gcc=yes
95bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
96bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# An ERE matcher.
97bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEGREP="grep -E"
98bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
99bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The linker used to build libraries.
100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLD="/usr/bin/ld -m elf_i386"
101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we need hard or soft links.
103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLN_S="ln -s"
104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A BSD-compatible nm program.
106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonNM="/usr/bin/nm -B"
107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A symbol stripping program
109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSTRIP="strip"
110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used to examine libraries when file_magic_cmd begins "file"
112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMAGIC_CMD=file
113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: DLL creation program.
115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonDLLTOOL="dlltool"
116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: object dumper.
118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonOBJDUMP="objdump"
119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: assembler.
121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAS="as"
122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of the directory that contains temporary libtool files.
124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobjdir=.libs
125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to create reloadable object files.
127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonreload_flag=" -r"
128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonreload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to pass a linker flag through the compiler.
131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwl="-Wl,"
132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Object file suffix (normally "o").
134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobjext="o"
135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Old archive suffix (normally "a").
137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibext="a"
138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shared library suffix (normally ".so").
140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshrext_cmds='.so'
141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Executable file suffix (normally "").
143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexeext=""
144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Additional compiler flags for building library objects.
146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_flag=" -fPIC -DPIC"
147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_mode=default
148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# What is the maximum length of a command?
150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmax_cmd_len=131072
151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Does compiler simultaneously support -c and -o options?
153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler_c_o="yes"
154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Must we lock files when doing compilation?
156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_locks="no"
157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Do we need the lib prefix for modules?
159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_lib_prefix=no
160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Do we need a version for libraries?
162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_version=no
163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen is supported.
165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_support=unknown
166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen of programs is supported.
168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_self=unknown
169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen of statically linked programs is supported.
171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_self_static=unknown
172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to prevent dynamic linking.
174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink_static_flag="-static"
175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to turn off builtin functions.
177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno_builtin_flag=" -fno-builtin"
178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to allow reflexive dlopens.
180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexport_dynamic_flag_spec="\${wl}--export-dynamic"
181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to generate shared objects directly from archives.
183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwhole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to generate thread-safe objects.
186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonthread_safe_flag_spec=""
187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Library versioning type.
189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonversion_type=linux
190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Format of library name prefix.
192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibname_spec="lib\$name"
193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# List of archive names.  First name is the real one, the rest are links.
195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The last name is the one that the linker finds with -lNAME.
196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The coded name of the library, if different from the real name.
199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsoname_spec="\${libname}\${release}\${shared_ext}\$major"
200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build and install an old-style archive.
202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRANLIB="ranlib"
203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_postuninstall_cmds=""
206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Create an old-style archive from a shared archive.
208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_from_new_cmds=""
209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Create a temporary old-style archive to link instead of a shared archive.
211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_from_expsyms_cmds=""
212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build and install a shared archive.
214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonarchive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonarchive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostinstall_cmds=""
220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostuninstall_cmds=""
221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build a loadable module (assumed same as above if empty)
223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodule_cmds=""
224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodule_expsym_cmds=""
225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands to strip libraries.
227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_striplib="strip --strip-debug"
228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstriplib="strip --strip-unneeded"
229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place before the objects being linked to create a
231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library.
232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpredep_objects=""
233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place after the objects being linked to create a
235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library.
236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostdep_objects=""
237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place before the objects being linked to create a
239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library.
240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpredeps=""
241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place after the objects being linked to create a
243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library.
244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostdeps=""
245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The library search path used internally by the compiler when linking
247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# a shared library.
248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler_lib_search_path=""
249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Method to check whether dependent libraries are shared objects.
251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondeplibs_check_method="pass_all"
252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Command to use when deplibs_check_method == file_magic.
254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfile_magic_cmd="\$MAGIC_CMD"
255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag that allows shared libraries with undefined symbols to be built.
257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonallow_undefined_flag=""
258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag that forces no undefined symbols.
260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno_undefined_flag=""
261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to finish a libtool library installation in a directory.
263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Same as above, but a single script fragment to be evaled but not shown.
266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish_eval=""
267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Take the output of nm and produce a listing of raw symbols and C names.
269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_pipe="sed -n -e 's/^.*[ 	]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ 	][ 	]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Transform the output of nm in a proper C declaration
272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Transform the output of nm in a C name address pair
275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (lt_ptr) \\&\\2},/p'"
276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This is the shared library runtime path variable.
278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrunpath_var=LD_RUN_PATH
279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This is the shared library path variable.
281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshlibpath_var=LD_LIBRARY_PATH
282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is shlibpath searched before the hard-coded library search path?
284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshlibpath_overrides_runpath=no
285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to hardcode a shared library path into an executable.
287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_action=immediate
288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we should hardcode library paths into libraries.
290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_into_libs=yes
291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag to hardcode $libdir into a binary during linking.
293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This must work even if $libdir does not exist.
294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If ld is used when linking, flag to hardcode $libdir into
297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# a binary during linking. This must work even if $libdir does
298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# not exist.
299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_flag_spec_ld=""
300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we need a single -rpath flag with a separated argument.
302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_separator=""
303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using DIR/libNAME during linking hardcodes DIR into the
305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# resulting binary.
306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_direct=no
307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# resulting binary.
310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_minus_L=no
311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the resulting binary.
314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_shlibpath_var=unsupported
315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if building a shared library automatically hardcodes DIR into the library
317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# and all subsequent libraries and executables linked against it.
318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_automatic=no
319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Variables whose values should be saved in libtool wrapper scripts and
321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# restored at relink time.
322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvariables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether libtool must link a program against all its dependency libraries.
325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink_all_deplibs=no
326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compile-time system search path for libraries
328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsys_lib_search_path_spec=" /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../ /lib/i486-linux-gnu/4.0.3/ /lib/ /usr/lib/i486-linux-gnu/4.0.3/ /usr/lib/"
329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Run-time system search path for libraries
331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas "
332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Fix the shell variable $srcfile for the compiler.
334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfix_srcfile_path=""
335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if exported symbols are required.
337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonalways_export_symbols=no
338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The commands to list exported symbols.
340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexport_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The commands to extract the exported symbol list from a shared archive.
343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonextract_expsyms_cmds=""
344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Symbols that should not be listed in the preloaded symbols.
346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexclude_expsyms="_GLOBAL_OFFSET_TABLE_"
347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Symbols that must always be exported.
349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninclude_expsyms=""
350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL CONFIG
352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ltmain.sh - Provide generalized library-building support services.
354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# NOTE: Changing this file will not affect anything until you rerun configure.
355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Free Software Foundation, Inc.
358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is free software; you can redistribute it and/or modify
361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# it under the terms of the GNU General Public License as published by
362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the Free Software Foundation; either version 2 of the License, or
363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# (at your option) any later version.
364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is distributed in the hope that it will be useful, but
366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# WITHOUT ANY WARRANTY; without even the implied warranty of
367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# General Public License for more details.
369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# You should have received a copy of the GNU General Public License
371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# along with this program; if not, write to the Free Software
372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# As a special exception to the GNU General Public License, if you
375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# distribute this file as part of a program that contains a
376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# configuration script generated by Autoconf, you may include it under
377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the same distribution terms that you use for the rest of that program.
378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbasename="s,^.*/,,g"
380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# is ksh but when the shell is invoked as "sh" and the current value of
383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the _XPG environment variable is not equal to 1 (one), the special
384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# positional parameter $0, within a function call, is the name of the
385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# function.
386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprogpath="$0"
387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of this program:
389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprogname=`echo "$progpath" | $SED $basename`
390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodename="$progname"
391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Global variables:
393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEXIT_SUCCESS=0
394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEXIT_FAILURE=1
395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonPROGRAM=ltmain.sh
397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonPACKAGE=libtool
398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonVERSION="1.5.22 Debian 1.5.22-2"
399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# See if we are running on zsh, and set the options which allow our
402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# commands through without removal of \ escapes.
403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "${ZSH_VERSION+set}" ; then
404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  setopt NO_GLOB_SUBST
405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Check that we have a working $echo.
408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "X$1" = X--no-reexec; then
409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Discard the --no-reexec flag, and continue.
410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  shift
411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelif test "X$1" = X--fallback-echo; then
412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Avoid inline document here, it may be left over
413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  :
414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Yippee, $echo works!
416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  :
417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelse
418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Restart under the correct shell, and then maybe $echo will work.
419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "X$1" = X--fallback-echo; then
423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # used as fallback echo
424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  shift
425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  cat <<EOF
426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$*
427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_SUCCESS
429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondefault_mode=
432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhelp="Try \`$progname --help' for more information."
433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmagic="%%%MAGIC variable%%%"
434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmkdir="mkdir"
435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmv="mv -f"
436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrm="rm -f"
437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Sed substitution that helps us do robust quoting.  It backslashifies
439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# metacharacters that are still active within double-quoted strings.
440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonXsed="${SED}"' -e 1s/^X//'
441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# test EBCDIC or ASCII
443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase `echo X|tr X '\101'` in
444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson A) # ASCII based system
445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  SP2NL='tr \040 \012'
447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  NL2SP='tr \015\012 \040\040'
448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) # EBCDIC based system
450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  SP2NL='tr \100 \n'
451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  NL2SP='tr \r\n \100\100'
452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac
454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# NLS nuisances.
456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Only set LANG and LC_ALL to C if already set.
457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# These must not be set unconditionally because not all systems understand
458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# e.g. LANG=C (notably SCO).
459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# We save the old values to restore during execute mode.
460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "${LC_ALL+set}" = set; then
461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "${LANG+set}" = set; then
464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  save_LANG="$LANG"; LANG=C; export LANG
465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Make sure IFS has a sensible default
468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_nl='
469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson'
470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIFS=" 	$lt_nl"
471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$modename: not configured to build any kind of library" 1>&2
474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_FAILURE
476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Global variables.
479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmode=$default_mode
480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnonopt=
481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprev=
482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprevopt=
483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrun=
484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshow="$echo"
485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshow_help=
486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexecute_dlfiles=
487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonduplicate_deps=no
488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpreserve_args=
489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlo2o="s/\\.lo\$/.${objext}/"
490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsono2lo="s/\\.${objext}\$/.lo/"
491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#####################################
493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shell function definitions:
494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This seems to be the best place for them
495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_mktempdir [string]
497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Make a temporary directory that won't clash with other running
498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# libtool processes, and avoids race conditions if possible.  If
499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# given, STRING is the basename for that directory.
500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_mktempdir ()
501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_template="${TMPDIR-/tmp}/${1-$progname}"
503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$run" = ":"; then
505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Return a directory name, but don't create it in dry-run mode
506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_tmpdir="${my_template}-$$"
507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # If mktemp works, use that first and foremost
510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test ! -d "$my_tmpdir"; then
513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Failing that, at least try and use $RANDOM to avoid a race
514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	my_tmpdir="${my_template}-${RANDOM-0}$$"
515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_mktempdir_umask=`umask`
517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	umask 0077
518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$mkdir "$my_tmpdir"
519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	umask $save_mktempdir_umask
520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # If we're not in dry-run mode, bomb out on failure
523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -d "$my_tmpdir" || {
524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      }
527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "X$my_tmpdir" | $Xsed
530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_win32_libid arg
534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# return the library type of file 'arg'
535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Need a lot of goo to handle *both* DLLs and import libs
537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Has to be a shell function in order to 'eat' the argument
538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# that is supplied when $file_magic_command is called.
539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_win32_libid ()
540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  win32_libid_type="unknown"
542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  win32_fileres=`file -L $1 2>/dev/null`
543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  case $win32_fileres in
544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *ar\ archive\ import\ library*) # definitely import
545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    win32_libid_type="x86 archive import"
546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *ar\ archive*) # could be an import, or static
548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      win32_nmres=`eval $NM -f posix -A $1 | \
551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $win32_nmres in
553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      import*)  win32_libid_type="x86 archive import";;
554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)        win32_libid_type="x86 archive static";;
555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *DLL*)
559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    win32_libid_type="x86 DLL"
560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *executable*) # but shell scripts are "executable" too...
562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $win32_fileres in
563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *MS\ Windows\ PE\ Intel*)
564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      win32_libid_type="x86 DLL"
565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  esac
569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo $win32_libid_type
570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_infer_tag arg
574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Infer tagged configuration to use if any are available and
575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# if one wasn't chosen via the "--tag" command line option.
576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Only attempt this if the compiler in the base compile
577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# command doesn't match the default compiler.
578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# arg is usually of the form 'gcc ...'
579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_infer_tag ()
580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$available_tags" && test -z "$tagname"; then
582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      CC_quoted=
583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for arg in $CC; do
584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="\"$arg\""
587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	CC_quoted="$CC_quoted $arg"
590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $@ in
592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Blanks in the command may have been stripped by the calling shell,
593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # but not from the CC environment variable when configure was run.
594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Blanks at the start of $base_compile will cause this to fail
596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # if we don't check for them as well.
597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for z in $available_tags; do
599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Evaluate the configuration.
601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    CC_quoted=
603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for arg in $CC; do
604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Double-quote args containing other shell metacharacters.
605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $arg in
606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      arg="\"$arg\""
608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    CC_quoted="$CC_quoted $arg"
611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$@ " in
613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # The compiler in the base compile command matches
615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # the one in the tagged configuration.
616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Assume this is the tagged configuration we want.
617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      tagname=$z
618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      break
619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If $tagname still isn't set, then no tagged configuration
624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# was found and let the user know that the "--tag" command
625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# line option must be used.
626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$tagname"; then
627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: unable to infer tagged configuration"
628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: specify a tag with \`--tag'" 1>&2
629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#        else
631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#          $echo "$modename: using $tagname tagged configuration"
632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_extract_an_archive dir oldlib
640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_extract_an_archive ()
641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    f_ex_an_ar_dir="$1"; shift
643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    f_ex_an_ar_oldlib="$1"
644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson     :
649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_extract_archives gentop oldlib ...
656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_extract_archives ()
657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_gentop="$1"; shift
659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_oldlibs=${1+"$@"}
660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_oldobjs=""
661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_xlib=""
662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_xabs=""
663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_xdir=""
664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_status=""
665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $show "${rm}r $my_gentop"
667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run ${rm}r "$my_gentop"
668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $show "$mkdir $my_gentop"
669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run $mkdir "$my_gentop"
670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_status=$?
671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $my_status
673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for my_xlib in $my_oldlibs; do
676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Extract the objects.
677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $my_xlib in
678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) my_xabs=`pwd`"/$my_xlib" ;;
680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_xdir="$my_gentop/$my_xlib"
683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "${rm}r $my_xdir"
685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run ${rm}r "$my_xdir"
686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$mkdir $my_xdir"
687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $mkdir "$my_xdir"
688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit_status=$?
689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $exit_status
691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $host in
693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *-darwin*)
694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "Extracting $my_xabs"
695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do not bother doing anything if just a dry run
696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$run"; then
697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_orig_dir=`pwd`
698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cd $my_xdir || exit $?
699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_archive=$my_xabs
700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_curdir=`pwd`
701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$darwin_arches"; then 
704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_arch=
706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for darwin_arch in  $darwin_arches ; do
708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cd "$darwin_curdir"
713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done # $darwin_arches
715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_file=
718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_files=
719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for darwin_file in $darwin_filelist; do
720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      lipo -create -output "$darwin_file" $darwin_files
722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done # $darwin_filelist
723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ${rm}r unfat-$$
724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cd "$darwin_orig_dir"
725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cd "$darwin_orig_dir"
727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 	    func_extract_an_archive "$my_xdir" "$my_xabs"
728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi # $darwin_arches
729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $run
730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        func_extract_an_archive "$my_xdir" "$my_xabs"
733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        ;;
734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    func_extract_archives_result="$my_oldobjs"
738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# End of Shell function definitions
740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#####################################
741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Darwin sucks
743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoneval std_shrext=\"$shrext_cmds\"
744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=no
746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Parse our command line options once, thoroughly.
748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwhile test "$#" -gt 0
749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondo
750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  arg="$1"
751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  shift
752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  case $arg in
754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *) optarg= ;;
756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  esac
757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # If the previous option needs an argument, assign it.
759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -n "$prev"; then
760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $prev in
761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    execute_dlfiles)
762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      execute_dlfiles="$execute_dlfiles $arg"
763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    tag)
765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      tagname="$arg"
766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      preserve_args="${preserve_args}=$arg"
767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Check whether tagname contains only valid characters
769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $tagname in
770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[!-_A-Za-z0-9,/]*)
771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$progname: invalid tag name: $tagname" 1>&2
772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $tagname in
777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      CC)
778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Don't test for the "default" C tag, as we know, it's there, but
779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# not specially marked.
780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  taglist="$taglist $tagname"
784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Evaluate the configuration.
785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval "$prev=\$arg"
794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=
798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prevopt=
799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    continue
800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Have we seen a non-optional argument yet?
803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  case $arg in
804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --help)
805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    show_help=yes
806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --version)
809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo
811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "This is free software; see the source for copying conditions.  There is NO"
813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $?
815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --config)
818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Now print the configurations for the tags.
820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for tagname in $taglist; do
821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $?
824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --debug)
827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$progname: enabling shell trace mode"
828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    set -x
829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preserve_args="$preserve_args $arg"
830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --dry-run | -n)
833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    run=:
834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --features)
837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "host: $host"
838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_libtool_libs" = yes; then
839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "enable shared libraries"
840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "disable shared libraries"
842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_old_libs" = yes; then
844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "enable static libraries"
845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "disable static libraries"
847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $?
849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --finish) mode="finish" ;;
852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --mode) prevopt="--mode" prev=mode ;;
854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --mode=*) mode="$optarg" ;;
855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --preserve-dup-deps) duplicate_deps="yes" ;;
857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --quiet | --silent)
859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    show=:
860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preserve_args="$preserve_args $arg"
861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --tag)
864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prevopt="--tag"
865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=tag
866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preserve_args="$preserve_args --tag"
867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --tag=*)
869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    set tag "$optarg" ${1+"$@"}
870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    shift
871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=tag
872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preserve_args="$preserve_args --tag"
873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -dlopen)
876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prevopt="-dlopen"
877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=execute_dlfiles
878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -*)
881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$modename: unrecognized option \`$arg'" 1>&2
882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$help" 1>&2
883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *)
887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    nonopt="$arg"
888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    break
889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  esac
891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondone
892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "$prevopt"; then
894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$help" 1>&2
896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_FAILURE
897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase $disable_libs in
900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno) 
901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshared)
903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  build_libtool_libs=no
904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  build_old_libs=yes
905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic)
907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac
910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If this variable is set in any of the actions, the command in it
912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# will be execed at the end.  This prevents here-documents from being
913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# left over by shells.
914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexec_cmd=
915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -z "$show_help"; then
917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Infer the operation mode.
919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -z "$mode"; then
920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $nonopt in
923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      mode=link
925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for arg
926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      do
927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-c)
929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   mode=compile
930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   break
931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   ;;
932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *db | *dbx | *strace | *truss)
936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      mode=execute
937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *install*|cp|mv)
939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      mode=install
940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *rm)
942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      mode=uninstall
943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # If we have no mode, but dlfiles were specified, then do execute mode.
946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -n "$execute_dlfiles" && mode=execute
947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Just use the default operation mode.
949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$mode"; then
950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$nonopt"; then
951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Only execute mode is allowed to have -dlopen flags.
961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -n "$execute_dlfiles" && test "$mode" != execute; then
962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$help" 1>&2
964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Change the help message to a mode-specific one.
968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  generic_help="$help"
969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  help="Try \`$modename --help --mode=$mode' for more information."
970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # These modes are in order of execution frequency so that they run quickly.
972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  case $mode in
973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool compile mode
974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  compile)
975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: compile"
976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Get the compilation command and the source file.
977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    base_compile=
978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    suppress_opt=yes
980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    suppress_output=
981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    arg_mode=normal
982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libobj=
983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    later=
984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg
986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg_mode in
988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg  )
989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# do not "continue".  Instead, add this to base_compile
990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lastarg="$arg"
991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg_mode=normal
992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      target )
995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libobj="$arg"
996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg_mode=normal
997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      normal )
1001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Accept any command-line options.
1002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
1003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-o)
1004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$libobj" ; then
1005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
1006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg_mode=target
1009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-static | -prefer-pic | -prefer-non-pic)
1013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  later="$later $arg"
1014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-no-suppress)
1018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  suppress_opt=no
1019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-Xcompiler)
1023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
1024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue      #  The current "srcfile" will either be retained or
1025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;            #  replaced later.  I would guess that would be a bug.
1026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-Wc,*)
1028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
1029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lastarg=
1030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_ifs="$IFS"; IFS=','
1031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 	  for arg in $args; do
1032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
1033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Double-quote args containing other shell metacharacters.
1035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Many Bourne shells cannot handle close brackets correctly
1036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # in scan sets, so we specify it separately.
1037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $arg in
1038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      arg="\"$arg\""
1040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
1041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
1042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    lastarg="$lastarg $arg"
1043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
1044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
1045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
1046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add the arguments to base_compile.
1048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  base_compile="$base_compile $lastarg"
1049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	* )
1053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Accept the current argument as the source file.
1054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # The previous "srcfile" becomes the current argument.
1055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
1056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lastarg="$srcfile"
1057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  srcfile="$arg"
1058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac  #  case $arg
1060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac    #  case $arg_mode
1062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Aesthetically quote the previous argument.
1064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
1065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $lastarg in
1067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Double-quote args containing other shell metacharacters.
1068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Many Bourne shells cannot handle close brackets correctly
1069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # in scan sets, and some SunOS ksh mistreat backslash-escaping
1070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # in scan sets (worked around with variable expansion),
1071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
1072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # at all, so we specify them separately.
1073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lastarg="\"$lastarg\""
1075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
1077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      base_compile="$base_compile $lastarg"
1079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done # for arg
1080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $arg_mode in
1082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    arg)
1083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify an argument for -Xcompile"
1084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
1085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    target)
1087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify a target with \`-o'" 1>&2
1088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
1089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
1091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Get the name of the library object.
1092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
1093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
1095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Recognize several different file suffixes.
1097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # If the user specifies -o file.o, it is replaced with file.lo
1098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    xform='[cCFSifmso]'
1099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $libobj in
1100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.ada) xform=ada ;;
1101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.adb) xform=adb ;;
1102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.ads) xform=ads ;;
1103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.asm) xform=asm ;;
1104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.c++) xform=c++ ;;
1105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.cc) xform=cc ;;
1106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.ii) xform=ii ;;
1107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.class) xform=class ;;
1108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.cpp) xform=cpp ;;
1109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.cxx) xform=cxx ;;
1110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.f90) xform=f90 ;;
1111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.for) xform=for ;;
1112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.java) xform=java ;;
1113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
1114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
1116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $libobj in
1118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
1119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
1120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
1121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
1122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
1124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    func_infer_tag $base_compile
1126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg in $later; do
1128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
1129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -static)
1130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	build_old_libs=yes
1131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -prefer-pic)
1135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	pic_mode=yes
1136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -prefer-non-pic)
1140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	pic_mode=no
1141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
1144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
1145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
1147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $qlibobj in
1148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	qlibobj="\"$qlibobj\"" ;;
1150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
1151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test "X$libobj" != "X$qlibobj" \
1152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
1153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
1154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
1155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
1156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "X$xdir" = "X$obj"; then
1157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      xdir=
1158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
1159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      xdir=$xdir/
1160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lobj=${xdir}$objdir/$objname
1162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$base_compile"; then
1164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify a compilation command" 1>&2
1165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
1166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
1167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Delete any leftover library objects.
1170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_old_libs" = yes; then
1171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      removelist="$obj $lobj $libobj ${libobj}T"
1172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
1173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      removelist="$lobj $libobj ${libobj}T"
1174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run $rm $removelist
1177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
1178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # On Cygwin there's no "real" PIC flag so we must build both object types
1180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $host_os in
1181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    cygwin* | mingw* | pw32* | os2*)
1182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      pic_mode=default
1183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
1185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
1186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # non-PIC code in shared libraries is not supported
1187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      pic_mode=default
1188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Calculate the filename of the output object if compiler does
1191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # not support -o with -c
1192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$compiler_c_o" = no; then
1193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
1194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      lockfile="$output_obj.lock"
1195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      removelist="$removelist $output_obj $lockfile"
1196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
1197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
1198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output_obj=
1199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      need_locks=no
1200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      lockfile=
1201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Lock this critical section if it is needed
1204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # We use this script file to make the link, it avoids creating a new file
1205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$need_locks" = yes; then
1206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
1207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "Waiting for $lockfile to be removed"
1208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	sleep 2
1209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
1210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    elif test "$need_locks" = warn; then
1211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -f "$lockfile"; then
1212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "\
1213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile exists and contains:
1214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null`
1215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same
1217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because
1218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together.  If you
1219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better
1220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better
1221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler."
1222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $removelist
1224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
1225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$srcfile" > "$lockfile"
1227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$fix_srcfile_path"; then
1230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval srcfile=\"$fix_srcfile_path\"
1231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
1233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $qsrcfile in
1234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      qsrcfile="\"$qsrcfile\"" ;;
1236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
1237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run $rm "$libobj" "${libobj}T"
1239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Create a libtool object file (analogous to a ".la" file),
1241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # but don't create it if we're doing a dry run.
1242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test -z "$run" && cat > ${libobj}T <<EOF
1243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $libobj - a libtool object file
1244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
1245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
1246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Please DO NOT delete this file!
1247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# It is necessary for linking the library.
1248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the PIC object.
1250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
1251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Only build a PIC object if we are building libtool libraries.
1253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_libtool_libs" = yes; then
1254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Without this assignment, base_compile gets emptied.
1255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fbsd_hideous_sh_bug=$base_compile
1256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pic_mode" != no; then
1258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$base_compile $qsrcfile $pic_flag"
1259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
1260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Don't build PIC code
1261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$base_compile $qsrcfile"
1262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test ! -d "${xdir}$objdir"; then
1265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$mkdir ${xdir}$objdir"
1266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $mkdir ${xdir}$objdir
1267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit_status=$?
1268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
1269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $exit_status
1270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$output_obj"; then
1274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Place PIC objects in $objdir
1275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$command -o $lobj"
1276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm "$lobj" "$output_obj"
1279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$command"
1281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if $run eval "$command"; then :
1282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
1283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test -n "$output_obj" && $run $rm $removelist
1284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
1285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$need_locks" = warn &&
1288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "\
1290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile contains:
1291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null`
1292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbut it should contain:
1294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$srcfile
1295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same
1297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because
1298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together.  If you
1299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better
1300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better
1301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler."
1302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $removelist
1304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
1305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Just move the object if needed, then go on to compile the next one
1308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
1309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$mv $output_obj $lobj"
1310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if $run $mv $output_obj $lobj; then :
1311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  error=$?
1313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm $removelist
1314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $error
1315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Append the name of the PIC object to the libtool object file.
1319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -z "$run" && cat >> ${libobj}T <<EOF
1320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_object='$objdir/$objname'
1321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
1323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Allow error messages only from the first compilation.
1325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$suppress_opt" = yes; then
1326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        suppress_output=' >/dev/null 2>&1'
1327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
1329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # No PIC object so indicate it doesn't exist in the libtool
1330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # object file.
1331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -z "$run" && cat >> ${libobj}T <<EOF
1332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_object=none
1333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
1335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Only build a position-dependent object if we build old libraries.
1338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_old_libs" = yes; then
1339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pic_mode" != yes; then
1340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Don't build PIC code
1341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$base_compile $qsrcfile"
1342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
1343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$base_compile $qsrcfile $pic_flag"
1344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$compiler_c_o" = yes; then
1346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$command -o $obj"
1347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Suppress compiler output if we already did a PIC compilation.
1350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      command="$command$suppress_output"
1351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm "$obj" "$output_obj"
1352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$command"
1353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if $run eval "$command"; then :
1354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
1355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $removelist
1356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
1357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$need_locks" = warn &&
1360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "\
1362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile contains:
1363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null`
1364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbut it should contain:
1366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$srcfile
1367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same
1369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because
1370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together.  If you
1371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better
1372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better
1373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler."
1374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $removelist
1376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
1377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Just move the object if needed
1380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$mv $output_obj $obj"
1382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if $run $mv $output_obj $obj; then :
1383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  error=$?
1385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm $removelist
1386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $error
1387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Append the name of the non-PIC object the libtool object file.
1391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Only append if the libtool object file exists.
1392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -z "$run" && cat >> ${libobj}T <<EOF
1393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the non-PIC object.
1394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnon_pic_object='$objname'
1395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
1397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
1398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Append the name of the non-PIC object the libtool object file.
1399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Only append if the libtool object file exists.
1400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -z "$run" && cat >> ${libobj}T <<EOF
1401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the non-PIC object.
1402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnon_pic_object=none
1403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
1405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run $mv "${libobj}T" "${libobj}"
1408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Unlock the critical section if it was locked
1410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$need_locks" != no; then
1411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm "$lockfile"
1412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_SUCCESS
1415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
1416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool link mode
1418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  link | relink)
1419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: link"
1420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $host in
1421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # It is impossible to link a dll without this setting, and
1423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # we shouldn't force the makefile maintainer to figure out
1424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # which system we are compiling for in order to pass an extra
1425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # flag for every libtool invocation.
1426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # allow_undefined=no
1427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # FIXME: Unfortunately, there are problems with the above when trying
1429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # to make a dll which has undefined symbols, in which case not
1430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # even a static library is built.  For now, we need to specify
1431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -no-undefined on the libtool link line when we can be certain
1432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # that all symbols are satisfied, otherwise we get a static library.
1433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      allow_undefined=yes
1434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
1436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      allow_undefined=yes
1437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
1439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libtool_args="$nonopt"
1440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    base_compile="$nonopt $@"
1441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    compile_command="$nonopt"
1442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    finalize_command="$nonopt"
1443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    compile_rpath=
1445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    finalize_rpath=
1446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    compile_shlibpath=
1447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    finalize_shlibpath=
1448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    convenience=
1449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    old_convenience=
1450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    deplibs=
1451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    old_deplibs=
1452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    compiler_flags=
1453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    linker_flags=
1454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dllsearchpath=
1455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lib_search_path=`pwd`
1456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    inst_prefix_dir=
1457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    avoid_version=no
1459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dlfiles=
1460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dlprefiles=
1461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dlself=no
1462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    export_dynamic=no
1463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    export_symbols=
1464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    export_symbols_regex=
1465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    generated=
1466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libobjs=
1467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ltlibs=
1468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    module=no
1469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    no_install=no
1470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    objs=
1471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    non_pic_objects=
1472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    notinst_path= # paths that contain not-installed libtool libraries
1473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    precious_files_regex=
1474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prefer_static_libs=no
1475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preload=no
1476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=
1477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prevarg=
1478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    release=
1479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    rpath=
1480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    xrpath=
1481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    perm_rpath=
1482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    temp_rpath=
1483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    thread_safe=no
1484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    vinfo=
1485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    vinfo_number=no
1486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    func_infer_tag $base_compile
1488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # We need to know -static, to get the right output filenames.
1490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg
1491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
1492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
1493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -all-static | -static)
1494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$arg" = "X-all-static"; then
1495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$link_static_flag"; then
1499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlopen_self=$dlopen_self_static
1500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prefer_static_libs=yes
1502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlopen_self=$dlopen_self_static
1505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prefer_static_libs=built
1507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	build_libtool_libs=no
1509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	build_old_libs=yes
1510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	break
1511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
1513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
1514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # See if our shared archives depend on static archives.
1516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Go through the arguments, transforming them on the way.
1519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    while test "$#" -gt 0; do
1520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg="$1"
1521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      shift
1522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
1523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *) qarg=$arg ;;
1527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
1528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      libtool_args="$libtool_args $qarg"
1529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # If the previous option needs an argument, assign it.
1531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$prev"; then
1532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $prev in
1533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	output)
1534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command @OUTPUT@"
1535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command @OUTPUT@"
1536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $prev in
1540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlfiles|dlprefiles)
1541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$preload" = no; then
1542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Add the symbol object into the linking commands.
1543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_command="$compile_command @SYMFILE@"
1544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_command="$finalize_command @SYMFILE@"
1545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    preload=yes
1546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $arg in
1548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.la | *.lo) ;;  # We handle these cases below.
1549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  force)
1550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$dlself" = no; then
1551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlself=needless
1552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      export_dynamic=yes
1553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    prev=
1555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  self)
1558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$prev" = dlprefiles; then
1559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlself=yes
1560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlself=yes
1562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
1563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlself=needless
1564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      export_dynamic=yes
1565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    prev=
1567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
1570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$prev" = dlfiles; then
1571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlfiles="$dlfiles $arg"
1572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
1573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlprefiles="$dlprefiles $arg"
1574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    prev=
1576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	expsyms)
1581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  export_symbols="$arg"
1582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test ! -f "$arg"; then
1583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: symbol file \`$arg' does not exist"
1584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	expsyms_regex)
1590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  export_symbols_regex="$arg"
1591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	inst_prefix)
1595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  inst_prefix_dir="$arg"
1596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	precious_regex)
1600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  precious_files_regex="$arg"
1601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	release)
1605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  release="-$arg"
1606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	objectlist)
1610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -f "$arg"; then
1611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    save_arg=$arg
1612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    moreargs=
1613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for fil in `cat $save_arg`
1614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    do
1615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#	      moreargs="$moreargs $fil"
1616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      arg=$fil
1617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # A libtool-controlled object.
1618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Check to see that this really is a libtool object.
1620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		pic_object=
1622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		non_pic_object=
1623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Read the .lo file
1625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# If there is no directory component, then add one.
1626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $arg in
1627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*/* | *\\*) . $arg ;;
1628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) . ./$arg ;;
1629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
1630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$pic_object" || \
1632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   test -z "$non_pic_object" ||
1633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   test "$pic_object" = none && \
1634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   test "$non_pic_object" = none; then
1635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit $EXIT_FAILURE
1637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Extract subdirectory from the argument.
1640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "X$xdir" = "X$arg"; then
1642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  xdir=
1643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
1644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  xdir="$xdir/"
1645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$pic_object" != none; then
1648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Prepend the subdirectory the object is found in.
1649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  pic_object="$xdir$pic_object"
1650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "$prev" = dlfiles; then
1652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      dlfiles="$dlfiles $pic_object"
1654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      prev=
1655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      continue
1656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    else
1657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # If libtool objects are unsupported, then we need to preload.
1658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      prev=dlprefiles
1659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
1660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
1661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # CHECK ME:  I think I busted this.  -Ossama
1663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "$prev" = dlprefiles; then
1664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    # Preload the old-style object.
1665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    dlprefiles="$dlprefiles $pic_object"
1666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    prev=
1667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
1668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # A PIC object.
1670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  libobjs="$libobjs $pic_object"
1671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  arg="$pic_object"
1672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Non-PIC object.
1675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$non_pic_object" != none; then
1676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Prepend the subdirectory the object is found in.
1677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_object="$xdir$non_pic_object"
1678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # A standard non-PIC object
1680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_objects="$non_pic_objects $non_pic_object"
1681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -z "$pic_object" || test "$pic_object" = none ; then
1682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    arg="$non_pic_object"
1683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
1684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
1685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # If the PIC object exists, use it instead.
1686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # $xdir was prepended to $pic_object above.
1687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_object="$pic_object"
1688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_objects="$non_pic_objects $non_pic_object"
1689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
1691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Only an error if not doing a dry-run.
1692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$run"; then
1693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit $EXIT_FAILURE
1695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
1696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Dry-run case.
1697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Extract subdirectory from the argument.
1699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "X$xdir" = "X$arg"; then
1701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    xdir=
1702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  else
1703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    xdir="$xdir/"
1704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
1705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  libobjs="$libobjs $pic_object"
1709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_objects="$non_pic_objects $non_pic_object"
1710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
1712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
1713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
1714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: link input file \`$save_arg' does not exist"
1715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg=$save_arg
1718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	rpath | xrpath)
1722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # We need an absolute path.
1723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $arg in
1724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
1726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$prev" = rpath; then
1731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$rpath " in
1732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $arg "*) ;;
1733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) rpath="$rpath $arg" ;;
1734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
1735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
1736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$xrpath " in
1737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $arg "*) ;;
1738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) xrpath="$xrpath $arg" ;;
1739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
1740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	xcompiler)
1745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $qarg"
1746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $qarg"
1748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $qarg"
1749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	xlinker)
1752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linker_flags="$linker_flags $qarg"
1753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $wl$qarg"
1754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $wl$qarg"
1756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $wl$qarg"
1757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	xcclinker)
1760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linker_flags="$linker_flags $qarg"
1761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $qarg"
1762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $qarg"
1764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $qarg"
1765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	shrext)
1768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  	  shrext_cmds="$arg"
1769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	darwin_framework|darwin_framework_skip)
1773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $arg"
1775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $arg"
1776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
1780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval "$prev=\"\$arg\""
1781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi # test -n "$prev"
1786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      prevarg="$arg"
1788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
1790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -all-static)
1791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$link_static_flag"; then
1792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $link_static_flag"
1793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $link_static_flag"
1794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -allow-undefined)
1799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# FIXME: remove this flag sometime in the future.
1800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -avoid-version)
1805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	avoid_version=yes
1806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -dlopen)
1810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=dlfiles
1811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -dlpreopen)
1815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=dlprefiles
1816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -export-dynamic)
1820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	export_dynamic=yes
1821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -export-symbols | -export-symbols-regex)
1825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
1828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$arg" = "X-export-symbols"; then
1830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=expsyms
1831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=expsyms_regex
1833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -framework|-arch|-isysroot)
1838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $CC " in
1839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		prev=darwin_framework_skip ;;
1841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) compiler_flags="$compiler_flags $arg"
1842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     prev=darwin_framework ;;
1843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$compile_command $arg"
1845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$finalize_command $arg"
1846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -inst-prefix-dir)
1850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=inst_prefix
1851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # so, if we see these flags be careful not to treat them like -L
1856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -L[A-Z][A-Z]*:*)
1857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $with_gcc/$host in
1858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	no/*-*-irix* | /*-*-irix*)
1859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $arg"
1860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $arg"
1861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -L*)
1867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We need an absolute path.
1869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $dir in
1870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) ;;
1871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
1872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  absdir=`cd "$dir" && pwd`
1873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$absdir"; then
1874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$dir"
1876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    notinst_path="$notinst_path $dir"
1877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dir="$absdir"
1879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case "$deplibs " in
1882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" -L$dir "*) ;;
1883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
1884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$deplibs -L$dir"
1885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib_search_path="$lib_search_path $dir"
1886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
1889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case :$dllsearchpath: in
1892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *":$dir:"*) ;;
1893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) dllsearchpath="$dllsearchpath:$dir";;
1894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case :$dllsearchpath: in
1896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *":$testbindir:"*) ;;
1897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -l*)
1905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $host in
1907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # These systems don't actually have a C or math library (as such)
1909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-os2*)
1912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # These systems don't actually have a C library (as such)
1913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "X$arg" = "X-lc" && continue
1914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Do not include libc due to us having libc/libc_r.
1917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "X$arg" = "X-lc" && continue
1918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-rhapsody* | *-*-darwin1.[012])
1920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Rhapsody C and math libraries are in the System framework
1921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplibs -framework System"
1922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-sco3.2v5* | *-*-sco5v6*)
1925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Causes problems with __ctype
1926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "X$arg" = "X-lc" && continue
1927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Compiler inserts libc in the correct place for threads to work
1930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "X$arg" = "X-lc" && continue
1931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test "X$arg" = "X-lc_r"; then
1934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 case $host in
1935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   # Do not include libc_r directly, use -pthread flag.
1937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   continue
1938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   ;;
1939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 esac
1940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs="$deplibs $arg"
1942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # classes, name mangling, and exception handling.
1947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -model)
1948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$compile_command $arg"
1949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compiler_flags="$compiler_flags $arg"
1950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$finalize_command $arg"
1951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xcompiler
1952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compiler_flags="$compiler_flags $arg"
1957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$compile_command $arg"
1958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$finalize_command $arg"
1959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -module)
1963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	module=yes
1964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # +DA*, +DD* enable 64-bit mode on the HP compiler
1971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -q* pass through compiler args for the IBM compiler
1972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -m* pass through architecture-specific compiler args for GCC
1973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -m*, -t[45]*, -txscale* pass through architecture-specific
1974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # compiler args for GCC
1975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -pg pass through profiling flag for GCC
1976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # @file GCC response files
1977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -t[45]*|-txscale*|@*)
1979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Unknown arguments in both finalize_command and compile_command need
1981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to be aesthetically quoted because they are evaled later.
1982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
1984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="\"$arg\""
1986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        compile_command="$compile_command $arg"
1989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        finalize_command="$finalize_command $arg"
1990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        compiler_flags="$compiler_flags $arg"
1991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        continue
1992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        ;;
1993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -shrext)
1995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=shrext
1996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -no-fast-install)
2000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fast_install=no
2001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -no-install)
2005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
2006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
2007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # The PATH hackery in wrapper scripts is required on Windows
2008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # in order for the loader to find any dlls it needs.
2009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
2010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
2011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fast_install=no
2012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) no_install=yes ;;
2014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -no-undefined)
2019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	allow_undefined=no
2020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -objectlist)
2024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=objectlist
2025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -o) prev=output ;;
2029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -precious-files-regex)
2031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=precious_regex
2032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -release)
2036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=release
2037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -rpath)
2041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=rpath
2042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -R)
2046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xrpath
2047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -R*)
2051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
2052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We need an absolute path.
2053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $dir in
2054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) ;;
2055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
2056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: only absolute run-paths are allowed" 1>&2
2057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
2058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case "$xrpath " in
2061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $dir "*) ;;
2062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) xrpath="$xrpath $dir" ;;
2063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -static)
2068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# The effects of -static are defined in a previous loop.
2069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We used to do the same as -all-static on platforms that
2070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# didn't have a PIC flag, but the assumption that the effects
2071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# would be equivalent was wrong.  It would break on at least
2072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Digital Unix and AIX.
2073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -thread-safe)
2077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	thread_safe=yes
2078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -version-info)
2082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=vinfo
2083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -version-number)
2086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=vinfo
2087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	vinfo_number=yes
2088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -Wc,*)
2092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
2093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=
2094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS=','
2095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for flag in $args; do
2096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
2097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $flag in
2098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    flag="\"$flag\""
2100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
2102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="$arg $wl$flag"
2103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $flag"
2104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
2106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
2107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -Wl,*)
2110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
2111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=
2112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS=','
2113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for flag in $args; do
2114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
2115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $flag in
2116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    flag="\"$flag\""
2118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
2120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="$arg $wl$flag"
2121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $wl$flag"
2122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linker_flags="$linker_flags $flag"
2123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
2125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
2126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -Xcompiler)
2129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xcompiler
2130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -Xlinker)
2134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xlinker
2135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -XCClinker)
2139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xcclinker
2140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Some other compiler flag.
2144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -* | +*)
2145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Unknown arguments in both finalize_command and compile_command need
2146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to be aesthetically quoted because they are evaled later.
2147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
2149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="\"$arg\""
2151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.$objext)
2156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# A standard object.
2157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	objs="$objs $arg"
2158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
2161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# A libtool-controlled object.
2162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see that this really is a libtool object.
2164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  pic_object=
2166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  non_pic_object=
2167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Read the .lo file
2169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # If there is no directory component, then add one.
2170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $arg in
2171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  */* | *\\*) . $arg ;;
2172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) . ./$arg ;;
2173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
2174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$pic_object" || \
2176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test -z "$non_pic_object" ||
2177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$pic_object" = none && \
2178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$non_pic_object" = none; then
2179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
2180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Extract subdirectory from the argument.
2184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
2185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "X$xdir" = "X$arg"; then
2186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    xdir=
2187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 	  else
2188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    xdir="$xdir/"
2189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$pic_object" != none; then
2192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Prepend the subdirectory the object is found in.
2193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    pic_object="$xdir$pic_object"
2194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$prev" = dlfiles; then
2196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
2197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		dlfiles="$dlfiles $pic_object"
2198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		prev=
2199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		continue
2200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
2201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# If libtool objects are unsupported, then we need to preload.
2202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		prev=dlprefiles
2203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # CHECK ME:  I think I busted this.  -Ossama
2207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$prev" = dlprefiles; then
2208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Preload the old-style object.
2209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlprefiles="$dlprefiles $pic_object"
2210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      prev=
2211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # A PIC object.
2214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libobjs="$libobjs $pic_object"
2215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    arg="$pic_object"
2216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Non-PIC object.
2219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$non_pic_object" != none; then
2220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Prepend the subdirectory the object is found in.
2221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_object="$xdir$non_pic_object"
2222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # A standard non-PIC object
2224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_objects="$non_pic_objects $non_pic_object"
2225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$pic_object" || test "$pic_object" = none ; then
2226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      arg="$non_pic_object"
2227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If the PIC object exists, use it instead.
2230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # $xdir was prepended to $pic_object above.
2231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_object="$pic_object"
2232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_objects="$non_pic_objects $non_pic_object"
2233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Only an error if not doing a dry-run.
2236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$run"; then
2237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
2238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Dry-run case.
2241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Extract subdirectory from the argument.
2243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
2244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$xdir" = "X$arg"; then
2245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      xdir=
2246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      xdir="$xdir/"
2248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
2251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
2252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libobjs="$libobjs $pic_object"
2253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_objects="$non_pic_objects $non_pic_object"
2254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.$libext)
2259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# An archive.
2260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs="$deplibs $arg"
2261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	old_deplibs="$old_deplibs $arg"
2262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.la)
2266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# A libtool-controlled library.
2267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$prev" = dlfiles; then
2269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This library was specified with -dlopen.
2270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlfiles="$dlfiles $arg"
2271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
2272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test "$prev" = dlprefiles; then
2273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # The library was specified with -dlpreopen.
2274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlprefiles="$dlprefiles $arg"
2275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
2276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$deplibs $arg"
2278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
2280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Some other compiler argument.
2283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
2284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Unknown arguments in both finalize_command and compile_command need
2285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to be aesthetically quoted because they are evaled later.
2286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
2288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="\"$arg\""
2290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac # arg
2294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now actually substitute the argument into the commands.
2296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$arg"; then
2297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$compile_command $arg"
2298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$finalize_command $arg"
2299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done # argument parsing loop
2301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$prev"; then
2303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
2304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
2305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
2306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
2307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
2309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval arg=\"$export_dynamic_flag_spec\"
2310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_command="$compile_command $arg"
2311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finalize_command="$finalize_command $arg"
2312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
2313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    oldlibs=
2315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # calculate the name of the file, without its directory
2316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libobjs_save="$libobjs"
2318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$shlibpath_var"; then
2320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # get the directories listed in $shlibpath_var
2321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
2323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      shlib_search_path=
2324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
2325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "X$output_objdir" = "X$output"; then
2330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output_objdir="$objdir"
2331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
2332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output_objdir="$output_objdir/$objdir"
2333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
2334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Create the object directory.
2335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test ! -d "$output_objdir"; then
2336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$mkdir $output_objdir"
2337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $mkdir $output_objdir
2338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit_status=$?
2339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
2340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $exit_status
2341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
2343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Determine the type of output
2345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $output in
2346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    "")
2347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify an output file" 1>&2
2348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
2349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
2350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
2351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.$libext) linkmode=oldlib ;;
2352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.lo | *.$objext) linkmode=obj ;;
2353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.la) linkmode=lib ;;
2354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *) linkmode=prog ;; # Anything else should be a program.
2355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
2356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $host in
2358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *cygwin* | *mingw* | *pw32*)
2359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # don't eliminate duplications in $postdeps and $predeps
2360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      duplicate_compiler_generated_deps=yes
2361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
2362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
2363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      duplicate_compiler_generated_deps=$duplicate_deps
2364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
2365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
2366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    specialdeplibs=
2367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libs=
2369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Find all interdependent deplibs by searching for libraries
2370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # that are linked more than once (e.g. -la -lb -la)
2371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for deplib in $deplibs; do
2372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "X$duplicate_deps" = "Xyes" ; then
2373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case "$libs " in
2374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      libs="$libs $deplib"
2378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
2379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$linkmode" = lib; then
2381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Compute libraries that are listed more than once in $predeps
2384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # $postdeps and mark them as special (i.e., whose duplicates are
2385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # not to be eliminated).
2386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      pre_post_deps=
2387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for pre_post_dep in $predeps $postdeps; do
2389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$pre_post_deps " in
2390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
2392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  pre_post_deps="$pre_post_deps $pre_post_dep"
2393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      pre_post_deps=
2396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
2397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    deplibs=
2399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    newdependency_libs=
2400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    newlib_search_path=
2401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    need_relink=no # whether we're linking any uninstalled libtool libraries
2402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    notinst_deplibs= # not-installed libtool libraries
2403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $linkmode in
2404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lib)
2405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	passes="conv link"
2406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for file in $dlfiles $dlprefiles; do
2407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $file in
2408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.la) ;;
2409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
2410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
2414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prog)
2417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_deplibs=
2418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_deplibs=
2419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	alldeplibs=no
2420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	newdlfiles=
2421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	newdlprefiles=
2422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	passes="conv scan dlopen dlpreopen link"
2423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)  passes="conv"
2425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
2427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for pass in $passes; do
2428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$linkmode,$pass" = "lib,link" ||
2429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test "$linkmode,$pass" = "prog,scan"; then
2430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libs="$deplibs"
2431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs=
2432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$linkmode" = prog; then
2434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $pass in
2435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlopen) libs="$dlfiles" ;;
2436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlpreopen) libs="$dlprefiles" ;;
2437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link)
2438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  libs="$deplibs %DEPLIBS%"
2439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
2440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pass" = dlopen; then
2444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Collect dlpreopened libraries
2445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_deplibs="$deplibs"
2446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs=
2447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for deplib in $libs; do
2449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lib=
2450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	found=no
2451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $deplib in
2452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode,$pass" = "prog,link"; then
2454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_deplibs="$deplib $compile_deplibs"
2455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_deplibs="$deplib $finalize_deplibs"
2456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compiler_flags="$compiler_flags $deplib"
2458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-l*)
2462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for search_ext in .la $std_shrext .so .a; do
2469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Search the libtool library
2470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      lib="$searchdir/lib${name}${search_ext}"
2471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -f "$lib"; then
2472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$search_ext" = ".la"; then
2473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  found=yes
2474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
2475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  found=no
2476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
2477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		break 2
2478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
2480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
2481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$found" != yes; then
2482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # deplib doesn't seem to be a libtool library
2483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkmode,$pass" = "prog,link"; then
2484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      compile_deplibs="$deplib $compile_deplibs"
2485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize_deplibs="$deplib $finalize_deplibs"
2486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else # deplib is a libtool library
2492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We need to do some special things here, and not later.
2494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $predeps $postdeps " in
2496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*)
2497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if (${SED} -e '2q' $lib |
2498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  library_names=
2500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  old_library=
2501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  case $lib in
2502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  */* | *\\*) . $lib ;;
2503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *) . ./$lib ;;
2504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  esac
2505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  for l in $old_library $library_names; do
2506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ll="$l"
2507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  done
2508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "X$ll" = "X$old_library" ; then # only static version available
2509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    found=no
2510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    test "X$ladir" = "X$lib" && ladir="."
2512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    lib=$ladir/$old_library
2513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test "$linkmode,$pass" = "prog,link"; then
2514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      compile_deplibs="$deplib $compile_deplibs"
2515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      finalize_deplibs="$deplib $finalize_deplibs"
2516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    else
2517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      deplibs="$deplib $deplibs"
2518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
2520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    continue
2521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
2522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
2523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        ;;
2524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) ;;
2525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;; # -l
2529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-L*)
2530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $linkmode in
2531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib)
2532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplib $deplibs"
2533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "$pass" = conv && continue
2534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdependency_libs="$deplib $newdependency_libs"
2535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prog)
2538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$pass" = conv; then
2539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      continue
2541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$pass" = scan; then
2543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      compile_deplibs="$deplib $compile_deplibs"
2546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize_deplibs="$deplib $finalize_deplibs"
2547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
2551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac # linkmode
2554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;; # -L
2556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-R*)
2557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$pass" = link; then
2558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Make sure the xrpath contains only unique directories.
2560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$xrpath " in
2561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $dir "*) ;;
2562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) xrpath="$xrpath $dir" ;;
2563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$deplib $deplibs"
2566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.la) lib="$deplib" ;;
2569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.$libext)
2570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$pass" = conv; then
2571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplib $deplibs"
2572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $linkmode in
2575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib)
2576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    valid_a_lib=no
2577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $deplibs_check_method in
2578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      match_pattern*)
2579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		set dummy $deplibs_check_method
2580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if eval $echo \"$deplib\" 2>/dev/null \
2582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    | $SED 10q \
2583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    | $EGREP "$match_pattern_regex" > /dev/null; then
2584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  valid_a_lib=yes
2585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
2586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
2587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      pass_all)
2588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		valid_a_lib=yes
2589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
2590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            esac
2591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$valid_a_lib" != yes; then
2592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo
2593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** I have the capability to make that library automatically link in when"
2595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** you link to this library.  But I can only do this if you have a"
2596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** shared version of the library, which you do not appear to have"
2597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** that it is just a static archive that I should not used here."
2599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo
2601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: Linking the shared library $output against the"
2602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** static library $deplib is not portable!"
2603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prog)
2608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$pass" != link; then
2609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      compile_deplibs="$deplib $compile_deplibs"
2612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize_deplibs="$deplib $finalize_deplibs"
2613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac # linkmode
2617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;; # *.$libext
2618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.lo | *.$objext)
2619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$pass" = conv; then
2620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplib $deplibs"
2621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif test "$linkmode" = prog; then
2622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # If there is no dlopen support or we're linking statically,
2624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # we need to preload.
2625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlprefiles="$newdlprefiles $deplib"
2626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      compile_deplibs="$deplib $compile_deplibs"
2627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize_deplibs="$deplib $finalize_deplibs"
2628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlfiles="$newdlfiles $deplib"
2630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	%DEPLIBS%)
2635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  alldeplibs=yes
2636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac # case $deplib
2639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$found" = yes || test -f "$lib"; then :
2640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
2643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see that this really is a libtool archive.
2646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
2650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "X$ladir" = "X$lib" && ladir="."
2654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlname=
2656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlopen=
2657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlpreopen=
2658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libdir=
2659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	library_names=
2660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	old_library=
2661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the library was installed with an old release of libtool,
2662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# it will not redefine variables installed, or shouldnotlink
2663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	installed=yes
2664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	shouldnotlink=no
2665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	avoidtemprpath=
2666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Read the .la file
2669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $lib in
2670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*/* | *\\*) . $lib ;;
2671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) . ./$lib ;;
2672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode,$pass" = "lib,link" ||
2675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   test "$linkmode,$pass" = "prog,scan" ||
2676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$pass" = conv; then
2682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Only check for convenience libraries
2683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$lib $deplibs"
2684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$libdir"; then
2685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$old_library"; then
2686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      exit $EXIT_FAILURE
2688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # It is a libtool convenience library, so add in its objects.
2690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    convenience="$convenience $ladir/$objdir/$old_library"
2691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    tmp_libs=
2693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for deplib in $dependency_libs; do
2694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              if test "X$duplicate_deps" = "Xyes" ; then
2696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        case "$tmp_libs " in
2697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        esac
2699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              fi
2700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      tmp_libs="$tmp_libs $deplib"
2701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
2702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $pass = conv
2708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Get the name of the library we link against.
2711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	linklib=
2712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for l in $old_library $library_names; do
2713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linklib="$l"
2714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$linklib"; then
2716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
2718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# This library was specified with -dlopen.
2721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$pass" = dlopen; then
2722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$libdir"; then
2723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$dlname" ||
2727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$dlopen_support" != yes ||
2728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$build_libtool_libs" = no; then
2729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If there is no dlname, no dlopen support or we're linking
2730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # statically, we need to preload.  We also need to preload any
2731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # dependent libraries so libltdl's deplib preloader doesn't
2732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # bomb out in the load deplibs phase.
2733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlprefiles="$dlprefiles $lib $dependency_libs"
2734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlfiles="$newdlfiles $lib"
2736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $pass = dlopen
2739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We need an absolute path.
2741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $ladir in
2742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
2744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  abs_ladir=`cd "$ladir" && pwd`
2745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$abs_ladir"; then
2746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    abs_ladir="$ladir"
2749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Find the relevant object directory and library name.
2755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$installed" = Xyes; then
2756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir="$ladir"
2759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$abs_ladir"
2760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libdir="$abs_ladir"
2761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir="$libdir"
2763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$libdir"
2764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir="$ladir"
2769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$abs_ladir"
2770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Remove this search path later
2771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    notinst_path="$notinst_path $abs_ladir"
2772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir="$ladir/$objdir"
2774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$abs_ladir/$objdir"
2775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Remove this search path later
2776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    notinst_path="$notinst_path $abs_ladir"
2777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $installed = yes
2779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# This library was specified with -dlpreopen.
2782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$pass" = dlpreopen; then
2783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$libdir"; then
2784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # are required to link).
2789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$old_library"; then
2790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles="$newdlprefiles $dir/$old_library"
2791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif test -n "$dlname"; then
2793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles="$newdlprefiles $dir/$dlname"
2794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles="$newdlprefiles $dir/$linklib"
2796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $pass = dlpreopen
2798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$libdir"; then
2800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Link the convenience library
2801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" = lib; then
2802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$dir/$old_library $deplibs"
2803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif test "$linkmode,$pass" = "prog,link"; then
2804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_deplibs="$dir/$old_library $compile_deplibs"
2805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$lib $deplibs" # used for prog,scan pass
2808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode" = prog && test "$pass" != link; then
2814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newlib_search_path="$newlib_search_path $ladir"
2815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$lib $deplibs"
2816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linkalldeplibs=no
2818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$build_libtool_libs" = no; then
2820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    linkalldeplibs=yes
2821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_libs=
2824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for deplib in $dependency_libs; do
2825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $deplib in
2826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Need to link against all dependency_libs?
2829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkalldeplibs" = yes; then
2830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Need to hardcode shared library paths
2833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # or/and link against static libraries
2834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdependency_libs="$deplib $newdependency_libs"
2835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$duplicate_deps" = "Xyes" ; then
2837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$tmp_libs " in
2838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    tmp_libs="$tmp_libs $deplib"
2842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done # for deplib
2843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $linkmode = prog...
2845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode,$pass" = "prog,link"; then
2847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$library_names" &&
2848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We need to hardcode the library path
2850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Make sure the rpath contains only unique directories.
2852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$temp_rpath " in
2853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $dir "*) ;;
2854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $absdir "*) ;;
2855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) temp_rpath="$temp_rpath $absdir" ;;
2856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Hardcode the library path.
2860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Skip directories that are in the system default run-time
2861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # search path.
2862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $sys_lib_dlsearch_path " in
2863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $absdir "*) ;;
2864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$compile_rpath " in
2866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $absdir "*) ;;
2867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) compile_rpath="$compile_rpath $absdir"
2868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $sys_lib_dlsearch_path " in
2872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $libdir "*) ;;
2873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$finalize_rpath " in
2875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $libdir "*) ;;
2876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) finalize_rpath="$finalize_rpath $libdir"
2877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi # $linkmode,$pass = prog,link...
2881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$alldeplibs" = yes &&
2883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     { test "$deplibs_check_method" = pass_all ||
2884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       { test "$build_libtool_libs" = yes &&
2885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test -n "$library_names"; }; }; then
2886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We only need to search for static libraries
2887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_static=no # Whether the deplib will be linked statically
2892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	use_static_libs=$prefer_static_libs
2893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$use_static_libs" = built && test "$installed" = yes ; then
2894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  use_static_libs=no
2895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$library_names" &&
2897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$installed" = no; then
2899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    notinst_deplibs="$notinst_deplibs $lib"
2900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    need_relink=yes
2901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This is a shared library
2903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Warn about portability, can't link against -module's on
2905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # some systems (darwin)
2906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo
2908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkmode" = prog; then
2909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: Linking the executable $output against the loadable module"
2910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** $linklib is not portable!"
2914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" = lib &&
2916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$hardcode_into_libs" = yes; then
2917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Hardcode the library path.
2918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Skip directories that are in the system default run-time
2919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # search path.
2920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $sys_lib_dlsearch_path " in
2921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $absdir "*) ;;
2922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$compile_rpath " in
2924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $absdir "*) ;;
2925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) compile_rpath="$compile_rpath $absdir"
2926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $sys_lib_dlsearch_path " in
2930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $libdir "*) ;;
2931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$finalize_rpath " in
2933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $libdir "*) ;;
2934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) finalize_rpath="$finalize_rpath $libdir"
2935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$old_archive_from_expsyms_cmds"; then
2941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # figure out the soname
2942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    set dummy $library_names
2943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    realname="$2"
2944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    shift; shift
2945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libname=`eval \\$echo \"$libname_spec\"`
2946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # use dlname if we got it. it's perfectly good, no?
2947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$dlname"; then
2948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      soname="$dlname"
2949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test -n "$soname_spec"; then
2950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # bleh windows
2951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $host in
2952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *cygwin* | mingw*)
2953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		major=`expr $current - $age`
2954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		versuffix="-$major"
2955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
2956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval soname=\"$soname_spec\"
2958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      soname="$realname"
2960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Make a new name for the extract_expsyms_cmds to use
2963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    soroot="$soname"
2964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If the library has no export list, then create one now
2968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -f "$output_objdir/$soname-def"; then :
2969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "extracting exported symbol list from \`$soname'"
2971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      save_ifs="$IFS"; IFS='~'
2972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$extract_expsyms_cmds
2973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      for cmd in $cmds; do
2974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		IFS="$save_ifs"
2975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval cmd=\"$cmd\"
2976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$show "$cmd"
2977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval "$cmd" || exit $?
2978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
2979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
2980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Create $newlib
2983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -f "$output_objdir/$newlib"; then :; else
2984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "generating import library for \`$soname'"
2985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      save_ifs="$IFS"; IFS='~'
2986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$old_archive_from_expsyms_cmds
2987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      for cmd in $cmds; do
2988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		IFS="$save_ifs"
2989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval cmd=\"$cmd\"
2990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$show "$cmd"
2991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval "$cmd" || exit $?
2992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
2993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
2994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # make sure the library variables are pointing to the new library
2996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir=$output_objdir
2997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    linklib=$newlib
2998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi # test -n "$old_archive_from_expsyms_cmds"
2999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" = prog || test "$mode" != relink; then
3001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add_shlibpath=
3002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add_dir=
3003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add=
3004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    lib_linked=yes
3005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $hardcode_action in
3006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    immediate | unsupported)
3007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$hardcode_direct" = no; then
3008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="$dir/$linklib"
3009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $host in
3010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
3011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
3012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
3013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    *-*-unixware7*) add_dir="-L$dir" ;;
3014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *-*-darwin* )
3015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    # if the lib is a module then we can not link against
3016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    # it, someone is ignoring the new warnings I added
3017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if /usr/bin/file -L $add 2> /dev/null |
3018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                      $EGREP ": [^:]* bundle" >/dev/null ; then
3019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "** Warning, lib $linklib is a module, not a shared library"
3020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      if test -z "$old_library" ; then
3021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        $echo
3022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        $echo "** And there doesn't seem to be a static archive available"
3023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        $echo "** The link will probably fail, sorry"
3024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      else
3025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        add="$dir/$old_library"
3026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      fi
3027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
3028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      elif test "$hardcode_minus_L" = no; then
3030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $host in
3031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*-*-sunos*) add_shlibpath="$dir" ;;
3032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add_dir="-L$dir"
3034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="-l$name"
3035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      elif test "$hardcode_shlibpath_var" = no; then
3036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add_shlibpath="$dir"
3037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="-l$name"
3038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		lib_linked=no
3040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
3042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink)
3043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$hardcode_direct" = yes; then
3044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="$dir/$linklib"
3045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      elif test "$hardcode_minus_L" = yes; then
3046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add_dir="-L$dir"
3047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Try looking first in the location we're being installed to.
3048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -n "$inst_prefix_dir"; then
3049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  case $libdir in
3050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    [\\/]*)
3051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
3052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      ;;
3053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  esac
3054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="-l$name"
3056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      elif test "$hardcode_shlibpath_var" = yes; then
3057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add_shlibpath="$dir"
3058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="-l$name"
3059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		lib_linked=no
3061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
3063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) lib_linked=no ;;
3064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
3065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$lib_linked" != yes; then
3067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "$modename: configuration error: unsupported hardcode properties"
3068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      exit $EXIT_FAILURE
3069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$add_shlibpath"; then
3072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case :$compile_shlibpath: in
3073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *":$add_shlibpath:"*) ;;
3074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
3075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkmode" = prog; then
3078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
3079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
3080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
3081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
3082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add" && deplibs="$add $deplibs"
3083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$hardcode_direct" != yes && \
3084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test "$hardcode_minus_L" != yes && \
3085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test "$hardcode_shlibpath_var" = yes; then
3086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case :$finalize_shlibpath: in
3087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*":$libdir:"*) ;;
3088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
3089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" = prog || test "$mode" = relink; then
3095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add_shlibpath=
3096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add_dir=
3097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add=
3098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Finalize command for both is simple: just hardcode it.
3099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$hardcode_direct" = yes; then
3100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add="$libdir/$linklib"
3101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test "$hardcode_minus_L" = yes; then
3102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add_dir="-L$libdir"
3103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add="-l$name"
3104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test "$hardcode_shlibpath_var" = yes; then
3105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case :$finalize_shlibpath: in
3106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *":$libdir:"*) ;;
3107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
3108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add="-l$name"
3110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test "$hardcode_automatic" = yes; then
3111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$inst_prefix_dir" &&
3112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
3113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        add="$inst_prefix_dir$libdir/$linklib"
3114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        add="$libdir/$linklib"
3116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
3118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # We cannot seem to hardcode it, guess we'll fake it.
3119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add_dir="-L$libdir"
3120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Try looking first in the location we're being installed to.
3121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$inst_prefix_dir"; then
3122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $libdir in
3123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  [\\/]*)
3124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
3125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ;;
3126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add="-l$name"
3129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkmode" = prog; then
3132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
3133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
3134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
3135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
3136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add" && deplibs="$add $deplibs"
3137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test "$linkmode" = prog; then
3140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Here we assume that one of hardcode_direct or hardcode_minus_L
3141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # is not unsupported.  This is valid on all known static and
3142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # shared platforms.
3143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$hardcode_direct" != unsupported; then
3144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test -n "$old_library" && linklib="$old_library"
3145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_deplibs="$dir/$linklib $compile_deplibs"
3146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
3147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
3148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_deplibs="-l$name -L$dir $compile_deplibs"
3149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
3150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test "$build_libtool_libs" = yes; then
3152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Not a shared library
3153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$deplibs_check_method" != pass_all; then
3154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We're trying link a shared library against a static one
3155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # but the system doesn't support it.
3156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Just print a warning and add the library to dependency_libs so
3158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # that the program can be linked against the static library.
3159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo
3160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** Warning: This system can not link to static lib archive $lib."
3161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** I have the capability to make that library automatically link in when"
3162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** you link to this library.  But I can only do this if you have a"
3163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** shared version of the library, which you do not appear to have."
3164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$module" = yes; then
3165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** But as you try to build a module library, libtool will still create "
3166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** a static module, that should work as long as the dlopening application"
3167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
3168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -z "$global_symbol_pipe"; then
3169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo
3170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** However, this would only work if libtool was able to extract symbol"
3171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** not find such a program.  So, this module is probably useless."
3173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
3174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$build_old_libs" = no; then
3176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_libtool_libs=module
3177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_old_libs=yes
3178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_libtool_libs=no
3180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
3183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$dir/$old_library $deplibs"
3184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    link_static=yes
3185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # link shared/static library?
3187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode" = lib; then
3189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$dependency_libs" &&
3190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     { test "$hardcode_into_libs" != yes ||
3191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       test "$build_old_libs" = yes ||
3192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       test "$link_static" = yes; }; then
3193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Extract -R from dependency_libs
3194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    temp_deplibs=
3195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for libdir in $dependency_libs; do
3196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $libdir in
3197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
3198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   case " $xrpath " in
3199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   *" $temp_xrpath "*) ;;
3200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   *) xrpath="$xrpath $temp_xrpath";;
3201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   esac;;
3202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) temp_deplibs="$temp_deplibs $libdir";;
3203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dependency_libs="$temp_deplibs"
3206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newlib_search_path="$newlib_search_path $absdir"
3209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Link against this library
3210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
3211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # ... and its dependency_libs
3212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_libs=
3213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for deplib in $dependency_libs; do
3214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdependency_libs="$deplib $newdependency_libs"
3215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$duplicate_deps" = "Xyes" ; then
3216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$tmp_libs " in
3217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
3218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    tmp_libs="$tmp_libs $deplib"
3221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$link_all_deplibs" != no; then
3224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Add the search paths of all dependency libraries
3225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for deplib in $dependency_libs; do
3226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $deplib in
3227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      -L*) path="$deplib" ;;
3228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *.la)
3229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
3230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		test "X$dir" = "X$deplib" && dir="."
3231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# We need an absolute path.
3232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $dir in
3233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
3234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*)
3235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  absdir=`cd "$dir" && pwd`
3236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -z "$absdir"; then
3237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
3238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    absdir="$dir"
3239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
3241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if grep "^installed=no" $deplib > /dev/null; then
3243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path="$absdir/$objdir"
3244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
3245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -z "$libdir"; then
3247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    exit $EXIT_FAILURE
3249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "$absdir" != "$libdir"; then
3251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
3252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path="$absdir"
3254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		depdepl=
3256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $host in
3257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*-*-darwin*)
3258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # we do not want to link against static libs,
3259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # but need to link against shared
3260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
3261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -n "$deplibrary_names" ; then
3262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    for tmp in $deplibrary_names ; do
3263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      depdepl=$tmp
3264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    done
3265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test -f "$path/$depdepl" ; then
3266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      depdepl="$path/$depdepl"
3267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
3268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    # do not add paths which are already there
3269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    case " $newlib_search_path " in
3270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    *" $path "*) ;;
3271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    *) newlib_search_path="$newlib_search_path $path";;
3272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    esac
3273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path=""
3275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
3276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*)
3277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path="-L$path"
3278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
3279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
3281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      -l*)
3282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $host in
3283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*-*-darwin*)
3284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Again, we only want to link against shared libraries
3285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
3286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  for tmp in $newlib_search_path ; do
3287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
3288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      eval depdepl="$tmp/lib$tmp_libs.dylib"
3289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      break
3290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
3291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  done
3292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path=""
3293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
3294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) continue ;;
3295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
3297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) continue ;;
3298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $deplibs " in
3300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $path "*) ;;
3301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) deplibs="$path $deplibs" ;;
3302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $deplibs " in
3304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $depdepl "*) ;;
3305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) deplibs="$depdepl $deplibs" ;;
3306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi # link_all_deplibs != no
3309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # linkmode = lib
3310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done # for deplib in $libs
3311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dependency_libs="$newdependency_libs"
3312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pass" = dlpreopen; then
3313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Link the dlpreopened libraries before other libraries
3314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for deplib in $save_deplibs; do
3315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$deplib $deplibs"
3316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
3317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pass" != dlopen; then
3319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$pass" != conv; then
3320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Make sure lib_search_path contains only unique directories.
3321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib_search_path=
3322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for dir in $newlib_search_path; do
3323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$lib_search_path " in
3324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $dir "*) ;;
3325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) lib_search_path="$lib_search_path $dir" ;;
3326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
3327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newlib_search_path=
3329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode,$pass" != "prog,link"; then
3332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  vars="deplibs"
3333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
3334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  vars="compile_deplibs finalize_deplibs"
3335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for var in $vars dependency_libs; do
3337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add libraries to $var in reverse order
3338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval tmp_libs=\"\$$var\"
3339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  new_libs=
3340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for deplib in $tmp_libs; do
3341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # FIXME: Pedantically, this is the right thing to do, so
3342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    #        that some nasty dependency loop isn't accidentally
3343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    #        broken:
3344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    #new_libs="$deplib $new_libs"
3345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Pragmatically, this seems to cause very few problems in
3346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # practice:
3347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $deplib in
3348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -L*) new_libs="$deplib $new_libs" ;;
3349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -R*) ;;
3350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
3351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # And here is the reason: when a library appears more
3352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # than once as an explicit dependence of a library, or
3353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # is implicitly linked in more than once by the
3354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # compiler, it is considered special, and multiple
3355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # occurrences thereof are not removed.  Compare this
3356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # with having the same library being listed as a
3357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # dependency of multiple other libraries: in this case,
3358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # we know (pedantically, we assume) the library does not
3359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # need to be listed more than once, so we keep only the
3360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # last copy.  This is not always right, but it is rare
3361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # enough that we require users that really mean to play
3362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # such unportable linking tricks to link the library
3363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # using -Wl,-lname, so that libtool does not consider it
3364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # for duplicate removal.
3365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $specialdeplibs " in
3366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *)
3368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $new_libs " in
3369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*" $deplib "*) ;;
3370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) new_libs="$deplib $new_libs" ;;
3371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
3373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
3375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
3376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_libs=
3378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for deplib in $new_libs; do
3379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $deplib in
3380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -L*)
3381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $tmp_libs " in
3382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*) ;;
3383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) tmp_libs="$tmp_libs $deplib" ;;
3384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
3386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) tmp_libs="$tmp_libs $deplib" ;;
3387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
3388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval $var=\"$tmp_libs\"
3390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done # for var
3391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Last step: remove runtime libs from dependency_libs
3393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # (they stay in deplibs)
3394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      tmp_libs=
3395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for i in $dependency_libs ; do
3396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $predeps $postdeps $compiler_lib_search_path " in
3397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $i "*)
3398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  i=""
3399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$i" ; then
3402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_libs="$tmp_libs $i"
3403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dependency_libs=$tmp_libs
3406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done # for pass
3407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$linkmode" = prog; then
3408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlfiles="$newdlfiles"
3409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlprefiles="$newdlprefiles"
3410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
3411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $linkmode in
3413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    oldlib)
3414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$deplibs"; then
3415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$rpath"; then
3423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$xrpath"; then
3427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$vinfo"; then
3431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$release"; then
3435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now set the variables for building old libraries.
3443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      build_libtool_libs=no
3444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      oldlibs="$output"
3445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      objs="$objs$old_deplibs"
3446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
3447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lib)
3449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Make sure we only generate libraries of the form `libNAME.la'.
3450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $outputname in
3451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      lib*)
3452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval shared_ext=\"$shrext_cmds\"
3454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval libname=\"$libname_spec\"
3455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
3456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
3457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$module" = no; then
3458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
3460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$need_lib_prefix" != no; then
3463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add the "lib" prefix for modules if required
3464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval shared_ext=\"$shrext_cmds\"
3466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval libname=\"$libname_spec\"
3467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
3468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
3471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
3472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$objs"; then
3474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$deplibs_check_method" != pass_all; then
3475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
3478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo
3479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "*** objects $objs is not portable!"
3481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  libobjs="$libobjs $objs"
3482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$dlself" != no; then
3486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      set dummy $rpath
3490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$#" -gt 2; then
3491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install_libdir="$2"
3494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      oldlibs=
3496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$rpath"; then
3497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$build_libtool_libs" = yes; then
3498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Building a libtool convenience library.
3499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Some compilers have problems with a `.al' extension so
3500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # convenience libraries should have the same extension an
3501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # archive normally would.
3502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  build_libtool_libs=convenience
3504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  build_old_libs=yes
3505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$vinfo"; then
3508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$release"; then
3512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
3515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Parse the version information argument.
3517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS=':'
3518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	set dummy $vinfo 0 0 0
3519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
3520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$8"; then
3522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
3524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# convert absolute version numbers to libtool ages
3528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# this retains compatibility with .la files and attempts
3529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to make the code below a bit more comprehensible
3530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $vinfo_number in
3532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	yes)
3533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  number_major="$2"
3534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  number_minor="$3"
3535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  number_revision="$4"
3536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
3537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # There are really only two kinds -- those that
3538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # use the current revision as the major version
3539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # and those that subtract age and use age as
3540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # a minor version.  But, then there is irix
3541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # which has an extra 1 added just for fun
3542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
3543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $version_type in
3544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin|linux|osf|windows)
3545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    current=`expr $number_major + $number_minor`
3546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    age="$number_minor"
3547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    revision="$number_revision"
3548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  freebsd-aout|freebsd-elf|sunos)
3550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    current="$number_major"
3551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    revision="$number_minor"
3552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    age="0"
3553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  irix|nonstopux)
3555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    current=`expr $number_major + $number_minor - 1`
3556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    age="$number_minor"
3557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    revision="$number_minor"
3558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
3560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: unknown library version type \`$version_type'" 1>&2
3561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
3563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	no)
3567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  current="$2"
3568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  revision="$3"
3569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  age="$4"
3570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check that each of the things are valid numbers.
3574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $current in
3575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	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]) ;;
3576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $revision in
3584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	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]) ;;
3585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $age in
3593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	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]) ;;
3594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$age" -gt "$current"; then
3602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Calculate the version variables.
3608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	major=
3609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	versuffix=
3610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	verstring=
3611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $version_type in
3612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	none) ;;
3613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	darwin)
3615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Like Linux, but with the current version available in
3616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # verstring for coding it into the library header
3617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=.`expr $current - $age`
3618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix="$major.$age.$revision"
3619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Darwin ld doesn't like 0 for these options...
3620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  minor_current=`expr $current + 1`
3621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	freebsd-aout)
3625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=".$current"
3626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=".$current.$revision";
3627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	freebsd-elf)
3630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=".$current"
3631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=".$current";
3632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	irix | nonstopux)
3635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=`expr $current - $age + 1`
3636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $version_type in
3638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    nonstopux) verstring_prefix=nonstopux ;;
3639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)         verstring_prefix=sgi ;;
3640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring="$verstring_prefix$major.$revision"
3642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add in all the interfaces that we are compatible with.
3644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  loop=$revision
3645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  while test "$loop" -ne 0; do
3646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    iface=`expr $revision - $loop`
3647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    loop=`expr $loop - 1`
3648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    verstring="$verstring_prefix$major.$iface:$verstring"
3649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Before this point, $major must not contain `.'.
3652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=.$major
3653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix="$major.$revision"
3654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	linux)
3657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=.`expr $current - $age`
3658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix="$major.$age.$revision"
3659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	osf)
3662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=.`expr $current - $age`
3663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=".$current.$age.$revision"
3664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring="$current.$age.$revision"
3665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add in all the interfaces that we are compatible with.
3667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  loop=$age
3668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  while test "$loop" -ne 0; do
3669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    iface=`expr $current - $loop`
3670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    loop=`expr $loop - 1`
3671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    verstring="$verstring:${iface}.0"
3672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Make executables depend on our current version.
3675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring="$verstring:${current}.0"
3676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	sunos)
3679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=".$current"
3680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=".$current.$revision"
3681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	windows)
3684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Use '-' rather than '.', since we only want one
3685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # extension on DOS 8.3 filesystems.
3686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=`expr $current - $age`
3687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix="-$major"
3688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Clear the version info if we defaulted, and they specified a release.
3698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$vinfo" && test -n "$release"; then
3699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=
3700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $version_type in
3701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin)
3702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # we can't check for "0.0" in archive_cmds due to quoting
3703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # problems, so we reset it completely
3704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    verstring=
3705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
3707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    verstring="0.0"
3708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$need_version" = no; then
3711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    versuffix=
3712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
3713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    versuffix=".0.0"
3714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Remove version info from name if versioning should be avoided
3718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$avoid_version" = yes && test "$need_version" = no; then
3719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=
3720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=
3721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring=""
3722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see if the archive will have undefined symbols.
3725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$allow_undefined" = yes; then
3726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$allow_undefined_flag" = unsupported; then
3727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    build_libtool_libs=no
3729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    build_old_libs=yes
3730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
3732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Don't allow undefined symbols.
3733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  allow_undefined_flag="$no_undefined_flag"
3734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$mode" != relink; then
3738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Remove our outputs, but don't remove object files since they
3739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# may have been created when compiling PIC objects.
3740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	removelist=
3741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	tempremovelist=`$echo "$output_objdir/*"`
3742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for p in $tempremovelist; do
3743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $p in
3744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *.$objext)
3745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       ;;
3746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       if test "X$precious_files_regex" != "X"; then
3748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	         then
3750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   continue
3751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 fi
3752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       fi
3753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       removelist="$removelist $p"
3754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       ;;
3755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) ;;
3756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
3758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$removelist"; then
3759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "${rm}r $removelist"
3760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run ${rm}r $removelist
3761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now set the variables for building old libraries.
3765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Transform .lo files to .o files.
3769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Eliminate all temporary directories.
3773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for path in $notinst_path; do
3774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$xrpath"; then
3780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the user specified any rpath flags, then add them.
3781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	temp_xrpath=
3782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for libdir in $xrpath; do
3783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  temp_xrpath="$temp_xrpath -R$libdir"
3784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$finalize_rpath " in
3785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
3786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
3789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dependency_libs="$temp_xrpath $dependency_libs"
3791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Make sure dlfiles contains only unique files that won't be dlpreopened
3795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      old_dlfiles="$dlfiles"
3796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlfiles=
3797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for lib in $old_dlfiles; do
3798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $dlprefiles $dlfiles " in
3799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $lib "*) ;;
3800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) dlfiles="$dlfiles $lib" ;;
3801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Make sure dlprefiles contains only unique files
3805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      old_dlprefiles="$dlprefiles"
3806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlprefiles=
3807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for lib in $old_dlprefiles; do
3808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case "$dlprefiles " in
3809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $lib "*) ;;
3810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) dlprefiles="$dlprefiles $lib" ;;
3811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_libtool_libs" = yes; then
3815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$rpath"; then
3816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $host in
3817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # these systems don't actually have a c library (as such)!
3819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-rhapsody* | *-*-darwin1.[012])
3821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Rhapsody C library is in the System framework
3822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplibs -framework System"
3823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-netbsd*)
3825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Don't link with libc until the a.out ld.so is fixed.
3826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Do not include libc due to us having libc/libc_r.
3829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-sco3.2v5* | *-*-sco5v6*)
3831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Causes problems with __ctype
3832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Compiler inserts libc in the correct place for threads to work
3835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 	  *)
3837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Add libc to deplibs on all other systems if necessary.
3838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$build_libtool_need_lc" = "yes"; then
3839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplibs -lc"
3840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Transform deplibs into only deplibs that can be linked in shared.
3846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name_save=$name
3847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libname_save=$libname
3848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	release_save=$release
3849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	versuffix_save=$versuffix
3850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	major_save=$major
3851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# I'm not sure if I'm treating the release correctly.  I think
3852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# release should show up in the -l (ie -lgmp5) so we don't want to
3853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# add it in twice.  Is that correct?
3854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	release=""
3855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	versuffix=""
3856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	major=""
3857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	newdeplibs=
3858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	droppeddeps=no
3859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $deplibs_check_method in
3860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	pass_all)
3861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Don't check for shared/static.  Everything works.
3862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This might be a little naive.  We might want to check
3863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # whether the library exists or not.  But this is on
3864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # osf3 & osf4 and I'm not really sure... Just
3865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # implementing what was already the behavior.
3866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newdeplibs=$deplibs
3867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test_compile)
3869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This code stresses the "libraries are programs" paradigm to its
3870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # limits. Maybe even breaks it.  We compile a program, linking it
3871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # against the deplibs as a proxy for the library.  Then we can check
3872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # whether they linked in statically or dynamically with ldd.
3873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $rm conftest.c
3874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cat > conftest.c <<EOF
3875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  int main() { return 0; }
3876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
3877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $rm conftest
3878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$?" -eq 0 ; then
3880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ldd_output=`ldd conftest`
3881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for i in $deplibs; do
3882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      name=`expr $i : '-l\(.*\)'`
3883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # If $name is empty we are operating on a -L argument.
3884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              if test "$name" != "" && test "$name" -ne "0"; then
3885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  case " $predeps $postdeps " in
3887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *" $i "*)
3888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    newdeplibs="$newdeplibs $i"
3889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    i=""
3890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ;;
3891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  esac
3892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        fi
3893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -n "$i" ; then
3894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  libname=`eval \\$echo \"$libname_spec\"`
3895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  set dummy $deplib_matches
3897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  deplib_match=$2
3898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    newdeplibs="$newdeplibs $i"
3900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  else
3901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    droppeddeps=yes
3902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo
3903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** I have the capability to make that library automatically link in when"
3905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** you link to this library.  But I can only do this if you have a"
3906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** shared version of the library, which I believe you do not have"
3907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		newdeplibs="$newdeplibs $i"
3913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
3916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Error occurred in the first compile.  Let's try to salvage
3917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # the situation: Compile a separate program for each library.
3918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for i in $deplibs; do
3919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      name=`expr $i : '-l\(.*\)'`
3920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # If $name is empty we are operating on a -L argument.
3921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              if test "$name" != "" && test "$name" != "0"; then
3922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$rm conftest
3923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$LTCC $LTCFLAGS -o conftest conftest.c $i
3924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Did it work?
3925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$?" -eq 0 ; then
3926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ldd_output=`ldd conftest`
3927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    case " $predeps $postdeps " in
3929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    *" $i "*)
3930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      newdeplibs="$newdeplibs $i"
3931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      i=""
3932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      ;;
3933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    esac
3934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -n "$i" ; then
3936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    libname=`eval \\$echo \"$libname_spec\"`
3937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    set dummy $deplib_matches
3939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    deplib_match=$2
3940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      newdeplibs="$newdeplibs $i"
3942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    else
3943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      droppeddeps=yes
3944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo
3945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** I have the capability to make that library automatically link in when"
3947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** you link to this library.  But I can only do this if you have a"
3948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** shared version of the library, which you do not appear to have"
3949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
3952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
3954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  droppeddeps=yes
3955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo
3956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "***  make it link in!  You will probably need to install it or some"
3958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** library that it depends on before this library will be fully"
3959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** functional.  Installing it before continuing would be even better."
3960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		newdeplibs="$newdeplibs $i"
3963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	file_magic*)
3968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  set dummy $deplibs_check_method
3969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for a_deplib in $deplibs; do
3971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    name=`expr $a_deplib : '-l\(.*\)'`
3972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If $name is empty we are operating on a -L argument.
3973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            if test "$name" != "" && test  "$name" != "0"; then
3974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $predeps $postdeps " in
3976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*" $a_deplib "*)
3977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  newdeplibs="$newdeplibs $a_deplib"
3978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  a_deplib=""
3979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
3980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$a_deplib" ; then
3983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		libname=`eval \\$echo \"$libname_spec\"`
3984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  for potent_lib in $potential_libs; do
3987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # Follow soft links.
3988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      if ls -lLd "$potent_lib" 2>/dev/null \
3989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			 | grep " -> " >/dev/null; then
3990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			continue
3991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      fi
3992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # The statement above tries to avoid entering an
3993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # endless loop below, in case of cyclic links.
3994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # We might still enter an endless loop, since a link
3995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # loop can be closed while we follow links,
3996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # but so what?
3997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      potlib="$potent_lib"
3998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      while test -h "$potlib" 2>/dev/null; do
3999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
4000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			case $potliblink in
4001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
4002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
4003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			esac
4004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      done
4005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
4006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			 | ${SED} 10q \
4007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			 | $EGREP "$file_magic_regex" > /dev/null; then
4008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			newdeplibs="$newdeplibs $a_deplib"
4009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			a_deplib=""
4010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			break 2
4011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      fi
4012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  done
4013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		done
4014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$a_deplib" ; then
4016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		droppeddeps=yes
4017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo
4018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** Warning: linker path does not have real file for library $a_deplib."
4019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** I have the capability to make that library automatically link in when"
4020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** you link to this library.  But I can only do this if you have a"
4021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** shared version of the library, which you do not appear to have"
4022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** because I did check the linker path looking for a file starting"
4023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$potlib" ; then
4024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
4025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
4026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** with $libname and none of the candidates passed a file format test"
4027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** using a file magic. Last file checked: $potlib"
4028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
4029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Add a -L argument.
4032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdeplibs="$newdeplibs $a_deplib"
4033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done # Gone through all deplibs.
4035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	match_pattern*)
4037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  set dummy $deplibs_check_method
4038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
4039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for a_deplib in $deplibs; do
4040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    name=`expr $a_deplib : '-l\(.*\)'`
4041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If $name is empty we are operating on a -L argument.
4042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$name" && test "$name" != "0"; then
4043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
4044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $predeps $postdeps " in
4045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*" $a_deplib "*)
4046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  newdeplibs="$newdeplibs $a_deplib"
4047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  a_deplib=""
4048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
4049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
4050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$a_deplib" ; then
4052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		libname=`eval \\$echo \"$libname_spec\"`
4053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
4054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
4055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  for potent_lib in $potential_libs; do
4056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    potlib="$potent_lib" # see symlink-check above in file_magic test
4057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if eval $echo \"$potent_lib\" 2>/dev/null \
4058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        | ${SED} 10q \
4059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        | $EGREP "$match_pattern_regex" > /dev/null; then
4060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      newdeplibs="$newdeplibs $a_deplib"
4061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      a_deplib=""
4062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      break 2
4063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
4064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  done
4065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		done
4066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$a_deplib" ; then
4068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		droppeddeps=yes
4069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo
4070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** Warning: linker path does not have real file for library $a_deplib."
4071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** I have the capability to make that library automatically link in when"
4072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** you link to this library.  But I can only do this if you have a"
4073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** shared version of the library, which you do not appear to have"
4074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** because I did check the linker path looking for a file starting"
4075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$potlib" ; then
4076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
4077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
4078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** with $libname and none of the candidates passed a file format test"
4079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** using a regex pattern. Last file checked: $potlib"
4080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
4081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Add a -L argument.
4084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdeplibs="$newdeplibs $a_deplib"
4085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done # Gone through all deplibs.
4087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	none | unknown | *)
4089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newdeplibs=""
4090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
4091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -e 's/ -[LR][^ ]*//g'`
4092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
4093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for i in $predeps $postdeps ; do
4094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # can't use Xsed below, because $i might contain '/'
4095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
4096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
4097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
4099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    | grep . >/dev/null; then
4100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo
4101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$deplibs_check_method" = "Xnone"; then
4102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
4103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: inter-library dependencies are not known to be supported."
4105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** All declared inter-library dependencies are being dropped."
4107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    droppeddeps=yes
4108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	versuffix=$versuffix_save
4112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	major=$major_save
4113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	release=$release_save
4114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libname=$libname_save
4115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name=$name_save
4116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
4118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-rhapsody* | *-*-darwin1.[012])
4119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # On Rhapsody replace the C library is the System framework
4120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
4121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$droppeddeps" = yes; then
4125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$module" = yes; then
4126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo
4127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
4128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
4129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** a static module, that should work as long as the dlopening"
4130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** application is linked with the -dlopen flag."
4131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$global_symbol_pipe"; then
4132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo
4133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** However, this would only work if libtool was able to extract symbol"
4134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
4135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** not find such a program.  So, this module is probably useless."
4136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
4137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$build_old_libs" = no; then
4139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      oldlibs="$output_objdir/$libname.$libext"
4140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      build_libtool_libs=module
4141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      build_old_libs=yes
4142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      build_libtool_libs=no
4144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** The inter-library dependencies that have been dropped here will be"
4147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** automatically added whenever a program is linked with this library"
4148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** or is declared to -dlopen it."
4149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$allow_undefined" = no; then
4151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo
4152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Since this library must not contain undefined symbols,"
4153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** because either the platform does not support them or"
4154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** it was explicitly requested with -no-undefined,"
4155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** libtool will only create a static version of it."
4156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$build_old_libs" = no; then
4157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		oldlibs="$output_objdir/$libname.$libext"
4158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_libtool_libs=module
4159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_old_libs=yes
4160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
4161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_libtool_libs=no
4162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Done checking deplibs!
4167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs=$newdeplibs
4168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # move library search paths that coincide with paths to not yet
4172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # installed libraries to the beginning of the library search list
4173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      new_libs=
4174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for path in $notinst_path; do
4175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $new_libs " in
4176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" -L$path/$objdir "*) ;;
4177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
4178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case " $deplibs " in
4179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" -L$path/$objdir "*)
4180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    new_libs="$new_libs -L$path/$objdir" ;;
4181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for deplib in $deplibs; do
4186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $deplib in
4187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-L*)
4188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case " $new_libs " in
4189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $deplib "*) ;;
4190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) new_libs="$new_libs $deplib" ;;
4191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) new_libs="$new_libs $deplib" ;;
4194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      deplibs="$new_libs"
4197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # All the library-specific variables (install_libdir is set above).
4200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      library_names=
4201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      old_library=
4202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlname=
4203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Test again, we may have decided not to build it any more
4205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_libtool_libs" = yes; then
4206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$hardcode_into_libs" = yes; then
4207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Hardcode the library paths
4208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  hardcode_libdirs=
4209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dep_rpath=
4210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  rpath="$finalize_rpath"
4211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "$mode" != relink && rpath="$compile_rpath$rpath"
4212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for libdir in $rpath; do
4213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$hardcode_libdir_flag_spec"; then
4214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$hardcode_libdir_separator"; then
4215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$hardcode_libdirs"; then
4216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  hardcode_libdirs="$libdir"
4217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
4218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Just accumulate the unique libdirs.
4219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ;;
4222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *)
4223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ;;
4225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  esac
4226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
4227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
4228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval flag=\"$hardcode_libdir_flag_spec\"
4229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		dep_rpath="$dep_rpath $flag"
4230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test -n "$runpath_var"; then
4232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$perm_rpath " in
4233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $libdir "*) ;;
4234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) perm_rpath="$perm_rpath $libdir" ;;
4235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
4236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Substitute the hardcoded libdirs into the rpath.
4239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$hardcode_libdir_separator" &&
4240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test -n "$hardcode_libdirs"; then
4241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libdir="$hardcode_libdirs"
4242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$hardcode_libdir_flag_spec_ld"; then
4243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
4244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
4246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
4249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We should set the runpath_var.
4250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath=
4251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for dir in $perm_rpath; do
4252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      rpath="$rpath$dir:"
4253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
4254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
4255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
4257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	shlibpath="$finalize_shlibpath"
4260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
4261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$shlibpath"; then
4262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
4263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Get the real and link names of the library.
4266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval shared_ext=\"$shrext_cmds\"
4267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval library_names=\"$library_names_spec\"
4268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	set dummy $library_names
4269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	realname="$2"
4270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	shift; shift
4271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$soname_spec"; then
4273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval soname=\"$soname_spec\"
4274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  soname="$realname"
4276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$dlname"; then
4278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlname=$soname
4279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lib="$output_objdir/$realname"
4282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	linknames=
4283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for link
4284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	do
4285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linknames="$linknames $link"
4286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Use standard objects if they are pic
4289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Prepare the list of exported symbols
4292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$export_symbols"; then
4293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
4294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "generating symbol list for \`$libname.la'"
4295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    export_symbols="$output_objdir/$libname.exp"
4296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run $rm $export_symbols
4297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$export_symbols_cmds
4298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    save_ifs="$IFS"; IFS='~'
4299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for cmd in $cmds; do
4300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
4301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval cmd=\"$cmd\"
4302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if len=`expr "X$cmd" : ".*"` &&
4303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $show "$cmd"
4305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $run eval "$cmd" || exit $?
4306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        skipped_export=false
4307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
4308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        # The command line is too long to execute in one step.
4309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $show "using reloadable object file for export list..."
4310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        skipped_export=:
4311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Break out early, otherwise skipped_export may be
4312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# set to false by a later but shorter cmd.
4313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		break
4314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
4316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
4317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$export_symbols_regex"; then
4318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
4319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
4320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
4321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
4322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$export_symbols" && test -n "$include_expsyms"; then
4327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
4328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	tmp_deplibs=
4331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for test_deplib in $deplibs; do
4332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $convenience " in
4333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*" $test_deplib "*) ;;
4334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*)
4335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			tmp_deplibs="$tmp_deplibs $test_deplib"
4336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			;;
4337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
4338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs="$tmp_deplibs"
4340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$convenience"; then
4342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$whole_archive_flag_spec"; then
4343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    save_libobjs=$libobjs
4344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    gentop="$output_objdir/${outputname}x"
4347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    generated="$generated $gentop"
4348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    func_extract_archives $gentop $convenience
4350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libobjs="$libobjs $func_extract_archives_result"
4351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	
4354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval flag=\"$thread_safe_flag_spec\"
4356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linker_flags="$linker_flags $flag"
4357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Make a backup of the uninstalled library when relinking
4360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$mode" = relink; then
4361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do each of the archive commands.
4365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$module" = yes && test -n "$module_cmds" ; then
4366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval test_cmds=\"$module_expsym_cmds\"
4368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$module_expsym_cmds
4369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval test_cmds=\"$module_cmds\"
4371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$module_cmds
4372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval test_cmds=\"$archive_expsym_cmds\"
4376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$archive_expsym_cmds
4377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval test_cmds=\"$archive_cmds\"
4379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$archive_cmds
4380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$skipped_export" != "X:" &&
4384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  :
4387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # The command line is too long to link in one step, link piecewise.
4389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "creating reloadable object files..."
4390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Save the value of $output and $libobjs because we want to
4392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # use them later.  If we have whole_archive_flag_spec, we
4393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # want to use save_libobjs as it was before
4394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # whole_archive_flag_spec was expanded, because we can't
4395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # assume the linker understands whole_archive_flag_spec.
4396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This may have to be revisited, in case too many
4397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # convenience libraries get linked in and end up exceeding
4398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # the spec.
4399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    save_libobjs=$libobjs
4401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_output=$output
4403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Clear the reloadable object creation command queue and
4406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # initialize k to one.
4407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test_cmds=
4408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  concat_cmds=
4409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  objlist=
4410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  delfiles=
4411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  last_robj=
4412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  k=1
4413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  output=$output_objdir/$output_la-${k}.$objext
4414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Loop over the list of objects to be linked.
4415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for obj in $save_libobjs
4416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
4417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$objlist" = X ||
4419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test "$len" -le "$max_cmd_len"; }; then
4421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      objlist="$objlist $obj"
4422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # The command $test_cmds is almost too long, add a
4424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # command to the queue.
4425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$k" -eq 1 ; then
4426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# The first file doesn't have a previous command to add.
4427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
4429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# All subsequent reloadable object files will link in
4430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# the last one created.
4431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      last_robj=$output_objdir/$output_la-${k}.$objext
4434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      k=`expr $k + 1`
4435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      output=$output_objdir/$output_la-${k}.$objext
4436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      objlist=$obj
4437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      len=1
4438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Handle the remaining objects by creating one last
4441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # reloadable object file.  All subsequent reloadable object
4442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # files will link in the last one created.
4443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if ${skipped_export-false}; then
4447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "generating symbol list for \`$libname.la'"
4448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    export_symbols="$output_objdir/$libname.exp"
4449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run $rm $export_symbols
4450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libobjs=$output
4451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Append the command to create the export file.
4452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          fi
4454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Set up a command to remove the reloadable object files
4456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # after they are used.
4457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  i=0
4458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  while test "$i" -lt "$k"
4459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
4460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    i=`expr $i + 1`
4461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "creating a temporary reloadable object file: $output"
4465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Loop through the commands generated above and execute them.
4467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_ifs="$IFS"; IFS='~'
4468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for cmd in $concat_cmds; do
4469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
4470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$cmd"
4471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$cmd" || exit $?
4472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
4474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  libobjs=$output
4476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Restore the value of output.
4477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  output=$save_output
4478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Expand the library linking commands again to reset the
4483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # value of $libobjs for piecewise linking.
4484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do each of the archive commands.
4486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$module" = yes && test -n "$module_cmds" ; then
4487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$module_expsym_cmds
4489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$module_cmds
4491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$archive_expsym_cmds
4495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$archive_cmds
4497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Append the command to remove the reloadable object files
4501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # to the just-reset $cmds.
4502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval cmds=\"\$cmds~\$rm $delfiles\"
4503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS='~'
4505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for cmd in $cmds; do
4506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
4507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval cmd=\"$cmd\"
4508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$cmd"
4509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$cmd" || {
4510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    lt_exit=$?
4511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Restore the uninstalled library and exit
4513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$mode" = relink; then
4514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $lt_exit
4518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  }
4519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
4521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Restore the uninstalled library and exit
4523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$mode" = relink; then
4524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$convenience"; then
4527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$whole_archive_flag_spec"; then
4528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "${rm}r $gentop"
4529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run ${rm}r "$gentop"
4530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_SUCCESS
4534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Create links to the real library.
4537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for linkname in $linknames; do
4538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$realname" != "$linkname"; then
4539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If -module or -export-dynamic was specified, set the dlname.
4545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$module" = yes || test "$export_dynamic" = yes; then
4546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # On all known operating systems, these are identical.
4547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlname="$soname"
4548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
4551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    obj)
4553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$deplibs"; then
4554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$rpath"; then
4562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$xrpath"; then
4566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$vinfo"; then
4570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$release"; then
4574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $output in
4578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
4579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$objs$old_deplibs"; then
4580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
4582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libobj="$output"
4584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
4586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
4587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libobj=
4588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	obj="$output"
4589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
4590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
4591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Delete the old objects.
4593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm $obj $libobj
4594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Objects from convenience libraries.  This assumes
4596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # single-version convenience libraries.  Whenever we create
4597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # different ones for PIC/non-PIC, this we'll have to duplicate
4598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # the extraction.
4599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      reload_conv_objs=
4600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      gentop=
4601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # reload_cmds runs $LD directly, so let us get rid of
4602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -Wl from whole_archive_flag_spec
4603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      wl=
4604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$convenience"; then
4606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$whole_archive_flag_spec"; then
4607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  gentop="$output_objdir/${obj}x"
4610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  generated="$generated $gentop"
4611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  func_extract_archives $gentop $convenience
4613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Create the old-style object.
4618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      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
4619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output="$obj"
4621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      cmds=$reload_cmds
4622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      save_ifs="$IFS"; IFS='~'
4623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for cmd in $cmds; do
4624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
4625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval cmd=\"$cmd\"
4626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$cmd"
4627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$cmd" || exit $?
4628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      IFS="$save_ifs"
4630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Exit if we aren't doing a library object file.
4632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$libobj"; then
4633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$gentop"; then
4634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "${rm}r $gentop"
4635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run ${rm}r $gentop
4636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_SUCCESS
4639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_libtool_libs" != yes; then
4642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$gentop"; then
4643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "${rm}r $gentop"
4644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run ${rm}r $gentop
4645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Create an invalid libtool object if no PIC, so that we don't
4648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# accidentally link it into a program.
4649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# $show "echo timestamp > $libobj"
4650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# $run eval "echo timestamp > $libobj" || exit $?
4651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_SUCCESS
4652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$pic_flag" || test "$pic_mode" != default; then
4655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Only do commands if we really have different PIC objects.
4656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	reload_objs="$libobjs $reload_conv_objs"
4657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	output="$libobj"
4658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	cmds=$reload_cmds
4659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS='~'
4660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for cmd in $cmds; do
4661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
4662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval cmd=\"$cmd\"
4663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$cmd"
4664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$cmd" || exit $?
4665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
4667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$gentop"; then
4670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "${rm}r $gentop"
4671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run ${rm}r $gentop
4672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_SUCCESS
4675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
4676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prog)
4678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $host in
4679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
4681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$vinfo"; then
4682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$release"; then
4686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$preload" = yes; then
4690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   test "$dlopen_self_static" = unknown; then
4692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $host in
4697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *-*-rhapsody* | *-*-darwin1.[012])
4698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# On Rhapsody replace the C library is the System framework
4699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
4702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
4703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $host in
4705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *darwin*)
4706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        # Don't allow lazy linking, it breaks C++ global constructors
4707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        if test "$tagname" = CXX ; then
4708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        compile_command="$compile_command ${wl}-bind_at_load"
4709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        finalize_command="$finalize_command ${wl}-bind_at_load"
4710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        fi
4711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        ;;
4712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
4713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # move library search paths that coincide with paths to not yet
4716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # installed libraries to the beginning of the library search list
4717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      new_libs=
4718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for path in $notinst_path; do
4719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $new_libs " in
4720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" -L$path/$objdir "*) ;;
4721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
4722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case " $compile_deplibs " in
4723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" -L$path/$objdir "*)
4724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    new_libs="$new_libs -L$path/$objdir" ;;
4725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for deplib in $compile_deplibs; do
4730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $deplib in
4731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-L*)
4732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case " $new_libs " in
4733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $deplib "*) ;;
4734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) new_libs="$new_libs $deplib" ;;
4735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) new_libs="$new_libs $deplib" ;;
4738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_deplibs="$new_libs"
4741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_command="$compile_command $compile_deplibs"
4744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finalize_command="$finalize_command $finalize_deplibs"
4745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$rpath$xrpath"; then
4747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the user specified any rpath flags, then add them.
4748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for libdir in $rpath $xrpath; do
4749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This is the magic to use -rpath.
4750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$finalize_rpath " in
4751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
4752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now hardcode the library paths
4758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      rpath=
4759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      hardcode_libdirs=
4760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for libdir in $compile_rpath $finalize_rpath; do
4761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$hardcode_libdir_flag_spec"; then
4762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$hardcode_libdir_separator"; then
4763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$hardcode_libdirs"; then
4764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      hardcode_libdirs="$libdir"
4765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Just accumulate the unique libdirs.
4767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
4770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *)
4771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
4773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
4774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval flag=\"$hardcode_libdir_flag_spec\"
4777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath $flag"
4778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test -n "$runpath_var"; then
4780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$perm_rpath " in
4781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
4782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) perm_rpath="$perm_rpath $libdir" ;;
4783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
4786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case :$dllsearchpath: in
4789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *":$libdir:"*) ;;
4790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) dllsearchpath="$dllsearchpath:$libdir";;
4791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case :$dllsearchpath: in
4793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *":$testbindir:"*) ;;
4794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Substitute the hardcoded libdirs into the rpath.
4800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$hardcode_libdir_separator" &&
4801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test -n "$hardcode_libdirs"; then
4802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libdir="$hardcode_libdirs"
4803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval rpath=\" $hardcode_libdir_flag_spec\"
4804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_rpath="$rpath"
4806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      rpath=
4808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      hardcode_libdirs=
4809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for libdir in $finalize_rpath; do
4810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$hardcode_libdir_flag_spec"; then
4811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$hardcode_libdir_separator"; then
4812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$hardcode_libdirs"; then
4813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      hardcode_libdirs="$libdir"
4814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Just accumulate the unique libdirs.
4816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
4819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *)
4820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
4822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
4823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval flag=\"$hardcode_libdir_flag_spec\"
4826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath $flag"
4827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test -n "$runpath_var"; then
4829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$finalize_perm_rpath " in
4830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
4831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Substitute the hardcoded libdirs into the rpath.
4836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$hardcode_libdir_separator" &&
4837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test -n "$hardcode_libdirs"; then
4838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libdir="$hardcode_libdirs"
4839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval rpath=\" $hardcode_libdir_flag_spec\"
4840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finalize_rpath="$rpath"
4842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Transform all the library objects into standard objects.
4845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlsyms=
4850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlsyms="${outputname}S.c"
4853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dlsyms"; then
4859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $dlsyms in
4860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	"") ;;
4861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.c)
4862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Discover the nlist of each of the dlfiles.
4863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  nlist="$output_objdir/${outputname}.nm"
4864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$rm $nlist ${nlist}S ${nlist}T"
4866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Parse the name list into a source file.
4869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "creating $output_objdir/$dlsyms"
4870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef __cplusplus
4876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonextern \"C\" {
4877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Prevent the only kind of declaration conflicts we can make. */
4880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define lt_preloaded_symbols some_other_symbol
4881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* External symbol declarations for the compiler. */\
4883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$dlself" = yes; then
4886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "generating symbol list for \`$output'"
4887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Add our own program objects to the symbol list.
4891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for arg in $progfiles; do
4893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "extracting global C symbols from \`$arg'"
4894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
4896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$exclude_expsyms"; then
4898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$mv "$nlist"T "$nlist"'
4900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$export_symbols_regex"; then
4903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$mv "$nlist"T "$nlist"'
4905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Prepare the list of exported symbols
4908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$export_symbols"; then
4909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      export_symbols="$output_objdir/$outputname.exp"
4910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run $rm $export_symbols
4911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              case $host in
4913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              *cygwin* | *mingw* )
4914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                ;;
4917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              esac
4918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval 'mv "$nlist"T "$nlist"'
4922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              case $host in
4923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              *cygwin* | *mingw* )
4924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                ;;
4927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              esac
4928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for arg in $dlprefiles; do
4932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "extracting global C symbols from \`$arg'"
4933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval '$echo ": $name " >> "$nlist"'
4935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$run"; then
4939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Make sure we have at least an empty file.
4940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test -f "$nlist" || : > "$nlist"
4941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$exclude_expsyms"; then
4943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $mv "$nlist"T "$nlist"
4945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Try sorting and uniquifying the output.
4948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if grep -v "^: " < "$nlist" |
4949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if sort -k 3 </dev/null >/dev/null 2>&1; then
4950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  sort -k 3
4951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
4952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  sort +2
4953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi |
4954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		uniq > "$nlist"S; then
4955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      :
4956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      grep -v "^: " < "$nlist" > "$nlist"S
4958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -f "$nlist"S; then
4961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo >> "$output_objdir/$dlsyms" "\
4967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#undef lt_preloaded_symbols
4969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (__STDC__) && __STDC__
4971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define lt_ptr void *
4972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else
4973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define lt_ptr char *
4974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define const
4975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* The mapping between symbol names and symbols. */
4978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $host in
4981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *cygwin* | *mingw* )
4982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> "$output_objdir/$dlsyms" "\
4983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* DATA imports from DLLs on WIN32 can't be const, because
4984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   runtime relocations are performed -- see ld's documentation
4985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   on pseudo-relocs */
4986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstruct {
4987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
4989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    * )
4990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> "$output_objdir/$dlsyms" "\
4991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst struct {
4992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
4994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
4995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> "$output_objdir/$dlsyms" "\
4998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  const char *name;
4999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  lt_ptr address;
5000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_preloaded_symbols[] =
5002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{\
5003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
5006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo >> "$output_objdir/$dlsyms" "\
5008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {0, (lt_ptr) 0}
5009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson};
5010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* This works around a problem in FreeBSD linker */
5012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef FREEBSD_WORKAROUND
5013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic const void *lt_preloaded_setup() {
5014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return lt_preloaded_symbols;
5015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef __cplusplus
5019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif\
5021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  pic_flag_for_symtable=
5025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $host in
5026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # compiling the symbol table file with pic_flag works around
5027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # a FreeBSD bug that causes programs to crash when -lm is
5028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # linked before any other PIC object.  But we must not use
5029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # pic_flag when linking with -static.  The problem exists in
5030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
5031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
5032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$compile_command " in
5033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" -static "*) ;;
5034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
5035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac;;
5036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-hpux*)
5037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$compile_command " in
5038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" -static "*) ;;
5039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) pic_flag_for_symtable=" $pic_flag";;
5040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
5041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
5042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Now compile the dynamic symbol file.
5044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
5045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
5046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Clean up the generated files.
5048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
5049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
5050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Transform the symbol file into the correct name.
5052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          case $host in
5053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          *cygwin* | *mingw* )
5054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            if test -f "$output_objdir/${outputname}.def" ; then
5055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
5056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
5057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            else
5058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
5059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
5060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson             fi
5061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            ;;
5062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          * )
5063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
5064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
5065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            ;;
5066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          esac
5067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
5068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
5069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
5070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
5071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
5072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We keep going just in case the user didn't refer to
5075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
5076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# really was required.
5077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Nullify the symbol file.
5079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
5080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
5081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
5084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Replace the output file specification.
5085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
5086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_command="$compile_command$compile_rpath"
5087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We have no uninstalled library dependencies, so finalize right now.
5089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$link_command"
5090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$link_command"
5091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit_status=$?
5092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Delete the generated files.
5094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$dlsyms"; then
5095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$rm $output_objdir/${outputname}S.${objext}"
5096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm "$output_objdir/${outputname}S.${objext}"
5097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $exit_status
5100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$shlibpath_var"; then
5103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We should set the shlibpath_var
5104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	rpath=
5105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for dir in $temp_rpath; do
5106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $dir in
5107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  [\\/]* | [A-Za-z]:[\\/]*)
5108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Absolute path.
5109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath$dir:"
5110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
5111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
5112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Relative path: add a thisdir entry.
5113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath\$thisdir/$dir:"
5114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
5115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
5116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
5117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	temp_rpath="$rpath"
5118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$compile_shlibpath$finalize_shlibpath"; then
5121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
5122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$finalize_shlibpath"; then
5124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
5125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_var=
5128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finalize_var=
5129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$runpath_var"; then
5130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$perm_rpath"; then
5131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # We should set the runpath_var.
5132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  rpath=
5133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for dir in $perm_rpath; do
5134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath$dir:"
5135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
5136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
5137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$finalize_perm_rpath"; then
5139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # We should set the runpath_var.
5140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  rpath=
5141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for dir in $finalize_perm_rpath; do
5142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath$dir:"
5143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
5144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
5145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$no_install" = yes; then
5149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We don't need to create a wrapper script.
5150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_command="$compile_var$compile_command$compile_rpath"
5151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Replace the output file specification.
5152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
5153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Delete the old output file.
5154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $output
5155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Link the executable and exit
5156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$link_command"
5157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$link_command" || exit $?
5158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_SUCCESS
5159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$hardcode_action" = relink; then
5162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Fast installation is not supported
5163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_command="$compile_var$compile_command$compile_rpath"
5164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command="$finalize_var$finalize_command$finalize_rpath"
5165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
5167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: \`$output' will be relinked during installation" 1>&2
5168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$fast_install" != no; then
5170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  link_command="$finalize_var$compile_command$finalize_rpath"
5171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$fast_install" = yes; then
5172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
5173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
5174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # fast_install is set to needless
5175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=
5176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  link_command="$compile_var$compile_command$compile_rpath"
5179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command="$finalize_var$finalize_command$finalize_rpath"
5180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Replace the output file specification.
5184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
5185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Delete the old output files.
5187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
5188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$link_command"
5190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run eval "$link_command" || exit $?
5191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now create the wrapper script.
5193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "creating $output"
5194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Quote the relink command for shipping.
5196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$relink_command"; then
5197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Preserve any variables that may affect compiler behavior
5198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for var in $variables_saved_for_relink; do
5199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if eval test -z \"\${$var+set}\"; then
5200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif eval var_value=\$$var; test -z "$var_value"; then
5202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command="$var=; export $var; $relink_command"
5203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
5204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
5206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
5208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command="(cd `pwd`; $relink_command)"
5209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Quote $echo for shipping.
5213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
5214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $progpath in
5215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
5216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
5217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
5219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
5221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Only actually do things if our run command is non-null.
5224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$run"; then
5225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# win32 will think the script is a binary if it has
5226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# a .exe suffix, so we strip it off here.
5227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $output in
5228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
5229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# test for cygwin because mv fails w/o .exe extensions
5231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
5232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *cygwin*)
5233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exeext=.exe
5234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
5235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) exeext= ;;
5236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
5238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *cygwin* | *mingw* )
5239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            output_name=`basename $output`
5240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            output_path=`dirname $output`
5241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cwrappersource="$output_path/$objdir/lt-$output_name.c"
5242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cwrapper="$output_path/$output_name.exe"
5243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            $rm $cwrappersource $cwrapper
5244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
5245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cat > $cwrappersource <<EOF
5247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
5249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   The $output program cannot be directly executed until all the libtool
5252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   libraries that it depends on are installed.
5253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   This wrapper executable should never be moved out of the build directory.
5255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   If it is, it will not operate correctly.
5256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   Currently, it simply execs the wrapper *script* "/bin/sh $output",
5258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   but could eventually absorb all of the scripts functionality and
5259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   exec $objdir/$outputname directly.
5260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*/
5261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cat >> $cwrappersource<<"EOF"
5263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdio.h>
5264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdlib.h>
5265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <unistd.h>
5266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <malloc.h>
5267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdarg.h>
5268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <assert.h>
5269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <string.h>
5270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <ctype.h>
5271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <sys/stat.h>
5272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined(PATH_MAX)
5274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX PATH_MAX
5275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#elif defined(MAXPATHLEN)
5276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX MAXPATHLEN
5277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else
5278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX 1024
5279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef DIR_SEPARATOR
5282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DIR_SEPARATOR '/'
5283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define PATH_SEPARATOR ':'
5284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
5287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  defined (__OS2__)
5288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define HAVE_DOS_BASED_FILE_SYSTEM
5289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ifndef DIR_SEPARATOR_2
5290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#  define DIR_SEPARATOR_2 '\\'
5291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# endif
5292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ifndef PATH_SEPARATOR_2
5293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#  define PATH_SEPARATOR_2 ';'
5294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# endif
5295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef DIR_SEPARATOR_2
5298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
5299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else /* DIR_SEPARATOR_2 */
5300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_DIR_SEPARATOR(ch) \
5301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
5302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif /* DIR_SEPARATOR_2 */
5303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef PATH_SEPARATOR_2
5305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
5306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else /* PATH_SEPARATOR_2 */
5307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
5308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif /* PATH_SEPARATOR_2 */
5309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
5311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define XFREE(stale) do { \
5312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (stale) { free ((void *) stale); stale = 0; } \
5313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} while (0)
5314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* -DDEBUG is fairly common in CFLAGS.  */
5316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#undef DEBUG
5317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined DEBUGWRAPPER
5318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
5319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else
5320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DEBUG(format, ...)
5321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char *program_name = NULL;
5324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid * xmalloc (size_t num);
5326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * xstrdup (const char *string);
5327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char * base_name (const char *name);
5328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * find_executable(const char *wrapper);
5329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint    check_executable(const char *path);
5330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * strendzap(char *str, const char *pat);
5331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid lt_fatal (const char *message, ...);
5332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint
5334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmain (int argc, char *argv[])
5335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  char **newargz;
5337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  int i;
5338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  program_name = (char *) xstrdup (base_name (argv[0]));
5340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(main) argv[0]      : %s\n",argv[0]);
5341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(main) program_name : %s\n",program_name);
5342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  newargz = XMALLOC(char *, argc+2);
5343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cat >> $cwrappersource <<EOF
5346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  newargz[0] = (char *) xstrdup("$SHELL");
5347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cat >> $cwrappersource <<"EOF"
5350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  newargz[1] = find_executable(argv[0]);
5351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (newargz[1] == NULL)
5352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lt_fatal("Couldn't find %s", argv[0]);
5353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(main) found exe at : %s\n",newargz[1]);
5354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* we know the script has the same name, without the .exe */
5355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* so make sure newargz[1] doesn't end in .exe */
5356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  strendzap(newargz[1],".exe");
5357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  for (i = 1; i < argc; i++)
5358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    newargz[i+1] = xstrdup(argv[i]);
5359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  newargz[argc+1] = NULL;
5360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  for (i=0; i<argc+1; i++)
5362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;
5365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            case $host_os in
5370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              mingw*)
5371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                cat >> $cwrappersource <<EOF
5372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  execv("$SHELL",(char const **)newargz);
5373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              ;;
5375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              *)
5376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                cat >> $cwrappersource <<EOF
5377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  execv("$SHELL",newargz);
5378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              ;;
5380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            esac
5381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cat >> $cwrappersource <<"EOF"
5383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return 127;
5384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid *
5387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonxmalloc (size_t num)
5388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  void * p = (void *) malloc (num);
5390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (!p)
5391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lt_fatal ("Memory exhausted");
5392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return p;
5394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar *
5397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonxstrdup (const char *string)
5398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson;
5401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char *
5404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbase_name (const char *name)
5405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  const char *base;
5407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* Skip over the disk name in MSDOS pathnames. */
5410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    name += 2;
5412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  for (base = name; *name; name++)
5415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (IS_DIR_SEPARATOR (*name))
5416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      base = name + 1;
5417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return base;
5418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint
5421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncheck_executable(const char * path)
5422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  struct stat st;
5424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if ((!path) || (!*path))
5427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return 0;
5428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if ((stat (path, &st) >= 0) &&
5430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      (
5431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (S_IXOTH)
5433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (S_IXGRP)
5436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       ((st.st_mode & S_IXUSR) == S_IXUSR))
5439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      )
5440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return 1;
5441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  else
5442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return 0;
5443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Searches for the full path of the wrapper.  Returns
5446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   newly allocated full path name if found, NULL otherwise */
5447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar *
5448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfind_executable (const char* wrapper)
5449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  int has_slash = 0;
5451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  const char* p;
5452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  const char* p_next;
5453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* static buffer for getcwd */
5454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  char tmp[LT_PATHMAX + 1];
5455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  int tmp_len;
5456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  char* concat_name;
5457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if ((wrapper == NULL) || (*wrapper == '\0'))
5461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return NULL;
5462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* Absolute path? */
5464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    concat_name = xstrdup (wrapper);
5468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (check_executable(concat_name))
5469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      return concat_name;
5470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    XFREE(concat_name);
5471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  else
5473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (IS_DIR_SEPARATOR (wrapper[0]))
5476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    {
5477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      concat_name = xstrdup (wrapper);
5478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if (check_executable(concat_name))
5479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        return concat_name;
5480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      XFREE(concat_name);
5481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    }
5482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  for (p = wrapper; *p; p++)
5487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (*p == '/')
5488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    {
5489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      has_slash = 1;
5490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      break;
5491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    }
5492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (!has_slash)
5493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    /* no slashes; search PATH */
5495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    const char* path = getenv ("PATH");
5496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (path != NULL)
5497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    {
5498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for (p = path; *p; p = p_next)
5499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      {
5500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        const char* q;
5501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        size_t p_len;
5502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        for (q = p; *q; q++)
5503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          if (IS_PATH_SEPARATOR(*q))
5504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            break;
5505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        p_len = q - p;
5506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        p_next = (*q == '\0' ? q : q + 1);
5507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        if (p_len == 0)
5508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        {
5509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          /* empty path: current directory */
5510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          if (getcwd (tmp, LT_PATHMAX) == NULL)
5511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            lt_fatal ("getcwd failed");
5512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          tmp_len = strlen(tmp);
5513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          memcpy (concat_name, tmp, tmp_len);
5515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          concat_name[tmp_len] = '/';
5516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          strcpy (concat_name + tmp_len + 1, wrapper);
5517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        }
5518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        else
5519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        {
5520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          memcpy (concat_name, p, p_len);
5522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          concat_name[p_len] = '/';
5523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          strcpy (concat_name + p_len + 1, wrapper);
5524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        }
5525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        if (check_executable(concat_name))
5526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          return concat_name;
5527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        XFREE(concat_name);
5528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      }
5529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    }
5530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    /* not found in PATH; assume curdir */
5531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* Relative path | not found in path: prepend cwd */
5533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (getcwd (tmp, LT_PATHMAX) == NULL)
5534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lt_fatal ("getcwd failed");
5535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  tmp_len = strlen(tmp);
5536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  memcpy (concat_name, tmp, tmp_len);
5538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  concat_name[tmp_len] = '/';
5539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  strcpy (concat_name + tmp_len + 1, wrapper);
5540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (check_executable(concat_name))
5542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return concat_name;
5543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  XFREE(concat_name);
5544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return NULL;
5545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar *
5548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstrendzap(char *str, const char *pat)
5549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  size_t len, patlen;
5551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  assert(str != NULL);
5553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  assert(pat != NULL);
5554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  len = strlen(str);
5556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  patlen = strlen(pat);
5557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (patlen <= len)
5559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    str += len - patlen;
5561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (strcmp(str, pat) == 0)
5562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *str = '\0';
5563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return str;
5565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic void
5568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_error_core (int exit_status, const char * mode,
5569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          const char * message, va_list ap)
5570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fprintf (stderr, "%s: %s: ", program_name, mode);
5572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  vfprintf (stderr, message, ap);
5573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fprintf (stderr, ".\n");
5574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (exit_status >= 0)
5576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit (exit_status);
5577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid
5580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_fatal (const char *message, ...)
5581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  va_list ap;
5583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  va_start (ap, message);
5584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  va_end (ap);
5586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # we should really use a build-platform specific compiler
5589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # here, but OTOH, the wrappers (shell script and this C one)
5590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # are only useful if you want to execute the "real" binary.
5591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # Since the "real" binary is built for $host, then this
5592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # wrapper might as well be built for $host, too.
5593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          ;;
5595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        esac
5596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        $rm $output
5597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo > $output "\
5600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#! $SHELL
5601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $output - temporary wrapper script for $objdir/$outputname
5603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
5605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The $output program cannot be directly executed until all the libtool
5606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# libraries that it depends on are installed.
5607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
5608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This wrapper script should never be moved out of the build directory.
5609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If it is, it will not operate correctly.
5610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Sed substitution that helps us do robust quoting.  It backslashifies
5612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# metacharacters that are still active within double-quoted strings.
5613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonXsed='${SED} -e 1s/^X//'
5614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsed_quote_subst='$sed_quote_subst'
5615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The HP-UX ksh and POSIX shell print the target directory to stdout
5617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# if CDPATH is set.
5618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrelink_command=\"$relink_command\"
5621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This environment variable determines our operation mode.
5623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test \"\$libtool_install_magic\" = \"$magic\"; then
5624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # install mode needs the following variable:
5625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  notinst_deplibs='$notinst_deplibs'
5626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelse
5627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # When we are sourced in execute mode, \$file and \$echo are already set.
5628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    echo=\"$qecho\"
5630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    file=\"\$0\"
5631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Make sure echo works.
5632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test \"X\$1\" = X--no-reexec; then
5633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Discard the --no-reexec flag, and continue.
5634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      shift
5635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Yippee, \$echo works!
5637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      :
5638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
5639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Restart under the correct shell, and then maybe \$echo will work.
5640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi\
5643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo >> $output "\
5645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Find the directory that this script lives in.
5647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Follow symbolic links until we get to the real thisdir.
5651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  while test -n \"\$file\"; do
5653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # If there was a directory component, then change thisdir.
5656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test \"x\$destdir\" != \"x\$file\"; then
5657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case \"\$destdir\" in
5658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *) thisdir=\"\$thisdir/\$destdir\" ;;
5660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
5661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  done
5666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Try to get the absolute directory name.
5668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  absdir=\`cd \"\$thisdir\" && pwd\`
5669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$fast_install" = yes; then
5673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  program=lt-'$outputname'$exeext
5675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  progdir=\"\$thisdir/$objdir\"
5676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test ! -f \"\$progdir/\$program\" || \\
5678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    file=\"\$\$-\$program\"
5682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test ! -d \"\$progdir\"; then
5684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $mkdir \"\$progdir\"
5685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
5686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $rm \"\$progdir/\$file\"
5687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi"
5688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # relink executable if necessary
5692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n \"\$relink_command\"; then
5693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo \"\$relink_command_output\" >&2
5696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$rm \"\$progdir/\$file\"
5697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
5698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    { $rm \"\$progdir/\$program\";
5703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $rm \"\$progdir/\$file\"
5705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi"
5706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  program='$outputname'
5709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  progdir=\"\$thisdir/$objdir\"
5710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo >> $output "\
5714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -f \"\$progdir/\$program\"; then"
5716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Export our shlibpath_var if we have one.
5718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Add our own library path to $shlibpath_var
5721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Some systems cannot cope with colon-terminated $shlibpath_var
5724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # The second colon is a workaround for a bug in BeOS R4 sed
5725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    export $shlibpath_var
5728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# fixup the dll searchpath if we need to.
5732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$dllsearchpath"; then
5733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Add the dll search path components to the executable PATH
5735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    PATH=$dllsearchpath:\$PATH
5736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo >> $output "\
5740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Run the actual program with our arguments.
5742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
5744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Backslashes separate directories on plain windows
5745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-mingw | *-*-os2*)
5746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
5750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
5752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
5756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo >> $output "\
5758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
5760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  else
5762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # The program doesn't exist.
5763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
5767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
5768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi\
5769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	chmod +x $output
5771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_SUCCESS
5773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
5774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
5775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # See if we need to build an old-fashioned archive.
5777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for oldlib in $oldlibs; do
5778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_libtool_libs" = convenience; then
5780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	oldobjs="$libobjs_save"
5781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	addlibs="$convenience"
5782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	build_libtool_libs=no
5783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$build_libtool_libs" = module; then
5785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldobjs="$libobjs_save"
5786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  build_libtool_libs=no
5787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldobjs="$old_deplibs $non_pic_objects"
5789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	addlibs="$old_convenience"
5791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$addlibs"; then
5794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	gentop="$output_objdir/${outputname}x"
5795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	generated="$generated $gentop"
5796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	func_extract_archives $gentop $addlibs
5798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	oldobjs="$oldobjs $func_extract_archives_result"
5799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Do each command in the archive commands.
5802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       cmds=$old_archive_from_new_cmds
5804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# POSIX demands no paths to be encoded in archives.  We have
5806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to avoid creating archives with duplicate basenames if we
5807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# might have to extract them afterwards, e.g., when creating a
5808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# static archive out of a convenience library, or when linking
5809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# the entirety of a libtool archive into another (currently
5810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# not supported by libtool).
5811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (for obj in $oldobjs
5812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    do
5813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done | sort | sort -uc >/dev/null 2>&1); then
5815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  :
5816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "copying selected object files to avoid basename conflicts..."
5818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$gentop"; then
5820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    gentop="$output_objdir/${outputname}x"
5821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    generated="$generated $gentop"
5822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "${rm}r $gentop"
5824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run ${rm}r "$gentop"
5825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$mkdir $gentop"
5826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run $mkdir "$gentop"
5827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit_status=$?
5828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      exit $exit_status
5830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
5831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_oldobjs=$oldobjs
5834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldobjs=
5835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  counter=1
5836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for obj in $save_oldobjs
5837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
5838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $oldobjs " in
5840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    " ") oldobjs=$obj ;;
5841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *[\ /]"$objbase "*)
5842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      while :; do
5843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Make sure we don't pick an alternate name that also
5844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# overlaps.
5845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		newobj=lt$counter-$objbase
5846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		counter=`expr $counter + 1`
5847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $oldobjs " in
5848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*[\ /]"$newobj "*) ;;
5849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
5851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
5852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run ln "$obj" "$gentop/$newobj" ||
5854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run cp "$obj" "$gentop/$newobj"
5855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      oldobjs="$oldobjs $gentop/$newobj"
5856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
5857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) oldobjs="$oldobjs $obj" ;;
5858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
5859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
5860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval cmds=\"$old_archive_cmds\"
5863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if len=`expr "X$cmds" : ".*"` &&
5865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$old_archive_cmds
5867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # the command line is too long to link in one step, link in parts
5869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "using piecewise archive linking..."
5870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_RANLIB=$RANLIB
5871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  RANLIB=:
5872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  objlist=
5873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  concat_cmds=
5874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_oldobjs=$oldobjs
5875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Is there a better way of finding the last object in the list?
5877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for obj in $save_oldobjs
5878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
5879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    last_oldobj=$obj
5880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
5881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for obj in $save_oldobjs
5882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
5883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    oldobjs="$objlist $obj"
5884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    objlist="$objlist $obj"
5885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval test_cmds=\"$old_archive_cmds\"
5886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       test "$len" -le "$max_cmd_len"; then
5888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      :
5889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
5890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # the above command should be used before it gets too long
5891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      oldobjs=$objlist
5892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$obj" = "$last_oldobj" ; then
5893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        RANLIB=$save_RANLIB
5894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
5895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      objlist=
5898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
5899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
5900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  RANLIB=$save_RANLIB
5901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldobjs=$objlist
5902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "X$oldobjs" = "X" ; then
5903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval cmds=\"\$concat_cmds\"
5904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
5905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      save_ifs="$IFS"; IFS='~'
5910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for cmd in $cmds; do
5911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        eval cmd=\"$cmd\"
5912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
5913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$cmd"
5914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$cmd" || exit $?
5915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
5916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      IFS="$save_ifs"
5917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
5918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$generated"; then
5920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "${rm}r$generated"
5921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run ${rm}r$generated
5922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Now create the libtool archive.
5925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $output in
5926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.la)
5927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      old_library=
5928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test "$build_old_libs" = yes && old_library="$libname.$libext"
5929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "creating $output"
5930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Preserve any variables that may affect compiler behavior
5932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for var in $variables_saved_for_relink; do
5933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if eval test -z \"\${$var+set}\"; then
5934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif eval var_value=\$$var; test -z "$var_value"; then
5936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command="$var=; export $var; $relink_command"
5937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
5942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Quote the link command for shipping.
5943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$hardcode_automatic" = yes ; then
5946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command=
5947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Only create the output if not a dry run.
5951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$run"; then
5952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for installed in no yes; do
5953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$installed" = yes; then
5954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$install_libdir"; then
5955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      break
5956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
5957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    output="$output_objdir/$outputname"i
5958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Replace all uninstalled libtool libraries with the installed ones
5959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdependency_libs=
5960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for deplib in $dependency_libs; do
5961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $deplib in
5962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *.la)
5963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$libdir"; then
5966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit $EXIT_FAILURE
5968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
5969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		newdependency_libs="$newdependency_libs $libdir/$name"
5970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
5971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
5973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dependency_libs="$newdependency_libs"
5975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlfiles=
5976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for lib in $dlfiles; do
5977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -z "$libdir"; then
5980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		exit $EXIT_FAILURE
5982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
5983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlfiles="$newdlfiles $libdir/$name"
5984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlfiles="$newdlfiles"
5986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles=
5987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for lib in $dlprefiles; do
5988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -z "$libdir"; then
5991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		exit $EXIT_FAILURE
5993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
5994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlprefiles="$newdlprefiles $libdir/$name"
5995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlprefiles="$newdlprefiles"
5997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
5998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlfiles=
5999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for lib in $dlfiles; do
6000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $lib in
6001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
6002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) abs=`pwd`"/$lib" ;;
6003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
6004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlfiles="$newdlfiles $abs"
6005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
6006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlfiles="$newdlfiles"
6007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles=
6008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for lib in $dlprefiles; do
6009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $lib in
6010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
6011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) abs=`pwd`"/$lib" ;;
6012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
6013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlprefiles="$newdlprefiles $abs"
6014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
6015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlprefiles="$newdlprefiles"
6016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $rm $output
6018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # place dlname in correct position for cygwin
6019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tdlname=$dlname
6020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $host,$output,$installed,$module,$dlname in
6021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
6022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo > $output "\
6024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $outputname - a libtool library file
6025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
6026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
6027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Please DO NOT delete this file!
6028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# It is necessary for linking the library.
6029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name that we can dlopen(3).
6031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlname='$tdlname'
6032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Names of this library.
6034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary_names='$library_names'
6035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of the static archive.
6037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_library='$old_library'
6038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Libraries that this one depends upon.
6040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondependency_libs='$dependency_libs'
6041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Version information for $libname.
6043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncurrent=$current
6044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonage=$age
6045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrevision=$revision
6046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is this an already installed library?
6048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninstalled=$installed
6049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Should we warn about portability when linking against -modules?
6051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshouldnotlink=$module
6052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Files to dlopen/dlpreopen
6054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen='$dlfiles'
6055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlpreopen='$dlprefiles'
6056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Directory that this library needs to be installed in:
6058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibdir='$install_libdir'"
6059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$installed" = no && test "$need_relink" = yes; then
6060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo >> $output "\
6061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrelink_command=\"$relink_command\""
6062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
6064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Do a symbolic link so that the libtool archive can be found in
6067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # LD_LIBRARY_PATH before the program is installed.
6068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
6069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
6070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
6071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
6072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_SUCCESS
6073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool install mode
6076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  install)
6077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: install"
6078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # There may be an optional sh(1) argument at the beginning of
6080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # install_prog (especially on Windows NT).
6081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
6082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       # Allow the use of GNU shtool's install command.
6083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       $echo "X$nonopt" | grep shtool > /dev/null; then
6084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Aesthetically quote it.
6085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
6086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
6087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
6088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg="\"$arg\""
6089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install_prog="$arg "
6092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg="$1"
6093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      shift
6094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
6095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install_prog=
6096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg=$nonopt
6097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # The real first argument should be the name of the installation program.
6100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Aesthetically quote it.
6101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
6102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $arg in
6103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
6104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg="\"$arg\""
6105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
6106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
6107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    install_prog="$install_prog$arg"
6108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # We need to accept at least all the BSD install flags.
6110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dest=
6111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    files=
6112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    opts=
6113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=
6114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    install_type=
6115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    isdir=no
6116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    stripme=
6117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg
6118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
6119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dest"; then
6120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	files="$files $dest"
6121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dest=$arg
6122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
6123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
6126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -d) isdir=yes ;;
6127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -f) 
6128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      	case " $install_prog " in
6129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*[\\\ /]cp\ *) ;;
6130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) prev=$arg ;;
6131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -g | -m | -o) prev=$arg ;;
6134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -s)
6135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	stripme=" -s"
6136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
6137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -*)
6139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the previous option needed an argument, then skip it.
6142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$prev"; then
6143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
6144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dest=$arg
6146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
6147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Aesthetically quote the argument.
6152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
6153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
6154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
6155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg="\"$arg\""
6156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install_prog="$install_prog $arg"
6159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$install_prog"; then
6162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify an install program" 1>&2
6163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
6164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
6165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$prev"; then
6168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: the \`$prev' option requires an argument" 1>&2
6169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
6170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
6171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$files"; then
6174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$dest"; then
6175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: no file or destination specified" 1>&2
6176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
6177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: you must specify a destination" 1>&2
6178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
6180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
6181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Strip any trailing slash from the destination.
6184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
6185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Check to see that the destination is a directory.
6187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test -d "$dest" && isdir=yes
6188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$isdir" = yes; then
6189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      destdir="$dest"
6190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      destname=
6191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
6192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
6193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test "X$destdir" = "X$dest" && destdir=.
6194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
6195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Not a directory, so check to see that there is only one file specified.
6197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      set dummy $files
6198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$#" -gt 2; then
6199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: \`$dest' is not a directory" 1>&2
6200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$help" 1>&2
6201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
6202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $destdir in
6205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    [\\/]* | [A-Za-z]:[\\/]*) ;;
6206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
6207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for file in $files; do
6208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $file in
6209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.lo) ;;
6210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
6211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
6212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
6213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
6214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
6217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
6218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
6219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # This variable tells wrapper scripts just to set variables rather
6221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # than running their programs.
6222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libtool_install_magic="$magic"
6223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    staticlibs=
6225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    future_libdirs=
6226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    current_libdirs=
6227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file in $files; do
6228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Do each installation.
6230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $file in
6231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.$libext)
6232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do the static libraries later.
6233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	staticlibs="$staticlibs $file"
6234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.la)
6237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see that this really is a libtool archive.
6238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
6241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
6242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
6243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	library_names=
6246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	old_library=
6247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command=
6248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If there is no directory component, then add one.
6249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $file in
6250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*/* | *\\*) . $file ;;
6251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) . ./$file ;;
6252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Add the libdir to current_libdirs if it is the destination.
6255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$destdir" = "X$libdir"; then
6256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$current_libdirs " in
6257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
6258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) current_libdirs="$current_libdirs $libdir" ;;
6259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Note the libdir as a future libdir.
6262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$future_libdirs " in
6263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
6264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) future_libdirs="$future_libdirs $libdir" ;;
6265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
6269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "X$dir" = "X$file/" && dir=
6270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir="$dir$objdir"
6271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$relink_command"; then
6273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Determine the prefix the user has applied to our future dir.
6274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
6275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Don't allow the user to place us outside of our expected
6277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # location b/c this prevents finding dependent libraries that
6278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # are installed to the same prefix.
6279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # At present, this check doesn't affect windows .dll's that
6280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # are installed into $libdir/../bin (currently, that works fine)
6281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # but it's something to keep an eye on.
6282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$inst_prefix_dir" = "$destdir"; then
6283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
6284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
6285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$inst_prefix_dir"; then
6288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Stick the inst_prefix_dir data into the link command.
6289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
6290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
6291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
6292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: relinking \`$file'" 1>&2
6295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$relink_command"
6296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if $run eval "$relink_command"; then :
6297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
6298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
6300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# See the names of the shared library.
6304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	set dummy $library_names
6305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$2"; then
6306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  realname="$2"
6307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  shift
6308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  shift
6309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  srcname="$realname"
6311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$relink_command" && srcname="$realname"T
6312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Install the shared library and build the symlinks.
6314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$install_prog $dir/$srcname $destdir/$realname"
6315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
6316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$stripme" && test -n "$striplib"; then
6317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$striplib $destdir/$realname"
6318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$striplib $destdir/$realname" || exit $?
6319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$#" -gt 0; then
6322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Delete the old symlinks, and create new ones.
6323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Try `ln -sf' first, because the `ln' binary might depend on
6324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
6325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # so we also need to try rm && ln -s.
6326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for linkname
6327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    do
6328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$linkname" != "$realname"; then
6329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
6332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
6333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do each command in the postinstall commands.
6336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib="$destdir/$realname"
6337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$postinstall_cmds
6338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_ifs="$IFS"; IFS='~'
6339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for cmd in $cmds; do
6340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
6341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval cmd=\"$cmd\"
6342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$cmd"
6343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$cmd" || {
6344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      lt_exit=$?
6345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Restore the uninstalled library and exit
6347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$mode" = relink; then
6348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
6349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
6350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      exit $lt_exit
6352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    }
6353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
6354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
6355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Install the pseudo-library for information purposes.
6358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	instname="$dir/$name"i
6360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$install_prog $instname $destdir/$name"
6361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$install_prog $instname $destdir/$name" || exit $?
6362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Maybe install the static library, too.
6364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
6368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Install (i.e. copy) a libtool object.
6369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Figure out destination file name, if it wasn't already specified.
6371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$destname"; then
6372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile="$destdir/$destname"
6373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile="$destdir/$destfile"
6376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Deduce the name of the destination old-style object file.
6379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $destfile in
6380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.lo)
6381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.$objext)
6384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  staticdest="$destfile"
6385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile=
6386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
6388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
6390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
6391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Install the libtool object if requested.
6395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$destfile"; then
6396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$install_prog $file $destfile"
6397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$install_prog $file $destfile" || exit $?
6398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Install the old object if enabled.
6401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$build_old_libs" = yes; then
6402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Deduce the name of the old-style object file.
6403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$install_prog $staticobj $staticdest"
6406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_SUCCESS
6409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Figure out destination file name, if it wasn't already specified.
6413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$destname"; then
6414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile="$destdir/$destname"
6415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile="$destdir/$destfile"
6418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the file is missing, and there is a .exe on the end, strip it
6421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# because it is most likely a libtool script we actually want to
6422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# install
6423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	stripped_ext=""
6424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $file in
6425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe)
6426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test ! -f "$file"; then
6427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      file=`$echo $file|${SED} 's,.exe$,,'`
6428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      stripped_ext=".exe"
6429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do a test to see if this is really a libtool program.
6434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
6435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*cygwin*|*mingw*)
6436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
6439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    wrapper=$file
6440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  notinst_deplibs=
6444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command=
6445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Note that it is not necessary on cygwin/mingw to append a dot to
6447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # `FILE.' does not work on cygwin managed mounts.
6450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
6451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # If there is no directory component, then add one.
6452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $wrapper in
6453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  */* | *\\*) . ${wrapper} ;;
6454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) . ./${wrapper} ;;
6455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Check the variables that should have been set.
6458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$notinst_deplibs"; then
6459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
6461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize=yes
6464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for lib in $notinst_deplibs; do
6465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Check to see that each library is installed.
6466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libdir=
6467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -f "$lib"; then
6468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # If there is no directory component, then add one.
6469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $lib in
6470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      */* | *\\*) . $lib ;;
6471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) . ./$lib ;;
6472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
6473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$libdir" && test ! -f "$libfile"; then
6476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize=no
6478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
6480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command=
6482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Note that it is not necessary on cygwin/mingw to append a dot to
6483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # `FILE.' does not work on cygwin managed mounts.
6486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
6487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # If there is no directory component, then add one.
6488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $wrapper in
6489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  */* | *\\*) . ${wrapper} ;;
6490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) . ./${wrapper} ;;
6491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  outputname=
6494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$fast_install" = no && test -n "$relink_command"; then
6495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$finalize" = yes && test -z "$run"; then
6496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      tmpdir=`func_mktempdir`
6497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      outputname="$tmpdir/$file"
6499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Replace the output file specification.
6500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "$relink_command"
6503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if $run eval "$relink_command"; then :
6504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
6505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		${rm}r "$tmpdir"
6507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		continue
6508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
6509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      file="$outputname"
6510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
6511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
6514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Install the binary that we compiled earlier.
6515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# remove .exe since cygwin /usr/bin/install will append another
6520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# one anyway 
6521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $install_prog,$host in
6522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*/usr/bin/install*,*cygwin*)
6523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $file:$destfile in
6524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe:*.exe)
6525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # this is ok
6526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe:*)
6528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    destfile=$destfile.exe
6529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *:*.exe)
6531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$install_prog$stripme $file $destfile"
6537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test -n "$outputname" && ${rm}r "$tmpdir"
6539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file in $staticlibs; do
6544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Set up the ranlib parameters.
6547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      oldlib="$destdir/$name"
6548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$install_prog $file $oldlib"
6550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run eval "$install_prog \$file \$oldlib" || exit $?
6551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$stripme" && test -n "$old_striplib"; then
6553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$old_striplib $oldlib"
6554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$old_striplib $oldlib" || exit $?
6555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Do each command in the postinstall commands.
6558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      cmds=$old_postinstall_cmds
6559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      save_ifs="$IFS"; IFS='~'
6560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for cmd in $cmds; do
6561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
6562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval cmd=\"$cmd\"
6563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$cmd"
6564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$cmd" || exit $?
6565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
6566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      IFS="$save_ifs"
6567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$future_libdirs"; then
6570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$current_libdirs"; then
6574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Maybe just do a dry run.
6575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -n "$run" && current_libdirs=" -n$current_libdirs"
6576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
6578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_SUCCESS
6579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool finish mode
6583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  finish)
6584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: finish"
6585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libdirs="$nonopt"
6586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    admincmds=
6587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for dir
6590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      do
6591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libdirs="$libdirs $dir"
6592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
6593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for libdir in $libdirs; do
6595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$finish_cmds"; then
6596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do each command in the finish commands.
6597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$finish_cmds
6598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_ifs="$IFS"; IFS='~'
6599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for cmd in $cmds; do
6600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
6601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval cmd=\"$cmd\"
6602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$cmd"
6603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$cmd" || admincmds="$admincmds
6604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       $cmd"
6605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
6606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
6607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$finish_eval"; then
6609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do the single finish_eval.
6610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval cmds=\"$finish_eval\"
6611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$cmds" || admincmds="$admincmds
6612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       $cmds"
6613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
6615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Exit here if they wanted silent mode.
6618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test "$show" = : && exit $EXIT_SUCCESS
6619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "X----------------------------------------------------------------------" | $Xsed
6621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "Libraries have been installed in:"
6622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for libdir in $libdirs; do
6623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   $libdir"
6624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo
6626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "If you ever happen to want to link against installed libraries"
6627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "flag during linking and do at least one of the following:"
6630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$shlibpath_var"; then
6631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "     during execution"
6633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$runpath_var"; then
6635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "     during linking"
6637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$hardcode_libdir_flag_spec"; then
6639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      libdir=LIBDIR
6640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval flag=\"$hardcode_libdir_flag_spec\"
6641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - use the \`$flag' linker flag"
6643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$admincmds"; then
6645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - have your system administrator run these commands:$admincmds"
6646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -f /etc/ld.so.conf; then
6648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo
6651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "See any operating system documentation about shared libraries for"
6652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "X----------------------------------------------------------------------" | $Xsed
6654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_SUCCESS
6655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool execute mode
6658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  execute)
6659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: execute"
6660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # The first argument is the command name.
6662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    cmd="$nonopt"
6663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$cmd"; then
6664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify a COMMAND" 1>&2
6665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help"
6666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
6667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Handle -dlopen flags immediately.
6670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file in $execute_dlfiles; do
6671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test ! -f "$file"; then
6672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: \`$file' is not a file" 1>&2
6673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$help" 1>&2
6674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
6675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dir=
6678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $file in
6679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.la)
6680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see that this really is a libtool archive.
6681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
6685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
6686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Read the libtool library.
6689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlname=
6690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	library_names=
6691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If there is no directory component, then add one.
6693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $file in
6694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*/* | *\\*) . $file ;;
6695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) . ./$file ;;
6696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Skip this library if it cannot be dlopened.
6699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$dlname"; then
6700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Warn if it was a shared library.
6701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
6703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "X$dir" = "X$file" && dir=.
6707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -f "$dir/$objdir/$dlname"; then
6709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dir="$dir/$objdir"
6710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
6713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
6717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Just add the directory containing the .lo file.
6718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "X$dir" = "X$file" && dir=.
6720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
6725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Get the absolute pathname.
6729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      absdir=`cd "$dir" && pwd`
6730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -n "$absdir" && dir="$absdir"
6731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now add the directory to shlibpath_var.
6733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if eval "test -z \"\$$shlibpath_var\""; then
6734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval "$shlibpath_var=\"\$dir\""
6735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
6736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # This variable tells wrapper scripts just to set shlibpath_var
6741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # rather than running their programs.
6742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libtool_execute_magic="$magic"
6743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Check if any of the arguments is a wrapper script.
6745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    args=
6746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file
6747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
6748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $file in
6749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -*) ;;
6750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do a test to see if this is really a libtool program.
6752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # If there is no directory component, then add one.
6754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $file in
6755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  */* | *\\*) . $file ;;
6756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) . ./$file ;;
6757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Transform arg to wrapped name.
6760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  file="$progdir/$program"
6761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Quote arguments (to preserve shell metacharacters).
6765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      args="$args \"$file\""
6767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$run"; then
6770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$shlibpath_var"; then
6771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Export the shlibpath_var.
6772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval "export $shlibpath_var"
6773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Restore saved environment variables
6776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "${save_LC_ALL+set}" = set; then
6777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	LC_ALL="$save_LC_ALL"; export LC_ALL
6778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "${save_LANG+set}" = set; then
6780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	LANG="$save_LANG"; export LANG
6781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now prepare to actually exec the command.
6784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec_cmd="\$cmd$args"
6785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
6786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Display what would be done.
6787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$shlibpath_var"; then
6788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "export $shlibpath_var"
6790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$cmd$args"
6792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_SUCCESS
6793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool clean and uninstall mode
6797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  clean | uninstall)
6798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: $mode"
6799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    rm="$nonopt"
6800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    files=
6801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    rmforce=
6802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit_status=0
6803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # This variable tells wrapper scripts just to set variables rather
6805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # than running their programs.
6806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libtool_install_magic="$magic"
6807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg
6809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
6810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
6811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -f) rm="$rm $arg"; rmforce=yes ;;
6812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -*) rm="$rm $arg" ;;
6813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *) files="$files $arg" ;;
6814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$rm"; then
6818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify an RM program" 1>&2
6819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
6820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
6821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    rmdirs=
6824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    origobjdir="$objdir"
6826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file in $files; do
6827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "X$dir" = "X$file"; then
6829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=.
6830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	objdir="$origobjdir"
6831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
6832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	objdir="$dir/$origobjdir"
6833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test "$mode" = uninstall && objdir="$dir"
6836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Remember objdir for removal later, being careful to avoid duplicates
6838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$mode" = clean; then
6839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $rmdirs " in
6840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $objdir "*) ;;
6841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) rmdirs="$rmdirs $objdir" ;;
6842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Don't error if the file doesn't exist and rm -f was used.
6846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if (test -L "$file") >/dev/null 2>&1 \
6847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	|| (test -h "$file") >/dev/null 2>&1 \
6848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	|| test -f "$file"; then
6849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	:
6850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      elif test -d "$file"; then
6851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit_status=1
6852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
6853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      elif test "$rmforce" = yes; then
6854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
6855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      rmfiles="$file"
6858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $name in
6860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.la)
6861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Possibly a libtool archive, so verify it.
6862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  . $dir/$name
6864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Delete the libtool libraries and symlinks.
6866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for n in $library_names; do
6867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $objdir/$n"
6868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
6869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$mode" in
6872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  clean)
6873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "  $library_names " in
6874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # "  " in the beginning catches empty $dlname
6875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $dlname "*) ;;
6876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
6878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  uninstall)
6881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$library_names"; then
6882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Do each command in the postuninstall commands.
6883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$postuninstall_cmds
6884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      save_ifs="$IFS"; IFS='~'
6885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      for cmd in $cmds; do
6886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		IFS="$save_ifs"
6887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval cmd=\"$cmd\"
6888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$show "$cmd"
6889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval "$cmd"
6890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$?" -ne 0 && test "$rmforce" != yes; then
6891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit_status=1
6892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
6893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
6894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
6895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$old_library"; then
6898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Do each command in the old_postuninstall commands.
6899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$old_postuninstall_cmds
6900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      save_ifs="$IFS"; IFS='~'
6901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      for cmd in $cmds; do
6902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		IFS="$save_ifs"
6903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval cmd=\"$cmd\"
6904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$show "$cmd"
6905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval "$cmd"
6906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$?" -ne 0 && test "$rmforce" != yes; then
6907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit_status=1
6908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
6909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
6910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
6911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # FIXME: should reinstall the best remaining shared library.
6913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
6919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Possibly a libtool object, so verify it.
6920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Read the .lo file
6923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  . $dir/$name
6924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add PIC object to the list of files to remove.
6926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$pic_object" \
6927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     && test "$pic_object" != none; then
6928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $dir/$pic_object"
6929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add non-PIC object to the list of files to remove.
6932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$non_pic_object" \
6933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     && test "$non_pic_object" != none; then
6934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $dir/$non_pic_object"
6935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$mode" = clean ; then
6941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  noexename=$name
6942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $file in
6943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe)
6944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    file=`$echo $file|${SED} 's,.exe$,,'`
6945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # $file with .exe has already been added to rmfiles,
6947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # add $file without .exe
6948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $file"
6949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do a test to see if this is a libtool program.
6952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=
6954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    . $dir/$noexename
6955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # note $name still contains .exe if it was in $file originally
6957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # as does the version of $file that was added into $rmfiles
6958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$fast_install" = yes && test -n "$relink_command"; then
6960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      rmfiles="$rmfiles $objdir/lt-$name"
6961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$noexename" != "X$name" ; then
6963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$rm $rmfiles"
6970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm $rmfiles || exit_status=1
6971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    objdir="$origobjdir"
6973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Try to remove the ${objdir}s in the directories where we deleted files
6975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for dir in $rmdirs; do
6976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -d "$dir"; then
6977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "rmdir $dir"
6978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run rmdir $dir >/dev/null 2>&1
6979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $exit_status
6983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  "")
6986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$modename: you must specify a MODE" 1>&2
6987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$generic_help" 1>&2
6988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
6989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  esac
6991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -z "$exec_cmd"; then
6993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$generic_help" 1>&2
6995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
6996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
6997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi # test -z "$show_help"
6998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "$exec_cmd"; then
7000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  eval exec $exec_cmd
7001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_FAILURE
7002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
7003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# We need to display help for each of the modes.
7005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase $mode in
7006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"") $echo \
7007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... [MODE-ARG]...
7008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonProvide generalized library-building support services.
7010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --config          show all configuration variables
7012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --debug           enable verbose shell tracing
7013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson-n, --dry-run         display commands without modifying any files
7014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --features        display basic configuration information and exit
7015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --finish          same as \`--mode=finish'
7016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --help            display this help message and exit
7017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
7018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --quiet           same as \`--silent'
7019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --silent          don't print informational messages
7020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --tag=TAG         use configuration variables from tag TAG
7021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --version         print version information
7022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMODE must be one of the following:
7024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      clean           remove files from the build directory
7026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile         compile a source file into a libtool object
7027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      execute         automatically set library path, then run a program
7028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finish          complete the installation of libtool libraries
7029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install         install libraries or executables
7030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      link            create a library or an executable
7031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      uninstall       remove libraries from an installed directory
7032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
7034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsona more detailed description of MODE.
7035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonReport bugs to <bug-libtool@gnu.org>."
7037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_SUCCESS
7038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonclean)
7041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
7042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
7043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRemove files from the build directory.
7045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRM is the name of the program to use to delete files associated with each FILE
7047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
7048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonto RM.
7049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf FILE is a libtool library, object or program, all the files associated
7051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwith it are deleted. Otherwise, only FILE itself is deleted using RM."
7052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompile)
7055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
7056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
7057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCompile a source file into a libtool library object.
7059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode accepts the following additional options:
7061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
7063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -prefer-pic       try to building PIC objects only
7064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -prefer-non-pic   try to building non-PIC objects only
7065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -static           always build a \`.o' file suitable for static linking
7066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
7068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfrom the given SOURCEFILE.
7069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe output file name is determined by removing the directory component from
7071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSOURCEFILE, then substituting the C source code suffix \`.c' with the
7072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary object suffix, \`.lo'."
7073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexecute)
7076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
7077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
7078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAutomatically set library path, then run a program.
7080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode accepts the following additional options:
7082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -dlopen FILE      add the directory containing FILE to the library path
7084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode sets the library path environment variable according to \`-dlopen'
7086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonflags.
7087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf any of the ARGS are libtool executable wrappers, then they are translated
7089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninto their corresponding uninstalled binary, and any of their required library
7090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondirectories are added to the library path.
7091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThen, COMMAND is executed, with ARGS as arguments."
7093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish)
7096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
7097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
7098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonComplete the installation of libtool libraries.
7100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEach LIBDIR is a directory that contains libtool libraries.
7102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe commands that this mode executes may require superuser privileges.  Use
7104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonthe \`--dry-run' option if you just want to see what would be executed."
7105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninstall)
7108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
7109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
7110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonInstall executables or libraries.
7112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonINSTALL-COMMAND is the installation command.  The first component should be
7114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoneither the \`install' or \`cp' program.
7115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe rest of the components are interpreted as arguments to that command (only
7117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonBSD-compatible install options are recognized)."
7118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink)
7121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
7122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
7123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLink object files or libraries together to form another library, or to
7125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncreate an executable program.
7126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLINK-COMMAND is a command using the C compiler that you would use to create
7128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsona program from several object files.
7129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe following components of LINK-COMMAND are treated specially:
7131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -all-static       do not do any dynamic linking at all
7133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -avoid-version    do not add a version suffix if possible
7134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
7135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
7136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
7137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -export-symbols SYMFILE
7138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    try to export only the symbols listed in SYMFILE
7139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -export-symbols-regex REGEX
7140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    try to export only the symbols matching REGEX
7141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -LLIBDIR          search LIBDIR for required installed libraries
7142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -lNAME            OUTPUT-FILE requires the installed library libNAME
7143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -module           build a library that can dlopened
7144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -no-fast-install  disable the fast-install mode
7145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -no-install       link a not-installable executable
7146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -no-undefined     declare that a library does not refer to external symbols
7147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
7148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -objectlist FILE  Use a list of object files found in FILE to specify objects
7149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -precious-files-regex REGEX
7150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                    don't remove output files matching REGEX
7151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -release RELEASE  specify package release information
7152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
7153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
7154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -static           do not do any dynamic linking of libtool libraries
7155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -version-info CURRENT[:REVISION[:AGE]]
7156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    specify library version info [each variable defaults to 0]
7157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAll other options (arguments beginning with \`-') are ignored.
7159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEvery other argument is treated as a filename.  Files ending in \`.la' are
7161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontreated as uninstalled libtool libraries, other files are standard or library
7162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobject files.
7163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
7165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsononly library objects (\`.lo' files) may be specified, and \`-rpath' is
7166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrequired, except when creating a convenience library.
7167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
7169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonusing \`ar' and \`ranlib', or on Windows using \`lib'.
7170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
7172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonis created, otherwise an executable program is created."
7173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonuninstall)
7176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
7177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
7178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRemove libraries from an installation directory.
7180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRM is the name of the program to use to delete files associated with each FILE
7182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
7183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonto RM.
7184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf FILE is a libtool library, all the files associated with it are deleted.
7186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonOtherwise, only FILE itself is deleted using RM."
7187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*)
7190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$modename: invalid operation mode \`$mode'" 1>&2
7191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$help" 1>&2
7192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_FAILURE
7193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
7194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac
7195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$echo
7197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$echo "Try \`$modename --help' for more information about other modes."
7198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexit $?
7200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The TAGs below are defined such that we never get into a situation
7202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# in which we disable both kinds of libraries.  Given conflicting
7203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# choices, we go for a static library, that is the most portable,
7204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# since we can't tell whether shared libraries were disabled because
7205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the user asked for that or because the platform doesn't support
7206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# them.  This is particularly important on AIX, because we don't
7207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# support having both static and shared libraries enabled at the same
7208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# time on that platform, so we default to a shared-only configuration.
7209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If a disable-shared tag is given, we'll fallback to a static-only
7210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# configuration.  But we'll never go from static-only to shared-only.
7211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
7213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=shared
7214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL TAG CONFIG: disable-shared
7215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL TAG CONFIG: disable-static
7217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=static
7218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL TAG CONFIG: disable-static
7219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Local Variables:
7221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# mode:shell-script
7222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# sh-indentation:2
7223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# End:
7224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL TAG CONFIG: CXX
7225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Libtool was configured on host battlefront.corp.google.com:
7227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shell to use when invoking shell scripts.
7229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSHELL="/bin/sh"
7230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to build shared libraries.
7232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_libtool_libs=yes
7233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to build static libraries.
7235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_old_libs=yes
7236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to add -lc for building shared libraries.
7238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_libtool_need_lc=no
7239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to disallow shared libs when runtime libs are static
7241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonallow_libtool_libs_with_static_runtimes=no
7242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to optimize for fast installation.
7244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfast_install=yes
7245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The host system.
7247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost_alias=
7248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost=x86_64-unknown-linux-gnu
7249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost_os=linux-gnu
7250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The build system.
7252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_alias=
7253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild=x86_64-unknown-linux-gnu
7254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_os=linux-gnu
7255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# An echo program that does not interpret backslashes.
7257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonecho="echo"
7258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The archiver.
7260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAR="ar"
7261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAR_FLAGS="cru"
7262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A C compiler.
7264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLTCC="gcc"
7265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# LTCC compiler flags.
7267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLTCFLAGS="-g -O2"
7268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A language-specific compiler.
7270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCC="g++"
7271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is the compiler the GNU C compiler?
7273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwith_gcc=yes
7274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# An ERE matcher.
7276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEGREP="grep -E"
7277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The linker used to build libraries.
7279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLD="/usr/bin/ld -m elf_i386"
7280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we need hard or soft links.
7282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLN_S="ln -s"
7283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A BSD-compatible nm program.
7285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonNM="/usr/bin/nm -B"
7286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A symbol stripping program
7288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSTRIP="strip"
7289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used to examine libraries when file_magic_cmd begins "file"
7291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMAGIC_CMD=file
7292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: DLL creation program.
7294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonDLLTOOL="dlltool"
7295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: object dumper.
7297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonOBJDUMP="objdump"
7298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: assembler.
7300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAS="as"
7301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of the directory that contains temporary libtool files.
7303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobjdir=.libs
7304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to create reloadable object files.
7306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonreload_flag=" -r"
7307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonreload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
7308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to pass a linker flag through the compiler.
7310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwl="-Wl,"
7311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Object file suffix (normally "o").
7313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobjext="o"
7314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Old archive suffix (normally "a").
7316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibext="a"
7317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shared library suffix (normally ".so").
7319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshrext_cmds='.so'
7320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Executable file suffix (normally "").
7322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexeext=""
7323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Additional compiler flags for building library objects.
7325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_flag=" -fPIC -DPIC"
7326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_mode=default
7327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# What is the maximum length of a command?
7329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmax_cmd_len=131072
7330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Does compiler simultaneously support -c and -o options?
7332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler_c_o="yes"
7333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Must we lock files when doing compilation?
7335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_locks="no"
7336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Do we need the lib prefix for modules?
7338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_lib_prefix=no
7339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Do we need a version for libraries?
7341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_version=no
7342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen is supported.
7344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_support=unknown
7345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen of programs is supported.
7347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_self=unknown
7348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen of statically linked programs is supported.
7350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_self_static=unknown
7351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to prevent dynamic linking.
7353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink_static_flag="-static"
7354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to turn off builtin functions.
7356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno_builtin_flag=" -fno-builtin"
7357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to allow reflexive dlopens.
7359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexport_dynamic_flag_spec="\${wl}--export-dynamic"
7360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to generate shared objects directly from archives.
7362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwhole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
7363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to generate thread-safe objects.
7365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonthread_safe_flag_spec=""
7366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Library versioning type.
7368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonversion_type=linux
7369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Format of library name prefix.
7371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibname_spec="lib\$name"
7372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# List of archive names.  First name is the real one, the rest are links.
7374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The last name is the one that the linker finds with -lNAME.
7375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
7376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The coded name of the library, if different from the real name.
7378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsoname_spec="\${libname}\${release}\${shared_ext}\$major"
7379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build and install an old-style archive.
7381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRANLIB="ranlib"
7382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
7383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
7384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_postuninstall_cmds=""
7385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Create an old-style archive from a shared archive.
7387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_from_new_cmds=""
7388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Create a temporary old-style archive to link instead of a shared archive.
7390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_from_expsyms_cmds=""
7391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build and install a shared archive.
7393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonarchive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
7394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonarchive_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"
7395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostinstall_cmds=""
7396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostuninstall_cmds=""
7397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build a loadable module (assumed same as above if empty)
7399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodule_cmds=""
7400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodule_expsym_cmds=""
7401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands to strip libraries.
7403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_striplib="strip --strip-debug"
7404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstriplib="strip --strip-unneeded"
7405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place before the objects being linked to create a
7407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library.
7408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpredep_objects="/usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.0.3/crtbeginS.o"
7409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place after the objects being linked to create a
7411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library.
7412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostdep_objects="/usr/lib/gcc/i486-linux-gnu/4.0.3/crtendS.o /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib/crtn.o"
7413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place before the objects being linked to create a
7415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library.
7416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpredeps=""
7417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place after the objects being linked to create a
7419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library.
7420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
7421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The library search path used internally by the compiler when linking
7423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# a shared library.
7424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler_lib_search_path="-L/usr/lib/gcc/i486-linux-gnu/4.0.3 -L/usr/lib/gcc/i486-linux-gnu/4.0.3 -L/usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.0.3/../../.. -L/lib/../lib -L/usr/lib/../lib"
7425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Method to check whether dependent libraries are shared objects.
7427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondeplibs_check_method="pass_all"
7428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Command to use when deplibs_check_method == file_magic.
7430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfile_magic_cmd="\$MAGIC_CMD"
7431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag that allows shared libraries with undefined symbols to be built.
7433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonallow_undefined_flag=""
7434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag that forces no undefined symbols.
7436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno_undefined_flag=""
7437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to finish a libtool library installation in a directory.
7439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
7440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Same as above, but a single script fragment to be evaled but not shown.
7442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish_eval=""
7443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Take the output of nm and produce a listing of raw symbols and C names.
7445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_pipe="sed -n -e 's/^.*[ 	]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ 	][ 	]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
7446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Transform the output of nm in a proper C declaration
7448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
7449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Transform the output of nm in a C name address pair
7451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (lt_ptr) \\&\\2},/p'"
7452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This is the shared library runtime path variable.
7454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrunpath_var=LD_RUN_PATH
7455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This is the shared library path variable.
7457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshlibpath_var=LD_LIBRARY_PATH
7458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is shlibpath searched before the hard-coded library search path?
7460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshlibpath_overrides_runpath=no
7461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to hardcode a shared library path into an executable.
7463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_action=immediate
7464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we should hardcode library paths into libraries.
7466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_into_libs=yes
7467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag to hardcode $libdir into a binary during linking.
7469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This must work even if $libdir does not exist.
7470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
7471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If ld is used when linking, flag to hardcode $libdir into
7473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# a binary during linking. This must work even if $libdir does
7474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# not exist.
7475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_flag_spec_ld=""
7476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we need a single -rpath flag with a separated argument.
7478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_separator=""
7479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using DIR/libNAME during linking hardcodes DIR into the
7481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# resulting binary.
7482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_direct=no
7483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
7485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# resulting binary.
7486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_minus_L=no
7487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
7489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the resulting binary.
7490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_shlibpath_var=unsupported
7491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if building a shared library automatically hardcodes DIR into the library
7493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# and all subsequent libraries and executables linked against it.
7494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_automatic=no
7495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Variables whose values should be saved in libtool wrapper scripts and
7497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# restored at relink time.
7498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvariables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
7499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether libtool must link a program against all its dependency libraries.
7501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink_all_deplibs=no
7502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compile-time system search path for libraries
7504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsys_lib_search_path_spec=" /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../ /lib/i486-linux-gnu/4.0.3/ /lib/ /usr/lib/i486-linux-gnu/4.0.3/ /usr/lib/"
7505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Run-time system search path for libraries
7507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas "
7508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Fix the shell variable $srcfile for the compiler.
7510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfix_srcfile_path=""
7511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if exported symbols are required.
7513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonalways_export_symbols=no
7514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The commands to list exported symbols.
7516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexport_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
7517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The commands to extract the exported symbol list from a shared archive.
7519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonextract_expsyms_cmds=""
7520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Symbols that should not be listed in the preloaded symbols.
7522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexclude_expsyms=""
7523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Symbols that must always be exported.
7525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninclude_expsyms=""
7526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL TAG CONFIG: CXX
7528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
7529