~ubuntu-branches/ubuntu/trusty/libxvmc/trusty-proposed

« back to all changes in this revision

Viewing changes to ltmain.sh

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Stone
  • Date: 2005-12-12 16:17:38 UTC
  • Revision ID: james.westby@ubuntu.com-20051212161738-314g1zk8ag97uoy6
Tags: upstream-0.99.2
ImportĀ upstreamĀ versionĀ 0.99.2

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