~ubuntu-branches/ubuntu/karmic/cryptsetup/karmic-updates

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