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

Subversion Repositories or1k

[/] [or1k/] [tags/] [first/] [mp3/] [sw/] [mad-xess/] [ltmain.sh] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 266 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-1999 Free Software Foundation, Inc.
5
# Originally by 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
# Check that we have a working $echo.
27
if test "X$1" = X--no-reexec; then
28
  # Discard the --no-reexec flag, and continue.
29
  shift
30
elif test "X$1" = X--fallback-echo; then
31
  # Avoid inline document here, it may be left over
32
  :
33
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
34
  # Yippee, $echo works!
35
  :
36
else
37
  # Restart under the correct shell, and then maybe $echo will work.
38
  exec $SHELL "$0" --no-reexec ${1+"$@"}
39
fi
40
 
41
if test "X$1" = X--fallback-echo; then
42
  # used as fallback echo
43
  shift
44
  cat <<EOF
45
$*
46
EOF
47
  exit 0
48
fi
49
 
50
# The name of this program.
51
progname=`$echo "$0" | sed 's%^.*/%%'`
52
modename="$progname"
53
 
54
# Constants.
55
PROGRAM=ltmain.sh
56
PACKAGE=libtool
57
VERSION=1.3.5
58
TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
59
 
60
default_mode=
61
help="Try \`$progname --help' for more information."
62
magic="%%%MAGIC variable%%%"
63
mkdir="mkdir"
64
mv="mv -f"
65
rm="rm -f"
66
 
67
# Sed substitution that helps us do robust quoting.  It backslashifies
68
# metacharacters that are still active within double-quoted strings.
69
Xsed='sed -e 1s/^X//'
70
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
71
SP2NL='tr \040 \012'
72
NL2SP='tr \015\012 \040\040'
73
 
74
# NLS nuisances.
75
# Only set LANG and LC_ALL to C if already set.
76
# These must not be set unconditionally because not all systems understand
77
# e.g. LANG=C (notably SCO).
78
# We save the old values to restore during execute mode.
79
if test "${LC_ALL+set}" = set; then
80
  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
81
fi
82
if test "${LANG+set}" = set; then
83
  save_LANG="$LANG"; LANG=C; export LANG
84
fi
85
 
86
if test "$LTCONFIG_VERSION" != "$VERSION"; then
87
  echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
88
  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
89
  exit 1
90
fi
91
 
92
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
93
  echo "$modename: not configured to build any kind of library" 1>&2
94
  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
95
  exit 1
96
fi
97
 
98
# Global variables.
99
mode=$default_mode
100
nonopt=
101
prev=
102
prevopt=
103
run=
104
show="$echo"
105
show_help=
106
execute_dlfiles=
107
lo2o="s/\\.lo\$/.${objext}/"
108
o2lo="s/\\.${objext}\$/.lo/"
109
 
110
# Parse our command line options once, thoroughly.
111
while test $# -gt 0
112
do
113
  arg="$1"
114
  shift
115
 
116
  case "$arg" in
117
  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
118
  *) optarg= ;;
119
  esac
120
 
121
  # If the previous option needs an argument, assign it.
122
  if test -n "$prev"; then
123
    case "$prev" in
124
    execute_dlfiles)
125
      eval "$prev=\"\$$prev \$arg\""
126
      ;;
127
    *)
128
      eval "$prev=\$arg"
129
      ;;
130
    esac
131
 
132
    prev=
133
    prevopt=
134
    continue
135
  fi
136
 
137
  # Have we seen a non-optional argument yet?
138
  case "$arg" in
139
  --help)
140
    show_help=yes
141
    ;;
142
 
143
  --version)
144
    echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
145
    exit 0
146
    ;;
147
 
148
  --config)
149
    sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
150
    exit 0
151
    ;;
152
 
153
  --debug)
154
    echo "$progname: enabling shell trace mode"
155
    set -x
156
    ;;
157
 
158
  --dry-run | -n)
159
    run=:
160
    ;;
161
 
162
  --features)
163
    echo "host: $host"
164
    if test "$build_libtool_libs" = yes; then
165
      echo "enable shared libraries"
166
    else
167
      echo "disable shared libraries"
168
    fi
169
    if test "$build_old_libs" = yes; then
170
      echo "enable static libraries"
171
    else
172
      echo "disable static libraries"
173
    fi
174
    exit 0
175
    ;;
176
 
177
  --finish) mode="finish" ;;
178
 
179
  --mode) prevopt="--mode" prev=mode ;;
180
  --mode=*) mode="$optarg" ;;
181
 
182
  --quiet | --silent)
183
    show=:
184
    ;;
185
 
186
  -dlopen)
187
    prevopt="-dlopen"
188
    prev=execute_dlfiles
189
    ;;
190
 
191
  -*)
192
    $echo "$modename: unrecognized option \`$arg'" 1>&2
193
    $echo "$help" 1>&2
194
    exit 1
195
    ;;
196
 
197
  *)
198
    nonopt="$arg"
199
    break
200
    ;;
201
  esac
202
done
203
 
204
if test -n "$prevopt"; then
205
  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
206
  $echo "$help" 1>&2
207
  exit 1
208
fi
209
 
210
if test -z "$show_help"; then
211
 
212
  # Infer the operation mode.
213
  if test -z "$mode"; then
214
    case "$nonopt" in
215
    *cc | *++ | gcc* | *-gcc*)
216
      mode=link
217
      for arg
218
      do
219
        case "$arg" in
220
        -c)
221
           mode=compile
222
           break
223
           ;;
224
        esac
225
      done
226
      ;;
227
    *db | *dbx | *strace | *truss)
228
      mode=execute
229
      ;;
230
    *install*|cp|mv)
231
      mode=install
232
      ;;
233
    *rm)
234
      mode=uninstall
235
      ;;
236
    *)
237
      # If we have no mode, but dlfiles were specified, then do execute mode.
238
      test -n "$execute_dlfiles" && mode=execute
239
 
240
      # Just use the default operation mode.
241
      if test -z "$mode"; then
242
        if test -n "$nonopt"; then
243
          $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
244
        else
245
          $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
246
        fi
247
      fi
248
      ;;
249
    esac
250
  fi
251
 
252
  # Only execute mode is allowed to have -dlopen flags.
253
  if test -n "$execute_dlfiles" && test "$mode" != execute; then
254
    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
255
    $echo "$help" 1>&2
256
    exit 1
257
  fi
258
 
259
  # Change the help message to a mode-specific one.
260
  generic_help="$help"
261
  help="Try \`$modename --help --mode=$mode' for more information."
262
 
263
  # These modes are in order of execution frequency so that they run quickly.
264
  case "$mode" in
265
  # libtool compile mode
266
  compile)
267
    modename="$modename: compile"
268
    # Get the compilation command and the source file.
269
    base_compile=
270
    lastarg=
271
    srcfile="$nonopt"
272
    suppress_output=
273
 
274
    user_target=no
275
    for arg
276
    do
277
      # Accept any command-line options.
278
      case "$arg" in
279
      -o)
280
        if test "$user_target" != "no"; then
281
          $echo "$modename: you cannot specify \`-o' more than once" 1>&2
282
          exit 1
283
        fi
284
        user_target=next
285
        ;;
286
 
287
      -static)
288
        build_old_libs=yes
289
        continue
290
        ;;
291
      esac
292
 
293
      case "$user_target" in
294
      next)
295
        # The next one is the -o target name
296
        user_target=yes
297
        continue
298
        ;;
299
      yes)
300
        # We got the output file
301
        user_target=set
302
        libobj="$arg"
303
        continue
304
        ;;
305
      esac
306
 
307
      # Accept the current argument as the source file.
308
      lastarg="$srcfile"
309
      srcfile="$arg"
310
 
311
      # Aesthetically quote the previous argument.
312
 
313
      # Backslashify any backslashes, double quotes, and dollar signs.
314
      # These are the only characters that are still specially
315
      # interpreted inside of double-quoted scrings.
316
      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
317
 
318
      # Double-quote args containing other shell metacharacters.
319
      # Many Bourne shells cannot handle close brackets correctly in scan
320
      # sets, so we specify it separately.
321
      case "$lastarg" in
322
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
323
        lastarg="\"$lastarg\""
324
        ;;
325
      esac
326
 
327
      # Add the previous argument to base_compile.
328
      if test -z "$base_compile"; then
329
        base_compile="$lastarg"
330
      else
331
        base_compile="$base_compile $lastarg"
332
      fi
333
    done
334
 
335
    case "$user_target" in
336
    set)
337
      ;;
338
    no)
339
      # Get the name of the library object.
340
      libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
341
      ;;
342
    *)
343
      $echo "$modename: you must specify a target with \`-o'" 1>&2
344
      exit 1
345
      ;;
346
    esac
347
 
348
    # Recognize several different file suffixes.
349
    # If the user specifies -o file.o, it is replaced with file.lo
350
    xform='[cCFSfmso]'
351
    case "$libobj" in
352
    *.ada) xform=ada ;;
353
    *.adb) xform=adb ;;
354
    *.ads) xform=ads ;;
355
    *.asm) xform=asm ;;
356
    *.c++) xform=c++ ;;
357
    *.cc) xform=cc ;;
358
    *.cpp) xform=cpp ;;
359
    *.cxx) xform=cxx ;;
360
    *.f90) xform=f90 ;;
361
    *.for) xform=for ;;
362
    esac
363
 
364
    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
365
 
366
    case "$libobj" in
367
    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
368
    *)
369
      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
370
      exit 1
371
      ;;
372
    esac
373
 
374
    if test -z "$base_compile"; then
375
      $echo "$modename: you must specify a compilation command" 1>&2
376
      $echo "$help" 1>&2
377
      exit 1
378
    fi
379
 
380
    # Delete any leftover library objects.
381
    if test "$build_old_libs" = yes; then
382
      removelist="$obj $libobj"
383
    else
384
      removelist="$libobj"
385
    fi
386
 
387
    $run $rm $removelist
388
    trap "$run $rm $removelist; exit 1" 1 2 15
389
 
390
    # Calculate the filename of the output object if compiler does
391
    # not support -o with -c
392
    if test "$compiler_c_o" = no; then
393
      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
394
      lockfile="$output_obj.lock"
395
      removelist="$removelist $output_obj $lockfile"
396
      trap "$run $rm $removelist; exit 1" 1 2 15
397
    else
398
      need_locks=no
399
      lockfile=
400
    fi
401
 
402
    # Lock this critical section if it is needed
403
    # We use this script file to make the link, it avoids creating a new file
404
    if test "$need_locks" = yes; then
405
      until ln "$0" "$lockfile" 2>/dev/null; do
406
        $show "Waiting for $lockfile to be removed"
407
        sleep 2
408
      done
409
    elif test "$need_locks" = warn; then
410
      if test -f "$lockfile"; then
411
        echo "\
412
*** ERROR, $lockfile exists and contains:
413
`cat $lockfile 2>/dev/null`
414
 
415
This indicates that another process is trying to use the same
416
temporary object file, and libtool could not work around it because
417
your compiler does not support \`-c' and \`-o' together.  If you
418
repeat this compilation, it may succeed, by chance, but you had better
419
avoid parallel builds (make -j) in this platform, or get a better
420
compiler."
421
 
422
        $run $rm $removelist
423
        exit 1
424
      fi
425
      echo $srcfile > "$lockfile"
426
    fi
427
 
428
    if test -n "$fix_srcfile_path"; then
429
      eval srcfile=\"$fix_srcfile_path\"
430
    fi
431
 
432
    # Only build a PIC object if we are building libtool libraries.
433
    if test "$build_libtool_libs" = yes; then
434
      # Without this assignment, base_compile gets emptied.
435
      fbsd_hideous_sh_bug=$base_compile
436
 
437
      # All platforms use -DPIC, to notify preprocessed assembler code.
438
      command="$base_compile $srcfile $pic_flag -DPIC"
439
      if test "$build_old_libs" = yes; then
440
        lo_libobj="$libobj"
441
        dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
442
        if test "X$dir" = "X$libobj"; then
443
          dir="$objdir"
444
        else
445
          dir="$dir/$objdir"
446
        fi
447
        libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
448
 
449
        if test -d "$dir"; then
450
          $show "$rm $libobj"
451
          $run $rm $libobj
452
        else
453
          $show "$mkdir $dir"
454
          $run $mkdir $dir
455
          status=$?
456
          if test $status -ne 0 && test ! -d $dir; then
457
            exit $status
458
          fi
459
        fi
460
      fi
461
      if test "$compiler_o_lo" = yes; then
462
        output_obj="$libobj"
463
        command="$command -o $output_obj"
464
      elif test "$compiler_c_o" = yes; then
465
        output_obj="$obj"
466
        command="$command -o $output_obj"
467
      fi
468
 
469
      $run $rm "$output_obj"
470
      $show "$command"
471
      if $run eval "$command"; then :
472
      else
473
        test -n "$output_obj" && $run $rm $removelist
474
        exit 1
475
      fi
476
 
477
      if test "$need_locks" = warn &&
478
         test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
479
        echo "\
480
*** ERROR, $lockfile contains:
481
`cat $lockfile 2>/dev/null`
482
 
483
but it should contain:
484
$srcfile
485
 
486
This indicates that another process is trying to use the same
487
temporary object file, and libtool could not work around it because
488
your compiler does not support \`-c' and \`-o' together.  If you
489
repeat this compilation, it may succeed, by chance, but you had better
490
avoid parallel builds (make -j) in this platform, or get a better
491
compiler."
492
 
493
        $run $rm $removelist
494
        exit 1
495
      fi
496
 
497
      # Just move the object if needed, then go on to compile the next one
498
      if test x"$output_obj" != x"$libobj"; then
499
        $show "$mv $output_obj $libobj"
500
        if $run $mv $output_obj $libobj; then :
501
        else
502
          error=$?
503
          $run $rm $removelist
504
          exit $error
505
        fi
506
      fi
507
 
508
      # If we have no pic_flag, then copy the object into place and finish.
509
      if test -z "$pic_flag" && test "$build_old_libs" = yes; then
510
        # Rename the .lo from within objdir to obj
511
        if test -f $obj; then
512
          $show $rm $obj
513
          $run $rm $obj
514
        fi
515
 
516
        $show "$mv $libobj $obj"
517
        if $run $mv $libobj $obj; then :
518
        else
519
          error=$?
520
          $run $rm $removelist
521
          exit $error
522
        fi
523
 
524
        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
525
        if test "X$xdir" = "X$obj"; then
526
          xdir="."
527
        else
528
          xdir="$xdir"
529
        fi
530
        baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
531
        libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
532
        # Now arrange that obj and lo_libobj become the same file
533
        $show "(cd $xdir && $LN_S $baseobj $libobj)"
534
        if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
535
          exit 0
536
        else
537
          error=$?
538
          $run $rm $removelist
539
          exit $error
540
        fi
541
      fi
542
 
543
      # Allow error messages only from the first compilation.
544
      suppress_output=' >/dev/null 2>&1'
545
    fi
546
 
547
    # Only build a position-dependent object if we build old libraries.
548
    if test "$build_old_libs" = yes; then
549
      command="$base_compile $srcfile"
550
      if test "$compiler_c_o" = yes; then
551
        command="$command -o $obj"
552
        output_obj="$obj"
553
      fi
554
 
555
      # Suppress compiler output if we already did a PIC compilation.
556
      command="$command$suppress_output"
557
      $run $rm "$output_obj"
558
      $show "$command"
559
      if $run eval "$command"; then :
560
      else
561
        $run $rm $removelist
562
        exit 1
563
      fi
564
 
565
      if test "$need_locks" = warn &&
566
         test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
567
        echo "\
568
*** ERROR, $lockfile contains:
569
`cat $lockfile 2>/dev/null`
570
 
571
but it should contain:
572
$srcfile
573
 
574
This indicates that another process is trying to use the same
575
temporary object file, and libtool could not work around it because
576
your compiler does not support \`-c' and \`-o' together.  If you
577
repeat this compilation, it may succeed, by chance, but you had better
578
avoid parallel builds (make -j) in this platform, or get a better
579
compiler."
580
 
581
        $run $rm $removelist
582
        exit 1
583
      fi
584
 
585
      # Just move the object if needed
586
      if test x"$output_obj" != x"$obj"; then
587
        $show "$mv $output_obj $obj"
588
        if $run $mv $output_obj $obj; then :
589
        else
590
          error=$?
591
          $run $rm $removelist
592
          exit $error
593
        fi
594
      fi
595
 
596
      # Create an invalid libtool object if no PIC, so that we do not
597
      # accidentally link it into a program.
598
      if test "$build_libtool_libs" != yes; then
599
        $show "echo timestamp > $libobj"
600
        $run eval "echo timestamp > \$libobj" || exit $?
601
      else
602
        # Move the .lo from within objdir
603
        $show "$mv $libobj $lo_libobj"
604
        if $run $mv $libobj $lo_libobj; then :
605
        else
606
          error=$?
607
          $run $rm $removelist
608
          exit $error
609
        fi
610
      fi
611
    fi
612
 
613
    # Unlock the critical section if it was locked
614
    if test "$need_locks" != no; then
615
      $rm "$lockfile"
616
    fi
617
 
618
    exit 0
619
    ;;
620
 
621
  # libtool link mode
622
  link)
623
    modename="$modename: link"
624
    case "$host" in
625
    *-*-cygwin* | *-*-mingw* | *-*-os2*)
626
      # It is impossible to link a dll without this setting, and
627
      # we shouldn't force the makefile maintainer to figure out
628
      # which system we are compiling for in order to pass an extra
629
      # flag for every libtool invokation.
630
      # allow_undefined=no
631
 
632
      # FIXME: Unfortunately, there are problems with the above when trying
633
      # to make a dll which has undefined symbols, in which case not
634
      # even a static library is built.  For now, we need to specify
635
      # -no-undefined on the libtool link line when we can be certain
636
      # that all symbols are satisfied, otherwise we get a static library.
637
      allow_undefined=yes
638
 
639
      # This is a source program that is used to create dlls on Windows
640
      # Don't remove nor modify the starting and closing comments
641
# /* ltdll.c starts here */
642
# #define WIN32_LEAN_AND_MEAN
643
# #include <windows.h>
644
# #undef WIN32_LEAN_AND_MEAN
645
# #include <stdio.h>
646
#
647
# #ifndef __CYGWIN__
648
# #  ifdef __CYGWIN32__
649
# #    define __CYGWIN__ __CYGWIN32__
650
# #  endif
651
# #endif
652
#
653
# #ifdef __cplusplus
654
# extern "C" {
655
# #endif
656
# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
657
# #ifdef __cplusplus
658
# }
659
# #endif
660
#
661
# #ifdef __CYGWIN__
662
# #include <cygwin/cygwin_dll.h>
663
# DECLARE_CYGWIN_DLL( DllMain );
664
# #endif
665
# HINSTANCE __hDllInstance_base;
666
#
667
# BOOL APIENTRY
668
# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
669
# {
670
#   __hDllInstance_base = hInst;
671
#   return TRUE;
672
# }
673
# /* ltdll.c ends here */
674
      # This is a source program that is used to create import libraries
675
      # on Windows for dlls which lack them. Don't remove nor modify the
676
      # starting and closing comments
677
# /* impgen.c starts here */
678
# /*   Copyright (C) 1999 Free Software Foundation, Inc.
679
#
680
#  This file is part of GNU libtool.
681
#
682
#  This program is free software; you can redistribute it and/or modify
683
#  it under the terms of the GNU General Public License as published by
684
#  the Free Software Foundation; either version 2 of the License, or
685
#  (at your option) any later version.
686
#
687
#  This program is distributed in the hope that it will be useful,
688
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
689
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
690
#  GNU General Public License for more details.
691
#
692
#  You should have received a copy of the GNU General Public License
693
#  along with this program; if not, write to the Free Software
694
#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
695
#  */
696
#
697
#  #include <stdio.h>           /* for printf() */
698
#  #include <unistd.h>          /* for open(), lseek(), read() */
699
#  #include <fcntl.h>           /* for O_RDONLY, O_BINARY */
700
#  #include <string.h>          /* for strdup() */
701
#
702
#  static unsigned int
703
#  pe_get16 (fd, offset)
704
#       int fd;
705
#       int offset;
706
#  {
707
#    unsigned char b[2];
708
#    lseek (fd, offset, SEEK_SET);
709
#    read (fd, b, 2);
710
#    return b[0] + (b[1]<<8);
711
#  }
712
#
713
#  static unsigned int
714
#  pe_get32 (fd, offset)
715
#      int fd;
716
#      int offset;
717
#  {
718
#    unsigned char b[4];
719
#    lseek (fd, offset, SEEK_SET);
720
#    read (fd, b, 4);
721
#    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
722
#  }
723
#
724
#  static unsigned int
725
#  pe_as32 (ptr)
726
#       void *ptr;
727
#  {
728
#    unsigned char *b = ptr;
729
#    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
730
#  }
731
#
732
#  int
733
#  main (argc, argv)
734
#      int argc;
735
#      char *argv[];
736
#  {
737
#      int dll;
738
#      unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
739
#      unsigned long export_rva, export_size, nsections, secptr, expptr;
740
#      unsigned long name_rvas, nexp;
741
#      unsigned char *expdata, *erva;
742
#      char *filename, *dll_name;
743
#
744
#      filename = argv[1];
745
#
746
#      dll = open(filename, O_RDONLY|O_BINARY);
747
#      if (!dll)
748
#       return 1;
749
#
750
#      dll_name = filename;
751
#
752
#      for (i=0; filename[i]; i++)
753
#       if (filename[i] == '/' || filename[i] == '\\'  || filename[i] == ':')
754
#           dll_name = filename + i +1;
755
#
756
#      pe_header_offset = pe_get32 (dll, 0x3c);
757
#      opthdr_ofs = pe_header_offset + 4 + 20;
758
#      num_entries = pe_get32 (dll, opthdr_ofs + 92);
759
#
760
#      if (num_entries < 1) /* no exports */
761
#       return 1;
762
#
763
#      export_rva = pe_get32 (dll, opthdr_ofs + 96);
764
#      export_size = pe_get32 (dll, opthdr_ofs + 100);
765
#      nsections = pe_get16 (dll, pe_header_offset + 4 +2);
766
#      secptr = (pe_header_offset + 4 + 20 +
767
#             pe_get16 (dll, pe_header_offset + 4 + 16));
768
#
769
#      expptr = 0;
770
#      for (i = 0; i < nsections; i++)
771
#      {
772
#       char sname[8];
773
#       unsigned long secptr1 = secptr + 40 * i;
774
#       unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
775
#       unsigned long vsize = pe_get32 (dll, secptr1 + 16);
776
#       unsigned long fptr = pe_get32 (dll, secptr1 + 20);
777
#       lseek(dll, secptr1, SEEK_SET);
778
#       read(dll, sname, 8);
779
#       if (vaddr <= export_rva && vaddr+vsize > export_rva)
780
#       {
781
#           expptr = fptr + (export_rva - vaddr);
782
#           if (export_rva + export_size > vaddr + vsize)
783
#               export_size = vsize - (export_rva - vaddr);
784
#           break;
785
#       }
786
#      }
787
#
788
#      expdata = (unsigned char*)malloc(export_size);
789
#      lseek (dll, expptr, SEEK_SET);
790
#      read (dll, expdata, export_size);
791
#      erva = expdata - export_rva;
792
#
793
#      nexp = pe_as32 (expdata+24);
794
#      name_rvas = pe_as32 (expdata+32);
795
#
796
#      printf ("EXPORTS\n");
797
#      for (i = 0; i<nexp; i++)
798
#      {
799
#       unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
800
#       printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
801
#      }
802
#
803
#      return 0;
804
#  }
805
# /* impgen.c ends here */
806
      ;;
807
    *)
808
      allow_undefined=yes
809
      ;;
810
    esac
811
    compile_command="$nonopt"
812
    finalize_command="$nonopt"
813
 
814
    compile_rpath=
815
    finalize_rpath=
816
    compile_shlibpath=
817
    finalize_shlibpath=
818
    convenience=
819
    old_convenience=
820
    deplibs=
821
    linkopts=
822
 
823
    if test -n "$shlibpath_var"; then
824
      # get the directories listed in $shlibpath_var
825
      eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
826
    else
827
      lib_search_path=
828
    fi
829
    # now prepend the system-specific ones
830
    eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
831
    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
832
 
833
    avoid_version=no
834
    dlfiles=
835
    dlprefiles=
836
    dlself=no
837
    export_dynamic=no
838
    export_symbols=
839
    export_symbols_regex=
840
    generated=
841
    libobjs=
842
    link_against_libtool_libs=
843
    ltlibs=
844
    module=no
845
    objs=
846
    prefer_static_libs=no
847
    preload=no
848
    prev=
849
    prevarg=
850
    release=
851
    rpath=
852
    xrpath=
853
    perm_rpath=
854
    temp_rpath=
855
    thread_safe=no
856
    vinfo=
857
 
858
    # We need to know -static, to get the right output filenames.
859
    for arg
860
    do
861
      case "$arg" in
862
      -all-static | -static)
863
        if test "X$arg" = "X-all-static"; then
864
          if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
865
            $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
866
          fi
867
          if test -n "$link_static_flag"; then
868
            dlopen_self=$dlopen_self_static
869
          fi
870
        else
871
          if test -z "$pic_flag" && test -n "$link_static_flag"; then
872
            dlopen_self=$dlopen_self_static
873
          fi
874
        fi
875
        build_libtool_libs=no
876
        build_old_libs=yes
877
        prefer_static_libs=yes
878
        break
879
        ;;
880
      esac
881
    done
882
 
883
    # See if our shared archives depend on static archives.
884
    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
885
 
886
    # Go through the arguments, transforming them on the way.
887
    while test $# -gt 0; do
888
      arg="$1"
889
      shift
890
 
891
      # If the previous option needs an argument, assign it.
892
      if test -n "$prev"; then
893
        case "$prev" in
894
        output)
895
          compile_command="$compile_command @OUTPUT@"
896
          finalize_command="$finalize_command @OUTPUT@"
897
          ;;
898
        esac
899
 
900
        case "$prev" in
901
        dlfiles|dlprefiles)
902
          if test "$preload" = no; then
903
            # Add the symbol object into the linking commands.
904
            compile_command="$compile_command @SYMFILE@"
905
            finalize_command="$finalize_command @SYMFILE@"
906
            preload=yes
907
          fi
908
          case "$arg" in
909
          *.la | *.lo) ;;  # We handle these cases below.
910
          force)
911
            if test "$dlself" = no; then
912
              dlself=needless
913
              export_dynamic=yes
914
            fi
915
            prev=
916
            continue
917
            ;;
918
          self)
919
            if test "$prev" = dlprefiles; then
920
              dlself=yes
921
            elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
922
              dlself=yes
923
            else
924
              dlself=needless
925
              export_dynamic=yes
926
            fi
927
            prev=
928
            continue
929
            ;;
930
          *)
931
            if test "$prev" = dlfiles; then
932
              dlfiles="$dlfiles $arg"
933
            else
934
              dlprefiles="$dlprefiles $arg"
935
            fi
936
            prev=
937
            ;;
938
          esac
939
          ;;
940
        expsyms)
941
          export_symbols="$arg"
942
          if test ! -f "$arg"; then
943
            $echo "$modename: symbol file \`$arg' does not exist"
944
            exit 1
945
          fi
946
          prev=
947
          continue
948
          ;;
949
        expsyms_regex)
950
          export_symbols_regex="$arg"
951
          prev=
952
          continue
953
          ;;
954
        release)
955
          release="-$arg"
956
          prev=
957
          continue
958
          ;;
959
        rpath | xrpath)
960
          # We need an absolute path.
961
          case "$arg" in
962
          [\\/]* | [A-Za-z]:[\\/]*) ;;
963
          *)
964
            $echo "$modename: only absolute run-paths are allowed" 1>&2
965
            exit 1
966
            ;;
967
          esac
968
          if test "$prev" = rpath; then
969
            case "$rpath " in
970
            *" $arg "*) ;;
971
            *) rpath="$rpath $arg" ;;
972
            esac
973
          else
974
            case "$xrpath " in
975
            *" $arg "*) ;;
976
            *) xrpath="$xrpath $arg" ;;
977
            esac
978
          fi
979
          prev=
980
          continue
981
          ;;
982
        *)
983
          eval "$prev=\"\$arg\""
984
          prev=
985
          continue
986
          ;;
987
        esac
988
      fi
989
 
990
      prevarg="$arg"
991
 
992
      case "$arg" in
993
      -all-static)
994
        if test -n "$link_static_flag"; then
995
          compile_command="$compile_command $link_static_flag"
996
          finalize_command="$finalize_command $link_static_flag"
997
        fi
998
        continue
999
        ;;
1000
 
1001
      -allow-undefined)
1002
        # FIXME: remove this flag sometime in the future.
1003
        $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1004
        continue
1005
        ;;
1006
 
1007
      -avoid-version)
1008
        avoid_version=yes
1009
        continue
1010
        ;;
1011
 
1012
      -dlopen)
1013
        prev=dlfiles
1014
        continue
1015
        ;;
1016
 
1017
      -dlpreopen)
1018
        prev=dlprefiles
1019
        continue
1020
        ;;
1021
 
1022
      -export-dynamic)
1023
        export_dynamic=yes
1024
        continue
1025
        ;;
1026
 
1027
      -export-symbols | -export-symbols-regex)
1028
        if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1029
          $echo "$modename: not more than one -exported-symbols argument allowed"
1030
          exit 1
1031
        fi
1032
        if test "X$arg" = "X-export-symbols"; then
1033
          prev=expsyms
1034
        else
1035
          prev=expsyms_regex
1036
        fi
1037
        continue
1038
        ;;
1039
 
1040
      -L*)
1041
        dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1042
        # We need an absolute path.
1043
        case "$dir" in
1044
        [\\/]* | [A-Za-z]:[\\/]*) ;;
1045
        *)
1046
          absdir=`cd "$dir" && pwd`
1047
          if test -z "$absdir"; then
1048
            $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1049
            $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1050
            absdir="$dir"
1051
          fi
1052
          dir="$absdir"
1053
          ;;
1054
        esac
1055
        case " $deplibs " in
1056
        *" $arg "*) ;;
1057
        *) deplibs="$deplibs $arg";;
1058
        esac
1059
        case " $lib_search_path " in
1060
        *" $dir "*) ;;
1061
        *) lib_search_path="$lib_search_path $dir";;
1062
        esac
1063
        case "$host" in
1064
        *-*-cygwin* | *-*-mingw* | *-*-os2*)
1065
          dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1066
          case ":$dllsearchpath:" in
1067
          ::) dllsearchpath="$dllsearchdir";;
1068
          *":$dllsearchdir:"*) ;;
1069
          *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1070
          esac
1071
          ;;
1072
        esac
1073
        ;;
1074
 
1075
      -l*)
1076
        if test "$arg" = "-lc"; then
1077
          case "$host" in
1078
          *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1079
            # These systems don't actually have c library (as such)
1080
            continue
1081
            ;;
1082
          esac
1083
        elif test "$arg" = "-lm"; then
1084
          case "$host" in
1085
          *-*-cygwin* | *-*-beos*)
1086
            # These systems don't actually have math library (as such)
1087
            continue
1088
            ;;
1089
          esac
1090
        fi
1091
        deplibs="$deplibs $arg"
1092
        ;;
1093
 
1094
      -module)
1095
        module=yes
1096
        continue
1097
        ;;
1098
 
1099
      -no-undefined)
1100
        allow_undefined=no
1101
        continue
1102
        ;;
1103
 
1104
      -o) prev=output ;;
1105
 
1106
      -release)
1107
        prev=release
1108
        continue
1109
        ;;
1110
 
1111
      -rpath)
1112
        prev=rpath
1113
        continue
1114
        ;;
1115
 
1116
      -R)
1117
        prev=xrpath
1118
        continue
1119
        ;;
1120
 
1121
      -R*)
1122
        dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1123
        # We need an absolute path.
1124
        case "$dir" in
1125
        [\\/]* | [A-Za-z]:[\\/]*) ;;
1126
        *)
1127
          $echo "$modename: only absolute run-paths are allowed" 1>&2
1128
          exit 1
1129
          ;;
1130
        esac
1131
        case "$xrpath " in
1132
        *" $dir "*) ;;
1133
        *) xrpath="$xrpath $dir" ;;
1134
        esac
1135
        continue
1136
        ;;
1137
 
1138
      -static)
1139
        # If we have no pic_flag, then this is the same as -all-static.
1140
        if test -z "$pic_flag" && test -n "$link_static_flag"; then
1141
          compile_command="$compile_command $link_static_flag"
1142
          finalize_command="$finalize_command $link_static_flag"
1143
        fi
1144
        continue
1145
        ;;
1146
 
1147
      -thread-safe)
1148
        thread_safe=yes
1149
        continue
1150
        ;;
1151
 
1152
      -version-info)
1153
        prev=vinfo
1154
        continue
1155
        ;;
1156
 
1157
      # Some other compiler flag.
1158
      -* | +*)
1159
        # Unknown arguments in both finalize_command and compile_command need
1160
        # to be aesthetically quoted because they are evaled later.
1161
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1162
        case "$arg" in
1163
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
1164
          arg="\"$arg\""
1165
          ;;
1166
        esac
1167
        ;;
1168
 
1169
      *.o | *.obj | *.a | *.lib)
1170
        # A standard object.
1171
        objs="$objs $arg"
1172
        ;;
1173
 
1174
      *.lo)
1175
        # A library object.
1176
        if test "$prev" = dlfiles; then
1177
          dlfiles="$dlfiles $arg"
1178
          if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1179
            prev=
1180
            continue
1181
          else
1182
            # If libtool objects are unsupported, then we need to preload.
1183
            prev=dlprefiles
1184
          fi
1185
        fi
1186
 
1187
        if test "$prev" = dlprefiles; then
1188
          # Preload the old-style object.
1189
          dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1190
          prev=
1191
        fi
1192
        libobjs="$libobjs $arg"
1193
        ;;
1194
 
1195
      *.la)
1196
        # A libtool-controlled library.
1197
 
1198
        dlname=
1199
        libdir=
1200
        library_names=
1201
        old_library=
1202
 
1203
        # Check to see that this really is a libtool archive.
1204
        if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1205
        else
1206
          $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1207
          exit 1
1208
        fi
1209
 
1210
        # If the library was installed with an old release of libtool,
1211
        # it will not redefine variable installed.
1212
        installed=yes
1213
 
1214
        # Read the .la file
1215
        # If there is no directory component, then add one.
1216
        case "$arg" in
1217
        */* | *\\*) . $arg ;;
1218
        *) . ./$arg ;;
1219
        esac
1220
 
1221
        # Get the name of the library we link against.
1222
        linklib=
1223
        for l in $old_library $library_names; do
1224
          linklib="$l"
1225
        done
1226
 
1227
        if test -z "$linklib"; then
1228
          $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1229
          exit 1
1230
        fi
1231
 
1232
        # Find the relevant object directory and library name.
1233
        name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1234
 
1235
        if test "X$installed" = Xyes; then
1236
          dir="$libdir"
1237
        else
1238
          dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1239
          if test "X$dir" = "X$arg"; then
1240
            dir="$objdir"
1241
          else
1242
            dir="$dir/$objdir"
1243
          fi
1244
        fi
1245
 
1246
        if test -n "$dependency_libs"; then
1247
          # Extract -R and -L from dependency_libs
1248
          temp_deplibs=
1249
          for deplib in $dependency_libs; do
1250
            case "$deplib" in
1251
            -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1252
                 case " $rpath $xrpath " in
1253
                 *" $temp_xrpath "*) ;;
1254
                 *) xrpath="$xrpath $temp_xrpath";;
1255
                 esac;;
1256
            -L*) case "$compile_command $temp_deplibs " in
1257
                 *" $deplib "*) ;;
1258
                 *) temp_deplibs="$temp_deplibs $deplib";;
1259
                 esac
1260
                 temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1261
                 case " $lib_search_path " in
1262
                 *" $temp_dir "*) ;;
1263
                 *) lib_search_path="$lib_search_path $temp_dir";;
1264
                 esac
1265
                 ;;
1266
            *) temp_deplibs="$temp_deplibs $deplib";;
1267
            esac
1268
          done
1269
          dependency_libs="$temp_deplibs"
1270
        fi
1271
 
1272
        if test -z "$libdir"; then
1273
          # It is a libtool convenience library, so add in its objects.
1274
          convenience="$convenience $dir/$old_library"
1275
          old_convenience="$old_convenience $dir/$old_library"
1276
          deplibs="$deplibs$dependency_libs"
1277
          compile_command="$compile_command $dir/$old_library$dependency_libs"
1278
          finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1279
          continue
1280
        fi
1281
 
1282
        # This library was specified with -dlopen.
1283
        if test "$prev" = dlfiles; then
1284
          dlfiles="$dlfiles $arg"
1285
          if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1286
            # If there is no dlname, no dlopen support or we're linking statically,
1287
            # we need to preload.
1288
            prev=dlprefiles
1289
          else
1290
            # We should not create a dependency on this library, but we
1291
            # may need any libraries it requires.
1292
            compile_command="$compile_command$dependency_libs"
1293
            finalize_command="$finalize_command$dependency_libs"
1294
            prev=
1295
            continue
1296
          fi
1297
        fi
1298
 
1299
        # The library was specified with -dlpreopen.
1300
        if test "$prev" = dlprefiles; then
1301
          # Prefer using a static library (so that no silly _DYNAMIC symbols
1302
          # are required to link).
1303
          if test -n "$old_library"; then
1304
            dlprefiles="$dlprefiles $dir/$old_library"
1305
          else
1306
            dlprefiles="$dlprefiles $dir/$linklib"
1307
          fi
1308
          prev=
1309
        fi
1310
 
1311
        if test -n "$library_names" &&
1312
           { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1313
          link_against_libtool_libs="$link_against_libtool_libs $arg"
1314
          if test -n "$shlibpath_var"; then
1315
            # Make sure the rpath contains only unique directories.
1316
            case "$temp_rpath " in
1317
            *" $dir "*) ;;
1318
            *) temp_rpath="$temp_rpath $dir" ;;
1319
            esac
1320
          fi
1321
 
1322
          # We need an absolute path.
1323
          case "$dir" in
1324
          [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1325
          *)
1326
            absdir=`cd "$dir" && pwd`
1327
            if test -z "$absdir"; then
1328
              $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1329
              $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1330
              absdir="$dir"
1331
            fi
1332
            ;;
1333
          esac
1334
 
1335
          # This is the magic to use -rpath.
1336
          # Skip directories that are in the system default run-time
1337
          # search path, unless they have been requested with -R.
1338
          case " $sys_lib_dlsearch_path " in
1339
          *" $absdir "*) ;;
1340
          *)
1341
            case "$compile_rpath " in
1342
            *" $absdir "*) ;;
1343
            *) compile_rpath="$compile_rpath $absdir"
1344
            esac
1345
            ;;
1346
          esac
1347
 
1348
          case " $sys_lib_dlsearch_path " in
1349
          *" $libdir "*) ;;
1350
          *)
1351
            case "$finalize_rpath " in
1352
            *" $libdir "*) ;;
1353
            *) finalize_rpath="$finalize_rpath $libdir"
1354
            esac
1355
            ;;
1356
          esac
1357
 
1358
          lib_linked=yes
1359
          case "$hardcode_action" in
1360
          immediate | unsupported)
1361
            if test "$hardcode_direct" = no; then
1362
              compile_command="$compile_command $dir/$linklib"
1363
              deplibs="$deplibs $dir/$linklib"
1364
              case "$host" in
1365
              *-*-cygwin* | *-*-mingw* | *-*-os2*)
1366
                dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1367
                if test -n "$dllsearchpath"; then
1368
                  dllsearchpath="$dllsearchpath:$dllsearchdir"
1369
                else
1370
                  dllsearchpath="$dllsearchdir"
1371
                fi
1372
                ;;
1373
              esac
1374
            elif test "$hardcode_minus_L" = no; then
1375
              case "$host" in
1376
              *-*-sunos*)
1377
                compile_shlibpath="$compile_shlibpath$dir:"
1378
                ;;
1379
              esac
1380
              case "$compile_command " in
1381
              *" -L$dir "*) ;;
1382
              *) compile_command="$compile_command -L$dir";;
1383
              esac
1384
              compile_command="$compile_command -l$name"
1385
              deplibs="$deplibs -L$dir -l$name"
1386
            elif test "$hardcode_shlibpath_var" = no; then
1387
              case ":$compile_shlibpath:" in
1388
              *":$dir:"*) ;;
1389
              *) compile_shlibpath="$compile_shlibpath$dir:";;
1390
              esac
1391
              compile_command="$compile_command -l$name"
1392
              deplibs="$deplibs -l$name"
1393
            else
1394
              lib_linked=no
1395
            fi
1396
            ;;
1397
 
1398
          relink)
1399
            if test "$hardcode_direct" = yes; then
1400
              compile_command="$compile_command $absdir/$linklib"
1401
              deplibs="$deplibs $absdir/$linklib"
1402
            elif test "$hardcode_minus_L" = yes; then
1403
              case "$compile_command " in
1404
              *" -L$absdir "*) ;;
1405
              *) compile_command="$compile_command -L$absdir";;
1406
              esac
1407
              compile_command="$compile_command -l$name"
1408
              deplibs="$deplibs -L$absdir -l$name"
1409
            elif test "$hardcode_shlibpath_var" = yes; then
1410
              case ":$compile_shlibpath:" in
1411
              *":$absdir:"*) ;;
1412
              *) compile_shlibpath="$compile_shlibpath$absdir:";;
1413
              esac
1414
              compile_command="$compile_command -l$name"
1415
              deplibs="$deplibs -l$name"
1416
            else
1417
              lib_linked=no
1418
            fi
1419
            ;;
1420
 
1421
          *)
1422
            lib_linked=no
1423
            ;;
1424
          esac
1425
 
1426
          if test "$lib_linked" != yes; then
1427
            $echo "$modename: configuration error: unsupported hardcode properties"
1428
            exit 1
1429
          fi
1430
 
1431
          # Finalize command for both is simple: just hardcode it.
1432
          if test "$hardcode_direct" = yes; then
1433
            finalize_command="$finalize_command $libdir/$linklib"
1434
          elif test "$hardcode_minus_L" = yes; then
1435
            case "$finalize_command " in
1436
            *" -L$libdir "*) ;;
1437
            *) finalize_command="$finalize_command -L$libdir";;
1438
            esac
1439
            finalize_command="$finalize_command -l$name"
1440
          elif test "$hardcode_shlibpath_var" = yes; then
1441
            case ":$finalize_shlibpath:" in
1442
            *":$libdir:"*) ;;
1443
            *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1444
            esac
1445
            finalize_command="$finalize_command -l$name"
1446
          else
1447
            # We cannot seem to hardcode it, guess we'll fake it.
1448
            case "$finalize_command " in
1449
            *" -L$dir "*) ;;
1450
            *) finalize_command="$finalize_command -L$libdir";;
1451
            esac
1452
            finalize_command="$finalize_command -l$name"
1453
          fi
1454
        else
1455
          # Transform directly to old archives if we don't build new libraries.
1456
          if test -n "$pic_flag" && test -z "$old_library"; then
1457
            $echo "$modename: cannot find static library for \`$arg'" 1>&2
1458
            exit 1
1459
          fi
1460
 
1461
          # Here we assume that one of hardcode_direct or hardcode_minus_L
1462
          # is not unsupported.  This is valid on all known static and
1463
          # shared platforms.
1464
          if test "$hardcode_direct" != unsupported; then
1465
            test -n "$old_library" && linklib="$old_library"
1466
            compile_command="$compile_command $dir/$linklib"
1467
            finalize_command="$finalize_command $dir/$linklib"
1468
          else
1469
            case "$compile_command " in
1470
            *" -L$dir "*) ;;
1471
            *) compile_command="$compile_command -L$dir";;
1472
            esac
1473
            compile_command="$compile_command -l$name"
1474
            case "$finalize_command " in
1475
            *" -L$dir "*) ;;
1476
            *) finalize_command="$finalize_command -L$dir";;
1477
            esac
1478
            finalize_command="$finalize_command -l$name"
1479
          fi
1480
        fi
1481
 
1482
        # Add in any libraries that this one depends upon.
1483
        compile_command="$compile_command$dependency_libs"
1484
        finalize_command="$finalize_command$dependency_libs"
1485
        continue
1486
        ;;
1487
 
1488
      # Some other compiler argument.
1489
      *)
1490
        # Unknown arguments in both finalize_command and compile_command need
1491
        # to be aesthetically quoted because they are evaled later.
1492
        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1493
        case "$arg" in
1494
        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
1495
          arg="\"$arg\""
1496
          ;;
1497
        esac
1498
        ;;
1499
      esac
1500
 
1501
      # Now actually substitute the argument into the commands.
1502
      if test -n "$arg"; then
1503
        compile_command="$compile_command $arg"
1504
        finalize_command="$finalize_command $arg"
1505
      fi
1506
    done
1507
 
1508
    if test -n "$prev"; then
1509
      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1510
      $echo "$help" 1>&2
1511
      exit 1
1512
    fi
1513
 
1514
    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1515
      eval arg=\"$export_dynamic_flag_spec\"
1516
      compile_command="$compile_command $arg"
1517
      finalize_command="$finalize_command $arg"
1518
    fi
1519
 
1520
    oldlibs=
1521
    # calculate the name of the file, without its directory
1522
    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1523
    libobjs_save="$libobjs"
1524
 
1525
    case "$output" in
1526
    "")
1527
      $echo "$modename: you must specify an output file" 1>&2
1528
      $echo "$help" 1>&2
1529
      exit 1
1530
      ;;
1531
 
1532
    *.a | *.lib)
1533
      if test -n "$link_against_libtool_libs"; then
1534
        $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1535
        exit 1
1536
      fi
1537
 
1538
      if test -n "$deplibs"; then
1539
        $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1540
      fi
1541
 
1542
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1543
        $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1544
      fi
1545
 
1546
      if test -n "$rpath"; then
1547
        $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1548
      fi
1549
 
1550
      if test -n "$xrpath"; then
1551
        $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1552
      fi
1553
 
1554
      if test -n "$vinfo"; then
1555
        $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1556
      fi
1557
 
1558
      if test -n "$release"; then
1559
        $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1560
      fi
1561
 
1562
      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1563
        $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1564
      fi
1565
 
1566
      # Now set the variables for building old libraries.
1567
      build_libtool_libs=no
1568
      oldlibs="$output"
1569
      ;;
1570
 
1571
    *.la)
1572
      # Make sure we only generate libraries of the form `libNAME.la'.
1573
      case "$outputname" in
1574
      lib*)
1575
        name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1576
        eval libname=\"$libname_spec\"
1577
        ;;
1578
      *)
1579
        if test "$module" = no; then
1580
          $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1581
          $echo "$help" 1>&2
1582
          exit 1
1583
        fi
1584
        if test "$need_lib_prefix" != no; then
1585
          # Add the "lib" prefix for modules if required
1586
          name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1587
          eval libname=\"$libname_spec\"
1588
        else
1589
          libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1590
        fi
1591
        ;;
1592
      esac
1593
 
1594
      output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1595
      if test "X$output_objdir" = "X$output"; then
1596
        output_objdir="$objdir"
1597
      else
1598
        output_objdir="$output_objdir/$objdir"
1599
      fi
1600
 
1601
      if test -n "$objs"; then
1602
        $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1603
        exit 1
1604
      fi
1605
 
1606
      # How the heck are we supposed to write a wrapper for a shared library?
1607
      if test -n "$link_against_libtool_libs"; then
1608
         $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1609
         exit 1
1610
      fi
1611
 
1612
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1613
        $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1614
      fi
1615
 
1616
      set dummy $rpath
1617
      if test $# -gt 2; then
1618
        $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1619
      fi
1620
      install_libdir="$2"
1621
 
1622
      oldlibs=
1623
      if test -z "$rpath"; then
1624
        if test "$build_libtool_libs" = yes; then
1625
          # Building a libtool convenience library.
1626
          libext=al
1627
          oldlibs="$output_objdir/$libname.$libext $oldlibs"
1628
          build_libtool_libs=convenience
1629
          build_old_libs=yes
1630
        fi
1631
        dependency_libs="$deplibs"
1632
 
1633
        if test -n "$vinfo"; then
1634
          $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1635
        fi
1636
 
1637
        if test -n "$release"; then
1638
          $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1639
        fi
1640
      else
1641
 
1642
        # Parse the version information argument.
1643
        IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
1644
        set dummy $vinfo 0 0 0
1645
        IFS="$save_ifs"
1646
 
1647
        if test -n "$8"; then
1648
          $echo "$modename: too many parameters to \`-version-info'" 1>&2
1649
          $echo "$help" 1>&2
1650
          exit 1
1651
        fi
1652
 
1653
        current="$2"
1654
        revision="$3"
1655
        age="$4"
1656
 
1657
        # Check that each of the things are valid numbers.
1658
        case "$current" in
1659
 
1660
        *)
1661
          $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1662
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1663
          exit 1
1664
          ;;
1665
        esac
1666
 
1667
        case "$revision" in
1668
 
1669
        *)
1670
          $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1671
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1672
          exit 1
1673
          ;;
1674
        esac
1675
 
1676
        case "$age" in
1677
 
1678
        *)
1679
          $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1680
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1681
          exit 1
1682
          ;;
1683
        esac
1684
 
1685
        if test $age -gt $current; then
1686
          $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1687
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1688
          exit 1
1689
        fi
1690
 
1691
        # Calculate the version variables.
1692
        major=
1693
        versuffix=
1694
        verstring=
1695
        case "$version_type" in
1696
        none) ;;
1697
 
1698
        irix)
1699
          major=`expr $current - $age + 1`
1700
          versuffix="$major.$revision"
1701
          verstring="sgi$major.$revision"
1702
 
1703
          # Add in all the interfaces that we are compatible with.
1704
          loop=$revision
1705
          while test $loop != 0; do
1706
            iface=`expr $revision - $loop`
1707
            loop=`expr $loop - 1`
1708
            verstring="sgi$major.$iface:$verstring"
1709
          done
1710
          ;;
1711
 
1712
        linux)
1713
          major=.`expr $current - $age`
1714
          versuffix="$major.$age.$revision"
1715
          ;;
1716
 
1717
        osf)
1718
          major=`expr $current - $age`
1719
          versuffix=".$current.$age.$revision"
1720
          verstring="$current.$age.$revision"
1721
 
1722
          # Add in all the interfaces that we are compatible with.
1723
          loop=$age
1724
          while test $loop != 0; do
1725
            iface=`expr $current - $loop`
1726
            loop=`expr $loop - 1`
1727
            verstring="$verstring:${iface}.0"
1728
          done
1729
 
1730
          # Make executables depend on our current version.
1731
          verstring="$verstring:${current}.0"
1732
          ;;
1733
 
1734
        sunos)
1735
          major=".$current"
1736
          versuffix=".$current.$revision"
1737
          ;;
1738
 
1739
        freebsd-aout)
1740
          major=".$current"
1741
          versuffix=".$current.$revision";
1742
          ;;
1743
 
1744
        freebsd-elf)
1745
          major=".$current"
1746
          versuffix=".$current";
1747
          ;;
1748
 
1749
        windows)
1750
          # Like Linux, but with '-' rather than '.', since we only
1751
          # want one extension on Windows 95.
1752
          major=`expr $current - $age`
1753
          versuffix="-$major-$age-$revision"
1754
          ;;
1755
 
1756
        *)
1757
          $echo "$modename: unknown library version type \`$version_type'" 1>&2
1758
          echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1759
          exit 1
1760
          ;;
1761
        esac
1762
 
1763
        # Clear the version info if we defaulted, and they specified a release.
1764
        if test -z "$vinfo" && test -n "$release"; then
1765
          major=
1766
          verstring="0.0"
1767
          if test "$need_version" = no; then
1768
            versuffix=
1769
          else
1770
            versuffix=".0.0"
1771
          fi
1772
        fi
1773
 
1774
        # Remove version info from name if versioning should be avoided
1775
        if test "$avoid_version" = yes && test "$need_version" = no; then
1776
          major=
1777
          versuffix=
1778
          verstring=""
1779
        fi
1780
 
1781
        # Check to see if the archive will have undefined symbols.
1782
        if test "$allow_undefined" = yes; then
1783
          if test "$allow_undefined_flag" = unsupported; then
1784
            $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1785
            build_libtool_libs=no
1786
            build_old_libs=yes
1787
          fi
1788
        else
1789
          # Don't allow undefined symbols.
1790
          allow_undefined_flag="$no_undefined_flag"
1791
        fi
1792
 
1793
        dependency_libs="$deplibs"
1794
        case "$host" in
1795
        *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1796
          # these systems don't actually have a c library (as such)!
1797
          ;;
1798
        *-*-rhapsody*)
1799
          # rhapsody is a little odd...
1800
          deplibs="$deplibs -framework System"
1801
          ;;
1802
        *)
1803
          # Add libc to deplibs on all other systems.
1804
          deplibs="$deplibs -lc"
1805
          ;;
1806
        esac
1807
      fi
1808
 
1809
      # Create the output directory, or remove our outputs if we need to.
1810
      if test -d $output_objdir; then
1811
        $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1812
        $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1813
      else
1814
        $show "$mkdir $output_objdir"
1815
        $run $mkdir $output_objdir
1816
        status=$?
1817
        if test $status -ne 0 && test ! -d $output_objdir; then
1818
          exit $status
1819
        fi
1820
      fi
1821
 
1822
      # Now set the variables for building old libraries.
1823
      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1824
        oldlibs="$oldlibs $output_objdir/$libname.$libext"
1825
 
1826
        # Transform .lo files to .o files.
1827
        oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1828
      fi
1829
 
1830
      if test "$build_libtool_libs" = yes; then
1831
        # Transform deplibs into only deplibs that can be linked in shared.
1832
        name_save=$name
1833
        libname_save=$libname
1834
        release_save=$release
1835
        versuffix_save=$versuffix
1836
        major_save=$major
1837
        # I'm not sure if I'm treating the release correctly.  I think
1838
        # release should show up in the -l (ie -lgmp5) so we don't want to
1839
        # add it in twice.  Is that correct?
1840
        release=""
1841
        versuffix=""
1842
        major=""
1843
        newdeplibs=
1844
        droppeddeps=no
1845
        case "$deplibs_check_method" in
1846
        pass_all)
1847
          # Don't check for shared/static.  Everything works.
1848
          # This might be a little naive.  We might want to check
1849
          # whether the library exists or not.  But this is on
1850
          # osf3 & osf4 and I'm not really sure... Just
1851
          # implementing what was already the behaviour.
1852
          newdeplibs=$deplibs
1853
          ;;
1854
        test_compile)
1855
          # This code stresses the "libraries are programs" paradigm to its
1856
          # limits. Maybe even breaks it.  We compile a program, linking it
1857
          # against the deplibs as a proxy for the library.  Then we can check
1858
          # whether they linked in statically or dynamically with ldd.
1859
          $rm conftest.c
1860
          cat > conftest.c <<EOF
1861
          int main() { return 0; }
1862
EOF
1863
          $rm conftest
1864
          $CC -o conftest conftest.c $deplibs
1865
          if test $? -eq 0 ; then
1866
            ldd_output=`ldd conftest`
1867
            for i in $deplibs; do
1868
              name="`expr $i : '-l\(.*\)'`"
1869
              # If $name is empty we are operating on a -L argument.
1870
              if test "$name" != "" ; then
1871
                libname=`eval \\$echo \"$libname_spec\"`
1872
                deplib_matches=`eval \\$echo \"$library_names_spec\"`
1873
                set dummy $deplib_matches
1874
                deplib_match=$2
1875
                if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1876
                  newdeplibs="$newdeplibs $i"
1877
                else
1878
                  droppeddeps=yes
1879
                  echo
1880
                  echo "*** Warning: This library needs some functionality provided by $i."
1881
                  echo "*** I have the capability to make that library automatically link in when"
1882
                  echo "*** you link to this library.  But I can only do this if you have a"
1883
                  echo "*** shared version of the library, which you do not appear to have."
1884
                fi
1885
              else
1886
                newdeplibs="$newdeplibs $i"
1887
              fi
1888
            done
1889
          else
1890
            # Error occured in the first compile.  Let's try to salvage the situation:
1891
            # Compile a seperate program for each library.
1892
            for i in $deplibs; do
1893
              name="`expr $i : '-l\(.*\)'`"
1894
             # If $name is empty we are operating on a -L argument.
1895
              if test "$name" != "" ; then
1896
                $rm conftest
1897
                $CC -o conftest conftest.c $i
1898
                # Did it work?
1899
                if test $? -eq 0 ; then
1900
                  ldd_output=`ldd conftest`
1901
                  libname=`eval \\$echo \"$libname_spec\"`
1902
                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
1903
                  set dummy $deplib_matches
1904
                  deplib_match=$2
1905
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1906
                    newdeplibs="$newdeplibs $i"
1907
                  else
1908
                    droppeddeps=yes
1909
                    echo
1910
                    echo "*** Warning: This library needs some functionality provided by $i."
1911
                    echo "*** I have the capability to make that library automatically link in when"
1912
                    echo "*** you link to this library.  But I can only do this if you have a"
1913
                    echo "*** shared version of the library, which you do not appear to have."
1914
                  fi
1915
                else
1916
                  droppeddeps=yes
1917
                  echo
1918
                  echo "*** Warning!  Library $i is needed by this library but I was not able to"
1919
                  echo "***  make it link in!  You will probably need to install it or some"
1920
                  echo "*** library that it depends on before this library will be fully"
1921
                  echo "*** functional.  Installing it before continuing would be even better."
1922
                fi
1923
              else
1924
                newdeplibs="$newdeplibs $i"
1925
              fi
1926
            done
1927
          fi
1928
          ;;
1929
        file_magic*)
1930
          set dummy $deplibs_check_method
1931
          file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1932
          for a_deplib in $deplibs; do
1933
            name="`expr $a_deplib : '-l\(.*\)'`"
1934
            # If $name is empty we are operating on a -L argument.
1935
            if test "$name" != "" ; then
1936
              libname=`eval \\$echo \"$libname_spec\"`
1937
              for i in $lib_search_path; do
1938
                    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1939
                    for potent_lib in $potential_libs; do
1940
                      # Follow soft links.
1941
                      if ls -lLd "$potent_lib" 2>/dev/null \
1942
                         | grep " -> " >/dev/null; then
1943
                        continue
1944
                      fi
1945
                      # The statement above tries to avoid entering an
1946
                      # endless loop below, in case of cyclic links.
1947
                      # We might still enter an endless loop, since a link
1948
                      # loop can be closed while we follow links,
1949
                      # but so what?
1950
                      potlib="$potent_lib"
1951
                      while test -h "$potlib" 2>/dev/null; do
1952
                        potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1953
                        case "$potliblink" in
1954
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1955
                        *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1956
                        esac
1957
                      done
1958
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1959
                         | sed 10q \
1960
                         | egrep "$file_magic_regex" > /dev/null; then
1961
                        newdeplibs="$newdeplibs $a_deplib"
1962
                        a_deplib=""
1963
                        break 2
1964
                      fi
1965
                    done
1966
              done
1967
              if test -n "$a_deplib" ; then
1968
                droppeddeps=yes
1969
                echo
1970
                echo "*** Warning: This library needs some functionality provided by $a_deplib."
1971
                echo "*** I have the capability to make that library automatically link in when"
1972
                echo "*** you link to this library.  But I can only do this if you have a"
1973
                echo "*** shared version of the library, which you do not appear to have."
1974
              fi
1975
            else
1976
              # Add a -L argument.
1977
              newdeplibs="$newdeplibs $a_deplib"
1978
            fi
1979
          done # Gone through all deplibs.
1980
          ;;
1981
        none | unknown | *)
1982
          newdeplibs=""
1983
          if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
1984
               -e 's/ -[LR][^ ]*//g' -e 's/[    ]//g' |
1985
             grep . >/dev/null; then
1986
            echo
1987
            if test "X$deplibs_check_method" = "Xnone"; then
1988
              echo "*** Warning: inter-library dependencies are not supported in this platform."
1989
            else
1990
              echo "*** Warning: inter-library dependencies are not known to be supported."
1991
            fi
1992
            echo "*** All declared inter-library dependencies are being dropped."
1993
            droppeddeps=yes
1994
          fi
1995
          ;;
1996
        esac
1997
        versuffix=$versuffix_save
1998
        major=$major_save
1999
        release=$release_save
2000
        libname=$libname_save
2001
        name=$name_save
2002
 
2003
        if test "$droppeddeps" = yes; then
2004
          if test "$module" = yes; then
2005
            echo
2006
            echo "*** Warning: libtool could not satisfy all declared inter-library"
2007
            echo "*** dependencies of module $libname.  Therefore, libtool will create"
2008
            echo "*** a static module, that should work as long as the dlopening"
2009
            echo "*** application is linked with the -dlopen flag."
2010
            if test -z "$global_symbol_pipe"; then
2011
              echo
2012
              echo "*** However, this would only work if libtool was able to extract symbol"
2013
              echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2014
              echo "*** not find such a program.  So, this module is probably useless."
2015
              echo "*** \`nm' from GNU binutils and a full rebuild may help."
2016
            fi
2017
            if test "$build_old_libs" = no; then
2018
              oldlibs="$output_objdir/$libname.$libext"
2019
              build_libtool_libs=module
2020
              build_old_libs=yes
2021
            else
2022
              build_libtool_libs=no
2023
            fi
2024
          else
2025
            echo "*** The inter-library dependencies that have been dropped here will be"
2026
            echo "*** automatically added whenever a program is linked with this library"
2027
            echo "*** or is declared to -dlopen it."
2028
          fi
2029
        fi
2030
        # Done checking deplibs!
2031
        deplibs=$newdeplibs
2032
      fi
2033
 
2034
      # All the library-specific variables (install_libdir is set above).
2035
      library_names=
2036
      old_library=
2037
      dlname=
2038
 
2039
      # Test again, we may have decided not to build it any more
2040
      if test "$build_libtool_libs" = yes; then
2041
        # Get the real and link names of the library.
2042
        eval library_names=\"$library_names_spec\"
2043
        set dummy $library_names
2044
        realname="$2"
2045
        shift; shift
2046
 
2047
        if test -n "$soname_spec"; then
2048
          eval soname=\"$soname_spec\"
2049
        else
2050
          soname="$realname"
2051
        fi
2052
 
2053
        lib="$output_objdir/$realname"
2054
        for link
2055
        do
2056
          linknames="$linknames $link"
2057
        done
2058
 
2059
        # Ensure that we have .o objects for linkers which dislike .lo
2060
        # (e.g. aix) in case we are running --disable-static
2061
        for obj in $libobjs; do
2062
          xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2063
          if test "X$xdir" = "X$obj"; then
2064
            xdir="."
2065
          else
2066
            xdir="$xdir"
2067
          fi
2068
          baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2069
          oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2070
          if test ! -f $xdir/$oldobj; then
2071
            $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2072
            $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2073
          fi
2074
        done
2075
 
2076
        # Use standard objects if they are pic
2077
        test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2078
 
2079
        # Prepare the list of exported symbols
2080
        if test -z "$export_symbols"; then
2081
          if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2082
            $show "generating symbol list for \`$libname.la'"
2083
            export_symbols="$output_objdir/$libname.exp"
2084
            $run $rm $export_symbols
2085
            eval cmds=\"$export_symbols_cmds\"
2086
            IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
2087
            for cmd in $cmds; do
2088
              IFS="$save_ifs"
2089
              $show "$cmd"
2090
              $run eval "$cmd" || exit $?
2091
            done
2092
            IFS="$save_ifs"
2093
            if test -n "$export_symbols_regex"; then
2094
              $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2095
              $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2096
              $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2097
              $run eval '$mv "${export_symbols}T" "$export_symbols"'
2098
            fi
2099
          fi
2100
        fi
2101
 
2102
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
2103
          $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2104
        fi
2105
 
2106
        if test -n "$convenience"; then
2107
          if test -n "$whole_archive_flag_spec"; then
2108
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2109
          else
2110
            gentop="$output_objdir/${outputname}x"
2111
            $show "${rm}r $gentop"
2112
            $run ${rm}r "$gentop"
2113
            $show "mkdir $gentop"
2114
            $run mkdir "$gentop"
2115
            status=$?
2116
            if test $status -ne 0 && test ! -d "$gentop"; then
2117
              exit $status
2118
            fi
2119
            generated="$generated $gentop"
2120
 
2121
            for xlib in $convenience; do
2122
              # Extract the objects.
2123
              case "$xlib" in
2124
              [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2125
              *) xabs=`pwd`"/$xlib" ;;
2126
              esac
2127
              xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2128
              xdir="$gentop/$xlib"
2129
 
2130
              $show "${rm}r $xdir"
2131
              $run ${rm}r "$xdir"
2132
              $show "mkdir $xdir"
2133
              $run mkdir "$xdir"
2134
              status=$?
2135
              if test $status -ne 0 && test ! -d "$xdir"; then
2136
                exit $status
2137
              fi
2138
              $show "(cd $xdir && $AR x $xabs)"
2139
              $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2140
 
2141
              libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2142
            done
2143
          fi
2144
        fi
2145
 
2146
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2147
          eval flag=\"$thread_safe_flag_spec\"
2148
          linkopts="$linkopts $flag"
2149
        fi
2150
 
2151
        # Do each of the archive commands.
2152
        if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2153
          eval cmds=\"$archive_expsym_cmds\"
2154
        else
2155
          eval cmds=\"$archive_cmds\"
2156
        fi
2157
        IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
2158
        for cmd in $cmds; do
2159
          IFS="$save_ifs"
2160
          $show "$cmd"
2161
          $run eval "$cmd" || exit $?
2162
        done
2163
        IFS="$save_ifs"
2164
 
2165
        # Create links to the real library.
2166
        for linkname in $linknames; do
2167
          if test "$realname" != "$linkname"; then
2168
            $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2169
            $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2170
          fi
2171
        done
2172
 
2173
        # If -module or -export-dynamic was specified, set the dlname.
2174
        if test "$module" = yes || test "$export_dynamic" = yes; then
2175
          # On all known operating systems, these are identical.
2176
          dlname="$soname"
2177
        fi
2178
      fi
2179
      ;;
2180
 
2181
    *.lo | *.o | *.obj)
2182
      if test -n "$link_against_libtool_libs"; then
2183
        $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2184
        exit 1
2185
      fi
2186
 
2187
      if test -n "$deplibs"; then
2188
        $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2189
      fi
2190
 
2191
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2192
        $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2193
      fi
2194
 
2195
      if test -n "$rpath"; then
2196
        $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2197
      fi
2198
 
2199
      if test -n "$xrpath"; then
2200
        $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2201
      fi
2202
 
2203
      if test -n "$vinfo"; then
2204
        $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2205
      fi
2206
 
2207
      if test -n "$release"; then
2208
        $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2209
      fi
2210
 
2211
      case "$output" in
2212
      *.lo)
2213
        if test -n "$objs"; then
2214
          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2215
          exit 1
2216
        fi
2217
        libobj="$output"
2218
        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2219
        ;;
2220
      *)
2221
        libobj=
2222
        obj="$output"
2223
        ;;
2224
      esac
2225
 
2226
      # Delete the old objects.
2227
      $run $rm $obj $libobj
2228
 
2229
      # Objects from convenience libraries.  This assumes
2230
      # single-version convenience libraries.  Whenever we create
2231
      # different ones for PIC/non-PIC, this we'll have to duplicate
2232
      # the extraction.
2233
      reload_conv_objs=
2234
      gentop=
2235
      # reload_cmds runs $LD directly, so let us get rid of
2236
      # -Wl from whole_archive_flag_spec
2237
      wl=
2238
 
2239
      if test -n "$convenience"; then
2240
        if test -n "$whole_archive_flag_spec"; then
2241
          eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2242
        else
2243
          gentop="$output_objdir/${obj}x"
2244
          $show "${rm}r $gentop"
2245
          $run ${rm}r "$gentop"
2246
          $show "mkdir $gentop"
2247
          $run mkdir "$gentop"
2248
          status=$?
2249
          if test $status -ne 0 && test ! -d "$gentop"; then
2250
            exit $status
2251
          fi
2252
          generated="$generated $gentop"
2253
 
2254
          for xlib in $convenience; do
2255
            # Extract the objects.
2256
            case "$xlib" in
2257
            [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2258
            *) xabs=`pwd`"/$xlib" ;;
2259
            esac
2260
            xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2261
            xdir="$gentop/$xlib"
2262
 
2263
            $show "${rm}r $xdir"
2264
            $run ${rm}r "$xdir"
2265
            $show "mkdir $xdir"
2266
            $run mkdir "$xdir"
2267
            status=$?
2268
            if test $status -ne 0 && test ! -d "$xdir"; then
2269
              exit $status
2270
            fi
2271
            $show "(cd $xdir && $AR x $xabs)"
2272
            $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2273
 
2274
            reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2275
          done
2276
        fi
2277
      fi
2278
 
2279
      # Create the old-style object.
2280
      reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
2281
 
2282
      output="$obj"
2283
      eval cmds=\"$reload_cmds\"
2284
      IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
2285
      for cmd in $cmds; do
2286
        IFS="$save_ifs"
2287
        $show "$cmd"
2288
        $run eval "$cmd" || exit $?
2289
      done
2290
      IFS="$save_ifs"
2291
 
2292
      # Exit if we aren't doing a library object file.
2293
      if test -z "$libobj"; then
2294
        if test -n "$gentop"; then
2295
          $show "${rm}r $gentop"
2296
          $run ${rm}r $gentop
2297
        fi
2298
 
2299
        exit 0
2300
      fi
2301
 
2302
      if test "$build_libtool_libs" != yes; then
2303
        if test -n "$gentop"; then
2304
          $show "${rm}r $gentop"
2305
          $run ${rm}r $gentop
2306
        fi
2307
 
2308
        # Create an invalid libtool object if no PIC, so that we don't
2309
        # accidentally link it into a program.
2310
        $show "echo timestamp > $libobj"
2311
        $run eval "echo timestamp > $libobj" || exit $?
2312
        exit 0
2313
      fi
2314
 
2315
      if test -n "$pic_flag"; then
2316
        # Only do commands if we really have different PIC objects.
2317
        reload_objs="$libobjs $reload_conv_objs"
2318
        output="$libobj"
2319
        eval cmds=\"$reload_cmds\"
2320
        IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
2321
        for cmd in $cmds; do
2322
          IFS="$save_ifs"
2323
          $show "$cmd"
2324
          $run eval "$cmd" || exit $?
2325
        done
2326
        IFS="$save_ifs"
2327
      else
2328
        # Just create a symlink.
2329
        $show $rm $libobj
2330
        $run $rm $libobj
2331
        xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
2332
        if test "X$xdir" = "X$libobj"; then
2333
          xdir="."
2334
        else
2335
          xdir="$xdir"
2336
        fi
2337
        baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
2338
        oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2339
        $show "(cd $xdir && $LN_S $oldobj $baseobj)"
2340
        $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
2341
      fi
2342
 
2343
      if test -n "$gentop"; then
2344
        $show "${rm}r $gentop"
2345
        $run ${rm}r $gentop
2346
      fi
2347
 
2348
      exit 0
2349
      ;;
2350
 
2351
    # Anything else should be a program.
2352
    *)
2353
      if test -n "$vinfo"; then
2354
        $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2355
      fi
2356
 
2357
      if test -n "$release"; then
2358
        $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2359
      fi
2360
 
2361
      if test "$preload" = yes; then
2362
        if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2363
           test "$dlopen_self_static" = unknown; then
2364
          $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2365
        fi
2366
      fi
2367
 
2368
      if test -n "$rpath$xrpath"; then
2369
        # If the user specified any rpath flags, then add them.
2370
        for libdir in $rpath $xrpath; do
2371
          # This is the magic to use -rpath.
2372
          case "$compile_rpath " in
2373
          *" $libdir "*) ;;
2374
          *) compile_rpath="$compile_rpath $libdir" ;;
2375
          esac
2376
          case "$finalize_rpath " in
2377
          *" $libdir "*) ;;
2378
          *) finalize_rpath="$finalize_rpath $libdir" ;;
2379
          esac
2380
        done
2381
      fi
2382
 
2383
      # Now hardcode the library paths
2384
      rpath=
2385
      hardcode_libdirs=
2386
      for libdir in $compile_rpath $finalize_rpath; do
2387
        if test -n "$hardcode_libdir_flag_spec"; then
2388
          if test -n "$hardcode_libdir_separator"; then
2389
            if test -z "$hardcode_libdirs"; then
2390
              hardcode_libdirs="$libdir"
2391
            else
2392
              # Just accumulate the unique libdirs.
2393
              case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2394
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2395
                ;;
2396
              *)
2397
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2398
                ;;
2399
              esac
2400
            fi
2401
          else
2402
            eval flag=\"$hardcode_libdir_flag_spec\"
2403
            rpath="$rpath $flag"
2404
          fi
2405
        elif test -n "$runpath_var"; then
2406
          case "$perm_rpath " in
2407
          *" $libdir "*) ;;
2408
          *) perm_rpath="$perm_rpath $libdir" ;;
2409
          esac
2410
        fi
2411
      done
2412
      # Substitute the hardcoded libdirs into the rpath.
2413
      if test -n "$hardcode_libdir_separator" &&
2414
         test -n "$hardcode_libdirs"; then
2415
        libdir="$hardcode_libdirs"
2416
        eval rpath=\" $hardcode_libdir_flag_spec\"
2417
      fi
2418
      compile_rpath="$rpath"
2419
 
2420
      rpath=
2421
      hardcode_libdirs=
2422
      for libdir in $finalize_rpath; do
2423
        if test -n "$hardcode_libdir_flag_spec"; then
2424
          if test -n "$hardcode_libdir_separator"; then
2425
            if test -z "$hardcode_libdirs"; then
2426
              hardcode_libdirs="$libdir"
2427
            else
2428
              # Just accumulate the unique libdirs.
2429
              case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2430
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2431
                ;;
2432
              *)
2433
                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2434
                ;;
2435
              esac
2436
            fi
2437
          else
2438
            eval flag=\"$hardcode_libdir_flag_spec\"
2439
            rpath="$rpath $flag"
2440
          fi
2441
        elif test -n "$runpath_var"; then
2442
          case "$finalize_perm_rpath " in
2443
          *" $libdir "*) ;;
2444
          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2445
          esac
2446
        fi
2447
      done
2448
      # Substitute the hardcoded libdirs into the rpath.
2449
      if test -n "$hardcode_libdir_separator" &&
2450
         test -n "$hardcode_libdirs"; then
2451
        libdir="$hardcode_libdirs"
2452
        eval rpath=\" $hardcode_libdir_flag_spec\"
2453
      fi
2454
      finalize_rpath="$rpath"
2455
 
2456
      output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2457
      if test "X$output_objdir" = "X$output"; then
2458
        output_objdir="$objdir"
2459
      else
2460
        output_objdir="$output_objdir/$objdir"
2461
      fi
2462
 
2463
      # Create the binary in the object directory, then wrap it.
2464
      if test ! -d $output_objdir; then
2465
        $show "$mkdir $output_objdir"
2466
        $run $mkdir $output_objdir
2467
        status=$?
2468
        if test $status -ne 0 && test ! -d $output_objdir; then
2469
          exit $status
2470
        fi
2471
      fi
2472
 
2473
      if test -n "$libobjs" && test "$build_old_libs" = yes; then
2474
        # Transform all the library objects into standard objects.
2475
        compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2476
        finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2477
      fi
2478
 
2479
      dlsyms=
2480
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2481
        if test -n "$NM" && test -n "$global_symbol_pipe"; then
2482
          dlsyms="${outputname}S.c"
2483
        else
2484
          $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2485
        fi
2486
      fi
2487
 
2488
      if test -n "$dlsyms"; then
2489
        case "$dlsyms" in
2490
        "") ;;
2491
        *.c)
2492
          # Discover the nlist of each of the dlfiles.
2493
          nlist="$output_objdir/${outputname}.nm"
2494
 
2495
          $show "$rm $nlist ${nlist}S ${nlist}T"
2496
          $run $rm "$nlist" "${nlist}S" "${nlist}T"
2497
 
2498
          # Parse the name list into a source file.
2499
          $show "creating $output_objdir/$dlsyms"
2500
 
2501
          test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2502
/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2503
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2504
 
2505
#ifdef __cplusplus
2506
extern \"C\" {
2507
#endif
2508
 
2509
/* Prevent the only kind of declaration conflicts we can make. */
2510
#define lt_preloaded_symbols some_other_symbol
2511
 
2512
/* External symbol declarations for the compiler. */\
2513
"
2514
 
2515
          if test "$dlself" = yes; then
2516
            $show "generating symbol list for \`$output'"
2517
 
2518
            test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2519
 
2520
            # Add our own program objects to the symbol list.
2521
            progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2522
            for arg in $progfiles; do
2523
              $show "extracting global C symbols from \`$arg'"
2524
              $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2525
            done
2526
 
2527
            if test -n "$exclude_expsyms"; then
2528
              $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2529
              $run eval '$mv "$nlist"T "$nlist"'
2530
            fi
2531
 
2532
            if test -n "$export_symbols_regex"; then
2533
              $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2534
              $run eval '$mv "$nlist"T "$nlist"'
2535
            fi
2536
 
2537
            # Prepare the list of exported symbols
2538
            if test -z "$export_symbols"; then
2539
              export_symbols="$output_objdir/$output.exp"
2540
              $run $rm $export_symbols
2541
              $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2542
            else
2543
              $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2544
              $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2545
              $run eval 'mv "$nlist"T "$nlist"'
2546
            fi
2547
          fi
2548
 
2549
          for arg in $dlprefiles; do
2550
            $show "extracting global C symbols from \`$arg'"
2551
            name=`echo "$arg" | sed -e 's%^.*/%%'`
2552
            $run eval 'echo ": $name " >> "$nlist"'
2553
            $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2554
          done
2555
 
2556
          if test -z "$run"; then
2557
            # Make sure we have at least an empty file.
2558
            test -f "$nlist" || : > "$nlist"
2559
 
2560
            if test -n "$exclude_expsyms"; then
2561
              egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2562
              $mv "$nlist"T "$nlist"
2563
            fi
2564
 
2565
            # Try sorting and uniquifying the output.
2566
            if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2567
              :
2568
            else
2569
              grep -v "^: " < "$nlist" > "$nlist"S
2570
            fi
2571
 
2572
            if test -f "$nlist"S; then
2573
              eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2574
            else
2575
              echo '/* NONE */' >> "$output_objdir/$dlsyms"
2576
            fi
2577
 
2578
            $echo >> "$output_objdir/$dlsyms" "\
2579
 
2580
#undef lt_preloaded_symbols
2581
 
2582
#if defined (__STDC__) && __STDC__
2583
# define lt_ptr_t void *
2584
#else
2585
# define lt_ptr_t char *
2586
# define const
2587
#endif
2588
 
2589
/* The mapping between symbol names and symbols. */
2590
const struct {
2591
  const char *name;
2592
  lt_ptr_t address;
2593
}
2594
lt_preloaded_symbols[] =
2595
{\
2596
"
2597
 
2598
            sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
2599
                -e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
2600
                  < "$nlist" >> "$output_objdir/$dlsyms"
2601
 
2602
            $echo >> "$output_objdir/$dlsyms" "\
2603
  {0, (lt_ptr_t) 0}
2604
};
2605
 
2606
/* This works around a problem in FreeBSD linker */
2607
#ifdef FREEBSD_WORKAROUND
2608
static const void *lt_preloaded_setup() {
2609
  return lt_preloaded_symbols;
2610
}
2611
#endif
2612
 
2613
#ifdef __cplusplus
2614
}
2615
#endif\
2616
"
2617
          fi
2618
 
2619
          pic_flag_for_symtable=
2620
          case "$host" in
2621
          # compiling the symbol table file with pic_flag works around
2622
          # a FreeBSD bug that causes programs to crash when -lm is
2623
          # linked before any other PIC object.  But we must not use
2624
          # pic_flag when linking with -static.  The problem exists in
2625
          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2626
          *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2627
            case "$compile_command " in
2628
            *" -static "*) ;;
2629
            *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2630
            esac;;
2631
          *-*-hpux*)
2632
            case "$compile_command " in
2633
            *" -static "*) ;;
2634
            *) pic_flag_for_symtable=" $pic_flag -DPIC";;
2635
            esac
2636
          esac
2637
 
2638
          # Now compile the dynamic symbol file.
2639
          $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2640
          $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2641
 
2642
          # Clean up the generated files.
2643
          $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2644
          $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2645
 
2646
          # Transform the symbol file into the correct name.
2647
          compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2648
          finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2649
          ;;
2650
        *)
2651
          $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2652
          exit 1
2653
          ;;
2654
        esac
2655
      else
2656
        # We keep going just in case the user didn't refer to
2657
        # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
2658
        # really was required.
2659
 
2660
        # Nullify the symbol file.
2661
        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2662
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2663
      fi
2664
 
2665
      if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2666
        # Replace the output file specification.
2667
        compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2668
        link_command="$compile_command$compile_rpath"
2669
 
2670
        # We have no uninstalled library dependencies, so finalize right now.
2671
        $show "$link_command"
2672
        $run eval "$link_command"
2673
        status=$?
2674
 
2675
        # Delete the generated files.
2676
        if test -n "$dlsyms"; then
2677
          $show "$rm $output_objdir/${outputname}S.${objext}"
2678
          $run $rm "$output_objdir/${outputname}S.${objext}"
2679
        fi
2680
 
2681
        exit $status
2682
      fi
2683
 
2684
      if test -n "$shlibpath_var"; then
2685
        # We should set the shlibpath_var
2686
        rpath=
2687
        for dir in $temp_rpath; do
2688
          case "$dir" in
2689
          [\\/]* | [A-Za-z]:[\\/]*)
2690
            # Absolute path.
2691
            rpath="$rpath$dir:"
2692
            ;;
2693
          *)
2694
            # Relative path: add a thisdir entry.
2695
            rpath="$rpath\$thisdir/$dir:"
2696
            ;;
2697
          esac
2698
        done
2699
        temp_rpath="$rpath"
2700
      fi
2701
 
2702
      if test -n "$compile_shlibpath$finalize_shlibpath"; then
2703
        compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2704
      fi
2705
      if test -n "$finalize_shlibpath"; then
2706
        finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2707
      fi
2708
 
2709
      compile_var=
2710
      finalize_var=
2711
      if test -n "$runpath_var"; then
2712
        if test -n "$perm_rpath"; then
2713
          # We should set the runpath_var.
2714
          rpath=
2715
          for dir in $perm_rpath; do
2716
            rpath="$rpath$dir:"
2717
          done
2718
          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2719
        fi
2720
        if test -n "$finalize_perm_rpath"; then
2721
          # We should set the runpath_var.
2722
          rpath=
2723
          for dir in $finalize_perm_rpath; do
2724
            rpath="$rpath$dir:"
2725
          done
2726
          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2727
        fi
2728
      fi
2729
 
2730
      if test "$hardcode_action" = relink; then
2731
        # Fast installation is not supported
2732
        link_command="$compile_var$compile_command$compile_rpath"
2733
        relink_command="$finalize_var$finalize_command$finalize_rpath"
2734
 
2735
        $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2736
        $echo "$modename: \`$output' will be relinked during installation" 1>&2
2737
      else
2738
        if test "$fast_install" != no; then
2739
          link_command="$finalize_var$compile_command$finalize_rpath"
2740
          if test "$fast_install" = yes; then
2741
            relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2742
          else
2743
            # fast_install is set to needless
2744
            relink_command=
2745
          fi
2746
        else
2747
          link_command="$compile_var$compile_command$compile_rpath"
2748
          relink_command="$finalize_var$finalize_command$finalize_rpath"
2749
        fi
2750
      fi
2751
 
2752
      # Replace the output file specification.
2753
      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2754
 
2755
      # Delete the old output files.
2756
      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2757
 
2758
      $show "$link_command"
2759
      $run eval "$link_command" || exit $?
2760
 
2761
      # Now create the wrapper script.
2762
      $show "creating $output"
2763
 
2764
      # Quote the relink command for shipping.
2765
      if test -n "$relink_command"; then
2766
        relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2767
      fi
2768
 
2769
      # Quote $echo for shipping.
2770
      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2771
        case "$0" in
2772
        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2773
        *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2774
        esac
2775
        qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2776
      else
2777
        qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2778
      fi
2779
 
2780
      # Only actually do things if our run command is non-null.
2781
      if test -z "$run"; then
2782
        # win32 will think the script is a binary if it has
2783
        # a .exe suffix, so we strip it off here.
2784
        case $output in
2785
          *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2786
        esac
2787
        $rm $output
2788
        trap "$rm $output; exit 1" 1 2 15
2789
 
2790
        $echo > $output "\
2791
#! $SHELL
2792
 
2793
# $output - temporary wrapper script for $objdir/$outputname
2794
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2795
#
2796
# The $output program cannot be directly executed until all the libtool
2797
# libraries that it depends on are installed.
2798
#
2799
# This wrapper script should never be moved out of the build directory.
2800
# If it is, it will not operate correctly.
2801
 
2802
# Sed substitution that helps us do robust quoting.  It backslashifies
2803
# metacharacters that are still active within double-quoted strings.
2804
Xsed='sed -e 1s/^X//'
2805
sed_quote_subst='$sed_quote_subst'
2806
 
2807
# The HP-UX ksh and POSIX shell print the target directory to stdout
2808
# if CDPATH is set.
2809
if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
2810
 
2811
relink_command=\"$relink_command\"
2812
 
2813
# This environment variable determines our operation mode.
2814
if test \"\$libtool_install_magic\" = \"$magic\"; then
2815
  # install mode needs the following variable:
2816
  link_against_libtool_libs='$link_against_libtool_libs'
2817
else
2818
  # When we are sourced in execute mode, \$file and \$echo are already set.
2819
  if test \"\$libtool_execute_magic\" != \"$magic\"; then
2820
    echo=\"$qecho\"
2821
    file=\"\$0\"
2822
    # Make sure echo works.
2823
    if test \"X\$1\" = X--no-reexec; then
2824
      # Discard the --no-reexec flag, and continue.
2825
      shift
2826
    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2827
      # Yippee, \$echo works!
2828
      :
2829
    else
2830
      # Restart under the correct shell, and then maybe \$echo will work.
2831
      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2832
    fi
2833
  fi\
2834
"
2835
        $echo >> $output "\
2836
 
2837
  # Find the directory that this script lives in.
2838
  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2839
  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2840
 
2841
  # Follow symbolic links until we get to the real thisdir.
2842
  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2843
  while test -n \"\$file\"; do
2844
    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2845
 
2846
    # If there was a directory component, then change thisdir.
2847
    if test \"x\$destdir\" != \"x\$file\"; then
2848
      case \"\$destdir\" in
2849
      [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2850
      *) thisdir=\"\$thisdir/\$destdir\" ;;
2851
      esac
2852
    fi
2853
 
2854
    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2855
    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2856
  done
2857
 
2858
  # Try to get the absolute directory name.
2859
  absdir=\`cd \"\$thisdir\" && pwd\`
2860
  test -n \"\$absdir\" && thisdir=\"\$absdir\"
2861
"
2862
 
2863
        if test "$fast_install" = yes; then
2864
          echo >> $output "\
2865
  program=lt-'$outputname'
2866
  progdir=\"\$thisdir/$objdir\"
2867
 
2868
  if test ! -f \"\$progdir/\$program\" || \\
2869
     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2870
       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2871
 
2872
    file=\"\$\$-\$program\"
2873
 
2874
    if test ! -d \"\$progdir\"; then
2875
      $mkdir \"\$progdir\"
2876
    else
2877
      $rm \"\$progdir/\$file\"
2878
    fi"
2879
 
2880
          echo >> $output "\
2881
 
2882
    # relink executable if necessary
2883
    if test -n \"\$relink_command\"; then
2884
      if (cd \"\$thisdir\" && eval \$relink_command); then :
2885
      else
2886
        $rm \"\$progdir/\$file\"
2887
        exit 1
2888
      fi
2889
    fi
2890
 
2891
    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2892
    { $rm \"\$progdir/\$program\";
2893
      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2894
    $rm \"\$progdir/\$file\"
2895
  fi"
2896
        else
2897
          echo >> $output "\
2898
  program='$outputname'
2899
  progdir=\"\$thisdir/$objdir\"
2900
"
2901
        fi
2902
 
2903
        echo >> $output "\
2904
 
2905
  if test -f \"\$progdir/\$program\"; then"
2906
 
2907
        # Export our shlibpath_var if we have one.
2908
        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2909
          $echo >> $output "\
2910
    # Add our own library path to $shlibpath_var
2911
    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2912
 
2913
    # Some systems cannot cope with colon-terminated $shlibpath_var
2914
    # The second colon is a workaround for a bug in BeOS R4 sed
2915
    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2916
 
2917
    export $shlibpath_var
2918
"
2919
        fi
2920
 
2921
        # fixup the dll searchpath if we need to.
2922
        if test -n "$dllsearchpath"; then
2923
          $echo >> $output "\
2924
    # Add the dll search path components to the executable PATH
2925
    PATH=$dllsearchpath:\$PATH
2926
"
2927
        fi
2928
 
2929
        $echo >> $output "\
2930
    if test \"\$libtool_execute_magic\" != \"$magic\"; then
2931
      # Run the actual program with our arguments.
2932
"
2933
        case $host in
2934
          # win32 systems need to use the prog path for dll
2935
          # lookup to work
2936
        *-*-cygwin*)
2937
          $echo >> $output "\
2938
      exec \$progdir/\$program \${1+\"\$@\"}
2939
"
2940
          ;;
2941
 
2942
        # Backslashes separate directories on plain windows
2943
        *-*-mingw | *-*-os2*)
2944
          $echo >> $output "\
2945
      exec \$progdir\\\\\$program \${1+\"\$@\"}
2946
"
2947
          ;;
2948
 
2949
        *)
2950
          $echo >> $output "\
2951
      # Export the path to the program.
2952
      PATH=\"\$progdir:\$PATH\"
2953
      export PATH
2954
 
2955
      exec \$program \${1+\"\$@\"}
2956
"
2957
          ;;
2958
        esac
2959
        $echo >> $output "\
2960
      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2961
      exit 1
2962
    fi
2963
  else
2964
    # The program doesn't exist.
2965
    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2966
    \$echo \"This script is just a wrapper for \$program.\" 1>&2
2967
    echo \"See the $PACKAGE documentation for more information.\" 1>&2
2968
    exit 1
2969
  fi
2970
fi\
2971
"
2972
        chmod +x $output
2973
      fi
2974
      exit 0
2975
      ;;
2976
    esac
2977
 
2978
    # See if we need to build an old-fashioned archive.
2979
    for oldlib in $oldlibs; do
2980
 
2981
      if test "$build_libtool_libs" = convenience; then
2982
        oldobjs="$libobjs_save"
2983
        addlibs="$convenience"
2984
        build_libtool_libs=no
2985
      else
2986
        if test "$build_libtool_libs" = module; then
2987
          oldobjs="$libobjs_save"
2988
          build_libtool_libs=no
2989
        else
2990
          oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2991
        fi
2992
        addlibs="$old_convenience"
2993
      fi
2994
 
2995
      if test -n "$addlibs"; then
2996
        gentop="$output_objdir/${outputname}x"
2997
        $show "${rm}r $gentop"
2998
        $run ${rm}r "$gentop"
2999
        $show "mkdir $gentop"
3000
        $run mkdir "$gentop"
3001
        status=$?
3002
        if test $status -ne 0 && test ! -d "$gentop"; then
3003
          exit $status
3004
        fi
3005
        generated="$generated $gentop"
3006
 
3007
        # Add in members from convenience archives.
3008
        for xlib in $addlibs; do
3009
          # Extract the objects.
3010
          case "$xlib" in
3011
          [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3012
          *) xabs=`pwd`"/$xlib" ;;
3013
          esac
3014
          xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3015
          xdir="$gentop/$xlib"
3016
 
3017
          $show "${rm}r $xdir"
3018
          $run ${rm}r "$xdir"
3019
          $show "mkdir $xdir"
3020
          $run mkdir "$xdir"
3021
          status=$?
3022
          if test $status -ne 0 && test ! -d "$xdir"; then
3023
            exit $status
3024
          fi
3025
          $show "(cd $xdir && $AR x $xabs)"
3026
          $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3027
 
3028
          oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3029
        done
3030
      fi
3031
 
3032
      # Do each command in the archive commands.
3033
      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3034
        eval cmds=\"$old_archive_from_new_cmds\"
3035
      else
3036
        # Ensure that we have .o objects in place in case we decided
3037
        # not to build a shared library, and have fallen back to building
3038
        # static libs even though --disable-static was passed!
3039
        for oldobj in $oldobjs; do
3040
          if test ! -f $oldobj; then
3041
            xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3042
            if test "X$xdir" = "X$oldobj"; then
3043
              xdir="."
3044
            else
3045
              xdir="$xdir"
3046
            fi
3047
            baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3048
            obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3049
            $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3050
            $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3051
          fi
3052
        done
3053
 
3054
        eval cmds=\"$old_archive_cmds\"
3055
      fi
3056
      IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
3057
      for cmd in $cmds; do
3058
        IFS="$save_ifs"
3059
        $show "$cmd"
3060
        $run eval "$cmd" || exit $?
3061
      done
3062
      IFS="$save_ifs"
3063
    done
3064
 
3065
    if test -n "$generated"; then
3066
      $show "${rm}r$generated"
3067
      $run ${rm}r$generated
3068
    fi
3069
 
3070
    # Now create the libtool archive.
3071
    case "$output" in
3072
    *.la)
3073
      old_library=
3074
      test "$build_old_libs" = yes && old_library="$libname.$libext"
3075
      $show "creating $output"
3076
 
3077
      if test -n "$xrpath"; then
3078
        temp_xrpath=
3079
        for libdir in $xrpath; do
3080
          temp_xrpath="$temp_xrpath -R$libdir"
3081
        done
3082
        dependency_libs="$temp_xrpath $dependency_libs"
3083
      fi
3084
 
3085
      # Only create the output if not a dry run.
3086
      if test -z "$run"; then
3087
        for installed in no yes; do
3088
          if test "$installed" = yes; then
3089
            if test -z "$install_libdir"; then
3090
              break
3091
            fi
3092
            output="$output_objdir/$outputname"i
3093
          fi
3094
          $rm $output
3095
          $echo > $output "\
3096
# $outputname - a libtool library file
3097
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3098
#
3099
# Please DO NOT delete this file!
3100
# It is necessary for linking the library.
3101
 
3102
# The name that we can dlopen(3).
3103
dlname='$dlname'
3104
 
3105
# Names of this library.
3106
library_names='$library_names'
3107
 
3108
# The name of the static archive.
3109
old_library='$old_library'
3110
 
3111
# Libraries that this one depends upon.
3112
dependency_libs='$dependency_libs'
3113
 
3114
# Version information for $libname.
3115
current=$current
3116
age=$age
3117
revision=$revision
3118
 
3119
# Is this an already installed library?
3120
installed=$installed
3121
 
3122
# Directory that this library needs to be installed in:
3123
libdir='$install_libdir'\
3124
"
3125
        done
3126
      fi
3127
 
3128
      # Do a symbolic link so that the libtool archive can be found in
3129
      # LD_LIBRARY_PATH before the program is installed.
3130
      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3131
      $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3132
      ;;
3133
    esac
3134
    exit 0
3135
    ;;
3136
 
3137
  # libtool install mode
3138
  install)
3139
    modename="$modename: install"
3140
 
3141
    # There may be an optional sh(1) argument at the beginning of
3142
    # install_prog (especially on Windows NT).
3143
    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3144
      # Aesthetically quote it.
3145
      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3146
      case "$arg" in
3147
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
3148
        arg="\"$arg\""
3149
        ;;
3150
      esac
3151
      install_prog="$arg "
3152
      arg="$1"
3153
      shift
3154
    else
3155
      install_prog=
3156
      arg="$nonopt"
3157
    fi
3158
 
3159
    # The real first argument should be the name of the installation program.
3160
    # Aesthetically quote it.
3161
    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3162
    case "$arg" in
3163
    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*)
3164
      arg="\"$arg\""
3165
      ;;
3166
    esac
3167
    install_prog="$install_prog$arg"
3168
 
3169
    # We need to accept at least all the BSD install flags.
3170
    dest=
3171
    files=
3172
    opts=
3173
    prev=
3174
    install_type=
3175
    isdir=no
3176
    stripme=
3177
    for arg
3178
    do
3179
      if test -n "$dest"; then
3180
        files="$files $dest"
3181
        dest="$arg"
3182
        continue
3183
      fi
3184
 
3185
      case "$arg" in
3186
      -d) isdir=yes ;;
3187
      -f) prev="-f" ;;
3188
      -g) prev="-g" ;;
3189
      -m) prev="-m" ;;
3190
      -o) prev="-o" ;;
3191
      -s)
3192
        stripme=" -s"
3193
        continue
3194
        ;;
3195
      -*) ;;
3196
 
3197
      *)
3198
        # If the previous option needed an argument, then skip it.
3199
        if test -n "$prev"; then
3200
          prev=
3201
        else
3202
          dest="$arg"
3203
          continue
3204
        fi
3205
        ;;
3206
      esac
3207
 
3208
      # Aesthetically quote the argument.
3209
      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3210
      case "$arg" in
3211
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
3212
        arg="\"$arg\""
3213
        ;;
3214
      esac
3215
      install_prog="$install_prog $arg"
3216
    done
3217
 
3218
    if test -z "$install_prog"; then
3219
      $echo "$modename: you must specify an install program" 1>&2
3220
      $echo "$help" 1>&2
3221
      exit 1
3222
    fi
3223
 
3224
    if test -n "$prev"; then
3225
      $echo "$modename: the \`$prev' option requires an argument" 1>&2
3226
      $echo "$help" 1>&2
3227
      exit 1
3228
    fi
3229
 
3230
    if test -z "$files"; then
3231
      if test -z "$dest"; then
3232
        $echo "$modename: no file or destination specified" 1>&2
3233
      else
3234
        $echo "$modename: you must specify a destination" 1>&2
3235
      fi
3236
      $echo "$help" 1>&2
3237
      exit 1
3238
    fi
3239
 
3240
    # Strip any trailing slash from the destination.
3241
    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3242
 
3243
    # Check to see that the destination is a directory.
3244
    test -d "$dest" && isdir=yes
3245
    if test "$isdir" = yes; then
3246
      destdir="$dest"
3247
      destname=
3248
    else
3249
      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3250
      test "X$destdir" = "X$dest" && destdir=.
3251
      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3252
 
3253
      # Not a directory, so check to see that there is only one file specified.
3254
      set dummy $files
3255
      if test $# -gt 2; then
3256
        $echo "$modename: \`$dest' is not a directory" 1>&2
3257
        $echo "$help" 1>&2
3258
        exit 1
3259
      fi
3260
    fi
3261
    case "$destdir" in
3262
    [\\/]* | [A-Za-z]:[\\/]*) ;;
3263
    *)
3264
      for file in $files; do
3265
        case "$file" in
3266
        *.lo) ;;
3267
        *)
3268
          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3269
          $echo "$help" 1>&2
3270
          exit 1
3271
          ;;
3272
        esac
3273
      done
3274
      ;;
3275
    esac
3276
 
3277
    # This variable tells wrapper scripts just to set variables rather
3278
    # than running their programs.
3279
    libtool_install_magic="$magic"
3280
 
3281
    staticlibs=
3282
    future_libdirs=
3283
    current_libdirs=
3284
    for file in $files; do
3285
 
3286
      # Do each installation.
3287
      case "$file" in
3288
      *.a | *.lib)
3289
        # Do the static libraries later.
3290
        staticlibs="$staticlibs $file"
3291
        ;;
3292
 
3293
      *.la)
3294
        # Check to see that this really is a libtool archive.
3295
        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3296
        else
3297
          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3298
          $echo "$help" 1>&2
3299
          exit 1
3300
        fi
3301
 
3302
        library_names=
3303
        old_library=
3304
        # If there is no directory component, then add one.
3305
        case "$file" in
3306
        */* | *\\*) . $file ;;
3307
        *) . ./$file ;;
3308
        esac
3309
 
3310
        # Add the libdir to current_libdirs if it is the destination.
3311
        if test "X$destdir" = "X$libdir"; then
3312
          case "$current_libdirs " in
3313
          *" $libdir "*) ;;
3314
          *) current_libdirs="$current_libdirs $libdir" ;;
3315
          esac
3316
        else
3317
          # Note the libdir as a future libdir.
3318
          case "$future_libdirs " in
3319
          *" $libdir "*) ;;
3320
          *) future_libdirs="$future_libdirs $libdir" ;;
3321
          esac
3322
        fi
3323
 
3324
        dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3325
        test "X$dir" = "X$file/" && dir=
3326
        dir="$dir$objdir"
3327
 
3328
        # See the names of the shared library.
3329
        set dummy $library_names
3330
        if test -n "$2"; then
3331
          realname="$2"
3332
          shift
3333
          shift
3334
 
3335
          # Install the shared library and build the symlinks.
3336
          $show "$install_prog $dir/$realname $destdir/$realname"
3337
          $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3338
 
3339
          if test $# -gt 0; then
3340
            # Delete the old symlinks, and create new ones.
3341
            for linkname
3342
            do
3343
              if test "$linkname" != "$realname"; then
3344
                $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3345
                $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3346
              fi
3347
            done
3348
          fi
3349
 
3350
          # Do each command in the postinstall commands.
3351
          lib="$destdir/$realname"
3352
          eval cmds=\"$postinstall_cmds\"
3353
          IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
3354
          for cmd in $cmds; do
3355
            IFS="$save_ifs"
3356
            $show "$cmd"
3357
            $run eval "$cmd" || exit $?
3358
          done
3359
          IFS="$save_ifs"
3360
        fi
3361
 
3362
        # Install the pseudo-library for information purposes.
3363
        name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3364
        instname="$dir/$name"i
3365
        $show "$install_prog $instname $destdir/$name"
3366
        $run eval "$install_prog $instname $destdir/$name" || exit $?
3367
 
3368
        # Maybe install the static library, too.
3369
        test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3370
        ;;
3371
 
3372
      *.lo)
3373
        # Install (i.e. copy) a libtool object.
3374
 
3375
        # Figure out destination file name, if it wasn't already specified.
3376
        if test -n "$destname"; then
3377
          destfile="$destdir/$destname"
3378
        else
3379
          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3380
          destfile="$destdir/$destfile"
3381
        fi
3382
 
3383
        # Deduce the name of the destination old-style object file.
3384
        case "$destfile" in
3385
        *.lo)
3386
          staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3387
          ;;
3388
        *.o | *.obj)
3389
          staticdest="$destfile"
3390
          destfile=
3391
          ;;
3392
        *)
3393
          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3394
          $echo "$help" 1>&2
3395
          exit 1
3396
          ;;
3397
        esac
3398
 
3399
        # Install the libtool object if requested.
3400
        if test -n "$destfile"; then
3401
          $show "$install_prog $file $destfile"
3402
          $run eval "$install_prog $file $destfile" || exit $?
3403
        fi
3404
 
3405
        # Install the old object if enabled.
3406
        if test "$build_old_libs" = yes; then
3407
          # Deduce the name of the old-style object file.
3408
          staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3409
 
3410
          $show "$install_prog $staticobj $staticdest"
3411
          $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3412
        fi
3413
        exit 0
3414
        ;;
3415
 
3416
      *)
3417
        # Figure out destination file name, if it wasn't already specified.
3418
        if test -n "$destname"; then
3419
          destfile="$destdir/$destname"
3420
        else
3421
          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3422
          destfile="$destdir/$destfile"
3423
        fi
3424
 
3425
        # Do a test to see if this is really a libtool program.
3426
        if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3427
          link_against_libtool_libs=
3428
          relink_command=
3429
 
3430
          # If there is no directory component, then add one.
3431
          case "$file" in
3432
          */* | *\\*) . $file ;;
3433
          *) . ./$file ;;
3434
          esac
3435
 
3436
          # Check the variables that should have been set.
3437
          if test -z "$link_against_libtool_libs"; then
3438
            $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3439
            exit 1
3440
          fi
3441
 
3442
          finalize=yes
3443
          for lib in $link_against_libtool_libs; do
3444
            # Check to see that each library is installed.
3445
            libdir=
3446
            if test -f "$lib"; then
3447
              # If there is no directory component, then add one.
3448
              case "$lib" in
3449
              */* | *\\*) . $lib ;;
3450
              *) . ./$lib ;;
3451
              esac
3452
            fi
3453
            libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3454
            if test -n "$libdir" && test ! -f "$libfile"; then
3455
              $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3456
              finalize=no
3457
            fi
3458
          done
3459
 
3460
          outputname=
3461
          if test "$fast_install" = no && test -n "$relink_command"; then
3462
            if test "$finalize" = yes && test -z "$run"; then
3463
              tmpdir="/tmp"
3464
              test -n "$TMPDIR" && tmpdir="$TMPDIR"
3465
              tmpdir="$tmpdir/libtool-$$"
3466
              if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3467
              else
3468
                $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3469
                continue
3470
              fi
3471
              outputname="$tmpdir/$file"
3472
              # Replace the output file specification.
3473
              relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3474
 
3475
              $show "$relink_command"
3476
              if $run eval "$relink_command"; then :
3477
              else
3478
                $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3479
                ${rm}r "$tmpdir"
3480
                continue
3481
              fi
3482
              file="$outputname"
3483
            else
3484
              $echo "$modename: warning: cannot relink \`$file'" 1>&2
3485
            fi
3486
          else
3487
            # Install the binary that we compiled earlier.
3488
            file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3489
          fi
3490
        fi
3491
 
3492
        $show "$install_prog$stripme $file $destfile"
3493
        $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3494
        test -n "$outputname" && ${rm}r "$tmpdir"
3495
        ;;
3496
      esac
3497
    done
3498
 
3499
    for file in $staticlibs; do
3500
      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3501
 
3502
      # Set up the ranlib parameters.
3503
      oldlib="$destdir/$name"
3504
 
3505
      $show "$install_prog $file $oldlib"
3506
      $run eval "$install_prog \$file \$oldlib" || exit $?
3507
 
3508
      # Do each command in the postinstall commands.
3509
      eval cmds=\"$old_postinstall_cmds\"
3510
      IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
3511
      for cmd in $cmds; do
3512
        IFS="$save_ifs"
3513
        $show "$cmd"
3514
        $run eval "$cmd" || exit $?
3515
      done
3516
      IFS="$save_ifs"
3517
    done
3518
 
3519
    if test -n "$future_libdirs"; then
3520
      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3521
    fi
3522
 
3523
    if test -n "$current_libdirs"; then
3524
      # Maybe just do a dry run.
3525
      test -n "$run" && current_libdirs=" -n$current_libdirs"
3526
      exec $SHELL $0 --finish$current_libdirs
3527
      exit 1
3528
    fi
3529
 
3530
    exit 0
3531
    ;;
3532
 
3533
  # libtool finish mode
3534
  finish)
3535
    modename="$modename: finish"
3536
    libdirs="$nonopt"
3537
    admincmds=
3538
 
3539
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3540
      for dir
3541
      do
3542
        libdirs="$libdirs $dir"
3543
      done
3544
 
3545
      for libdir in $libdirs; do
3546
        if test -n "$finish_cmds"; then
3547
          # Do each command in the finish commands.
3548
          eval cmds=\"$finish_cmds\"
3549
          IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
3550
          for cmd in $cmds; do
3551
            IFS="$save_ifs"
3552
            $show "$cmd"
3553
            $run eval "$cmd" || admincmds="$admincmds
3554
       $cmd"
3555
          done
3556
          IFS="$save_ifs"
3557
        fi
3558
        if test -n "$finish_eval"; then
3559
          # Do the single finish_eval.
3560
          eval cmds=\"$finish_eval\"
3561
          $run eval "$cmds" || admincmds="$admincmds
3562
       $cmds"
3563
        fi
3564
      done
3565
    fi
3566
 
3567
    # Exit here if they wanted silent mode.
3568
    test "$show" = : && exit 0
3569
 
3570
    echo "----------------------------------------------------------------------"
3571
    echo "Libraries have been installed in:"
3572
    for libdir in $libdirs; do
3573
      echo "   $libdir"
3574
    done
3575
    echo
3576
    echo "If you ever happen to want to link against installed libraries"
3577
    echo "in a given directory, LIBDIR, you must either use libtool, and"
3578
    echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3579
    echo "flag during linking and do at least one of the following:"
3580
    if test -n "$shlibpath_var"; then
3581
      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
3582
      echo "     during execution"
3583
    fi
3584
    if test -n "$runpath_var"; then
3585
      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
3586
      echo "     during linking"
3587
    fi
3588
    if test -n "$hardcode_libdir_flag_spec"; then
3589
      libdir=LIBDIR
3590
      eval flag=\"$hardcode_libdir_flag_spec\"
3591
 
3592
      echo "   - use the \`$flag' linker flag"
3593
    fi
3594
    if test -n "$admincmds"; then
3595
      echo "   - have your system administrator run these commands:$admincmds"
3596
    fi
3597
    if test -f /etc/ld.so.conf; then
3598
      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3599
    fi
3600
    echo
3601
    echo "See any operating system documentation about shared libraries for"
3602
    echo "more information, such as the ld(1) and ld.so(8) manual pages."
3603
    echo "----------------------------------------------------------------------"
3604
    exit 0
3605
    ;;
3606
 
3607
  # libtool execute mode
3608
  execute)
3609
    modename="$modename: execute"
3610
 
3611
    # The first argument is the command name.
3612
    cmd="$nonopt"
3613
    if test -z "$cmd"; then
3614
      $echo "$modename: you must specify a COMMAND" 1>&2
3615
      $echo "$help"
3616
      exit 1
3617
    fi
3618
 
3619
    # Handle -dlopen flags immediately.
3620
    for file in $execute_dlfiles; do
3621
      if test ! -f "$file"; then
3622
        $echo "$modename: \`$file' is not a file" 1>&2
3623
        $echo "$help" 1>&2
3624
        exit 1
3625
      fi
3626
 
3627
      dir=
3628
      case "$file" in
3629
      *.la)
3630
        # Check to see that this really is a libtool archive.
3631
        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3632
        else
3633
          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3634
          $echo "$help" 1>&2
3635
          exit 1
3636
        fi
3637
 
3638
        # Read the libtool library.
3639
        dlname=
3640
        library_names=
3641
 
3642
        # If there is no directory component, then add one.
3643
        case "$file" in
3644
        */* | *\\*) . $file ;;
3645
        *) . ./$file ;;
3646
        esac
3647
 
3648
        # Skip this library if it cannot be dlopened.
3649
        if test -z "$dlname"; then
3650
          # Warn if it was a shared library.
3651
          test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3652
          continue
3653
        fi
3654
 
3655
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3656
        test "X$dir" = "X$file" && dir=.
3657
 
3658
        if test -f "$dir/$objdir/$dlname"; then
3659
          dir="$dir/$objdir"
3660
        else
3661
          $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3662
          exit 1
3663
        fi
3664
        ;;
3665
 
3666
      *.lo)
3667
        # Just add the directory containing the .lo file.
3668
        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3669
        test "X$dir" = "X$file" && dir=.
3670
        ;;
3671
 
3672
      *)
3673
        $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3674
        continue
3675
        ;;
3676
      esac
3677
 
3678
      # Get the absolute pathname.
3679
      absdir=`cd "$dir" && pwd`
3680
      test -n "$absdir" && dir="$absdir"
3681
 
3682
      # Now add the directory to shlibpath_var.
3683
      if eval "test -z \"\$$shlibpath_var\""; then
3684
        eval "$shlibpath_var=\"\$dir\""
3685
      else
3686
        eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3687
      fi
3688
    done
3689
 
3690
    # This variable tells wrapper scripts just to set shlibpath_var
3691
    # rather than running their programs.
3692
    libtool_execute_magic="$magic"
3693
 
3694
    # Check if any of the arguments is a wrapper script.
3695
    args=
3696
    for file
3697
    do
3698
      case "$file" in
3699
      -*) ;;
3700
      *)
3701
        # Do a test to see if this is really a libtool program.
3702
        if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3703
          # If there is no directory component, then add one.
3704
          case "$file" in
3705
          */* | *\\*) . $file ;;
3706
          *) . ./$file ;;
3707
          esac
3708
 
3709
          # Transform arg to wrapped name.
3710
          file="$progdir/$program"
3711
        fi
3712
        ;;
3713
      esac
3714
      # Quote arguments (to preserve shell metacharacters).
3715
      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3716
      args="$args \"$file\""
3717
    done
3718
 
3719
    if test -z "$run"; then
3720
      if test -n "$shlibpath_var"; then
3721
        # Export the shlibpath_var.
3722
        eval "export $shlibpath_var"
3723
      fi
3724
 
3725
      # Restore saved enviroment variables
3726
      if test "${save_LC_ALL+set}" = set; then
3727
        LC_ALL="$save_LC_ALL"; export LC_ALL
3728
      fi
3729
      if test "${save_LANG+set}" = set; then
3730
        LANG="$save_LANG"; export LANG
3731
      fi
3732
 
3733
      # Now actually exec the command.
3734
      eval "exec \$cmd$args"
3735
 
3736
      $echo "$modename: cannot exec \$cmd$args"
3737
      exit 1
3738
    else
3739
      # Display what would be done.
3740
      if test -n "$shlibpath_var"; then
3741
        eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3742
        $echo "export $shlibpath_var"
3743
      fi
3744
      $echo "$cmd$args"
3745
      exit 0
3746
    fi
3747
    ;;
3748
 
3749
  # libtool uninstall mode
3750
  uninstall)
3751
    modename="$modename: uninstall"
3752
    rm="$nonopt"
3753
    files=
3754
 
3755
    for arg
3756
    do
3757
      case "$arg" in
3758
      -*) rm="$rm $arg" ;;
3759
      *) files="$files $arg" ;;
3760
      esac
3761
    done
3762
 
3763
    if test -z "$rm"; then
3764
      $echo "$modename: you must specify an RM program" 1>&2
3765
      $echo "$help" 1>&2
3766
      exit 1
3767
    fi
3768
 
3769
    for file in $files; do
3770
      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3771
      test "X$dir" = "X$file" && dir=.
3772
      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3773
 
3774
      rmfiles="$file"
3775
 
3776
      case "$name" in
3777
      *.la)
3778
        # Possibly a libtool archive, so verify it.
3779
        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3780
          . $dir/$name
3781
 
3782
          # Delete the libtool libraries and symlinks.
3783
          for n in $library_names; do
3784
            rmfiles="$rmfiles $dir/$n"
3785
          done
3786
          test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3787
 
3788
          $show "$rm $rmfiles"
3789
          $run $rm $rmfiles
3790
 
3791
          if test -n "$library_names"; then
3792
            # Do each command in the postuninstall commands.
3793
            eval cmds=\"$postuninstall_cmds\"
3794
            IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
3795
            for cmd in $cmds; do
3796
              IFS="$save_ifs"
3797
              $show "$cmd"
3798
              $run eval "$cmd"
3799
            done
3800
            IFS="$save_ifs"
3801
          fi
3802
 
3803
          if test -n "$old_library"; then
3804
            # Do each command in the old_postuninstall commands.
3805
            eval cmds=\"$old_postuninstall_cmds\"
3806
            IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
3807
            for cmd in $cmds; do
3808
              IFS="$save_ifs"
3809
              $show "$cmd"
3810
              $run eval "$cmd"
3811
            done
3812
            IFS="$save_ifs"
3813
          fi
3814
 
3815
          # FIXME: should reinstall the best remaining shared library.
3816
        fi
3817
        ;;
3818
 
3819
      *.lo)
3820
        if test "$build_old_libs" = yes; then
3821
          oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3822
          rmfiles="$rmfiles $dir/$oldobj"
3823
        fi
3824
        $show "$rm $rmfiles"
3825
        $run $rm $rmfiles
3826
        ;;
3827
 
3828
      *)
3829
        $show "$rm $rmfiles"
3830
        $run $rm $rmfiles
3831
        ;;
3832
      esac
3833
    done
3834
    exit 0
3835
    ;;
3836
 
3837
  "")
3838
    $echo "$modename: you must specify a MODE" 1>&2
3839
    $echo "$generic_help" 1>&2
3840
    exit 1
3841
    ;;
3842
  esac
3843
 
3844
  $echo "$modename: invalid operation mode \`$mode'" 1>&2
3845
  $echo "$generic_help" 1>&2
3846
  exit 1
3847
fi # test -z "$show_help"
3848
 
3849
# We need to display help for each of the modes.
3850
case "$mode" in
3851
"") $echo \
3852
"Usage: $modename [OPTION]... [MODE-ARG]...
3853
 
3854
Provide generalized library-building support services.
3855
 
3856
    --config          show all configuration variables
3857
    --debug           enable verbose shell tracing
3858
-n, --dry-run         display commands without modifying any files
3859
    --features        display basic configuration information and exit
3860
    --finish          same as \`--mode=finish'
3861
    --help            display this help message and exit
3862
    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
3863
    --quiet           same as \`--silent'
3864
    --silent          don't print informational messages
3865
    --version         print version information
3866
 
3867
MODE must be one of the following:
3868
 
3869
      compile         compile a source file into a libtool object
3870
      execute         automatically set library path, then run a program
3871
      finish          complete the installation of libtool libraries
3872
      install         install libraries or executables
3873
      link            create a library or an executable
3874
      uninstall       remove libraries from an installed directory
3875
 
3876
MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
3877
a more detailed description of MODE."
3878
  exit 0
3879
  ;;
3880
 
3881
compile)
3882
  $echo \
3883
"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3884
 
3885
Compile a source file into a libtool library object.
3886
 
3887
This mode accepts the following additional options:
3888
 
3889
  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
3890
  -static           always build a \`.o' file suitable for static linking
3891
 
3892
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3893
from the given SOURCEFILE.
3894
 
3895
The output file name is determined by removing the directory component from
3896
SOURCEFILE, then substituting the C source code suffix \`.c' with the
3897
library object suffix, \`.lo'."
3898
  ;;
3899
 
3900
execute)
3901
  $echo \
3902
"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3903
 
3904
Automatically set library path, then run a program.
3905
 
3906
This mode accepts the following additional options:
3907
 
3908
  -dlopen FILE      add the directory containing FILE to the library path
3909
 
3910
This mode sets the library path environment variable according to \`-dlopen'
3911
flags.
3912
 
3913
If any of the ARGS are libtool executable wrappers, then they are translated
3914
into their corresponding uninstalled binary, and any of their required library
3915
directories are added to the library path.
3916
 
3917
Then, COMMAND is executed, with ARGS as arguments."
3918
  ;;
3919
 
3920
finish)
3921
  $echo \
3922
"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3923
 
3924
Complete the installation of libtool libraries.
3925
 
3926
Each LIBDIR is a directory that contains libtool libraries.
3927
 
3928
The commands that this mode executes may require superuser privileges.  Use
3929
the \`--dry-run' option if you just want to see what would be executed."
3930
  ;;
3931
 
3932
install)
3933
  $echo \
3934
"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3935
 
3936
Install executables or libraries.
3937
 
3938
INSTALL-COMMAND is the installation command.  The first component should be
3939
either the \`install' or \`cp' program.
3940
 
3941
The rest of the components are interpreted as arguments to that command (only
3942
BSD-compatible install options are recognized)."
3943
  ;;
3944
 
3945
link)
3946
  $echo \
3947
"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3948
 
3949
Link object files or libraries together to form another library, or to
3950
create an executable program.
3951
 
3952
LINK-COMMAND is a command using the C compiler that you would use to create
3953
a program from several object files.
3954
 
3955
The following components of LINK-COMMAND are treated specially:
3956
 
3957
  -all-static       do not do any dynamic linking at all
3958
  -avoid-version    do not add a version suffix if possible
3959
  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
3960
  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
3961
  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3962
  -export-symbols SYMFILE
3963
                    try to export only the symbols listed in SYMFILE
3964
  -export-symbols-regex REGEX
3965
                    try to export only the symbols matching REGEX
3966
  -LLIBDIR          search LIBDIR for required installed libraries
3967
  -lNAME            OUTPUT-FILE requires the installed library libNAME
3968
  -module           build a library that can dlopened
3969
  -no-undefined     declare that a library does not refer to external symbols
3970
  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
3971
  -release RELEASE  specify package release information
3972
  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
3973
  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
3974
  -static           do not do any dynamic linking of libtool libraries
3975
  -version-info CURRENT[:REVISION[:AGE]]
3976
                    specify library version info [each variable defaults to 0]
3977
 
3978
All other options (arguments beginning with \`-') are ignored.
3979
 
3980
Every other argument is treated as a filename.  Files ending in \`.la' are
3981
treated as uninstalled libtool libraries, other files are standard or library
3982
object files.
3983
 
3984
If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
3985
only library objects (\`.lo' files) may be specified, and \`-rpath' is
3986
required, except when creating a convenience library.
3987
 
3988
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
3989
using \`ar' and \`ranlib', or on Windows using \`lib'.
3990
 
3991
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
3992
is created, otherwise an executable program is created."
3993
  ;;
3994
 
3995
uninstall)
3996
  $echo \
3997
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
3998
 
3999
Remove libraries from an installation directory.
4000
 
4001
RM is the name of the program to use to delete files associated with each FILE
4002
(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
4003
to RM.
4004
 
4005
If FILE is a libtool library, all the files associated with it are deleted.
4006
Otherwise, only FILE itself is deleted using RM."
4007
  ;;
4008
 
4009
*)
4010
  $echo "$modename: invalid operation mode \`$mode'" 1>&2
4011
  $echo "$help" 1>&2
4012
  exit 1
4013
  ;;
4014
esac
4015
 
4016
echo
4017
$echo "Try \`$modename --help' for more information about other modes."
4018
 
4019
exit 0
4020
 
4021
# Local Variables:
4022
# mode:shell-script
4023
# sh-indentation:2
4024
# End:

powered by: WebSVN 2.1.0

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