~ubuntu-branches/debian/sid/unixodbc/sid

« back to all changes in this revision

Viewing changes to Drivers/MySQL/ltmain.sh

  • Committer: Bazaar Package Importer
  • Author(s): Steve Langasek
  • Date: 2004-10-15 03:07:52 UTC
  • mfrom: (2.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20041015030752-dzw4vhxlgycz3woj
Tags: 2.2.4-11
Brown paper bag me: conflicts do not write themselves just because
you add a line to the changelog.

Show diffs side-by-side

added added

removed removed

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