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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [newlib/] [ltmain.sh] - Blame information for rev 39

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

Line No. Rev Author Line
1 39 lampret
# ltmain.sh - Provide generalized library-building support services.
2
# NOTE: Changing this file will not affect anything until you rerun ltconfig.
3
#
4
# Copyright (C) 1996-1998 Free Software Foundation, Inc.
5
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
6
#
7
# This program is free software; you can redistribute it and/or modify
8
# it under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 2 of the License, or
10
# (at your option) any later version.
11
#
12
# This program is distributed in the hope that it will be useful, but
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
# General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with this program; if not, write to the Free Software
19
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
#
21
# As a special exception to the GNU General Public License, if you
22
# distribute this file as part of a program that contains a
23
# configuration script generated by Autoconf, you may include it under
24
# the same distribution terms that you use for the rest of that program.
25
 
26
# The name of this program.
27
progname=`$echo "$0" | sed 's%^.*/%%'`
28
modename="$progname"
29
 
30
# Constants.
31
PROGRAM=ltmain.sh
32
PACKAGE=libtool
33
VERSION=1.2a
34
 
35
default_mode=
36
help="Try \`$progname --help' for more information."
37
magic="%%%MAGIC variable%%%"
38
mkdir="mkdir"
39
mv="mv -f"
40
rm="rm -f"
41
 
42
# Sed substitution that helps us do robust quoting.  It backslashifies
43
# metacharacters that are still active within double-quoted strings.
44
Xsed='sed -e s/^X//'
45
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
46
 
47
# NLS nuisances.
48
# Only set LANG and LC_ALL to C if already set.
49
# These must not be set unconditionally because not all systems understand
50
# e.g. LANG=C (notably SCO).
51
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
52
if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
53
 
54
if test "$LTCONFIG_VERSION" != "$VERSION"; then
55
  echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
56
  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
57
  exit 1
58
fi
59
 
60
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
61
  echo "$modename: not configured to build any kind of library" 1>&2
62
  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
63
  exit 1
64
fi
65
 
66
# Global variables.
67
mode=$default_mode
68
nonopt=
69
prev=
70
prevopt=
71
run=
72
show="$echo"
73
show_help=
74
execute_dlfiles=
75
lo2o="s/\\.lo\$/.${objext}/"
76
los2o="s/\\.lo /.${objext} /g"
77
 
78
# Parse our command line options once, thoroughly.
79
while test $# -gt 0
80
do
81
  arg="$1"
82
  shift
83
 
84
  case "$arg" in
85
  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
86
  *) optarg= ;;
87
  esac
88
 
89
  # If the previous option needs an argument, assign it.
90
  if test -n "$prev"; then
91
    case "$prev" in
92
    execute_dlfiles)
93
      eval "$prev=\"\$$prev \$arg\""
94
      ;;
95
    *)
96
      eval "$prev=\$arg"
97
      ;;
98
    esac
99
 
100
    prev=
101
    prevopt=
102
    continue
103
  fi
104
 
105
  # Have we seen a non-optional argument yet?
106
  case "$arg" in
107
  --help)
108
    show_help=yes
109
    ;;
110
 
111
  --version)
112
    echo "$PROGRAM (GNU $PACKAGE) $VERSION"
113
    exit 0
114
    ;;
115
 
116
  --config)
117
    sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
118
    exit 0
119
    ;;
120
 
121
  --debug)
122
    echo "$progname: enabling shell trace mode"
123
    set -x
124
    ;;
125
 
126
  --dry-run | -n)
127
    run=:
128
    ;;
129
 
130
  --features)
131
    echo "host: $host"
132
    if test "$build_libtool_libs" = yes; then
133
      echo "enable shared libraries"
134
    else
135
      echo "disable shared libraries"
136
    fi
137
    if test "$build_old_libs" = yes; then
138
      echo "enable static libraries"
139
    else
140
      echo "disable static libraries"
141
    fi
142
    exit 0
143
    ;;
144
 
145
  --finish) mode="finish" ;;
146
 
147
  --mode) prevopt="--mode" prev=mode ;;
148
  --mode=*) mode="$optarg" ;;
149
 
150
  --quiet | --silent)
151
    show=:
152
    ;;
153
 
154
  -dlopen)
155
    prevopt="-dlopen"
156
    prev=execute_dlfiles
157
    ;;
158
 
159
  -*)
160
    $echo "$modename: unrecognized option \`$arg'" 1>&2
161
    $echo "$help" 1>&2
162
    exit 1
163
    ;;
164
 
165
  *)
166
    nonopt="$arg"
167
    break
168
    ;;
169
  esac
170
done
171
 
172
if test -n "$prevopt"; then
173
  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
174
  $echo "$help" 1>&2
175
  exit 1
176
fi
177
 
178
if test -z "$show_help"; then
179
 
180
  # Infer the operation mode.
181
  if test -z "$mode"; then
182
    case "$nonopt" in
183
    *cc | *++ | gcc* | *-gcc*)
184
      mode=link
185
      for arg
186
      do
187
        case "$arg" in
188
        -c)
189
           mode=compile
190
           break
191
           ;;
192
        esac
193
      done
194
      ;;
195
    *db | *dbx)
196
      mode=execute
197
      ;;
198
    *install*|cp|mv)
199
      mode=install
200
      ;;
201
    *rm)
202
      mode=uninstall
203
      ;;
204
    *)
205
      # If we have no mode, but dlfiles were specified, then do execute mode.
206
      test -n "$execute_dlfiles" && mode=execute
207
 
208
      # Just use the default operation mode.
209
      if test -z "$mode"; then
210
        if test -n "$nonopt"; then
211
          $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
212
        else
213
          $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
214
        fi
215
      fi
216
      ;;
217
    esac
218
  fi
219
 
220
  # Only execute mode is allowed to have -dlopen flags.
221
  if test -n "$execute_dlfiles" && test "$mode" != execute; then
222
    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
223
    $echo "$help" 1>&2
224
    exit 1
225
  fi
226
 
227
  # Change the help message to a mode-specific one.
228
  generic_help="$help"
229
  help="Try \`$modename --help --mode=$mode' for more information."
230
 
231
  # These modes are in order of execution frequency so that they run quickly.
232
  case "$mode" in
233
  # libtool compile mode
234
  compile)
235
    modename="$modename: compile"
236
    # Get the compilation command and the source file.
237
    base_compile=
238
    lastarg=
239
    srcfile="$nonopt"
240
    suppress_output=
241
 
242
    for arg
243
    do
244
      # Accept any command-line options.
245
      case "$arg" in
246
      -o)
247
        $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
248
        $echo "$help" 1>&2
249
        exit 1
250
        ;;
251
 
252
      -static)
253
        build_libtool_libs=no
254
        build_old_libs=yes
255
        continue
256
        ;;
257
      esac
258
 
259
      # Accept the current argument as the source file.
260
      lastarg="$srcfile"
261
      srcfile="$arg"
262
 
263
      # Aesthetically quote the previous argument.
264
 
265
      # Backslashify any backslashes, double quotes, and dollar signs.
266
      # These are the only characters that are still specially
267
      # interpreted inside of double-quoted scrings.
268
      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
269
 
270
      # Double-quote args containing other shell metacharacters.
271
      # Many Bourne shells cannot handle close brackets correctly in scan
272
      # sets, so we specify it separately.
273
      case "$lastarg" in
274
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
275
        lastarg="\"$lastarg\""
276
        ;;
277
      esac
278
 
279
      # Add the previous argument to base_compile.
280
      if test -z "$base_compile"; then
281
        base_compile="$lastarg"
282
      else
283
        base_compile="$base_compile $lastarg"
284
      fi
285
    done
286
 
287
    # Get the name of the library object.
288
    libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
289
 
290
    # Recognize several different file suffixes.
291
    xform='[cCFSfms]'
292
    case "$libobj" in
293
    *.ada) xform=ada ;;
294
    *.adb) xform=adb ;;
295
    *.ads) xform=ads ;;
296
    *.asm) xform=asm ;;
297
    *.c++) xform=c++ ;;
298
    *.cc) xform=cc ;;
299
    *.cpp) xform=cpp ;;
300
    *.cxx) xform=cxx ;;
301
    *.f90) xform=f90 ;;
302
    *.for) xform=for ;;
303
    esac
304
 
305
    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
306
 
307
    case "$libobj" in
308
    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
309
    *)
310
      $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
311
      exit 1
312
      ;;
313
    esac
314
 
315
    if test -z "$base_compile"; then
316
      $echo "$modename: you must specify a compilation command" 1>&2
317
      $echo "$help" 1>&2
318
      exit 1
319
    fi
320
 
321
    # Delete any leftover library objects.
322
    if test "$build_old_libs" = yes; then
323
      $run $rm $obj $libobj
324
      trap "$run $rm $obj $libobj; exit 1" 1 2 15
325
    else
326
      $run $rm $libobj
327
      trap "$run $rm $libobj; exit 1" 1 2 15
328
    fi
329
 
330
    if test -n "$fix_srcfile_path"; then
331
      eval srcfile=\"$fix_srcfile_path\"
332
    fi
333
 
334
    # Only build a PIC object if we are building libtool libraries.
335
    if test "$build_libtool_libs" = yes; then
336
      # Without this assignment, base_compile gets emptied.
337
      fbsd_hideous_sh_bug=$base_compile
338
 
339
      # All platforms use -DPIC, to notify preprocessed assembler code.
340
      $show "$base_compile$pic_flag -DPIC $srcfile"
341
      if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then :
342
      else
343
        test -n "$obj" && $run $rm $obj
344
        exit 1
345
      fi
346
 
347
      # If we have no pic_flag, then copy the object into place and finish.
348
      if test -z "$pic_flag"; then
349
        $show "$LN_S $obj $libobj"
350
        $run $LN_S $obj $libobj
351
        exit $?
352
      fi
353
 
354
      # Just move the object, then go on to compile the next one
355
      $show "$mv $obj $libobj"
356
      $run $mv $obj $libobj || exit 1
357
 
358
      # Allow error messages only from the first compilation.
359
      suppress_output=' >/dev/null 2>&1'
360
    fi
361
 
362
    # Only build a position-dependent object if we build old libraries.
363
    if test "$build_old_libs" = yes; then
364
      # Suppress compiler output if we already did a PIC compilation.
365
      $show "$base_compile $srcfile$suppress_output"
366
      if $run eval "$base_compile \$srcfile$suppress_output"; then :
367
      else
368
        $run $rm $obj $libobj
369
        exit 1
370
      fi
371
    fi
372
 
373
    # Create an invalid libtool object if no PIC, so that we do not
374
    # accidentally link it into a program.
375
    if test "$build_libtool_libs" != yes; then
376
      $show "echo timestamp > $libobj"
377
      $run eval "echo timestamp > \$libobj" || exit $?
378
    fi
379
 
380
    exit 0
381
    ;;
382
 
383
  # libtool link mode
384
  link)
385
    modename="$modename: link"
386
    CC="$nonopt"
387
    allow_undefined=yes
388
    compile_command="$CC"
389
    finalize_command="$CC"
390
 
391
    compile_shlibpath=
392
    finalize_shlibpath=
393
    deplibs=
394
    dlfiles=
395
    dlprefiles=
396
    export_dynamic=no
397
    hardcode_libdirs=
398
    libobjs=
399
    link_against_libtool_libs=
400
    ltlibs=
401
    objs=
402
    prev=
403
    prevarg=
404
    release=
405
    rpath=
406
    perm_rpath=
407
    temp_rpath=
408
    vinfo=
409
 
410
    # We need to know -static, to get the right output filenames.
411
    for arg
412
    do
413
      case "$arg" in
414
      -all-static | -static)
415
        if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
416
            $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
417
        fi
418
        build_libtool_libs=no
419
        build_old_libs=yes
420
        break
421
        ;;
422
      esac
423
    done
424
 
425
    # See if our shared archives depend on static archives.
426
    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
427
 
428
    # Go through the arguments, transforming them on the way.
429
    for arg
430
    do
431
      # If the previous option needs an argument, assign it.
432
      if test -n "$prev"; then
433
        case "$prev" in
434
        output)
435
          compile_command="$compile_command @OUTPUT@"
436
          finalize_command="$finalize_command @OUTPUT@"
437
          ;;
438
        esac
439
 
440
        case "$prev" in
441
        dlfiles|dlprefiles)
442
          case "$arg" in
443
          *.la | *.lo) ;;  # We handle these cases below.
444
          *)
445
            dlprefiles="$dlprefiles $arg"
446
            test "$prev" = dlfiles && dlfiles="$dlfiles $arg"
447
            prev=
448
            ;;
449
          esac
450
          ;;
451
        release)
452
          release="-$arg"
453
          prev=
454
          continue
455
          ;;
456
        rpath)
457
          rpath="$rpath $arg"
458
          prev=
459
          continue
460
          ;;
461
        *)
462
          eval "$prev=\"\$arg\""
463
          prev=
464
          continue
465
          ;;
466
        esac
467
      fi
468
 
469
      prevarg="$arg"
470
 
471
      case "$arg" in
472
      -all-static)
473
        if test -n "$link_static_flag"; then
474
          compile_command="$compile_command $link_static_flag"
475
          finalize_command="$finalize_command $link_static_flag"
476
        fi
477
        continue
478
        ;;
479
 
480
      -allow-undefined)
481
        # FIXME: remove this flag sometime in the future.
482
        $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
483
        continue
484
        ;;
485
 
486
      -dlopen)
487
        prev=dlfiles
488
        continue
489
        ;;
490
 
491
      -dlpreopen)
492
        prev=dlprefiles
493
        continue
494
        ;;
495
 
496
      -export-dynamic)
497
        if test "$export_dynamic" != yes; then
498
          export_dynamic=yes
499
          if test -n "$export_dynamic_flag_spec"; then
500
            eval arg=\"$export_dynamic_flag_spec\"
501
          else
502
            arg=
503
          fi
504
 
505
          # Add the symbol object into the linking commands.
506
          compile_command="$compile_command @SYMFILE@"
507
          finalize_command="$finalize_command @SYMFILE@"
508
        fi
509
        ;;
510
 
511
      -L*)
512
        dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
513
        case "$dir" in
514
        /* | [A-Za-z]:\\*)
515
          # Add the corresponding hardcode_libdir_flag, if it is not identical.
516
          ;;
517
        *)
518
          $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
519
          exit 1
520
          ;;
521
        esac
522
        deplibs="$deplibs $arg"
523
        ;;
524
 
525
      -l*) deplibs="$deplibs $arg" ;;
526
 
527
      -no-undefined)
528
        allow_undefined=no
529
        continue
530
        ;;
531
 
532
      -o) prev=output ;;
533
 
534
      -release)
535
        prev=release
536
        continue
537
        ;;
538
 
539
      -rpath)
540
        prev=rpath
541
        continue
542
        ;;
543
 
544
      -static)
545
        # If we have no pic_flag, then this is the same as -all-static.
546
        if test -z "$pic_flag" && test -n "$link_static_flag"; then
547
          compile_command="$compile_command $link_static_flag"
548
          finalize_command="$finalize_command $link_static_flag"
549
        fi
550
        continue
551
        ;;
552
 
553
      -version-info)
554
        prev=vinfo
555
        continue
556
        ;;
557
 
558
      # Some other compiler flag.
559
      -* | +*)
560
        # Unknown arguments in both finalize_command and compile_command need
561
        # to be aesthetically quoted because they are evaled later.
562
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
563
        case "$arg" in
564
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
565
          arg="\"$arg\""
566
          ;;
567
        esac
568
        ;;
569
 
570
      *.o | *.obj | *.a | *.lib)
571
        # A standard object.
572
        objs="$objs $arg"
573
        ;;
574
 
575
      *.lo)
576
        # A library object.
577
        if test "$prev" = dlfiles; then
578
          dlfiles="$dlfiles $arg"
579
          if test "$build_libtool_libs" = yes; then
580
            prev=
581
            continue
582
          else
583
            # If libtool objects are unsupported, then we need to preload.
584
            prev=dlprefiles
585
          fi
586
        fi
587
 
588
        if test "$prev" = dlprefiles; then
589
          # Preload the old-style object.
590
          dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
591
          prev=
592
        fi
593
        libobjs="$libobjs $arg"
594
        ;;
595
 
596
      *.la)
597
        # A libtool-controlled library.
598
 
599
        dlname=
600
        libdir=
601
        library_names=
602
        old_library=
603
 
604
        # Check to see that this really is a libtool archive.
605
        if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
606
        else
607
          $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
608
          exit 1
609
        fi
610
 
611
        # If there is no directory component, then add one.
612
        case "$arg" in
613
        */* | *\\*) . $arg ;;
614
        *) . ./$arg ;;
615
        esac
616
 
617
        if test -z "$libdir"; then
618
          $echo "$modename: \`$arg' contains no -rpath information" 1>&2
619
          exit 1
620
        fi
621
 
622
        # Get the name of the library we link against.
623
        linklib=
624
        for l in $old_library $library_names; do
625
          linklib="$l"
626
        done
627
 
628
        if test -z "$linklib"; then
629
          $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
630
          exit 1
631
        fi
632
 
633
        # Find the relevant object directory and library name.
634
        name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
635
        dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
636
        if test "X$dir" = "X$arg"; then
637
          dir="$objdir"
638
        else
639
          dir="$dir/$objdir"
640
        fi
641
 
642
        # This library was specified with -dlopen.
643
        if test "$prev" = dlfiles; then
644
          dlfiles="$dlfiles $arg"
645
          if test -z "$dlname"; then
646
            # If there is no dlname, we need to preload.
647
            prev=dlprefiles
648
          else
649
            # We should not create a dependency on this library, but we
650
            # may need any libraries it requires.
651
            compile_command="$compile_command$dependency_libs"
652
            finalize_command="$finalize_command$dependency_libs"
653
            prev=
654
            continue
655
          fi
656
        fi
657
 
658
        # The library was specified with -dlpreopen.
659
        if test "$prev" = dlprefiles; then
660
          # Prefer using a static library (so that no silly _DYNAMIC symbols
661
          # are required to link).
662
          if test -n "$old_library"; then
663
            dlprefiles="$dlprefiles $dir/$old_library"
664
          else
665
            dlprefiles="$dlprefiles $dir/$linklib"
666
          fi
667
          prev=
668
        fi
669
 
670
        if test "$build_libtool_libs" = yes && test -n "$library_names"; then
671
          link_against_libtool_libs="$link_against_libtool_libs $arg"
672
          if test -n "$shlibpath_var"; then
673
            # Make sure the rpath contains only unique directories.
674
            case "$temp_rpath " in
675
            *" $dir "*) ;;
676
            *) temp_rpath="$temp_rpath $dir" ;;
677
            esac
678
          fi
679
 
680
          # This is the magic to use -rpath.
681
          if test -n "$hardcode_libdir_flag_spec"; then
682
            if test -n "$hardcode_libdir_separator"; then
683
              if test -z "$hardcode_libdirs"; then
684
                # Put the magic libdir with the hardcode flag.
685
                hardcode_libdirs="$libdir"
686
                libdir="@HARDCODE_LIBDIRS@"
687
              else
688
                # Just accumulate the unique libdirs.
689
                case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
690
                *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
691
                  ;;
692
                *)
693
                  hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
694
                  ;;
695
                esac
696
                libdir=
697
              fi
698
            fi
699
 
700
            if test -n "$libdir"; then
701
              eval flag=\"$hardcode_libdir_flag_spec\"
702
 
703
              compile_command="$compile_command $flag"
704
              finalize_command="$finalize_command $flag"
705
            fi
706
          elif test -n "$runpath_var"; then
707
            # Do the same for the permanent run path.
708
            case "$perm_rpath " in
709
            *" $libdir "*) ;;
710
            *) perm_rpath="$perm_rpath $libdir" ;;
711
            esac
712
          fi
713
 
714
 
715
          case "$hardcode_action" in
716
          immediate)
717
            if test "$hardcode_direct" = no; then
718
              compile_command="$compile_command $dir/$linklib"
719
            elif test "$hardcode_minus_L" = no; then
720
              compile_command="$compile_command -L$dir -l$name"
721
            elif test "$hardcode_shlibpath_var" = no; then
722
              compile_shlibpath="$compile_shlibpath$dir:"
723
              compile_command="$compile_command -l$name"
724
            fi
725
            ;;
726
 
727
          relink)
728
            # We need an absolute path.
729
            case "$dir" in
730
            /* | [A-Za-z]:\\*) ;;
731
            *)
732
              absdir=`cd "$dir" && pwd`
733
              if test -z "$absdir"; then
734
                $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
735
                exit 1
736
              fi
737
              dir="$absdir"
738
              ;;
739
            esac
740
 
741
            if test "$hardcode_direct" = yes; then
742
              compile_command="$compile_command $dir/$linklib"
743
            elif test "$hardcode_minus_L" = yes; then
744
              compile_command="$compile_command -L$dir -l$name"
745
            elif test "$hardcode_shlibpath_var" = yes; then
746
              compile_shlibpath="$compile_shlibpath$dir:"
747
              compile_command="$compile_command -l$name"
748
            fi
749
            ;;
750
          esac
751
 
752
          # Finalize command for both is simple: just hardcode it.
753
          if test "$hardcode_direct" = yes; then
754
            finalize_command="$finalize_command $libdir/$linklib"
755
          elif test "$hardcode_minus_L" = yes; then
756
            finalize_command="$finalize_command -L$libdir -l$name"
757
          elif test "$hardcode_shlibpath_var" = yes; then
758
            finalize_shlibpath="$finalize_shlibpath$libdir:"
759
            finalize_command="$finalize_command -l$name"
760
          else
761
            # We cannot seem to hardcode it, guess we'll fake it.
762
            finalize_command="$finalize_command -L$libdir -l$name"
763
          fi
764
        else
765
          # Transform directly to old archives if we don't build new libraries.
766
          if test -n "$pic_flag" && test -z "$old_library"; then
767
            $echo "$modename: cannot find static library for \`$arg'" 1>&2
768
            exit 1
769
          fi
770
 
771
          # Here we assume that one of hardcode_direct or hardcode_minus_L
772
          # is not unsupported.  This is valid on all known static and
773
          # shared platforms.
774
          if test "$hardcode_direct" != unsupported; then
775
            test -n "$old_library" && linklib="$old_library"
776
            compile_command="$compile_command $dir/$linklib"
777
            finalize_command="$finalize_command $dir/$linklib"
778
          else
779
            compile_command="$compile_command -L$dir -l$name"
780
            finalize_command="$finalize_command -L$dir -l$name"
781
          fi
782
        fi
783
 
784
        # Add in any libraries that this one depends upon.
785
        compile_command="$compile_command$dependency_libs"
786
        finalize_command="$finalize_command$dependency_libs"
787
        continue
788
        ;;
789
 
790
      # Some other compiler argument.
791
      *)
792
        # Unknown arguments in both finalize_command and compile_command need
793
        # to be aesthetically quoted because they are evaled later.
794
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
795
        case "$arg" in
796
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
797
          arg="\"$arg\""
798
          ;;
799
        esac
800
        ;;
801
      esac
802
 
803
      # Now actually substitute the argument into the commands.
804
      if test -n "$arg"; then
805
        compile_command="$compile_command $arg"
806
        finalize_command="$finalize_command $arg"
807
      fi
808
    done
809
 
810
    if test -n "$prev"; then
811
      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
812
      $echo "$help" 1>&2
813
      exit 1
814
    fi
815
 
816
    if test -n "$vinfo" && test -n "$release"; then
817
      $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2
818
      $echo "$help" 1>&2
819
      exit 1
820
    fi
821
 
822
    oldlib=
823
    oldobjs=
824
    case "$output" in
825
    "")
826
      $echo "$modename: you must specify an output file" 1>&2
827
      $echo "$help" 1>&2
828
      exit 1
829
      ;;
830
 
831
    */* | *\\*)
832
      $echo "$modename: output file \`$output' must have no directory components" 1>&2
833
      exit 1
834
      ;;
835
 
836
    *.a | *.lib)
837
      # Now set the variables for building old libraries.
838
      build_libtool_libs=no
839
      build_old_libs=yes
840
      oldlib="$output"
841
      $show "$rm $oldlib"
842
      $run $rm $oldlib
843
      ;;
844
 
845
    *.la)
846
      # Make sure we only generate libraries of the form `libNAME.la'.
847
      case "$output" in
848
      lib*) ;;
849
      *)
850
        $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
851
        $echo "$help" 1>&2
852
        exit 1
853
        ;;
854
      esac
855
 
856
      name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
857
      eval libname=\"$libname_spec\"
858
 
859
      # All the library-specific variables (install_libdir is set above).
860
      library_names=
861
      old_library=
862
      dlname=
863
      current=0
864
      revision=0
865
      age=0
866
 
867
      if test -n "$objs"; then
868
        $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
869
        exit 1
870
      fi
871
 
872
      # How the heck are we supposed to write a wrapper for a shared library?
873
      if test -n "$link_against_libtool_libs"; then
874
        $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
875
        exit 1
876
      fi
877
 
878
      if test -n "$dlfiles$dlprefiles"; then
879
        $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
880
        # Nullify the symbol file.
881
        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
882
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
883
      fi
884
 
885
      if test -z "$rpath"; then
886
        $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2
887
        $echo "$help" 1>&2
888
        exit 1
889
      fi
890
 
891
      set dummy $rpath
892
      if test $# -gt 2; then
893
        $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
894
      fi
895
      install_libdir="$2"
896
 
897
      if test -n "$vinfo"; then
898
 
899
        # Parse the version information argument.
900
        IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
901
        set dummy $vinfo
902
        IFS="$save_ifs"
903
 
904
        if test -n "$5"; then
905
          $echo "$modename: too many parameters to \`-version-info'" 1>&2
906
          $echo "$help" 1>&2
907
          exit 1
908
        fi
909
 
910
        test -n "$2" && current="$2"
911
        test -n "$3" && revision="$3"
912
        test -n "$4" && age="$4"
913
 
914
        # Check that each of the things are valid numbers.
915
        case "$current" in
916
 
917
        *)
918
          $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
919
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
920
          exit 1
921
          ;;
922
        esac
923
 
924
        case "$revision" in
925
 
926
        *)
927
          $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
928
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
929
          exit 1
930
          ;;
931
        esac
932
 
933
        case "$age" in
934
 
935
        *)
936
          $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
937
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
938
          exit 1
939
          ;;
940
        esac
941
 
942
        if test $age -gt $current; then
943
          $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
944
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
945
          exit 1
946
        fi
947
 
948
        # Calculate the version variables.
949
        version_vars="version_type current age revision"
950
        case "$version_type" in
951
        none) ;;
952
 
953
        linux)
954
          version_vars="$version_vars major versuffix"
955
          major=.`expr $current - $age`
956
          versuffix=".$major.$age.$revision"
957
          ;;
958
 
959
        osf)
960
          version_vars="$version_vars versuffix verstring"
961
          major=.`expr $current - $age`
962
          versuffix=."$current.$age.$revision"
963
          verstring="$current.$age.$revision"
964
 
965
          # Add in all the interfaces that we are compatible with.
966
          loop=$age
967
          while test $loop != 0; do
968
            iface=`expr $current - $loop`
969
            loop=`expr $loop - 1`
970
            verstring="$verstring:${iface}.0"
971
          done
972
 
973
          # Make executables depend on our current version.
974
          verstring="$verstring:${current}.0"
975
          ;;
976
 
977
        sunos)
978
          version_vars="$version_vars major versuffix"
979
          major=."$current"
980
          versuffix=."$current.$revision"
981
          ;;
982
 
983
        windows)
984
          # Like Linux, but with '-' rather than '.', since we only
985
          # want one extension on Windows 95.
986
          version_vars="$version_vars major versuffix"
987
          major=`expr $current - $age`
988
          versuffix="-$major-$age-$revision"
989
          ;;
990
 
991
        *)
992
          $echo "$modename: unknown library version type \`$version_type'" 1>&2
993
          echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
994
          exit 1
995
          ;;
996
        esac
997
      else
998
 
999
        # No version information.
1000
        version_vars=
1001
 
1002
        case "$version_type" in
1003
        none) ;;
1004
 
1005
        linux)
1006
          version_vars="$version_vars versuffix major"
1007
          major=
1008
          versuffix=
1009
          ;;
1010
 
1011
        osf)
1012
          version_vars="$version_vars versuffix verstring"
1013
          major=
1014
          versuffix=
1015
          verstring=":0.0"
1016
          ;;
1017
 
1018
        sunos)
1019
          version_vars="$version_vars major versuffix"
1020
          major=
1021
          versuffix=
1022
          ;;
1023
 
1024
        windows)
1025
          # Like Linux, but with '-' rather than '.', and with a leading
1026
          # '-', since we only want one extension on Windows 95.
1027
          version_vars="$version_vars major versuffix"
1028
          major=
1029
          versuffix=
1030
          ;;
1031
 
1032
        *)
1033
          $echo "$modename: unknown library version type \`$version_type'" 1>&2
1034
          echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1035
          exit 1
1036
          ;;
1037
        esac
1038
      fi
1039
 
1040
      # Create the output directory, or remove our outputs if we need to.
1041
      if test -d $objdir; then
1042
        $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
1043
        $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
1044
      else
1045
        $show "$mkdir $objdir"
1046
        $run $mkdir $objdir
1047
        status=$?
1048
        if test $status -eq 0 || test -d $objdir; then :
1049
        else
1050
          exit $status
1051
        fi
1052
      fi
1053
 
1054
      # Check to see if the archive will have undefined symbols.
1055
      if test "$allow_undefined" = yes; then
1056
        if test "$allow_undefined_flag" = unsupported; then
1057
          $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1058
          build_libtool_libs=no
1059
          build_old_libs=yes
1060
        fi
1061
      else
1062
        # Don't allow undefined symbols.
1063
        allow_undefined_flag="$no_undefined_flag"
1064
      fi
1065
 
1066
      # Add libc to deplibs on all systems.
1067
      dependency_libs="$deplibs"
1068
      deplibs="$deplibs -lc"
1069
 
1070
      if test "$build_libtool_libs" = yes; then
1071
        # Get the real and link names of the library.
1072
        eval library_names=\"$library_names_spec\"
1073
        set dummy $library_names
1074
        realname="$2"
1075
        shift; shift
1076
 
1077
        if test -n "$soname_spec"; then
1078
          eval soname=\"$soname_spec\"
1079
        else
1080
          soname="$realname"
1081
        fi
1082
 
1083
        lib="$objdir/$realname"
1084
        for link
1085
        do
1086
          linknames="$linknames $link"
1087
        done
1088
 
1089
        # Use standard objects if they are PIC.
1090
        test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e "$los2o" -e 's/ $//g'`
1091
 
1092
        # Do each of the archive commands.
1093
        eval cmds=\"$archive_cmds\"
1094
        IFS="${IFS=     }"; save_ifs="$IFS"; IFS=';'
1095
        for cmd in $cmds; do
1096
          IFS="$save_ifs"
1097
          $show "$cmd"
1098
          $run eval "$cmd" || exit $?
1099
        done
1100
        IFS="$save_ifs"
1101
 
1102
        # Create links to the real library.
1103
        for linkname in $linknames; do
1104
          if test "$realname" != "$linkname"; then
1105
            $show "(cd $objdir && $LN_S $realname $linkname)"
1106
            $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
1107
          fi
1108
        done
1109
 
1110
        # If -export-dynamic was specified, set the dlname.
1111
        if test "$export_dynamic" = yes; then
1112
          # On all known operating systems, these are identical.
1113
          dlname="$soname"
1114
        fi
1115
      fi
1116
 
1117
      # Now set the variables for building old libraries.
1118
      oldlib="$objdir/$libname.$libext"
1119
      ;;
1120
 
1121
    *.lo | *.o | *.obj)
1122
      if test -n "$link_against_libtool_libs"; then
1123
        $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2
1124
        exit 1
1125
      fi
1126
 
1127
      if test -n "$deplibs"; then
1128
        $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
1129
      fi
1130
 
1131
      if test -n "$dlfiles$dlprefiles"; then
1132
        $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2
1133
        # Nullify the symbol file.
1134
        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
1135
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
1136
      fi
1137
 
1138
      if test -n "$rpath"; then
1139
        $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2
1140
      fi
1141
 
1142
      if test -n "$vinfo"; then
1143
        $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2
1144
      fi
1145
 
1146
      if test -n "$release"; then
1147
        $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
1148
      fi
1149
 
1150
      case "$output" in
1151
      *.lo)
1152
        if test -n "$objs"; then
1153
          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
1154
          exit 1
1155
        fi
1156
        libobj="$output"
1157
        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
1158
        ;;
1159
      *)
1160
        libobj=
1161
        obj="$output"
1162
        ;;
1163
      esac
1164
 
1165
      # Delete the old objects.
1166
      $run $rm $obj $libobj
1167
 
1168
      # Create the old-style object.
1169
      reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^       ]*\.a //g' -e 's/[^       ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
1170
 
1171
      output="$obj"
1172
      eval cmds=\"$reload_cmds\"
1173
      IFS="${IFS=       }"; save_ifs="$IFS"; IFS=';'
1174
      for cmd in $cmds; do
1175
        IFS="$save_ifs"
1176
        $show "$cmd"
1177
        $run eval "$cmd" || exit $?
1178
      done
1179
      IFS="$save_ifs"
1180
 
1181
      # Exit if we aren't doing a library object file.
1182
      test -z "$libobj" && exit 0
1183
 
1184
      if test "$build_libtool_libs" != yes; then
1185
        # Create an invalid libtool object if no PIC, so that we don't
1186
        # accidentally link it into a program.
1187
        $show "echo timestamp > $libobj"
1188
        $run eval "echo timestamp > $libobj" || exit $?
1189
        exit 0
1190
      fi
1191
 
1192
      if test -n "$pic_flag"; then
1193
        # Only do commands if we really have different PIC objects.
1194
        reload_objs="$libobjs"
1195
        output="$libobj"
1196
        eval cmds=\"$reload_cmds\"
1197
        IFS="${IFS=     }"; save_ifs="$IFS"; IFS=';'
1198
        for cmd in $cmds; do
1199
          IFS="$save_ifs"
1200
          $show "$cmd"
1201
          $run eval "$cmd" || exit $?
1202
        done
1203
        IFS="$save_ifs"
1204
      else
1205
        # Just create a symlink.
1206
        $show "$LN_S $obj $libobj"
1207
        $run $LN_S $obj $libobj || exit 1
1208
      fi
1209
 
1210
      exit 0
1211
      ;;
1212
 
1213
    *)
1214
      if test -n "$vinfo"; then
1215
        $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
1216
      fi
1217
 
1218
      if test -n "$release"; then
1219
        $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2
1220
      fi
1221
 
1222
      if test -n "$rpath"; then
1223
        # If the user specified any rpath flags, then add them.
1224
        for libdir in $rpath; do
1225
          if test -n "$hardcode_libdir_flag_spec"; then
1226
            if test -n "$hardcode_libdir_separator"; then
1227
              if test -z "$hardcode_libdirs"; then
1228
                # Put the magic libdir with the hardcode flag.
1229
                hardcode_libdirs="$libdir"
1230
                libdir="@HARDCODE_LIBDIRS@"
1231
              else
1232
                # Just accumulate the unique libdirs.
1233
                case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
1234
                *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
1235
                  ;;
1236
                *)
1237
                  hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
1238
                  ;;
1239
                esac
1240
                libdir=
1241
              fi
1242
            fi
1243
 
1244
            if test -n "$libdir"; then
1245
              eval flag=\"$hardcode_libdir_flag_spec\"
1246
 
1247
              compile_command="$compile_command $flag"
1248
              finalize_command="$finalize_command $flag"
1249
            fi
1250
          elif test -n "$runpath_var"; then
1251
            case "$perm_rpath " in
1252
            *" $libdir "*) ;;
1253
            *) perm_rpath="$perm_rpath $libdir" ;;
1254
            esac
1255
          fi
1256
        done
1257
      fi
1258
 
1259
      # Substitute the hardcoded libdirs into the compile commands.
1260
      if test -n "$hardcode_libdir_separator"; then
1261
        compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
1262
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
1263
      fi
1264
 
1265
      if test -n "$libobjs" && test "$build_old_libs" = yes; then
1266
        # Transform all the library objects into standard objects.
1267
        compile_command=`$echo "X$compile_command " | $Xsed -e "$los2o" -e 's/ $//'`
1268
        finalize_command=`$echo "X$finalize_command " | $Xsed -e "$los2o" -e 's/ $//'`
1269
      fi
1270
 
1271
      if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
1272
        dlsyms="${output}S.c"
1273
      else
1274
        dlsyms=
1275
      fi
1276
 
1277
      if test -n "$dlsyms"; then
1278
        # Add our own program objects to the preloaded list.
1279
        dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e "$los2o" -e 's/ $//'`
1280
 
1281
        # Discover the nlist of each of the dlfiles.
1282
        nlist="$objdir/${output}.nm"
1283
 
1284
        if test -d $objdir; then
1285
          $show "$rm $nlist ${nlist}T"
1286
          $run $rm "$nlist" "${nlist}T"
1287
        else
1288
          $show "$mkdir $objdir"
1289
          $run $mkdir $objdir
1290
          status=$?
1291
          if test $status -eq 0 || test -d $objdir; then :
1292
          else
1293
            exit $status
1294
          fi
1295
        fi
1296
 
1297
        for arg in $dlprefiles; do
1298
          $show "extracting global C symbols from \`$arg'"
1299
          $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
1300
        done
1301
 
1302
        # Parse the name list into a source file.
1303
        $show "creating $objdir/$dlsyms"
1304
        if test -z "$run"; then
1305
          # Make sure we at least have an empty file.
1306
          test -f "$nlist" || : > "$nlist"
1307
 
1308
          # Try sorting and uniquifying the output.
1309
          if sort "$nlist" | uniq > "$nlist"T; then
1310
            mv -f "$nlist"T "$nlist"
1311
            wcout=`wc "$nlist" 2>/dev/null`
1312
            count=`echo "X$wcout" | $Xsed -e 's/^[      ]*\([0-9][0-9]*\).*$/\1/'`
1313
            (test "$count" -ge 0) 2>/dev/null || count=-1
1314
          else
1315
            $rm "$nlist"T
1316
            count=-1
1317
          fi
1318
 
1319
          case "$dlsyms" in
1320
          "") ;;
1321
          *.c)
1322
            $echo > "$objdir/$dlsyms" "\
1323
/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
1324
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
1325
 
1326
#ifdef __cplusplus
1327
extern \"C\" {
1328
#endif
1329
 
1330
/* Prevent the only kind of declaration conflicts we can make. */
1331
#define dld_preloaded_symbol_count some_other_symbol
1332
#define dld_preloaded_symbols some_other_symbol
1333
 
1334
/* External symbol declarations for the compiler. */\
1335
"
1336
 
1337
            if test -f "$nlist"; then
1338
              sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
1339
            else
1340
              echo '/* NONE */' >> "$objdir/$dlsyms"
1341
            fi
1342
 
1343
            $echo >> "$objdir/$dlsyms" "\
1344
 
1345
#undef dld_preloaded_symbol_count
1346
#undef dld_preloaded_symbols
1347
 
1348
#if defined (__STDC__) && __STDC__
1349
# define __ptr_t void *
1350
#else
1351
# define __ptr_t char *
1352
#endif
1353
 
1354
/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
1355
int dld_preloaded_symbol_count = $count;
1356
 
1357
/* The mapping between symbol names and symbols. */
1358
struct {
1359
  char *name;
1360
  __ptr_t address;
1361
}
1362
dld_preloaded_symbols[] =
1363
{\
1364
"
1365
 
1366
            if test -f "$nlist"; then
1367
              sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
1368
            fi
1369
 
1370
            $echo >> "$objdir/$dlsyms" "\
1371
  {0, (__ptr_t) 0}
1372
};
1373
 
1374
#ifdef __cplusplus
1375
}
1376
#endif\
1377
"
1378
            ;;
1379
 
1380
          *)
1381
            $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
1382
            exit 1
1383
            ;;
1384
          esac
1385
        fi
1386
 
1387
        # Now compile the dynamic symbol file.
1388
        $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")"
1389
        $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?
1390
 
1391
        # Transform the symbol file into the correct name.
1392
        compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
1393
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"`
1394
      elif test "$export_dynamic" != yes; then
1395
        test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
1396
      else
1397
        # We keep going just in case the user didn't refer to
1398
        # dld_preloaded_symbols.  The linker will fail if global_symbol_pipe
1399
        # really was required.
1400
        $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
1401
 
1402
        # Nullify the symbol file.
1403
        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
1404
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
1405
      fi
1406
 
1407
      if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
1408
        # Replace the output file specification.
1409
        compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
1410
        finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
1411
 
1412
        # We have no uninstalled library dependencies, so finalize right now.
1413
        $show "$compile_command"
1414
        $run eval "$compile_command"
1415
        exit $?
1416
      fi
1417
 
1418
      # Replace the output file specification.
1419
      compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'`
1420
      finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
1421
 
1422
      # Create the binary in the object directory, then wrap it.
1423
      if test -d $objdir; then :
1424
      else
1425
        $show "$mkdir $objdir"
1426
        $run $mkdir $objdir
1427
        status=$?
1428
        if test $status -eq 0 || test -d $objdir; then :
1429
        else
1430
          exit $status
1431
        fi
1432
      fi
1433
 
1434
      if test -n "$shlibpath_var"; then
1435
        # We should set the shlibpath_var
1436
        rpath=
1437
        for dir in $temp_rpath; do
1438
          case "$dir" in
1439
          /* | [A-Za-z]:\\*)
1440
            # Absolute path.
1441
            rpath="$rpath$dir:"
1442
            ;;
1443
          *)
1444
            # Relative path: add a thisdir entry.
1445
            rpath="$rpath\$thisdir/$dir:"
1446
            ;;
1447
          esac
1448
        done
1449
        temp_rpath="$rpath"
1450
      fi
1451
 
1452
      # Delete the old output file.
1453
      $run $rm $output
1454
 
1455
      if test -n "$compile_shlibpath"; then
1456
        compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command"
1457
      fi
1458
      if test -n "$finalize_shlibpath"; then
1459
        finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
1460
      fi
1461
 
1462
      if test -n "$runpath_var" && test -n "$perm_rpath"; then
1463
        # We should set the runpath_var.
1464
        rpath=
1465
        for dir in $perm_rpath; do
1466
          rpath="$rpath$dir:"
1467
        done
1468
        compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command"
1469
        finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
1470
      fi
1471
 
1472
      if test "$hardcode_action" = relink; then
1473
        # AGH! Flame the AIX and HP-UX people for me, will ya?
1474
        $echo "$modename: warning: using a buggy system linker" 1>&2
1475
        $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
1476
      fi
1477
 
1478
      $show "$compile_command"
1479
      $run eval "$compile_command" || exit $?
1480
 
1481
      # Now create the wrapper script.
1482
      $show "creating $output"
1483
 
1484
      # Quote the finalize command for shipping.
1485
      finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"`
1486
 
1487
      # Quote $echo for shipping.
1488
      qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
1489
 
1490
      # Only actually do things if our run command is non-null.
1491
      if test -z "$run"; then
1492
        $rm $output
1493
        trap "$rm $output; exit 1" 1 2 15
1494
 
1495
        $echo > $output "\
1496
#! $SHELL
1497
 
1498
# $output - temporary wrapper script for $objdir/$output
1499
# Generated by $PROGRAM - GNU $PACKAGE $VERSION
1500
#
1501
# The $output program cannot be directly executed until all the libtool
1502
# libraries that it depends on are installed.
1503
#
1504
# This wrapper script should never be moved out of \``pwd`'.
1505
# If it is, it will not operate correctly.
1506
 
1507
# Sed substitution that helps us do robust quoting.  It backslashifies
1508
# metacharacters that are still active within double-quoted strings.
1509
Xsed='sed -e s/^X//'
1510
sed_quote_subst='$sed_quote_subst'
1511
 
1512
# The HP-UX ksh and POSIX shell print the target directory to stdout
1513
# if CDPATH is set.
1514
if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
1515
 
1516
# This environment variable determines our operation mode.
1517
if test \"\$libtool_install_magic\" = \"$magic\"; then
1518
  # install mode needs the following variables:
1519
  link_against_libtool_libs='$link_against_libtool_libs'
1520
  finalize_command=\"$finalize_command\"
1521
else
1522
  # When we are sourced in execute mode, \$file and \$echo are already set.
1523
  if test \"\$libtool_execute_magic\" = \"$magic\"; then :
1524
  else
1525
    echo=\"$qecho\"
1526
    file=\"\$0\"
1527
  fi\
1528
"
1529
        $echo >> $output "\
1530
 
1531
  # Find the directory that this script lives in.
1532
  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
1533
  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
1534
 
1535
  # Follow symbolic links until we get to the real thisdir.
1536
  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
1537
  while test -n \"\$file\"; do
1538
    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
1539
 
1540
    # If there was a directory component, then change thisdir.
1541
    if test \"x\$destdir\" != \"x\$file\"; then
1542
      case \"\$destdir\" in
1543
      /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;;
1544
      *) thisdir=\"\$thisdir/\$destdir\" ;;
1545
      esac
1546
    fi
1547
 
1548
    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
1549
    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
1550
  done
1551
 
1552
  # Try to get the absolute directory name.
1553
  absdir=\`cd \"\$thisdir\" && pwd\`
1554
  test -n \"\$absdir\" && thisdir=\"\$absdir\"
1555
 
1556
  progdir=\"\$thisdir/$objdir\"
1557
  program='$output'
1558
 
1559
  if test -f \"\$progdir/\$program\"; then"
1560
 
1561
        # Export our shlibpath_var if we have one.
1562
        if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
1563
          $echo >> $output "\
1564
    # Add our own library path to $shlibpath_var
1565
    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
1566
 
1567
    # Some systems cannot cope with colon-terminated $shlibpath_var
1568
    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\`
1569
 
1570
    export $shlibpath_var
1571
"
1572
        fi
1573
 
1574
        $echo >> $output "\
1575
    if test \"\$libtool_execute_magic\" != \"$magic\"; then
1576
      # Run the actual program with our arguments.
1577
 
1578
      # Export the path to the program.
1579
      PATH=\"\$progdir:\$PATH\"
1580
      export PATH
1581
 
1582
      exec \$program \${1+\"\$@\"}
1583
 
1584
      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
1585
      exit 1
1586
    fi
1587
  else
1588
    # The program doesn't exist.
1589
    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
1590
    \$echo \"This script is just a wrapper for \$program.\" 1>&2
1591
    echo \"See the $PACKAGE documentation for more information.\" 1>&2
1592
    exit 1
1593
  fi
1594
fi\
1595
"
1596
        chmod +x $output
1597
      fi
1598
      exit 0
1599
      ;;
1600
    esac
1601
 
1602
    # See if we need to build an old-fashioned archive.
1603
    if test "$build_old_libs" = "yes"; then
1604
      # Transform .lo files to .o files.
1605
      oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^   ]*\.a //g' -e 's/[^   ]*\.lib //g' -e "$los2o" -e 's/ $//g'`
1606
 
1607
      # Do each command in the archive commands.
1608
      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
1609
        eval cmds=\"$old_archive_from_new_cmds\"
1610
      else
1611
        eval cmds=\"$old_archive_cmds\"
1612
      fi
1613
      IFS="${IFS=       }"; save_ifs="$IFS"; IFS=';'
1614
      for cmd in $cmds; do
1615
        IFS="$save_ifs"
1616
        $show "$cmd"
1617
        $run eval "$cmd" || exit $?
1618
      done
1619
      IFS="$save_ifs"
1620
    fi
1621
 
1622
    # Now create the libtool archive.
1623
    case "$output" in
1624
    *.la)
1625
      old_library=
1626
      test "$build_old_libs" = yes && old_library="$libname.$libext"
1627
 
1628
      $show "creating $output"
1629
 
1630
      # Only create the output if not a dry run.
1631
      if test -z "$run"; then
1632
        $echo > $output "\
1633
# $output - a libtool library file
1634
# Generated by $PROGRAM - GNU $PACKAGE $VERSION
1635
 
1636
# The name that we can dlopen(3).
1637
dlname='$dlname'
1638
 
1639
# Names of this library.
1640
library_names='$library_names'
1641
 
1642
# The name of the static archive.
1643
old_library='$old_library'
1644
 
1645
# Libraries that this one depends upon.
1646
dependency_libs='$dependency_libs'
1647
 
1648
# Version information for $libname.
1649
current=$current
1650
age=$age
1651
revision=$revision
1652
 
1653
# Directory that this library needs to be installed in:
1654
libdir='$install_libdir'\
1655
"
1656
      fi
1657
 
1658
      # Do a symbolic link so that the libtool archive can be found in
1659
      # LD_LIBRARY_PATH before the program is installed.
1660
      $show "(cd $objdir && $LN_S ../$output $output)"
1661
      $run eval "(cd $objdir && $LN_S ../$output $output)" || exit 1
1662
      ;;
1663
    esac
1664
    exit 0
1665
    ;;
1666
 
1667
  # libtool install mode
1668
  install)
1669
    modename="$modename: install"
1670
 
1671
    # There may be an optional sh(1) argument at the beginning of
1672
    # install_prog (especially on Windows NT).
1673
    if test "$nonopt" = "$SHELL"; then
1674
      # Aesthetically quote it.
1675
      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
1676
      case "$arg" in
1677
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
1678
        arg="\"$arg\""
1679
        ;;
1680
      esac
1681
      install_prog="$arg "
1682
      arg="$1"
1683
      shift
1684
    else
1685
      install_prog=
1686
      arg="$nonopt"
1687
    fi
1688
 
1689
    # The real first argument should be the name of the installation program.
1690
    # Aesthetically quote it.
1691
    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1692
    case "$arg" in
1693
    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*)
1694
      arg="\"$arg\""
1695
      ;;
1696
    esac
1697
    install_prog="$install_prog$arg"
1698
 
1699
    # We need to accept at least all the BSD install flags.
1700
    dest=
1701
    files=
1702
    opts=
1703
    prev=
1704
    install_type=
1705
    isdir=no
1706
    stripme=
1707
    for arg
1708
    do
1709
      if test -n "$dest"; then
1710
        files="$files $dest"
1711
        dest="$arg"
1712
        continue
1713
      fi
1714
 
1715
      case "$arg" in
1716
      -d) isdir=yes ;;
1717
      -f) prev="-f" ;;
1718
      -g) prev="-g" ;;
1719
      -m) prev="-m" ;;
1720
      -o) prev="-o" ;;
1721
      -s)
1722
        stripme=" -s"
1723
        continue
1724
        ;;
1725
      -*) ;;
1726
 
1727
      *)
1728
        # If the previous option needed an argument, then skip it.
1729
        if test -n "$prev"; then
1730
          prev=
1731
        else
1732
          dest="$arg"
1733
          continue
1734
        fi
1735
        ;;
1736
      esac
1737
 
1738
      # Aesthetically quote the argument.
1739
      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1740
      case "$arg" in
1741
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
1742
        arg="\"$arg\""
1743
        ;;
1744
      esac
1745
      install_prog="$install_prog $arg"
1746
    done
1747
 
1748
    if test -z "$install_prog"; then
1749
      $echo "$modename: you must specify an install program" 1>&2
1750
      $echo "$help" 1>&2
1751
      exit 1
1752
    fi
1753
 
1754
    if test -n "$prev"; then
1755
      $echo "$modename: the \`$prev' option requires an argument" 1>&2
1756
      $echo "$help" 1>&2
1757
      exit 1
1758
    fi
1759
 
1760
    if test -z "$files"; then
1761
      if test -z "$dest"; then
1762
        $echo "$modename: no file or destination specified" 1>&2
1763
      else
1764
        $echo "$modename: you must specify a destination" 1>&2
1765
      fi
1766
      $echo "$help" 1>&2
1767
      exit 1
1768
    fi
1769
 
1770
    # Strip any trailing slash from the destination.
1771
    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
1772
 
1773
    # Check to see that the destination is a directory.
1774
    test -d "$dest" && isdir=yes
1775
    if test "$isdir" = yes; then
1776
      destdir="$dest"
1777
      destname=
1778
    else
1779
      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
1780
      test "X$destdir" = "X$dest" && destdir=.
1781
      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
1782
 
1783
      # Not a directory, so check to see that there is only one file specified.
1784
      set dummy $files
1785
      if test $# -gt 2; then
1786
        $echo "$modename: \`$dest' is not a directory" 1>&2
1787
        $echo "$help" 1>&2
1788
        exit 1
1789
      fi
1790
    fi
1791
    case "$destdir" in
1792
    /* | [A-Za-z]:\\*) ;;
1793
    *)
1794
      for file in $files; do
1795
        case "$file" in
1796
        *.lo) ;;
1797
        *)
1798
          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
1799
          $echo "$help" 1>&2
1800
          exit 1
1801
          ;;
1802
        esac
1803
      done
1804
      ;;
1805
    esac
1806
 
1807
    # This variable tells wrapper scripts just to set variables rather
1808
    # than running their programs.
1809
    libtool_install_magic="$magic"
1810
 
1811
    staticlibs=
1812
    future_libdirs=
1813
    current_libdirs=
1814
    for file in $files; do
1815
 
1816
      # Do each installation.
1817
      case "$file" in
1818
      *.a | *.lib)
1819
        # Do the static libraries later.
1820
        staticlibs="$staticlibs $file"
1821
        ;;
1822
 
1823
      *.la)
1824
        # Check to see that this really is a libtool archive.
1825
        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1826
        else
1827
          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
1828
          $echo "$help" 1>&2
1829
          exit 1
1830
        fi
1831
 
1832
        library_names=
1833
        old_library=
1834
        # If there is no directory component, then add one.
1835
        case "$file" in
1836
        */* | *\\*) . $file ;;
1837
        *) . ./$file ;;
1838
        esac
1839
 
1840
        # Add the libdir to current_libdirs if it is the destination.
1841
        if test "X$destdir" = "X$libdir"; then
1842
          case "$current_libdirs " in
1843
          *" $libdir "*) ;;
1844
          *) current_libdirs="$current_libdirs $libdir" ;;
1845
          esac
1846
        else
1847
          # Note the libdir as a future libdir.
1848
          case "$future_libdirs " in
1849
          *" $libdir "*) ;;
1850
          *) future_libdirs="$future_libdirs $libdir" ;;
1851
          esac
1852
        fi
1853
 
1854
        dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
1855
        test "X$dir" = "X$file/" && dir=
1856
        dir="$dir$objdir"
1857
 
1858
        # See the names of the shared library.
1859
        set dummy $library_names
1860
        if test -n "$2"; then
1861
          realname="$2"
1862
          shift
1863
          shift
1864
 
1865
          # Install the shared library and build the symlinks.
1866
          $show "$install_prog $dir/$realname $destdir/$realname"
1867
          $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
1868
          test "X$dlname" = "X$realname" && dlname=
1869
 
1870
          if test $# -gt 0; then
1871
            # Delete the old symlinks.
1872
            rmcmd="$rm"
1873
            for linkname
1874
            do
1875
              rmcmd="$rmcmd $destdir/$linkname"
1876
            done
1877
            $show "$rmcmd"
1878
            $run $rmcmd
1879
 
1880
            # ... and create new ones.
1881
            for linkname
1882
            do
1883
              test "X$dlname" = "X$linkname" && dlname=
1884
              $show "(cd $destdir && $LN_S $realname $linkname)"
1885
              $run eval "(cd $destdir && $LN_S $realname $linkname)"
1886
            done
1887
          fi
1888
 
1889
          if test -n "$dlname"; then
1890
            # Install the dynamically-loadable library.
1891
            $show "$install_prog $dir/$dlname $destdir/$dlname"
1892
            $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
1893
          fi
1894
 
1895
          # Do each command in the postinstall commands.
1896
          lib="$destdir/$realname"
1897
          eval cmds=\"$postinstall_cmds\"
1898
          IFS="${IFS=   }"; save_ifs="$IFS"; IFS=';'
1899
          for cmd in $cmds; do
1900
            IFS="$save_ifs"
1901
            $show "$cmd"
1902
            $run eval "$cmd" || exit $?
1903
          done
1904
          IFS="$save_ifs"
1905
        fi
1906
 
1907
        # Install the pseudo-library for information purposes.
1908
        name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
1909
        $show "$install_prog $file $destdir/$name"
1910
        $run eval "$install_prog $file $destdir/$name" || exit $?
1911
 
1912
        # Maybe install the static library, too.
1913
        test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
1914
        ;;
1915
 
1916
      *.lo)
1917
        # Install (i.e. copy) a libtool object.
1918
 
1919
        # Figure out destination file name, if it wasn't already specified.
1920
        if test -n "$destname"; then
1921
          destfile="$destdir/$destname"
1922
        else
1923
          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
1924
          destfile="$destdir/$destfile"
1925
        fi
1926
 
1927
        # Deduce the name of the destination old-style object file.
1928
        case "$destfile" in
1929
        *.lo)
1930
          staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
1931
          ;;
1932
        *.o | *.obj)
1933
          staticdest="$destfile"
1934
          destfile=
1935
          ;;
1936
        *)
1937
          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
1938
          $echo "$help" 1>&2
1939
          exit 1
1940
          ;;
1941
        esac
1942
 
1943
        # Install the libtool object if requested.
1944
        if test -n "$destfile"; then
1945
          $show "$install_prog $file $destfile"
1946
          $run eval "$install_prog $file $destfile" || exit $?
1947
        fi
1948
 
1949
        # Install the old object if enabled.
1950
        if test "$build_old_libs" = yes; then
1951
          # Deduce the name of the old-style object file.
1952
          staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
1953
 
1954
          $show "$install_prog $staticobj $staticdest"
1955
          $run eval "$install_prog \$staticobj \$staticdest" || exit $?
1956
        fi
1957
        exit 0
1958
        ;;
1959
 
1960
      *)
1961
        # Figure out destination file name, if it wasn't already specified.
1962
        if test -n "$destname"; then
1963
          destfile="$destdir/$destname"
1964
        else
1965
          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
1966
          destfile="$destdir/$destfile"
1967
        fi
1968
 
1969
        # Do a test to see if this is really a libtool program.
1970
        if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1971
          link_against_libtool_libs=
1972
          finalize_command=
1973
 
1974
          # If there is no directory component, then add one.
1975
          case "$file" in
1976
          */* | *\\*) . $file ;;
1977
          *) . ./$file ;;
1978
          esac
1979
 
1980
          # Check the variables that should have been set.
1981
          if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
1982
            $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
1983
            exit 1
1984
          fi
1985
 
1986
          finalize=yes
1987
          for lib in $link_against_libtool_libs; do
1988
            # Check to see that each library is installed.
1989
            libdir=
1990
            if test -f "$lib"; then
1991
              # If there is no directory component, then add one.
1992
              case "$lib" in
1993
              */* | *\\*) . $lib ;;
1994
              *) . ./$lib ;;
1995
              esac
1996
            fi
1997
            libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
1998
            if test -z "$libdir"; then
1999
              $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2
2000
            elif test -f "$libfile"; then :
2001
            else
2002
              $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
2003
              finalize=no
2004
            fi
2005
          done
2006
 
2007
          if test "$hardcode_action" = relink; then
2008
            if test "$finalize" = yes; then
2009
              $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
2010
              $show "$finalize_command"
2011
              if $run eval "$finalize_command"; then :
2012
              else
2013
                $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
2014
                continue
2015
              fi
2016
              file="$objdir/$file"T
2017
            else
2018
              $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
2019
            fi
2020
          else
2021
            # Install the binary that we compiled earlier.
2022
            file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
2023
          fi
2024
        fi
2025
 
2026
        $show "$install_prog$stripme $file $destfile"
2027
        $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
2028
        ;;
2029
      esac
2030
    done
2031
 
2032
    for file in $staticlibs; do
2033
      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2034
 
2035
      # Set up the ranlib parameters.
2036
      oldlib="$destdir/$name"
2037
 
2038
      $show "$install_prog $file $oldlib"
2039
      $run eval "$install_prog \$file \$oldlib" || exit $?
2040
 
2041
      # Do each command in the postinstall commands.
2042
      eval cmds=\"$old_postinstall_cmds\"
2043
      IFS="${IFS=       }"; save_ifs="$IFS"; IFS=';'
2044
      for cmd in $cmds; do
2045
        IFS="$save_ifs"
2046
        $show "$cmd"
2047
        $run eval "$cmd" || exit $?
2048
      done
2049
      IFS="$save_ifs"
2050
    done
2051
 
2052
    if test -n "$future_libdirs"; then
2053
      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
2054
    fi
2055
 
2056
    if test -n "$current_libdirs"; then
2057
      # Maybe just do a dry run.
2058
      test -n "$run" && current_libdirs=" -n$current_libdirs"
2059
      exec $SHELL $0 --finish$current_libdirs
2060
      exit 1
2061
    fi
2062
 
2063
    exit 0
2064
    ;;
2065
 
2066
  # libtool finish mode
2067
  finish)
2068
    modename="$modename: finish"
2069
    libdirs="$nonopt"
2070
    admincmds=
2071
 
2072
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2073
      for dir
2074
      do
2075
        libdirs="$libdirs $dir"
2076
      done
2077
 
2078
      for libdir in $libdirs; do
2079
        if test -n "$finish_cmds"; then
2080
          # Do each command in the finish commands.
2081
          eval cmds=\"$finish_cmds\"
2082
          IFS="${IFS=   }"; save_ifs="$IFS"; IFS=';'
2083
          for cmd in $cmds; do
2084
            IFS="$save_ifs"
2085
            $show "$cmd"
2086
            $run eval "$cmd" || admincmds="$admincmds
2087
       $cmd"
2088
          done
2089
          IFS="$save_ifs"
2090
        fi
2091
        if test -n "$finish_eval"; then
2092
          # Do the single finish_eval.
2093
          eval cmds=\"$finish_eval\"
2094
          $run eval "$cmds" || admincmds="$admincmds
2095
       $cmds"
2096
        fi
2097
      done
2098
    fi
2099
 
2100
    echo "----------------------------------------------------------------------"
2101
    echo "Libraries have been installed in:"
2102
    for libdir in $libdirs; do
2103
      echo "   $libdir"
2104
    done
2105
    echo
2106
    echo "To link against installed libraries in a given directory, LIBDIR,"
2107
    echo "you must use the \`-LLIBDIR' flag during linking."
2108
    echo
2109
    echo " You will also need to do at least one of the following:"
2110
    if test -n "$shlibpath_var"; then
2111
      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
2112
      echo "     during execution"
2113
    fi
2114
    if test -n "$runpath_var"; then
2115
      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
2116
      echo "     during linking"
2117
    fi
2118
    if test -n "$hardcode_libdir_flag_spec"; then
2119
      libdir=LIBDIR
2120
      eval flag=\"$hardcode_libdir_flag_spec\"
2121
 
2122
      echo "   - use the \`$flag' linker flag"
2123
    fi
2124
    if test -n "$admincmds"; then
2125
      echo "   - have your system administrator run these commands:$admincmds"
2126
    fi
2127
    if test -f /etc/ld.so.conf; then
2128
      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2129
    fi
2130
    echo
2131
    echo "See any operating system documentation about shared libraries for"
2132
    echo "more information, such as the ld(1) and ld.so(8) manual pages."
2133
    echo "----------------------------------------------------------------------"
2134
    exit 0
2135
    ;;
2136
 
2137
  # libtool execute mode
2138
  execute)
2139
    modename="$modename: execute"
2140
 
2141
    # The first argument is the command name.
2142
    cmd="$nonopt"
2143
    if test -z "$cmd"; then
2144
      $echo "$modename: you must specify a COMMAND" 1>&2
2145
      $echo "$help"
2146
      exit 1
2147
    fi
2148
 
2149
    # Handle -dlopen flags immediately.
2150
    for file in $execute_dlfiles; do
2151
      if test -f "$file"; then :
2152
      else
2153
        $echo "$modename: \`$file' is not a file" 1>&2
2154
        $echo "$help" 1>&2
2155
        exit 1
2156
      fi
2157
 
2158
      dir=
2159
      case "$file" in
2160
      *.la)
2161
        # Check to see that this really is a libtool archive.
2162
        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2163
        else
2164
          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2165
          $echo "$help" 1>&2
2166
          exit 1
2167
        fi
2168
 
2169
        # Read the libtool library.
2170
        dlname=
2171
        library_names=
2172
 
2173
        # If there is no directory component, then add one.
2174
        case "$file" in
2175
        */* | *\\*) . $file ;;
2176
        *) . ./$file ;;
2177
        esac
2178
 
2179
        # Skip this library if it cannot be dlopened.
2180
        if test -z "$dlname"; then
2181
          # Warn if it was a shared library.
2182
          test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
2183
          continue
2184
        fi
2185
 
2186
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2187
        test "X$dir" = "X$file" && dir=.
2188
 
2189
        if test -f "$dir/$objdir/$dlname"; then
2190
          dir="$dir/$objdir"
2191
        else
2192
          $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
2193
          exit 1
2194
        fi
2195
        ;;
2196
 
2197
      *.lo)
2198
        # Just add the directory containing the .lo file.
2199
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2200
        test "X$dir" = "X$file" && dir=.
2201
        ;;
2202
 
2203
      *)
2204
        $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
2205
        continue
2206
        ;;
2207
      esac
2208
 
2209
      # Get the absolute pathname.
2210
      absdir=`cd "$dir" && pwd`
2211
      test -n "$absdir" && dir="$absdir"
2212
 
2213
      # Now add the directory to shlibpath_var.
2214
      if eval "test -z \"\$$shlibpath_var\""; then
2215
        eval "$shlibpath_var=\"\$dir\""
2216
      else
2217
        eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
2218
      fi
2219
    done
2220
 
2221
    # This variable tells wrapper scripts just to set shlibpath_var
2222
    # rather than running their programs.
2223
    libtool_execute_magic="$magic"
2224
 
2225
    # Check if any of the arguments is a wrapper script.
2226
    args=
2227
    for file
2228
    do
2229
      case "$file" in
2230
      -*) ;;
2231
      *)
2232
        # Do a test to see if this is really a libtool program.
2233
        if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2234
          # If there is no directory component, then add one.
2235
          case "$file" in
2236
          */* | *\\*) . $file ;;
2237
          *) . ./$file ;;
2238
          esac
2239
 
2240
          # Transform arg to wrapped name.
2241
          file="$progdir/$program"
2242
        fi
2243
        ;;
2244
      esac
2245
      # Quote arguments (to preserve shell metacharacters).
2246
      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
2247
      args="$args \"$file\""
2248
    done
2249
 
2250
    if test -z "$run"; then
2251
      # Export the shlibpath_var.
2252
      eval "export $shlibpath_var"
2253
 
2254
      # Now actually exec the command.
2255
      eval "exec \$cmd$args"
2256
 
2257
      $echo "$modename: cannot exec \$cmd$args"
2258
      exit 1
2259
    else
2260
      # Display what would be done.
2261
      eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
2262
      $echo "export $shlibpath_var"
2263
      $echo "$cmd$args"
2264
      exit 0
2265
    fi
2266
    ;;
2267
 
2268
  # libtool uninstall mode
2269
  uninstall)
2270
    modename="$modename: uninstall"
2271
    rm="$nonopt"
2272
    files=
2273
 
2274
    for arg
2275
    do
2276
      case "$arg" in
2277
      -*) rm="$rm $arg" ;;
2278
      *) files="$files $arg" ;;
2279
      esac
2280
    done
2281
 
2282
    if test -z "$rm"; then
2283
      $echo "$modename: you must specify an RM program" 1>&2
2284
      $echo "$help" 1>&2
2285
      exit 1
2286
    fi
2287
 
2288
    for file in $files; do
2289
      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
2290
      test "X$dir" = "X$file" && dir=.
2291
      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
2292
 
2293
      rmfiles="$file"
2294
 
2295
      case "$name" in
2296
      *.la)
2297
        # Possibly a libtool archive, so verify it.
2298
        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2299
          . $dir/$name
2300
 
2301
          # Delete the libtool libraries and symlinks.
2302
          for n in $library_names; do
2303
            rmfiles="$rmfiles $dir/$n"
2304
            test "X$n" = "X$dlname" && dlname=
2305
          done
2306
          test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
2307
          test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
2308
 
2309
          $show "$rm $rmfiles"
2310
          $run $rm $rmfiles
2311
 
2312
          if test -n "$library_names"; then
2313
            # Do each command in the postuninstall commands.
2314
            eval cmds=\"$postuninstall_cmds\"
2315
            IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
2316
            for cmd in $cmds; do
2317
              IFS="$save_ifs"
2318
              $show "$cmd"
2319
              $run eval "$cmd"
2320
            done
2321
            IFS="$save_ifs"
2322
          fi
2323
 
2324
          if test -n "$old_library"; then
2325
            # Do each command in the old_postuninstall commands.
2326
            eval cmds=\"$old_postuninstall_cmds\"
2327
            IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
2328
            for cmd in $cmds; do
2329
              IFS="$save_ifs"
2330
              $show "$cmd"
2331
              $run eval "$cmd"
2332
            done
2333
            IFS="$save_ifs"
2334
          fi
2335
 
2336
          # FIXME: should reinstall the best remaining shared library.
2337
        fi
2338
        ;;
2339
 
2340
      *.lo)
2341
        if test "$build_old_libs" = yes; then
2342
          oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
2343
          rmfiles="$rmfiles $dir/$oldobj"
2344
        fi
2345
        $show "$rm $rmfiles"
2346
        $run $rm $rmfiles
2347
        ;;
2348
 
2349
      *)
2350
        $show "$rm $rmfiles"
2351
        $run $rm $rmfiles
2352
        ;;
2353
      esac
2354
    done
2355
    exit 0
2356
    ;;
2357
 
2358
  "")
2359
    $echo "$modename: you must specify a MODE" 1>&2
2360
    $echo "$generic_help" 1>&2
2361
    exit 1
2362
    ;;
2363
  esac
2364
 
2365
  $echo "$modename: invalid operation mode \`$mode'" 1>&2
2366
  $echo "$generic_help" 1>&2
2367
  exit 1
2368
fi # test -z "$show_help"
2369
 
2370
# We need to display help for each of the modes.
2371
case "$mode" in
2372
"") $echo \
2373
"Usage: $modename [OPTION]... [MODE-ARG]...
2374
 
2375
Provide generalized library-building support services.
2376
 
2377
    --config          show all configuration variables
2378
    --debug           enable verbose shell tracing
2379
-n, --dry-run         display commands without modifying any files
2380
    --features        display basic configuration information and exit
2381
    --finish          same as \`--mode=finish'
2382
    --help            display this help message and exit
2383
    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
2384
    --quiet           same as \`--silent'
2385
    --silent          don't print informational messages
2386
    --version         print version information
2387
 
2388
MODE must be one of the following:
2389
 
2390
      compile         compile a source file into a libtool object
2391
      execute         automatically set library path, then run a program
2392
      finish          complete the installation of libtool libraries
2393
      install         install libraries or executables
2394
      link            create a library or an executable
2395
      uninstall       remove libraries from an installed directory
2396
 
2397
MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
2398
a more detailed description of MODE."
2399
  exit 0
2400
  ;;
2401
 
2402
compile)
2403
  $echo \
2404
"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
2405
 
2406
Compile a source file into a libtool library object.
2407
 
2408
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
2409
from the given SOURCEFILE.
2410
 
2411
The output file name is determined by removing the directory component from
2412
SOURCEFILE, then substituting the C source code suffix \`.c' with the
2413
library object suffix, \`.lo'."
2414
  ;;
2415
 
2416
execute)
2417
  $echo \
2418
"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
2419
 
2420
Automatically set library path, then run a program.
2421
 
2422
This mode accepts the following additional options:
2423
 
2424
  -dlopen FILE      add the directory containing FILE to the library path
2425
 
2426
This mode sets the library path environment variable according to \`-dlopen'
2427
flags.
2428
 
2429
If any of the ARGS are libtool executable wrappers, then they are translated
2430
into their corresponding uninstalled binary, and any of their required library
2431
directories are added to the library path.
2432
 
2433
Then, COMMAND is executed, with ARGS as arguments."
2434
  ;;
2435
 
2436
finish)
2437
  $echo \
2438
"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
2439
 
2440
Complete the installation of libtool libraries.
2441
 
2442
Each LIBDIR is a directory that contains libtool libraries.
2443
 
2444
The commands that this mode executes may require superuser privileges.  Use
2445
the \`--dry-run' option if you just want to see what would be executed."
2446
  ;;
2447
 
2448
install)
2449
  $echo \
2450
"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
2451
 
2452
Install executables or libraries.
2453
 
2454
INSTALL-COMMAND is the installation command.  The first component should be
2455
either the \`install' or \`cp' program.
2456
 
2457
The rest of the components are interpreted as arguments to that command (only
2458
BSD-compatible install options are recognized)."
2459
  ;;
2460
 
2461
link)
2462
  $echo \
2463
"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
2464
 
2465
Link object files or libraries together to form another library, or to
2466
create an executable program.
2467
 
2468
LINK-COMMAND is a command using the C compiler that you would use to create
2469
a program from several object files.
2470
 
2471
The following components of LINK-COMMAND are treated specially:
2472
 
2473
  -all-static       do not do any dynamic linking at all
2474
  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
2475
  -dlpreopen FILE   link in FILE and add its symbols to dld_preloaded_symbols
2476
  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
2477
  -LLIBDIR          search LIBDIR for required installed libraries
2478
  -lNAME            OUTPUT-FILE requires the installed library libNAME
2479
  -no-undefined     declare that a library does not refer to external symbols
2480
  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
2481
  -release RELEASE  specify package release information
2482
  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
2483
  -static           do not do any dynamic linking of libtool libraries
2484
  -version-info CURRENT[:REVISION[:AGE]]
2485
                    specify library version info [each variable defaults to 0]
2486
 
2487
All other options (arguments beginning with \`-') are ignored.
2488
 
2489
Every other argument is treated as a filename.  Files ending in \`.la' are
2490
treated as uninstalled libtool libraries, other files are standard or library
2491
object files.
2492
 
2493
If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only
2494
library objects (\`.lo' files) may be specified, and \`-rpath' is required.
2495
 
2496
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
2497
using \`ar' and \`ranlib', or on WIndows using \`lib'.
2498
 
2499
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
2500
is created, otherwise an executable program is created."
2501
  ;;
2502
 
2503
uninstall)
2504
  $echo
2505
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
2506
 
2507
Remove libraries from an installation directory.
2508
 
2509
RM is the name of the program to use to delete files associated with each FILE
2510
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
2511
to RM.
2512
 
2513
If FILE is a libtool library, all the files associated with it are deleted.
2514
Otherwise, only FILE itself is deleted using RM."
2515
  ;;
2516
 
2517
*)
2518
  $echo "$modename: invalid operation mode \`$mode'" 1>&2
2519
  $echo "$help" 1>&2
2520
  exit 1
2521
  ;;
2522
esac
2523
 
2524
echo
2525
$echo "Try \`$modename --help' for more information about other modes."
2526
 
2527
exit 0
2528
 
2529
# Local Variables:
2530
# mode:shell-script
2531
# sh-indentation:2
2532
# End:

powered by: WebSVN 2.1.0

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