~asac/diff-ext/upstream.source

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