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