~ubuntu-branches/ubuntu/vivid/blueman/vivid-proposed

« back to all changes in this revision

Viewing changes to libtool

  • Committer: Package Import Robot
  • Author(s): Artur Rona
  • Date: 2014-12-24 18:33:36 UTC
  • mfrom: (2.3.8 sid)
  • Revision ID: package-import@ubuntu.com-20141224183336-cyb82ot0y8tz8flq
Tags: 1.99~alpha1-1ubuntu1
* Merge from Debian unstable.  Remaining changes:
  - debian/patches/01_dont_autostart_lxde.patch:
    + Don't autostart the applet in LXDE.
  - debian/patches/03_filemanager_fix.patch:
    + Add support for more filemanagers.
* debian/patches/02_dont_crash_on_non-bluetooth_card.patch:
  - Dropped, no longer applicable.

Show diffs side-by-side

added added

removed removed

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