OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [libltdl/] [ltmain.sh] - Blame information for rev 833

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.