~ubuntu-branches/ubuntu/vivid/sflphone/vivid

« back to all changes in this revision

Viewing changes to gnome/ltmain.sh

  • Committer: Package Import Robot
  • Author(s): Mark Purcell
  • Date: 2013-06-30 11:40:56 UTC
  • mfrom: (4.1.18 saucy-proposed)
  • Revision ID: package-import@ubuntu.com-20130630114056-0np50jkyqo6vnmii
Tags: 1.2.3-2
* changeset_r92d62cfc54732bbbcfff2b1d36c096b120b981a5.diff 
  - fixes automatic endian detection 
* Update Vcs: fixes vcs-field-not-canonical

Show diffs side-by-side

added added

removed removed

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