~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to build-aux/ltmain.sh

Update README.solaris.

Show diffs side-by-side

added added

removed removed

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