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