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