~ubuntu-branches/ubuntu/dapper/gnutls12/dapper

« back to all changes in this revision

Viewing changes to ltmain.sh

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Urlichs
  • Date: 2005-11-15 19:26:02 UTC
  • Revision ID: james.westby@ubuntu.com-20051115192602-f1ux56uyducz3f96
Tags: upstream-1.2.9
ImportĀ upstreamĀ versionĀ 1.2.9

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# ltmain.sh - Provide generalized library-building support services.
 
2
# NOTE: Changing this file will not affect anything until you rerun configure.
 
3
#
 
4
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
 
5
# Free Software Foundation, Inc.
 
6
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
7
#
 
8
# This program is free software; you can redistribute it and/or modify
 
9
# it under the terms of the GNU General Public License as published by
 
10
# the Free Software Foundation; either version 2 of the License, or
 
11
# (at your option) any later version.
 
12
#
 
13
# This program is distributed in the hope that it will be useful, but
 
14
# WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
16
# General Public License for more details.
 
17
#
 
18
# You should have received a copy of the GNU General Public License
 
19
# along with this program; if not, write to the Free Software
 
20
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
21
#
 
22
# As a special exception to the GNU General Public License, if you
 
23
# distribute this file as part of a program that contains a
 
24
# configuration script generated by Autoconf, you may include it under
 
25
# the same distribution terms that you use for the rest of that program.
 
26
 
 
27
basename="s,^.*/,,g"
 
28
 
 
29
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 
30
# is ksh but when the shell is invoked as "sh" and the current value of
 
31
# the _XPG environment variable is not equal to 1 (one), the special
 
32
# positional parameter $0, within a function call, is the name of the
 
33
# function.
 
34
progpath="$0"
 
35
 
 
36
# The name of this program:
 
37
progname=`echo "$progpath" | $SED $basename`
 
38
modename="$progname"
 
39
 
 
40
# Global variables:
 
41
EXIT_SUCCESS=0
 
42
EXIT_FAILURE=1
 
43
 
 
44
PROGRAM=ltmain.sh
 
45
PACKAGE=libtool
 
46
VERSION=1.5.21a
 
47
TIMESTAMP=" (1.1220.2.289 2005/09/01 16:06:01)"
 
48
 
 
49
# See if we are running on zsh, and set the options which allow our
 
50
# commands through without removal of \ escapes.
 
51
if test -n "${ZSH_VERSION+set}" ; then
 
52
  setopt NO_GLOB_SUBST
 
53
fi
 
54
 
 
55
# Check that we have a working $echo.
 
56
if test "X$1" = X--no-reexec; then
 
57
  # Discard the --no-reexec flag, and continue.
 
58
  shift
 
59
elif test "X$1" = X--fallback-echo; then
 
60
  # Avoid inline document here, it may be left over
 
61
  :
 
62
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
 
63
  # Yippee, $echo works!
 
64
  :
 
65
else
 
66
  # Restart under the correct shell, and then maybe $echo will work.
 
67
  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
 
68
fi
 
69
 
 
70
if test "X$1" = X--fallback-echo; then
 
71
  # used as fallback echo
 
72
  shift
 
73
  cat <<EOF
 
74
$*
 
75
EOF
 
76
  exit $EXIT_SUCCESS
 
77
fi
 
78
 
 
79
default_mode=
 
80
help="Try \`$progname --help' for more information."
 
81
magic="%%%MAGIC variable%%%"
 
82
mkdir="mkdir"
 
83
mv="mv -f"
 
84
rm="rm -f"
 
85
 
 
86
# Sed substitution that helps us do robust quoting.  It backslashifies
 
87
# metacharacters that are still active within double-quoted strings.
 
88
Xsed="${SED}"' -e 1s/^X//'
 
89
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
 
90
# test EBCDIC or ASCII
 
91
case `echo X|tr X '\101'` in
 
92
 A) # ASCII based system
 
93
    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
 
94
  SP2NL='tr \040 \012'
 
95
  NL2SP='tr \015\012 \040\040'
 
96
  ;;
 
97
 *) # EBCDIC based system
 
98
  SP2NL='tr \100 \n'
 
99
  NL2SP='tr \r\n \100\100'
 
100
  ;;
 
101
esac
 
102
 
 
103
# NLS nuisances.
 
104
# Only set LANG and LC_ALL to C if already set.
 
105
# These must not be set unconditionally because not all systems understand
 
106
# e.g. LANG=C (notably SCO).
 
107
# We save the old values to restore during execute mode.
 
108
if test "${LC_ALL+set}" = set; then
 
109
  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
 
110
fi
 
111
if test "${LANG+set}" = set; then
 
112
  save_LANG="$LANG"; LANG=C; export LANG
 
113
fi
 
114
 
 
115
# Make sure IFS has a sensible default
 
116
lt_nl='
 
117
'
 
118
IFS="   $lt_nl"
 
119
 
 
120
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
 
121
  $echo "$modename: not configured to build any kind of library" 1>&2
 
122
  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
 
123
  exit $EXIT_FAILURE
 
124
fi
 
125
 
 
126
# Global variables.
 
127
mode=$default_mode
 
128
nonopt=
 
129
prev=
 
130
prevopt=
 
131
run=
 
132
show="$echo"
 
133
show_help=
 
134
execute_dlfiles=
 
135
lo2o="s/\\.lo\$/.${objext}/"
 
136
o2lo="s/\\.${objext}\$/.lo/"
 
137
 
 
138
#####################################
 
139
# Shell function definitions:
 
140
# This seems to be the best place for them
 
141
 
 
142
# func_win32_libid arg
 
143
# return the library type of file 'arg'
 
144
#
 
145
# Need a lot of goo to handle *both* DLLs and import libs
 
146
# Has to be a shell function in order to 'eat' the argument
 
147
# that is supplied when $file_magic_command is called.
 
148
func_win32_libid ()
 
149
{
 
150
  win32_libid_type="unknown"
 
151
  win32_fileres=`file -L $1 2>/dev/null`
 
152
  case $win32_fileres in
 
153
  *ar\ archive\ import\ library*) # definitely import
 
154
    win32_libid_type="x86 archive import"
 
155
    ;;
 
156
  *ar\ archive*) # could be an import, or static
 
157
    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
 
158
      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
 
159
      win32_nmres=`eval $NM -f posix -A $1 | \
 
160
        sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
 
161
      if test "X$win32_nmres" = "Ximport" ; then
 
162
        win32_libid_type="x86 archive import"
 
163
      else
 
164
        win32_libid_type="x86 archive static"
 
165
      fi
 
166
    fi
 
167
    ;;
 
168
  *DLL*)
 
169
    win32_libid_type="x86 DLL"
 
170
    ;;
 
171
  *executable*) # but shell scripts are "executable" too...
 
172
    case $win32_fileres in
 
173
    *MS\ Windows\ PE\ Intel*)
 
174
      win32_libid_type="x86 DLL"
 
175
      ;;
 
176
    esac
 
177
    ;;
 
178
  esac
 
179
  $echo $win32_libid_type
 
180
}
 
181
 
 
182
 
 
183
# func_infer_tag arg
 
184
# Infer tagged configuration to use if any are available and
 
185
# if one wasn't chosen via the "--tag" command line option.
 
186
# Only attempt this if the compiler in the base compile
 
187
# command doesn't match the default compiler.
 
188
# arg is usually of the form 'gcc ...'
 
189
func_infer_tag ()
 
190
{
 
191
    if test -n "$available_tags" && test -z "$tagname"; then
 
192
      CC_quoted=
 
193
      for arg in $CC; do
 
194
        case $arg in
 
195
          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
 
196
          arg="\"$arg\""
 
197
          ;;
 
198
        esac
 
199
        CC_quoted="$CC_quoted $arg"
 
200
      done
 
201
      case $@ in
 
202
      # Blanks in the command may have been stripped by the calling shell,
 
203
      # but not from the CC environment variable when configure was run.
 
204
      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
 
205
      # Blanks at the start of $base_compile will cause this to fail
 
206
      # if we don't check for them as well.
 
207
      *)
 
208
        for z in $available_tags; do
 
209
          if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
 
210
            # Evaluate the configuration.
 
211
            eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
 
212
            CC_quoted=
 
213
            for arg in $CC; do
 
214
            # Double-quote args containing other shell metacharacters.
 
215
            case $arg in
 
216
              *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
217
              arg="\"$arg\""
 
218
              ;;
 
219
            esac
 
220
            CC_quoted="$CC_quoted $arg"
 
221
          done
 
222
            case "$@ " in
 
223
              " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
 
224
              # The compiler in the base compile command matches
 
225
              # the one in the tagged configuration.
 
226
              # Assume this is the tagged configuration we want.
 
227
              tagname=$z
 
228
              break
 
229
              ;;
 
230
            esac
 
231
          fi
 
232
        done
 
233
        # If $tagname still isn't set, then no tagged configuration
 
234
        # was found and let the user know that the "--tag" command
 
235
        # line option must be used.
 
236
        if test -z "$tagname"; then
 
237
          $echo "$modename: unable to infer tagged configuration"
 
238
          $echo "$modename: specify a tag with \`--tag'" 1>&2
 
239
          exit $EXIT_FAILURE
 
240
#        else
 
241
#          $echo "$modename: using $tagname tagged configuration"
 
242
        fi
 
243
        ;;
 
244
      esac
 
245
    fi
 
246
}
 
247
 
 
248
 
 
249
# func_extract_an_archive dir oldlib
 
250
func_extract_an_archive ()
 
251
{
 
252
    f_ex_an_ar_dir="$1"; shift
 
253
    f_ex_an_ar_oldlib="$1"
 
254
 
 
255
    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
 
256
    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
 
257
    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
 
258
     :
 
259
    else
 
260
      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
 
261
      exit $EXIT_FAILURE
 
262
    fi
 
263
}
 
264
 
 
265
# func_extract_archives gentop oldlib ...
 
266
func_extract_archives ()
 
267
{
 
268
    my_gentop="$1"; shift
 
269
    my_oldlibs=${1+"$@"}
 
270
    my_oldobjs=""
 
271
    my_xlib=""
 
272
    my_xabs=""
 
273
    my_xdir=""
 
274
    my_status=""
 
275
 
 
276
    $show "${rm}r $my_gentop"
 
277
    $run ${rm}r "$my_gentop"
 
278
    $show "$mkdir $my_gentop"
 
279
    $run $mkdir "$my_gentop"
 
280
    my_status=$?
 
281
    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
 
282
      exit $my_status
 
283
    fi
 
284
 
 
285
    for my_xlib in $my_oldlibs; do
 
286
      # Extract the objects.
 
287
      case $my_xlib in
 
288
        [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
 
289
        *) my_xabs=`pwd`"/$my_xlib" ;;
 
290
      esac
 
291
      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
 
292
      my_xdir="$my_gentop/$my_xlib"
 
293
 
 
294
      $show "${rm}r $my_xdir"
 
295
      $run ${rm}r "$my_xdir"
 
296
      $show "$mkdir $my_xdir"
 
297
      $run $mkdir "$my_xdir"
 
298
      status=$?
 
299
      if test "$status" -ne 0 && test ! -d "$my_xdir"; then
 
300
        exit $status
 
301
      fi
 
302
      case $host in
 
303
      *-darwin*)
 
304
        $show "Extracting $my_xabs"
 
305
        # Do not bother doing anything if just a dry run
 
306
        if test -z "$run"; then
 
307
          darwin_orig_dir=`pwd`
 
308
          cd $my_xdir || exit $?
 
309
          darwin_archive=$my_xabs
 
310
          darwin_curdir=`pwd`
 
311
          darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
 
312
          darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
 
313
          if test -n "$darwin_arches"; then 
 
314
            darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
 
315
            darwin_arch=
 
316
            $show "$darwin_base_archive has multiple architectures $darwin_arches"
 
317
            for darwin_arch in  $darwin_arches ; do
 
318
              mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 
319
              lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
 
320
              cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
 
321
              func_extract_an_archive "`pwd`" "${darwin_base_archive}"
 
322
              cd "$darwin_curdir"
 
323
              $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
 
324
            done # $darwin_arches
 
325
      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
 
326
            darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
 
327
            darwin_file=
 
328
            darwin_files=
 
329
            for darwin_file in $darwin_filelist; do
 
330
              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
 
331
              lipo -create -output "$darwin_file" $darwin_files
 
332
            done # $darwin_filelist
 
333
            ${rm}r unfat-$$
 
334
            cd "$darwin_orig_dir"
 
335
          else
 
336
            cd "$darwin_orig_dir"
 
337
            func_extract_an_archive "$my_xdir" "$my_xabs"
 
338
          fi # $darwin_arches
 
339
        fi # $run
 
340
        ;;
 
341
      *)
 
342
        func_extract_an_archive "$my_xdir" "$my_xabs"
 
343
        ;;
 
344
      esac
 
345
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
 
346
    done
 
347
    func_extract_archives_result="$my_oldobjs"
 
348
}
 
349
# End of Shell function definitions
 
350
#####################################
 
351
 
 
352
# Darwin sucks
 
353
eval std_shrext=\"$shrext_cmds\"
 
354
 
 
355
# Parse our command line options once, thoroughly.
 
356
while test "$#" -gt 0
 
357
do
 
358
  arg="$1"
 
359
  shift
 
360
 
 
361
  case $arg in
 
362
  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
 
363
  *) optarg= ;;
 
364
  esac
 
365
 
 
366
  # If the previous option needs an argument, assign it.
 
367
  if test -n "$prev"; then
 
368
    case $prev in
 
369
    execute_dlfiles)
 
370
      execute_dlfiles="$execute_dlfiles $arg"
 
371
      ;;
 
372
    tag)
 
373
      tagname="$arg"
 
374
      preserve_args="${preserve_args}=$arg"
 
375
 
 
376
      # Check whether tagname contains only valid characters
 
377
      case $tagname in
 
378
      *[!-_A-Za-z0-9,/]*)
 
379
        $echo "$progname: invalid tag name: $tagname" 1>&2
 
380
        exit $EXIT_FAILURE
 
381
        ;;
 
382
      esac
 
383
 
 
384
      case $tagname in
 
385
      CC)
 
386
        # Don't test for the "default" C tag, as we know, it's there, but
 
387
        # not specially marked.
 
388
        ;;
 
389
      *)
 
390
        if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
 
391
          taglist="$taglist $tagname"
 
392
          # Evaluate the configuration.
 
393
          eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
 
394
        else
 
395
          $echo "$progname: ignoring unknown tag $tagname" 1>&2
 
396
        fi
 
397
        ;;
 
398
      esac
 
399
      ;;
 
400
    *)
 
401
      eval "$prev=\$arg"
 
402
      ;;
 
403
    esac
 
404
 
 
405
    prev=
 
406
    prevopt=
 
407
    continue
 
408
  fi
 
409
 
 
410
  # Have we seen a non-optional argument yet?
 
411
  case $arg in
 
412
  --help)
 
413
    show_help=yes
 
414
    ;;
 
415
 
 
416
  --version)
 
417
    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
 
418
    $echo
 
419
    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
 
420
    $echo "This is free software; see the source for copying conditions.  There is NO"
 
421
    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
422
    exit $?
 
423
    ;;
 
424
 
 
425
  --config)
 
426
    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
 
427
    # Now print the configurations for the tags.
 
428
    for tagname in $taglist; do
 
429
      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
 
430
    done
 
431
    exit $?
 
432
    ;;
 
433
 
 
434
  --debug)
 
435
    $echo "$progname: enabling shell trace mode"
 
436
    set -x
 
437
    preserve_args="$preserve_args $arg"
 
438
    ;;
 
439
 
 
440
  --dry-run | -n)
 
441
    run=:
 
442
    ;;
 
443
 
 
444
  --features)
 
445
    $echo "host: $host"
 
446
    if test "$build_libtool_libs" = yes; then
 
447
      $echo "enable shared libraries"
 
448
    else
 
449
      $echo "disable shared libraries"
 
450
    fi
 
451
    if test "$build_old_libs" = yes; then
 
452
      $echo "enable static libraries"
 
453
    else
 
454
      $echo "disable static libraries"
 
455
    fi
 
456
    exit $?
 
457
    ;;
 
458
 
 
459
  --finish) mode="finish" ;;
 
460
 
 
461
  --mode) prevopt="--mode" prev=mode ;;
 
462
  --mode=*) mode="$optarg" ;;
 
463
 
 
464
  --preserve-dup-deps) duplicate_deps="yes" ;;
 
465
 
 
466
  --quiet | --silent)
 
467
    show=:
 
468
    preserve_args="$preserve_args $arg"
 
469
    ;;
 
470
 
 
471
  --tag) prevopt="--tag" prev=tag ;;
 
472
  --tag=*)
 
473
    set tag "$optarg" ${1+"$@"}
 
474
    shift
 
475
    prev=tag
 
476
    preserve_args="$preserve_args --tag"
 
477
    ;;
 
478
 
 
479
  -dlopen)
 
480
    prevopt="-dlopen"
 
481
    prev=execute_dlfiles
 
482
    ;;
 
483
 
 
484
  -*)
 
485
    $echo "$modename: unrecognized option \`$arg'" 1>&2
 
486
    $echo "$help" 1>&2
 
487
    exit $EXIT_FAILURE
 
488
    ;;
 
489
 
 
490
  *)
 
491
    nonopt="$arg"
 
492
    break
 
493
    ;;
 
494
  esac
 
495
done
 
496
 
 
497
if test -n "$prevopt"; then
 
498
  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
 
499
  $echo "$help" 1>&2
 
500
  exit $EXIT_FAILURE
 
501
fi
 
502
 
 
503
# If this variable is set in any of the actions, the command in it
 
504
# will be execed at the end.  This prevents here-documents from being
 
505
# left over by shells.
 
506
exec_cmd=
 
507
 
 
508
if test -z "$show_help"; then
 
509
 
 
510
  # Infer the operation mode.
 
511
  if test -z "$mode"; then
 
512
    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
 
513
    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
 
514
    case $nonopt in
 
515
    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
 
516
      mode=link
 
517
      for arg
 
518
      do
 
519
        case $arg in
 
520
        -c)
 
521
           mode=compile
 
522
           break
 
523
           ;;
 
524
        esac
 
525
      done
 
526
      ;;
 
527
    *db | *dbx | *strace | *truss)
 
528
      mode=execute
 
529
      ;;
 
530
    *install*|cp|mv)
 
531
      mode=install
 
532
      ;;
 
533
    *rm)
 
534
      mode=uninstall
 
535
      ;;
 
536
    *)
 
537
      # If we have no mode, but dlfiles were specified, then do execute mode.
 
538
      test -n "$execute_dlfiles" && mode=execute
 
539
 
 
540
      # Just use the default operation mode.
 
541
      if test -z "$mode"; then
 
542
        if test -n "$nonopt"; then
 
543
          $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
 
544
        else
 
545
          $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
 
546
        fi
 
547
      fi
 
548
      ;;
 
549
    esac
 
550
  fi
 
551
 
 
552
  # Only execute mode is allowed to have -dlopen flags.
 
553
  if test -n "$execute_dlfiles" && test "$mode" != execute; then
 
554
    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
 
555
    $echo "$help" 1>&2
 
556
    exit $EXIT_FAILURE
 
557
  fi
 
558
 
 
559
  # Change the help message to a mode-specific one.
 
560
  generic_help="$help"
 
561
  help="Try \`$modename --help --mode=$mode' for more information."
 
562
 
 
563
  # These modes are in order of execution frequency so that they run quickly.
 
564
  case $mode in
 
565
  # libtool compile mode
 
566
  compile)
 
567
    modename="$modename: compile"
 
568
    # Get the compilation command and the source file.
 
569
    base_compile=
 
570
    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
 
571
    suppress_opt=yes
 
572
    suppress_output=
 
573
    arg_mode=normal
 
574
    libobj=
 
575
    later=
 
576
 
 
577
    for arg
 
578
    do
 
579
      case $arg_mode in
 
580
      arg  )
 
581
        # do not "continue".  Instead, add this to base_compile
 
582
        lastarg="$arg"
 
583
        arg_mode=normal
 
584
        ;;
 
585
 
 
586
      target )
 
587
        libobj="$arg"
 
588
        arg_mode=normal
 
589
        continue
 
590
        ;;
 
591
 
 
592
      normal )
 
593
        # Accept any command-line options.
 
594
        case $arg in
 
595
        -o)
 
596
          if test -n "$libobj" ; then
 
597
            $echo "$modename: you cannot specify \`-o' more than once" 1>&2
 
598
            exit $EXIT_FAILURE
 
599
          fi
 
600
          arg_mode=target
 
601
          continue
 
602
          ;;
 
603
 
 
604
        -static | -prefer-pic | -prefer-non-pic)
 
605
          later="$later $arg"
 
606
          continue
 
607
          ;;
 
608
 
 
609
        -no-suppress)
 
610
          suppress_opt=no
 
611
          continue
 
612
          ;;
 
613
 
 
614
        -Xcompiler)
 
615
          arg_mode=arg  #  the next one goes into the "base_compile" arg list
 
616
          continue      #  The current "srcfile" will either be retained or
 
617
          ;;            #  replaced later.  I would guess that would be a bug.
 
618
 
 
619
        -Wc,*)
 
620
          args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
 
621
          lastarg=
 
622
          save_ifs="$IFS"; IFS=','
 
623
          for arg in $args; do
 
624
            IFS="$save_ifs"
 
625
 
 
626
            # Double-quote args containing other shell metacharacters.
 
627
            # Many Bourne shells cannot handle close brackets correctly
 
628
            # in scan sets, so we specify it separately.
 
629
            case $arg in
 
630
              *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
631
              arg="\"$arg\""
 
632
              ;;
 
633
            esac
 
634
            lastarg="$lastarg $arg"
 
635
          done
 
636
          IFS="$save_ifs"
 
637
          lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
 
638
 
 
639
          # Add the arguments to base_compile.
 
640
          base_compile="$base_compile $lastarg"
 
641
          continue
 
642
          ;;
 
643
 
 
644
        * )
 
645
          # Accept the current argument as the source file.
 
646
          # The previous "srcfile" becomes the current argument.
 
647
          #
 
648
          lastarg="$srcfile"
 
649
          srcfile="$arg"
 
650
          ;;
 
651
        esac  #  case $arg
 
652
        ;;
 
653
      esac    #  case $arg_mode
 
654
 
 
655
      # Aesthetically quote the previous argument.
 
656
      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
 
657
 
 
658
      case $lastarg in
 
659
      # Double-quote args containing other shell metacharacters.
 
660
      # Many Bourne shells cannot handle close brackets correctly
 
661
      # in scan sets, and some SunOS ksh mistreat backslash-escaping
 
662
      # in scan sets (worked around with variable expansion),
 
663
      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
 
664
      # at all, so we specify them separately.
 
665
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
666
        lastarg="\"$lastarg\""
 
667
        ;;
 
668
      esac
 
669
 
 
670
      base_compile="$base_compile $lastarg"
 
671
    done # for arg
 
672
 
 
673
    case $arg_mode in
 
674
    arg)
 
675
      $echo "$modename: you must specify an argument for -Xcompile"
 
676
      exit $EXIT_FAILURE
 
677
      ;;
 
678
    target)
 
679
      $echo "$modename: you must specify a target with \`-o'" 1>&2
 
680
      exit $EXIT_FAILURE
 
681
      ;;
 
682
    *)
 
683
      # Get the name of the library object.
 
684
      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
 
685
      ;;
 
686
    esac
 
687
 
 
688
    # Recognize several different file suffixes.
 
689
    # If the user specifies -o file.o, it is replaced with file.lo
 
690
    xform='[cCFSifmso]'
 
691
    case $libobj in
 
692
    *.ada) xform=ada ;;
 
693
    *.adb) xform=adb ;;
 
694
    *.ads) xform=ads ;;
 
695
    *.asm) xform=asm ;;
 
696
    *.c++) xform=c++ ;;
 
697
    *.cc) xform=cc ;;
 
698
    *.ii) xform=ii ;;
 
699
    *.class) xform=class ;;
 
700
    *.cpp) xform=cpp ;;
 
701
    *.cxx) xform=cxx ;;
 
702
    *.f90) xform=f90 ;;
 
703
    *.for) xform=for ;;
 
704
    *.java) xform=java ;;
 
705
    esac
 
706
 
 
707
    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
 
708
 
 
709
    case $libobj in
 
710
    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
 
711
    *)
 
712
      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
 
713
      exit $EXIT_FAILURE
 
714
      ;;
 
715
    esac
 
716
 
 
717
    func_infer_tag $base_compile
 
718
 
 
719
    for arg in $later; do
 
720
      case $arg in
 
721
      -static)
 
722
        build_old_libs=yes
 
723
        continue
 
724
        ;;
 
725
 
 
726
      -prefer-pic)
 
727
        pic_mode=yes
 
728
        continue
 
729
        ;;
 
730
 
 
731
      -prefer-non-pic)
 
732
        pic_mode=no
 
733
        continue
 
734
        ;;
 
735
      esac
 
736
    done
 
737
 
 
738
    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
 
739
    case $qlibobj in
 
740
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
741
        qlibobj="\"$qlibobj\"" ;;
 
742
    esac
 
743
    test "X$libobj" != "X$qlibobj" \
 
744
        && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"'  &()|`$[]' \
 
745
        && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
 
746
    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
 
747
    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
 
748
    if test "X$xdir" = "X$obj"; then
 
749
      xdir=
 
750
    else
 
751
      xdir=$xdir/
 
752
    fi
 
753
    lobj=${xdir}$objdir/$objname
 
754
 
 
755
    if test -z "$base_compile"; then
 
756
      $echo "$modename: you must specify a compilation command" 1>&2
 
757
      $echo "$help" 1>&2
 
758
      exit $EXIT_FAILURE
 
759
    fi
 
760
 
 
761
    # Delete any leftover library objects.
 
762
    if test "$build_old_libs" = yes; then
 
763
      removelist="$obj $lobj $libobj ${libobj}T"
 
764
    else
 
765
      removelist="$lobj $libobj ${libobj}T"
 
766
    fi
 
767
 
 
768
    $run $rm $removelist
 
769
    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
 
770
 
 
771
    # On Cygwin there's no "real" PIC flag so we must build both object types
 
772
    case $host_os in
 
773
    cygwin* | mingw* | pw32* | os2*)
 
774
      pic_mode=default
 
775
      ;;
 
776
    esac
 
777
    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
 
778
      # non-PIC code in shared libraries is not supported
 
779
      pic_mode=default
 
780
    fi
 
781
 
 
782
    # Calculate the filename of the output object if compiler does
 
783
    # not support -o with -c
 
784
    if test "$compiler_c_o" = no; then
 
785
      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
 
786
      lockfile="$output_obj.lock"
 
787
      removelist="$removelist $output_obj $lockfile"
 
788
      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
 
789
    else
 
790
      output_obj=
 
791
      need_locks=no
 
792
      lockfile=
 
793
    fi
 
794
 
 
795
    # Lock this critical section if it is needed
 
796
    # We use this script file to make the link, it avoids creating a new file
 
797
    if test "$need_locks" = yes; then
 
798
      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
 
799
        $show "Waiting for $lockfile to be removed"
 
800
        sleep 2
 
801
      done
 
802
    elif test "$need_locks" = warn; then
 
803
      if test -f "$lockfile"; then
 
804
        $echo "\
 
805
*** ERROR, $lockfile exists and contains:
 
806
`cat $lockfile 2>/dev/null`
 
807
 
 
808
This indicates that another process is trying to use the same
 
809
temporary object file, and libtool could not work around it because
 
810
your compiler does not support \`-c' and \`-o' together.  If you
 
811
repeat this compilation, it may succeed, by chance, but you had better
 
812
avoid parallel builds (make -j) in this platform, or get a better
 
813
compiler."
 
814
 
 
815
        $run $rm $removelist
 
816
        exit $EXIT_FAILURE
 
817
      fi
 
818
      $echo "$srcfile" > "$lockfile"
 
819
    fi
 
820
 
 
821
    if test -n "$fix_srcfile_path"; then
 
822
      eval srcfile=\"$fix_srcfile_path\"
 
823
    fi
 
824
    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
 
825
    case $qsrcfile in
 
826
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
827
      qsrcfile="\"$qsrcfile\"" ;;
 
828
    esac
 
829
 
 
830
    $run $rm "$libobj" "${libobj}T"
 
831
 
 
832
    # Create a libtool object file (analogous to a ".la" file),
 
833
    # but don't create it if we're doing a dry run.
 
834
    test -z "$run" && cat > ${libobj}T <<EOF
 
835
# $libobj - a libtool object file
 
836
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
837
#
 
838
# Please DO NOT delete this file!
 
839
# It is necessary for linking the library.
 
840
 
 
841
# Name of the PIC object.
 
842
EOF
 
843
 
 
844
    # Only build a PIC object if we are building libtool libraries.
 
845
    if test "$build_libtool_libs" = yes; then
 
846
      # Without this assignment, base_compile gets emptied.
 
847
      fbsd_hideous_sh_bug=$base_compile
 
848
 
 
849
      if test "$pic_mode" != no; then
 
850
        command="$base_compile $qsrcfile $pic_flag"
 
851
      else
 
852
        # Don't build PIC code
 
853
        command="$base_compile $qsrcfile"
 
854
      fi
 
855
 
 
856
      if test ! -d "${xdir}$objdir"; then
 
857
        $show "$mkdir ${xdir}$objdir"
 
858
        $run $mkdir ${xdir}$objdir
 
859
        status=$?
 
860
        if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
 
861
          exit $status
 
862
        fi
 
863
      fi
 
864
 
 
865
      if test -z "$output_obj"; then
 
866
        # Place PIC objects in $objdir
 
867
        command="$command -o $lobj"
 
868
      fi
 
869
 
 
870
      $run $rm "$lobj" "$output_obj"
 
871
 
 
872
      $show "$command"
 
873
      if $run eval "$command"; then :
 
874
      else
 
875
        test -n "$output_obj" && $run $rm $removelist
 
876
        exit $EXIT_FAILURE
 
877
      fi
 
878
 
 
879
      if test "$need_locks" = warn &&
 
880
         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 
881
        $echo "\
 
882
*** ERROR, $lockfile contains:
 
883
`cat $lockfile 2>/dev/null`
 
884
 
 
885
but it should contain:
 
886
$srcfile
 
887
 
 
888
This indicates that another process is trying to use the same
 
889
temporary object file, and libtool could not work around it because
 
890
your compiler does not support \`-c' and \`-o' together.  If you
 
891
repeat this compilation, it may succeed, by chance, but you had better
 
892
avoid parallel builds (make -j) in this platform, or get a better
 
893
compiler."
 
894
 
 
895
        $run $rm $removelist
 
896
        exit $EXIT_FAILURE
 
897
      fi
 
898
 
 
899
      # Just move the object if needed, then go on to compile the next one
 
900
      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
 
901
        $show "$mv $output_obj $lobj"
 
902
        if $run $mv $output_obj $lobj; then :
 
903
        else
 
904
          error=$?
 
905
          $run $rm $removelist
 
906
          exit $error
 
907
        fi
 
908
      fi
 
909
 
 
910
      # Append the name of the PIC object to the libtool object file.
 
911
      test -z "$run" && cat >> ${libobj}T <<EOF
 
912
pic_object='$objdir/$objname'
 
913
 
 
914
EOF
 
915
 
 
916
      # Allow error messages only from the first compilation.
 
917
      if test "$suppress_opt" = yes; then
 
918
        suppress_output=' >/dev/null 2>&1'
 
919
      fi
 
920
    else
 
921
      # No PIC object so indicate it doesn't exist in the libtool
 
922
      # object file.
 
923
      test -z "$run" && cat >> ${libobj}T <<EOF
 
924
pic_object=none
 
925
 
 
926
EOF
 
927
    fi
 
928
 
 
929
    # Only build a position-dependent object if we build old libraries.
 
930
    if test "$build_old_libs" = yes; then
 
931
      if test "$pic_mode" != yes; then
 
932
        # Don't build PIC code
 
933
        command="$base_compile $qsrcfile"
 
934
      else
 
935
        command="$base_compile $qsrcfile $pic_flag"
 
936
      fi
 
937
      if test "$compiler_c_o" = yes; then
 
938
        command="$command -o $obj"
 
939
      fi
 
940
 
 
941
      # Suppress compiler output if we already did a PIC compilation.
 
942
      command="$command$suppress_output"
 
943
      $run $rm "$obj" "$output_obj"
 
944
      $show "$command"
 
945
      if $run eval "$command"; then :
 
946
      else
 
947
        $run $rm $removelist
 
948
        exit $EXIT_FAILURE
 
949
      fi
 
950
 
 
951
      if test "$need_locks" = warn &&
 
952
         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
 
953
        $echo "\
 
954
*** ERROR, $lockfile contains:
 
955
`cat $lockfile 2>/dev/null`
 
956
 
 
957
but it should contain:
 
958
$srcfile
 
959
 
 
960
This indicates that another process is trying to use the same
 
961
temporary object file, and libtool could not work around it because
 
962
your compiler does not support \`-c' and \`-o' together.  If you
 
963
repeat this compilation, it may succeed, by chance, but you had better
 
964
avoid parallel builds (make -j) in this platform, or get a better
 
965
compiler."
 
966
 
 
967
        $run $rm $removelist
 
968
        exit $EXIT_FAILURE
 
969
      fi
 
970
 
 
971
      # Just move the object if needed
 
972
      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
 
973
        $show "$mv $output_obj $obj"
 
974
        if $run $mv $output_obj $obj; then :
 
975
        else
 
976
          error=$?
 
977
          $run $rm $removelist
 
978
          exit $error
 
979
        fi
 
980
      fi
 
981
 
 
982
      # Append the name of the non-PIC object the libtool object file.
 
983
      # Only append if the libtool object file exists.
 
984
      test -z "$run" && cat >> ${libobj}T <<EOF
 
985
# Name of the non-PIC object.
 
986
non_pic_object='$objname'
 
987
 
 
988
EOF
 
989
    else
 
990
      # Append the name of the non-PIC object the libtool object file.
 
991
      # Only append if the libtool object file exists.
 
992
      test -z "$run" && cat >> ${libobj}T <<EOF
 
993
# Name of the non-PIC object.
 
994
non_pic_object=none
 
995
 
 
996
EOF
 
997
    fi
 
998
 
 
999
    $run $mv "${libobj}T" "${libobj}"
 
1000
 
 
1001
    # Unlock the critical section if it was locked
 
1002
    if test "$need_locks" != no; then
 
1003
      $run $rm "$lockfile"
 
1004
    fi
 
1005
 
 
1006
    exit $EXIT_SUCCESS
 
1007
    ;;
 
1008
 
 
1009
  # libtool link mode
 
1010
  link | relink)
 
1011
    modename="$modename: link"
 
1012
    case $host in
 
1013
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 
1014
      # It is impossible to link a dll without this setting, and
 
1015
      # we shouldn't force the makefile maintainer to figure out
 
1016
      # which system we are compiling for in order to pass an extra
 
1017
      # flag for every libtool invocation.
 
1018
      # allow_undefined=no
 
1019
 
 
1020
      # FIXME: Unfortunately, there are problems with the above when trying
 
1021
      # to make a dll which has undefined symbols, in which case not
 
1022
      # even a static library is built.  For now, we need to specify
 
1023
      # -no-undefined on the libtool link line when we can be certain
 
1024
      # that all symbols are satisfied, otherwise we get a static library.
 
1025
      allow_undefined=yes
 
1026
      ;;
 
1027
    *)
 
1028
      allow_undefined=yes
 
1029
      ;;
 
1030
    esac
 
1031
    libtool_args="$nonopt"
 
1032
    base_compile="$nonopt $@"
 
1033
    compile_command="$nonopt"
 
1034
    finalize_command="$nonopt"
 
1035
 
 
1036
    compile_rpath=
 
1037
    finalize_rpath=
 
1038
    compile_shlibpath=
 
1039
    finalize_shlibpath=
 
1040
    convenience=
 
1041
    old_convenience=
 
1042
    deplibs=
 
1043
    old_deplibs=
 
1044
    compiler_flags=
 
1045
    linker_flags=
 
1046
    dllsearchpath=
 
1047
    lib_search_path=`pwd`
 
1048
    inst_prefix_dir=
 
1049
 
 
1050
    avoid_version=no
 
1051
    dlfiles=
 
1052
    dlprefiles=
 
1053
    dlself=no
 
1054
    export_dynamic=no
 
1055
    export_symbols=
 
1056
    export_symbols_regex=
 
1057
    generated=
 
1058
    libobjs=
 
1059
    ltlibs=
 
1060
    module=no
 
1061
    no_install=no
 
1062
    objs=
 
1063
    non_pic_objects=
 
1064
    precious_files_regex=
 
1065
    prefer_static_libs=no
 
1066
    preload=no
 
1067
    prev=
 
1068
    prevarg=
 
1069
    release=
 
1070
    rpath=
 
1071
    xrpath=
 
1072
    perm_rpath=
 
1073
    temp_rpath=
 
1074
    thread_safe=no
 
1075
    vinfo=
 
1076
    vinfo_number=no
 
1077
 
 
1078
    func_infer_tag $base_compile
 
1079
 
 
1080
    # We need to know -static, to get the right output filenames.
 
1081
    for arg
 
1082
    do
 
1083
      case $arg in
 
1084
      -all-static | -static)
 
1085
        if test "X$arg" = "X-all-static"; then
 
1086
          if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
 
1087
            $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
 
1088
          fi
 
1089
          if test -n "$link_static_flag"; then
 
1090
            dlopen_self=$dlopen_self_static
 
1091
          fi
 
1092
        else
 
1093
          if test -z "$pic_flag" && test -n "$link_static_flag"; then
 
1094
            dlopen_self=$dlopen_self_static
 
1095
          fi
 
1096
        fi
 
1097
        build_libtool_libs=no
 
1098
        build_old_libs=yes
 
1099
        prefer_static_libs=yes
 
1100
        break
 
1101
        ;;
 
1102
      esac
 
1103
    done
 
1104
 
 
1105
    # See if our shared archives depend on static archives.
 
1106
    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 
1107
 
 
1108
    # Go through the arguments, transforming them on the way.
 
1109
    while test "$#" -gt 0; do
 
1110
      arg="$1"
 
1111
      shift
 
1112
      case $arg in
 
1113
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
1114
        qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
 
1115
        ;;
 
1116
      *) qarg=$arg ;;
 
1117
      esac
 
1118
      libtool_args="$libtool_args $qarg"
 
1119
 
 
1120
      # If the previous option needs an argument, assign it.
 
1121
      if test -n "$prev"; then
 
1122
        case $prev in
 
1123
        output)
 
1124
          compile_command="$compile_command @OUTPUT@"
 
1125
          finalize_command="$finalize_command @OUTPUT@"
 
1126
          ;;
 
1127
        esac
 
1128
 
 
1129
        case $prev in
 
1130
        dlfiles|dlprefiles)
 
1131
          if test "$preload" = no; then
 
1132
            # Add the symbol object into the linking commands.
 
1133
            compile_command="$compile_command @SYMFILE@"
 
1134
            finalize_command="$finalize_command @SYMFILE@"
 
1135
            preload=yes
 
1136
          fi
 
1137
          case $arg in
 
1138
          *.la | *.lo) ;;  # We handle these cases below.
 
1139
          force)
 
1140
            if test "$dlself" = no; then
 
1141
              dlself=needless
 
1142
              export_dynamic=yes
 
1143
            fi
 
1144
            prev=
 
1145
            continue
 
1146
            ;;
 
1147
          self)
 
1148
            if test "$prev" = dlprefiles; then
 
1149
              dlself=yes
 
1150
            elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
 
1151
              dlself=yes
 
1152
            else
 
1153
              dlself=needless
 
1154
              export_dynamic=yes
 
1155
            fi
 
1156
            prev=
 
1157
            continue
 
1158
            ;;
 
1159
          *)
 
1160
            if test "$prev" = dlfiles; then
 
1161
              dlfiles="$dlfiles $arg"
 
1162
            else
 
1163
              dlprefiles="$dlprefiles $arg"
 
1164
            fi
 
1165
            prev=
 
1166
            continue
 
1167
            ;;
 
1168
          esac
 
1169
          ;;
 
1170
        expsyms)
 
1171
          export_symbols="$arg"
 
1172
          if test ! -f "$arg"; then
 
1173
            $echo "$modename: symbol file \`$arg' does not exist"
 
1174
            exit $EXIT_FAILURE
 
1175
          fi
 
1176
          prev=
 
1177
          continue
 
1178
          ;;
 
1179
        expsyms_regex)
 
1180
          export_symbols_regex="$arg"
 
1181
          prev=
 
1182
          continue
 
1183
          ;;
 
1184
        inst_prefix)
 
1185
          inst_prefix_dir="$arg"
 
1186
          prev=
 
1187
          continue
 
1188
          ;;
 
1189
        precious_regex)
 
1190
          precious_files_regex="$arg"
 
1191
          prev=
 
1192
          continue
 
1193
          ;;
 
1194
        release)
 
1195
          release="-$arg"
 
1196
          prev=
 
1197
          continue
 
1198
          ;;
 
1199
        objectlist)
 
1200
          if test -f "$arg"; then
 
1201
            save_arg=$arg
 
1202
            moreargs=
 
1203
            for fil in `cat $save_arg`
 
1204
            do
 
1205
#             moreargs="$moreargs $fil"
 
1206
              arg=$fil
 
1207
              # A libtool-controlled object.
 
1208
 
 
1209
              # Check to see that this really is a libtool object.
 
1210
              if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
1211
                pic_object=
 
1212
                non_pic_object=
 
1213
 
 
1214
                # Read the .lo file
 
1215
                # If there is no directory component, then add one.
 
1216
                case $arg in
 
1217
                */* | *\\*) . $arg ;;
 
1218
                *) . ./$arg ;;
 
1219
                esac
 
1220
 
 
1221
                if test -z "$pic_object" || \
 
1222
                   test -z "$non_pic_object" ||
 
1223
                   test "$pic_object" = none && \
 
1224
                   test "$non_pic_object" = none; then
 
1225
                  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
 
1226
                  exit $EXIT_FAILURE
 
1227
                fi
 
1228
 
 
1229
                # Extract subdirectory from the argument.
 
1230
                xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
 
1231
                if test "X$xdir" = "X$arg"; then
 
1232
                  xdir=
 
1233
                else
 
1234
                  xdir="$xdir/"
 
1235
                fi
 
1236
 
 
1237
                if test "$pic_object" != none; then
 
1238
                  # Prepend the subdirectory the object is found in.
 
1239
                  pic_object="$xdir$pic_object"
 
1240
 
 
1241
                  if test "$prev" = dlfiles; then
 
1242
                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 
1243
                      dlfiles="$dlfiles $pic_object"
 
1244
                      prev=
 
1245
                      continue
 
1246
                    else
 
1247
                      # If libtool objects are unsupported, then we need to preload.
 
1248
                      prev=dlprefiles
 
1249
                    fi
 
1250
                  fi
 
1251
 
 
1252
                  # CHECK ME:  I think I busted this.  -Ossama
 
1253
                  if test "$prev" = dlprefiles; then
 
1254
                    # Preload the old-style object.
 
1255
                    dlprefiles="$dlprefiles $pic_object"
 
1256
                    prev=
 
1257
                  fi
 
1258
 
 
1259
                  # A PIC object.
 
1260
                  libobjs="$libobjs $pic_object"
 
1261
                  arg="$pic_object"
 
1262
                fi
 
1263
 
 
1264
                # Non-PIC object.
 
1265
                if test "$non_pic_object" != none; then
 
1266
                  # Prepend the subdirectory the object is found in.
 
1267
                  non_pic_object="$xdir$non_pic_object"
 
1268
 
 
1269
                  # A standard non-PIC object
 
1270
                  non_pic_objects="$non_pic_objects $non_pic_object"
 
1271
                  if test -z "$pic_object" || test "$pic_object" = none ; then
 
1272
                    arg="$non_pic_object"
 
1273
                  fi
 
1274
                fi
 
1275
              else
 
1276
                # Only an error if not doing a dry-run.
 
1277
                if test -z "$run"; then
 
1278
                  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
 
1279
                  exit $EXIT_FAILURE
 
1280
                else
 
1281
                  # Dry-run case.
 
1282
 
 
1283
                  # Extract subdirectory from the argument.
 
1284
                  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
 
1285
                  if test "X$xdir" = "X$arg"; then
 
1286
                    xdir=
 
1287
                  else
 
1288
                    xdir="$xdir/"
 
1289
                  fi
 
1290
 
 
1291
                  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
 
1292
                  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
 
1293
                  libobjs="$libobjs $pic_object"
 
1294
                  non_pic_objects="$non_pic_objects $non_pic_object"
 
1295
                fi
 
1296
              fi
 
1297
            done
 
1298
          else
 
1299
            $echo "$modename: link input file \`$save_arg' does not exist"
 
1300
            exit $EXIT_FAILURE
 
1301
          fi
 
1302
          arg=$save_arg
 
1303
          prev=
 
1304
          continue
 
1305
          ;;
 
1306
        rpath | xrpath)
 
1307
          # We need an absolute path.
 
1308
          case $arg in
 
1309
          [\\/]* | [A-Za-z]:[\\/]*) ;;
 
1310
          *)
 
1311
            $echo "$modename: only absolute run-paths are allowed" 1>&2
 
1312
            exit $EXIT_FAILURE
 
1313
            ;;
 
1314
          esac
 
1315
          if test "$prev" = rpath; then
 
1316
            case "$rpath " in
 
1317
            *" $arg "*) ;;
 
1318
            *) rpath="$rpath $arg" ;;
 
1319
            esac
 
1320
          else
 
1321
            case "$xrpath " in
 
1322
            *" $arg "*) ;;
 
1323
            *) xrpath="$xrpath $arg" ;;
 
1324
            esac
 
1325
          fi
 
1326
          prev=
 
1327
          continue
 
1328
          ;;
 
1329
        xcompiler)
 
1330
          compiler_flags="$compiler_flags $qarg"
 
1331
          prev=
 
1332
          compile_command="$compile_command $qarg"
 
1333
          finalize_command="$finalize_command $qarg"
 
1334
          continue
 
1335
          ;;
 
1336
        xlinker)
 
1337
          linker_flags="$linker_flags $qarg"
 
1338
          compiler_flags="$compiler_flags $wl$qarg"
 
1339
          prev=
 
1340
          compile_command="$compile_command $wl$qarg"
 
1341
          finalize_command="$finalize_command $wl$qarg"
 
1342
          continue
 
1343
          ;;
 
1344
        xcclinker)
 
1345
          linker_flags="$linker_flags $qarg"
 
1346
          compiler_flags="$compiler_flags $qarg"
 
1347
          prev=
 
1348
          compile_command="$compile_command $qarg"
 
1349
          finalize_command="$finalize_command $qarg"
 
1350
          continue
 
1351
          ;;
 
1352
        shrext)
 
1353
          shrext_cmds="$arg"
 
1354
          prev=
 
1355
          continue
 
1356
          ;;
 
1357
        darwin_framework)
 
1358
          compiler_flags="$compiler_flags $arg"
 
1359
          compile_command="$compile_command $arg"
 
1360
          finalize_command="$finalize_command $arg"
 
1361
          prev=
 
1362
          continue
 
1363
          ;;
 
1364
        *)
 
1365
          eval "$prev=\"\$arg\""
 
1366
          prev=
 
1367
          continue
 
1368
          ;;
 
1369
        esac
 
1370
      fi # test -n "$prev"
 
1371
 
 
1372
      prevarg="$arg"
 
1373
 
 
1374
      case $arg in
 
1375
      -all-static)
 
1376
        if test -n "$link_static_flag"; then
 
1377
          compile_command="$compile_command $link_static_flag"
 
1378
          finalize_command="$finalize_command $link_static_flag"
 
1379
        fi
 
1380
        continue
 
1381
        ;;
 
1382
 
 
1383
      -allow-undefined)
 
1384
        # FIXME: remove this flag sometime in the future.
 
1385
        $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
 
1386
        continue
 
1387
        ;;
 
1388
 
 
1389
      -avoid-version)
 
1390
        avoid_version=yes
 
1391
        continue
 
1392
        ;;
 
1393
 
 
1394
      -dlopen)
 
1395
        prev=dlfiles
 
1396
        continue
 
1397
        ;;
 
1398
 
 
1399
      -dlpreopen)
 
1400
        prev=dlprefiles
 
1401
        continue
 
1402
        ;;
 
1403
 
 
1404
      -export-dynamic)
 
1405
        export_dynamic=yes
 
1406
        continue
 
1407
        ;;
 
1408
 
 
1409
      -export-symbols | -export-symbols-regex)
 
1410
        if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 
1411
          $echo "$modename: more than one -exported-symbols argument is not allowed"
 
1412
          exit $EXIT_FAILURE
 
1413
        fi
 
1414
        if test "X$arg" = "X-export-symbols"; then
 
1415
          prev=expsyms
 
1416
        else
 
1417
          prev=expsyms_regex
 
1418
        fi
 
1419
        continue
 
1420
        ;;
 
1421
 
 
1422
      -framework|-arch)
 
1423
        prev=darwin_framework
 
1424
        compiler_flags="$compiler_flags $arg"
 
1425
        compile_command="$compile_command $arg"
 
1426
        finalize_command="$finalize_command $arg"
 
1427
        continue
 
1428
        ;;
 
1429
 
 
1430
      -inst-prefix-dir)
 
1431
        prev=inst_prefix
 
1432
        continue
 
1433
        ;;
 
1434
 
 
1435
      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
 
1436
      # so, if we see these flags be careful not to treat them like -L
 
1437
      -L[A-Z][A-Z]*:*)
 
1438
        case $with_gcc/$host in
 
1439
        no/*-*-irix* | /*-*-irix*)
 
1440
          compile_command="$compile_command $arg"
 
1441
          finalize_command="$finalize_command $arg"
 
1442
          ;;
 
1443
        esac
 
1444
        continue
 
1445
        ;;
 
1446
 
 
1447
      -L*)
 
1448
        dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
 
1449
        # We need an absolute path.
 
1450
        case $dir in
 
1451
        [\\/]* | [A-Za-z]:[\\/]*) ;;
 
1452
        *)
 
1453
          absdir=`cd "$dir" && pwd`
 
1454
          if test -z "$absdir"; then
 
1455
            $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
 
1456
            exit $EXIT_FAILURE
 
1457
          fi
 
1458
          dir="$absdir"
 
1459
          ;;
 
1460
        esac
 
1461
        case "$deplibs " in
 
1462
        *" -L$dir "*) ;;
 
1463
        *)
 
1464
          deplibs="$deplibs -L$dir"
 
1465
          lib_search_path="$lib_search_path $dir"
 
1466
          ;;
 
1467
        esac
 
1468
        case $host in
 
1469
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 
1470
          case :$dllsearchpath: in
 
1471
          *":$dir:"*) ;;
 
1472
          *) dllsearchpath="$dllsearchpath:$dir";;
 
1473
          esac
 
1474
          ;;
 
1475
        esac
 
1476
        continue
 
1477
        ;;
 
1478
 
 
1479
      -l*)
 
1480
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 
1481
          case $host in
 
1482
          *-*-cygwin* | *-*-pw32* | *-*-beos*)
 
1483
            # These systems don't actually have a C or math library (as such)
 
1484
            continue
 
1485
            ;;
 
1486
          *-*-mingw* | *-*-os2*)
 
1487
            # These systems don't actually have a C library (as such)
 
1488
            test "X$arg" = "X-lc" && continue
 
1489
            ;;
 
1490
          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 
1491
            # Do not include libc due to us having libc/libc_r.
 
1492
            test "X$arg" = "X-lc" && continue
 
1493
            ;;
 
1494
          *-*-rhapsody* | *-*-darwin1.[012])
 
1495
            # Rhapsody C and math libraries are in the System framework
 
1496
            deplibs="$deplibs -framework System"
 
1497
            continue
 
1498
          esac
 
1499
        elif test "X$arg" = "X-lc_r"; then
 
1500
         case $host in
 
1501
         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 
1502
           # Do not include libc_r directly, use -pthread flag.
 
1503
           continue
 
1504
           ;;
 
1505
         esac
 
1506
        fi
 
1507
        deplibs="$deplibs $arg"
 
1508
        continue
 
1509
        ;;
 
1510
 
 
1511
      # Tru64 UNIX uses -model [arg] to determine the layout of C++
 
1512
      # classes, name mangling, and exception handling.
 
1513
      -model)
 
1514
        compile_command="$compile_command $arg"
 
1515
        compiler_flags="$compiler_flags $arg"
 
1516
        finalize_command="$finalize_command $arg"
 
1517
        prev=xcompiler
 
1518
        continue
 
1519
        ;;
 
1520
 
 
1521
     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
 
1522
        compiler_flags="$compiler_flags $arg"
 
1523
        compile_command="$compile_command $arg"
 
1524
        finalize_command="$finalize_command $arg"
 
1525
        continue
 
1526
        ;;
 
1527
 
 
1528
      -module)
 
1529
        module=yes
 
1530
        continue
 
1531
        ;;
 
1532
 
 
1533
      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
 
1534
      # -r[0-9][0-9]* specifies the processor on the SGI compiler
 
1535
      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
 
1536
      # +DA*, +DD* enable 64-bit mode on the HP compiler
 
1537
      # -q* pass through compiler args for the IBM compiler
 
1538
      # -m* pass through architecture-specific compiler args for GCC
 
1539
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*)
 
1540
 
 
1541
        # Unknown arguments in both finalize_command and compile_command need
 
1542
        # to be aesthetically quoted because they are evaled later.
 
1543
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
1544
        case $arg in
 
1545
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
 
1546
          arg="\"$arg\""
 
1547
          ;;
 
1548
        esac
 
1549
        compile_command="$compile_command $arg"
 
1550
        finalize_command="$finalize_command $arg"
 
1551
        if test "$with_gcc" = "yes" ; then
 
1552
          compiler_flags="$compiler_flags $arg"
 
1553
        fi
 
1554
        continue
 
1555
        ;;
 
1556
 
 
1557
      -shrext)
 
1558
        prev=shrext
 
1559
        continue
 
1560
        ;;
 
1561
 
 
1562
      -no-fast-install)
 
1563
        fast_install=no
 
1564
        continue
 
1565
        ;;
 
1566
 
 
1567
      -no-install)
 
1568
        case $host in
 
1569
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 
1570
          # The PATH hackery in wrapper scripts is required on Windows
 
1571
          # in order for the loader to find any dlls it needs.
 
1572
          $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
 
1573
          $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
 
1574
          fast_install=no
 
1575
          ;;
 
1576
        *) no_install=yes ;;
 
1577
        esac
 
1578
        continue
 
1579
        ;;
 
1580
 
 
1581
      -no-undefined)
 
1582
        allow_undefined=no
 
1583
        continue
 
1584
        ;;
 
1585
 
 
1586
      -objectlist)
 
1587
        prev=objectlist
 
1588
        continue
 
1589
        ;;
 
1590
 
 
1591
      -o) prev=output ;;
 
1592
 
 
1593
      -precious-files-regex)
 
1594
        prev=precious_regex
 
1595
        continue
 
1596
        ;;
 
1597
 
 
1598
      -release)
 
1599
        prev=release
 
1600
        continue
 
1601
        ;;
 
1602
 
 
1603
      -rpath)
 
1604
        prev=rpath
 
1605
        continue
 
1606
        ;;
 
1607
 
 
1608
      -R)
 
1609
        prev=xrpath
 
1610
        continue
 
1611
        ;;
 
1612
 
 
1613
      -R*)
 
1614
        dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
 
1615
        # We need an absolute path.
 
1616
        case $dir in
 
1617
        [\\/]* | [A-Za-z]:[\\/]*) ;;
 
1618
        *)
 
1619
          $echo "$modename: only absolute run-paths are allowed" 1>&2
 
1620
          exit $EXIT_FAILURE
 
1621
          ;;
 
1622
        esac
 
1623
        case "$xrpath " in
 
1624
        *" $dir "*) ;;
 
1625
        *) xrpath="$xrpath $dir" ;;
 
1626
        esac
 
1627
        continue
 
1628
        ;;
 
1629
 
 
1630
      -static)
 
1631
        # The effects of -static are defined in a previous loop.
 
1632
        # We used to do the same as -all-static on platforms that
 
1633
        # didn't have a PIC flag, but the assumption that the effects
 
1634
        # would be equivalent was wrong.  It would break on at least
 
1635
        # Digital Unix and AIX.
 
1636
        continue
 
1637
        ;;
 
1638
 
 
1639
      -thread-safe)
 
1640
        thread_safe=yes
 
1641
        continue
 
1642
        ;;
 
1643
 
 
1644
      -version-info)
 
1645
        prev=vinfo
 
1646
        continue
 
1647
        ;;
 
1648
      -version-number)
 
1649
        prev=vinfo
 
1650
        vinfo_number=yes
 
1651
        continue
 
1652
        ;;
 
1653
 
 
1654
      -Wc,*)
 
1655
        args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
 
1656
        arg=
 
1657
        save_ifs="$IFS"; IFS=','
 
1658
        for flag in $args; do
 
1659
          IFS="$save_ifs"
 
1660
          case $flag in
 
1661
            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
 
1662
            flag="\"$flag\""
 
1663
            ;;
 
1664
          esac
 
1665
          arg="$arg $wl$flag"
 
1666
          compiler_flags="$compiler_flags $flag"
 
1667
        done
 
1668
        IFS="$save_ifs"
 
1669
        arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
 
1670
        ;;
 
1671
 
 
1672
      -Wl,*)
 
1673
        args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
 
1674
        arg=
 
1675
        save_ifs="$IFS"; IFS=','
 
1676
        for flag in $args; do
 
1677
          IFS="$save_ifs"
 
1678
          case $flag in
 
1679
            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
 
1680
            flag="\"$flag\""
 
1681
            ;;
 
1682
          esac
 
1683
          arg="$arg $wl$flag"
 
1684
          compiler_flags="$compiler_flags $wl$flag"
 
1685
          linker_flags="$linker_flags $flag"
 
1686
        done
 
1687
        IFS="$save_ifs"
 
1688
        arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
 
1689
        ;;
 
1690
 
 
1691
      -Xcompiler)
 
1692
        prev=xcompiler
 
1693
        continue
 
1694
        ;;
 
1695
 
 
1696
      -Xlinker)
 
1697
        prev=xlinker
 
1698
        continue
 
1699
        ;;
 
1700
 
 
1701
      -XCClinker)
 
1702
        prev=xcclinker
 
1703
        continue
 
1704
        ;;
 
1705
 
 
1706
      # Some other compiler flag.
 
1707
      -* | +*)
 
1708
        # Unknown arguments in both finalize_command and compile_command need
 
1709
        # to be aesthetically quoted because they are evaled later.
 
1710
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
1711
        case $arg in
 
1712
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
 
1713
          arg="\"$arg\""
 
1714
          ;;
 
1715
        esac
 
1716
        ;;
 
1717
 
 
1718
      *.$objext)
 
1719
        # A standard object.
 
1720
        objs="$objs $arg"
 
1721
        ;;
 
1722
 
 
1723
      *.lo)
 
1724
        # A libtool-controlled object.
 
1725
 
 
1726
        # Check to see that this really is a libtool object.
 
1727
        if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
1728
          pic_object=
 
1729
          non_pic_object=
 
1730
 
 
1731
          # Read the .lo file
 
1732
          # If there is no directory component, then add one.
 
1733
          case $arg in
 
1734
          */* | *\\*) . $arg ;;
 
1735
          *) . ./$arg ;;
 
1736
          esac
 
1737
 
 
1738
          if test -z "$pic_object" || \
 
1739
             test -z "$non_pic_object" ||
 
1740
             test "$pic_object" = none && \
 
1741
             test "$non_pic_object" = none; then
 
1742
            $echo "$modename: cannot find name of object for \`$arg'" 1>&2
 
1743
            exit $EXIT_FAILURE
 
1744
          fi
 
1745
 
 
1746
          # Extract subdirectory from the argument.
 
1747
          xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
 
1748
          if test "X$xdir" = "X$arg"; then
 
1749
            xdir=
 
1750
          else
 
1751
            xdir="$xdir/"
 
1752
          fi
 
1753
 
 
1754
          if test "$pic_object" != none; then
 
1755
            # Prepend the subdirectory the object is found in.
 
1756
            pic_object="$xdir$pic_object"
 
1757
 
 
1758
            if test "$prev" = dlfiles; then
 
1759
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
 
1760
                dlfiles="$dlfiles $pic_object"
 
1761
                prev=
 
1762
                continue
 
1763
              else
 
1764
                # If libtool objects are unsupported, then we need to preload.
 
1765
                prev=dlprefiles
 
1766
              fi
 
1767
            fi
 
1768
 
 
1769
            # CHECK ME:  I think I busted this.  -Ossama
 
1770
            if test "$prev" = dlprefiles; then
 
1771
              # Preload the old-style object.
 
1772
              dlprefiles="$dlprefiles $pic_object"
 
1773
              prev=
 
1774
            fi
 
1775
 
 
1776
            # A PIC object.
 
1777
            libobjs="$libobjs $pic_object"
 
1778
            arg="$pic_object"
 
1779
          fi
 
1780
 
 
1781
          # Non-PIC object.
 
1782
          if test "$non_pic_object" != none; then
 
1783
            # Prepend the subdirectory the object is found in.
 
1784
            non_pic_object="$xdir$non_pic_object"
 
1785
 
 
1786
            # A standard non-PIC object
 
1787
            non_pic_objects="$non_pic_objects $non_pic_object"
 
1788
            if test -z "$pic_object" || test "$pic_object" = none ; then
 
1789
              arg="$non_pic_object"
 
1790
            fi
 
1791
          fi
 
1792
        else
 
1793
          # Only an error if not doing a dry-run.
 
1794
          if test -z "$run"; then
 
1795
            $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
 
1796
            exit $EXIT_FAILURE
 
1797
          else
 
1798
            # Dry-run case.
 
1799
 
 
1800
            # Extract subdirectory from the argument.
 
1801
            xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
 
1802
            if test "X$xdir" = "X$arg"; then
 
1803
              xdir=
 
1804
            else
 
1805
              xdir="$xdir/"
 
1806
            fi
 
1807
 
 
1808
            pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
 
1809
            non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
 
1810
            libobjs="$libobjs $pic_object"
 
1811
            non_pic_objects="$non_pic_objects $non_pic_object"
 
1812
          fi
 
1813
        fi
 
1814
        ;;
 
1815
 
 
1816
      *.$libext)
 
1817
        # An archive.
 
1818
        deplibs="$deplibs $arg"
 
1819
        old_deplibs="$old_deplibs $arg"
 
1820
        continue
 
1821
        ;;
 
1822
 
 
1823
      *.la)
 
1824
        # A libtool-controlled library.
 
1825
 
 
1826
        if test "$prev" = dlfiles; then
 
1827
          # This library was specified with -dlopen.
 
1828
          dlfiles="$dlfiles $arg"
 
1829
          prev=
 
1830
        elif test "$prev" = dlprefiles; then
 
1831
          # The library was specified with -dlpreopen.
 
1832
          dlprefiles="$dlprefiles $arg"
 
1833
          prev=
 
1834
        else
 
1835
          deplibs="$deplibs $arg"
 
1836
        fi
 
1837
        continue
 
1838
        ;;
 
1839
 
 
1840
      # Some other compiler argument.
 
1841
      *)
 
1842
        # Unknown arguments in both finalize_command and compile_command need
 
1843
        # to be aesthetically quoted because they are evaled later.
 
1844
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
1845
        case $arg in
 
1846
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
 
1847
          arg="\"$arg\""
 
1848
          ;;
 
1849
        esac
 
1850
        ;;
 
1851
      esac # arg
 
1852
 
 
1853
      # Now actually substitute the argument into the commands.
 
1854
      if test -n "$arg"; then
 
1855
        compile_command="$compile_command $arg"
 
1856
        finalize_command="$finalize_command $arg"
 
1857
      fi
 
1858
    done # argument parsing loop
 
1859
 
 
1860
    if test -n "$prev"; then
 
1861
      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
 
1862
      $echo "$help" 1>&2
 
1863
      exit $EXIT_FAILURE
 
1864
    fi
 
1865
 
 
1866
    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
 
1867
      eval arg=\"$export_dynamic_flag_spec\"
 
1868
      compile_command="$compile_command $arg"
 
1869
      finalize_command="$finalize_command $arg"
 
1870
    fi
 
1871
 
 
1872
    oldlibs=
 
1873
    # calculate the name of the file, without its directory
 
1874
    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
 
1875
    libobjs_save="$libobjs"
 
1876
 
 
1877
    if test -n "$shlibpath_var"; then
 
1878
      # get the directories listed in $shlibpath_var
 
1879
      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
 
1880
    else
 
1881
      shlib_search_path=
 
1882
    fi
 
1883
    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
 
1884
    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 
1885
 
 
1886
    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
 
1887
    if test "X$output_objdir" = "X$output"; then
 
1888
      output_objdir="$objdir"
 
1889
    else
 
1890
      output_objdir="$output_objdir/$objdir"
 
1891
    fi
 
1892
    # Create the object directory.
 
1893
    if test ! -d "$output_objdir"; then
 
1894
      $show "$mkdir $output_objdir"
 
1895
      $run $mkdir $output_objdir
 
1896
      status=$?
 
1897
      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
 
1898
        exit $status
 
1899
      fi
 
1900
    fi
 
1901
 
 
1902
    # Determine the type of output
 
1903
    case $output in
 
1904
    "")
 
1905
      $echo "$modename: you must specify an output file" 1>&2
 
1906
      $echo "$help" 1>&2
 
1907
      exit $EXIT_FAILURE
 
1908
      ;;
 
1909
    *.$libext) linkmode=oldlib ;;
 
1910
    *.lo | *.$objext) linkmode=obj ;;
 
1911
    *.la) linkmode=lib ;;
 
1912
    *) linkmode=prog ;; # Anything else should be a program.
 
1913
    esac
 
1914
 
 
1915
    case $host in
 
1916
    *cygwin* | *mingw* | *pw32*)
 
1917
      # don't eliminate duplications in $postdeps and $predeps
 
1918
      duplicate_compiler_generated_deps=yes
 
1919
      ;;
 
1920
    *)
 
1921
      duplicate_compiler_generated_deps=$duplicate_deps
 
1922
      ;;
 
1923
    esac
 
1924
    specialdeplibs=
 
1925
 
 
1926
    libs=
 
1927
    # Find all interdependent deplibs by searching for libraries
 
1928
    # that are linked more than once (e.g. -la -lb -la)
 
1929
    for deplib in $deplibs; do
 
1930
      if test "X$duplicate_deps" = "Xyes" ; then
 
1931
        case "$libs " in
 
1932
        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
1933
        esac
 
1934
      fi
 
1935
      libs="$libs $deplib"
 
1936
    done
 
1937
 
 
1938
    if test "$linkmode" = lib; then
 
1939
      libs="$predeps $libs $compiler_lib_search_path $postdeps"
 
1940
 
 
1941
      # Compute libraries that are listed more than once in $predeps
 
1942
      # $postdeps and mark them as special (i.e., whose duplicates are
 
1943
      # not to be eliminated).
 
1944
      pre_post_deps=
 
1945
      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
 
1946
        for pre_post_dep in $predeps $postdeps; do
 
1947
          case "$pre_post_deps " in
 
1948
          *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
 
1949
          esac
 
1950
          pre_post_deps="$pre_post_deps $pre_post_dep"
 
1951
        done
 
1952
      fi
 
1953
      pre_post_deps=
 
1954
    fi
 
1955
 
 
1956
    deplibs=
 
1957
    newdependency_libs=
 
1958
    newlib_search_path=
 
1959
    need_relink=no # whether we're linking any uninstalled libtool libraries
 
1960
    notinst_deplibs= # not-installed libtool libraries
 
1961
    notinst_path= # paths that contain not-installed libtool libraries
 
1962
    case $linkmode in
 
1963
    lib)
 
1964
        passes="conv link"
 
1965
        for file in $dlfiles $dlprefiles; do
 
1966
          case $file in
 
1967
          *.la) ;;
 
1968
          *)
 
1969
            $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
 
1970
            exit $EXIT_FAILURE
 
1971
            ;;
 
1972
          esac
 
1973
        done
 
1974
        ;;
 
1975
    prog)
 
1976
        compile_deplibs=
 
1977
        finalize_deplibs=
 
1978
        alldeplibs=no
 
1979
        newdlfiles=
 
1980
        newdlprefiles=
 
1981
        passes="conv scan dlopen dlpreopen link"
 
1982
        ;;
 
1983
    *)  passes="conv"
 
1984
        ;;
 
1985
    esac
 
1986
    for pass in $passes; do
 
1987
      if test "$linkmode,$pass" = "lib,link" ||
 
1988
         test "$linkmode,$pass" = "prog,scan"; then
 
1989
        libs="$deplibs"
 
1990
        deplibs=
 
1991
      fi
 
1992
      if test "$linkmode" = prog; then
 
1993
        case $pass in
 
1994
        dlopen) libs="$dlfiles" ;;
 
1995
        dlpreopen) libs="$dlprefiles" ;;
 
1996
        link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
 
1997
        esac
 
1998
      fi
 
1999
      if test "$pass" = dlopen; then
 
2000
        # Collect dlpreopened libraries
 
2001
        save_deplibs="$deplibs"
 
2002
        deplibs=
 
2003
      fi
 
2004
      for deplib in $libs; do
 
2005
        lib=
 
2006
        found=no
 
2007
        case $deplib in
 
2008
        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
 
2009
          if test "$linkmode,$pass" = "prog,link"; then
 
2010
            compile_deplibs="$deplib $compile_deplibs"
 
2011
            finalize_deplibs="$deplib $finalize_deplibs"
 
2012
          else
 
2013
            compiler_flags="$compiler_flags $deplib"
 
2014
          fi
 
2015
          continue
 
2016
          ;;
 
2017
        -l*)
 
2018
          if test "$linkmode" != lib && test "$linkmode" != prog; then
 
2019
            $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
 
2020
            continue
 
2021
          fi
 
2022
          name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
 
2023
          for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
 
2024
            for search_ext in .la $std_shrext .so .a; do
 
2025
              # Search the libtool library
 
2026
              lib="$searchdir/lib${name}${search_ext}"
 
2027
              if test -f "$lib"; then
 
2028
                if test "$search_ext" = ".la"; then
 
2029
                  found=yes
 
2030
                else
 
2031
                  found=no
 
2032
                fi
 
2033
                break 2
 
2034
              fi
 
2035
            done
 
2036
          done
 
2037
          if test "$found" != yes; then
 
2038
            # deplib doesn't seem to be a libtool library
 
2039
            if test "$linkmode,$pass" = "prog,link"; then
 
2040
              compile_deplibs="$deplib $compile_deplibs"
 
2041
              finalize_deplibs="$deplib $finalize_deplibs"
 
2042
            else
 
2043
              deplibs="$deplib $deplibs"
 
2044
              test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 
2045
            fi
 
2046
            continue
 
2047
          else # deplib is a libtool library
 
2048
            # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
 
2049
            # We need to do some special things here, and not later.
 
2050
            if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
2051
              case " $predeps $postdeps " in
 
2052
              *" $deplib "*)
 
2053
                if (${SED} -e '2q' $lib |
 
2054
                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
2055
                  library_names=
 
2056
                  old_library=
 
2057
                  case $lib in
 
2058
                  */* | *\\*) . $lib ;;
 
2059
                  *) . ./$lib ;;
 
2060
                  esac
 
2061
                  for l in $old_library $library_names; do
 
2062
                    ll="$l"
 
2063
                  done
 
2064
                  if test "X$ll" = "X$old_library" ; then # only static version available
 
2065
                    found=no
 
2066
                    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
 
2067
                    test "X$ladir" = "X$lib" && ladir="."
 
2068
                    lib=$ladir/$old_library
 
2069
                    if test "$linkmode,$pass" = "prog,link"; then
 
2070
                      compile_deplibs="$deplib $compile_deplibs"
 
2071
                      finalize_deplibs="$deplib $finalize_deplibs"
 
2072
                    else
 
2073
                      deplibs="$deplib $deplibs"
 
2074
                      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
 
2075
                    fi
 
2076
                    continue
 
2077
                  fi
 
2078
                fi
 
2079
                ;;
 
2080
              *) ;;
 
2081
              esac
 
2082
            fi
 
2083
          fi
 
2084
          ;; # -l
 
2085
        -L*)
 
2086
          case $linkmode in
 
2087
          lib)
 
2088
            deplibs="$deplib $deplibs"
 
2089
            test "$pass" = conv && continue
 
2090
            newdependency_libs="$deplib $newdependency_libs"
 
2091
            newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
 
2092
            ;;
 
2093
          prog)
 
2094
            if test "$pass" = conv; then
 
2095
              deplibs="$deplib $deplibs"
 
2096
              continue
 
2097
            fi
 
2098
            if test "$pass" = scan; then
 
2099
              deplibs="$deplib $deplibs"
 
2100
            else
 
2101
              compile_deplibs="$deplib $compile_deplibs"
 
2102
              finalize_deplibs="$deplib $finalize_deplibs"
 
2103
            fi
 
2104
            newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
 
2105
            ;;
 
2106
          *)
 
2107
            $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
 
2108
            ;;
 
2109
          esac # linkmode
 
2110
          continue
 
2111
          ;; # -L
 
2112
        -R*)
 
2113
          if test "$pass" = link; then
 
2114
            dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
 
2115
            # Make sure the xrpath contains only unique directories.
 
2116
            case "$xrpath " in
 
2117
            *" $dir "*) ;;
 
2118
            *) xrpath="$xrpath $dir" ;;
 
2119
            esac
 
2120
          fi
 
2121
          deplibs="$deplib $deplibs"
 
2122
          continue
 
2123
          ;;
 
2124
        *.la) lib="$deplib" ;;
 
2125
        *.$libext)
 
2126
          if test "$pass" = conv; then
 
2127
            deplibs="$deplib $deplibs"
 
2128
            continue
 
2129
          fi
 
2130
          case $linkmode in
 
2131
          lib)
 
2132
            valid_a_lib=no
 
2133
            case $deplibs_check_method in
 
2134
              match_pattern*)
 
2135
                set dummy $deplibs_check_method
 
2136
                match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
 
2137
                if eval $echo \"$deplib\" 2>/dev/null \
 
2138
                    | $SED 10q \
 
2139
                    | $EGREP "$match_pattern_regex" > /dev/null; then
 
2140
                  valid_a_lib=yes
 
2141
                fi
 
2142
                ;;
 
2143
              pass_all)
 
2144
                valid_a_lib=yes
 
2145
                ;;
 
2146
            esac
 
2147
            if test "$valid_a_lib" != yes; then
 
2148
              $echo
 
2149
              $echo "*** Warning: Trying to link with static lib archive $deplib."
 
2150
              $echo "*** I have the capability to make that library automatically link in when"
 
2151
              $echo "*** you link to this library.  But I can only do this if you have a"
 
2152
              $echo "*** shared version of the library, which you do not appear to have"
 
2153
              $echo "*** because the file extensions .$libext of this argument makes me believe"
 
2154
              $echo "*** that it is just a static archive that I should not used here."
 
2155
            else
 
2156
              $echo
 
2157
              $echo "*** Warning: Linking the shared library $output against the"
 
2158
              $echo "*** static library $deplib is not portable!"
 
2159
              deplibs="$deplib $deplibs"
 
2160
            fi
 
2161
            continue
 
2162
            ;;
 
2163
          prog)
 
2164
            if test "$pass" != link; then
 
2165
              deplibs="$deplib $deplibs"
 
2166
            else
 
2167
              compile_deplibs="$deplib $compile_deplibs"
 
2168
              finalize_deplibs="$deplib $finalize_deplibs"
 
2169
            fi
 
2170
            continue
 
2171
            ;;
 
2172
          esac # linkmode
 
2173
          ;; # *.$libext
 
2174
        *.lo | *.$objext)
 
2175
          if test "$pass" = conv; then
 
2176
            deplibs="$deplib $deplibs"
 
2177
          elif test "$linkmode" = prog; then
 
2178
            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
 
2179
              # If there is no dlopen support or we're linking statically,
 
2180
              # we need to preload.
 
2181
              newdlprefiles="$newdlprefiles $deplib"
 
2182
              compile_deplibs="$deplib $compile_deplibs"
 
2183
              finalize_deplibs="$deplib $finalize_deplibs"
 
2184
            else
 
2185
              newdlfiles="$newdlfiles $deplib"
 
2186
            fi
 
2187
          fi
 
2188
          continue
 
2189
          ;;
 
2190
        %DEPLIBS%)
 
2191
          alldeplibs=yes
 
2192
          continue
 
2193
          ;;
 
2194
        esac # case $deplib
 
2195
        if test "$found" = yes || test -f "$lib"; then :
 
2196
        else
 
2197
          $echo "$modename: cannot find the library \`$lib'" 1>&2
 
2198
          exit $EXIT_FAILURE
 
2199
        fi
 
2200
 
 
2201
        # Check to see that this really is a libtool archive.
 
2202
        if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
 
2203
        else
 
2204
          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
 
2205
          exit $EXIT_FAILURE
 
2206
        fi
 
2207
 
 
2208
        ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
 
2209
        test "X$ladir" = "X$lib" && ladir="."
 
2210
 
 
2211
        dlname=
 
2212
        dlopen=
 
2213
        dlpreopen=
 
2214
        libdir=
 
2215
        library_names=
 
2216
        old_library=
 
2217
        # If the library was installed with an old release of libtool,
 
2218
        # it will not redefine variables installed, or shouldnotlink
 
2219
        installed=yes
 
2220
        shouldnotlink=no
 
2221
        avoidtemprpath=
 
2222
 
 
2223
 
 
2224
        # Read the .la file
 
2225
        case $lib in
 
2226
        */* | *\\*) . $lib ;;
 
2227
        *) . ./$lib ;;
 
2228
        esac
 
2229
 
 
2230
        if test "$linkmode,$pass" = "lib,link" ||
 
2231
           test "$linkmode,$pass" = "prog,scan" ||
 
2232
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
 
2233
          test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
 
2234
          test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
 
2235
        fi
 
2236
 
 
2237
        if test "$pass" = conv; then
 
2238
          # Only check for convenience libraries
 
2239
          deplibs="$lib $deplibs"
 
2240
          if test -z "$libdir"; then
 
2241
            if test -z "$old_library"; then
 
2242
              $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
 
2243
              exit $EXIT_FAILURE
 
2244
            fi
 
2245
            # It is a libtool convenience library, so add in its objects.
 
2246
            convenience="$convenience $ladir/$objdir/$old_library"
 
2247
            old_convenience="$old_convenience $ladir/$objdir/$old_library"
 
2248
            tmp_libs=
 
2249
            for deplib in $dependency_libs; do
 
2250
              deplibs="$deplib $deplibs"
 
2251
              if test "X$duplicate_deps" = "Xyes" ; then
 
2252
                case "$tmp_libs " in
 
2253
                *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
2254
                esac
 
2255
              fi
 
2256
              tmp_libs="$tmp_libs $deplib"
 
2257
            done
 
2258
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
 
2259
            $echo "$modename: \`$lib' is not a convenience library" 1>&2
 
2260
            exit $EXIT_FAILURE
 
2261
          fi
 
2262
          continue
 
2263
        fi # $pass = conv
 
2264
 
 
2265
 
 
2266
        # Get the name of the library we link against.
 
2267
        linklib=
 
2268
        for l in $old_library $library_names; do
 
2269
          linklib="$l"
 
2270
        done
 
2271
        if test -z "$linklib"; then
 
2272
          $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
 
2273
          exit $EXIT_FAILURE
 
2274
        fi
 
2275
 
 
2276
        # This library was specified with -dlopen.
 
2277
        if test "$pass" = dlopen; then
 
2278
          if test -z "$libdir"; then
 
2279
            $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
 
2280
            exit $EXIT_FAILURE
 
2281
          fi
 
2282
          if test -z "$dlname" ||
 
2283
             test "$dlopen_support" != yes ||
 
2284
             test "$build_libtool_libs" = no; then
 
2285
            # If there is no dlname, no dlopen support or we're linking
 
2286
            # statically, we need to preload.  We also need to preload any
 
2287
            # dependent libraries so libltdl's deplib preloader doesn't
 
2288
            # bomb out in the load deplibs phase.
 
2289
            dlprefiles="$dlprefiles $lib $dependency_libs"
 
2290
          else
 
2291
            newdlfiles="$newdlfiles $lib"
 
2292
          fi
 
2293
          continue
 
2294
        fi # $pass = dlopen
 
2295
 
 
2296
        # We need an absolute path.
 
2297
        case $ladir in
 
2298
        [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
 
2299
        *)
 
2300
          abs_ladir=`cd "$ladir" && pwd`
 
2301
          if test -z "$abs_ladir"; then
 
2302
            $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
 
2303
            $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
 
2304
            abs_ladir="$ladir"
 
2305
          fi
 
2306
          ;;
 
2307
        esac
 
2308
        laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
 
2309
 
 
2310
        # Find the relevant object directory and library name.
 
2311
        if test "X$installed" = Xyes; then
 
2312
          if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 
2313
            $echo "$modename: warning: library \`$lib' was moved." 1>&2
 
2314
            dir="$ladir"
 
2315
            absdir="$abs_ladir"
 
2316
            libdir="$abs_ladir"
 
2317
          else
 
2318
            dir="$libdir"
 
2319
            absdir="$libdir"
 
2320
          fi
 
2321
          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
 
2322
        else
 
2323
          if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 
2324
            dir="$ladir"
 
2325
            absdir="$abs_ladir"
 
2326
            # Remove this search path later
 
2327
            notinst_path="$notinst_path $abs_ladir"
 
2328
          else
 
2329
            dir="$ladir/$objdir"
 
2330
            absdir="$abs_ladir/$objdir"
 
2331
            # Remove this search path later
 
2332
            notinst_path="$notinst_path $abs_ladir"
 
2333
          fi
 
2334
        fi # $installed = yes
 
2335
        name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
 
2336
 
 
2337
        # This library was specified with -dlpreopen.
 
2338
        if test "$pass" = dlpreopen; then
 
2339
          if test -z "$libdir"; then
 
2340
            $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
 
2341
            exit $EXIT_FAILURE
 
2342
          fi
 
2343
          # Prefer using a static library (so that no silly _DYNAMIC symbols
 
2344
          # are required to link).
 
2345
          if test -n "$old_library"; then
 
2346
            newdlprefiles="$newdlprefiles $dir/$old_library"
 
2347
          # Otherwise, use the dlname, so that lt_dlopen finds it.
 
2348
          elif test -n "$dlname"; then
 
2349
            newdlprefiles="$newdlprefiles $dir/$dlname"
 
2350
          else
 
2351
            newdlprefiles="$newdlprefiles $dir/$linklib"
 
2352
          fi
 
2353
        fi # $pass = dlpreopen
 
2354
 
 
2355
        if test -z "$libdir"; then
 
2356
          # Link the convenience library
 
2357
          if test "$linkmode" = lib; then
 
2358
            deplibs="$dir/$old_library $deplibs"
 
2359
          elif test "$linkmode,$pass" = "prog,link"; then
 
2360
            compile_deplibs="$dir/$old_library $compile_deplibs"
 
2361
            finalize_deplibs="$dir/$old_library $finalize_deplibs"
 
2362
          else
 
2363
            deplibs="$lib $deplibs" # used for prog,scan pass
 
2364
          fi
 
2365
          continue
 
2366
        fi
 
2367
 
 
2368
 
 
2369
        if test "$linkmode" = prog && test "$pass" != link; then
 
2370
          newlib_search_path="$newlib_search_path $ladir"
 
2371
          deplibs="$lib $deplibs"
 
2372
 
 
2373
          linkalldeplibs=no
 
2374
          if test "$link_all_deplibs" != no || test -z "$library_names" ||
 
2375
             test "$build_libtool_libs" = no; then
 
2376
            linkalldeplibs=yes
 
2377
          fi
 
2378
 
 
2379
          tmp_libs=
 
2380
          for deplib in $dependency_libs; do
 
2381
            case $deplib in
 
2382
            -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
 
2383
            esac
 
2384
            # Need to link against all dependency_libs?
 
2385
            if test "$linkalldeplibs" = yes; then
 
2386
              deplibs="$deplib $deplibs"
 
2387
            else
 
2388
              # Need to hardcode shared library paths
 
2389
              # or/and link against static libraries
 
2390
              newdependency_libs="$deplib $newdependency_libs"
 
2391
            fi
 
2392
            if test "X$duplicate_deps" = "Xyes" ; then
 
2393
              case "$tmp_libs " in
 
2394
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
2395
              esac
 
2396
            fi
 
2397
            tmp_libs="$tmp_libs $deplib"
 
2398
          done # for deplib
 
2399
          continue
 
2400
        fi # $linkmode = prog...
 
2401
 
 
2402
        if test "$linkmode,$pass" = "prog,link"; then
 
2403
          if test -n "$library_names" &&
 
2404
             { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
 
2405
            # We need to hardcode the library path
 
2406
            if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
 
2407
              # Make sure the rpath contains only unique directories.
 
2408
              case "$temp_rpath " in
 
2409
              *" $dir "*) ;;
 
2410
              *" $absdir "*) ;;
 
2411
              *) temp_rpath="$temp_rpath $absdir" ;;
 
2412
              esac
 
2413
            fi
 
2414
 
 
2415
            # Hardcode the library path.
 
2416
            # Skip directories that are in the system default run-time
 
2417
            # search path.
 
2418
            case " $sys_lib_dlsearch_path " in
 
2419
            *" $absdir "*) ;;
 
2420
            *)
 
2421
              case "$compile_rpath " in
 
2422
              *" $absdir "*) ;;
 
2423
              *) compile_rpath="$compile_rpath $absdir"
 
2424
              esac
 
2425
              ;;
 
2426
            esac
 
2427
            case " $sys_lib_dlsearch_path " in
 
2428
            *" $libdir "*) ;;
 
2429
            *)
 
2430
              case "$finalize_rpath " in
 
2431
              *" $libdir "*) ;;
 
2432
              *) finalize_rpath="$finalize_rpath $libdir"
 
2433
              esac
 
2434
              ;;
 
2435
            esac
 
2436
          fi # $linkmode,$pass = prog,link...
 
2437
 
 
2438
          if test "$alldeplibs" = yes &&
 
2439
             { test "$deplibs_check_method" = pass_all ||
 
2440
               { test "$build_libtool_libs" = yes &&
 
2441
                 test -n "$library_names"; }; }; then
 
2442
            # We only need to search for static libraries
 
2443
            continue
 
2444
          fi
 
2445
        fi
 
2446
 
 
2447
        link_static=no # Whether the deplib will be linked statically
 
2448
        if test -n "$library_names" &&
 
2449
           { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
 
2450
          if test "$installed" = no; then
 
2451
            notinst_deplibs="$notinst_deplibs $lib"
 
2452
            need_relink=yes
 
2453
          fi
 
2454
          # This is a shared library
 
2455
 
 
2456
          # Warn about portability, can't link against -module's on
 
2457
          # some systems (darwin)
 
2458
          if test "$shouldnotlink" = yes && test "$pass" = link ; then
 
2459
            $echo
 
2460
            if test "$linkmode" = prog; then
 
2461
              $echo "*** Warning: Linking the executable $output against the loadable module"
 
2462
            else
 
2463
              $echo "*** Warning: Linking the shared library $output against the loadable module"
 
2464
            fi
 
2465
            $echo "*** $linklib is not portable!"
 
2466
          fi
 
2467
          if test "$linkmode" = lib &&
 
2468
             test "$hardcode_into_libs" = yes; then
 
2469
            # Hardcode the library path.
 
2470
            # Skip directories that are in the system default run-time
 
2471
            # search path.
 
2472
            case " $sys_lib_dlsearch_path " in
 
2473
            *" $absdir "*) ;;
 
2474
            *)
 
2475
              case "$compile_rpath " in
 
2476
              *" $absdir "*) ;;
 
2477
              *) compile_rpath="$compile_rpath $absdir"
 
2478
              esac
 
2479
              ;;
 
2480
            esac
 
2481
            case " $sys_lib_dlsearch_path " in
 
2482
            *" $libdir "*) ;;
 
2483
            *)
 
2484
              case "$finalize_rpath " in
 
2485
              *" $libdir "*) ;;
 
2486
              *) finalize_rpath="$finalize_rpath $libdir"
 
2487
              esac
 
2488
              ;;
 
2489
            esac
 
2490
          fi
 
2491
 
 
2492
          if test -n "$old_archive_from_expsyms_cmds"; then
 
2493
            # figure out the soname
 
2494
            set dummy $library_names
 
2495
            realname="$2"
 
2496
            shift; shift
 
2497
            libname=`eval \\$echo \"$libname_spec\"`
 
2498
            # use dlname if we got it. it's perfectly good, no?
 
2499
            if test -n "$dlname"; then
 
2500
              soname="$dlname"
 
2501
            elif test -n "$soname_spec"; then
 
2502
              # bleh windows
 
2503
              case $host in
 
2504
              *cygwin* | mingw*)
 
2505
                major=`expr $current - $age`
 
2506
                versuffix="-$major"
 
2507
                ;;
 
2508
              esac
 
2509
              eval soname=\"$soname_spec\"
 
2510
            else
 
2511
              soname="$realname"
 
2512
            fi
 
2513
 
 
2514
            # Make a new name for the extract_expsyms_cmds to use
 
2515
            soroot="$soname"
 
2516
            soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
 
2517
            newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
 
2518
 
 
2519
            # If the library has no export list, then create one now
 
2520
            if test -f "$output_objdir/$soname-def"; then :
 
2521
            else
 
2522
              $show "extracting exported symbol list from \`$soname'"
 
2523
              save_ifs="$IFS"; IFS='~'
 
2524
              cmds=$extract_expsyms_cmds
 
2525
              for cmd in $cmds; do
 
2526
                IFS="$save_ifs"
 
2527
                eval cmd=\"$cmd\"
 
2528
                $show "$cmd"
 
2529
                $run eval "$cmd" || exit $?
 
2530
              done
 
2531
              IFS="$save_ifs"
 
2532
            fi
 
2533
 
 
2534
            # Create $newlib
 
2535
            if test -f "$output_objdir/$newlib"; then :; else
 
2536
              $show "generating import library for \`$soname'"
 
2537
              save_ifs="$IFS"; IFS='~'
 
2538
              cmds=$old_archive_from_expsyms_cmds
 
2539
              for cmd in $cmds; do
 
2540
                IFS="$save_ifs"
 
2541
                eval cmd=\"$cmd\"
 
2542
                $show "$cmd"
 
2543
                $run eval "$cmd" || exit $?
 
2544
              done
 
2545
              IFS="$save_ifs"
 
2546
            fi
 
2547
            # make sure the library variables are pointing to the new library
 
2548
            dir=$output_objdir
 
2549
            linklib=$newlib
 
2550
          fi # test -n "$old_archive_from_expsyms_cmds"
 
2551
 
 
2552
          if test "$linkmode" = prog || test "$mode" != relink; then
 
2553
            add_shlibpath=
 
2554
            add_dir=
 
2555
            add=
 
2556
            lib_linked=yes
 
2557
            case $hardcode_action in
 
2558
            immediate | unsupported)
 
2559
              if test "$hardcode_direct" = no; then
 
2560
                add="$dir/$linklib"
 
2561
                case $host in
 
2562
                  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
 
2563
                  *-*-darwin* )
 
2564
                    # if the lib is a module then we can not link against
 
2565
                    # it, someone is ignoring the new warnings I added
 
2566
                    if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
 
2567
                      $echo "** Warning, lib $linklib is a module, not a shared library"
 
2568
                      if test -z "$old_library" ; then
 
2569
                        $echo
 
2570
                        $echo "** And there doesn't seem to be a static archive available"
 
2571
                        $echo "** The link will probably fail, sorry"
 
2572
                      else
 
2573
                        add="$dir/$old_library"
 
2574
                      fi
 
2575
                    fi
 
2576
                esac
 
2577
              elif test "$hardcode_minus_L" = no; then
 
2578
                case $host in
 
2579
                *-*-sunos*) add_shlibpath="$dir" ;;
 
2580
                esac
 
2581
                add_dir="-L$dir"
 
2582
                add="-l$name"
 
2583
              elif test "$hardcode_shlibpath_var" = no; then
 
2584
                add_shlibpath="$dir"
 
2585
                add="-l$name"
 
2586
              else
 
2587
                lib_linked=no
 
2588
              fi
 
2589
              ;;
 
2590
            relink)
 
2591
              if test "$hardcode_direct" = yes; then
 
2592
                add="$dir/$linklib"
 
2593
              elif test "$hardcode_minus_L" = yes; then
 
2594
                add_dir="-L$dir"
 
2595
                # Try looking first in the location we're being installed to.
 
2596
                if test -n "$inst_prefix_dir"; then
 
2597
                  case $libdir in
 
2598
                    [\\/]*)
 
2599
                      add_dir="$add_dir -L$inst_prefix_dir$libdir"
 
2600
                      ;;
 
2601
                  esac
 
2602
                fi
 
2603
                add="-l$name"
 
2604
              elif test "$hardcode_shlibpath_var" = yes; then
 
2605
                add_shlibpath="$dir"
 
2606
                add="-l$name"
 
2607
              else
 
2608
                lib_linked=no
 
2609
              fi
 
2610
              ;;
 
2611
            *) lib_linked=no ;;
 
2612
            esac
 
2613
 
 
2614
            if test "$lib_linked" != yes; then
 
2615
              $echo "$modename: configuration error: unsupported hardcode properties"
 
2616
              exit $EXIT_FAILURE
 
2617
            fi
 
2618
 
 
2619
            if test -n "$add_shlibpath"; then
 
2620
              case :$compile_shlibpath: in
 
2621
              *":$add_shlibpath:"*) ;;
 
2622
              *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
 
2623
              esac
 
2624
            fi
 
2625
            if test "$linkmode" = prog; then
 
2626
              test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
 
2627
              test -n "$add" && compile_deplibs="$add $compile_deplibs"
 
2628
            else
 
2629
              test -n "$add_dir" && deplibs="$add_dir $deplibs"
 
2630
              test -n "$add" && deplibs="$add $deplibs"
 
2631
              if test "$hardcode_direct" != yes && \
 
2632
                 test "$hardcode_minus_L" != yes && \
 
2633
                 test "$hardcode_shlibpath_var" = yes; then
 
2634
                case :$finalize_shlibpath: in
 
2635
                *":$libdir:"*) ;;
 
2636
                *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 
2637
                esac
 
2638
              fi
 
2639
            fi
 
2640
          fi
 
2641
 
 
2642
          if test "$linkmode" = prog || test "$mode" = relink; then
 
2643
            add_shlibpath=
 
2644
            add_dir=
 
2645
            add=
 
2646
            # Finalize command for both is simple: just hardcode it.
 
2647
            if test "$hardcode_direct" = yes; then
 
2648
              add="$libdir/$linklib"
 
2649
            elif test "$hardcode_minus_L" = yes; then
 
2650
              add_dir="-L$libdir"
 
2651
              add="-l$name"
 
2652
            elif test "$hardcode_shlibpath_var" = yes; then
 
2653
              case :$finalize_shlibpath: in
 
2654
              *":$libdir:"*) ;;
 
2655
              *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
 
2656
              esac
 
2657
              add="-l$name"
 
2658
            elif test "$hardcode_automatic" = yes; then
 
2659
              if test -n "$inst_prefix_dir" &&
 
2660
                 test -f "$inst_prefix_dir$libdir/$linklib" ; then
 
2661
                add="$inst_prefix_dir$libdir/$linklib"
 
2662
              else
 
2663
                add="$libdir/$linklib"
 
2664
              fi
 
2665
            else
 
2666
              # We cannot seem to hardcode it, guess we'll fake it.
 
2667
              add_dir="-L$libdir"
 
2668
              # Try looking first in the location we're being installed to.
 
2669
              if test -n "$inst_prefix_dir"; then
 
2670
                case $libdir in
 
2671
                  [\\/]*)
 
2672
                    add_dir="$add_dir -L$inst_prefix_dir$libdir"
 
2673
                    ;;
 
2674
                esac
 
2675
              fi
 
2676
              add="-l$name"
 
2677
            fi
 
2678
 
 
2679
            if test "$linkmode" = prog; then
 
2680
              test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
 
2681
              test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
 
2682
            else
 
2683
              test -n "$add_dir" && deplibs="$add_dir $deplibs"
 
2684
              test -n "$add" && deplibs="$add $deplibs"
 
2685
            fi
 
2686
          fi
 
2687
        elif test "$linkmode" = prog; then
 
2688
          # Here we assume that one of hardcode_direct or hardcode_minus_L
 
2689
          # is not unsupported.  This is valid on all known static and
 
2690
          # shared platforms.
 
2691
          if test "$hardcode_direct" != unsupported; then
 
2692
            test -n "$old_library" && linklib="$old_library"
 
2693
            compile_deplibs="$dir/$linklib $compile_deplibs"
 
2694
            finalize_deplibs="$dir/$linklib $finalize_deplibs"
 
2695
          else
 
2696
            compile_deplibs="-l$name -L$dir $compile_deplibs"
 
2697
            finalize_deplibs="-l$name -L$dir $finalize_deplibs"
 
2698
          fi
 
2699
        elif test "$build_libtool_libs" = yes; then
 
2700
          # Not a shared library
 
2701
          if test "$deplibs_check_method" != pass_all; then
 
2702
            # We're trying link a shared library against a static one
 
2703
            # but the system doesn't support it.
 
2704
 
 
2705
            # Just print a warning and add the library to dependency_libs so
 
2706
            # that the program can be linked against the static library.
 
2707
            $echo
 
2708
            $echo "*** Warning: This system can not link to static lib archive $lib."
 
2709
            $echo "*** I have the capability to make that library automatically link in when"
 
2710
            $echo "*** you link to this library.  But I can only do this if you have a"
 
2711
            $echo "*** shared version of the library, which you do not appear to have."
 
2712
            if test "$module" = yes; then
 
2713
              $echo "*** But as you try to build a module library, libtool will still create "
 
2714
              $echo "*** a static module, that should work as long as the dlopening application"
 
2715
              $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
 
2716
              if test -z "$global_symbol_pipe"; then
 
2717
                $echo
 
2718
                $echo "*** However, this would only work if libtool was able to extract symbol"
 
2719
                $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 
2720
                $echo "*** not find such a program.  So, this module is probably useless."
 
2721
                $echo "*** \`nm' from GNU binutils and a full rebuild may help."
 
2722
              fi
 
2723
              if test "$build_old_libs" = no; then
 
2724
                build_libtool_libs=module
 
2725
                build_old_libs=yes
 
2726
              else
 
2727
                build_libtool_libs=no
 
2728
              fi
 
2729
            fi
 
2730
          else
 
2731
            deplibs="$dir/$old_library $deplibs"
 
2732
            link_static=yes
 
2733
          fi
 
2734
        fi # link shared/static library?
 
2735
 
 
2736
        if test "$linkmode" = lib; then
 
2737
          if test -n "$dependency_libs" &&
 
2738
             { test "$hardcode_into_libs" != yes ||
 
2739
               test "$build_old_libs" = yes ||
 
2740
               test "$link_static" = yes; }; then
 
2741
            # Extract -R from dependency_libs
 
2742
            temp_deplibs=
 
2743
            for libdir in $dependency_libs; do
 
2744
              case $libdir in
 
2745
              -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
 
2746
                   case " $xrpath " in
 
2747
                   *" $temp_xrpath "*) ;;
 
2748
                   *) xrpath="$xrpath $temp_xrpath";;
 
2749
                   esac;;
 
2750
              *) temp_deplibs="$temp_deplibs $libdir";;
 
2751
              esac
 
2752
            done
 
2753
            dependency_libs="$temp_deplibs"
 
2754
          fi
 
2755
 
 
2756
          newlib_search_path="$newlib_search_path $absdir"
 
2757
          # Link against this library
 
2758
          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 
2759
          # ... and its dependency_libs
 
2760
          tmp_libs=
 
2761
          for deplib in $dependency_libs; do
 
2762
            newdependency_libs="$deplib $newdependency_libs"
 
2763
            if test "X$duplicate_deps" = "Xyes" ; then
 
2764
              case "$tmp_libs " in
 
2765
              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 
2766
              esac
 
2767
            fi
 
2768
            tmp_libs="$tmp_libs $deplib"
 
2769
          done
 
2770
 
 
2771
          if test "$link_all_deplibs" != no; then
 
2772
            # Add the search paths of all dependency libraries
 
2773
            for deplib in $dependency_libs; do
 
2774
              case $deplib in
 
2775
              -L*) path="$deplib" ;;
 
2776
              *.la)
 
2777
                dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
 
2778
                test "X$dir" = "X$deplib" && dir="."
 
2779
                # We need an absolute path.
 
2780
                case $dir in
 
2781
                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
 
2782
                *)
 
2783
                  absdir=`cd "$dir" && pwd`
 
2784
                  if test -z "$absdir"; then
 
2785
                    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
 
2786
                    absdir="$dir"
 
2787
                  fi
 
2788
                  ;;
 
2789
                esac
 
2790
                if grep "^installed=no" $deplib > /dev/null; then
 
2791
                  path="$absdir/$objdir"
 
2792
                else
 
2793
                  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 
2794
                  if test -z "$libdir"; then
 
2795
                    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
 
2796
                    exit $EXIT_FAILURE
 
2797
                  fi
 
2798
                  if test "$absdir" != "$libdir"; then
 
2799
                    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
 
2800
                  fi
 
2801
                  path="$absdir"
 
2802
                fi
 
2803
                depdepl=
 
2804
                case $host in
 
2805
                *-*-darwin*)
 
2806
                  # we do not want to link against static libs,
 
2807
                  # but need to link against shared
 
2808
                  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
 
2809
                  if test -n "$deplibrary_names" ; then
 
2810
                    for tmp in $deplibrary_names ; do
 
2811
                      depdepl=$tmp
 
2812
                    done
 
2813
                    if test -f "$path/$depdepl" ; then
 
2814
                      depdepl="$path/$depdepl"
 
2815
                    fi
 
2816
                    # do not add paths which are already there
 
2817
                    case " $newlib_search_path " in
 
2818
                    *" $path "*) ;;
 
2819
                    *) newlib_search_path="$newlib_search_path $path";;
 
2820
                    esac
 
2821
                  fi
 
2822
                  path=""
 
2823
                  ;;
 
2824
                *)
 
2825
                  path="-L$path"
 
2826
                  ;;
 
2827
                esac
 
2828
                ;;
 
2829
              -l*)
 
2830
                case $host in
 
2831
                *-*-darwin*)
 
2832
                  # Again, we only want to link against shared libraries
 
2833
                  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
 
2834
                  for tmp in $newlib_search_path ; do
 
2835
                    if test -f "$tmp/lib$tmp_libs.dylib" ; then
 
2836
                      eval depdepl="$tmp/lib$tmp_libs.dylib"
 
2837
                      break
 
2838
                    fi
 
2839
                  done
 
2840
                  path=""
 
2841
                  ;;
 
2842
                *) continue ;;
 
2843
                esac
 
2844
                ;;
 
2845
              *) continue ;;
 
2846
              esac
 
2847
              case " $deplibs " in
 
2848
              *" $path "*) ;;
 
2849
              *) deplibs="$path $deplibs" ;;
 
2850
              esac
 
2851
              case " $deplibs " in
 
2852
              *" $depdepl "*) ;;
 
2853
              *) deplibs="$depdepl $deplibs" ;;
 
2854
              esac
 
2855
            done
 
2856
          fi # link_all_deplibs != no
 
2857
        fi # linkmode = lib
 
2858
      done # for deplib in $libs
 
2859
      dependency_libs="$newdependency_libs"
 
2860
      if test "$pass" = dlpreopen; then
 
2861
        # Link the dlpreopened libraries before other libraries
 
2862
        for deplib in $save_deplibs; do
 
2863
          deplibs="$deplib $deplibs"
 
2864
        done
 
2865
      fi
 
2866
      if test "$pass" != dlopen; then
 
2867
        if test "$pass" != conv; then
 
2868
          # Make sure lib_search_path contains only unique directories.
 
2869
          lib_search_path=
 
2870
          for dir in $newlib_search_path; do
 
2871
            case "$lib_search_path " in
 
2872
            *" $dir "*) ;;
 
2873
            *) lib_search_path="$lib_search_path $dir" ;;
 
2874
            esac
 
2875
          done
 
2876
          newlib_search_path=
 
2877
        fi
 
2878
 
 
2879
        if test "$linkmode,$pass" != "prog,link"; then
 
2880
          vars="deplibs"
 
2881
        else
 
2882
          vars="compile_deplibs finalize_deplibs"
 
2883
        fi
 
2884
        for var in $vars dependency_libs; do
 
2885
          # Add libraries to $var in reverse order
 
2886
          eval tmp_libs=\"\$$var\"
 
2887
          new_libs=
 
2888
          for deplib in $tmp_libs; do
 
2889
            # FIXME: Pedantically, this is the right thing to do, so
 
2890
            #        that some nasty dependency loop isn't accidentally
 
2891
            #        broken:
 
2892
            #new_libs="$deplib $new_libs"
 
2893
            # Pragmatically, this seems to cause very few problems in
 
2894
            # practice:
 
2895
            case $deplib in
 
2896
            -L*) new_libs="$deplib $new_libs" ;;
 
2897
            -R*) ;;
 
2898
            *)
 
2899
              # And here is the reason: when a library appears more
 
2900
              # than once as an explicit dependence of a library, or
 
2901
              # is implicitly linked in more than once by the
 
2902
              # compiler, it is considered special, and multiple
 
2903
              # occurrences thereof are not removed.  Compare this
 
2904
              # with having the same library being listed as a
 
2905
              # dependency of multiple other libraries: in this case,
 
2906
              # we know (pedantically, we assume) the library does not
 
2907
              # need to be listed more than once, so we keep only the
 
2908
              # last copy.  This is not always right, but it is rare
 
2909
              # enough that we require users that really mean to play
 
2910
              # such unportable linking tricks to link the library
 
2911
              # using -Wl,-lname, so that libtool does not consider it
 
2912
              # for duplicate removal.
 
2913
              case " $specialdeplibs " in
 
2914
              *" $deplib "*) new_libs="$deplib $new_libs" ;;
 
2915
              *)
 
2916
                case " $new_libs " in
 
2917
                *" $deplib "*) ;;
 
2918
                *) new_libs="$deplib $new_libs" ;;
 
2919
                esac
 
2920
                ;;
 
2921
              esac
 
2922
              ;;
 
2923
            esac
 
2924
          done
 
2925
          tmp_libs=
 
2926
          for deplib in $new_libs; do
 
2927
            case $deplib in
 
2928
            -L*)
 
2929
              case " $tmp_libs " in
 
2930
              *" $deplib "*) ;;
 
2931
              *) tmp_libs="$tmp_libs $deplib" ;;
 
2932
              esac
 
2933
              ;;
 
2934
            *) tmp_libs="$tmp_libs $deplib" ;;
 
2935
            esac
 
2936
          done
 
2937
          eval $var=\"$tmp_libs\"
 
2938
        done # for var
 
2939
      fi
 
2940
      # Last step: remove runtime libs from dependency_libs
 
2941
      # (they stay in deplibs)
 
2942
      tmp_libs=
 
2943
      for i in $dependency_libs ; do
 
2944
        case " $predeps $postdeps $compiler_lib_search_path " in
 
2945
        *" $i "*)
 
2946
          i=""
 
2947
          ;;
 
2948
        esac
 
2949
        if test -n "$i" ; then
 
2950
          tmp_libs="$tmp_libs $i"
 
2951
        fi
 
2952
      done
 
2953
      dependency_libs=$tmp_libs
 
2954
    done # for pass
 
2955
    if test "$linkmode" = prog; then
 
2956
      dlfiles="$newdlfiles"
 
2957
      dlprefiles="$newdlprefiles"
 
2958
    fi
 
2959
 
 
2960
    case $linkmode in
 
2961
    oldlib)
 
2962
      if test -n "$deplibs"; then
 
2963
        $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
 
2964
      fi
 
2965
 
 
2966
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 
2967
        $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
 
2968
      fi
 
2969
 
 
2970
      if test -n "$rpath"; then
 
2971
        $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
 
2972
      fi
 
2973
 
 
2974
      if test -n "$xrpath"; then
 
2975
        $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
 
2976
      fi
 
2977
 
 
2978
      if test -n "$vinfo"; then
 
2979
        $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
 
2980
      fi
 
2981
 
 
2982
      if test -n "$release"; then
 
2983
        $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
 
2984
      fi
 
2985
 
 
2986
      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
 
2987
        $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
 
2988
      fi
 
2989
 
 
2990
      # Now set the variables for building old libraries.
 
2991
      build_libtool_libs=no
 
2992
      oldlibs="$output"
 
2993
      objs="$objs$old_deplibs"
 
2994
      ;;
 
2995
 
 
2996
    lib)
 
2997
      # Make sure we only generate libraries of the form `libNAME.la'.
 
2998
      case $outputname in
 
2999
      lib*)
 
3000
        name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
 
3001
        eval shared_ext=\"$shrext_cmds\"
 
3002
        eval libname=\"$libname_spec\"
 
3003
        ;;
 
3004
      *)
 
3005
        if test "$module" = no; then
 
3006
          $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
 
3007
          $echo "$help" 1>&2
 
3008
          exit $EXIT_FAILURE
 
3009
        fi
 
3010
        if test "$need_lib_prefix" != no; then
 
3011
          # Add the "lib" prefix for modules if required
 
3012
          name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
 
3013
          eval shared_ext=\"$shrext_cmds\"
 
3014
          eval libname=\"$libname_spec\"
 
3015
        else
 
3016
          libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
 
3017
        fi
 
3018
        ;;
 
3019
      esac
 
3020
 
 
3021
      if test -n "$objs"; then
 
3022
        if test "$deplibs_check_method" != pass_all; then
 
3023
          $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
 
3024
          exit $EXIT_FAILURE
 
3025
        else
 
3026
          $echo
 
3027
          $echo "*** Warning: Linking the shared library $output against the non-libtool"
 
3028
          $echo "*** objects $objs is not portable!"
 
3029
          libobjs="$libobjs $objs"
 
3030
        fi
 
3031
      fi
 
3032
 
 
3033
      if test "$dlself" != no; then
 
3034
        $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
 
3035
      fi
 
3036
 
 
3037
      set dummy $rpath
 
3038
      if test "$#" -gt 2; then
 
3039
        $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
 
3040
      fi
 
3041
      install_libdir="$2"
 
3042
 
 
3043
      oldlibs=
 
3044
      if test -z "$rpath"; then
 
3045
        if test "$build_libtool_libs" = yes; then
 
3046
          # Building a libtool convenience library.
 
3047
          # Some compilers have problems with a `.al' extension so
 
3048
          # convenience libraries should have the same extension an
 
3049
          # archive normally would.
 
3050
          oldlibs="$output_objdir/$libname.$libext $oldlibs"
 
3051
          build_libtool_libs=convenience
 
3052
          build_old_libs=yes
 
3053
        fi
 
3054
 
 
3055
        if test -n "$vinfo"; then
 
3056
          $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
 
3057
        fi
 
3058
 
 
3059
        if test -n "$release"; then
 
3060
          $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
 
3061
        fi
 
3062
      else
 
3063
 
 
3064
        # Parse the version information argument.
 
3065
        save_ifs="$IFS"; IFS=':'
 
3066
        set dummy $vinfo 0 0 0
 
3067
        IFS="$save_ifs"
 
3068
 
 
3069
        if test -n "$8"; then
 
3070
          $echo "$modename: too many parameters to \`-version-info'" 1>&2
 
3071
          $echo "$help" 1>&2
 
3072
          exit $EXIT_FAILURE
 
3073
        fi
 
3074
 
 
3075
        # convert absolute version numbers to libtool ages
 
3076
        # this retains compatibility with .la files and attempts
 
3077
        # to make the code below a bit more comprehensible
 
3078
 
 
3079
        case $vinfo_number in
 
3080
        yes)
 
3081
          number_major="$2"
 
3082
          number_minor="$3"
 
3083
          number_revision="$4"
 
3084
          #
 
3085
          # There are really only two kinds -- those that
 
3086
          # use the current revision as the major version
 
3087
          # and those that subtract age and use age as
 
3088
          # a minor version.  But, then there is irix
 
3089
          # which has an extra 1 added just for fun
 
3090
          #
 
3091
          case $version_type in
 
3092
          darwin|linux|osf|windows)
 
3093
            current=`expr $number_major + $number_minor`
 
3094
            age="$number_minor"
 
3095
            revision="$number_revision"
 
3096
            ;;
 
3097
          freebsd-aout|freebsd-elf|sunos)
 
3098
            current="$number_major"
 
3099
            revision="$number_minor"
 
3100
            age="0"
 
3101
            ;;
 
3102
          irix|nonstopux)
 
3103
            current=`expr $number_major + $number_minor - 1`
 
3104
            age="$number_minor"
 
3105
            revision="$number_minor"
 
3106
            ;;
 
3107
          esac
 
3108
          ;;
 
3109
        no)
 
3110
          current="$2"
 
3111
          revision="$3"
 
3112
          age="$4"
 
3113
          ;;
 
3114
        esac
 
3115
 
 
3116
        # Check that each of the things are valid numbers.
 
3117
        case $current in
 
3118
        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]) ;;
 
3119
        *)
 
3120
          $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
 
3121
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
 
3122
          exit $EXIT_FAILURE
 
3123
          ;;
 
3124
        esac
 
3125
 
 
3126
        case $revision in
 
3127
        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]) ;;
 
3128
        *)
 
3129
          $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
 
3130
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
 
3131
          exit $EXIT_FAILURE
 
3132
          ;;
 
3133
        esac
 
3134
 
 
3135
        case $age in
 
3136
        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]) ;;
 
3137
        *)
 
3138
          $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
 
3139
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
 
3140
          exit $EXIT_FAILURE
 
3141
          ;;
 
3142
        esac
 
3143
 
 
3144
        if test "$age" -gt "$current"; then
 
3145
          $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
 
3146
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
 
3147
          exit $EXIT_FAILURE
 
3148
        fi
 
3149
 
 
3150
        # Calculate the version variables.
 
3151
        major=
 
3152
        versuffix=
 
3153
        verstring=
 
3154
        case $version_type in
 
3155
        none) ;;
 
3156
 
 
3157
        darwin)
 
3158
          # Like Linux, but with the current version available in
 
3159
          # verstring for coding it into the library header
 
3160
          major=.`expr $current - $age`
 
3161
          versuffix="$major.$age.$revision"
 
3162
          # Darwin ld doesn't like 0 for these options...
 
3163
          minor_current=`expr $current + 1`
 
3164
          verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
 
3165
          ;;
 
3166
 
 
3167
        freebsd-aout)
 
3168
          major=".$current"
 
3169
          versuffix=".$current.$revision";
 
3170
          ;;
 
3171
 
 
3172
        freebsd-elf)
 
3173
          major=".$current"
 
3174
          versuffix=".$current";
 
3175
          ;;
 
3176
 
 
3177
        irix | nonstopux)
 
3178
          major=`expr $current - $age + 1`
 
3179
 
 
3180
          case $version_type in
 
3181
            nonstopux) verstring_prefix=nonstopux ;;
 
3182
            *)         verstring_prefix=sgi ;;
 
3183
          esac
 
3184
          verstring="$verstring_prefix$major.$revision"
 
3185
 
 
3186
          # Add in all the interfaces that we are compatible with.
 
3187
          loop=$revision
 
3188
          while test "$loop" -ne 0; do
 
3189
            iface=`expr $revision - $loop`
 
3190
            loop=`expr $loop - 1`
 
3191
            verstring="$verstring_prefix$major.$iface:$verstring"
 
3192
          done
 
3193
 
 
3194
          # Before this point, $major must not contain `.'.
 
3195
          major=.$major
 
3196
          versuffix="$major.$revision"
 
3197
          ;;
 
3198
 
 
3199
        linux)
 
3200
          major=.`expr $current - $age`
 
3201
          versuffix="$major.$age.$revision"
 
3202
          ;;
 
3203
 
 
3204
        osf)
 
3205
          major=.`expr $current - $age`
 
3206
          versuffix=".$current.$age.$revision"
 
3207
          verstring="$current.$age.$revision"
 
3208
 
 
3209
          # Add in all the interfaces that we are compatible with.
 
3210
          loop=$age
 
3211
          while test "$loop" -ne 0; do
 
3212
            iface=`expr $current - $loop`
 
3213
            loop=`expr $loop - 1`
 
3214
            verstring="$verstring:${iface}.0"
 
3215
          done
 
3216
 
 
3217
          # Make executables depend on our current version.
 
3218
          verstring="$verstring:${current}.0"
 
3219
          ;;
 
3220
 
 
3221
        sunos)
 
3222
          major=".$current"
 
3223
          versuffix=".$current.$revision"
 
3224
          ;;
 
3225
 
 
3226
        windows)
 
3227
          # Use '-' rather than '.', since we only want one
 
3228
          # extension on DOS 8.3 filesystems.
 
3229
          major=`expr $current - $age`
 
3230
          versuffix="-$major"
 
3231
          ;;
 
3232
 
 
3233
        *)
 
3234
          $echo "$modename: unknown library version type \`$version_type'" 1>&2
 
3235
          $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
 
3236
          exit $EXIT_FAILURE
 
3237
          ;;
 
3238
        esac
 
3239
 
 
3240
        # Clear the version info if we defaulted, and they specified a release.
 
3241
        if test -z "$vinfo" && test -n "$release"; then
 
3242
          major=
 
3243
          case $version_type in
 
3244
          darwin)
 
3245
            # we can't check for "0.0" in archive_cmds due to quoting
 
3246
            # problems, so we reset it completely
 
3247
            verstring=
 
3248
            ;;
 
3249
          *)
 
3250
            verstring="0.0"
 
3251
            ;;
 
3252
          esac
 
3253
          if test "$need_version" = no; then
 
3254
            versuffix=
 
3255
          else
 
3256
            versuffix=".0.0"
 
3257
          fi
 
3258
        fi
 
3259
 
 
3260
        # Remove version info from name if versioning should be avoided
 
3261
        if test "$avoid_version" = yes && test "$need_version" = no; then
 
3262
          major=
 
3263
          versuffix=
 
3264
          verstring=""
 
3265
        fi
 
3266
 
 
3267
        # Check to see if the archive will have undefined symbols.
 
3268
        if test "$allow_undefined" = yes; then
 
3269
          if test "$allow_undefined_flag" = unsupported; then
 
3270
            $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
 
3271
            build_libtool_libs=no
 
3272
            build_old_libs=yes
 
3273
          fi
 
3274
        else
 
3275
          # Don't allow undefined symbols.
 
3276
          allow_undefined_flag="$no_undefined_flag"
 
3277
        fi
 
3278
      fi
 
3279
 
 
3280
      if test "$mode" != relink; then
 
3281
        # Remove our outputs, but don't remove object files since they
 
3282
        # may have been created when compiling PIC objects.
 
3283
        removelist=
 
3284
        tempremovelist=`$echo "$output_objdir/*"`
 
3285
        for p in $tempremovelist; do
 
3286
          case $p in
 
3287
            *.$objext)
 
3288
               ;;
 
3289
            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
 
3290
               if test "X$precious_files_regex" != "X"; then
 
3291
                 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
 
3292
                 then
 
3293
                   continue
 
3294
                 fi
 
3295
               fi
 
3296
               removelist="$removelist $p"
 
3297
               ;;
 
3298
            *) ;;
 
3299
          esac
 
3300
        done
 
3301
        if test -n "$removelist"; then
 
3302
          $show "${rm}r $removelist"
 
3303
          $run ${rm}r $removelist
 
3304
        fi
 
3305
      fi
 
3306
 
 
3307
      # Now set the variables for building old libraries.
 
3308
      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
 
3309
        oldlibs="$oldlibs $output_objdir/$libname.$libext"
 
3310
 
 
3311
        # Transform .lo files to .o files.
 
3312
        oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
 
3313
      fi
 
3314
 
 
3315
      # Eliminate all temporary directories.
 
3316
      for path in $notinst_path; do
 
3317
        lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
 
3318
        deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
 
3319
        dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
 
3320
      done
 
3321
 
 
3322
      if test -n "$xrpath"; then
 
3323
        # If the user specified any rpath flags, then add them.
 
3324
        temp_xrpath=
 
3325
        for libdir in $xrpath; do
 
3326
          temp_xrpath="$temp_xrpath -R$libdir"
 
3327
          case "$finalize_rpath " in
 
3328
          *" $libdir "*) ;;
 
3329
          *) finalize_rpath="$finalize_rpath $libdir" ;;
 
3330
          esac
 
3331
        done
 
3332
        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
 
3333
          dependency_libs="$temp_xrpath $dependency_libs"
 
3334
        fi
 
3335
      fi
 
3336
 
 
3337
      # Make sure dlfiles contains only unique files that won't be dlpreopened
 
3338
      old_dlfiles="$dlfiles"
 
3339
      dlfiles=
 
3340
      for lib in $old_dlfiles; do
 
3341
        case " $dlprefiles $dlfiles " in
 
3342
        *" $lib "*) ;;
 
3343
        *) dlfiles="$dlfiles $lib" ;;
 
3344
        esac
 
3345
      done
 
3346
 
 
3347
      # Make sure dlprefiles contains only unique files
 
3348
      old_dlprefiles="$dlprefiles"
 
3349
      dlprefiles=
 
3350
      for lib in $old_dlprefiles; do
 
3351
        case "$dlprefiles " in
 
3352
        *" $lib "*) ;;
 
3353
        *) dlprefiles="$dlprefiles $lib" ;;
 
3354
        esac
 
3355
      done
 
3356
 
 
3357
      if test "$build_libtool_libs" = yes; then
 
3358
        if test -n "$rpath"; then
 
3359
          case $host in
 
3360
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
 
3361
            # these systems don't actually have a c library (as such)!
 
3362
            ;;
 
3363
          *-*-rhapsody* | *-*-darwin1.[012])
 
3364
            # Rhapsody C library is in the System framework
 
3365
            deplibs="$deplibs -framework System"
 
3366
            ;;
 
3367
          *-*-netbsd*)
 
3368
            # Don't link with libc until the a.out ld.so is fixed.
 
3369
            ;;
 
3370
          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 
3371
            # Do not include libc due to us having libc/libc_r.
 
3372
            test "X$arg" = "X-lc" && continue
 
3373
            ;;
 
3374
          *)
 
3375
            # Add libc to deplibs on all other systems if necessary.
 
3376
            if test "$build_libtool_need_lc" = "yes"; then
 
3377
              deplibs="$deplibs -lc"
 
3378
            fi
 
3379
            ;;
 
3380
          esac
 
3381
        fi
 
3382
 
 
3383
        # Transform deplibs into only deplibs that can be linked in shared.
 
3384
        name_save=$name
 
3385
        libname_save=$libname
 
3386
        release_save=$release
 
3387
        versuffix_save=$versuffix
 
3388
        major_save=$major
 
3389
        # I'm not sure if I'm treating the release correctly.  I think
 
3390
        # release should show up in the -l (ie -lgmp5) so we don't want to
 
3391
        # add it in twice.  Is that correct?
 
3392
        release=""
 
3393
        versuffix=""
 
3394
        major=""
 
3395
        newdeplibs=
 
3396
        droppeddeps=no
 
3397
        case $deplibs_check_method in
 
3398
        pass_all)
 
3399
          # Don't check for shared/static.  Everything works.
 
3400
          # This might be a little naive.  We might want to check
 
3401
          # whether the library exists or not.  But this is on
 
3402
          # osf3 & osf4 and I'm not really sure... Just
 
3403
          # implementing what was already the behavior.
 
3404
          newdeplibs=$deplibs
 
3405
          ;;
 
3406
        test_compile)
 
3407
          # This code stresses the "libraries are programs" paradigm to its
 
3408
          # limits. Maybe even breaks it.  We compile a program, linking it
 
3409
          # against the deplibs as a proxy for the library.  Then we can check
 
3410
          # whether they linked in statically or dynamically with ldd.
 
3411
          $rm conftest.c
 
3412
          cat > conftest.c <<EOF
 
3413
          int main() { return 0; }
 
3414
EOF
 
3415
          $rm conftest
 
3416
          $LTCC -o conftest conftest.c $deplibs
 
3417
          if test "$?" -eq 0 ; then
 
3418
            ldd_output=`ldd conftest`
 
3419
            for i in $deplibs; do
 
3420
              name=`expr $i : '-l\(.*\)'`
 
3421
              # If $name is empty we are operating on a -L argument.
 
3422
              if test "$name" != "" && test "$name" -ne "0"; then
 
3423
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3424
                  case " $predeps $postdeps " in
 
3425
                  *" $i "*)
 
3426
                    newdeplibs="$newdeplibs $i"
 
3427
                    i=""
 
3428
                    ;;
 
3429
                  esac
 
3430
                fi
 
3431
                if test -n "$i" ; then
 
3432
                  libname=`eval \\$echo \"$libname_spec\"`
 
3433
                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
 
3434
                  set dummy $deplib_matches
 
3435
                  deplib_match=$2
 
3436
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 
3437
                    newdeplibs="$newdeplibs $i"
 
3438
                  else
 
3439
                    droppeddeps=yes
 
3440
                    $echo
 
3441
                    $echo "*** Warning: dynamic linker does not accept needed library $i."
 
3442
                    $echo "*** I have the capability to make that library automatically link in when"
 
3443
                    $echo "*** you link to this library.  But I can only do this if you have a"
 
3444
                    $echo "*** shared version of the library, which I believe you do not have"
 
3445
                    $echo "*** because a test_compile did reveal that the linker did not use it for"
 
3446
                    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
 
3447
                  fi
 
3448
                fi
 
3449
              else
 
3450
                newdeplibs="$newdeplibs $i"
 
3451
              fi
 
3452
            done
 
3453
          else
 
3454
            # Error occurred in the first compile.  Let's try to salvage
 
3455
            # the situation: Compile a separate program for each library.
 
3456
            for i in $deplibs; do
 
3457
              name=`expr $i : '-l\(.*\)'`
 
3458
              # If $name is empty we are operating on a -L argument.
 
3459
              if test "$name" != "" && test "$name" != "0"; then
 
3460
                $rm conftest
 
3461
                $LTCC -o conftest conftest.c $i
 
3462
                # Did it work?
 
3463
                if test "$?" -eq 0 ; then
 
3464
                  ldd_output=`ldd conftest`
 
3465
                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3466
                    case " $predeps $postdeps " in
 
3467
                    *" $i "*)
 
3468
                      newdeplibs="$newdeplibs $i"
 
3469
                      i=""
 
3470
                      ;;
 
3471
                    esac
 
3472
                  fi
 
3473
                  if test -n "$i" ; then
 
3474
                    libname=`eval \\$echo \"$libname_spec\"`
 
3475
                    deplib_matches=`eval \\$echo \"$library_names_spec\"`
 
3476
                    set dummy $deplib_matches
 
3477
                    deplib_match=$2
 
3478
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
 
3479
                      newdeplibs="$newdeplibs $i"
 
3480
                    else
 
3481
                      droppeddeps=yes
 
3482
                      $echo
 
3483
                      $echo "*** Warning: dynamic linker does not accept needed library $i."
 
3484
                      $echo "*** I have the capability to make that library automatically link in when"
 
3485
                      $echo "*** you link to this library.  But I can only do this if you have a"
 
3486
                      $echo "*** shared version of the library, which you do not appear to have"
 
3487
                      $echo "*** because a test_compile did reveal that the linker did not use this one"
 
3488
                      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
 
3489
                    fi
 
3490
                  fi
 
3491
                else
 
3492
                  droppeddeps=yes
 
3493
                  $echo
 
3494
                  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
 
3495
                  $echo "***  make it link in!  You will probably need to install it or some"
 
3496
                  $echo "*** library that it depends on before this library will be fully"
 
3497
                  $echo "*** functional.  Installing it before continuing would be even better."
 
3498
                fi
 
3499
              else
 
3500
                newdeplibs="$newdeplibs $i"
 
3501
              fi
 
3502
            done
 
3503
          fi
 
3504
          ;;
 
3505
        file_magic*)
 
3506
          set dummy $deplibs_check_method
 
3507
          file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
 
3508
          for a_deplib in $deplibs; do
 
3509
            name=`expr $a_deplib : '-l\(.*\)'`
 
3510
            # If $name is empty we are operating on a -L argument.
 
3511
            if test "$name" != "" && test  "$name" != "0"; then
 
3512
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3513
                case " $predeps $postdeps " in
 
3514
                *" $a_deplib "*)
 
3515
                  newdeplibs="$newdeplibs $a_deplib"
 
3516
                  a_deplib=""
 
3517
                  ;;
 
3518
                esac
 
3519
              fi
 
3520
              if test -n "$a_deplib" ; then
 
3521
                libname=`eval \\$echo \"$libname_spec\"`
 
3522
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 
3523
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 
3524
                  for potent_lib in $potential_libs; do
 
3525
                      # Follow soft links.
 
3526
                      if ls -lLd "$potent_lib" 2>/dev/null \
 
3527
                         | grep " -> " >/dev/null; then
 
3528
                        continue
 
3529
                      fi
 
3530
                      # The statement above tries to avoid entering an
 
3531
                      # endless loop below, in case of cyclic links.
 
3532
                      # We might still enter an endless loop, since a link
 
3533
                      # loop can be closed while we follow links,
 
3534
                      # but so what?
 
3535
                      potlib="$potent_lib"
 
3536
                      while test -h "$potlib" 2>/dev/null; do
 
3537
                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
 
3538
                        case $potliblink in
 
3539
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
 
3540
                        *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
 
3541
                        esac
 
3542
                      done
 
3543
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
 
3544
                         | ${SED} 10q \
 
3545
                         | $EGREP "$file_magic_regex" > /dev/null; then
 
3546
                        newdeplibs="$newdeplibs $a_deplib"
 
3547
                        a_deplib=""
 
3548
                        break 2
 
3549
                      fi
 
3550
                  done
 
3551
                done
 
3552
              fi
 
3553
              if test -n "$a_deplib" ; then
 
3554
                droppeddeps=yes
 
3555
                $echo
 
3556
                $echo "*** Warning: linker path does not have real file for library $a_deplib."
 
3557
                $echo "*** I have the capability to make that library automatically link in when"
 
3558
                $echo "*** you link to this library.  But I can only do this if you have a"
 
3559
                $echo "*** shared version of the library, which you do not appear to have"
 
3560
                $echo "*** because I did check the linker path looking for a file starting"
 
3561
                if test -z "$potlib" ; then
 
3562
                  $echo "*** with $libname but no candidates were found. (...for file magic test)"
 
3563
                else
 
3564
                  $echo "*** with $libname and none of the candidates passed a file format test"
 
3565
                  $echo "*** using a file magic. Last file checked: $potlib"
 
3566
                fi
 
3567
              fi
 
3568
            else
 
3569
              # Add a -L argument.
 
3570
              newdeplibs="$newdeplibs $a_deplib"
 
3571
            fi
 
3572
          done # Gone through all deplibs.
 
3573
          ;;
 
3574
        match_pattern*)
 
3575
          set dummy $deplibs_check_method
 
3576
          match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
 
3577
          for a_deplib in $deplibs; do
 
3578
            name=`expr $a_deplib : '-l\(.*\)'`
 
3579
            # If $name is empty we are operating on a -L argument.
 
3580
            if test -n "$name" && test "$name" != "0"; then
 
3581
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3582
                case " $predeps $postdeps " in
 
3583
                *" $a_deplib "*)
 
3584
                  newdeplibs="$newdeplibs $a_deplib"
 
3585
                  a_deplib=""
 
3586
                  ;;
 
3587
                esac
 
3588
              fi
 
3589
              if test -n "$a_deplib" ; then
 
3590
                libname=`eval \\$echo \"$libname_spec\"`
 
3591
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
 
3592
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 
3593
                  for potent_lib in $potential_libs; do
 
3594
                    potlib="$potent_lib" # see symlink-check above in file_magic test
 
3595
                    if eval $echo \"$potent_lib\" 2>/dev/null \
 
3596
                        | ${SED} 10q \
 
3597
                        | $EGREP "$match_pattern_regex" > /dev/null; then
 
3598
                      newdeplibs="$newdeplibs $a_deplib"
 
3599
                      a_deplib=""
 
3600
                      break 2
 
3601
                    fi
 
3602
                  done
 
3603
                done
 
3604
              fi
 
3605
              if test -n "$a_deplib" ; then
 
3606
                droppeddeps=yes
 
3607
                $echo
 
3608
                $echo "*** Warning: linker path does not have real file for library $a_deplib."
 
3609
                $echo "*** I have the capability to make that library automatically link in when"
 
3610
                $echo "*** you link to this library.  But I can only do this if you have a"
 
3611
                $echo "*** shared version of the library, which you do not appear to have"
 
3612
                $echo "*** because I did check the linker path looking for a file starting"
 
3613
                if test -z "$potlib" ; then
 
3614
                  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
 
3615
                else
 
3616
                  $echo "*** with $libname and none of the candidates passed a file format test"
 
3617
                  $echo "*** using a regex pattern. Last file checked: $potlib"
 
3618
                fi
 
3619
              fi
 
3620
            else
 
3621
              # Add a -L argument.
 
3622
              newdeplibs="$newdeplibs $a_deplib"
 
3623
            fi
 
3624
          done # Gone through all deplibs.
 
3625
          ;;
 
3626
        none | unknown | *)
 
3627
          newdeplibs=""
 
3628
          tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
 
3629
            -e 's/ -[LR][^ ]*//g'`
 
3630
          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 
3631
            for i in $predeps $postdeps ; do
 
3632
              # can't use Xsed below, because $i might contain '/'
 
3633
              tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
 
3634
            done
 
3635
          fi
 
3636
          if $echo "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' \
 
3637
            | grep . >/dev/null; then
 
3638
            $echo
 
3639
            if test "X$deplibs_check_method" = "Xnone"; then
 
3640
              $echo "*** Warning: inter-library dependencies are not supported in this platform."
 
3641
            else
 
3642
              $echo "*** Warning: inter-library dependencies are not known to be supported."
 
3643
            fi
 
3644
            $echo "*** All declared inter-library dependencies are being dropped."
 
3645
            droppeddeps=yes
 
3646
          fi
 
3647
          ;;
 
3648
        esac
 
3649
        versuffix=$versuffix_save
 
3650
        major=$major_save
 
3651
        release=$release_save
 
3652
        libname=$libname_save
 
3653
        name=$name_save
 
3654
 
 
3655
        case $host in
 
3656
        *-*-rhapsody* | *-*-darwin1.[012])
 
3657
          # On Rhapsody replace the C library is the System framework
 
3658
          newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
 
3659
          ;;
 
3660
        esac
 
3661
 
 
3662
        if test "$droppeddeps" = yes; then
 
3663
          if test "$module" = yes; then
 
3664
            $echo
 
3665
            $echo "*** Warning: libtool could not satisfy all declared inter-library"
 
3666
            $echo "*** dependencies of module $libname.  Therefore, libtool will create"
 
3667
            $echo "*** a static module, that should work as long as the dlopening"
 
3668
            $echo "*** application is linked with the -dlopen flag."
 
3669
            if test -z "$global_symbol_pipe"; then
 
3670
              $echo
 
3671
              $echo "*** However, this would only work if libtool was able to extract symbol"
 
3672
              $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
 
3673
              $echo "*** not find such a program.  So, this module is probably useless."
 
3674
              $echo "*** \`nm' from GNU binutils and a full rebuild may help."
 
3675
            fi
 
3676
            if test "$build_old_libs" = no; then
 
3677
              oldlibs="$output_objdir/$libname.$libext"
 
3678
              build_libtool_libs=module
 
3679
              build_old_libs=yes
 
3680
            else
 
3681
              build_libtool_libs=no
 
3682
            fi
 
3683
          else
 
3684
            $echo "*** The inter-library dependencies that have been dropped here will be"
 
3685
            $echo "*** automatically added whenever a program is linked with this library"
 
3686
            $echo "*** or is declared to -dlopen it."
 
3687
 
 
3688
            if test "$allow_undefined" = no; then
 
3689
              $echo
 
3690
              $echo "*** Since this library must not contain undefined symbols,"
 
3691
              $echo "*** because either the platform does not support them or"
 
3692
              $echo "*** it was explicitly requested with -no-undefined,"
 
3693
              $echo "*** libtool will only create a static version of it."
 
3694
              if test "$build_old_libs" = no; then
 
3695
                oldlibs="$output_objdir/$libname.$libext"
 
3696
                build_libtool_libs=module
 
3697
                build_old_libs=yes
 
3698
              else
 
3699
                build_libtool_libs=no
 
3700
              fi
 
3701
            fi
 
3702
          fi
 
3703
        fi
 
3704
        # Done checking deplibs!
 
3705
        deplibs=$newdeplibs
 
3706
      fi
 
3707
 
 
3708
      # All the library-specific variables (install_libdir is set above).
 
3709
      library_names=
 
3710
      old_library=
 
3711
      dlname=
 
3712
 
 
3713
      # Test again, we may have decided not to build it any more
 
3714
      if test "$build_libtool_libs" = yes; then
 
3715
        if test "$hardcode_into_libs" = yes; then
 
3716
          # Hardcode the library paths
 
3717
          hardcode_libdirs=
 
3718
          dep_rpath=
 
3719
          rpath="$finalize_rpath"
 
3720
          test "$mode" != relink && rpath="$compile_rpath$rpath"
 
3721
          for libdir in $rpath; do
 
3722
            if test -n "$hardcode_libdir_flag_spec"; then
 
3723
              if test -n "$hardcode_libdir_separator"; then
 
3724
                if test -z "$hardcode_libdirs"; then
 
3725
                  hardcode_libdirs="$libdir"
 
3726
                else
 
3727
                  # Just accumulate the unique libdirs.
 
3728
                  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 
3729
                  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 
3730
                    ;;
 
3731
                  *)
 
3732
                    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
3733
                    ;;
 
3734
                  esac
 
3735
                fi
 
3736
              else
 
3737
                eval flag=\"$hardcode_libdir_flag_spec\"
 
3738
                dep_rpath="$dep_rpath $flag"
 
3739
              fi
 
3740
            elif test -n "$runpath_var"; then
 
3741
              case "$perm_rpath " in
 
3742
              *" $libdir "*) ;;
 
3743
              *) perm_rpath="$perm_rpath $libdir" ;;
 
3744
              esac
 
3745
            fi
 
3746
          done
 
3747
          # Substitute the hardcoded libdirs into the rpath.
 
3748
          if test -n "$hardcode_libdir_separator" &&
 
3749
             test -n "$hardcode_libdirs"; then
 
3750
            libdir="$hardcode_libdirs"
 
3751
            if test -n "$hardcode_libdir_flag_spec_ld"; then
 
3752
              eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
 
3753
            else
 
3754
              eval dep_rpath=\"$hardcode_libdir_flag_spec\"
 
3755
            fi
 
3756
          fi
 
3757
          if test -n "$runpath_var" && test -n "$perm_rpath"; then
 
3758
            # We should set the runpath_var.
 
3759
            rpath=
 
3760
            for dir in $perm_rpath; do
 
3761
              rpath="$rpath$dir:"
 
3762
            done
 
3763
            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
 
3764
          fi
 
3765
          test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
 
3766
        fi
 
3767
 
 
3768
        shlibpath="$finalize_shlibpath"
 
3769
        test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 
3770
        if test -n "$shlibpath"; then
 
3771
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 
3772
        fi
 
3773
 
 
3774
        # Get the real and link names of the library.
 
3775
        eval shared_ext=\"$shrext_cmds\"
 
3776
        eval library_names=\"$library_names_spec\"
 
3777
        set dummy $library_names
 
3778
        realname="$2"
 
3779
        shift; shift
 
3780
 
 
3781
        if test -n "$soname_spec"; then
 
3782
          eval soname=\"$soname_spec\"
 
3783
        else
 
3784
          soname="$realname"
 
3785
        fi
 
3786
        if test -z "$dlname"; then
 
3787
          dlname=$soname
 
3788
        fi
 
3789
 
 
3790
        lib="$output_objdir/$realname"
 
3791
        for link
 
3792
        do
 
3793
          linknames="$linknames $link"
 
3794
        done
 
3795
 
 
3796
        # Use standard objects if they are pic
 
3797
        test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
3798
 
 
3799
        # Prepare the list of exported symbols
 
3800
        if test -z "$export_symbols"; then
 
3801
          if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
 
3802
            $show "generating symbol list for \`$libname.la'"
 
3803
            export_symbols="$output_objdir/$libname.exp"
 
3804
            $run $rm $export_symbols
 
3805
            cmds=$export_symbols_cmds
 
3806
            save_ifs="$IFS"; IFS='~'
 
3807
            for cmd in $cmds; do
 
3808
              IFS="$save_ifs"
 
3809
              eval cmd=\"$cmd\"
 
3810
              if len=`expr "X$cmd" : ".*"` &&
 
3811
               test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 
3812
                $show "$cmd"
 
3813
                $run eval "$cmd" || exit $?
 
3814
                skipped_export=false
 
3815
              else
 
3816
                # The command line is too long to execute in one step.
 
3817
                $show "using reloadable object file for export list..."
 
3818
                skipped_export=:
 
3819
                # Break out early, otherwise skipped_export may be
 
3820
                # set to false by a later but shorter cmd.
 
3821
                break
 
3822
              fi
 
3823
            done
 
3824
            IFS="$save_ifs"
 
3825
            if test -n "$export_symbols_regex"; then
 
3826
              $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
 
3827
              $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
 
3828
              $show "$mv \"${export_symbols}T\" \"$export_symbols\""
 
3829
              $run eval '$mv "${export_symbols}T" "$export_symbols"'
 
3830
            fi
 
3831
          fi
 
3832
        fi
 
3833
 
 
3834
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
 
3835
          $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
 
3836
        fi
 
3837
 
 
3838
        tmp_deplibs=
 
3839
        for test_deplib in $deplibs; do
 
3840
                case " $convenience " in
 
3841
                *" $test_deplib "*) ;;
 
3842
                *)
 
3843
                        tmp_deplibs="$tmp_deplibs $test_deplib"
 
3844
                        ;;
 
3845
                esac
 
3846
        done
 
3847
        deplibs="$tmp_deplibs"
 
3848
 
 
3849
        if test -n "$convenience"; then
 
3850
          if test -n "$whole_archive_flag_spec"; then
 
3851
            save_libobjs=$libobjs
 
3852
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 
3853
          else
 
3854
            gentop="$output_objdir/${outputname}x"
 
3855
            generated="$generated $gentop"
 
3856
 
 
3857
            func_extract_archives $gentop $convenience
 
3858
            libobjs="$libobjs $func_extract_archives_result"
 
3859
          fi
 
3860
        fi
 
3861
        
 
3862
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
 
3863
          eval flag=\"$thread_safe_flag_spec\"
 
3864
          linker_flags="$linker_flags $flag"
 
3865
        fi
 
3866
 
 
3867
        # Make a backup of the uninstalled library when relinking
 
3868
        if test "$mode" = relink; then
 
3869
          $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
 
3870
        fi
 
3871
 
 
3872
        # Do each of the archive commands.
 
3873
        if test "$module" = yes && test -n "$module_cmds" ; then
 
3874
          if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 
3875
            eval test_cmds=\"$module_expsym_cmds\"
 
3876
            cmds=$module_expsym_cmds
 
3877
          else
 
3878
            eval test_cmds=\"$module_cmds\"
 
3879
            cmds=$module_cmds
 
3880
          fi
 
3881
        else
 
3882
        if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 
3883
          eval test_cmds=\"$archive_expsym_cmds\"
 
3884
          cmds=$archive_expsym_cmds
 
3885
        else
 
3886
          eval test_cmds=\"$archive_cmds\"
 
3887
          cmds=$archive_cmds
 
3888
          fi
 
3889
        fi
 
3890
 
 
3891
        if test "X$skipped_export" != "X:" &&
 
3892
           len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 
3893
           test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 
3894
          :
 
3895
        else
 
3896
          # The command line is too long to link in one step, link piecewise.
 
3897
          $echo "creating reloadable object files..."
 
3898
 
 
3899
          # Save the value of $output and $libobjs because we want to
 
3900
          # use them later.  If we have whole_archive_flag_spec, we
 
3901
          # want to use save_libobjs as it was before
 
3902
          # whole_archive_flag_spec was expanded, because we can't
 
3903
          # assume the linker understands whole_archive_flag_spec.
 
3904
          # This may have to be revisited, in case too many
 
3905
          # convenience libraries get linked in and end up exceeding
 
3906
          # the spec.
 
3907
          if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
 
3908
            save_libobjs=$libobjs
 
3909
          fi
 
3910
          save_output=$output
 
3911
          output_la=`$echo "X$output" | $Xsed -e "$basename"`
 
3912
 
 
3913
          # Clear the reloadable object creation command queue and
 
3914
          # initialize k to one.
 
3915
          test_cmds=
 
3916
          concat_cmds=
 
3917
          objlist=
 
3918
          delfiles=
 
3919
          last_robj=
 
3920
          k=1
 
3921
          output=$output_objdir/$output_la-${k}.$objext
 
3922
          # Loop over the list of objects to be linked.
 
3923
          for obj in $save_libobjs
 
3924
          do
 
3925
            eval test_cmds=\"$reload_cmds $objlist $last_robj\"
 
3926
            if test "X$objlist" = X ||
 
3927
               { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 
3928
                 test "$len" -le "$max_cmd_len"; }; then
 
3929
              objlist="$objlist $obj"
 
3930
            else
 
3931
              # The command $test_cmds is almost too long, add a
 
3932
              # command to the queue.
 
3933
              if test "$k" -eq 1 ; then
 
3934
                # The first file doesn't have a previous command to add.
 
3935
                eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
 
3936
              else
 
3937
                # All subsequent reloadable object files will link in
 
3938
                # the last one created.
 
3939
                eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
 
3940
              fi
 
3941
              last_robj=$output_objdir/$output_la-${k}.$objext
 
3942
              k=`expr $k + 1`
 
3943
              output=$output_objdir/$output_la-${k}.$objext
 
3944
              objlist=$obj
 
3945
              len=1
 
3946
            fi
 
3947
          done
 
3948
          # Handle the remaining objects by creating one last
 
3949
          # reloadable object file.  All subsequent reloadable object
 
3950
          # files will link in the last one created.
 
3951
          test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 
3952
          eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
 
3953
 
 
3954
          if ${skipped_export-false}; then
 
3955
            $show "generating symbol list for \`$libname.la'"
 
3956
            export_symbols="$output_objdir/$libname.exp"
 
3957
            $run $rm $export_symbols
 
3958
            libobjs=$output
 
3959
            # Append the command to create the export file.
 
3960
            eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
 
3961
          fi
 
3962
 
 
3963
          # Set up a command to remove the reloadable object files
 
3964
          # after they are used.
 
3965
          i=0
 
3966
          while test "$i" -lt "$k"
 
3967
          do
 
3968
            i=`expr $i + 1`
 
3969
            delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
 
3970
          done
 
3971
 
 
3972
          $echo "creating a temporary reloadable object file: $output"
 
3973
 
 
3974
          # Loop through the commands generated above and execute them.
 
3975
          save_ifs="$IFS"; IFS='~'
 
3976
          for cmd in $concat_cmds; do
 
3977
            IFS="$save_ifs"
 
3978
            $show "$cmd"
 
3979
            $run eval "$cmd" || exit $?
 
3980
          done
 
3981
          IFS="$save_ifs"
 
3982
 
 
3983
          libobjs=$output
 
3984
          # Restore the value of output.
 
3985
          output=$save_output
 
3986
 
 
3987
          if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
 
3988
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
 
3989
          fi
 
3990
          # Expand the library linking commands again to reset the
 
3991
          # value of $libobjs for piecewise linking.
 
3992
 
 
3993
          # Do each of the archive commands.
 
3994
          if test "$module" = yes && test -n "$module_cmds" ; then
 
3995
            if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
 
3996
              cmds=$module_expsym_cmds
 
3997
            else
 
3998
              cmds=$module_cmds
 
3999
            fi
 
4000
          else
 
4001
          if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
 
4002
            cmds=$archive_expsym_cmds
 
4003
          else
 
4004
            cmds=$archive_cmds
 
4005
            fi
 
4006
          fi
 
4007
 
 
4008
          # Append the command to remove the reloadable object files
 
4009
          # to the just-reset $cmds.
 
4010
          eval cmds=\"\$cmds~\$rm $delfiles\"
 
4011
        fi
 
4012
        save_ifs="$IFS"; IFS='~'
 
4013
        for cmd in $cmds; do
 
4014
          IFS="$save_ifs"
 
4015
          eval cmd=\"$cmd\"
 
4016
          $show "$cmd"
 
4017
          $run eval "$cmd" || {
 
4018
            lt_exit=$?
 
4019
 
 
4020
            # Restore the uninstalled library and exit
 
4021
            if test "$mode" = relink; then
 
4022
              $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
 
4023
            fi
 
4024
 
 
4025
            exit $lt_exit
 
4026
          }
 
4027
        done
 
4028
        IFS="$save_ifs"
 
4029
 
 
4030
        # Restore the uninstalled library and exit
 
4031
        if test "$mode" = relink; then
 
4032
          $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
 
4033
 
 
4034
          if test -n "$convenience"; then
 
4035
            if test -z "$whole_archive_flag_spec"; then
 
4036
              $show "${rm}r $gentop"
 
4037
              $run ${rm}r "$gentop"
 
4038
            fi
 
4039
          fi
 
4040
 
 
4041
          exit $EXIT_SUCCESS
 
4042
        fi
 
4043
 
 
4044
        # Create links to the real library.
 
4045
        for linkname in $linknames; do
 
4046
          if test "$realname" != "$linkname"; then
 
4047
            $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
 
4048
            $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
 
4049
          fi
 
4050
        done
 
4051
 
 
4052
        # If -module or -export-dynamic was specified, set the dlname.
 
4053
        if test "$module" = yes || test "$export_dynamic" = yes; then
 
4054
          # On all known operating systems, these are identical.
 
4055
          dlname="$soname"
 
4056
        fi
 
4057
      fi
 
4058
      ;;
 
4059
 
 
4060
    obj)
 
4061
      if test -n "$deplibs"; then
 
4062
        $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
 
4063
      fi
 
4064
 
 
4065
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 
4066
        $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
 
4067
      fi
 
4068
 
 
4069
      if test -n "$rpath"; then
 
4070
        $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
 
4071
      fi
 
4072
 
 
4073
      if test -n "$xrpath"; then
 
4074
        $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
 
4075
      fi
 
4076
 
 
4077
      if test -n "$vinfo"; then
 
4078
        $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
 
4079
      fi
 
4080
 
 
4081
      if test -n "$release"; then
 
4082
        $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
 
4083
      fi
 
4084
 
 
4085
      case $output in
 
4086
      *.lo)
 
4087
        if test -n "$objs$old_deplibs"; then
 
4088
          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
 
4089
          exit $EXIT_FAILURE
 
4090
        fi
 
4091
        libobj="$output"
 
4092
        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
 
4093
        ;;
 
4094
      *)
 
4095
        libobj=
 
4096
        obj="$output"
 
4097
        ;;
 
4098
      esac
 
4099
 
 
4100
      # Delete the old objects.
 
4101
      $run $rm $obj $libobj
 
4102
 
 
4103
      # Objects from convenience libraries.  This assumes
 
4104
      # single-version convenience libraries.  Whenever we create
 
4105
      # different ones for PIC/non-PIC, this we'll have to duplicate
 
4106
      # the extraction.
 
4107
      reload_conv_objs=
 
4108
      gentop=
 
4109
      # reload_cmds runs $LD directly, so let us get rid of
 
4110
      # -Wl from whole_archive_flag_spec
 
4111
      wl=
 
4112
 
 
4113
      if test -n "$convenience"; then
 
4114
        if test -n "$whole_archive_flag_spec"; then
 
4115
          eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
 
4116
        else
 
4117
          gentop="$output_objdir/${obj}x"
 
4118
          generated="$generated $gentop"
 
4119
 
 
4120
          func_extract_archives $gentop $convenience
 
4121
          reload_conv_objs="$reload_objs $func_extract_archives_result"
 
4122
        fi
 
4123
      fi
 
4124
 
 
4125
      # Create the old-style object.
 
4126
      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
4127
 
 
4128
      output="$obj"
 
4129
      cmds=$reload_cmds
 
4130
      save_ifs="$IFS"; IFS='~'
 
4131
      for cmd in $cmds; do
 
4132
        IFS="$save_ifs"
 
4133
        eval cmd=\"$cmd\"
 
4134
        $show "$cmd"
 
4135
        $run eval "$cmd" || exit $?
 
4136
      done
 
4137
      IFS="$save_ifs"
 
4138
 
 
4139
      # Exit if we aren't doing a library object file.
 
4140
      if test -z "$libobj"; then
 
4141
        if test -n "$gentop"; then
 
4142
          $show "${rm}r $gentop"
 
4143
          $run ${rm}r $gentop
 
4144
        fi
 
4145
 
 
4146
        exit $EXIT_SUCCESS
 
4147
      fi
 
4148
 
 
4149
      if test "$build_libtool_libs" != yes; then
 
4150
        if test -n "$gentop"; then
 
4151
          $show "${rm}r $gentop"
 
4152
          $run ${rm}r $gentop
 
4153
        fi
 
4154
 
 
4155
        # Create an invalid libtool object if no PIC, so that we don't
 
4156
        # accidentally link it into a program.
 
4157
        # $show "echo timestamp > $libobj"
 
4158
        # $run eval "echo timestamp > $libobj" || exit $?
 
4159
        exit $EXIT_SUCCESS
 
4160
      fi
 
4161
 
 
4162
      if test -n "$pic_flag" || test "$pic_mode" != default; then
 
4163
        # Only do commands if we really have different PIC objects.
 
4164
        reload_objs="$libobjs $reload_conv_objs"
 
4165
        output="$libobj"
 
4166
        cmds=$reload_cmds
 
4167
        save_ifs="$IFS"; IFS='~'
 
4168
        for cmd in $cmds; do
 
4169
          IFS="$save_ifs"
 
4170
          eval cmd=\"$cmd\"
 
4171
          $show "$cmd"
 
4172
          $run eval "$cmd" || exit $?
 
4173
        done
 
4174
        IFS="$save_ifs"
 
4175
      fi
 
4176
 
 
4177
      if test -n "$gentop"; then
 
4178
        $show "${rm}r $gentop"
 
4179
        $run ${rm}r $gentop
 
4180
      fi
 
4181
 
 
4182
      exit $EXIT_SUCCESS
 
4183
      ;;
 
4184
 
 
4185
    prog)
 
4186
      case $host in
 
4187
        *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
 
4188
      esac
 
4189
      if test -n "$vinfo"; then
 
4190
        $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
 
4191
      fi
 
4192
 
 
4193
      if test -n "$release"; then
 
4194
        $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
 
4195
      fi
 
4196
 
 
4197
      if test "$preload" = yes; then
 
4198
        if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
 
4199
           test "$dlopen_self_static" = unknown; then
 
4200
          $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
 
4201
        fi
 
4202
      fi
 
4203
 
 
4204
      case $host in
 
4205
      *-*-rhapsody* | *-*-darwin1.[012])
 
4206
        # On Rhapsody replace the C library is the System framework
 
4207
        compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
 
4208
        finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
 
4209
        ;;
 
4210
      esac
 
4211
 
 
4212
      case $host in
 
4213
      *darwin*)
 
4214
        # Don't allow lazy linking, it breaks C++ global constructors
 
4215
        if test "$tagname" = CXX ; then
 
4216
        compile_command="$compile_command ${wl}-bind_at_load"
 
4217
        finalize_command="$finalize_command ${wl}-bind_at_load"
 
4218
        fi
 
4219
        ;;
 
4220
      esac
 
4221
 
 
4222
      compile_command="$compile_command $compile_deplibs"
 
4223
      finalize_command="$finalize_command $finalize_deplibs"
 
4224
 
 
4225
      if test -n "$rpath$xrpath"; then
 
4226
        # If the user specified any rpath flags, then add them.
 
4227
        for libdir in $rpath $xrpath; do
 
4228
          # This is the magic to use -rpath.
 
4229
          case "$finalize_rpath " in
 
4230
          *" $libdir "*) ;;
 
4231
          *) finalize_rpath="$finalize_rpath $libdir" ;;
 
4232
          esac
 
4233
        done
 
4234
      fi
 
4235
 
 
4236
      # Now hardcode the library paths
 
4237
      rpath=
 
4238
      hardcode_libdirs=
 
4239
      for libdir in $compile_rpath $finalize_rpath; do
 
4240
        if test -n "$hardcode_libdir_flag_spec"; then
 
4241
          if test -n "$hardcode_libdir_separator"; then
 
4242
            if test -z "$hardcode_libdirs"; then
 
4243
              hardcode_libdirs="$libdir"
 
4244
            else
 
4245
              # Just accumulate the unique libdirs.
 
4246
              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 
4247
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 
4248
                ;;
 
4249
              *)
 
4250
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
4251
                ;;
 
4252
              esac
 
4253
            fi
 
4254
          else
 
4255
            eval flag=\"$hardcode_libdir_flag_spec\"
 
4256
            rpath="$rpath $flag"
 
4257
          fi
 
4258
        elif test -n "$runpath_var"; then
 
4259
          case "$perm_rpath " in
 
4260
          *" $libdir "*) ;;
 
4261
          *) perm_rpath="$perm_rpath $libdir" ;;
 
4262
          esac
 
4263
        fi
 
4264
        case $host in
 
4265
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
 
4266
          case :$dllsearchpath: in
 
4267
          *":$libdir:"*) ;;
 
4268
          *) dllsearchpath="$dllsearchpath:$libdir";;
 
4269
          esac
 
4270
          ;;
 
4271
        esac
 
4272
      done
 
4273
      # Substitute the hardcoded libdirs into the rpath.
 
4274
      if test -n "$hardcode_libdir_separator" &&
 
4275
         test -n "$hardcode_libdirs"; then
 
4276
        libdir="$hardcode_libdirs"
 
4277
        eval rpath=\" $hardcode_libdir_flag_spec\"
 
4278
      fi
 
4279
      compile_rpath="$rpath"
 
4280
 
 
4281
      rpath=
 
4282
      hardcode_libdirs=
 
4283
      for libdir in $finalize_rpath; do
 
4284
        if test -n "$hardcode_libdir_flag_spec"; then
 
4285
          if test -n "$hardcode_libdir_separator"; then
 
4286
            if test -z "$hardcode_libdirs"; then
 
4287
              hardcode_libdirs="$libdir"
 
4288
            else
 
4289
              # Just accumulate the unique libdirs.
 
4290
              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
 
4291
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 
4292
                ;;
 
4293
              *)
 
4294
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
 
4295
                ;;
 
4296
              esac
 
4297
            fi
 
4298
          else
 
4299
            eval flag=\"$hardcode_libdir_flag_spec\"
 
4300
            rpath="$rpath $flag"
 
4301
          fi
 
4302
        elif test -n "$runpath_var"; then
 
4303
          case "$finalize_perm_rpath " in
 
4304
          *" $libdir "*) ;;
 
4305
          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 
4306
          esac
 
4307
        fi
 
4308
      done
 
4309
      # Substitute the hardcoded libdirs into the rpath.
 
4310
      if test -n "$hardcode_libdir_separator" &&
 
4311
         test -n "$hardcode_libdirs"; then
 
4312
        libdir="$hardcode_libdirs"
 
4313
        eval rpath=\" $hardcode_libdir_flag_spec\"
 
4314
      fi
 
4315
      finalize_rpath="$rpath"
 
4316
 
 
4317
      if test -n "$libobjs" && test "$build_old_libs" = yes; then
 
4318
        # Transform all the library objects into standard objects.
 
4319
        compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
4320
        finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
4321
      fi
 
4322
 
 
4323
      dlsyms=
 
4324
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 
4325
        if test -n "$NM" && test -n "$global_symbol_pipe"; then
 
4326
          dlsyms="${outputname}S.c"
 
4327
        else
 
4328
          $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
 
4329
        fi
 
4330
      fi
 
4331
 
 
4332
      if test -n "$dlsyms"; then
 
4333
        case $dlsyms in
 
4334
        "") ;;
 
4335
        *.c)
 
4336
          # Discover the nlist of each of the dlfiles.
 
4337
          nlist="$output_objdir/${outputname}.nm"
 
4338
 
 
4339
          $show "$rm $nlist ${nlist}S ${nlist}T"
 
4340
          $run $rm "$nlist" "${nlist}S" "${nlist}T"
 
4341
 
 
4342
          # Parse the name list into a source file.
 
4343
          $show "creating $output_objdir/$dlsyms"
 
4344
 
 
4345
          test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
 
4346
/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
 
4347
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
 
4348
 
 
4349
#ifdef __cplusplus
 
4350
extern \"C\" {
 
4351
#endif
 
4352
 
 
4353
/* Prevent the only kind of declaration conflicts we can make. */
 
4354
#define lt_preloaded_symbols some_other_symbol
 
4355
 
 
4356
/* External symbol declarations for the compiler. */\
 
4357
"
 
4358
 
 
4359
          if test "$dlself" = yes; then
 
4360
            $show "generating symbol list for \`$output'"
 
4361
 
 
4362
            test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
 
4363
 
 
4364
            # Add our own program objects to the symbol list.
 
4365
            progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
4366
            for arg in $progfiles; do
 
4367
              $show "extracting global C symbols from \`$arg'"
 
4368
              $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
 
4369
            done
 
4370
 
 
4371
            if test -n "$exclude_expsyms"; then
 
4372
              $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
 
4373
              $run eval '$mv "$nlist"T "$nlist"'
 
4374
            fi
 
4375
 
 
4376
            if test -n "$export_symbols_regex"; then
 
4377
              $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
 
4378
              $run eval '$mv "$nlist"T "$nlist"'
 
4379
            fi
 
4380
 
 
4381
            # Prepare the list of exported symbols
 
4382
            if test -z "$export_symbols"; then
 
4383
              export_symbols="$output_objdir/$outputname.exp"
 
4384
              $run $rm $export_symbols
 
4385
              $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
 
4386
            else
 
4387
              $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
 
4388
              $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 
4389
              $run eval 'mv "$nlist"T "$nlist"'
 
4390
            fi
 
4391
          fi
 
4392
 
 
4393
          for arg in $dlprefiles; do
 
4394
            $show "extracting global C symbols from \`$arg'"
 
4395
            name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
 
4396
            $run eval '$echo ": $name " >> "$nlist"'
 
4397
            $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
 
4398
          done
 
4399
 
 
4400
          if test -z "$run"; then
 
4401
            # Make sure we have at least an empty file.
 
4402
            test -f "$nlist" || : > "$nlist"
 
4403
 
 
4404
            if test -n "$exclude_expsyms"; then
 
4405
              $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
 
4406
              $mv "$nlist"T "$nlist"
 
4407
            fi
 
4408
 
 
4409
            # Try sorting and uniquifying the output.
 
4410
            if grep -v "^: " < "$nlist" |
 
4411
                if sort -k 3 </dev/null >/dev/null 2>&1; then
 
4412
                  sort -k 3
 
4413
                else
 
4414
                  sort +2
 
4415
                fi |
 
4416
                uniq > "$nlist"S; then
 
4417
              :
 
4418
            else
 
4419
              grep -v "^: " < "$nlist" > "$nlist"S
 
4420
            fi
 
4421
 
 
4422
            if test -f "$nlist"S; then
 
4423
              eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
 
4424
            else
 
4425
              $echo '/* NONE */' >> "$output_objdir/$dlsyms"
 
4426
            fi
 
4427
 
 
4428
            $echo >> "$output_objdir/$dlsyms" "\
 
4429
 
 
4430
#undef lt_preloaded_symbols
 
4431
 
 
4432
#if defined (__STDC__) && __STDC__
 
4433
# define lt_ptr void *
 
4434
#else
 
4435
# define lt_ptr char *
 
4436
# define const
 
4437
#endif
 
4438
 
 
4439
/* The mapping between symbol names and symbols. */
 
4440
"
 
4441
 
 
4442
            case $host in
 
4443
            *cygwin* | *mingw* )
 
4444
          $echo >> "$output_objdir/$dlsyms" "\
 
4445
/* DATA imports from DLLs on WIN32 can't be const, because
 
4446
   runtime relocations are performed -- see ld's documentation
 
4447
   on pseudo-relocs */
 
4448
struct {
 
4449
"
 
4450
              ;;
 
4451
            * )
 
4452
          $echo >> "$output_objdir/$dlsyms" "\
 
4453
const struct {
 
4454
"
 
4455
              ;;
 
4456
            esac
 
4457
 
 
4458
 
 
4459
          $echo >> "$output_objdir/$dlsyms" "\
 
4460
  const char *name;
 
4461
  lt_ptr address;
 
4462
}
 
4463
lt_preloaded_symbols[] =
 
4464
{\
 
4465
"
 
4466
 
 
4467
            eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
 
4468
 
 
4469
            $echo >> "$output_objdir/$dlsyms" "\
 
4470
  {0, (lt_ptr) 0}
 
4471
};
 
4472
 
 
4473
/* This works around a problem in FreeBSD linker */
 
4474
#ifdef FREEBSD_WORKAROUND
 
4475
static const void *lt_preloaded_setup() {
 
4476
  return lt_preloaded_symbols;
 
4477
}
 
4478
#endif
 
4479
 
 
4480
#ifdef __cplusplus
 
4481
}
 
4482
#endif\
 
4483
"
 
4484
          fi
 
4485
 
 
4486
          pic_flag_for_symtable=
 
4487
          case $host in
 
4488
          # compiling the symbol table file with pic_flag works around
 
4489
          # a FreeBSD bug that causes programs to crash when -lm is
 
4490
          # linked before any other PIC object.  But we must not use
 
4491
          # pic_flag when linking with -static.  The problem exists in
 
4492
          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
 
4493
          *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
 
4494
            case "$compile_command " in
 
4495
            *" -static "*) ;;
 
4496
            *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
 
4497
            esac;;
 
4498
          *-*-hpux*)
 
4499
            case "$compile_command " in
 
4500
            *" -static "*) ;;
 
4501
            *) pic_flag_for_symtable=" $pic_flag";;
 
4502
            esac
 
4503
          esac
 
4504
 
 
4505
          # Now compile the dynamic symbol file.
 
4506
          $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
 
4507
          $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
 
4508
 
 
4509
          # Clean up the generated files.
 
4510
          $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
 
4511
          $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
 
4512
 
 
4513
          # Transform the symbol file into the correct name.
 
4514
          compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
 
4515
          finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
 
4516
          ;;
 
4517
        *)
 
4518
          $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
 
4519
          exit $EXIT_FAILURE
 
4520
          ;;
 
4521
        esac
 
4522
      else
 
4523
        # We keep going just in case the user didn't refer to
 
4524
        # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
 
4525
        # really was required.
 
4526
 
 
4527
        # Nullify the symbol file.
 
4528
        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
 
4529
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
 
4530
      fi
 
4531
 
 
4532
      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
 
4533
        # Replace the output file specification.
 
4534
        compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 
4535
        link_command="$compile_command$compile_rpath"
 
4536
 
 
4537
        # We have no uninstalled library dependencies, so finalize right now.
 
4538
        $show "$link_command"
 
4539
        $run eval "$link_command"
 
4540
        status=$?
 
4541
 
 
4542
        # Delete the generated files.
 
4543
        if test -n "$dlsyms"; then
 
4544
          $show "$rm $output_objdir/${outputname}S.${objext}"
 
4545
          $run $rm "$output_objdir/${outputname}S.${objext}"
 
4546
        fi
 
4547
 
 
4548
        exit $status
 
4549
      fi
 
4550
 
 
4551
      if test -n "$shlibpath_var"; then
 
4552
        # We should set the shlibpath_var
 
4553
        rpath=
 
4554
        for dir in $temp_rpath; do
 
4555
          case $dir in
 
4556
          [\\/]* | [A-Za-z]:[\\/]*)
 
4557
            # Absolute path.
 
4558
            rpath="$rpath$dir:"
 
4559
            ;;
 
4560
          *)
 
4561
            # Relative path: add a thisdir entry.
 
4562
            rpath="$rpath\$thisdir/$dir:"
 
4563
            ;;
 
4564
          esac
 
4565
        done
 
4566
        temp_rpath="$rpath"
 
4567
      fi
 
4568
 
 
4569
      if test -n "$compile_shlibpath$finalize_shlibpath"; then
 
4570
        compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
 
4571
      fi
 
4572
      if test -n "$finalize_shlibpath"; then
 
4573
        finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
 
4574
      fi
 
4575
 
 
4576
      compile_var=
 
4577
      finalize_var=
 
4578
      if test -n "$runpath_var"; then
 
4579
        if test -n "$perm_rpath"; then
 
4580
          # We should set the runpath_var.
 
4581
          rpath=
 
4582
          for dir in $perm_rpath; do
 
4583
            rpath="$rpath$dir:"
 
4584
          done
 
4585
          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 
4586
        fi
 
4587
        if test -n "$finalize_perm_rpath"; then
 
4588
          # We should set the runpath_var.
 
4589
          rpath=
 
4590
          for dir in $finalize_perm_rpath; do
 
4591
            rpath="$rpath$dir:"
 
4592
          done
 
4593
          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
 
4594
        fi
 
4595
      fi
 
4596
 
 
4597
      if test "$no_install" = yes; then
 
4598
        # We don't need to create a wrapper script.
 
4599
        link_command="$compile_var$compile_command$compile_rpath"
 
4600
        # Replace the output file specification.
 
4601
        link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
 
4602
        # Delete the old output file.
 
4603
        $run $rm $output
 
4604
        # Link the executable and exit
 
4605
        $show "$link_command"
 
4606
        $run eval "$link_command" || exit $?
 
4607
        exit $EXIT_SUCCESS
 
4608
      fi
 
4609
 
 
4610
      if test "$hardcode_action" = relink; then
 
4611
        # Fast installation is not supported
 
4612
        link_command="$compile_var$compile_command$compile_rpath"
 
4613
        relink_command="$finalize_var$finalize_command$finalize_rpath"
 
4614
 
 
4615
        $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
 
4616
        $echo "$modename: \`$output' will be relinked during installation" 1>&2
 
4617
      else
 
4618
        if test "$fast_install" != no; then
 
4619
          link_command="$finalize_var$compile_command$finalize_rpath"
 
4620
          if test "$fast_install" = yes; then
 
4621
            relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
 
4622
          else
 
4623
            # fast_install is set to needless
 
4624
            relink_command=
 
4625
          fi
 
4626
        else
 
4627
          link_command="$compile_var$compile_command$compile_rpath"
 
4628
          relink_command="$finalize_var$finalize_command$finalize_rpath"
 
4629
        fi
 
4630
      fi
 
4631
 
 
4632
      # Replace the output file specification.
 
4633
      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
4634
 
 
4635
      # Delete the old output files.
 
4636
      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
4637
 
 
4638
      $show "$link_command"
 
4639
      $run eval "$link_command" || exit $?
 
4640
 
 
4641
      # Now create the wrapper script.
 
4642
      $show "creating $output"
 
4643
 
 
4644
      # Quote the relink command for shipping.
 
4645
      if test -n "$relink_command"; then
 
4646
        # Preserve any variables that may affect compiler behavior
 
4647
        for var in $variables_saved_for_relink; do
 
4648
          if eval test -z \"\${$var+set}\"; then
 
4649
            relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
 
4650
          elif eval var_value=\$$var; test -z "$var_value"; then
 
4651
            relink_command="$var=; export $var; $relink_command"
 
4652
          else
 
4653
            var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
 
4654
            relink_command="$var=\"$var_value\"; export $var; $relink_command"
 
4655
          fi
 
4656
        done
 
4657
        relink_command="(cd `pwd`; $relink_command)"
 
4658
        relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 
4659
      fi
 
4660
 
 
4661
      # Quote $echo for shipping.
 
4662
      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
 
4663
        case $progpath in
 
4664
        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
 
4665
        *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
 
4666
        esac
 
4667
        qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
 
4668
      else
 
4669
        qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
 
4670
      fi
 
4671
 
 
4672
      # Only actually do things if our run command is non-null.
 
4673
      if test -z "$run"; then
 
4674
        # win32 will think the script is a binary if it has
 
4675
        # a .exe suffix, so we strip it off here.
 
4676
        case $output in
 
4677
          *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
 
4678
        esac
 
4679
        # test for cygwin because mv fails w/o .exe extensions
 
4680
        case $host in
 
4681
          *cygwin*)
 
4682
            exeext=.exe
 
4683
            outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
 
4684
          *) exeext= ;;
 
4685
        esac
 
4686
        case $host in
 
4687
          *cygwin* | *mingw* )
 
4688
            cwrappersource=`$echo ${objdir}/lt-${outputname}.c`
 
4689
            cwrapper=`$echo ${output}.exe`
 
4690
            $rm $cwrappersource $cwrapper
 
4691
            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
4692
 
 
4693
            cat > $cwrappersource <<EOF
 
4694
 
 
4695
/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
 
4696
   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
4697
 
 
4698
   The $output program cannot be directly executed until all the libtool
 
4699
   libraries that it depends on are installed.
 
4700
 
 
4701
   This wrapper executable should never be moved out of the build directory.
 
4702
   If it is, it will not operate correctly.
 
4703
 
 
4704
   Currently, it simply execs the wrapper *script* "/bin/sh $output",
 
4705
   but could eventually absorb all of the scripts functionality and
 
4706
   exec $objdir/$outputname directly.
 
4707
*/
 
4708
EOF
 
4709
            cat >> $cwrappersource<<"EOF"
 
4710
#include <stdio.h>
 
4711
#include <stdlib.h>
 
4712
#include <unistd.h>
 
4713
#include <malloc.h>
 
4714
#include <stdarg.h>
 
4715
#include <assert.h>
 
4716
 
 
4717
#if defined(PATH_MAX)
 
4718
# define LT_PATHMAX PATH_MAX
 
4719
#elif defined(MAXPATHLEN)
 
4720
# define LT_PATHMAX MAXPATHLEN
 
4721
#else
 
4722
# define LT_PATHMAX 1024
 
4723
#endif
 
4724
 
 
4725
#ifndef DIR_SEPARATOR
 
4726
#define DIR_SEPARATOR '/'
 
4727
#endif
 
4728
 
 
4729
#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
 
4730
  defined (__OS2__)
 
4731
#define HAVE_DOS_BASED_FILE_SYSTEM
 
4732
#ifndef DIR_SEPARATOR_2
 
4733
#define DIR_SEPARATOR_2 '\\'
 
4734
#endif
 
4735
#endif
 
4736
 
 
4737
#ifndef DIR_SEPARATOR_2
 
4738
# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
 
4739
#else /* DIR_SEPARATOR_2 */
 
4740
# define IS_DIR_SEPARATOR(ch) \
 
4741
        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
 
4742
#endif /* DIR_SEPARATOR_2 */
 
4743
 
 
4744
#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 
4745
#define XFREE(stale) do { \
 
4746
  if (stale) { free ((void *) stale); stale = 0; } \
 
4747
} while (0)
 
4748
 
 
4749
const char *program_name = NULL;
 
4750
 
 
4751
void * xmalloc (size_t num);
 
4752
char * xstrdup (const char *string);
 
4753
char * basename (const char *name);
 
4754
char * fnqualify(const char *path);
 
4755
char * strendzap(char *str, const char *pat);
 
4756
void lt_fatal (const char *message, ...);
 
4757
 
 
4758
int
 
4759
main (int argc, char *argv[])
 
4760
{
 
4761
  char **newargz;
 
4762
  int i;
 
4763
 
 
4764
  program_name = (char *) xstrdup ((char *) basename (argv[0]));
 
4765
  newargz = XMALLOC(char *, argc+2);
 
4766
EOF
 
4767
 
 
4768
            cat >> $cwrappersource <<EOF
 
4769
  newargz[0] = "$SHELL";
 
4770
EOF
 
4771
 
 
4772
            cat >> $cwrappersource <<"EOF"
 
4773
  newargz[1] = fnqualify(argv[0]);
 
4774
  /* we know the script has the same name, without the .exe */
 
4775
  /* so make sure newargz[1] doesn't end in .exe */
 
4776
  strendzap(newargz[1],".exe");
 
4777
  for (i = 1; i < argc; i++)
 
4778
    newargz[i+1] = xstrdup(argv[i]);
 
4779
  newargz[argc+1] = NULL;
 
4780
EOF
 
4781
 
 
4782
            cat >> $cwrappersource <<EOF
 
4783
  execv("$SHELL",newargz);
 
4784
EOF
 
4785
 
 
4786
            cat >> $cwrappersource <<"EOF"
 
4787
  return 127;
 
4788
}
 
4789
 
 
4790
void *
 
4791
xmalloc (size_t num)
 
4792
{
 
4793
  void * p = (void *) malloc (num);
 
4794
  if (!p)
 
4795
    lt_fatal ("Memory exhausted");
 
4796
 
 
4797
  return p;
 
4798
}
 
4799
 
 
4800
char *
 
4801
xstrdup (const char *string)
 
4802
{
 
4803
  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
 
4804
;
 
4805
}
 
4806
 
 
4807
char *
 
4808
basename (const char *name)
 
4809
{
 
4810
  const char *base;
 
4811
 
 
4812
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 
4813
  /* Skip over the disk name in MSDOS pathnames. */
 
4814
  if (isalpha (name[0]) && name[1] == ':')
 
4815
    name += 2;
 
4816
#endif
 
4817
 
 
4818
  for (base = name; *name; name++)
 
4819
    if (IS_DIR_SEPARATOR (*name))
 
4820
      base = name + 1;
 
4821
  return (char *) base;
 
4822
}
 
4823
 
 
4824
char *
 
4825
fnqualify(const char *path)
 
4826
{
 
4827
  size_t size;
 
4828
  char *p;
 
4829
  char tmp[LT_PATHMAX + 1];
 
4830
 
 
4831
  assert(path != NULL);
 
4832
 
 
4833
  /* Is it qualified already? */
 
4834
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
 
4835
  if (isalpha (path[0]) && path[1] == ':')
 
4836
    return xstrdup (path);
 
4837
#endif
 
4838
  if (IS_DIR_SEPARATOR (path[0]))
 
4839
    return xstrdup (path);
 
4840
 
 
4841
  /* prepend the current directory */
 
4842
  /* doesn't handle '~' */
 
4843
  if (getcwd (tmp, LT_PATHMAX) == NULL)
 
4844
    lt_fatal ("getcwd failed");
 
4845
  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
 
4846
  p = XMALLOC(char, size);
 
4847
  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
 
4848
  return p;
 
4849
}
 
4850
 
 
4851
char *
 
4852
strendzap(char *str, const char *pat)
 
4853
{
 
4854
  size_t len, patlen;
 
4855
 
 
4856
  assert(str != NULL);
 
4857
  assert(pat != NULL);
 
4858
 
 
4859
  len = strlen(str);
 
4860
  patlen = strlen(pat);
 
4861
 
 
4862
  if (patlen <= len)
 
4863
  {
 
4864
    str += len - patlen;
 
4865
    if (strcmp(str, pat) == 0)
 
4866
      *str = '\0';
 
4867
  }
 
4868
  return str;
 
4869
}
 
4870
 
 
4871
static void
 
4872
lt_error_core (int exit_status, const char * mode,
 
4873
          const char * message, va_list ap)
 
4874
{
 
4875
  fprintf (stderr, "%s: %s: ", program_name, mode);
 
4876
  vfprintf (stderr, message, ap);
 
4877
  fprintf (stderr, ".\n");
 
4878
 
 
4879
  if (exit_status >= 0)
 
4880
    exit (exit_status);
 
4881
}
 
4882
 
 
4883
void
 
4884
lt_fatal (const char *message, ...)
 
4885
{
 
4886
  va_list ap;
 
4887
  va_start (ap, message);
 
4888
  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
 
4889
  va_end (ap);
 
4890
}
 
4891
EOF
 
4892
          # we should really use a build-platform specific compiler
 
4893
          # here, but OTOH, the wrappers (shell script and this C one)
 
4894
          # are only useful if you want to execute the "real" binary.
 
4895
          # Since the "real" binary is built for $host, then this
 
4896
          # wrapper might as well be built for $host, too.
 
4897
          $run $LTCC -s -o $cwrapper $cwrappersource
 
4898
          ;;
 
4899
        esac
 
4900
        $rm $output
 
4901
        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
 
4902
 
 
4903
        $echo > $output "\
 
4904
#! $SHELL
 
4905
 
 
4906
# $output - temporary wrapper script for $objdir/$outputname
 
4907
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
4908
#
 
4909
# The $output program cannot be directly executed until all the libtool
 
4910
# libraries that it depends on are installed.
 
4911
#
 
4912
# This wrapper script should never be moved out of the build directory.
 
4913
# If it is, it will not operate correctly.
 
4914
 
 
4915
# Sed substitution that helps us do robust quoting.  It backslashifies
 
4916
# metacharacters that are still active within double-quoted strings.
 
4917
Xsed='${SED} -e 1s/^X//'
 
4918
sed_quote_subst='$sed_quote_subst'
 
4919
 
 
4920
# The HP-UX ksh and POSIX shell print the target directory to stdout
 
4921
# if CDPATH is set.
 
4922
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
4923
 
 
4924
relink_command=\"$relink_command\"
 
4925
 
 
4926
# This environment variable determines our operation mode.
 
4927
if test \"\$libtool_install_magic\" = \"$magic\"; then
 
4928
  # install mode needs the following variable:
 
4929
  notinst_deplibs='$notinst_deplibs'
 
4930
else
 
4931
  # When we are sourced in execute mode, \$file and \$echo are already set.
 
4932
  if test \"\$libtool_execute_magic\" != \"$magic\"; then
 
4933
    echo=\"$qecho\"
 
4934
    file=\"\$0\"
 
4935
    # Make sure echo works.
 
4936
    if test \"X\$1\" = X--no-reexec; then
 
4937
      # Discard the --no-reexec flag, and continue.
 
4938
      shift
 
4939
    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
 
4940
      # Yippee, \$echo works!
 
4941
      :
 
4942
    else
 
4943
      # Restart under the correct shell, and then maybe \$echo will work.
 
4944
      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
 
4945
    fi
 
4946
  fi\
 
4947
"
 
4948
        $echo >> $output "\
 
4949
 
 
4950
  # Find the directory that this script lives in.
 
4951
  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
 
4952
  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
4953
 
 
4954
  # Follow symbolic links until we get to the real thisdir.
 
4955
  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
 
4956
  while test -n \"\$file\"; do
 
4957
    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 
4958
 
 
4959
    # If there was a directory component, then change thisdir.
 
4960
    if test \"x\$destdir\" != \"x\$file\"; then
 
4961
      case \"\$destdir\" in
 
4962
      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
 
4963
      *) thisdir=\"\$thisdir/\$destdir\" ;;
 
4964
      esac
 
4965
    fi
 
4966
 
 
4967
    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
 
4968
    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
 
4969
  done
 
4970
 
 
4971
  # Try to get the absolute directory name.
 
4972
  absdir=\`cd \"\$thisdir\" && pwd\`
 
4973
  test -n \"\$absdir\" && thisdir=\"\$absdir\"
 
4974
"
 
4975
 
 
4976
        if test "$fast_install" = yes; then
 
4977
          $echo >> $output "\
 
4978
  program=lt-'$outputname'$exeext
 
4979
  progdir=\"\$thisdir/$objdir\"
 
4980
 
 
4981
  if test ! -f \"\$progdir/\$program\" || \\
 
4982
     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
 
4983
       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
4984
 
 
4985
    file=\"\$\$-\$program\"
 
4986
 
 
4987
    if test ! -d \"\$progdir\"; then
 
4988
      $mkdir \"\$progdir\"
 
4989
    else
 
4990
      $rm \"\$progdir/\$file\"
 
4991
    fi"
 
4992
 
 
4993
          $echo >> $output "\
 
4994
 
 
4995
    # relink executable if necessary
 
4996
    if test -n \"\$relink_command\"; then
 
4997
      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
 
4998
      else
 
4999
        $echo \"\$relink_command_output\" >&2
 
5000
        $rm \"\$progdir/\$file\"
 
5001
        exit $EXIT_FAILURE
 
5002
      fi
 
5003
    fi
 
5004
 
 
5005
    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
 
5006
    { $rm \"\$progdir/\$program\";
 
5007
      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
 
5008
    $rm \"\$progdir/\$file\"
 
5009
  fi"
 
5010
        else
 
5011
          $echo >> $output "\
 
5012
  program='$outputname'
 
5013
  progdir=\"\$thisdir/$objdir\"
 
5014
"
 
5015
        fi
 
5016
 
 
5017
        $echo >> $output "\
 
5018
 
 
5019
  if test -f \"\$progdir/\$program\"; then"
 
5020
 
 
5021
        # Export our shlibpath_var if we have one.
 
5022
        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 
5023
          $echo >> $output "\
 
5024
    # Add our own library path to $shlibpath_var
 
5025
    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 
5026
 
 
5027
    # Some systems cannot cope with colon-terminated $shlibpath_var
 
5028
    # The second colon is a workaround for a bug in BeOS R4 sed
 
5029
    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 
5030
 
 
5031
    export $shlibpath_var
 
5032
"
 
5033
        fi
 
5034
 
 
5035
        # fixup the dll searchpath if we need to.
 
5036
        if test -n "$dllsearchpath"; then
 
5037
          $echo >> $output "\
 
5038
    # Add the dll search path components to the executable PATH
 
5039
    PATH=$dllsearchpath:\$PATH
 
5040
"
 
5041
        fi
 
5042
 
 
5043
        $echo >> $output "\
 
5044
    if test \"\$libtool_execute_magic\" != \"$magic\"; then
 
5045
      # Run the actual program with our arguments.
 
5046
"
 
5047
        case $host in
 
5048
        # Backslashes separate directories on plain windows
 
5049
        *-*-mingw | *-*-os2*)
 
5050
          $echo >> $output "\
 
5051
      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
 
5052
"
 
5053
          ;;
 
5054
 
 
5055
        *)
 
5056
          $echo >> $output "\
 
5057
      exec \"\$progdir/\$program\" \${1+\"\$@\"}
 
5058
"
 
5059
          ;;
 
5060
        esac
 
5061
        $echo >> $output "\
 
5062
      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
 
5063
      exit $EXIT_FAILURE
 
5064
    fi
 
5065
  else
 
5066
    # The program doesn't exist.
 
5067
    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
 
5068
    \$echo \"This script is just a wrapper for \$program.\" 1>&2
 
5069
    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
 
5070
    exit $EXIT_FAILURE
 
5071
  fi
 
5072
fi\
 
5073
"
 
5074
        chmod +x $output
 
5075
      fi
 
5076
      exit $EXIT_SUCCESS
 
5077
      ;;
 
5078
    esac
 
5079
 
 
5080
    # See if we need to build an old-fashioned archive.
 
5081
    for oldlib in $oldlibs; do
 
5082
 
 
5083
      if test "$build_libtool_libs" = convenience; then
 
5084
        oldobjs="$libobjs_save"
 
5085
        addlibs="$convenience"
 
5086
        build_libtool_libs=no
 
5087
      else
 
5088
        if test "$build_libtool_libs" = module; then
 
5089
          oldobjs="$libobjs_save"
 
5090
          build_libtool_libs=no
 
5091
        else
 
5092
          oldobjs="$old_deplibs $non_pic_objects"
 
5093
        fi
 
5094
        addlibs="$old_convenience"
 
5095
      fi
 
5096
 
 
5097
      if test -n "$addlibs"; then
 
5098
        gentop="$output_objdir/${outputname}x"
 
5099
        generated="$generated $gentop"
 
5100
 
 
5101
        func_extract_archives $gentop $addlibs
 
5102
        oldobjs="$oldobjs $func_extract_archives_result"
 
5103
      fi
 
5104
 
 
5105
      # Do each command in the archive commands.
 
5106
      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
 
5107
       cmds=$old_archive_from_new_cmds
 
5108
      else
 
5109
        # POSIX demands no paths to be encoded in archives.  We have
 
5110
        # to avoid creating archives with duplicate basenames if we
 
5111
        # might have to extract them afterwards, e.g., when creating a
 
5112
        # static archive out of a convenience library, or when linking
 
5113
        # the entirety of a libtool archive into another (currently
 
5114
        # not supported by libtool).
 
5115
        if (for obj in $oldobjs
 
5116
            do
 
5117
              $echo "X$obj" | $Xsed -e 's%^.*/%%'
 
5118
            done | sort | sort -uc >/dev/null 2>&1); then
 
5119
          :
 
5120
        else
 
5121
          $echo "copying selected object files to avoid basename conflicts..."
 
5122
 
 
5123
          if test -z "$gentop"; then
 
5124
            gentop="$output_objdir/${outputname}x"
 
5125
            generated="$generated $gentop"
 
5126
 
 
5127
            $show "${rm}r $gentop"
 
5128
            $run ${rm}r "$gentop"
 
5129
            $show "$mkdir $gentop"
 
5130
            $run $mkdir "$gentop"
 
5131
            status=$?
 
5132
            if test "$status" -ne 0 && test ! -d "$gentop"; then
 
5133
              exit $status
 
5134
            fi
 
5135
          fi
 
5136
 
 
5137
          save_oldobjs=$oldobjs
 
5138
          oldobjs=
 
5139
          counter=1
 
5140
          for obj in $save_oldobjs
 
5141
          do
 
5142
            objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
 
5143
            case " $oldobjs " in
 
5144
            " ") oldobjs=$obj ;;
 
5145
            *[\ /]"$objbase "*)
 
5146
              while :; do
 
5147
                # Make sure we don't pick an alternate name that also
 
5148
                # overlaps.
 
5149
                newobj=lt$counter-$objbase
 
5150
                counter=`expr $counter + 1`
 
5151
                case " $oldobjs " in
 
5152
                *[\ /]"$newobj "*) ;;
 
5153
                *) if test ! -f "$gentop/$newobj"; then break; fi ;;
 
5154
                esac
 
5155
              done
 
5156
              $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
 
5157
              $run ln "$obj" "$gentop/$newobj" ||
 
5158
              $run cp "$obj" "$gentop/$newobj"
 
5159
              oldobjs="$oldobjs $gentop/$newobj"
 
5160
              ;;
 
5161
            *) oldobjs="$oldobjs $obj" ;;
 
5162
            esac
 
5163
          done
 
5164
        fi
 
5165
 
 
5166
        eval cmds=\"$old_archive_cmds\"
 
5167
 
 
5168
        if len=`expr "X$cmds" : ".*"` &&
 
5169
             test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 
5170
          cmds=$old_archive_cmds
 
5171
        else
 
5172
          # the command line is too long to link in one step, link in parts
 
5173
          $echo "using piecewise archive linking..."
 
5174
          save_RANLIB=$RANLIB
 
5175
          RANLIB=:
 
5176
          objlist=
 
5177
          concat_cmds=
 
5178
          save_oldobjs=$oldobjs
 
5179
 
 
5180
          # Is there a better way of finding the last object in the list?
 
5181
          for obj in $save_oldobjs
 
5182
          do
 
5183
            last_oldobj=$obj
 
5184
          done
 
5185
          for obj in $save_oldobjs
 
5186
          do
 
5187
            oldobjs="$objlist $obj"
 
5188
            objlist="$objlist $obj"
 
5189
            eval test_cmds=\"$old_archive_cmds\"
 
5190
            if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
 
5191
               test "$len" -le "$max_cmd_len"; then
 
5192
              :
 
5193
            else
 
5194
              # the above command should be used before it gets too long
 
5195
              oldobjs=$objlist
 
5196
              if test "$obj" = "$last_oldobj" ; then
 
5197
                RANLIB=$save_RANLIB
 
5198
              fi
 
5199
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 
5200
              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
 
5201
              objlist=
 
5202
            fi
 
5203
          done
 
5204
          RANLIB=$save_RANLIB
 
5205
          oldobjs=$objlist
 
5206
          if test "X$oldobjs" = "X" ; then
 
5207
            eval cmds=\"\$concat_cmds\"
 
5208
          else
 
5209
            eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
 
5210
          fi
 
5211
        fi
 
5212
      fi
 
5213
      save_ifs="$IFS"; IFS='~'
 
5214
      for cmd in $cmds; do
 
5215
        eval cmd=\"$cmd\"
 
5216
        IFS="$save_ifs"
 
5217
        $show "$cmd"
 
5218
        $run eval "$cmd" || exit $?
 
5219
      done
 
5220
      IFS="$save_ifs"
 
5221
    done
 
5222
 
 
5223
    if test -n "$generated"; then
 
5224
      $show "${rm}r$generated"
 
5225
      $run ${rm}r$generated
 
5226
    fi
 
5227
 
 
5228
    # Now create the libtool archive.
 
5229
    case $output in
 
5230
    *.la)
 
5231
      old_library=
 
5232
      test "$build_old_libs" = yes && old_library="$libname.$libext"
 
5233
      $show "creating $output"
 
5234
 
 
5235
      # Preserve any variables that may affect compiler behavior
 
5236
      for var in $variables_saved_for_relink; do
 
5237
        if eval test -z \"\${$var+set}\"; then
 
5238
          relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
 
5239
        elif eval var_value=\$$var; test -z "$var_value"; then
 
5240
          relink_command="$var=; export $var; $relink_command"
 
5241
        else
 
5242
          var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
 
5243
          relink_command="$var=\"$var_value\"; export $var; $relink_command"
 
5244
        fi
 
5245
      done
 
5246
      # Quote the link command for shipping.
 
5247
      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
 
5248
      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
 
5249
      if test "$hardcode_automatic" = yes ; then
 
5250
        relink_command=
 
5251
      fi
 
5252
 
 
5253
 
 
5254
      # Only create the output if not a dry run.
 
5255
      if test -z "$run"; then
 
5256
        for installed in no yes; do
 
5257
          if test "$installed" = yes; then
 
5258
            if test -z "$install_libdir"; then
 
5259
              break
 
5260
            fi
 
5261
            output="$output_objdir/$outputname"i
 
5262
            # Replace all uninstalled libtool libraries with the installed ones
 
5263
            newdependency_libs=
 
5264
            for deplib in $dependency_libs; do
 
5265
              case $deplib in
 
5266
              *.la)
 
5267
                name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
 
5268
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 
5269
                if test -z "$libdir"; then
 
5270
                  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
 
5271
                  exit $EXIT_FAILURE
 
5272
                fi
 
5273
                newdependency_libs="$newdependency_libs $libdir/$name"
 
5274
                ;;
 
5275
              *) newdependency_libs="$newdependency_libs $deplib" ;;
 
5276
              esac
 
5277
            done
 
5278
            dependency_libs="$newdependency_libs"
 
5279
            newdlfiles=
 
5280
            for lib in $dlfiles; do
 
5281
              name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
 
5282
              eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 
5283
              if test -z "$libdir"; then
 
5284
                $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
 
5285
                exit $EXIT_FAILURE
 
5286
              fi
 
5287
              newdlfiles="$newdlfiles $libdir/$name"
 
5288
            done
 
5289
            dlfiles="$newdlfiles"
 
5290
            newdlprefiles=
 
5291
            for lib in $dlprefiles; do
 
5292
              name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
 
5293
              eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 
5294
              if test -z "$libdir"; then
 
5295
                $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
 
5296
                exit $EXIT_FAILURE
 
5297
              fi
 
5298
              newdlprefiles="$newdlprefiles $libdir/$name"
 
5299
            done
 
5300
            dlprefiles="$newdlprefiles"
 
5301
          else
 
5302
            newdlfiles=
 
5303
            for lib in $dlfiles; do
 
5304
              case $lib in
 
5305
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 
5306
                *) abs=`pwd`"/$lib" ;;
 
5307
              esac
 
5308
              newdlfiles="$newdlfiles $abs"
 
5309
            done
 
5310
            dlfiles="$newdlfiles"
 
5311
            newdlprefiles=
 
5312
            for lib in $dlprefiles; do
 
5313
              case $lib in
 
5314
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 
5315
                *) abs=`pwd`"/$lib" ;;
 
5316
              esac
 
5317
              newdlprefiles="$newdlprefiles $abs"
 
5318
            done
 
5319
            dlprefiles="$newdlprefiles"
 
5320
          fi
 
5321
          $rm $output
 
5322
          # place dlname in correct position for cygwin
 
5323
          tdlname=$dlname
 
5324
          case $host,$output,$installed,$module,$dlname in
 
5325
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
 
5326
          esac
 
5327
          $echo > $output "\
 
5328
# $outputname - a libtool library file
 
5329
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
5330
#
 
5331
# Please DO NOT delete this file!
 
5332
# It is necessary for linking the library.
 
5333
 
 
5334
# The name that we can dlopen(3).
 
5335
dlname='$tdlname'
 
5336
 
 
5337
# Names of this library.
 
5338
library_names='$library_names'
 
5339
 
 
5340
# The name of the static archive.
 
5341
old_library='$old_library'
 
5342
 
 
5343
# Libraries that this one depends upon.
 
5344
dependency_libs='$dependency_libs'
 
5345
 
 
5346
# Version information for $libname.
 
5347
current=$current
 
5348
age=$age
 
5349
revision=$revision
 
5350
 
 
5351
# Is this an already installed library?
 
5352
installed=$installed
 
5353
 
 
5354
# Should we warn about portability when linking against -modules?
 
5355
shouldnotlink=$module
 
5356
 
 
5357
# Files to dlopen/dlpreopen
 
5358
dlopen='$dlfiles'
 
5359
dlpreopen='$dlprefiles'
 
5360
 
 
5361
# Directory that this library needs to be installed in:
 
5362
libdir='$install_libdir'"
 
5363
          if test "$installed" = no && test "$need_relink" = yes; then
 
5364
            $echo >> $output "\
 
5365
relink_command=\"$relink_command\""
 
5366
          fi
 
5367
        done
 
5368
      fi
 
5369
 
 
5370
      # Do a symbolic link so that the libtool archive can be found in
 
5371
      # LD_LIBRARY_PATH before the program is installed.
 
5372
      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
 
5373
      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
 
5374
      ;;
 
5375
    esac
 
5376
    exit $EXIT_SUCCESS
 
5377
    ;;
 
5378
 
 
5379
  # libtool install mode
 
5380
  install)
 
5381
    modename="$modename: install"
 
5382
 
 
5383
    # There may be an optional sh(1) argument at the beginning of
 
5384
    # install_prog (especially on Windows NT).
 
5385
    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
 
5386
       # Allow the use of GNU shtool's install command.
 
5387
       $echo "X$nonopt" | grep shtool > /dev/null; then
 
5388
      # Aesthetically quote it.
 
5389
      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
 
5390
      case $arg in
 
5391
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
5392
        arg="\"$arg\""
 
5393
        ;;
 
5394
      esac
 
5395
      install_prog="$arg "
 
5396
      arg="$1"
 
5397
      shift
 
5398
    else
 
5399
      install_prog=
 
5400
      arg=$nonopt
 
5401
    fi
 
5402
 
 
5403
    # The real first argument should be the name of the installation program.
 
5404
    # Aesthetically quote it.
 
5405
    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
5406
    case $arg in
 
5407
    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
 
5408
      arg="\"$arg\""
 
5409
      ;;
 
5410
    esac
 
5411
    install_prog="$install_prog$arg"
 
5412
 
 
5413
    # We need to accept at least all the BSD install flags.
 
5414
    dest=
 
5415
    files=
 
5416
    opts=
 
5417
    prev=
 
5418
    install_type=
 
5419
    isdir=no
 
5420
    stripme=
 
5421
    for arg
 
5422
    do
 
5423
      if test -n "$dest"; then
 
5424
        files="$files $dest"
 
5425
        dest=$arg
 
5426
        continue
 
5427
      fi
 
5428
 
 
5429
      case $arg in
 
5430
      -d) isdir=yes ;;
 
5431
      -f) 
 
5432
        case " $install_prog " in
 
5433
        *[\\\ /]cp\ *) ;;
 
5434
        *) prev=$arg ;;
 
5435
        esac
 
5436
        ;;
 
5437
      -g | -m | -o) prev=$arg ;;
 
5438
      -s)
 
5439
        stripme=" -s"
 
5440
        continue
 
5441
        ;;
 
5442
      -*)
 
5443
        ;;
 
5444
      *)
 
5445
        # If the previous option needed an argument, then skip it.
 
5446
        if test -n "$prev"; then
 
5447
          prev=
 
5448
        else
 
5449
          dest=$arg
 
5450
          continue
 
5451
        fi
 
5452
        ;;
 
5453
      esac
 
5454
 
 
5455
      # Aesthetically quote the argument.
 
5456
      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
 
5457
      case $arg in
 
5458
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
 
5459
        arg="\"$arg\""
 
5460
        ;;
 
5461
      esac
 
5462
      install_prog="$install_prog $arg"
 
5463
    done
 
5464
 
 
5465
    if test -z "$install_prog"; then
 
5466
      $echo "$modename: you must specify an install program" 1>&2
 
5467
      $echo "$help" 1>&2
 
5468
      exit $EXIT_FAILURE
 
5469
    fi
 
5470
 
 
5471
    if test -n "$prev"; then
 
5472
      $echo "$modename: the \`$prev' option requires an argument" 1>&2
 
5473
      $echo "$help" 1>&2
 
5474
      exit $EXIT_FAILURE
 
5475
    fi
 
5476
 
 
5477
    if test -z "$files"; then
 
5478
      if test -z "$dest"; then
 
5479
        $echo "$modename: no file or destination specified" 1>&2
 
5480
      else
 
5481
        $echo "$modename: you must specify a destination" 1>&2
 
5482
      fi
 
5483
      $echo "$help" 1>&2
 
5484
      exit $EXIT_FAILURE
 
5485
    fi
 
5486
 
 
5487
    # Strip any trailing slash from the destination.
 
5488
    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
 
5489
 
 
5490
    # Check to see that the destination is a directory.
 
5491
    test -d "$dest" && isdir=yes
 
5492
    if test "$isdir" = yes; then
 
5493
      destdir="$dest"
 
5494
      destname=
 
5495
    else
 
5496
      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
 
5497
      test "X$destdir" = "X$dest" && destdir=.
 
5498
      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
 
5499
 
 
5500
      # Not a directory, so check to see that there is only one file specified.
 
5501
      set dummy $files
 
5502
      if test "$#" -gt 2; then
 
5503
        $echo "$modename: \`$dest' is not a directory" 1>&2
 
5504
        $echo "$help" 1>&2
 
5505
        exit $EXIT_FAILURE
 
5506
      fi
 
5507
    fi
 
5508
    case $destdir in
 
5509
    [\\/]* | [A-Za-z]:[\\/]*) ;;
 
5510
    *)
 
5511
      for file in $files; do
 
5512
        case $file in
 
5513
        *.lo) ;;
 
5514
        *)
 
5515
          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
 
5516
          $echo "$help" 1>&2
 
5517
          exit $EXIT_FAILURE
 
5518
          ;;
 
5519
        esac
 
5520
      done
 
5521
      ;;
 
5522
    esac
 
5523
 
 
5524
    # This variable tells wrapper scripts just to set variables rather
 
5525
    # than running their programs.
 
5526
    libtool_install_magic="$magic"
 
5527
 
 
5528
    staticlibs=
 
5529
    future_libdirs=
 
5530
    current_libdirs=
 
5531
    for file in $files; do
 
5532
 
 
5533
      # Do each installation.
 
5534
      case $file in
 
5535
      *.$libext)
 
5536
        # Do the static libraries later.
 
5537
        staticlibs="$staticlibs $file"
 
5538
        ;;
 
5539
 
 
5540
      *.la)
 
5541
        # Check to see that this really is a libtool archive.
 
5542
        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
 
5543
        else
 
5544
          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
 
5545
          $echo "$help" 1>&2
 
5546
          exit $EXIT_FAILURE
 
5547
        fi
 
5548
 
 
5549
        library_names=
 
5550
        old_library=
 
5551
        relink_command=
 
5552
        # If there is no directory component, then add one.
 
5553
        case $file in
 
5554
        */* | *\\*) . $file ;;
 
5555
        *) . ./$file ;;
 
5556
        esac
 
5557
 
 
5558
        # Add the libdir to current_libdirs if it is the destination.
 
5559
        if test "X$destdir" = "X$libdir"; then
 
5560
          case "$current_libdirs " in
 
5561
          *" $libdir "*) ;;
 
5562
          *) current_libdirs="$current_libdirs $libdir" ;;
 
5563
          esac
 
5564
        else
 
5565
          # Note the libdir as a future libdir.
 
5566
          case "$future_libdirs " in
 
5567
          *" $libdir "*) ;;
 
5568
          *) future_libdirs="$future_libdirs $libdir" ;;
 
5569
          esac
 
5570
        fi
 
5571
 
 
5572
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
 
5573
        test "X$dir" = "X$file/" && dir=
 
5574
        dir="$dir$objdir"
 
5575
 
 
5576
        if test -n "$relink_command"; then
 
5577
          # Determine the prefix the user has applied to our future dir.
 
5578
          inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
 
5579
 
 
5580
          # Don't allow the user to place us outside of our expected
 
5581
          # location b/c this prevents finding dependent libraries that
 
5582
          # are installed to the same prefix.
 
5583
          # At present, this check doesn't affect windows .dll's that
 
5584
          # are installed into $libdir/../bin (currently, that works fine)
 
5585
          # but it's something to keep an eye on.
 
5586
          if test "$inst_prefix_dir" = "$destdir"; then
 
5587
            $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
 
5588
            exit $EXIT_FAILURE
 
5589
          fi
 
5590
 
 
5591
          if test -n "$inst_prefix_dir"; then
 
5592
            # Stick the inst_prefix_dir data into the link command.
 
5593
            relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 
5594
          else
 
5595
            relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
 
5596
          fi
 
5597
 
 
5598
          $echo "$modename: warning: relinking \`$file'" 1>&2
 
5599
          $show "$relink_command"
 
5600
          if $run eval "$relink_command"; then :
 
5601
          else
 
5602
            $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
 
5603
            exit $EXIT_FAILURE
 
5604
          fi
 
5605
        fi
 
5606
 
 
5607
        # See the names of the shared library.
 
5608
        set dummy $library_names
 
5609
        if test -n "$2"; then
 
5610
          realname="$2"
 
5611
          shift
 
5612
          shift
 
5613
 
 
5614
          srcname="$realname"
 
5615
          test -n "$relink_command" && srcname="$realname"T
 
5616
 
 
5617
          # Install the shared library and build the symlinks.
 
5618
          $show "$install_prog $dir/$srcname $destdir/$realname"
 
5619
          $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
 
5620
          if test -n "$stripme" && test -n "$striplib"; then
 
5621
            $show "$striplib $destdir/$realname"
 
5622
            $run eval "$striplib $destdir/$realname" || exit $?
 
5623
          fi
 
5624
 
 
5625
          if test "$#" -gt 0; then
 
5626
            # Delete the old symlinks, and create new ones.
 
5627
            # Try `ln -sf' first, because the `ln' binary might depend on
 
5628
            # the symlink we replace!  Solaris /bin/ln does not understand -f,
 
5629
            # so we also need to try rm && ln -s.
 
5630
            for linkname
 
5631
            do
 
5632
              if test "$linkname" != "$realname"; then
 
5633
                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
 
5634
                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
 
5635
              fi
 
5636
            done
 
5637
          fi
 
5638
 
 
5639
          # Do each command in the postinstall commands.
 
5640
          lib="$destdir/$realname"
 
5641
          cmds=$postinstall_cmds
 
5642
          save_ifs="$IFS"; IFS='~'
 
5643
          for cmd in $cmds; do
 
5644
            IFS="$save_ifs"
 
5645
            eval cmd=\"$cmd\"
 
5646
            $show "$cmd"
 
5647
            $run eval "$cmd" || {
 
5648
              lt_exit=$?
 
5649
 
 
5650
              # Restore the uninstalled library and exit
 
5651
              if test "$mode" = relink; then
 
5652
                $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
 
5653
              fi
 
5654
 
 
5655
              exit $lt_exit
 
5656
            }
 
5657
          done
 
5658
          IFS="$save_ifs"
 
5659
        fi
 
5660
 
 
5661
        # Install the pseudo-library for information purposes.
 
5662
        name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
5663
        instname="$dir/$name"i
 
5664
        $show "$install_prog $instname $destdir/$name"
 
5665
        $run eval "$install_prog $instname $destdir/$name" || exit $?
 
5666
 
 
5667
        # Maybe install the static library, too.
 
5668
        test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
 
5669
        ;;
 
5670
 
 
5671
      *.lo)
 
5672
        # Install (i.e. copy) a libtool object.
 
5673
 
 
5674
        # Figure out destination file name, if it wasn't already specified.
 
5675
        if test -n "$destname"; then
 
5676
          destfile="$destdir/$destname"
 
5677
        else
 
5678
          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
5679
          destfile="$destdir/$destfile"
 
5680
        fi
 
5681
 
 
5682
        # Deduce the name of the destination old-style object file.
 
5683
        case $destfile in
 
5684
        *.lo)
 
5685
          staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
 
5686
          ;;
 
5687
        *.$objext)
 
5688
          staticdest="$destfile"
 
5689
          destfile=
 
5690
          ;;
 
5691
        *)
 
5692
          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
 
5693
          $echo "$help" 1>&2
 
5694
          exit $EXIT_FAILURE
 
5695
          ;;
 
5696
        esac
 
5697
 
 
5698
        # Install the libtool object if requested.
 
5699
        if test -n "$destfile"; then
 
5700
          $show "$install_prog $file $destfile"
 
5701
          $run eval "$install_prog $file $destfile" || exit $?
 
5702
        fi
 
5703
 
 
5704
        # Install the old object if enabled.
 
5705
        if test "$build_old_libs" = yes; then
 
5706
          # Deduce the name of the old-style object file.
 
5707
          staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
 
5708
 
 
5709
          $show "$install_prog $staticobj $staticdest"
 
5710
          $run eval "$install_prog \$staticobj \$staticdest" || exit $?
 
5711
        fi
 
5712
        exit $EXIT_SUCCESS
 
5713
        ;;
 
5714
 
 
5715
      *)
 
5716
        # Figure out destination file name, if it wasn't already specified.
 
5717
        if test -n "$destname"; then
 
5718
          destfile="$destdir/$destname"
 
5719
        else
 
5720
          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
5721
          destfile="$destdir/$destfile"
 
5722
        fi
 
5723
 
 
5724
        # If the file is missing, and there is a .exe on the end, strip it
 
5725
        # because it is most likely a libtool script we actually want to
 
5726
        # install
 
5727
        stripped_ext=""
 
5728
        case $file in
 
5729
          *.exe)
 
5730
            if test ! -f "$file"; then
 
5731
              file=`$echo $file|${SED} 's,.exe$,,'`
 
5732
              stripped_ext=".exe"
 
5733
            fi
 
5734
            ;;
 
5735
        esac
 
5736
 
 
5737
        # Do a test to see if this is really a libtool program.
 
5738
        case $host in
 
5739
        *cygwin*|*mingw*)
 
5740
            wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
 
5741
            ;;
 
5742
        *)
 
5743
            wrapper=$file
 
5744
            ;;
 
5745
        esac
 
5746
        if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
 
5747
          notinst_deplibs=
 
5748
          relink_command=
 
5749
 
 
5750
          # Note that it is not necessary on cygwin/mingw to append a dot to
 
5751
          # foo even if both foo and FILE.exe exist: automatic-append-.exe
 
5752
          # behavior happens only for exec(3), not for open(2)!  Also, sourcing
 
5753
          # `FILE.' does not work on cygwin managed mounts.
 
5754
          #
 
5755
          # If there is no directory component, then add one.
 
5756
          case $wrapper in
 
5757
          */* | *\\*) . ${wrapper} ;;
 
5758
          *) . ./${wrapper} ;;
 
5759
          esac
 
5760
 
 
5761
          # Check the variables that should have been set.
 
5762
          if test -z "$notinst_deplibs"; then
 
5763
            $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
 
5764
            exit $EXIT_FAILURE
 
5765
          fi
 
5766
 
 
5767
          finalize=yes
 
5768
          for lib in $notinst_deplibs; do
 
5769
            # Check to see that each library is installed.
 
5770
            libdir=
 
5771
            if test -f "$lib"; then
 
5772
              # If there is no directory component, then add one.
 
5773
              case $lib in
 
5774
              */* | *\\*) . $lib ;;
 
5775
              *) . ./$lib ;;
 
5776
              esac
 
5777
            fi
 
5778
            libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
 
5779
            if test -n "$libdir" && test ! -f "$libfile"; then
 
5780
              $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
 
5781
              finalize=no
 
5782
            fi
 
5783
          done
 
5784
 
 
5785
          relink_command=
 
5786
          # Note that it is not necessary on cygwin/mingw to append a dot to
 
5787
          # foo even if both foo and FILE.exe exist: automatic-append-.exe
 
5788
          # behavior happens only for exec(3), not for open(2)!  Also, sourcing
 
5789
          # `FILE.' does not work on cygwin managed mounts.
 
5790
          #
 
5791
          # If there is no directory component, then add one.
 
5792
          case $wrapper in
 
5793
          */* | *\\*) . ${wrapper} ;;
 
5794
          *) . ./${wrapper} ;;
 
5795
          esac
 
5796
 
 
5797
          outputname=
 
5798
          if test "$fast_install" = no && test -n "$relink_command"; then
 
5799
            if test "$finalize" = yes && test -z "$run"; then
 
5800
              tmpdir="/tmp"
 
5801
              test -n "$TMPDIR" && tmpdir="$TMPDIR"
 
5802
              tmpdir="$tmpdir/libtool-$$"
 
5803
              save_umask=`umask`
 
5804
              umask 0077
 
5805
              if $mkdir "$tmpdir"; then
 
5806
                umask $save_umask
 
5807
              else
 
5808
                umask $save_umask
 
5809
                $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
 
5810
                continue
 
5811
              fi
 
5812
              file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
 
5813
              outputname="$tmpdir/$file"
 
5814
              # Replace the output file specification.
 
5815
              relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
 
5816
 
 
5817
              $show "$relink_command"
 
5818
              if $run eval "$relink_command"; then :
 
5819
              else
 
5820
                $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
 
5821
                ${rm}r "$tmpdir"
 
5822
                continue
 
5823
              fi
 
5824
              file="$outputname"
 
5825
            else
 
5826
              $echo "$modename: warning: cannot relink \`$file'" 1>&2
 
5827
            fi
 
5828
          else
 
5829
            # Install the binary that we compiled earlier.
 
5830
            file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
 
5831
          fi
 
5832
        fi
 
5833
 
 
5834
        # remove .exe since cygwin /usr/bin/install will append another
 
5835
        # one anyway 
 
5836
        case $install_prog,$host in
 
5837
        */usr/bin/install*,*cygwin*)
 
5838
          case $file:$destfile in
 
5839
          *.exe:*.exe)
 
5840
            # this is ok
 
5841
            ;;
 
5842
          *.exe:*)
 
5843
            destfile=$destfile.exe
 
5844
            ;;
 
5845
          *:*.exe)
 
5846
            destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
 
5847
            ;;
 
5848
          esac
 
5849
          ;;
 
5850
        esac
 
5851
        $show "$install_prog$stripme $file $destfile"
 
5852
        $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
 
5853
        test -n "$outputname" && ${rm}r "$tmpdir"
 
5854
        ;;
 
5855
      esac
 
5856
    done
 
5857
 
 
5858
    for file in $staticlibs; do
 
5859
      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
5860
 
 
5861
      # Set up the ranlib parameters.
 
5862
      oldlib="$destdir/$name"
 
5863
 
 
5864
      $show "$install_prog $file $oldlib"
 
5865
      $run eval "$install_prog \$file \$oldlib" || exit $?
 
5866
 
 
5867
      if test -n "$stripme" && test -n "$old_striplib"; then
 
5868
        $show "$old_striplib $oldlib"
 
5869
        $run eval "$old_striplib $oldlib" || exit $?
 
5870
      fi
 
5871
 
 
5872
      # Do each command in the postinstall commands.
 
5873
      cmds=$old_postinstall_cmds
 
5874
      save_ifs="$IFS"; IFS='~'
 
5875
      for cmd in $cmds; do
 
5876
        IFS="$save_ifs"
 
5877
        eval cmd=\"$cmd\"
 
5878
        $show "$cmd"
 
5879
        $run eval "$cmd" || exit $?
 
5880
      done
 
5881
      IFS="$save_ifs"
 
5882
    done
 
5883
 
 
5884
    if test -n "$future_libdirs"; then
 
5885
      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
 
5886
    fi
 
5887
 
 
5888
    if test -n "$current_libdirs"; then
 
5889
      # Maybe just do a dry run.
 
5890
      test -n "$run" && current_libdirs=" -n$current_libdirs"
 
5891
      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
 
5892
    else
 
5893
      exit $EXIT_SUCCESS
 
5894
    fi
 
5895
    ;;
 
5896
 
 
5897
  # libtool finish mode
 
5898
  finish)
 
5899
    modename="$modename: finish"
 
5900
    libdirs="$nonopt"
 
5901
    admincmds=
 
5902
 
 
5903
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 
5904
      for dir
 
5905
      do
 
5906
        libdirs="$libdirs $dir"
 
5907
      done
 
5908
 
 
5909
      for libdir in $libdirs; do
 
5910
        if test -n "$finish_cmds"; then
 
5911
          # Do each command in the finish commands.
 
5912
          cmds=$finish_cmds
 
5913
          save_ifs="$IFS"; IFS='~'
 
5914
          for cmd in $cmds; do
 
5915
            IFS="$save_ifs"
 
5916
            eval cmd=\"$cmd\"
 
5917
            $show "$cmd"
 
5918
            $run eval "$cmd" || admincmds="$admincmds
 
5919
       $cmd"
 
5920
          done
 
5921
          IFS="$save_ifs"
 
5922
        fi
 
5923
        if test -n "$finish_eval"; then
 
5924
          # Do the single finish_eval.
 
5925
          eval cmds=\"$finish_eval\"
 
5926
          $run eval "$cmds" || admincmds="$admincmds
 
5927
       $cmds"
 
5928
        fi
 
5929
      done
 
5930
    fi
 
5931
 
 
5932
    # Exit here if they wanted silent mode.
 
5933
    test "$show" = : && exit $EXIT_SUCCESS
 
5934
 
 
5935
    $echo "----------------------------------------------------------------------"
 
5936
    $echo "Libraries have been installed in:"
 
5937
    for libdir in $libdirs; do
 
5938
      $echo "   $libdir"
 
5939
    done
 
5940
    $echo
 
5941
    $echo "If you ever happen to want to link against installed libraries"
 
5942
    $echo "in a given directory, LIBDIR, you must either use libtool, and"
 
5943
    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
 
5944
    $echo "flag during linking and do at least one of the following:"
 
5945
    if test -n "$shlibpath_var"; then
 
5946
      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
 
5947
      $echo "     during execution"
 
5948
    fi
 
5949
    if test -n "$runpath_var"; then
 
5950
      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
 
5951
      $echo "     during linking"
 
5952
    fi
 
5953
    if test -n "$hardcode_libdir_flag_spec"; then
 
5954
      libdir=LIBDIR
 
5955
      eval flag=\"$hardcode_libdir_flag_spec\"
 
5956
 
 
5957
      $echo "   - use the \`$flag' linker flag"
 
5958
    fi
 
5959
    if test -n "$admincmds"; then
 
5960
      $echo "   - have your system administrator run these commands:$admincmds"
 
5961
    fi
 
5962
    if test -f /etc/ld.so.conf; then
 
5963
      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
 
5964
    fi
 
5965
    $echo
 
5966
    $echo "See any operating system documentation about shared libraries for"
 
5967
    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
 
5968
    $echo "----------------------------------------------------------------------"
 
5969
    exit $EXIT_SUCCESS
 
5970
    ;;
 
5971
 
 
5972
  # libtool execute mode
 
5973
  execute)
 
5974
    modename="$modename: execute"
 
5975
 
 
5976
    # The first argument is the command name.
 
5977
    cmd="$nonopt"
 
5978
    if test -z "$cmd"; then
 
5979
      $echo "$modename: you must specify a COMMAND" 1>&2
 
5980
      $echo "$help"
 
5981
      exit $EXIT_FAILURE
 
5982
    fi
 
5983
 
 
5984
    # Handle -dlopen flags immediately.
 
5985
    for file in $execute_dlfiles; do
 
5986
      if test ! -f "$file"; then
 
5987
        $echo "$modename: \`$file' is not a file" 1>&2
 
5988
        $echo "$help" 1>&2
 
5989
        exit $EXIT_FAILURE
 
5990
      fi
 
5991
 
 
5992
      dir=
 
5993
      case $file in
 
5994
      *.la)
 
5995
        # Check to see that this really is a libtool archive.
 
5996
        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
 
5997
        else
 
5998
          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
 
5999
          $echo "$help" 1>&2
 
6000
          exit $EXIT_FAILURE
 
6001
        fi
 
6002
 
 
6003
        # Read the libtool library.
 
6004
        dlname=
 
6005
        library_names=
 
6006
 
 
6007
        # If there is no directory component, then add one.
 
6008
        case $file in
 
6009
        */* | *\\*) . $file ;;
 
6010
        *) . ./$file ;;
 
6011
        esac
 
6012
 
 
6013
        # Skip this library if it cannot be dlopened.
 
6014
        if test -z "$dlname"; then
 
6015
          # Warn if it was a shared library.
 
6016
          test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
 
6017
          continue
 
6018
        fi
 
6019
 
 
6020
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
 
6021
        test "X$dir" = "X$file" && dir=.
 
6022
 
 
6023
        if test -f "$dir/$objdir/$dlname"; then
 
6024
          dir="$dir/$objdir"
 
6025
        else
 
6026
          $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
 
6027
          exit $EXIT_FAILURE
 
6028
        fi
 
6029
        ;;
 
6030
 
 
6031
      *.lo)
 
6032
        # Just add the directory containing the .lo file.
 
6033
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
 
6034
        test "X$dir" = "X$file" && dir=.
 
6035
        ;;
 
6036
 
 
6037
      *)
 
6038
        $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
 
6039
        continue
 
6040
        ;;
 
6041
      esac
 
6042
 
 
6043
      # Get the absolute pathname.
 
6044
      absdir=`cd "$dir" && pwd`
 
6045
      test -n "$absdir" && dir="$absdir"
 
6046
 
 
6047
      # Now add the directory to shlibpath_var.
 
6048
      if eval "test -z \"\$$shlibpath_var\""; then
 
6049
        eval "$shlibpath_var=\"\$dir\""
 
6050
      else
 
6051
        eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
 
6052
      fi
 
6053
    done
 
6054
 
 
6055
    # This variable tells wrapper scripts just to set shlibpath_var
 
6056
    # rather than running their programs.
 
6057
    libtool_execute_magic="$magic"
 
6058
 
 
6059
    # Check if any of the arguments is a wrapper script.
 
6060
    args=
 
6061
    for file
 
6062
    do
 
6063
      case $file in
 
6064
      -*) ;;
 
6065
      *)
 
6066
        # Do a test to see if this is really a libtool program.
 
6067
        if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
6068
          # If there is no directory component, then add one.
 
6069
          case $file in
 
6070
          */* | *\\*) . $file ;;
 
6071
          *) . ./$file ;;
 
6072
          esac
 
6073
 
 
6074
          # Transform arg to wrapped name.
 
6075
          file="$progdir/$program"
 
6076
        fi
 
6077
        ;;
 
6078
      esac
 
6079
      # Quote arguments (to preserve shell metacharacters).
 
6080
      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
 
6081
      args="$args \"$file\""
 
6082
    done
 
6083
 
 
6084
    if test -z "$run"; then
 
6085
      if test -n "$shlibpath_var"; then
 
6086
        # Export the shlibpath_var.
 
6087
        eval "export $shlibpath_var"
 
6088
      fi
 
6089
 
 
6090
      # Restore saved environment variables
 
6091
      if test "${save_LC_ALL+set}" = set; then
 
6092
        LC_ALL="$save_LC_ALL"; export LC_ALL
 
6093
      fi
 
6094
      if test "${save_LANG+set}" = set; then
 
6095
        LANG="$save_LANG"; export LANG
 
6096
      fi
 
6097
 
 
6098
      # Now prepare to actually exec the command.
 
6099
      exec_cmd="\$cmd$args"
 
6100
    else
 
6101
      # Display what would be done.
 
6102
      if test -n "$shlibpath_var"; then
 
6103
        eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
 
6104
        $echo "export $shlibpath_var"
 
6105
      fi
 
6106
      $echo "$cmd$args"
 
6107
      exit $EXIT_SUCCESS
 
6108
    fi
 
6109
    ;;
 
6110
 
 
6111
  # libtool clean and uninstall mode
 
6112
  clean | uninstall)
 
6113
    modename="$modename: $mode"
 
6114
    rm="$nonopt"
 
6115
    files=
 
6116
    rmforce=
 
6117
    exit_status=0
 
6118
 
 
6119
    # This variable tells wrapper scripts just to set variables rather
 
6120
    # than running their programs.
 
6121
    libtool_install_magic="$magic"
 
6122
 
 
6123
    for arg
 
6124
    do
 
6125
      case $arg in
 
6126
      -f) rm="$rm $arg"; rmforce=yes ;;
 
6127
      -*) rm="$rm $arg" ;;
 
6128
      *) files="$files $arg" ;;
 
6129
      esac
 
6130
    done
 
6131
 
 
6132
    if test -z "$rm"; then
 
6133
      $echo "$modename: you must specify an RM program" 1>&2
 
6134
      $echo "$help" 1>&2
 
6135
      exit $EXIT_FAILURE
 
6136
    fi
 
6137
 
 
6138
    rmdirs=
 
6139
 
 
6140
    origobjdir="$objdir"
 
6141
    for file in $files; do
 
6142
      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
 
6143
      if test "X$dir" = "X$file"; then
 
6144
        dir=.
 
6145
        objdir="$origobjdir"
 
6146
      else
 
6147
        objdir="$dir/$origobjdir"
 
6148
      fi
 
6149
      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
6150
      test "$mode" = uninstall && objdir="$dir"
 
6151
 
 
6152
      # Remember objdir for removal later, being careful to avoid duplicates
 
6153
      if test "$mode" = clean; then
 
6154
        case " $rmdirs " in
 
6155
          *" $objdir "*) ;;
 
6156
          *) rmdirs="$rmdirs $objdir" ;;
 
6157
        esac
 
6158
      fi
 
6159
 
 
6160
      # Don't error if the file doesn't exist and rm -f was used.
 
6161
      if (test -L "$file") >/dev/null 2>&1 \
 
6162
        || (test -h "$file") >/dev/null 2>&1 \
 
6163
        || test -f "$file"; then
 
6164
        :
 
6165
      elif test -d "$file"; then
 
6166
        exit_status=1
 
6167
        continue
 
6168
      elif test "$rmforce" = yes; then
 
6169
        continue
 
6170
      fi
 
6171
 
 
6172
      rmfiles="$file"
 
6173
 
 
6174
      case $name in
 
6175
      *.la)
 
6176
        # Possibly a libtool archive, so verify it.
 
6177
        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
6178
          . $dir/$name
 
6179
 
 
6180
          # Delete the libtool libraries and symlinks.
 
6181
          for n in $library_names; do
 
6182
            rmfiles="$rmfiles $objdir/$n"
 
6183
          done
 
6184
          test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
 
6185
          test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 
6186
 
 
6187
          if test "$mode" = uninstall; then
 
6188
            if test -n "$library_names"; then
 
6189
              # Do each command in the postuninstall commands.
 
6190
              cmds=$postuninstall_cmds
 
6191
              save_ifs="$IFS"; IFS='~'
 
6192
              for cmd in $cmds; do
 
6193
                IFS="$save_ifs"
 
6194
                eval cmd=\"$cmd\"
 
6195
                $show "$cmd"
 
6196
                $run eval "$cmd"
 
6197
                if test "$?" -ne 0 && test "$rmforce" != yes; then
 
6198
                  exit_status=1
 
6199
                fi
 
6200
              done
 
6201
              IFS="$save_ifs"
 
6202
            fi
 
6203
 
 
6204
            if test -n "$old_library"; then
 
6205
              # Do each command in the old_postuninstall commands.
 
6206
              cmds=$old_postuninstall_cmds
 
6207
              save_ifs="$IFS"; IFS='~'
 
6208
              for cmd in $cmds; do
 
6209
                IFS="$save_ifs"
 
6210
                eval cmd=\"$cmd\"
 
6211
                $show "$cmd"
 
6212
                $run eval "$cmd"
 
6213
                if test "$?" -ne 0 && test "$rmforce" != yes; then
 
6214
                  exit_status=1
 
6215
                fi
 
6216
              done
 
6217
              IFS="$save_ifs"
 
6218
            fi
 
6219
            # FIXME: should reinstall the best remaining shared library.
 
6220
          fi
 
6221
        fi
 
6222
        ;;
 
6223
 
 
6224
      *.lo)
 
6225
        # Possibly a libtool object, so verify it.
 
6226
        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
6227
 
 
6228
          # Read the .lo file
 
6229
          . $dir/$name
 
6230
 
 
6231
          # Add PIC object to the list of files to remove.
 
6232
          if test -n "$pic_object" \
 
6233
             && test "$pic_object" != none; then
 
6234
            rmfiles="$rmfiles $dir/$pic_object"
 
6235
          fi
 
6236
 
 
6237
          # Add non-PIC object to the list of files to remove.
 
6238
          if test -n "$non_pic_object" \
 
6239
             && test "$non_pic_object" != none; then
 
6240
            rmfiles="$rmfiles $dir/$non_pic_object"
 
6241
          fi
 
6242
        fi
 
6243
        ;;
 
6244
 
 
6245
      *)
 
6246
        if test "$mode" = clean ; then
 
6247
          noexename=$name
 
6248
          case $file in
 
6249
          *.exe)
 
6250
            file=`$echo $file|${SED} 's,.exe$,,'`
 
6251
            noexename=`$echo $name|${SED} 's,.exe$,,'`
 
6252
            # $file with .exe has already been added to rmfiles,
 
6253
            # add $file without .exe
 
6254
            rmfiles="$rmfiles $file"
 
6255
            ;;
 
6256
          esac
 
6257
          # Do a test to see if this is a libtool program.
 
6258
          if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
6259
            relink_command=
 
6260
            . $dir/$noexename
 
6261
 
 
6262
            # note $name still contains .exe if it was in $file originally
 
6263
            # as does the version of $file that was added into $rmfiles
 
6264
            rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
 
6265
            if test "$fast_install" = yes && test -n "$relink_command"; then
 
6266
              rmfiles="$rmfiles $objdir/lt-$name"
 
6267
            fi
 
6268
            if test "X$noexename" != "X$name" ; then
 
6269
              rmfiles="$rmfiles $objdir/lt-${noexename}.c"
 
6270
            fi
 
6271
          fi
 
6272
        fi
 
6273
        ;;
 
6274
      esac
 
6275
      $show "$rm $rmfiles"
 
6276
      $run $rm $rmfiles || exit_status=1
 
6277
    done
 
6278
    objdir="$origobjdir"
 
6279
 
 
6280
    # Try to remove the ${objdir}s in the directories where we deleted files
 
6281
    for dir in $rmdirs; do
 
6282
      if test -d "$dir"; then
 
6283
        $show "rmdir $dir"
 
6284
        $run rmdir $dir >/dev/null 2>&1
 
6285
      fi
 
6286
    done
 
6287
 
 
6288
    exit $exit_status
 
6289
    ;;
 
6290
 
 
6291
  "")
 
6292
    $echo "$modename: you must specify a MODE" 1>&2
 
6293
    $echo "$generic_help" 1>&2
 
6294
    exit $EXIT_FAILURE
 
6295
    ;;
 
6296
  esac
 
6297
 
 
6298
  if test -z "$exec_cmd"; then
 
6299
    $echo "$modename: invalid operation mode \`$mode'" 1>&2
 
6300
    $echo "$generic_help" 1>&2
 
6301
    exit $EXIT_FAILURE
 
6302
  fi
 
6303
fi # test -z "$show_help"
 
6304
 
 
6305
if test -n "$exec_cmd"; then
 
6306
  eval exec $exec_cmd
 
6307
  exit $EXIT_FAILURE
 
6308
fi
 
6309
 
 
6310
# We need to display help for each of the modes.
 
6311
case $mode in
 
6312
"") $echo \
 
6313
"Usage: $modename [OPTION]... [MODE-ARG]...
 
6314
 
 
6315
Provide generalized library-building support services.
 
6316
 
 
6317
    --config          show all configuration variables
 
6318
    --debug           enable verbose shell tracing
 
6319
-n, --dry-run         display commands without modifying any files
 
6320
    --features        display basic configuration information and exit
 
6321
    --finish          same as \`--mode=finish'
 
6322
    --help            display this help message and exit
 
6323
    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
 
6324
    --quiet           same as \`--silent'
 
6325
    --silent          don't print informational messages
 
6326
    --tag=TAG         use configuration variables from tag TAG
 
6327
    --version         print version information
 
6328
 
 
6329
MODE must be one of the following:
 
6330
 
 
6331
      clean           remove files from the build directory
 
6332
      compile         compile a source file into a libtool object
 
6333
      execute         automatically set library path, then run a program
 
6334
      finish          complete the installation of libtool libraries
 
6335
      install         install libraries or executables
 
6336
      link            create a library or an executable
 
6337
      uninstall       remove libraries from an installed directory
 
6338
 
 
6339
MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
 
6340
a more detailed description of MODE.
 
6341
 
 
6342
Report bugs to <bug-libtool@gnu.org>."
 
6343
  exit $EXIT_SUCCESS
 
6344
  ;;
 
6345
 
 
6346
clean)
 
6347
  $echo \
 
6348
"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
 
6349
 
 
6350
Remove files from the build directory.
 
6351
 
 
6352
RM is the name of the program to use to delete files associated with each FILE
 
6353
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 
6354
to RM.
 
6355
 
 
6356
If FILE is a libtool library, object or program, all the files associated
 
6357
with it are deleted. Otherwise, only FILE itself is deleted using RM."
 
6358
  ;;
 
6359
 
 
6360
compile)
 
6361
  $echo \
 
6362
"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 
6363
 
 
6364
Compile a source file into a libtool library object.
 
6365
 
 
6366
This mode accepts the following additional options:
 
6367
 
 
6368
  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
 
6369
  -prefer-pic       try to building PIC objects only
 
6370
  -prefer-non-pic   try to building non-PIC objects only
 
6371
  -static           always build a \`.o' file suitable for static linking
 
6372
 
 
6373
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 
6374
from the given SOURCEFILE.
 
6375
 
 
6376
The output file name is determined by removing the directory component from
 
6377
SOURCEFILE, then substituting the C source code suffix \`.c' with the
 
6378
library object suffix, \`.lo'."
 
6379
  ;;
 
6380
 
 
6381
execute)
 
6382
  $echo \
 
6383
"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
 
6384
 
 
6385
Automatically set library path, then run a program.
 
6386
 
 
6387
This mode accepts the following additional options:
 
6388
 
 
6389
  -dlopen FILE      add the directory containing FILE to the library path
 
6390
 
 
6391
This mode sets the library path environment variable according to \`-dlopen'
 
6392
flags.
 
6393
 
 
6394
If any of the ARGS are libtool executable wrappers, then they are translated
 
6395
into their corresponding uninstalled binary, and any of their required library
 
6396
directories are added to the library path.
 
6397
 
 
6398
Then, COMMAND is executed, with ARGS as arguments."
 
6399
  ;;
 
6400
 
 
6401
finish)
 
6402
  $echo \
 
6403
"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
 
6404
 
 
6405
Complete the installation of libtool libraries.
 
6406
 
 
6407
Each LIBDIR is a directory that contains libtool libraries.
 
6408
 
 
6409
The commands that this mode executes may require superuser privileges.  Use
 
6410
the \`--dry-run' option if you just want to see what would be executed."
 
6411
  ;;
 
6412
 
 
6413
install)
 
6414
  $echo \
 
6415
"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
 
6416
 
 
6417
Install executables or libraries.
 
6418
 
 
6419
INSTALL-COMMAND is the installation command.  The first component should be
 
6420
either the \`install' or \`cp' program.
 
6421
 
 
6422
The rest of the components are interpreted as arguments to that command (only
 
6423
BSD-compatible install options are recognized)."
 
6424
  ;;
 
6425
 
 
6426
link)
 
6427
  $echo \
 
6428
"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
 
6429
 
 
6430
Link object files or libraries together to form another library, or to
 
6431
create an executable program.
 
6432
 
 
6433
LINK-COMMAND is a command using the C compiler that you would use to create
 
6434
a program from several object files.
 
6435
 
 
6436
The following components of LINK-COMMAND are treated specially:
 
6437
 
 
6438
  -all-static       do not do any dynamic linking at all
 
6439
  -avoid-version    do not add a version suffix if possible
 
6440
  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
 
6441
  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
 
6442
  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
 
6443
  -export-symbols SYMFILE
 
6444
                    try to export only the symbols listed in SYMFILE
 
6445
  -export-symbols-regex REGEX
 
6446
                    try to export only the symbols matching REGEX
 
6447
  -LLIBDIR          search LIBDIR for required installed libraries
 
6448
  -lNAME            OUTPUT-FILE requires the installed library libNAME
 
6449
  -module           build a library that can dlopened
 
6450
  -no-fast-install  disable the fast-install mode
 
6451
  -no-install       link a not-installable executable
 
6452
  -no-undefined     declare that a library does not refer to external symbols
 
6453
  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
 
6454
  -objectlist FILE  Use a list of object files found in FILE to specify objects
 
6455
  -precious-files-regex REGEX
 
6456
                    don't remove output files matching REGEX
 
6457
  -release RELEASE  specify package release information
 
6458
  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
 
6459
  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
 
6460
  -static           do not do any dynamic linking of libtool libraries
 
6461
  -version-info CURRENT[:REVISION[:AGE]]
 
6462
                    specify library version info [each variable defaults to 0]
 
6463
 
 
6464
All other options (arguments beginning with \`-') are ignored.
 
6465
 
 
6466
Every other argument is treated as a filename.  Files ending in \`.la' are
 
6467
treated as uninstalled libtool libraries, other files are standard or library
 
6468
object files.
 
6469
 
 
6470
If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
 
6471
only library objects (\`.lo' files) may be specified, and \`-rpath' is
 
6472
required, except when creating a convenience library.
 
6473
 
 
6474
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
 
6475
using \`ar' and \`ranlib', or on Windows using \`lib'.
 
6476
 
 
6477
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
 
6478
is created, otherwise an executable program is created."
 
6479
  ;;
 
6480
 
 
6481
uninstall)
 
6482
  $echo \
 
6483
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 
6484
 
 
6485
Remove libraries from an installation directory.
 
6486
 
 
6487
RM is the name of the program to use to delete files associated with each FILE
 
6488
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
 
6489
to RM.
 
6490
 
 
6491
If FILE is a libtool library, all the files associated with it are deleted.
 
6492
Otherwise, only FILE itself is deleted using RM."
 
6493
  ;;
 
6494
 
 
6495
*)
 
6496
  $echo "$modename: invalid operation mode \`$mode'" 1>&2
 
6497
  $echo "$help" 1>&2
 
6498
  exit $EXIT_FAILURE
 
6499
  ;;
 
6500
esac
 
6501
 
 
6502
$echo
 
6503
$echo "Try \`$modename --help' for more information about other modes."
 
6504
 
 
6505
exit $?
 
6506
 
 
6507
# The TAGs below are defined such that we never get into a situation
 
6508
# in which we disable both kinds of libraries.  Given conflicting
 
6509
# choices, we go for a static library, that is the most portable,
 
6510
# since we can't tell whether shared libraries were disabled because
 
6511
# the user asked for that or because the platform doesn't support
 
6512
# them.  This is particularly important on AIX, because we don't
 
6513
# support having both static and shared libraries enabled at the same
 
6514
# time on that platform, so we default to a shared-only configuration.
 
6515
# If a disable-shared tag is given, we'll fallback to a static-only
 
6516
# configuration.  But we'll never go from static-only to shared-only.
 
6517
 
 
6518
# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
 
6519
build_libtool_libs=no
 
6520
build_old_libs=yes
 
6521
# ### END LIBTOOL TAG CONFIG: disable-shared
 
6522
 
 
6523
# ### BEGIN LIBTOOL TAG CONFIG: disable-static
 
6524
build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
 
6525
# ### END LIBTOOL TAG CONFIG: disable-static
 
6526
 
 
6527
# Local Variables:
 
6528
# mode:shell-script
 
6529
# sh-indentation:2
 
6530
# End: