Statistics
| Branch: | Tag: | Revision:

root / ltmain.sh @ master

History | View | Annotate | Download (195 KB)

1 4012ec30 Hiroyuki Yamamoto
# 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 Debian 1.5.26-1ubuntu1"
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
	    case "$@ " in
285
	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
286
	      # The compiler in the base compile command matches
287
	      # the one in the tagged configuration.
288
	      # Assume this is the tagged configuration we want.
289
	      tagname=$z
290
	      break
291
	      ;;
292
	    esac
293
	  fi
294
	done
295
	# If $tagname still isn't set, then no tagged configuration
296
	# was found and let the user know that the "--tag" command
297
	# line option must be used.
298
	if test -z "$tagname"; then
299
	  $echo "$modename: unable to infer tagged configuration"
300
	  $echo "$modename: specify a tag with \`--tag'" 1>&2
301
	  exit $EXIT_FAILURE
302
#        else
303
#          $echo "$modename: using $tagname tagged configuration"
304
	fi
305
	;;
306
      esac
307
    fi
308
}
309
310
311
# func_extract_an_archive dir oldlib
312
func_extract_an_archive ()
313
{
314
    f_ex_an_ar_dir="$1"; shift
315
    f_ex_an_ar_oldlib="$1"
316
317
    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
318
    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
319
    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
320
     :
321
    else
322
      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
323
      exit $EXIT_FAILURE
324
    fi
325
}
326
327
# func_extract_archives gentop oldlib ...
328
func_extract_archives ()
329
{
330
    my_gentop="$1"; shift
331
    my_oldlibs=${1+"$@"}
332
    my_oldobjs=""
333
    my_xlib=""
334
    my_xabs=""
335
    my_xdir=""
336
    my_status=""
337
338
    $show "${rm}r $my_gentop"
339
    $run ${rm}r "$my_gentop"
340
    $show "$mkdir $my_gentop"
341
    $run $mkdir "$my_gentop"
342
    my_status=$?
343
    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
344
      exit $my_status
345
    fi
346
347
    for my_xlib in $my_oldlibs; do
348
      # Extract the objects.
349
      case $my_xlib in
350
	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
351
	*) my_xabs=`pwd`"/$my_xlib" ;;
352
      esac
353
      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
354
      my_xlib_u=$my_xlib
355
      while :; do
356
        case " $extracted_archives " in
357
	*" $my_xlib_u "*)
358
	  extracted_serial=`expr $extracted_serial + 1`
359
	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
360
	*) break ;;
361
	esac
362
      done
363
      extracted_archives="$extracted_archives $my_xlib_u"
364
      my_xdir="$my_gentop/$my_xlib_u"
365
366
      $show "${rm}r $my_xdir"
367
      $run ${rm}r "$my_xdir"
368
      $show "$mkdir $my_xdir"
369
      $run $mkdir "$my_xdir"
370
      exit_status=$?
371
      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
372
	exit $exit_status
373
      fi
374
      case $host in
375
      *-darwin*)
376
	$show "Extracting $my_xabs"
377
	# Do not bother doing anything if just a dry run
378
	if test -z "$run"; then
379
	  darwin_orig_dir=`pwd`
380
	  cd $my_xdir || exit $?
381
	  darwin_archive=$my_xabs
382
	  darwin_curdir=`pwd`
383
	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
384
	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
385
	  if test -n "$darwin_arches"; then 
386
	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
387
	    darwin_arch=
388
	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
389
	    for darwin_arch in  $darwin_arches ; do
390
	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
391
	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
392
	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
393
	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
394
	      cd "$darwin_curdir"
395
	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
396
	    done # $darwin_arches
397
      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
398
	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
399
	    darwin_file=
400
	    darwin_files=
401
	    for darwin_file in $darwin_filelist; do
402
	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
403
	      lipo -create -output "$darwin_file" $darwin_files
404
	    done # $darwin_filelist
405
	    ${rm}r unfat-$$
406
	    cd "$darwin_orig_dir"
407
	  else
408
	    cd "$darwin_orig_dir"
409
 	    func_extract_an_archive "$my_xdir" "$my_xabs"
410
	  fi # $darwin_arches
411
	fi # $run
412
	;;
413
      *)
414
        func_extract_an_archive "$my_xdir" "$my_xabs"
415
        ;;
416
      esac
417
      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
418
    done
419
    func_extract_archives_result="$my_oldobjs"
420
}
421
# End of Shell function definitions
422
#####################################
423
424
# Darwin sucks
425
eval std_shrext=\"$shrext_cmds\"
426
427
disable_libs=no
428
429
# Parse our command line options once, thoroughly.
430
while test "$#" -gt 0
431
do
432
  arg="$1"
433
  shift
434
435
  case $arg in
436
  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
437
  *) optarg= ;;
438
  esac
439
440
  # If the previous option needs an argument, assign it.
441
  if test -n "$prev"; then
442
    case $prev in
443
    execute_dlfiles)
444
      execute_dlfiles="$execute_dlfiles $arg"
445
      ;;
446
    tag)
447
      tagname="$arg"
448
      preserve_args="${preserve_args}=$arg"
449
450
      # Check whether tagname contains only valid characters
451
      case $tagname in
452
      *[!-_A-Za-z0-9,/]*)
453
	$echo "$progname: invalid tag name: $tagname" 1>&2
454
	exit $EXIT_FAILURE
455
	;;
456
      esac
457
458
      case $tagname in
459
      CC)
460
	# Don't test for the "default" C tag, as we know, it's there, but
461
	# not specially marked.
462
	;;
463
      *)
464
	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
465
	  taglist="$taglist $tagname"
466
	  # Evaluate the configuration.
467
	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
468
	else
469
	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
470
	fi
471
	;;
472
      esac
473
      ;;
474
    *)
475
      eval "$prev=\$arg"
476
      ;;
477
    esac
478
479
    prev=
480
    prevopt=
481
    continue
482
  fi
483
484
  # Have we seen a non-optional argument yet?
485
  case $arg in
486
  --help)
487
    show_help=yes
488
    ;;
489
490
  --version)
491
    echo "\
492
$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
493
494
Copyright (C) 2008  Free Software Foundation, Inc.
495
This is free software; see the source for copying conditions.  There is NO
496
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
497
    exit $?
498
    ;;
499
500
  --config)
501
    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
502
    # Now print the configurations for the tags.
503
    for tagname in $taglist; do
504
      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
505
    done
506
    exit $?
507
    ;;
508
509
  --debug)
510
    $echo "$progname: enabling shell trace mode"
511
    set -x
512
    preserve_args="$preserve_args $arg"
513
    ;;
514
515
  --dry-run | -n)
516
    run=:
517
    ;;
518
519
  --features)
520
    $echo "host: $host"
521
    if test "$build_libtool_libs" = yes; then
522
      $echo "enable shared libraries"
523
    else
524
      $echo "disable shared libraries"
525
    fi
526
    if test "$build_old_libs" = yes; then
527
      $echo "enable static libraries"
528
    else
529
      $echo "disable static libraries"
530
    fi
531
    exit $?
532
    ;;
533
534
  --finish) mode="finish" ;;
535
536
  --mode) prevopt="--mode" prev=mode ;;
537
  --mode=*) mode="$optarg" ;;
538
539
  --preserve-dup-deps) duplicate_deps="yes" ;;
540
541
  --quiet | --silent)
542
    show=:
543
    preserve_args="$preserve_args $arg"
544
    ;;
545
546
  --tag)
547
    prevopt="--tag"
548
    prev=tag
549
    preserve_args="$preserve_args --tag"
550
    ;;
551
  --tag=*)
552
    set tag "$optarg" ${1+"$@"}
553
    shift
554
    prev=tag
555
    preserve_args="$preserve_args --tag"
556
    ;;
557
558
  -dlopen)
559
    prevopt="-dlopen"
560
    prev=execute_dlfiles
561
    ;;
562
563
  -*)
564
    $echo "$modename: unrecognized option \`$arg'" 1>&2
565
    $echo "$help" 1>&2
566
    exit $EXIT_FAILURE
567
    ;;
568
569
  *)
570
    nonopt="$arg"
571
    break
572
    ;;
573
  esac
574
done
575
576
if test -n "$prevopt"; then
577
  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
578
  $echo "$help" 1>&2
579
  exit $EXIT_FAILURE
580
fi
581
582
case $disable_libs in
583
no) 
584
  ;;
585
shared)
586
  build_libtool_libs=no
587
  build_old_libs=yes
588
  ;;
589
static)
590
  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
591
  ;;
592
esac
593
594
# If this variable is set in any of the actions, the command in it
595
# will be execed at the end.  This prevents here-documents from being
596
# left over by shells.
597
exec_cmd=
598
599
if test -z "$show_help"; then
600
601
  # Infer the operation mode.
602
  if test -z "$mode"; then
603
    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
604
    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
605
    case $nonopt in
606
    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
607
      mode=link
608
      for arg
609
      do
610
	case $arg in
611
	-c)
612
	   mode=compile
613
	   break
614
	   ;;
615
	esac
616
      done
617
      ;;
618
    *db | *dbx | *strace | *truss)
619
      mode=execute
620
      ;;
621
    *install*|cp|mv)
622
      mode=install
623
      ;;
624
    *rm)
625
      mode=uninstall
626
      ;;
627
    *)
628
      # If we have no mode, but dlfiles were specified, then do execute mode.
629
      test -n "$execute_dlfiles" && mode=execute
630
631
      # Just use the default operation mode.
632
      if test -z "$mode"; then
633
	if test -n "$nonopt"; then
634
	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
635
	else
636
	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
637
	fi
638
      fi
639
      ;;
640
    esac
641
  fi
642
643
  # Only execute mode is allowed to have -dlopen flags.
644
  if test -n "$execute_dlfiles" && test "$mode" != execute; then
645
    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
646
    $echo "$help" 1>&2
647
    exit $EXIT_FAILURE
648
  fi
649
650
  # Change the help message to a mode-specific one.
651
  generic_help="$help"
652
  help="Try \`$modename --help --mode=$mode' for more information."
653
654
  # These modes are in order of execution frequency so that they run quickly.
655
  case $mode in
656
  # libtool compile mode
657
  compile)
658
    modename="$modename: compile"
659
    # Get the compilation command and the source file.
660
    base_compile=
661
    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
662
    suppress_opt=yes
663
    suppress_output=
664
    arg_mode=normal
665
    libobj=
666
    later=
667
668
    for arg
669
    do
670
      case $arg_mode in
671
      arg  )
672
	# do not "continue".  Instead, add this to base_compile
673
	lastarg="$arg"
674
	arg_mode=normal
675
	;;
676
677
      target )
678
	libobj="$arg"
679
	arg_mode=normal
680
	continue
681
	;;
682
683
      normal )
684
	# Accept any command-line options.
685
	case $arg in
686
	-o)
687
	  if test -n "$libobj" ; then
688
	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
689
	    exit $EXIT_FAILURE
690
	  fi
691
	  arg_mode=target
692
	  continue
693
	  ;;
694
695
	-static | -prefer-pic | -prefer-non-pic)
696
	  later="$later $arg"
697
	  continue
698
	  ;;
699
700
	-no-suppress)
701
	  suppress_opt=no
702
	  continue
703
	  ;;
704
705
	-Xcompiler)
706
	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
707
	  continue      #  The current "srcfile" will either be retained or
708
	  ;;            #  replaced later.  I would guess that would be a bug.
709
710
	-Wc,*)
711
	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
712
	  lastarg=
713
	  save_ifs="$IFS"; IFS=','
714
 	  for arg in $args; do
715
	    IFS="$save_ifs"
716
717
	    # Double-quote args containing other shell metacharacters.
718
	    # Many Bourne shells cannot handle close brackets correctly
719
	    # in scan sets, so we specify it separately.
720
	    case $arg in
721
	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
722
	      arg="\"$arg\""
723
	      ;;
724
	    esac
725
	    lastarg="$lastarg $arg"
726
	  done
727
	  IFS="$save_ifs"
728
	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
729
730
	  # Add the arguments to base_compile.
731
	  base_compile="$base_compile $lastarg"
732
	  continue
733
	  ;;
734
735
	* )
736
	  # Accept the current argument as the source file.
737
	  # The previous "srcfile" becomes the current argument.
738
	  #
739
	  lastarg="$srcfile"
740
	  srcfile="$arg"
741
	  ;;
742
	esac  #  case $arg
743
	;;
744
      esac    #  case $arg_mode
745
746
      # Aesthetically quote the previous argument.
747
      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
748
749
      case $lastarg in
750
      # Double-quote args containing other shell metacharacters.
751
      # Many Bourne shells cannot handle close brackets correctly
752
      # in scan sets, and some SunOS ksh mistreat backslash-escaping
753
      # in scan sets (worked around with variable expansion),
754
      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
755
      # at all, so we specify them separately.
756
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
757
	lastarg="\"$lastarg\""
758
	;;
759
      esac
760
761
      base_compile="$base_compile $lastarg"
762
    done # for arg
763
764
    case $arg_mode in
765
    arg)
766
      $echo "$modename: you must specify an argument for -Xcompile"
767
      exit $EXIT_FAILURE
768
      ;;
769
    target)
770
      $echo "$modename: you must specify a target with \`-o'" 1>&2
771
      exit $EXIT_FAILURE
772
      ;;
773
    *)
774
      # Get the name of the library object.
775
      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
776
      ;;
777
    esac
778
779
    # Recognize several different file suffixes.
780
    # If the user specifies -o file.o, it is replaced with file.lo
781
    xform='[cCFSifmso]'
782
    case $libobj in
783
    *.ada) xform=ada ;;
784
    *.adb) xform=adb ;;
785
    *.ads) xform=ads ;;
786
    *.asm) xform=asm ;;
787
    *.c++) xform=c++ ;;
788
    *.cc) xform=cc ;;
789
    *.ii) xform=ii ;;
790
    *.class) xform=class ;;
791
    *.cpp) xform=cpp ;;
792
    *.cxx) xform=cxx ;;
793
    *.[fF][09]?) xform=[fF][09]. ;;
794
    *.for) xform=for ;;
795
    *.java) xform=java ;;
796
    *.obj) xform=obj ;;
797
    *.sx) xform=sx ;;
798
    esac
799
800
    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
801
802
    case $libobj in
803
    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
804
    *)
805
      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
806
      exit $EXIT_FAILURE
807
      ;;
808
    esac
809
810
    func_infer_tag $base_compile
811
812
    for arg in $later; do
813
      case $arg in
814
      -static)
815
	build_old_libs=yes
816
	continue
817
	;;
818
819
      -prefer-pic)
820
	pic_mode=yes
821
	continue
822
	;;
823
824
      -prefer-non-pic)
825
	pic_mode=no
826
	continue
827
	;;
828
      esac
829
    done
830
831
    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
832
    case $qlibobj in
833
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
834
	qlibobj="\"$qlibobj\"" ;;
835
    esac
836
    test "X$libobj" != "X$qlibobj" \
837
	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
838
	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
839
    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
840
    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
841
    if test "X$xdir" = "X$obj"; then
842
      xdir=
843
    else
844
      xdir=$xdir/
845
    fi
846
    lobj=${xdir}$objdir/$objname
847
848
    if test -z "$base_compile"; then
849
      $echo "$modename: you must specify a compilation command" 1>&2
850
      $echo "$help" 1>&2
851
      exit $EXIT_FAILURE
852
    fi
853
854
    # Delete any leftover library objects.
855
    if test "$build_old_libs" = yes; then
856
      removelist="$obj $lobj $libobj ${libobj}T"
857
    else
858
      removelist="$lobj $libobj ${libobj}T"
859
    fi
860
861
    $run $rm $removelist
862
    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
863
864
    # On Cygwin there's no "real" PIC flag so we must build both object types
865
    case $host_os in
866
    cygwin* | mingw* | pw32* | os2*)
867
      pic_mode=default
868
      ;;
869
    esac
870
    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
871
      # non-PIC code in shared libraries is not supported
872
      pic_mode=default
873
    fi
874
875
    # Calculate the filename of the output object if compiler does
876
    # not support -o with -c
877
    if test "$compiler_c_o" = no; then
878
      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
879
      lockfile="$output_obj.lock"
880
      removelist="$removelist $output_obj $lockfile"
881
      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
882
    else
883
      output_obj=
884
      need_locks=no
885
      lockfile=
886
    fi
887
888
    # Lock this critical section if it is needed
889
    # We use this script file to make the link, it avoids creating a new file
890
    if test "$need_locks" = yes; then
891
      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
892
	$show "Waiting for $lockfile to be removed"
893
	sleep 2
894
      done
895
    elif test "$need_locks" = warn; then
896
      if test -f "$lockfile"; then
897
	$echo "\
898
*** ERROR, $lockfile exists and contains:
899
`cat $lockfile 2>/dev/null`
900
901
This indicates that another process is trying to use the same
902
temporary object file, and libtool could not work around it because
903
your compiler does not support \`-c' and \`-o' together.  If you
904
repeat this compilation, it may succeed, by chance, but you had better
905
avoid parallel builds (make -j) in this platform, or get a better
906
compiler."
907
908
	$run $rm $removelist
909
	exit $EXIT_FAILURE
910
      fi
911
      $echo "$srcfile" > "$lockfile"
912
    fi
913
914
    if test -n "$fix_srcfile_path"; then
915
      eval srcfile=\"$fix_srcfile_path\"
916
    fi
917
    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
918
    case $qsrcfile in
919
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
920
      qsrcfile="\"$qsrcfile\"" ;;
921
    esac
922
923
    $run $rm "$libobj" "${libobj}T"
924
925
    # Create a libtool object file (analogous to a ".la" file),
926
    # but don't create it if we're doing a dry run.
927
    test -z "$run" && cat > ${libobj}T <<EOF
928
# $libobj - a libtool object file
929
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
930
#
931
# Please DO NOT delete this file!
932
# It is necessary for linking the library.
933
934
# Name of the PIC object.
935
EOF
936
937
    # Only build a PIC object if we are building libtool libraries.
938
    if test "$build_libtool_libs" = yes; then
939
      # Without this assignment, base_compile gets emptied.
940
      fbsd_hideous_sh_bug=$base_compile
941
942
      if test "$pic_mode" != no; then
943
	command="$base_compile $qsrcfile $pic_flag"
944
      else
945
	# Don't build PIC code
946
	command="$base_compile $qsrcfile"
947
      fi
948
949
      if test ! -d "${xdir}$objdir"; then
950
	$show "$mkdir ${xdir}$objdir"
951
	$run $mkdir ${xdir}$objdir
952
	exit_status=$?
953
	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
954
	  exit $exit_status
955
	fi
956
      fi
957
958
      if test -z "$output_obj"; then
959
	# Place PIC objects in $objdir
960
	command="$command -o $lobj"
961
      fi
962
963
      $run $rm "$lobj" "$output_obj"
964
965
      $show "$command"
966
      if $run eval $lt_env "$command"; then :
967
      else
968
	test -n "$output_obj" && $run $rm $removelist
969
	exit $EXIT_FAILURE
970
      fi
971
972
      if test "$need_locks" = warn &&
973
	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
974
	$echo "\
975
*** ERROR, $lockfile contains:
976
`cat $lockfile 2>/dev/null`
977
978
but it should contain:
979
$srcfile
980
981
This indicates that another process is trying to use the same
982
temporary object file, and libtool could not work around it because
983
your compiler does not support \`-c' and \`-o' together.  If you
984
repeat this compilation, it may succeed, by chance, but you had better
985
avoid parallel builds (make -j) in this platform, or get a better
986
compiler."
987
988
	$run $rm $removelist
989
	exit $EXIT_FAILURE
990
      fi
991
992
      # Just move the object if needed, then go on to compile the next one
993
      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
994
	$show "$mv $output_obj $lobj"
995
	if $run $mv $output_obj $lobj; then :
996
	else
997
	  error=$?
998
	  $run $rm $removelist
999
	  exit $error
1000
	fi
1001
      fi
1002
1003
      # Append the name of the PIC object to the libtool object file.
1004
      test -z "$run" && cat >> ${libobj}T <<EOF
1005
pic_object='$objdir/$objname'
1006
1007
EOF
1008
1009
      # Allow error messages only from the first compilation.
1010
      if test "$suppress_opt" = yes; then
1011
        suppress_output=' >/dev/null 2>&1'
1012
      fi
1013
    else
1014
      # No PIC object so indicate it doesn't exist in the libtool
1015
      # object file.
1016
      test -z "$run" && cat >> ${libobj}T <<EOF
1017
pic_object=none
1018
1019
EOF
1020
    fi
1021
1022
    # Only build a position-dependent object if we build old libraries.
1023
    if test "$build_old_libs" = yes; then
1024
      if test "$pic_mode" != yes; then
1025
	# Don't build PIC code
1026
	command="$base_compile $qsrcfile"
1027
      else
1028
	command="$base_compile $qsrcfile $pic_flag"
1029
      fi
1030
      if test "$compiler_c_o" = yes; then
1031
	command="$command -o $obj"
1032
      fi
1033
1034
      # Suppress compiler output if we already did a PIC compilation.
1035
      command="$command$suppress_output"
1036
      $run $rm "$obj" "$output_obj"
1037
      $show "$command"
1038
      if $run eval $lt_env "$command"; then :
1039
      else
1040
	$run $rm $removelist
1041
	exit $EXIT_FAILURE
1042
      fi
1043
1044
      if test "$need_locks" = warn &&
1045
	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1046
	$echo "\
1047
*** ERROR, $lockfile contains:
1048
`cat $lockfile 2>/dev/null`
1049
1050
but it should contain:
1051
$srcfile
1052
1053
This indicates that another process is trying to use the same
1054
temporary object file, and libtool could not work around it because
1055
your compiler does not support \`-c' and \`-o' together.  If you
1056
repeat this compilation, it may succeed, by chance, but you had better
1057
avoid parallel builds (make -j) in this platform, or get a better
1058
compiler."
1059
1060
	$run $rm $removelist
1061
	exit $EXIT_FAILURE
1062
      fi
1063
1064
      # Just move the object if needed
1065
      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1066
	$show "$mv $output_obj $obj"
1067
	if $run $mv $output_obj $obj; then :
1068
	else
1069
	  error=$?
1070
	  $run $rm $removelist
1071
	  exit $error
1072
	fi
1073
      fi
1074
1075
      # Append the name of the non-PIC object the libtool object file.
1076
      # Only append if the libtool object file exists.
1077
      test -z "$run" && cat >> ${libobj}T <<EOF
1078
# Name of the non-PIC object.
1079
non_pic_object='$objname'
1080
1081
EOF
1082
    else
1083
      # Append the name of the non-PIC object the libtool object file.
1084
      # Only append if the libtool object file exists.
1085
      test -z "$run" && cat >> ${libobj}T <<EOF
1086
# Name of the non-PIC object.
1087
non_pic_object=none
1088
1089
EOF
1090
    fi
1091
1092
    $run $mv "${libobj}T" "${libobj}"
1093
1094
    # Unlock the critical section if it was locked
1095
    if test "$need_locks" != no; then
1096
      $run $rm "$lockfile"
1097
    fi
1098
1099
    exit $EXIT_SUCCESS
1100
    ;;
1101
1102
  # libtool link mode
1103
  link | relink)
1104
    modename="$modename: link"
1105
    case $host in
1106
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1107
      # It is impossible to link a dll without this setting, and
1108
      # we shouldn't force the makefile maintainer to figure out
1109
      # which system we are compiling for in order to pass an extra
1110
      # flag for every libtool invocation.
1111
      # allow_undefined=no
1112
1113
      # FIXME: Unfortunately, there are problems with the above when trying
1114
      # to make a dll which has undefined symbols, in which case not
1115
      # even a static library is built.  For now, we need to specify
1116
      # -no-undefined on the libtool link line when we can be certain
1117
      # that all symbols are satisfied, otherwise we get a static library.
1118
      allow_undefined=yes
1119
      ;;
1120
    *)
1121
      allow_undefined=yes
1122
      ;;
1123
    esac
1124
    libtool_args="$nonopt"
1125
    base_compile="$nonopt $@"
1126
    compile_command="$nonopt"
1127
    finalize_command="$nonopt"
1128
1129
    compile_rpath=
1130
    finalize_rpath=
1131
    compile_shlibpath=
1132
    finalize_shlibpath=
1133
    convenience=
1134
    old_convenience=
1135
    deplibs=
1136
    old_deplibs=
1137
    compiler_flags=
1138
    linker_flags=
1139
    dllsearchpath=
1140
    lib_search_path=`pwd`
1141
    inst_prefix_dir=
1142
1143
    avoid_version=no
1144
    dlfiles=
1145
    dlprefiles=
1146
    dlself=no
1147
    export_dynamic=no
1148
    export_symbols=
1149
    export_symbols_regex=
1150
    generated=
1151
    libobjs=
1152
    ltlibs=
1153
    module=no
1154
    no_install=no
1155
    objs=
1156
    non_pic_objects=
1157
    notinst_path= # paths that contain not-installed libtool libraries
1158
    precious_files_regex=
1159
    prefer_static_libs=no
1160
    preload=no
1161
    prev=
1162
    prevarg=
1163
    release=
1164
    rpath=
1165
    xrpath=
1166
    perm_rpath=
1167
    temp_rpath=
1168
    thread_safe=no
1169
    vinfo=
1170
    vinfo_number=no
1171
    single_module="${wl}-single_module"
1172
1173
    func_infer_tag $base_compile
1174
1175
    # We need to know -static, to get the right output filenames.
1176
    for arg
1177
    do
1178
      case $arg in
1179
      -all-static | -static | -static-libtool-libs)
1180
	case $arg in
1181
	-all-static)
1182
	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1183
	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1184
	  fi
1185
	  if test -n "$link_static_flag"; then
1186
	    dlopen_self=$dlopen_self_static
1187
	  fi
1188
	  prefer_static_libs=yes
1189
	  ;;
1190
	-static)
1191
	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1192
	    dlopen_self=$dlopen_self_static
1193
	  fi
1194
	  prefer_static_libs=built
1195
	  ;;
1196
	-static-libtool-libs)
1197
	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1198
	    dlopen_self=$dlopen_self_static
1199
	  fi
1200
	  prefer_static_libs=yes
1201
	  ;;
1202
	esac
1203
	build_libtool_libs=no
1204
	build_old_libs=yes
1205
	break
1206
	;;
1207
      esac
1208
    done
1209
1210
    # See if our shared archives depend on static archives.
1211
    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1212
1213
    # Go through the arguments, transforming them on the way.
1214
    while test "$#" -gt 0; do
1215
      arg="$1"
1216
      shift
1217
      case $arg in
1218
      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1219
	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1220
	;;
1221
      *) qarg=$arg ;;
1222
      esac
1223
      libtool_args="$libtool_args $qarg"
1224
1225
      # If the previous option needs an argument, assign it.
1226
      if test -n "$prev"; then
1227
	case $prev in
1228
	output)
1229
	  compile_command="$compile_command @OUTPUT@"
1230
	  finalize_command="$finalize_command @OUTPUT@"
1231
	  ;;
1232
	esac
1233
1234
	case $prev in
1235
	dlfiles|dlprefiles)
1236
	  if test "$preload" = no; then
1237
	    # Add the symbol object into the linking commands.
1238
	    compile_command="$compile_command @SYMFILE@"
1239
	    finalize_command="$finalize_command @SYMFILE@"
1240
	    preload=yes
1241
	  fi
1242
	  case $arg in
1243
	  *.la | *.lo) ;;  # We handle these cases below.
1244
	  force)
1245
	    if test "$dlself" = no; then
1246
	      dlself=needless
1247
	      export_dynamic=yes
1248
	    fi
1249
	    prev=
1250
	    continue
1251
	    ;;
1252
	  self)
1253
	    if test "$prev" = dlprefiles; then
1254
	      dlself=yes
1255
	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1256
	      dlself=yes
1257
	    else
1258
	      dlself=needless
1259
	      export_dynamic=yes
1260
	    fi
1261
	    prev=
1262
	    continue
1263
	    ;;
1264
	  *)
1265
	    if test "$prev" = dlfiles; then
1266
	      dlfiles="$dlfiles $arg"
1267
	    else
1268
	      dlprefiles="$dlprefiles $arg"
1269
	    fi
1270
	    prev=
1271
	    continue
1272
	    ;;
1273
	  esac
1274
	  ;;
1275
	expsyms)
1276
	  export_symbols="$arg"
1277
	  if test ! -f "$arg"; then
1278
	    $echo "$modename: symbol file \`$arg' does not exist"
1279
	    exit $EXIT_FAILURE
1280
	  fi
1281
	  prev=
1282
	  continue
1283
	  ;;
1284
	expsyms_regex)
1285
	  export_symbols_regex="$arg"
1286
	  prev=
1287
	  continue
1288
	  ;;
1289
	inst_prefix)
1290
	  inst_prefix_dir="$arg"
1291
	  prev=
1292
	  continue
1293
	  ;;
1294
	precious_regex)
1295
	  precious_files_regex="$arg"
1296
	  prev=
1297
	  continue
1298
	  ;;
1299
	release)
1300
	  release="-$arg"
1301
	  prev=
1302
	  continue
1303
	  ;;
1304
	objectlist)
1305
	  if test -f "$arg"; then
1306
	    save_arg=$arg
1307
	    moreargs=
1308
	    for fil in `cat $save_arg`
1309
	    do
1310
#	      moreargs="$moreargs $fil"
1311
	      arg=$fil
1312
	      # A libtool-controlled object.
1313
1314
	      # Check to see that this really is a libtool object.
1315
	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1316
		pic_object=
1317
		non_pic_object=
1318
1319
		# Read the .lo file
1320
		# If there is no directory component, then add one.
1321
		case $arg in
1322
		*/* | *\\*) . $arg ;;
1323
		*) . ./$arg ;;
1324
		esac
1325
1326
		if test -z "$pic_object" || \
1327
		   test -z "$non_pic_object" ||
1328
		   test "$pic_object" = none && \
1329
		   test "$non_pic_object" = none; then
1330
		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1331
		  exit $EXIT_FAILURE
1332
		fi
1333
1334
		# Extract subdirectory from the argument.
1335
		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1336
		if test "X$xdir" = "X$arg"; then
1337
		  xdir=
1338
		else
1339
		  xdir="$xdir/"
1340
		fi
1341
1342
		if test "$pic_object" != none; then
1343
		  # Prepend the subdirectory the object is found in.
1344
		  pic_object="$xdir$pic_object"
1345
1346
		  if test "$prev" = dlfiles; then
1347
		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1348
		      dlfiles="$dlfiles $pic_object"
1349
		      prev=
1350
		      continue
1351
		    else
1352
		      # If libtool objects are unsupported, then we need to preload.
1353
		      prev=dlprefiles
1354
		    fi
1355
		  fi
1356
1357
		  # CHECK ME:  I think I busted this.  -Ossama
1358
		  if test "$prev" = dlprefiles; then
1359
		    # Preload the old-style object.
1360
		    dlprefiles="$dlprefiles $pic_object"
1361
		    prev=
1362
		  fi
1363
1364
		  # A PIC object.
1365
		  libobjs="$libobjs $pic_object"
1366
		  arg="$pic_object"
1367
		fi
1368
1369
		# Non-PIC object.
1370
		if test "$non_pic_object" != none; then
1371
		  # Prepend the subdirectory the object is found in.
1372
		  non_pic_object="$xdir$non_pic_object"
1373
1374
		  # A standard non-PIC object
1375
		  non_pic_objects="$non_pic_objects $non_pic_object"
1376
		  if test -z "$pic_object" || test "$pic_object" = none ; then
1377
		    arg="$non_pic_object"
1378
		  fi
1379
		else
1380
		  # If the PIC object exists, use it instead.
1381
		  # $xdir was prepended to $pic_object above.
1382
		  non_pic_object="$pic_object"
1383
		  non_pic_objects="$non_pic_objects $non_pic_object"
1384
		fi
1385
	      else
1386
		# Only an error if not doing a dry-run.
1387
		if test -z "$run"; then
1388
		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1389
		  exit $EXIT_FAILURE
1390
		else
1391
		  # Dry-run case.
1392
1393
		  # Extract subdirectory from the argument.
1394
		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1395
		  if test "X$xdir" = "X$arg"; then
1396
		    xdir=
1397
		  else
1398
		    xdir="$xdir/"
1399
		  fi
1400
1401
		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1402
		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1403
		  libobjs="$libobjs $pic_object"
1404
		  non_pic_objects="$non_pic_objects $non_pic_object"
1405
		fi
1406
	      fi
1407
	    done
1408
	  else
1409
	    $echo "$modename: link input file \`$save_arg' does not exist"
1410
	    exit $EXIT_FAILURE
1411
	  fi
1412
	  arg=$save_arg
1413
	  prev=
1414
	  continue
1415
	  ;;
1416
	rpath | xrpath)
1417
	  # We need an absolute path.
1418
	  case $arg in
1419
	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1420
	  *)
1421
	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1422
	    exit $EXIT_FAILURE
1423
	    ;;
1424
	  esac
1425
	  if test "$prev" = rpath; then
1426
	    case "$rpath " in
1427
	    *" $arg "*) ;;
1428
	    *) rpath="$rpath $arg" ;;
1429
	    esac
1430
	  else
1431
	    case "$xrpath " in
1432
	    *" $arg "*) ;;
1433
	    *) xrpath="$xrpath $arg" ;;
1434
	    esac
1435
	  fi
1436
	  prev=
1437
	  continue
1438
	  ;;
1439
	xcompiler)
1440
	  compiler_flags="$compiler_flags $qarg"
1441
	  prev=
1442
	  compile_command="$compile_command $qarg"
1443
	  finalize_command="$finalize_command $qarg"
1444
	  continue
1445
	  ;;
1446
	xlinker)
1447
	  linker_flags="$linker_flags $qarg"
1448
	  compiler_flags="$compiler_flags $wl$qarg"
1449
	  prev=
1450
	  compile_command="$compile_command $wl$qarg"
1451
	  finalize_command="$finalize_command $wl$qarg"
1452
	  continue
1453
	  ;;
1454
	xcclinker)
1455
	  linker_flags="$linker_flags $qarg"
1456
	  compiler_flags="$compiler_flags $qarg"
1457
	  prev=
1458
	  compile_command="$compile_command $qarg"
1459
	  finalize_command="$finalize_command $qarg"
1460
	  continue
1461
	  ;;
1462
	shrext)
1463
  	  shrext_cmds="$arg"
1464
	  prev=
1465
	  continue
1466
	  ;;
1467
	darwin_framework|darwin_framework_skip)
1468
	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1469
	  compile_command="$compile_command $arg"
1470
	  finalize_command="$finalize_command $arg"
1471
	  prev=
1472
	  continue
1473
	  ;;
1474
	*)
1475
	  eval "$prev=\"\$arg\""
1476
	  prev=
1477
	  continue
1478
	  ;;
1479
	esac
1480
      fi # test -n "$prev"
1481
1482
      prevarg="$arg"
1483
1484
      case $arg in
1485
      -all-static)
1486
	if test -n "$link_static_flag"; then
1487
	  compile_command="$compile_command $link_static_flag"
1488
	  finalize_command="$finalize_command $link_static_flag"
1489
	fi
1490
	continue
1491
	;;
1492
1493
      -allow-undefined)
1494
	# FIXME: remove this flag sometime in the future.
1495
	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1496
	continue
1497
	;;
1498
1499
      -avoid-version)
1500
	avoid_version=yes
1501
	continue
1502
	;;
1503
1504
      -dlopen)
1505
	prev=dlfiles
1506
	continue
1507
	;;
1508
1509
      -dlpreopen)
1510
	prev=dlprefiles
1511
	continue
1512
	;;
1513
1514
      -export-dynamic)
1515
	export_dynamic=yes
1516
	continue
1517
	;;
1518
1519
      -export-symbols | -export-symbols-regex)
1520
	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1521
	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1522
	  exit $EXIT_FAILURE
1523
	fi
1524
	if test "X$arg" = "X-export-symbols"; then
1525
	  prev=expsyms
1526
	else
1527
	  prev=expsyms_regex
1528
	fi
1529
	continue
1530
	;;
1531
1532
      -framework|-arch|-isysroot)
1533
	case " $CC " in
1534
	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1535
		prev=darwin_framework_skip ;;
1536
	  *) compiler_flags="$compiler_flags $arg"
1537
	     prev=darwin_framework ;;
1538
	esac
1539
	compile_command="$compile_command $arg"
1540
	finalize_command="$finalize_command $arg"
1541
	continue
1542
	;;
1543
1544
      -inst-prefix-dir)
1545
	prev=inst_prefix
1546
	continue
1547
	;;
1548
1549
      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1550
      # so, if we see these flags be careful not to treat them like -L
1551
      -L[A-Z][A-Z]*:*)
1552
	case $with_gcc/$host in
1553
	no/*-*-irix* | /*-*-irix*)
1554
	  compile_command="$compile_command $arg"
1555
	  finalize_command="$finalize_command $arg"
1556
	  ;;
1557
	esac
1558
	continue
1559
	;;
1560
1561
      -L*)
1562
	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1563
	# We need an absolute path.
1564
	case $dir in
1565
	[\\/]* | [A-Za-z]:[\\/]*) ;;
1566
	*)
1567
	  absdir=`cd "$dir" && pwd`
1568
	  if test -z "$absdir"; then
1569
	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1570
	    absdir="$dir"
1571
	    notinst_path="$notinst_path $dir"
1572
	  fi
1573
	  dir="$absdir"
1574
	  ;;
1575
	esac
1576
	case "$deplibs " in
1577
	*" -L$dir "*) ;;
1578
	*)
1579
	  deplibs="$deplibs -L$dir"
1580
	  lib_search_path="$lib_search_path $dir"
1581
	  ;;
1582
	esac
1583
	case $host in
1584
	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1585
	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1586
	  case :$dllsearchpath: in
1587
	  *":$dir:"*) ;;
1588
	  *) dllsearchpath="$dllsearchpath:$dir";;
1589
	  esac
1590
	  case :$dllsearchpath: in
1591
	  *":$testbindir:"*) ;;
1592
	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1593
	  esac
1594
	  ;;
1595
	esac
1596
	continue
1597
	;;
1598
1599
      -l*)
1600
	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1601
	  case $host in
1602
	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1603
	    # These systems don't actually have a C or math library (as such)
1604
	    continue
1605
	    ;;
1606
	  *-*-os2*)
1607
	    # These systems don't actually have a C library (as such)
1608
	    test "X$arg" = "X-lc" && continue
1609
	    ;;
1610
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1611
	    # Do not include libc due to us having libc/libc_r.
1612
	    test "X$arg" = "X-lc" && continue
1613
	    ;;
1614
	  *-*-rhapsody* | *-*-darwin1.[012])
1615
	    # Rhapsody C and math libraries are in the System framework
1616
	    deplibs="$deplibs -framework System"
1617
	    continue
1618
	    ;;
1619
	  *-*-sco3.2v5* | *-*-sco5v6*)
1620
	    # Causes problems with __ctype
1621
	    test "X$arg" = "X-lc" && continue
1622
	    ;;
1623
	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1624
	    # Compiler inserts libc in the correct place for threads to work
1625
	    test "X$arg" = "X-lc" && continue
1626
	    ;;
1627
	  esac
1628
	elif test "X$arg" = "X-lc_r"; then
1629
	 case $host in
1630
	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1631
	   # Do not include libc_r directly, use -pthread flag.
1632
	   continue
1633
	   ;;
1634
	 esac
1635
	fi
1636
	deplibs="$deplibs $arg"
1637
	continue
1638
	;;
1639
1640
      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1641
      # classes, name mangling, and exception handling.
1642
      -model)
1643
	compile_command="$compile_command $arg"
1644
	compiler_flags="$compiler_flags $arg"
1645
	finalize_command="$finalize_command $arg"
1646
	prev=xcompiler
1647
	continue
1648
	;;
1649
1650
     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
1651
	compiler_flags="$compiler_flags $arg"
1652
	compile_command="$compile_command $arg"
1653
	finalize_command="$finalize_command $arg"
1654
	continue
1655
	;;
1656
1657
      -multi_module)
1658
	single_module="${wl}-multi_module"
1659
	continue
1660
	;;
1661
1662
      -module)
1663
	module=yes
1664
	continue
1665
	;;
1666
1667
      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1668
      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1669
      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1670
      # +DA*, +DD* enable 64-bit mode on the HP compiler
1671
      # -q* pass through compiler args for the IBM compiler
1672
      # -m* pass through architecture-specific compiler args for GCC
1673
      # -m*, -t[45]*, -txscale* pass through architecture-specific
1674
      # compiler args for GCC
1675
      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
1676
      # -F/path gives path to uninstalled frameworks, gcc on darwin
1677
      # @file GCC response files
1678
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
1679
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
1680
1681
	# Unknown arguments in both finalize_command and compile_command need
1682
	# to be aesthetically quoted because they are evaled later.
1683
	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1684
	case $arg in
1685
	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1686
	  arg="\"$arg\""
1687
	  ;;
1688
	esac
1689
        compile_command="$compile_command $arg"
1690
        finalize_command="$finalize_command $arg"
1691
        compiler_flags="$compiler_flags $arg"
1692
        continue
1693
        ;;
1694
1695
      -shrext)
1696
	prev=shrext
1697
	continue
1698
	;;
1699
1700
      -no-fast-install)
1701
	fast_install=no
1702
	continue
1703
	;;
1704
1705
      -no-install)
1706
	case $host in
1707
	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
1708
	  # The PATH hackery in wrapper scripts is required on Windows
1709
	  # and Darwin in order for the loader to find any dlls it needs.
1710
	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1711
	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1712
	  fast_install=no
1713
	  ;;
1714
	*) no_install=yes ;;
1715
	esac
1716
	continue
1717
	;;
1718
1719
      -no-undefined)
1720
	allow_undefined=no
1721
	continue
1722
	;;
1723
1724
      -objectlist)
1725
	prev=objectlist
1726
	continue
1727
	;;
1728
1729
      -o) prev=output ;;
1730
1731
      -precious-files-regex)
1732
	prev=precious_regex
1733
	continue
1734
	;;
1735
1736
      -release)
1737
	prev=release
1738
	continue
1739
	;;
1740
1741
      -rpath)
1742
	prev=rpath
1743
	continue
1744
	;;
1745
1746
      -R)
1747
	prev=xrpath
1748
	continue
1749
	;;
1750
1751
      -R*)
1752
	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1753
	# We need an absolute path.
1754
	case $dir in
1755
	[\\/]* | [A-Za-z]:[\\/]*) ;;
1756
	*)
1757
	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1758
	  exit $EXIT_FAILURE
1759
	  ;;
1760
	esac
1761
	case "$xrpath " in
1762
	*" $dir "*) ;;
1763
	*) xrpath="$xrpath $dir" ;;
1764
	esac
1765
	continue
1766
	;;
1767
1768
      -static | -static-libtool-libs)
1769
	# The effects of -static are defined in a previous loop.
1770
	# We used to do the same as -all-static on platforms that
1771
	# didn't have a PIC flag, but the assumption that the effects
1772
	# would be equivalent was wrong.  It would break on at least
1773
	# Digital Unix and AIX.
1774
	continue
1775
	;;
1776
1777
      -thread-safe)
1778
	thread_safe=yes
1779
	continue
1780
	;;
1781
1782
      -version-info)
1783
	prev=vinfo
1784
	continue
1785
	;;
1786
      -version-number)
1787
	prev=vinfo
1788
	vinfo_number=yes
1789
	continue
1790
	;;
1791
1792
      -Wc,*)
1793
	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1794
	arg=
1795
	save_ifs="$IFS"; IFS=','
1796
	for flag in $args; do
1797
	  IFS="$save_ifs"
1798
	  case $flag in
1799
	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1800
	    flag="\"$flag\""
1801
	    ;;
1802
	  esac
1803
	  arg="$arg $wl$flag"
1804
	  compiler_flags="$compiler_flags $flag"
1805
	done
1806
	IFS="$save_ifs"
1807
	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1808
	;;
1809
1810
      -Wl,*)
1811
	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1812
	arg=
1813
	save_ifs="$IFS"; IFS=','
1814
	for flag in $args; do
1815
	  IFS="$save_ifs"
1816
	  case $flag in
1817
	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1818
	    flag="\"$flag\""
1819
	    ;;
1820
	  esac
1821
	  arg="$arg $wl$flag"
1822
	  compiler_flags="$compiler_flags $wl$flag"
1823
	  linker_flags="$linker_flags $flag"
1824
	done
1825
	IFS="$save_ifs"
1826
	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1827
	;;
1828
1829
      -Xcompiler)
1830
	prev=xcompiler
1831
	continue
1832
	;;
1833
1834
      -Xlinker)
1835
	prev=xlinker
1836
	continue
1837
	;;
1838
1839
      -XCClinker)
1840
	prev=xcclinker
1841
	continue
1842
	;;
1843
1844
      # Some other compiler flag.
1845
      -* | +*)
1846
	# Unknown arguments in both finalize_command and compile_command need
1847
	# to be aesthetically quoted because they are evaled later.
1848
	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1849
	case $arg in
1850
	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1851
	  arg="\"$arg\""
1852
	  ;;
1853
	esac
1854
	;;
1855
1856
      *.$objext)
1857
	# A standard object.
1858
	objs="$objs $arg"
1859
	;;
1860
1861
      *.lo)
1862
	# A libtool-controlled object.
1863
1864
	# Check to see that this really is a libtool object.
1865
	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1866
	  pic_object=
1867
	  non_pic_object=
1868
1869
	  # Read the .lo file
1870
	  # If there is no directory component, then add one.
1871
	  case $arg in
1872
	  */* | *\\*) . $arg ;;
1873
	  *) . ./$arg ;;
1874
	  esac
1875
1876
	  if test -z "$pic_object" || \
1877
	     test -z "$non_pic_object" ||
1878
	     test "$pic_object" = none && \
1879
	     test "$non_pic_object" = none; then
1880
	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1881
	    exit $EXIT_FAILURE
1882
	  fi
1883
1884
	  # Extract subdirectory from the argument.
1885
	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1886
	  if test "X$xdir" = "X$arg"; then
1887
	    xdir=
1888
 	  else
1889
	    xdir="$xdir/"
1890
	  fi
1891
1892
	  if test "$pic_object" != none; then
1893
	    # Prepend the subdirectory the object is found in.
1894
	    pic_object="$xdir$pic_object"
1895
1896
	    if test "$prev" = dlfiles; then
1897
	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1898
		dlfiles="$dlfiles $pic_object"
1899
		prev=
1900
		continue
1901
	      else
1902
		# If libtool objects are unsupported, then we need to preload.
1903
		prev=dlprefiles
1904
	      fi
1905
	    fi
1906
1907
	    # CHECK ME:  I think I busted this.  -Ossama
1908
	    if test "$prev" = dlprefiles; then
1909
	      # Preload the old-style object.
1910
	      dlprefiles="$dlprefiles $pic_object"
1911
	      prev=
1912
	    fi
1913
1914
	    # A PIC object.
1915
	    libobjs="$libobjs $pic_object"
1916
	    arg="$pic_object"
1917
	  fi
1918
1919
	  # Non-PIC object.
1920
	  if test "$non_pic_object" != none; then
1921
	    # Prepend the subdirectory the object is found in.
1922
	    non_pic_object="$xdir$non_pic_object"
1923
1924
	    # A standard non-PIC object
1925
	    non_pic_objects="$non_pic_objects $non_pic_object"
1926
	    if test -z "$pic_object" || test "$pic_object" = none ; then
1927
	      arg="$non_pic_object"
1928
	    fi
1929
	  else
1930
	    # If the PIC object exists, use it instead.
1931
	    # $xdir was prepended to $pic_object above.
1932
	    non_pic_object="$pic_object"
1933
	    non_pic_objects="$non_pic_objects $non_pic_object"
1934
	  fi
1935
	else
1936
	  # Only an error if not doing a dry-run.
1937
	  if test -z "$run"; then
1938
	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1939
	    exit $EXIT_FAILURE
1940
	  else
1941
	    # Dry-run case.
1942
1943
	    # Extract subdirectory from the argument.
1944
	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1945
	    if test "X$xdir" = "X$arg"; then
1946
	      xdir=
1947
	    else
1948
	      xdir="$xdir/"
1949
	    fi
1950
1951
	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1952
	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1953
	    libobjs="$libobjs $pic_object"
1954
	    non_pic_objects="$non_pic_objects $non_pic_object"
1955
	  fi
1956
	fi
1957
	;;
1958
1959
      *.$libext)
1960
	# An archive.
1961
	deplibs="$deplibs $arg"
1962
	old_deplibs="$old_deplibs $arg"
1963
	continue
1964
	;;
1965
1966
      *.la)
1967
	# A libtool-controlled library.
1968
1969
	if test "$prev" = dlfiles; then
1970
	  # This library was specified with -dlopen.
1971
	  dlfiles="$dlfiles $arg"
1972
	  prev=
1973
	elif test "$prev" = dlprefiles; then
1974
	  # The library was specified with -dlpreopen.
1975
	  dlprefiles="$dlprefiles $arg"
1976
	  prev=
1977
	else
1978
	  deplibs="$deplibs $arg"
1979
	fi
1980
	continue
1981
	;;
1982
1983
      # Some other compiler argument.
1984
      *)
1985
	# Unknown arguments in both finalize_command and compile_command need
1986
	# to be aesthetically quoted because they are evaled later.
1987
	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1988
	case $arg in
1989
	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1990
	  arg="\"$arg\""
1991
	  ;;
1992
	esac
1993
	;;
1994
      esac # arg
1995
1996
      # Now actually substitute the argument into the commands.
1997
      if test -n "$arg"; then
1998
	compile_command="$compile_command $arg"
1999
	finalize_command="$finalize_command $arg"
2000
      fi
2001
    done # argument parsing loop
2002
2003
    if test -n "$prev"; then
2004
      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
2005
      $echo "$help" 1>&2
2006
      exit $EXIT_FAILURE
2007
    fi
2008
2009
    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
2010
      eval arg=\"$export_dynamic_flag_spec\"
2011
      compile_command="$compile_command $arg"
2012
      finalize_command="$finalize_command $arg"
2013
    fi
2014
2015
    oldlibs=
2016
    # calculate the name of the file, without its directory
2017
    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2018
    libobjs_save="$libobjs"
2019
2020
    if test -n "$shlibpath_var"; then
2021
      # get the directories listed in $shlibpath_var
2022
      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2023
    else
2024
      shlib_search_path=
2025
    fi
2026
    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2027
    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2028
2029
    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2030
    if test "X$output_objdir" = "X$output"; then
2031
      output_objdir="$objdir"
2032
    else
2033
      output_objdir="$output_objdir/$objdir"
2034
    fi
2035
    # Create the object directory.
2036
    if test ! -d "$output_objdir"; then
2037
      $show "$mkdir $output_objdir"
2038
      $run $mkdir $output_objdir
2039
      exit_status=$?
2040
      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
2041
	exit $exit_status
2042
      fi
2043
    fi
2044
2045
    # Determine the type of output
2046
    case $output in
2047
    "")
2048
      $echo "$modename: you must specify an output file" 1>&2
2049
      $echo "$help" 1>&2
2050
      exit $EXIT_FAILURE
2051
      ;;
2052
    *.$libext) linkmode=oldlib ;;
2053
    *.lo | *.$objext) linkmode=obj ;;
2054
    *.la) linkmode=lib ;;
2055
    *) linkmode=prog ;; # Anything else should be a program.
2056
    esac
2057
2058
    case $host in
2059
    *cygwin* | *mingw* | *pw32*)
2060
      # don't eliminate duplications in $postdeps and $predeps
2061
      duplicate_compiler_generated_deps=yes
2062
      ;;
2063
    *)
2064
      duplicate_compiler_generated_deps=$duplicate_deps
2065
      ;;
2066
    esac
2067
    specialdeplibs=
2068
2069
    libs=
2070
    # Find all interdependent deplibs by searching for libraries
2071
    # that are linked more than once (e.g. -la -lb -la)
2072
    for deplib in $deplibs; do
2073
      if test "X$duplicate_deps" = "Xyes" ; then
2074
	case "$libs " in
2075
	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2076
	esac
2077
      fi
2078
      libs="$libs $deplib"
2079
    done
2080
2081
    if test "$linkmode" = lib; then
2082
      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2083
2084
      # Compute libraries that are listed more than once in $predeps
2085
      # $postdeps and mark them as special (i.e., whose duplicates are
2086
      # not to be eliminated).
2087
      pre_post_deps=
2088
      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2089
	for pre_post_dep in $predeps $postdeps; do
2090
	  case "$pre_post_deps " in
2091
	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2092
	  esac
2093
	  pre_post_deps="$pre_post_deps $pre_post_dep"
2094
	done
2095
      fi
2096
      pre_post_deps=
2097
    fi
2098
2099
    deplibs=
2100
    newdependency_libs=
2101
    newlib_search_path=
2102
    need_relink=no # whether we're linking any uninstalled libtool libraries
2103
    notinst_deplibs= # not-installed libtool libraries
2104
    case $linkmode in
2105
    lib)
2106
	passes="conv link"
2107
	for file in $dlfiles $dlprefiles; do
2108
	  case $file in
2109
	  *.la) ;;
2110
	  *)
2111
	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2112
	    exit $EXIT_FAILURE
2113
	    ;;
2114
	  esac
2115
	done
2116
	;;
2117
    prog)
2118
	compile_deplibs=
2119
	finalize_deplibs=
2120
	alldeplibs=no
2121
	newdlfiles=
2122
	newdlprefiles=
2123
	passes="conv scan dlopen dlpreopen link"
2124
	;;
2125
    *)  passes="conv"
2126
	;;
2127
    esac
2128
    for pass in $passes; do
2129
      if test "$linkmode,$pass" = "lib,link" ||
2130
	 test "$linkmode,$pass" = "prog,scan"; then
2131
	libs="$deplibs"
2132
	deplibs=
2133
      fi
2134
      if test "$linkmode" = prog; then
2135
	case $pass in
2136
	dlopen) libs="$dlfiles" ;;
2137
	dlpreopen) libs="$dlprefiles" ;;
2138
	link)
2139
	  libs="$deplibs %DEPLIBS%"
2140
	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
2141
	  ;;
2142
	esac
2143
      fi
2144
      if test "$pass" = dlopen; then
2145
	# Collect dlpreopened libraries
2146
	save_deplibs="$deplibs"
2147
	deplibs=
2148
      fi
2149
      for deplib in $libs; do
2150
	lib=
2151
	found=no
2152
	case $deplib in
2153
	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2154
	  if test "$linkmode,$pass" = "prog,link"; then
2155
	    compile_deplibs="$deplib $compile_deplibs"
2156
	    finalize_deplibs="$deplib $finalize_deplibs"
2157
	  else
2158
	    compiler_flags="$compiler_flags $deplib"
2159
	  fi
2160
	  continue
2161
	  ;;
2162
	-l*)
2163
	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2164
	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2165
	    continue
2166
	  fi
2167
	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2168
	  if test "$linkmode" = lib; then
2169
	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
2170
	  else
2171
	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
2172
	  fi
2173
	  for searchdir in $searchdirs; do
2174
	    for search_ext in .la $std_shrext .so .a; do
2175
	      # Search the libtool library
2176
	      lib="$searchdir/lib${name}${search_ext}"
2177
	      if test -f "$lib"; then
2178
		if test "$search_ext" = ".la"; then
2179
		  found=yes
2180
		else
2181
		  found=no
2182
		fi
2183
		break 2
2184
	      fi
2185
	    done
2186
	  done
2187
	  if test "$found" != yes; then
2188
	    # deplib doesn't seem to be a libtool library
2189
	    if test "$linkmode,$pass" = "prog,link"; then
2190
	      compile_deplibs="$deplib $compile_deplibs"
2191
	      finalize_deplibs="$deplib $finalize_deplibs"
2192
	    else
2193
	      deplibs="$deplib $deplibs"
2194
	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2195
	    fi
2196
	    continue
2197
	  else # deplib is a libtool library
2198
	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2199
	    # We need to do some special things here, and not later.
2200
	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2201
	      case " $predeps $postdeps " in
2202
	      *" $deplib "*)
2203
		if (${SED} -e '2q' $lib |
2204
                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2205
		  library_names=
2206
		  old_library=
2207
		  case $lib in
2208
		  */* | *\\*) . $lib ;;
2209
		  *) . ./$lib ;;
2210
		  esac
2211
		  for l in $old_library $library_names; do
2212
		    ll="$l"
2213
		  done
2214
		  if test "X$ll" = "X$old_library" ; then # only static version available
2215
		    found=no
2216
		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2217
		    test "X$ladir" = "X$lib" && ladir="."
2218
		    lib=$ladir/$old_library
2219
		    if test "$linkmode,$pass" = "prog,link"; then
2220
		      compile_deplibs="$deplib $compile_deplibs"
2221
		      finalize_deplibs="$deplib $finalize_deplibs"
2222
		    else
2223
		      deplibs="$deplib $deplibs"
2224
		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2225
		    fi
2226
		    continue
2227
		  fi
2228
		fi
2229
	        ;;
2230
	      *) ;;
2231
	      esac
2232
	    fi
2233
	  fi
2234
	  ;; # -l
2235
	-L*)
2236
	  case $linkmode in
2237
	  lib)
2238
	    deplibs="$deplib $deplibs"
2239
	    test "$pass" = conv && continue
2240
	    newdependency_libs="$deplib $newdependency_libs"
2241
	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2242
	    ;;
2243
	  prog)
2244
	    if test "$pass" = conv; then
2245
	      deplibs="$deplib $deplibs"
2246
	      continue
2247
	    fi
2248
	    if test "$pass" = scan; then
2249
	      deplibs="$deplib $deplibs"
2250
	    else
2251
	      compile_deplibs="$deplib $compile_deplibs"
2252
	      finalize_deplibs="$deplib $finalize_deplibs"
2253
	    fi
2254
	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2255
	    ;;
2256
	  *)
2257
	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2258
	    ;;
2259
	  esac # linkmode
2260
	  continue
2261
	  ;; # -L
2262
	-R*)
2263
	  if test "$pass" = link; then
2264
	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2265
	    # Make sure the xrpath contains only unique directories.
2266
	    case "$xrpath " in
2267
	    *" $dir "*) ;;
2268
	    *) xrpath="$xrpath $dir" ;;
2269
	    esac
2270
	  fi
2271
	  deplibs="$deplib $deplibs"
2272
	  continue
2273
	  ;;
2274
	*.la) lib="$deplib" ;;
2275
	*.$libext)
2276
	  if test "$pass" = conv; then
2277
	    deplibs="$deplib $deplibs"
2278
	    continue
2279
	  fi
2280
	  case $linkmode in
2281
	  lib)
2282
	    valid_a_lib=no
2283
	    case $deplibs_check_method in
2284
	      match_pattern*)
2285
		set dummy $deplibs_check_method
2286
	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2287
		if eval $echo \"$deplib\" 2>/dev/null \
2288
		    | $SED 10q \
2289
		    | $EGREP "$match_pattern_regex" > /dev/null; then
2290
		  valid_a_lib=yes
2291
		fi
2292
		;;
2293
	      pass_all)
2294
		valid_a_lib=yes
2295
		;;
2296
            esac
2297
	    if test "$valid_a_lib" != yes; then
2298
	      $echo
2299
	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2300
	      $echo "*** I have the capability to make that library automatically link in when"
2301
	      $echo "*** you link to this library.  But I can only do this if you have a"
2302
	      $echo "*** shared version of the library, which you do not appear to have"
2303
	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2304
	      $echo "*** that it is just a static archive that I should not used here."
2305
	    else
2306
	      $echo
2307
	      $echo "*** Warning: Linking the shared library $output against the"
2308
	      $echo "*** static library $deplib is not portable!"
2309
	      deplibs="$deplib $deplibs"
2310
	    fi
2311
	    continue
2312
	    ;;
2313
	  prog)
2314
	    if test "$pass" != link; then
2315
	      deplibs="$deplib $deplibs"
2316
	    else
2317
	      compile_deplibs="$deplib $compile_deplibs"
2318
	      finalize_deplibs="$deplib $finalize_deplibs"
2319
	    fi
2320
	    continue
2321
	    ;;
2322
	  esac # linkmode
2323
	  ;; # *.$libext
2324
	*.lo | *.$objext)
2325
	  if test "$pass" = conv; then
2326
	    deplibs="$deplib $deplibs"
2327
	  elif test "$linkmode" = prog; then
2328
	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2329
	      # If there is no dlopen support or we're linking statically,
2330
	      # we need to preload.
2331
	      newdlprefiles="$newdlprefiles $deplib"
2332
	      compile_deplibs="$deplib $compile_deplibs"
2333
	      finalize_deplibs="$deplib $finalize_deplibs"
2334
	    else
2335
	      newdlfiles="$newdlfiles $deplib"
2336
	    fi
2337
	  fi
2338
	  continue
2339
	  ;;
2340
	%DEPLIBS%)
2341
	  alldeplibs=yes
2342
	  continue
2343
	  ;;
2344
	esac # case $deplib
2345
	if test "$found" = yes || test -f "$lib"; then :
2346
	else
2347
	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2348
	  exit $EXIT_FAILURE
2349
	fi
2350
2351
	# Check to see that this really is a libtool archive.
2352
	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2353
	else
2354
	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2355
	  exit $EXIT_FAILURE
2356
	fi
2357
2358
	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2359
	test "X$ladir" = "X$lib" && ladir="."
2360
2361
	dlname=
2362
	dlopen=
2363
	dlpreopen=
2364
	libdir=
2365
	library_names=
2366
	old_library=
2367
	# If the library was installed with an old release of libtool,
2368
	# it will not redefine variables installed, or shouldnotlink
2369
	installed=yes
2370
	shouldnotlink=no
2371
	avoidtemprpath=
2372
2373
2374
	# Read the .la file
2375
	case $lib in
2376
	*/* | *\\*) . $lib ;;
2377
	*) . ./$lib ;;
2378
	esac
2379
2380
	if test "$linkmode,$pass" = "lib,link" ||
2381
	   test "$linkmode,$pass" = "prog,scan" ||
2382
	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2383
	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2384
	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2385
	fi
2386
2387
	if test "$pass" = conv; then
2388
	  # Only check for convenience libraries
2389
	  deplibs="$lib $deplibs"
2390
	  if test -z "$libdir"; then
2391
	    if test -z "$old_library"; then
2392
	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2393
	      exit $EXIT_FAILURE
2394
	    fi
2395
	    # It is a libtool convenience library, so add in its objects.
2396
	    convenience="$convenience $ladir/$objdir/$old_library"
2397
	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2398
	    tmp_libs=
2399
	    for deplib in $dependency_libs; do
2400
	      deplibs="$deplib $deplibs"
2401
              if test "X$duplicate_deps" = "Xyes" ; then
2402
	        case "$tmp_libs " in
2403
	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2404
	        esac
2405
              fi
2406
	      tmp_libs="$tmp_libs $deplib"
2407
	    done
2408
	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2409
	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2410
	    exit $EXIT_FAILURE
2411
	  fi
2412
	  continue
2413
	fi # $pass = conv
2414
2415
2416
	# Get the name of the library we link against.
2417
	linklib=
2418
	for l in $old_library $library_names; do
2419
	  linklib="$l"
2420
	done
2421
	if test -z "$linklib"; then
2422
	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2423
	  exit $EXIT_FAILURE
2424
	fi
2425
2426
	# This library was specified with -dlopen.
2427
	if test "$pass" = dlopen; then
2428
	  if test -z "$libdir"; then
2429
	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2430
	    exit $EXIT_FAILURE
2431
	  fi
2432
	  if test -z "$dlname" ||
2433
	     test "$dlopen_support" != yes ||
2434
	     test "$build_libtool_libs" = no; then
2435
	    # If there is no dlname, no dlopen support or we're linking
2436
	    # statically, we need to preload.  We also need to preload any
2437
	    # dependent libraries so libltdl's deplib preloader doesn't
2438
	    # bomb out in the load deplibs phase.
2439
	    dlprefiles="$dlprefiles $lib $dependency_libs"
2440
	  else
2441
	    newdlfiles="$newdlfiles $lib"
2442
	  fi
2443
	  continue
2444
	fi # $pass = dlopen
2445
2446
	# We need an absolute path.
2447
	case $ladir in
2448
	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2449
	*)
2450
	  abs_ladir=`cd "$ladir" && pwd`
2451
	  if test -z "$abs_ladir"; then
2452
	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2453
	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2454
	    abs_ladir="$ladir"
2455
	  fi
2456
	  ;;
2457
	esac
2458
	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2459
2460
	# Find the relevant object directory and library name.
2461
	if test "X$installed" = Xyes; then
2462
	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2463
	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2464
	    dir="$ladir"
2465
	    absdir="$abs_ladir"
2466
	    libdir="$abs_ladir"
2467
	  else
2468
	    dir="$libdir"
2469
	    absdir="$libdir"
2470
	  fi
2471
	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2472
	else
2473
	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2474
	    dir="$ladir"
2475
	    absdir="$abs_ladir"
2476
	    # Remove this search path later
2477
	    notinst_path="$notinst_path $abs_ladir"
2478
	  else
2479
	    dir="$ladir/$objdir"
2480
	    absdir="$abs_ladir/$objdir"
2481
	    # Remove this search path later
2482
	    notinst_path="$notinst_path $abs_ladir"
2483
	  fi
2484
	fi # $installed = yes
2485
	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2486
2487
	# This library was specified with -dlpreopen.
2488
	if test "$pass" = dlpreopen; then
2489
	  if test -z "$libdir"; then
2490
	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2491
	    exit $EXIT_FAILURE
2492
	  fi
2493
	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2494
	  # are required to link).
2495
	  if test -n "$old_library"; then
2496
	    newdlprefiles="$newdlprefiles $dir/$old_library"
2497
	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2498
	  elif test -n "$dlname"; then
2499
	    newdlprefiles="$newdlprefiles $dir/$dlname"
2500
	  else
2501
	    newdlprefiles="$newdlprefiles $dir/$linklib"
2502
	  fi
2503
	fi # $pass = dlpreopen
2504
2505
	if test -z "$libdir"; then
2506
	  # Link the convenience library
2507
	  if test "$linkmode" = lib; then
2508
	    deplibs="$dir/$old_library $deplibs"
2509
	  elif test "$linkmode,$pass" = "prog,link"; then
2510
	    compile_deplibs="$dir/$old_library $compile_deplibs"
2511
	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2512
	  else
2513
	    deplibs="$lib $deplibs" # used for prog,scan pass
2514
	  fi
2515
	  continue
2516
	fi
2517
2518
2519
	if test "$linkmode" = prog && test "$pass" != link; then
2520
	  newlib_search_path="$newlib_search_path $ladir"
2521
	  deplibs="$lib $deplibs"
2522
2523
	  linkalldeplibs=no
2524
	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2525
	     test "$build_libtool_libs" = no; then
2526
	    linkalldeplibs=yes
2527
	  fi
2528
2529
	  tmp_libs=
2530
	  for deplib in $dependency_libs; do
2531
	    case $deplib in
2532
	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2533
	    esac
2534
	    # Need to link against all dependency_libs?
2535
	    if test "$linkalldeplibs" = yes; then
2536
	      deplibs="$deplib $deplibs"
2537
	    else
2538
	      # Need to hardcode shared library paths
2539
	      # or/and link against static libraries
2540
	      newdependency_libs="$deplib $newdependency_libs"
2541
	    fi
2542
	    if test "X$duplicate_deps" = "Xyes" ; then
2543
	      case "$tmp_libs " in
2544
	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2545
	      esac
2546
	    fi
2547
	    tmp_libs="$tmp_libs $deplib"
2548
	  done # for deplib
2549
	  continue
2550
	fi # $linkmode = prog...
2551
2552
	if test "$linkmode,$pass" = "prog,link"; then
2553
	  if test -n "$library_names" &&
2554
	     { { test "$prefer_static_libs" = no ||
2555
		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
2556
	       test -z "$old_library"; }; then
2557
	    # We need to hardcode the library path
2558
	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2559
	      # Make sure the rpath contains only unique directories.
2560
	      case "$temp_rpath " in
2561
	      *" $dir "*) ;;
2562
	      *" $absdir "*) ;;
2563
	      *) temp_rpath="$temp_rpath $absdir" ;;
2564
	      esac
2565
	    fi
2566
2567
	    # Hardcode the library path.
2568
	    # Skip directories that are in the system default run-time
2569
	    # search path.
2570
	    case " $sys_lib_dlsearch_path " in
2571
	    *" $absdir "*) ;;
2572
	    *)
2573
	      case "$compile_rpath " in
2574
	      *" $absdir "*) ;;
2575
	      *) compile_rpath="$compile_rpath $absdir"
2576
	      esac
2577
	      ;;
2578
	    esac
2579
	    case " $sys_lib_dlsearch_path " in
2580
	    *" $libdir "*) ;;
2581
	    *)
2582
	      case "$finalize_rpath " in
2583
	      *" $libdir "*) ;;
2584
	      *) finalize_rpath="$finalize_rpath $libdir"
2585
	      esac
2586
	      ;;
2587
	    esac
2588
	  fi # $linkmode,$pass = prog,link...
2589
2590
	  if test "$alldeplibs" = yes &&
2591
	     { test "$deplibs_check_method" = pass_all ||
2592
	       { test "$build_libtool_libs" = yes &&
2593
		 test -n "$library_names"; }; }; then
2594
	    # We only need to search for static libraries
2595
	    continue
2596
	  fi
2597
	fi
2598
2599
	link_static=no # Whether the deplib will be linked statically
2600
	use_static_libs=$prefer_static_libs
2601
	if test "$use_static_libs" = built && test "$installed" = yes ; then
2602
	  use_static_libs=no
2603
	fi
2604
	if test -n "$library_names" &&
2605
	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2606
	  if test "$installed" = no; then
2607
	    notinst_deplibs="$notinst_deplibs $lib"
2608
	    need_relink=yes
2609
	  fi
2610
	  # This is a shared library
2611
2612
	  # Warn about portability, can't link against -module's on
2613
	  # some systems (darwin)
2614
	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2615
	    $echo
2616
	    if test "$linkmode" = prog; then
2617
	      $echo "*** Warning: Linking the executable $output against the loadable module"
2618
	    else
2619
	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2620
	    fi
2621
	    $echo "*** $linklib is not portable!"
2622
	  fi
2623
	  if test "$linkmode" = lib &&
2624
	     test "$hardcode_into_libs" = yes; then
2625
	    # Hardcode the library path.
2626
	    # Skip directories that are in the system default run-time
2627
	    # search path.
2628
	    case " $sys_lib_dlsearch_path " in
2629
	    *" $absdir "*) ;;
2630
	    *)
2631
	      case "$compile_rpath " in
2632
	      *" $absdir "*) ;;
2633
	      *) compile_rpath="$compile_rpath $absdir"
2634
	      esac
2635
	      ;;
2636
	    esac
2637
	    case " $sys_lib_dlsearch_path " in
2638
	    *" $libdir "*) ;;
2639
	    *)
2640
	      case "$finalize_rpath " in
2641
	      *" $libdir "*) ;;
2642
	      *) finalize_rpath="$finalize_rpath $libdir"
2643
	      esac
2644
	      ;;
2645
	    esac
2646
	  fi
2647
2648
	  if test -n "$old_archive_from_expsyms_cmds"; then
2649
	    # figure out the soname
2650
	    set dummy $library_names
2651
	    realname="$2"
2652
	    shift; shift
2653
	    libname=`eval \\$echo \"$libname_spec\"`
2654
	    # use dlname if we got it. it's perfectly good, no?
2655
	    if test -n "$dlname"; then
2656
	      soname="$dlname"
2657
	    elif test -n "$soname_spec"; then
2658
	      # bleh windows
2659
	      case $host in
2660
	      *cygwin* | mingw*)
2661
		major=`expr $current - $age`
2662
		versuffix="-$major"
2663
		;;
2664
	      esac
2665
	      eval soname=\"$soname_spec\"
2666
	    else
2667
	      soname="$realname"
2668
	    fi
2669
2670
	    # Make a new name for the extract_expsyms_cmds to use
2671
	    soroot="$soname"
2672
	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2673
	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2674
2675
	    # If the library has no export list, then create one now
2676
	    if test -f "$output_objdir/$soname-def"; then :
2677
	    else
2678
	      $show "extracting exported symbol list from \`$soname'"
2679
	      save_ifs="$IFS"; IFS='~'
2680
	      cmds=$extract_expsyms_cmds
2681
	      for cmd in $cmds; do
2682
		IFS="$save_ifs"
2683
		eval cmd=\"$cmd\"
2684
		$show "$cmd"
2685
		$run eval "$cmd" || exit $?
2686
	      done
2687
	      IFS="$save_ifs"
2688
	    fi
2689
2690
	    # Create $newlib
2691
	    if test -f "$output_objdir/$newlib"; then :; else
2692
	      $show "generating import library for \`$soname'"
2693
	      save_ifs="$IFS"; IFS='~'
2694
	      cmds=$old_archive_from_expsyms_cmds
2695
	      for cmd in $cmds; do
2696
		IFS="$save_ifs"
2697
		eval cmd=\"$cmd\"
2698
		$show "$cmd"
2699
		$run eval "$cmd" || exit $?
2700
	      done
2701
	      IFS="$save_ifs"
2702
	    fi
2703
	    # make sure the library variables are pointing to the new library
2704
	    dir=$output_objdir
2705
	    linklib=$newlib
2706
	  fi # test -n "$old_archive_from_expsyms_cmds"
2707
2708
	  if test "$linkmode" = prog || test "$mode" != relink; then
2709
	    add_shlibpath=
2710
	    add_dir=
2711
	    add=
2712
	    lib_linked=yes
2713
	    case $hardcode_action in
2714
	    immediate | unsupported)
2715
	      if test "$hardcode_direct" = no; then
2716
		add="$dir/$linklib"
2717
		case $host in
2718
		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2719
		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2720
		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2721
		    *-*-unixware7*) add_dir="-L$dir" ;;
2722
		  *-*-darwin* )
2723
		    # if the lib is a module then we can not link against
2724
		    # it, someone is ignoring the new warnings I added
2725
		    if /usr/bin/file -L $add 2> /dev/null |
2726
                      $EGREP ": [^:]* bundle" >/dev/null ; then
2727
		      $echo "** Warning, lib $linklib is a module, not a shared library"
2728
		      if test -z "$old_library" ; then
2729
		        $echo
2730
		        $echo "** And there doesn't seem to be a static archive available"
2731
		        $echo "** The link will probably fail, sorry"
2732
		      else
2733
		        add="$dir/$old_library"
2734
		      fi
2735
		    fi
2736
		esac
2737
	      elif test "$hardcode_minus_L" = no; then
2738
		case $host in
2739
		*-*-sunos*) add_shlibpath="$dir" ;;
2740
		esac
2741
		add_dir="-L$dir"
2742
		add="-l$name"
2743
	      elif test "$hardcode_shlibpath_var" = no; then
2744
		add_shlibpath="$dir"
2745
		add="-l$name"
2746
	      else
2747
		lib_linked=no
2748
	      fi
2749
	      ;;
2750
	    relink)
2751
	      if test "$hardcode_direct" = yes; then
2752
		add="$dir/$linklib"
2753
	      elif test "$hardcode_minus_L" = yes; then
2754
		add_dir="-L$dir"
2755
		# Try looking first in the location we're being installed to.
2756
		if test -n "$inst_prefix_dir"; then
2757
		  case $libdir in
2758
		    [\\/]*)
2759
		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2760
		      ;;
2761
		  esac
2762
		fi
2763
		add="-l$name"
2764
	      elif test "$hardcode_shlibpath_var" = yes; then
2765
		add_shlibpath="$dir"
2766
		add="-l$name"
2767
	      else
2768
		lib_linked=no
2769
	      fi
2770
	      ;;
2771
	    *) lib_linked=no ;;
2772
	    esac
2773
2774
	    if test "$lib_linked" != yes; then
2775
	      $echo "$modename: configuration error: unsupported hardcode properties"
2776
	      exit $EXIT_FAILURE
2777
	    fi
2778
2779
	    if test -n "$add_shlibpath"; then
2780
	      case :$compile_shlibpath: in
2781
	      *":$add_shlibpath:"*) ;;
2782
	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2783
	      esac
2784
	    fi
2785
	    if test "$linkmode" = prog; then
2786
	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2787
	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2788
	    else
2789
	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2790
	      test -n "$add" && deplibs="$add $deplibs"
2791
	      if test "$hardcode_direct" != yes && \
2792
		 test "$hardcode_minus_L" != yes && \
2793
		 test "$hardcode_shlibpath_var" = yes; then
2794
		case :$finalize_shlibpath: in
2795
		*":$libdir:"*) ;;
2796
		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2797
		esac
2798
	      fi
2799
	    fi
2800
	  fi
2801
2802
	  if test "$linkmode" = prog || test "$mode" = relink; then
2803
	    add_shlibpath=
2804
	    add_dir=
2805
	    add=
2806
	    # Finalize command for both is simple: just hardcode it.
2807
	    if test "$hardcode_direct" = yes; then
2808
	      add="$libdir/$linklib"
2809
	    elif test "$hardcode_minus_L" = yes; then
2810
	      add_dir="-L$libdir"
2811
	      add="-l$name"
2812
	    elif test "$hardcode_shlibpath_var" = yes; then
2813
	      case :$finalize_shlibpath: in
2814
	      *":$libdir:"*) ;;
2815
	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2816
	      esac
2817
	      add="-l$name"
2818
	    elif test "$hardcode_automatic" = yes; then
2819
	      if test -n "$inst_prefix_dir" &&
2820
		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2821
	        add="$inst_prefix_dir$libdir/$linklib"
2822
	      else
2823
	        add="$libdir/$linklib"
2824
	      fi
2825
	    else
2826
	      # We cannot seem to hardcode it, guess we'll fake it.
2827
	      add_dir="-L$libdir"
2828
	      # Try looking first in the location we're being installed to.
2829
	      if test -n "$inst_prefix_dir"; then
2830
		case $libdir in
2831
		  [\\/]*)
2832
		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2833
		    ;;
2834
		esac
2835
	      fi
2836
	      add="-l$name"
2837
	    fi
2838
2839
	    if test "$linkmode" = prog; then
2840
	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2841
	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2842
	    else
2843
	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2844
	      test -n "$add" && deplibs="$add $deplibs"
2845
	    fi
2846
	  fi
2847
	elif test "$linkmode" = prog; then
2848
	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2849
	  # is not unsupported.  This is valid on all known static and
2850
	  # shared platforms.
2851
	  if test "$hardcode_direct" != unsupported; then
2852
	    test -n "$old_library" && linklib="$old_library"
2853
	    compile_deplibs="$dir/$linklib $compile_deplibs"
2854
	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2855
	  else
2856
	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2857
	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2858
	  fi
2859
	elif test "$build_libtool_libs" = yes; then
2860
	  # Not a shared library
2861
	  if test "$deplibs_check_method" != pass_all; then
2862
	    # We're trying link a shared library against a static one
2863
	    # but the system doesn't support it.
2864
2865
	    # Just print a warning and add the library to dependency_libs so
2866
	    # that the program can be linked against the static library.
2867
	    $echo
2868
	    $echo "*** Warning: This system can not link to static lib archive $lib."
2869
	    $echo "*** I have the capability to make that library automatically link in when"
2870
	    $echo "*** you link to this library.  But I can only do this if you have a"
2871
	    $echo "*** shared version of the library, which you do not appear to have."
2872
	    if test "$module" = yes; then
2873
	      $echo "*** But as you try to build a module library, libtool will still create "
2874
	      $echo "*** a static module, that should work as long as the dlopening application"
2875
	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2876
	      if test -z "$global_symbol_pipe"; then
2877
		$echo
2878
		$echo "*** However, this would only work if libtool was able to extract symbol"
2879
		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2880
		$echo "*** not find such a program.  So, this module is probably useless."
2881
		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2882
	      fi
2883
	      if test "$build_old_libs" = no; then
2884
		build_libtool_libs=module
2885
		build_old_libs=yes
2886
	      else
2887
		build_libtool_libs=no
2888
	      fi
2889
	    fi
2890
	  else
2891
	    deplibs="$dir/$old_library $deplibs"
2892
	    link_static=yes
2893
	  fi
2894
	fi # link shared/static library?
2895
2896
	if test "$linkmode" = lib; then
2897
	  if test -n "$dependency_libs" &&
2898
	     { test "$hardcode_into_libs" != yes ||
2899
	       test "$build_old_libs" = yes ||
2900
	       test "$link_static" = yes; }; then
2901
	    # Extract -R from dependency_libs
2902
	    temp_deplibs=
2903
	    for libdir in $dependency_libs; do
2904
	      case $libdir in
2905
	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2906
		   case " $xrpath " in
2907
		   *" $temp_xrpath "*) ;;
2908
		   *) xrpath="$xrpath $temp_xrpath";;
2909
		   esac;;
2910
	      *) temp_deplibs="$temp_deplibs $libdir";;
2911
	      esac
2912
	    done
2913
	    dependency_libs="$temp_deplibs"
2914
	  fi
2915
2916
	  newlib_search_path="$newlib_search_path $absdir"
2917
	  # Link against this library
2918
	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2919
	  # ... and its dependency_libs
2920
	  tmp_libs=
2921
	  for deplib in $dependency_libs; do
2922
	    newdependency_libs="$deplib $newdependency_libs"
2923
	    if test "X$duplicate_deps" = "Xyes" ; then
2924
	      case "$tmp_libs " in
2925
	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2926
	      esac
2927
	    fi
2928
	    tmp_libs="$tmp_libs $deplib"
2929
	  done
2930
2931
	  if test "$link_all_deplibs" != no; then
2932
	    # Add the search paths of all dependency libraries
2933
	    for deplib in $dependency_libs; do
2934
	      case $deplib in
2935
	      -L*) path="$deplib" ;;
2936
	      *.la)
2937
		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2938
		test "X$dir" = "X$deplib" && dir="."
2939
		# We need an absolute path.
2940
		case $dir in
2941
		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2942
		*)
2943
		  absdir=`cd "$dir" && pwd`
2944
		  if test -z "$absdir"; then
2945
		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2946
		    absdir="$dir"
2947
		  fi
2948
		  ;;
2949
		esac
2950
		if grep "^installed=no" $deplib > /dev/null; then
2951
		  path="$absdir/$objdir"
2952
		else
2953
		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2954
		  if test -z "$libdir"; then
2955
		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2956
		    exit $EXIT_FAILURE
2957
		  fi
2958
		  if test "$absdir" != "$libdir"; then
2959
		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2960
		  fi
2961
		  path="$absdir"
2962
		fi
2963
		depdepl=
2964
		case $host in
2965
		*-*-darwin*)
2966
		  # we do not want to link against static libs,
2967
		  # but need to link against shared
2968
		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2969
		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2970
		  if test -n "$deplibrary_names" ; then
2971
		    for tmp in $deplibrary_names ; do
2972
		      depdepl=$tmp
2973
		    done
2974
		    if test -f "$deplibdir/$depdepl" ; then
2975
		      depdepl="$deplibdir/$depdepl"
2976
	      	    elif test -f "$path/$depdepl" ; then
2977
		      depdepl="$path/$depdepl"
2978
		    else
2979
		      # Can't find it, oh well...
2980
		      depdepl=
2981
		    fi
2982
		    # do not add paths which are already there
2983
		    case " $newlib_search_path " in
2984
		    *" $path "*) ;;
2985
		    *) newlib_search_path="$newlib_search_path $path";;
2986
		    esac
2987
		  fi
2988
		  path=""
2989
		  ;;
2990
		*)
2991
		  path="-L$path"
2992
		  ;;
2993
		esac
2994
		;;
2995
	      -l*)
2996
		case $host in
2997
		*-*-darwin*)
2998
		  # Again, we only want to link against shared libraries
2999
		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
3000
		  for tmp in $newlib_search_path ; do
3001
		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
3002
		      eval depdepl="$tmp/lib$tmp_libs.dylib"
3003
		      break
3004
		    fi
3005
		  done
3006
		  path=""
3007
		  ;;
3008
		*) continue ;;
3009
		esac
3010
		;;
3011
	      *) continue ;;
3012
	      esac
3013
	      case " $deplibs " in
3014
	      *" $path "*) ;;
3015
	      *) deplibs="$path $deplibs" ;;
3016
	      esac
3017
	      case " $deplibs " in
3018
	      *" $depdepl "*) ;;
3019
	      *) deplibs="$depdepl $deplibs" ;;
3020
	      esac
3021
	    done
3022
	  fi # link_all_deplibs != no
3023
	fi # linkmode = lib
3024
      done # for deplib in $libs
3025
      dependency_libs="$newdependency_libs"
3026
      if test "$pass" = dlpreopen; then
3027
	# Link the dlpreopened libraries before other libraries
3028
	for deplib in $save_deplibs; do
3029
	  deplibs="$deplib $deplibs"
3030
	done
3031
      fi
3032
      if test "$pass" != dlopen; then
3033
	if test "$pass" != conv; then
3034
	  # Make sure lib_search_path contains only unique directories.
3035
	  lib_search_path=
3036
	  for dir in $newlib_search_path; do
3037
	    case "$lib_search_path " in
3038
	    *" $dir "*) ;;
3039
	    *) lib_search_path="$lib_search_path $dir" ;;
3040
	    esac
3041
	  done
3042
	  newlib_search_path=
3043
	fi
3044
3045
	if test "$linkmode,$pass" != "prog,link"; then
3046
	  vars="deplibs"
3047
	else
3048
	  vars="compile_deplibs finalize_deplibs"
3049
	fi
3050
	for var in $vars dependency_libs; do
3051
	  # Add libraries to $var in reverse order
3052
	  eval tmp_libs=\"\$$var\"
3053
	  new_libs=
3054
	  for deplib in $tmp_libs; do
3055
	    # FIXME: Pedantically, this is the right thing to do, so
3056
	    #        that some nasty dependency loop isn't accidentally
3057
	    #        broken:
3058
	    #new_libs="$deplib $new_libs"
3059
	    # Pragmatically, this seems to cause very few problems in
3060
	    # practice:
3061
	    case $deplib in
3062
	    -L*) new_libs="$deplib $new_libs" ;;
3063
	    -R*) ;;
3064
	    *)
3065
	      # And here is the reason: when a library appears more
3066
	      # than once as an explicit dependence of a library, or
3067
	      # is implicitly linked in more than once by the
3068
	      # compiler, it is considered special, and multiple
3069
	      # occurrences thereof are not removed.  Compare this
3070
	      # with having the same library being listed as a
3071
	      # dependency of multiple other libraries: in this case,
3072
	      # we know (pedantically, we assume) the library does not
3073
	      # need to be listed more than once, so we keep only the
3074
	      # last copy.  This is not always right, but it is rare
3075
	      # enough that we require users that really mean to play
3076
	      # such unportable linking tricks to link the library
3077
	      # using -Wl,-lname, so that libtool does not consider it
3078
	      # for duplicate removal.
3079
	      case " $specialdeplibs " in
3080
	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3081
	      *)
3082
		case " $new_libs " in
3083
		*" $deplib "*) ;;
3084
		*) new_libs="$deplib $new_libs" ;;
3085
		esac
3086
		;;
3087
	      esac
3088
	      ;;
3089
	    esac
3090
	  done
3091
	  tmp_libs=
3092
	  for deplib in $new_libs; do
3093
	    case $deplib in
3094
	    -L*)
3095
	      case " $tmp_libs " in
3096
	      *" $deplib "*) ;;
3097
	      *) tmp_libs="$tmp_libs $deplib" ;;
3098
	      esac
3099
	      ;;
3100
	    *) tmp_libs="$tmp_libs $deplib" ;;
3101
	    esac
3102
	  done
3103
	  eval $var=\"$tmp_libs\"
3104
	done # for var
3105
      fi
3106
      # Last step: remove runtime libs from dependency_libs
3107
      # (they stay in deplibs)
3108
      tmp_libs=
3109
      for i in $dependency_libs ; do
3110
	case " $predeps $postdeps $compiler_lib_search_path " in
3111
	*" $i "*)
3112
	  i=""
3113
	  ;;
3114
	esac
3115
	if test -n "$i" ; then
3116
	  tmp_libs="$tmp_libs $i"
3117
	fi
3118
      done
3119
      dependency_libs=$tmp_libs
3120
    done # for pass
3121
    if test "$linkmode" = prog; then
3122
      dlfiles="$newdlfiles"
3123
      dlprefiles="$newdlprefiles"
3124
    fi
3125
3126
    case $linkmode in
3127
    oldlib)
3128
      case " $deplibs" in
3129
      *\ -l* | *\ -L*)
3130
	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
3131
      esac
3132
3133
      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3134
	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3135
      fi
3136
3137
      if test -n "$rpath"; then
3138
	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3139
      fi
3140
3141
      if test -n "$xrpath"; then
3142
	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3143
      fi
3144
3145
      if test -n "$vinfo"; then
3146
	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3147
      fi
3148
3149
      if test -n "$release"; then
3150
	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3151
      fi
3152
3153
      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3154
	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3155
      fi
3156
3157
      # Now set the variables for building old libraries.
3158
      build_libtool_libs=no
3159
      oldlibs="$output"
3160
      objs="$objs$old_deplibs"
3161
      ;;
3162
3163
    lib)
3164
      # Make sure we only generate libraries of the form `libNAME.la'.
3165
      case $outputname in
3166
      lib*)
3167
	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3168
	eval shared_ext=\"$shrext_cmds\"
3169
	eval libname=\"$libname_spec\"
3170
	;;
3171
      *)
3172
	if test "$module" = no; then
3173
	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3174
	  $echo "$help" 1>&2
3175
	  exit $EXIT_FAILURE
3176
	fi
3177
	if test "$need_lib_prefix" != no; then
3178
	  # Add the "lib" prefix for modules if required
3179
	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3180
	  eval shared_ext=\"$shrext_cmds\"
3181
	  eval libname=\"$libname_spec\"
3182
	else
3183
	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3184
	fi
3185
	;;
3186
      esac
3187
3188
      if test -n "$objs"; then
3189
	if test "$deplibs_check_method" != pass_all; then
3190
	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3191
	  exit $EXIT_FAILURE
3192
	else
3193
	  $echo
3194
	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3195
	  $echo "*** objects $objs is not portable!"
3196
	  libobjs="$libobjs $objs"
3197
	fi
3198
      fi
3199
3200
      if test "$dlself" != no; then
3201
	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3202
      fi
3203
3204
      set dummy $rpath
3205
      if test "$#" -gt 2; then
3206
	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3207
      fi
3208
      install_libdir="$2"
3209
3210
      oldlibs=
3211
      if test -z "$rpath"; then
3212
	if test "$build_libtool_libs" = yes; then
3213
	  # Building a libtool convenience library.
3214
	  # Some compilers have problems with a `.al' extension so
3215
	  # convenience libraries should have the same extension an
3216
	  # archive normally would.
3217
	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3218
	  build_libtool_libs=convenience
3219
	  build_old_libs=yes
3220
	fi
3221
3222
	if test -n "$vinfo"; then
3223
	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3224
	fi
3225
3226
	if test -n "$release"; then
3227
	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3228
	fi
3229
      else
3230
3231
	# Parse the version information argument.
3232
	save_ifs="$IFS"; IFS=':'
3233
	set dummy $vinfo 0 0 0
3234
	IFS="$save_ifs"
3235
3236
	if test -n "$8"; then
3237
	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3238
	  $echo "$help" 1>&2
3239
	  exit $EXIT_FAILURE
3240
	fi
3241
3242
	# convert absolute version numbers to libtool ages
3243
	# this retains compatibility with .la files and attempts
3244
	# to make the code below a bit more comprehensible
3245
3246
	case $vinfo_number in
3247
	yes)
3248
	  number_major="$2"
3249
	  number_minor="$3"
3250
	  number_revision="$4"
3251
	  #
3252
	  # There are really only two kinds -- those that
3253
	  # use the current revision as the major version
3254
	  # and those that subtract age and use age as
3255
	  # a minor version.  But, then there is irix
3256
	  # which has an extra 1 added just for fun
3257
	  #
3258
	  case $version_type in
3259
	  darwin|linux|osf|windows|none)
3260
	    current=`expr $number_major + $number_minor`
3261
	    age="$number_minor"
3262
	    revision="$number_revision"
3263
	    ;;
3264
	  freebsd-aout|freebsd-elf|sunos)
3265
	    current="$number_major"
3266
	    revision="$number_minor"
3267
	    age="0"
3268
	    ;;
3269
	  irix|nonstopux)
3270
	    current=`expr $number_major + $number_minor`
3271
	    age="$number_minor"
3272
	    revision="$number_minor"
3273
	    lt_irix_increment=no
3274
	    ;;
3275
	  *)
3276
	    $echo "$modename: unknown library version type \`$version_type'" 1>&2
3277
	    $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3278
	    exit $EXIT_FAILURE
3279
	    ;;
3280
	  esac
3281
	  ;;
3282
	no)
3283
	  current="$2"
3284
	  revision="$3"
3285
	  age="$4"
3286
	  ;;
3287
	esac
3288
3289
	# Check that each of the things are valid numbers.
3290
	case $current in
3291
	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]) ;;
3292
	*)
3293
	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3294
	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3295
	  exit $EXIT_FAILURE
3296
	  ;;
3297
	esac
3298
3299
	case $revision in
3300
	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]) ;;
3301
	*)
3302
	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3303
	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3304
	  exit $EXIT_FAILURE
3305
	  ;;
3306
	esac
3307
3308
	case $age in
3309
	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]) ;;
3310
	*)
3311
	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3312
	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3313
	  exit $EXIT_FAILURE
3314
	  ;;
3315
	esac
3316
3317
	if test "$age" -gt "$current"; then
3318
	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3319
	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3320
	  exit $EXIT_FAILURE
3321
	fi
3322
3323
	# Calculate the version variables.
3324
	major=
3325
	versuffix=
3326
	verstring=
3327
	case $version_type in
3328
	none) ;;
3329
3330
	darwin)
3331
	  # Like Linux, but with the current version available in
3332
	  # verstring for coding it into the library header
3333
	  major=.`expr $current - $age`
3334
	  versuffix="$major.$age.$revision"
3335
	  # Darwin ld doesn't like 0 for these options...
3336
	  minor_current=`expr $current + 1`
3337
	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3338
	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
3339
	  ;;
3340
3341
	freebsd-aout)
3342
	  major=".$current"
3343
	  versuffix=".$current.$revision";
3344
	  ;;
3345
3346
	freebsd-elf)
3347
	  major=".$current"
3348
	  versuffix=".$current";
3349
	  ;;
3350
3351
	irix | nonstopux)
3352
	  if test "X$lt_irix_increment" = "Xno"; then
3353
	    major=`expr $current - $age`
3354
	  else
3355
	    major=`expr $current - $age + 1`
3356
	  fi
3357
	  case $version_type in
3358
	    nonstopux) verstring_prefix=nonstopux ;;
3359
	    *)         verstring_prefix=sgi ;;
3360
	  esac
3361
	  verstring="$verstring_prefix$major.$revision"
3362
3363
	  # Add in all the interfaces that we are compatible with.
3364
	  loop=$revision
3365
	  while test "$loop" -ne 0; do
3366
	    iface=`expr $revision - $loop`
3367
	    loop=`expr $loop - 1`
3368
	    verstring="$verstring_prefix$major.$iface:$verstring"
3369
	  done
3370
3371
	  # Before this point, $major must not contain `.'.
3372
	  major=.$major
3373
	  versuffix="$major.$revision"
3374
	  ;;
3375
3376
	linux)
3377
	  major=.`expr $current - $age`
3378
	  versuffix="$major.$age.$revision"
3379
	  ;;
3380
3381
	osf)
3382
	  major=.`expr $current - $age`
3383
	  versuffix=".$current.$age.$revision"
3384
	  verstring="$current.$age.$revision"
3385
3386
	  # Add in all the interfaces that we are compatible with.
3387
	  loop=$age
3388
	  while test "$loop" -ne 0; do
3389
	    iface=`expr $current - $loop`
3390
	    loop=`expr $loop - 1`
3391
	    verstring="$verstring:${iface}.0"
3392
	  done
3393
3394
	  # Make executables depend on our current version.
3395
	  verstring="$verstring:${current}.0"
3396
	  ;;
3397
3398
	sunos)
3399
	  major=".$current"
3400
	  versuffix=".$current.$revision"
3401
	  ;;
3402
3403
	windows)
3404
	  # Use '-' rather than '.', since we only want one
3405
	  # extension on DOS 8.3 filesystems.
3406
	  major=`expr $current - $age`
3407
	  versuffix="-$major"
3408
	  ;;
3409
3410
	*)
3411
	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3412
	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3413
	  exit $EXIT_FAILURE
3414
	  ;;
3415
	esac
3416
3417
	# Clear the version info if we defaulted, and they specified a release.
3418
	if test -z "$vinfo" && test -n "$release"; then
3419
	  major=
3420
	  case $version_type in
3421
	  darwin)
3422
	    # we can't check for "0.0" in archive_cmds due to quoting
3423
	    # problems, so we reset it completely
3424
	    verstring=
3425
	    ;;
3426
	  *)
3427
	    verstring="0.0"
3428
	    ;;
3429
	  esac
3430
	  if test "$need_version" = no; then
3431
	    versuffix=
3432
	  else
3433
	    versuffix=".0.0"
3434
	  fi
3435
	fi
3436
3437
	# Remove version info from name if versioning should be avoided
3438
	if test "$avoid_version" = yes && test "$need_version" = no; then
3439
	  major=
3440
	  versuffix=
3441
	  verstring=""
3442
	fi
3443
3444
	# Check to see if the archive will have undefined symbols.
3445
	if test "$allow_undefined" = yes; then
3446
	  if test "$allow_undefined_flag" = unsupported; then
3447
	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3448
	    build_libtool_libs=no
3449
	    build_old_libs=yes
3450
	  fi
3451
	else
3452
	  # Don't allow undefined symbols.
3453
	  allow_undefined_flag="$no_undefined_flag"
3454
	fi
3455
      fi
3456
3457
      if test "$mode" != relink; then
3458
	# Remove our outputs, but don't remove object files since they
3459
	# may have been created when compiling PIC objects.
3460
	removelist=
3461
	tempremovelist=`$echo "$output_objdir/*"`
3462
	for p in $tempremovelist; do
3463
	  case $p in
3464
	    *.$objext)
3465
	       ;;
3466
	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3467
	       if test "X$precious_files_regex" != "X"; then
3468
	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3469
	         then
3470
		   continue
3471
		 fi
3472
	       fi
3473
	       removelist="$removelist $p"
3474
	       ;;
3475
	    *) ;;
3476
	  esac
3477
	done
3478
	if test -n "$removelist"; then
3479
	  $show "${rm}r $removelist"
3480
	  $run ${rm}r $removelist
3481
	fi
3482
      fi
3483
3484
      # Now set the variables for building old libraries.
3485
      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3486
	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3487
3488
	# Transform .lo files to .o files.
3489
	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3490
      fi
3491
3492
      # Eliminate all temporary directories.
3493
      #for path in $notinst_path; do
3494
      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3495
      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3496
      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3497
      #done
3498
3499
      if test -n "$xrpath"; then
3500
	# If the user specified any rpath flags, then add them.
3501
	temp_xrpath=
3502
	for libdir in $xrpath; do
3503
	  temp_xrpath="$temp_xrpath -R$libdir"
3504
	  case "$finalize_rpath " in
3505
	  *" $libdir "*) ;;
3506
	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3507
	  esac
3508
	done
3509
	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3510
	  dependency_libs="$temp_xrpath $dependency_libs"
3511
	fi
3512
      fi
3513
3514
      # Make sure dlfiles contains only unique files that won't be dlpreopened
3515
      old_dlfiles="$dlfiles"
3516
      dlfiles=
3517
      for lib in $old_dlfiles; do
3518
	case " $dlprefiles $dlfiles " in
3519
	*" $lib "*) ;;
3520
	*) dlfiles="$dlfiles $lib" ;;
3521
	esac
3522
      done
3523
3524
      # Make sure dlprefiles contains only unique files
3525
      old_dlprefiles="$dlprefiles"
3526
      dlprefiles=
3527
      for lib in $old_dlprefiles; do
3528
	case "$dlprefiles " in
3529
	*" $lib "*) ;;
3530
	*) dlprefiles="$dlprefiles $lib" ;;
3531
	esac
3532
      done
3533
3534
      if test "$build_libtool_libs" = yes; then
3535
	if test -n "$rpath"; then
3536
	  case $host in
3537
	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3538
	    # these systems don't actually have a c library (as such)!
3539
	    ;;
3540
	  *-*-rhapsody* | *-*-darwin1.[012])
3541
	    # Rhapsody C library is in the System framework
3542
	    deplibs="$deplibs -framework System"
3543
	    ;;
3544
	  *-*-netbsd*)
3545
	    # Don't link with libc until the a.out ld.so is fixed.
3546
	    ;;
3547
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3548
	    # Do not include libc due to us having libc/libc_r.
3549
	    ;;
3550
	  *-*-sco3.2v5* | *-*-sco5v6*)
3551
	    # Causes problems with __ctype
3552
	    ;;
3553
	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3554
	    # Compiler inserts libc in the correct place for threads to work
3555
	    ;;
3556
 	  *)
3557
	    # Add libc to deplibs on all other systems if necessary.
3558
	    if test "$build_libtool_need_lc" = "yes"; then
3559
	      deplibs="$deplibs -lc"
3560
	    fi
3561
	    ;;
3562
	  esac
3563
	fi
3564
3565
	# Transform deplibs into only deplibs that can be linked in shared.
3566
	name_save=$name
3567
	libname_save=$libname
3568
	release_save=$release
3569
	versuffix_save=$versuffix
3570
	major_save=$major
3571
	# I'm not sure if I'm treating the release correctly.  I think
3572
	# release should show up in the -l (ie -lgmp5) so we don't want to
3573
	# add it in twice.  Is that correct?
3574
	release=""
3575
	versuffix=""
3576
	major=""
3577
	newdeplibs=
3578
	droppeddeps=no
3579
	case $deplibs_check_method in
3580
	pass_all)
3581
	  # Don't check for shared/static.  Everything works.
3582
	  # This might be a little naive.  We might want to check
3583
	  # whether the library exists or not.  But this is on
3584
	  # osf3 & osf4 and I'm not really sure... Just
3585
	  # implementing what was already the behavior.
3586
	  newdeplibs=$deplibs
3587
	  ;;
3588
	test_compile)
3589
	  # This code stresses the "libraries are programs" paradigm to its
3590
	  # limits. Maybe even breaks it.  We compile a program, linking it
3591
	  # against the deplibs as a proxy for the library.  Then we can check
3592
	  # whether they linked in statically or dynamically with ldd.
3593
	  $rm conftest.c
3594
	  cat > conftest.c <<EOF
3595
	  int main() { return 0; }
3596
EOF
3597
	  $rm conftest
3598
	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
3599
	    ldd_output=`ldd conftest`
3600
	    for i in $deplibs; do
3601
	      name=`expr $i : '-l\(.*\)'`
3602
	      # If $name is empty we are operating on a -L argument.
3603
              if test "$name" != "" && test "$name" != "0"; then
3604
		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3605
		  case " $predeps $postdeps " in
3606
		  *" $i "*)
3607
		    newdeplibs="$newdeplibs $i"
3608
		    i=""
3609
		    ;;
3610
		  esac
3611
	        fi
3612
		if test -n "$i" ; then
3613
		  libname=`eval \\$echo \"$libname_spec\"`
3614
		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3615
		  set dummy $deplib_matches
3616
		  deplib_match=$2
3617
		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3618
		    newdeplibs="$newdeplibs $i"
3619
		  else
3620
		    droppeddeps=yes
3621
		    $echo
3622
		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3623
		    $echo "*** I have the capability to make that library automatically link in when"
3624
		    $echo "*** you link to this library.  But I can only do this if you have a"
3625
		    $echo "*** shared version of the library, which I believe you do not have"
3626
		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3627
		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3628
		  fi
3629
		fi
3630
	      else
3631
		newdeplibs="$newdeplibs $i"
3632
	      fi
3633
	    done
3634
	  else
3635
	    # Error occurred in the first compile.  Let's try to salvage
3636
	    # the situation: Compile a separate program for each library.
3637
	    for i in $deplibs; do
3638
	      name=`expr $i : '-l\(.*\)'`
3639
	      # If $name is empty we are operating on a -L argument.
3640
              if test "$name" != "" && test "$name" != "0"; then
3641
		$rm conftest
3642
		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
3643
		  ldd_output=`ldd conftest`
3644
		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3645
		    case " $predeps $postdeps " in
3646
		    *" $i "*)
3647
		      newdeplibs="$newdeplibs $i"
3648
		      i=""
3649
		      ;;
3650
		    esac
3651
		  fi
3652
		  if test -n "$i" ; then
3653
		    libname=`eval \\$echo \"$libname_spec\"`
3654
		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3655
		    set dummy $deplib_matches
3656
		    deplib_match=$2
3657
		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3658
		      newdeplibs="$newdeplibs $i"
3659
		    else
3660
		      droppeddeps=yes
3661
		      $echo
3662
		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3663
		      $echo "*** I have the capability to make that library automatically link in when"
3664
		      $echo "*** you link to this library.  But I can only do this if you have a"
3665
		      $echo "*** shared version of the library, which you do not appear to have"
3666
		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3667
		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3668
		    fi
3669
		  fi
3670
		else
3671
		  droppeddeps=yes
3672
		  $echo
3673
		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3674
		  $echo "*** make it link in!  You will probably need to install it or some"
3675
		  $echo "*** library that it depends on before this library will be fully"
3676
		  $echo "*** functional.  Installing it before continuing would be even better."
3677
		fi
3678
	      else
3679
		newdeplibs="$newdeplibs $i"
3680
	      fi
3681
	    done
3682
	  fi
3683
	  ;;
3684
	file_magic*)
3685
	  set dummy $deplibs_check_method
3686
	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3687
	  for a_deplib in $deplibs; do
3688
	    name=`expr $a_deplib : '-l\(.*\)'`
3689
	    # If $name is empty we are operating on a -L argument.
3690
            if test "$name" != "" && test  "$name" != "0"; then
3691
	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3692
		case " $predeps $postdeps " in
3693
		*" $a_deplib "*)
3694
		  newdeplibs="$newdeplibs $a_deplib"
3695
		  a_deplib=""
3696
		  ;;
3697
		esac
3698
	      fi
3699
	      if test -n "$a_deplib" ; then
3700
		libname=`eval \\$echo \"$libname_spec\"`
3701
		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3702
		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3703
		  for potent_lib in $potential_libs; do
3704
		      # Follow soft links.
3705
		      if ls -lLd "$potent_lib" 2>/dev/null \
3706
			 | grep " -> " >/dev/null; then
3707
			continue
3708
		      fi
3709
		      # The statement above tries to avoid entering an
3710
		      # endless loop below, in case of cyclic links.
3711
		      # We might still enter an endless loop, since a link
3712
		      # loop can be closed while we follow links,
3713
		      # but so what?
3714
		      potlib="$potent_lib"
3715
		      while test -h "$potlib" 2>/dev/null; do
3716
			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3717
			case $potliblink in
3718
			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3719
			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3720
			esac
3721
		      done
3722
		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3723
			 | ${SED} 10q \
3724
			 | $EGREP "$file_magic_regex" > /dev/null; then
3725
			newdeplibs="$newdeplibs $a_deplib"
3726
			a_deplib=""
3727
			break 2
3728
		      fi
3729
		  done
3730
		done
3731
	      fi
3732
	      if test -n "$a_deplib" ; then
3733
		droppeddeps=yes
3734
		$echo
3735
		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3736
		$echo "*** I have the capability to make that library automatically link in when"
3737
		$echo "*** you link to this library.  But I can only do this if you have a"
3738
		$echo "*** shared version of the library, which you do not appear to have"
3739
		$echo "*** because I did check the linker path looking for a file starting"
3740
		if test -z "$potlib" ; then
3741
		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3742
		else
3743
		  $echo "*** with $libname and none of the candidates passed a file format test"
3744
		  $echo "*** using a file magic. Last file checked: $potlib"
3745
		fi
3746
	      fi
3747
	    else
3748
	      # Add a -L argument.
3749
	      newdeplibs="$newdeplibs $a_deplib"
3750
	    fi
3751
	  done # Gone through all deplibs.
3752
	  ;;
3753
	match_pattern*)
3754
	  set dummy $deplibs_check_method
3755
	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3756
	  for a_deplib in $deplibs; do
3757
	    name=`expr $a_deplib : '-l\(.*\)'`
3758
	    # If $name is empty we are operating on a -L argument.
3759
	    if test -n "$name" && test "$name" != "0"; then
3760
	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3761
		case " $predeps $postdeps " in
3762
		*" $a_deplib "*)
3763
		  newdeplibs="$newdeplibs $a_deplib"
3764
		  a_deplib=""
3765
		  ;;
3766
		esac
3767
	      fi
3768
	      if test -n "$a_deplib" ; then
3769
		libname=`eval \\$echo \"$libname_spec\"`
3770
		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3771
		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3772
		  for potent_lib in $potential_libs; do
3773
		    potlib="$potent_lib" # see symlink-check above in file_magic test
3774
		    if eval $echo \"$potent_lib\" 2>/dev/null \
3775
		        | ${SED} 10q \
3776
		        | $EGREP "$match_pattern_regex" > /dev/null; then
3777
		      newdeplibs="$newdeplibs $a_deplib"
3778
		      a_deplib=""
3779
		      break 2
3780
		    fi
3781
		  done
3782
		done
3783
	      fi
3784
	      if test -n "$a_deplib" ; then
3785
		droppeddeps=yes
3786
		$echo
3787
		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3788
		$echo "*** I have the capability to make that library automatically link in when"
3789
		$echo "*** you link to this library.  But I can only do this if you have a"
3790
		$echo "*** shared version of the library, which you do not appear to have"
3791
		$echo "*** because I did check the linker path looking for a file starting"
3792
		if test -z "$potlib" ; then
3793
		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3794
		else
3795
		  $echo "*** with $libname and none of the candidates passed a file format test"
3796
		  $echo "*** using a regex pattern. Last file checked: $potlib"
3797
		fi
3798
	      fi
3799
	    else
3800
	      # Add a -L argument.
3801
	      newdeplibs="$newdeplibs $a_deplib"
3802
	    fi
3803
	  done # Gone through all deplibs.