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