~kaozilon/totem/test

« back to all changes in this revision

Viewing changes to ltmain.sh

  • Committer: Package Import Robot
  • Author(s): Jeremy Bicha
  • Date: 2013-05-26 00:07:51 UTC
  • mfrom: (1.6.1) (24.1.4 experimental)
  • Revision ID: package-import@ubuntu.com-20130526000751-kv8ap3x1di4qq8j2
Tags: 3.8.2-0ubuntu1
* Sync with Debian. Remaining changes: 
* debian/control.in:
  - Drop build-depends on libepc-ui-dev and libgrilo-0.2-dev (in universe)
  - Drop libxtst-dev build-depends so that the (redundant) fake key presses
    for inhibiting the screensaver are disabled (LP: #1007438)
  - Build-depend on libzeitgeist-dev
  - Suggest rather than recommend gstreamer components in universe
  - Add totem-plugins-extra
  - Add XB-Npp-Description and XB-Npp-Filename header to the 
    totem-mozilla package to improve ubufox/ubuntu plugin db integration 
  - Refer to Firefox in totem-mozilla description instead of Iceweasel
  - Don't have totem-mozilla recommend any particular browser
  - Drop obsolete python library dependencies since iplayer is no longer
    included
* debian/totem-common.install, debian/source_totem.py:
  - Install Ubuntu apport debugging hook
* debian/totem-plugins-extra.install:
  - Universe plugins split out of totem-plugins (currently only gromit)
* debian/totem-plugins.install:    
  - Skip the plugins split to -extra and add the zeitgeist plugin
* debian/rules:
  - Build with --fail-missing, to ensure we install everything. 
    + Ignore libtotem.{,l}a since we delibrately don't install these.
  - Re-enable hardening, make sure both PIE and BINDNOW are used
    by setting hardening=+all. (LP: #1039604)
* debian/patches/91_quicklist_entries.patch:
  - Add static quicklist
* debian/patches/92_gst-plugins-good.patch:
  - Build without unnecessary gstreamer1.0-bad dependency
* debian/patches/93_grilo_optional.patch:
  - Allow building without grilo while grilo MIR is still pending
* debian/patches/correct_desktop_mimetypes.patch:
  - Don't list the mimetypes after the unity lists
* debian/patches/revert_shell_menu.patch: 
  - revert the use of a shell menu until indicator-appmenu can handle
    the mixed shell/traditional menus itself
* New upstream release

Show diffs side-by-side

added added

removed removed

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