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