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