~ubuntu-branches/ubuntu/utopic/lasso/utopic-proposed

« back to all changes in this revision

Viewing changes to ltmain.sh

  • Committer: Bazaar Package Importer
  • Author(s): Frederic Peters
  • Date: 2004-09-13 09:26:34 UTC
  • Revision ID: james.westby@ubuntu.com-20040913092634-01vdfl8j9cp94exa
Tags: upstream-0.4.1
ImportĀ upstreamĀ versionĀ 0.4.1

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