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