~ubuntu-branches/debian/stretch/alpine/stretch

« back to all changes in this revision

Viewing changes to libtool

  • Committer: Bazaar Package Importer
  • Author(s): Asheesh Laroia
  • Date: 2010-10-03 15:31:55 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20101003153155-2exypc96j1e8tw0p
Tags: 2.02-1
* New upstream release, based on re-alpine project
* Updated debian/copyright to reflect this fact
* re-alpine removed the non-free from the tarball, so now
  we do not repack the upstream tarball. (Yay!)

Show diffs side-by-side

added added

removed removed

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