~ubuntu-branches/ubuntu/feisty/photoprint/feisty

« back to all changes in this revision

Viewing changes to scripts/ltmain.sh

  • Committer: Bazaar Package Importer
  • Author(s): Milan Zamazal
  • Date: 2006-09-29 12:18:16 UTC
  • Revision ID: james.westby@ubuntu.com-20060929121816-6t2iz9zaymixd3om
Tags: upstream-0.3.3
ImportĀ upstreamĀ versionĀ 0.3.3

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