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 Debian 1.5.24-1ubuntu1"
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)
2126	  libs="$deplibs %DEPLIBS%"
2127	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
2128	  ;;
2129	esac
2130      fi
2131      if test "$pass" = dlopen; then
2132	# Collect dlpreopened libraries
2133	save_deplibs="$deplibs"
2134	deplibs=
2135      fi
2136      for deplib in $libs; do
2137	lib=
2138	found=no
2139	case $deplib in
2140	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2141	  if test "$linkmode,$pass" = "prog,link"; then
2142	    compile_deplibs="$deplib $compile_deplibs"
2143	    finalize_deplibs="$deplib $finalize_deplibs"
2144	  else
2145	    compiler_flags="$compiler_flags $deplib"
2146	  fi
2147	  continue
2148	  ;;
2149	-l*)
2150	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2151	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2152	    continue
2153	  fi
2154	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2155	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2156	    for search_ext in .la $std_shrext .so .a; do
2157	      # Search the libtool library
2158	      lib="$searchdir/lib${name}${search_ext}"
2159	      if test -f "$lib"; then
2160		if test "$search_ext" = ".la"; then
2161		  found=yes
2162		else
2163		  found=no
2164		fi
2165		break 2
2166	      fi
2167	    done
2168	  done
2169	  if test "$found" != yes; then
2170	    # deplib doesn't seem to be a libtool library
2171	    if test "$linkmode,$pass" = "prog,link"; then
2172	      compile_deplibs="$deplib $compile_deplibs"
2173	      finalize_deplibs="$deplib $finalize_deplibs"
2174	    else
2175	      deplibs="$deplib $deplibs"
2176	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2177	    fi
2178	    continue
2179	  else # deplib is a libtool library
2180	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2181	    # We need to do some special things here, and not later.
2182	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2183	      case " $predeps $postdeps " in
2184	      *" $deplib "*)
2185		if (${SED} -e '2q' $lib |
2186                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2187		  library_names=
2188		  old_library=
2189		  case $lib in
2190		  */* | *\\*) . $lib ;;
2191		  *) . ./$lib ;;
2192		  esac
2193		  for l in $old_library $library_names; do
2194		    ll="$l"
2195		  done
2196		  if test "X$ll" = "X$old_library" ; then # only static version available
2197		    found=no
2198		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2199		    test "X$ladir" = "X$lib" && ladir="."
2200		    lib=$ladir/$old_library
2201		    if test "$linkmode,$pass" = "prog,link"; then
2202		      compile_deplibs="$deplib $compile_deplibs"
2203		      finalize_deplibs="$deplib $finalize_deplibs"
2204		    else
2205		      deplibs="$deplib $deplibs"
2206		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2207		    fi
2208		    continue
2209		  fi
2210		fi
2211	        ;;
2212	      *) ;;
2213	      esac
2214	    fi
2215	  fi
2216	  ;; # -l
2217	-L*)
2218	  case $linkmode in
2219	  lib)
2220	    deplibs="$deplib $deplibs"
2221	    test "$pass" = conv && continue
2222	    newdependency_libs="$deplib $newdependency_libs"
2223	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2224	    ;;
2225	  prog)
2226	    if test "$pass" = conv; then
2227	      deplibs="$deplib $deplibs"
2228	      continue
2229	    fi
2230	    if test "$pass" = scan; then
2231	      deplibs="$deplib $deplibs"
2232	    else
2233	      compile_deplibs="$deplib $compile_deplibs"
2234	      finalize_deplibs="$deplib $finalize_deplibs"
2235	    fi
2236	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2237	    ;;
2238	  *)
2239	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2240	    ;;
2241	  esac # linkmode
2242	  continue
2243	  ;; # -L
2244	-R*)
2245	  if test "$pass" = link; then
2246	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2247	    # Make sure the xrpath contains only unique directories.
2248	    case "$xrpath " in
2249	    *" $dir "*) ;;
2250	    *) xrpath="$xrpath $dir" ;;
2251	    esac
2252	  fi
2253	  deplibs="$deplib $deplibs"
2254	  continue
2255	  ;;
2256	*.la) lib="$deplib" ;;
2257	*.$libext)
2258	  if test "$pass" = conv; then
2259	    deplibs="$deplib $deplibs"
2260	    continue
2261	  fi
2262	  case $linkmode in
2263	  lib)
2264	    valid_a_lib=no
2265	    case $deplibs_check_method in
2266	      match_pattern*)
2267		set dummy $deplibs_check_method
2268	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2269		if eval $echo \"$deplib\" 2>/dev/null \
2270		    | $SED 10q \
2271		    | $EGREP "$match_pattern_regex" > /dev/null; then
2272		  valid_a_lib=yes
2273		fi
2274		;;
2275	      pass_all)
2276		valid_a_lib=yes
2277		;;
2278            esac
2279	    if test "$valid_a_lib" != yes; then
2280	      $echo
2281	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2282	      $echo "*** I have the capability to make that library automatically link in when"
2283	      $echo "*** you link to this library.  But I can only do this if you have a"
2284	      $echo "*** shared version of the library, which you do not appear to have"
2285	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2286	      $echo "*** that it is just a static archive that I should not used here."
2287	    else
2288	      $echo
2289	      $echo "*** Warning: Linking the shared library $output against the"
2290	      $echo "*** static library $deplib is not portable!"
2291	      deplibs="$deplib $deplibs"
2292	    fi
2293	    continue
2294	    ;;
2295	  prog)
2296	    if test "$pass" != link; then
2297	      deplibs="$deplib $deplibs"
2298	    else
2299	      compile_deplibs="$deplib $compile_deplibs"
2300	      finalize_deplibs="$deplib $finalize_deplibs"
2301	    fi
2302	    continue
2303	    ;;
2304	  esac # linkmode
2305	  ;; # *.$libext
2306	*.lo | *.$objext)
2307	  if test "$pass" = conv; then
2308	    deplibs="$deplib $deplibs"
2309	  elif test "$linkmode" = prog; then
2310	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2311	      # If there is no dlopen support or we're linking statically,
2312	      # we need to preload.
2313	      newdlprefiles="$newdlprefiles $deplib"
2314	      compile_deplibs="$deplib $compile_deplibs"
2315	      finalize_deplibs="$deplib $finalize_deplibs"
2316	    else
2317	      newdlfiles="$newdlfiles $deplib"
2318	    fi
2319	  fi
2320	  continue
2321	  ;;
2322	%DEPLIBS%)
2323	  alldeplibs=yes
2324	  continue
2325	  ;;
2326	esac # case $deplib
2327	if test "$found" = yes || test -f "$lib"; then :
2328	else
2329	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2330	  exit $EXIT_FAILURE
2331	fi
2332
2333	# Check to see that this really is a libtool archive.
2334	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2335	else
2336	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2337	  exit $EXIT_FAILURE
2338	fi
2339
2340	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2341	test "X$ladir" = "X$lib" && ladir="."
2342
2343	dlname=
2344	dlopen=
2345	dlpreopen=
2346	libdir=
2347	library_names=
2348	old_library=
2349	# If the library was installed with an old release of libtool,
2350	# it will not redefine variables installed, or shouldnotlink
2351	installed=yes
2352	shouldnotlink=no
2353	avoidtemprpath=
2354
2355
2356	# Read the .la file
2357	case $lib in
2358	*/* | *\\*) . $lib ;;
2359	*) . ./$lib ;;
2360	esac
2361
2362	if test "$linkmode,$pass" = "lib,link" ||
2363	   test "$linkmode,$pass" = "prog,scan" ||
2364	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2365	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2366	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2367	fi
2368
2369	if test "$pass" = conv; then
2370	  # Only check for convenience libraries
2371	  deplibs="$lib $deplibs"
2372	  if test -z "$libdir"; then
2373	    if test -z "$old_library"; then
2374	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2375	      exit $EXIT_FAILURE
2376	    fi
2377	    # It is a libtool convenience library, so add in its objects.
2378	    convenience="$convenience $ladir/$objdir/$old_library"
2379	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2380	    tmp_libs=
2381	    for deplib in $dependency_libs; do
2382	      deplibs="$deplib $deplibs"
2383              if test "X$duplicate_deps" = "Xyes" ; then
2384	        case "$tmp_libs " in
2385	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2386	        esac
2387              fi
2388	      tmp_libs="$tmp_libs $deplib"
2389	    done
2390	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2391	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2392	    exit $EXIT_FAILURE
2393	  fi
2394	  continue
2395	fi # $pass = conv
2396
2397
2398	# Get the name of the library we link against.
2399	linklib=
2400	for l in $old_library $library_names; do
2401	  linklib="$l"
2402	done
2403	if test -z "$linklib"; then
2404	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2405	  exit $EXIT_FAILURE
2406	fi
2407
2408	# This library was specified with -dlopen.
2409	if test "$pass" = dlopen; then
2410	  if test -z "$libdir"; then
2411	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2412	    exit $EXIT_FAILURE
2413	  fi
2414	  if test -z "$dlname" ||
2415	     test "$dlopen_support" != yes ||
2416	     test "$build_libtool_libs" = no; then
2417	    # If there is no dlname, no dlopen support or we're linking
2418	    # statically, we need to preload.  We also need to preload any
2419	    # dependent libraries so libltdl's deplib preloader doesn't
2420	    # bomb out in the load deplibs phase.
2421	    dlprefiles="$dlprefiles $lib $dependency_libs"
2422	  else
2423	    newdlfiles="$newdlfiles $lib"
2424	  fi
2425	  continue
2426	fi # $pass = dlopen
2427
2428	# We need an absolute path.
2429	case $ladir in
2430	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2431	*)
2432	  abs_ladir=`cd "$ladir" && pwd`
2433	  if test -z "$abs_ladir"; then
2434	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2435	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2436	    abs_ladir="$ladir"
2437	  fi
2438	  ;;
2439	esac
2440	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2441
2442	# Find the relevant object directory and library name.
2443	if test "X$installed" = Xyes; then
2444	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2445	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2446	    dir="$ladir"
2447	    absdir="$abs_ladir"
2448	    libdir="$abs_ladir"
2449	  else
2450	    dir="$libdir"
2451	    absdir="$libdir"
2452	  fi
2453	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2454	else
2455	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2456	    dir="$ladir"
2457	    absdir="$abs_ladir"
2458	    # Remove this search path later
2459	    notinst_path="$notinst_path $abs_ladir"
2460	  else
2461	    dir="$ladir/$objdir"
2462	    absdir="$abs_ladir/$objdir"
2463	    # Remove this search path later
2464	    notinst_path="$notinst_path $abs_ladir"
2465	  fi
2466	fi # $installed = yes
2467	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2468
2469	# This library was specified with -dlpreopen.
2470	if test "$pass" = dlpreopen; then
2471	  if test -z "$libdir"; then
2472	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2473	    exit $EXIT_FAILURE
2474	  fi
2475	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2476	  # are required to link).
2477	  if test -n "$old_library"; then
2478	    newdlprefiles="$newdlprefiles $dir/$old_library"
2479	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2480	  elif test -n "$dlname"; then
2481	    newdlprefiles="$newdlprefiles $dir/$dlname"
2482	  else
2483	    newdlprefiles="$newdlprefiles $dir/$linklib"
2484	  fi
2485	fi # $pass = dlpreopen
2486
2487	if test -z "$libdir"; then
2488	  # Link the convenience library
2489	  if test "$linkmode" = lib; then
2490	    deplibs="$dir/$old_library $deplibs"
2491	  elif test "$linkmode,$pass" = "prog,link"; then
2492	    compile_deplibs="$dir/$old_library $compile_deplibs"
2493	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2494	  else
2495	    deplibs="$lib $deplibs" # used for prog,scan pass
2496	  fi
2497	  continue
2498	fi
2499
2500
2501	if test "$linkmode" = prog && test "$pass" != link; then
2502	  newlib_search_path="$newlib_search_path $ladir"
2503	  deplibs="$lib $deplibs"
2504
2505	  linkalldeplibs=no
2506	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2507	     test "$build_libtool_libs" = no; then
2508	    linkalldeplibs=yes
2509	  fi
2510
2511	  tmp_libs=
2512	  for deplib in $dependency_libs; do
2513	    case $deplib in
2514	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2515	    esac
2516	    # Need to link against all dependency_libs?
2517	    if test "$linkalldeplibs" = yes; then
2518	      deplibs="$deplib $deplibs"
2519	    else
2520	      # Need to hardcode shared library paths
2521	      # or/and link against static libraries
2522	      newdependency_libs="$deplib $newdependency_libs"
2523	    fi
2524	    if test "X$duplicate_deps" = "Xyes" ; then
2525	      case "$tmp_libs " in
2526	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2527	      esac
2528	    fi
2529	    tmp_libs="$tmp_libs $deplib"
2530	  done # for deplib
2531	  continue
2532	fi # $linkmode = prog...
2533
2534	if test "$linkmode,$pass" = "prog,link"; then
2535	  if test -n "$library_names" &&
2536	     { { test "$prefer_static_libs" = no ||
2537		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
2538	       test -z "$old_library"; }; then
2539	    # We need to hardcode the library path
2540	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2541	      # Make sure the rpath contains only unique directories.
2542	      case "$temp_rpath " in
2543	      *" $dir "*) ;;
2544	      *" $absdir "*) ;;
2545	      *) temp_rpath="$temp_rpath $absdir" ;;
2546	      esac
2547	    fi
2548
2549	    # Hardcode the library path.
2550	    # Skip directories that are in the system default run-time
2551	    # search path.
2552	    case " $sys_lib_dlsearch_path " in
2553	    *" $absdir "*) ;;
2554	    *)
2555	      case "$compile_rpath " in
2556	      *" $absdir "*) ;;
2557	      *) compile_rpath="$compile_rpath $absdir"
2558	      esac
2559	      ;;
2560	    esac
2561	    case " $sys_lib_dlsearch_path " in
2562	    *" $libdir "*) ;;
2563	    *)
2564	      case "$finalize_rpath " in
2565	      *" $libdir "*) ;;
2566	      *) finalize_rpath="$finalize_rpath $libdir"
2567	      esac
2568	      ;;
2569	    esac
2570	  fi # $linkmode,$pass = prog,link...
2571
2572	  if test "$alldeplibs" = yes &&
2573	     { test "$deplibs_check_method" = pass_all ||
2574	       { test "$build_libtool_libs" = yes &&
2575		 test -n "$library_names"; }; }; then
2576	    # We only need to search for static libraries
2577	    continue
2578	  fi
2579	fi
2580
2581	link_static=no # Whether the deplib will be linked statically
2582	use_static_libs=$prefer_static_libs
2583	if test "$use_static_libs" = built && test "$installed" = yes ; then
2584	  use_static_libs=no
2585	fi
2586	if test -n "$library_names" &&
2587	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2588	  if test "$installed" = no; then
2589	    notinst_deplibs="$notinst_deplibs $lib"
2590	    need_relink=yes
2591	  fi
2592	  # This is a shared library
2593
2594	  # Warn about portability, can't link against -module's on
2595	  # some systems (darwin)
2596	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2597	    $echo
2598	    if test "$linkmode" = prog; then
2599	      $echo "*** Warning: Linking the executable $output against the loadable module"
2600	    else
2601	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2602	    fi
2603	    $echo "*** $linklib is not portable!"
2604	  fi
2605	  if test "$linkmode" = lib &&
2606	     test "$hardcode_into_libs" = yes; then
2607	    # Hardcode the library path.
2608	    # Skip directories that are in the system default run-time
2609	    # search path.
2610	    case " $sys_lib_dlsearch_path " in
2611	    *" $absdir "*) ;;
2612	    *)
2613	      case "$compile_rpath " in
2614	      *" $absdir "*) ;;
2615	      *) compile_rpath="$compile_rpath $absdir"
2616	      esac
2617	      ;;
2618	    esac
2619	    case " $sys_lib_dlsearch_path " in
2620	    *" $libdir "*) ;;
2621	    *)
2622	      case "$finalize_rpath " in
2623	      *" $libdir "*) ;;
2624	      *) finalize_rpath="$finalize_rpath $libdir"
2625	      esac
2626	      ;;
2627	    esac
2628	  fi
2629
2630	  if test -n "$old_archive_from_expsyms_cmds"; then
2631	    # figure out the soname
2632	    set dummy $library_names
2633	    realname="$2"
2634	    shift; shift
2635	    libname=`eval \\$echo \"$libname_spec\"`
2636	    # use dlname if we got it. it's perfectly good, no?
2637	    if test -n "$dlname"; then
2638	      soname="$dlname"
2639	    elif test -n "$soname_spec"; then
2640	      # bleh windows
2641	      case $host in
2642	      *cygwin* | mingw*)
2643		major=`expr $current - $age`
2644		versuffix="-$major"
2645		;;
2646	      esac
2647	      eval soname=\"$soname_spec\"
2648	    else
2649	      soname="$realname"
2650	    fi
2651
2652	    # Make a new name for the extract_expsyms_cmds to use
2653	    soroot="$soname"
2654	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2655	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2656
2657	    # If the library has no export list, then create one now
2658	    if test -f "$output_objdir/$soname-def"; then :
2659	    else
2660	      $show "extracting exported symbol list from \`$soname'"
2661	      save_ifs="$IFS"; IFS='~'
2662	      cmds=$extract_expsyms_cmds
2663	      for cmd in $cmds; do
2664		IFS="$save_ifs"
2665		eval cmd=\"$cmd\"
2666		$show "$cmd"
2667		$run eval "$cmd" || exit $?
2668	      done
2669	      IFS="$save_ifs"
2670	    fi
2671
2672	    # Create $newlib
2673	    if test -f "$output_objdir/$newlib"; then :; else
2674	      $show "generating import library for \`$soname'"
2675	      save_ifs="$IFS"; IFS='~'
2676	      cmds=$old_archive_from_expsyms_cmds
2677	      for cmd in $cmds; do
2678		IFS="$save_ifs"
2679		eval cmd=\"$cmd\"
2680		$show "$cmd"
2681		$run eval "$cmd" || exit $?
2682	      done
2683	      IFS="$save_ifs"
2684	    fi
2685	    # make sure the library variables are pointing to the new library
2686	    dir=$output_objdir
2687	    linklib=$newlib
2688	  fi # test -n "$old_archive_from_expsyms_cmds"
2689
2690	  if test "$linkmode" = prog || test "$mode" != relink; then
2691	    add_shlibpath=
2692	    add_dir=
2693	    add=
2694	    lib_linked=yes
2695	    case $hardcode_action in
2696	    immediate | unsupported)
2697	      if test "$hardcode_direct" = no; then
2698		add="$dir/$linklib"
2699		case $host in
2700		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2701		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2702		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2703		    *-*-unixware7*) add_dir="-L$dir" ;;
2704		  *-*-darwin* )
2705		    # if the lib is a module then we can not link against
2706		    # it, someone is ignoring the new warnings I added
2707		    if /usr/bin/file -L $add 2> /dev/null |
2708                      $EGREP ": [^:]* bundle" >/dev/null ; then
2709		      $echo "** Warning, lib $linklib is a module, not a shared library"
2710		      if test -z "$old_library" ; then
2711		        $echo
2712		        $echo "** And there doesn't seem to be a static archive available"
2713		        $echo "** The link will probably fail, sorry"
2714		      else
2715		        add="$dir/$old_library"
2716		      fi
2717		    fi
2718		esac
2719	      elif test "$hardcode_minus_L" = no; then
2720		case $host in
2721		*-*-sunos*) add_shlibpath="$dir" ;;
2722		esac
2723		add_dir="-L$dir"
2724		add="-l$name"
2725	      elif test "$hardcode_shlibpath_var" = no; then
2726		add_shlibpath="$dir"
2727		add="-l$name"
2728	      else
2729		lib_linked=no
2730	      fi
2731	      ;;
2732	    relink)
2733	      if test "$hardcode_direct" = yes; then
2734		add="$dir/$linklib"
2735	      elif test "$hardcode_minus_L" = yes; then
2736		add_dir="-L$dir"
2737		# Try looking first in the location we're being installed to.
2738		if test -n "$inst_prefix_dir"; then
2739		  case $libdir in
2740		    [\\/]*)
2741		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2742		      ;;
2743		  esac
2744		fi
2745		add="-l$name"
2746	      elif test "$hardcode_shlibpath_var" = yes; then
2747		add_shlibpath="$dir"
2748		add="-l$name"
2749	      else
2750		lib_linked=no
2751	      fi
2752	      ;;
2753	    *) lib_linked=no ;;
2754	    esac
2755
2756	    if test "$lib_linked" != yes; then
2757	      $echo "$modename: configuration error: unsupported hardcode properties"
2758	      exit $EXIT_FAILURE
2759	    fi
2760
2761	    if test -n "$add_shlibpath"; then
2762	      case :$compile_shlibpath: in
2763	      *":$add_shlibpath:"*) ;;
2764	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2765	      esac
2766	    fi
2767	    if test "$linkmode" = prog; then
2768	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2769	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2770	    else
2771	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2772	      test -n "$add" && deplibs="$add $deplibs"
2773	      if test "$hardcode_direct" != yes && \
2774		 test "$hardcode_minus_L" != yes && \
2775		 test "$hardcode_shlibpath_var" = yes; then
2776		case :$finalize_shlibpath: in
2777		*":$libdir:"*) ;;
2778		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2779		esac
2780	      fi
2781	    fi
2782	  fi
2783
2784	  if test "$linkmode" = prog || test "$mode" = relink; then
2785	    add_shlibpath=
2786	    add_dir=
2787	    add=
2788	    # Finalize command for both is simple: just hardcode it.
2789	    if test "$hardcode_direct" = yes; then
2790	      add="$libdir/$linklib"
2791	    elif test "$hardcode_minus_L" = yes; then
2792	      add_dir="-L$libdir"
2793	      add="-l$name"
2794	    elif test "$hardcode_shlibpath_var" = yes; then
2795	      case :$finalize_shlibpath: in
2796	      *":$libdir:"*) ;;
2797	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2798	      esac
2799	      add="-l$name"
2800	    elif test "$hardcode_automatic" = yes; then
2801	      if test -n "$inst_prefix_dir" &&
2802		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2803	        add="$inst_prefix_dir$libdir/$linklib"
2804	      else
2805	        add="$libdir/$linklib"
2806	      fi
2807	    else
2808	      # We cannot seem to hardcode it, guess we'll fake it.
2809	      add_dir="-L$libdir"
2810	      # Try looking first in the location we're being installed to.
2811	      if test -n "$inst_prefix_dir"; then
2812		case $libdir in
2813		  [\\/]*)
2814		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2815		    ;;
2816		esac
2817	      fi
2818	      add="-l$name"
2819	    fi
2820
2821	    if test "$linkmode" = prog; then
2822	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2823	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2824	    else
2825	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2826	      test -n "$add" && deplibs="$add $deplibs"
2827	    fi
2828	  fi
2829	elif test "$linkmode" = prog; then
2830	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2831	  # is not unsupported.  This is valid on all known static and
2832	  # shared platforms.
2833	  if test "$hardcode_direct" != unsupported; then
2834	    test -n "$old_library" && linklib="$old_library"
2835	    compile_deplibs="$dir/$linklib $compile_deplibs"
2836	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2837	  else
2838	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2839	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2840	  fi
2841	elif test "$build_libtool_libs" = yes; then
2842	  # Not a shared library
2843	  if test "$deplibs_check_method" != pass_all; then
2844	    # We're trying link a shared library against a static one
2845	    # but the system doesn't support it.
2846
2847	    # Just print a warning and add the library to dependency_libs so
2848	    # that the program can be linked against the static library.
2849	    $echo
2850	    $echo "*** Warning: This system can not link to static lib archive $lib."
2851	    $echo "*** I have the capability to make that library automatically link in when"
2852	    $echo "*** you link to this library.  But I can only do this if you have a"
2853	    $echo "*** shared version of the library, which you do not appear to have."
2854	    if test "$module" = yes; then
2855	      $echo "*** But as you try to build a module library, libtool will still create "
2856	      $echo "*** a static module, that should work as long as the dlopening application"
2857	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2858	      if test -z "$global_symbol_pipe"; then
2859		$echo
2860		$echo "*** However, this would only work if libtool was able to extract symbol"
2861		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2862		$echo "*** not find such a program.  So, this module is probably useless."
2863		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2864	      fi
2865	      if test "$build_old_libs" = no; then
2866		build_libtool_libs=module
2867		build_old_libs=yes
2868	      else
2869		build_libtool_libs=no
2870	      fi
2871	    fi
2872	  else
2873	    deplibs="$dir/$old_library $deplibs"
2874	    link_static=yes
2875	  fi
2876	fi # link shared/static library?
2877
2878	if test "$linkmode" = lib; then
2879	  if test -n "$dependency_libs" &&
2880	     { test "$hardcode_into_libs" != yes ||
2881	       test "$build_old_libs" = yes ||
2882	       test "$link_static" = yes; }; then
2883	    # Extract -R from dependency_libs
2884	    temp_deplibs=
2885	    for libdir in $dependency_libs; do
2886	      case $libdir in
2887	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2888		   case " $xrpath " in
2889		   *" $temp_xrpath "*) ;;
2890		   *) xrpath="$xrpath $temp_xrpath";;
2891		   esac;;
2892	      *) temp_deplibs="$temp_deplibs $libdir";;
2893	      esac
2894	    done
2895	    dependency_libs="$temp_deplibs"
2896	  fi
2897
2898	  newlib_search_path="$newlib_search_path $absdir"
2899	  # Link against this library
2900	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2901	  # ... and its dependency_libs
2902	  tmp_libs=
2903	  for deplib in $dependency_libs; do
2904	    newdependency_libs="$deplib $newdependency_libs"
2905	    if test "X$duplicate_deps" = "Xyes" ; then
2906	      case "$tmp_libs " in
2907	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2908	      esac
2909	    fi
2910	    tmp_libs="$tmp_libs $deplib"
2911	  done
2912
2913	  if test "$link_all_deplibs" != no; then
2914	    # Add the search paths of all dependency libraries
2915	    for deplib in $dependency_libs; do
2916	      case $deplib in
2917	      -L*) path="$deplib" ;;
2918	      *.la)
2919		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2920		test "X$dir" = "X$deplib" && dir="."
2921		# We need an absolute path.
2922		case $dir in
2923		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2924		*)
2925		  absdir=`cd "$dir" && pwd`
2926		  if test -z "$absdir"; then
2927		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2928		    absdir="$dir"
2929		  fi
2930		  ;;
2931		esac
2932		if grep "^installed=no" $deplib > /dev/null; then
2933		  path="$absdir/$objdir"
2934		else
2935		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2936		  if test -z "$libdir"; then
2937		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2938		    exit $EXIT_FAILURE
2939		  fi
2940		  if test "$absdir" != "$libdir"; then
2941		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2942		  fi
2943		  path="$absdir"
2944		fi
2945		depdepl=
2946		case $host in
2947		*-*-darwin*)
2948		  # we do not want to link against static libs,
2949		  # but need to link against shared
2950		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2951		  if test -n "$deplibrary_names" ; then
2952		    for tmp in $deplibrary_names ; do
2953		      depdepl=$tmp
2954		    done
2955		    if test -f "$path/$depdepl" ; then
2956		      depdepl="$path/$depdepl"
2957		    fi
2958		    # do not add paths which are already there
2959		    case " $newlib_search_path " in
2960		    *" $path "*) ;;
2961		    *) newlib_search_path="$newlib_search_path $path";;
2962		    esac
2963		  fi
2964		  path=""
2965		  ;;
2966		*)
2967		  path="-L$path"
2968		  ;;
2969		esac
2970		;;
2971	      -l*)
2972		case $host in
2973		*-*-darwin*)
2974		  # Again, we only want to link against shared libraries
2975		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2976		  for tmp in $newlib_search_path ; do
2977		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2978		      eval depdepl="$tmp/lib$tmp_libs.dylib"
2979		      break
2980		    fi
2981		  done
2982		  path=""
2983		  ;;
2984		*) continue ;;
2985		esac
2986		;;
2987	      *) continue ;;
2988	      esac
2989	      case " $deplibs " in
2990	      *" $path "*) ;;
2991	      *) deplibs="$path $deplibs" ;;
2992	      esac
2993	      case " $deplibs " in
2994	      *" $depdepl "*) ;;
2995	      *) deplibs="$depdepl $deplibs" ;;
2996	      esac
2997	    done
2998	  fi # link_all_deplibs != no
2999	fi # linkmode = lib
3000      done # for deplib in $libs
3001      dependency_libs="$newdependency_libs"
3002      if test "$pass" = dlpreopen; then
3003	# Link the dlpreopened libraries before other libraries
3004	for deplib in $save_deplibs; do
3005	  deplibs="$deplib $deplibs"
3006	done
3007      fi
3008      if test "$pass" != dlopen; then
3009	if test "$pass" != conv; then
3010	  # Make sure lib_search_path contains only unique directories.
3011	  lib_search_path=
3012	  for dir in $newlib_search_path; do
3013	    case "$lib_search_path " in
3014	    *" $dir "*) ;;
3015	    *) lib_search_path="$lib_search_path $dir" ;;
3016	    esac
3017	  done
3018	  newlib_search_path=
3019	fi
3020
3021	if test "$linkmode,$pass" != "prog,link"; then
3022	  vars="deplibs"
3023	else
3024	  vars="compile_deplibs finalize_deplibs"
3025	fi
3026	for var in $vars dependency_libs; do
3027	  # Add libraries to $var in reverse order
3028	  eval tmp_libs=\"\$$var\"
3029	  new_libs=
3030	  for deplib in $tmp_libs; do
3031	    # FIXME: Pedantically, this is the right thing to do, so
3032	    #        that some nasty dependency loop isn't accidentally
3033	    #        broken:
3034	    #new_libs="$deplib $new_libs"
3035	    # Pragmatically, this seems to cause very few problems in
3036	    # practice:
3037	    case $deplib in
3038	    -L*) new_libs="$deplib $new_libs" ;;
3039	    -R*) ;;
3040	    *)
3041	      # And here is the reason: when a library appears more
3042	      # than once as an explicit dependence of a library, or
3043	      # is implicitly linked in more than once by the
3044	      # compiler, it is considered special, and multiple
3045	      # occurrences thereof are not removed.  Compare this
3046	      # with having the same library being listed as a
3047	      # dependency of multiple other libraries: in this case,
3048	      # we know (pedantically, we assume) the library does not
3049	      # need to be listed more than once, so we keep only the
3050	      # last copy.  This is not always right, but it is rare
3051	      # enough that we require users that really mean to play
3052	      # such unportable linking tricks to link the library
3053	      # using -Wl,-lname, so that libtool does not consider it
3054	      # for duplicate removal.
3055	      case " $specialdeplibs " in
3056	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3057	      *)
3058		case " $new_libs " in
3059		*" $deplib "*) ;;
3060		*) new_libs="$deplib $new_libs" ;;
3061		esac
3062		;;
3063	      esac
3064	      ;;
3065	    esac
3066	  done
3067	  tmp_libs=
3068	  for deplib in $new_libs; do
3069	    case $deplib in
3070	    -L*)
3071	      case " $tmp_libs " in
3072	      *" $deplib "*) ;;
3073	      *) tmp_libs="$tmp_libs $deplib" ;;
3074	      esac
3075	      ;;
3076	    *) tmp_libs="$tmp_libs $deplib" ;;
3077	    esac
3078	  done
3079	  eval $var=\"$tmp_libs\"
3080	done # for var
3081      fi
3082      # Last step: remove runtime libs from dependency_libs
3083      # (they stay in deplibs)
3084      tmp_libs=
3085      for i in $dependency_libs ; do
3086	case " $predeps $postdeps $compiler_lib_search_path " in
3087	*" $i "*)
3088	  i=""
3089	  ;;
3090	esac
3091	if test -n "$i" ; then
3092	  tmp_libs="$tmp_libs $i"
3093	fi
3094      done
3095      dependency_libs=$tmp_libs
3096    done # for pass
3097    if test "$linkmode" = prog; then
3098      dlfiles="$newdlfiles"
3099      dlprefiles="$newdlprefiles"
3100    fi
3101
3102    case $linkmode in
3103    oldlib)
3104      if test -n "$deplibs"; then
3105	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3106      fi
3107
3108      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3109	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3110      fi
3111
3112      if test -n "$rpath"; then
3113	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3114      fi
3115
3116      if test -n "$xrpath"; then
3117	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3118      fi
3119
3120      if test -n "$vinfo"; then
3121	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3122      fi
3123
3124      if test -n "$release"; then
3125	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3126      fi
3127
3128      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3129	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3130      fi
3131
3132      # Now set the variables for building old libraries.
3133      build_libtool_libs=no
3134      oldlibs="$output"
3135      objs="$objs$old_deplibs"
3136      ;;
3137
3138    lib)
3139      # Make sure we only generate libraries of the form `libNAME.la'.
3140      case $outputname in
3141      lib*)
3142	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3143	eval shared_ext=\"$shrext_cmds\"
3144	eval libname=\"$libname_spec\"
3145	;;
3146      *)
3147	if test "$module" = no; then
3148	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3149	  $echo "$help" 1>&2
3150	  exit $EXIT_FAILURE
3151	fi
3152	if test "$need_lib_prefix" != no; then
3153	  # Add the "lib" prefix for modules if required
3154	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3155	  eval shared_ext=\"$shrext_cmds\"
3156	  eval libname=\"$libname_spec\"
3157	else
3158	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3159	fi
3160	;;
3161      esac
3162
3163      if test -n "$objs"; then
3164	if test "$deplibs_check_method" != pass_all; then
3165	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3166	  exit $EXIT_FAILURE
3167	else
3168	  $echo
3169	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3170	  $echo "*** objects $objs is not portable!"
3171	  libobjs="$libobjs $objs"
3172	fi
3173      fi
3174
3175      if test "$dlself" != no; then
3176	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3177      fi
3178
3179      set dummy $rpath
3180      if test "$#" -gt 2; then
3181	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3182      fi
3183      install_libdir="$2"
3184
3185      oldlibs=
3186      if test -z "$rpath"; then
3187	if test "$build_libtool_libs" = yes; then
3188	  # Building a libtool convenience library.
3189	  # Some compilers have problems with a `.al' extension so
3190	  # convenience libraries should have the same extension an
3191	  # archive normally would.
3192	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3193	  build_libtool_libs=convenience
3194	  build_old_libs=yes
3195	fi
3196
3197	if test -n "$vinfo"; then
3198	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3199	fi
3200
3201	if test -n "$release"; then
3202	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3203	fi
3204      else
3205
3206	# Parse the version information argument.
3207	save_ifs="$IFS"; IFS=':'
3208	set dummy $vinfo 0 0 0
3209	IFS="$save_ifs"
3210
3211	if test -n "$8"; then
3212	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3213	  $echo "$help" 1>&2
3214	  exit $EXIT_FAILURE
3215	fi
3216
3217	# convert absolute version numbers to libtool ages
3218	# this retains compatibility with .la files and attempts
3219	# to make the code below a bit more comprehensible
3220
3221	case $vinfo_number in
3222	yes)
3223	  number_major="$2"
3224	  number_minor="$3"
3225	  number_revision="$4"
3226	  #
3227	  # There are really only two kinds -- those that
3228	  # use the current revision as the major version
3229	  # and those that subtract age and use age as
3230	  # a minor version.  But, then there is irix
3231	  # which has an extra 1 added just for fun
3232	  #
3233	  case $version_type in
3234	  darwin|linux|osf|windows|none)
3235	    current=`expr $number_major + $number_minor`
3236	    age="$number_minor"
3237	    revision="$number_revision"
3238	    ;;
3239	  freebsd-aout|freebsd-elf|sunos)
3240	    current="$number_major"
3241	    revision="$number_minor"
3242	    age="0"
3243	    ;;
3244	  irix|nonstopux)
3245	    current=`expr $number_major + $number_minor`
3246	    age="$number_minor"
3247	    revision="$number_minor"
3248	    lt_irix_increment=no
3249	    ;;
3250	  *)
3251	    $echo "$modename: unknown library version type \`$version_type'" 1>&2
3252	    $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3253	    exit $EXIT_FAILURE
3254	    ;;
3255	  esac
3256	  ;;
3257	no)
3258	  current="$2"
3259	  revision="$3"
3260	  age="$4"
3261	  ;;
3262	esac
3263
3264	# Check that each of the things are valid numbers.
3265	case $current in
3266	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]) ;;
3267	*)
3268	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3269	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3270	  exit $EXIT_FAILURE
3271	  ;;
3272	esac
3273
3274	case $revision in
3275	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]) ;;
3276	*)
3277	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3278	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3279	  exit $EXIT_FAILURE
3280	  ;;
3281	esac
3282
3283	case $age in
3284	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]) ;;
3285	*)
3286	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3287	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3288	  exit $EXIT_FAILURE
3289	  ;;
3290	esac
3291
3292	if test "$age" -gt "$current"; then
3293	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3294	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3295	  exit $EXIT_FAILURE
3296	fi
3297
3298	# Calculate the version variables.
3299	major=
3300	versuffix=
3301	verstring=
3302	case $version_type in
3303	none) ;;
3304
3305	darwin)
3306	  # Like Linux, but with the current version available in
3307	  # verstring for coding it into the library header
3308	  major=.`expr $current - $age`
3309	  versuffix="$major.$age.$revision"
3310	  # Darwin ld doesn't like 0 for these options...
3311	  minor_current=`expr $current + 1`
3312	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3313	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
3314	  ;;
3315
3316	freebsd-aout)
3317	  major=".$current"
3318	  versuffix=".$current.$revision";
3319	  ;;
3320
3321	freebsd-elf)
3322	  major=".$current"
3323	  versuffix=".$current";
3324	  ;;
3325
3326	irix | nonstopux)
3327	  if test "X$lt_irix_increment" = "Xno"; then
3328	    major=`expr $current - $age`
3329	  else
3330	    major=`expr $current - $age + 1`
3331	  fi
3332	  case $version_type in
3333	    nonstopux) verstring_prefix=nonstopux ;;
3334	    *)         verstring_prefix=sgi ;;
3335	  esac
3336	  verstring="$verstring_prefix$major.$revision"
3337
3338	  # Add in all the interfaces that we are compatible with.
3339	  loop=$revision
3340	  while test "$loop" -ne 0; do
3341	    iface=`expr $revision - $loop`
3342	    loop=`expr $loop - 1`
3343	    verstring="$verstring_prefix$major.$iface:$verstring"
3344	  done
3345
3346	  # Before this point, $major must not contain `.'.
3347	  major=.$major
3348	  versuffix="$major.$revision"
3349	  ;;
3350
3351	linux)
3352	  major=.`expr $current - $age`
3353	  versuffix="$major.$age.$revision"
3354	  ;;
3355
3356	osf)
3357	  major=.`expr $current - $age`
3358	  versuffix=".$current.$age.$revision"
3359	  verstring="$current.$age.$revision"
3360
3361	  # Add in all the interfaces that we are compatible with.
3362	  loop=$age
3363	  while test "$loop" -ne 0; do
3364	    iface=`expr $current - $loop`
3365	    loop=`expr $loop - 1`
3366	    verstring="$verstring:${iface}.0"
3367	  done
3368
3369	  # Make executables depend on our current version.
3370	  verstring="$verstring:${current}.0"
3371	  ;;
3372
3373	sunos)
3374	  major=".$current"
3375	  versuffix=".$current.$revision"
3376	  ;;
3377
3378	windows)
3379	  # Use '-' rather than '.', since we only want one
3380	  # extension on DOS 8.3 filesystems.
3381	  major=`expr $current - $age`
3382	  versuffix="-$major"
3383	  ;;
3384
3385	*)
3386	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3387	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3388	  exit $EXIT_FAILURE
3389	  ;;
3390	esac
3391
3392	# Clear the version info if we defaulted, and they specified a release.
3393	if test -z "$vinfo" && test -n "$release"; then
3394	  major=
3395	  case $version_type in
3396	  darwin)
3397	    # we can't check for "0.0" in archive_cmds due to quoting
3398	    # problems, so we reset it completely
3399	    verstring=
3400	    ;;
3401	  *)
3402	    verstring="0.0"
3403	    ;;
3404	  esac
3405	  if test "$need_version" = no; then
3406	    versuffix=
3407	  else
3408	    versuffix=".0.0"
3409	  fi
3410	fi
3411
3412	# Remove version info from name if versioning should be avoided
3413	if test "$avoid_version" = yes && test "$need_version" = no; then
3414	  major=
3415	  versuffix=
3416	  verstring=""
3417	fi
3418
3419	# Check to see if the archive will have undefined symbols.
3420	if test "$allow_undefined" = yes; then
3421	  if test "$allow_undefined_flag" = unsupported; then
3422	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3423	    build_libtool_libs=no
3424	    build_old_libs=yes
3425	  fi
3426	else
3427	  # Don't allow undefined symbols.
3428	  allow_undefined_flag="$no_undefined_flag"
3429	fi
3430      fi
3431
3432      if test "$mode" != relink; then
3433	# Remove our outputs, but don't remove object files since they
3434	# may have been created when compiling PIC objects.
3435	removelist=
3436	tempremovelist=`$echo "$output_objdir/*"`
3437	for p in $tempremovelist; do
3438	  case $p in
3439	    *.$objext)
3440	       ;;
3441	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3442	       if test "X$precious_files_regex" != "X"; then
3443	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3444	         then
3445		   continue
3446		 fi
3447	       fi
3448	       removelist="$removelist $p"
3449	       ;;
3450	    *) ;;
3451	  esac
3452	done
3453	if test -n "$removelist"; then
3454	  $show "${rm}r $removelist"
3455	  $run ${rm}r $removelist
3456	fi
3457      fi
3458
3459      # Now set the variables for building old libraries.
3460      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3461	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3462
3463	# Transform .lo files to .o files.
3464	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3465      fi
3466
3467      # Eliminate all temporary directories.
3468      #for path in $notinst_path; do
3469      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3470      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3471      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3472      #done
3473
3474      if test -n "$xrpath"; then
3475	# If the user specified any rpath flags, then add them.
3476	temp_xrpath=
3477	for libdir in $xrpath; do
3478	  temp_xrpath="$temp_xrpath -R$libdir"
3479	  case "$finalize_rpath " in
3480	  *" $libdir "*) ;;
3481	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3482	  esac
3483	done
3484	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3485	  dependency_libs="$temp_xrpath $dependency_libs"
3486	fi
3487      fi
3488
3489      # Make sure dlfiles contains only unique files that won't be dlpreopened
3490      old_dlfiles="$dlfiles"
3491      dlfiles=
3492      for lib in $old_dlfiles; do
3493	case " $dlprefiles $dlfiles " in
3494	*" $lib "*) ;;
3495	*) dlfiles="$dlfiles $lib" ;;
3496	esac
3497      done
3498
3499      # Make sure dlprefiles contains only unique files
3500      old_dlprefiles="$dlprefiles"
3501      dlprefiles=
3502      for lib in $old_dlprefiles; do
3503	case "$dlprefiles " in
3504	*" $lib "*) ;;
3505	*) dlprefiles="$dlprefiles $lib" ;;
3506	esac
3507      done
3508
3509      if test "$build_libtool_libs" = yes; then
3510	if test -n "$rpath"; then
3511	  case $host in
3512	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3513	    # these systems don't actually have a c library (as such)!
3514	    ;;
3515	  *-*-rhapsody* | *-*-darwin1.[012])
3516	    # Rhapsody C library is in the System framework
3517	    deplibs="$deplibs -framework System"
3518	    ;;
3519	  *-*-netbsd*)
3520	    # Don't link with libc until the a.out ld.so is fixed.
3521	    ;;
3522	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3523	    # Do not include libc due to us having libc/libc_r.
3524	    ;;
3525	  *-*-sco3.2v5* | *-*-sco5v6*)
3526	    # Causes problems with __ctype
3527	    ;;
3528	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3529	    # Compiler inserts libc in the correct place for threads to work
3530	    ;;
3531 	  *)
3532	    # Add libc to deplibs on all other systems if necessary.
3533	    if test "$build_libtool_need_lc" = "yes"; then
3534	      deplibs="$deplibs -lc"
3535	    fi
3536	    ;;
3537	  esac
3538	fi
3539
3540	# Transform deplibs into only deplibs that can be linked in shared.
3541	name_save=$name
3542	libname_save=$libname
3543	release_save=$release
3544	versuffix_save=$versuffix
3545	major_save=$major
3546	# I'm not sure if I'm treating the release correctly.  I think
3547	# release should show up in the -l (ie -lgmp5) so we don't want to
3548	# add it in twice.  Is that correct?
3549	release=""
3550	versuffix=""
3551	major=""
3552	newdeplibs=
3553	droppeddeps=no
3554	case $deplibs_check_method in
3555	pass_all)
3556	  # Don't check for shared/static.  Everything works.
3557	  # This might be a little naive.  We might want to check
3558	  # whether the library exists or not.  But this is on
3559	  # osf3 & osf4 and I'm not really sure... Just
3560	  # implementing what was already the behavior.
3561	  newdeplibs=$deplibs
3562	  ;;
3563	test_compile)
3564	  # This code stresses the "libraries are programs" paradigm to its
3565	  # limits. Maybe even breaks it.  We compile a program, linking it
3566	  # against the deplibs as a proxy for the library.  Then we can check
3567	  # whether they linked in statically or dynamically with ldd.
3568	  $rm conftest.c
3569	  cat > conftest.c <<EOF
3570	  int main() { return 0; }
3571EOF
3572	  $rm conftest
3573	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
3574	    ldd_output=`ldd conftest`
3575	    for i in $deplibs; do
3576	      name=`expr $i : '-l\(.*\)'`
3577	      # If $name is empty we are operating on a -L argument.
3578              if test "$name" != "" && test "$name" != "0"; then
3579		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3580		  case " $predeps $postdeps " in
3581		  *" $i "*)
3582		    newdeplibs="$newdeplibs $i"
3583		    i=""
3584		    ;;
3585		  esac
3586	        fi
3587		if test -n "$i" ; then
3588		  libname=`eval \\$echo \"$libname_spec\"`
3589		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3590		  set dummy $deplib_matches
3591		  deplib_match=$2
3592		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3593		    newdeplibs="$newdeplibs $i"
3594		  else
3595		    droppeddeps=yes
3596		    $echo
3597		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3598		    $echo "*** I have the capability to make that library automatically link in when"
3599		    $echo "*** you link to this library.  But I can only do this if you have a"
3600		    $echo "*** shared version of the library, which I believe you do not have"
3601		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3602		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3603		  fi
3604		fi
3605	      else
3606		newdeplibs="$newdeplibs $i"
3607	      fi
3608	    done
3609	  else
3610	    # Error occurred in the first compile.  Let's try to salvage
3611	    # the situation: Compile a separate program for each library.
3612	    for i in $deplibs; do
3613	      name=`expr $i : '-l\(.*\)'`
3614	      # If $name is empty we are operating on a -L argument.
3615              if test "$name" != "" && test "$name" != "0"; then
3616		$rm conftest
3617		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
3618		  ldd_output=`ldd conftest`
3619		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3620		    case " $predeps $postdeps " in
3621		    *" $i "*)
3622		      newdeplibs="$newdeplibs $i"
3623		      i=""
3624		      ;;
3625		    esac
3626		  fi
3627		  if test -n "$i" ; then
3628		    libname=`eval \\$echo \"$libname_spec\"`
3629		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3630		    set dummy $deplib_matches
3631		    deplib_match=$2
3632		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3633		      newdeplibs="$newdeplibs $i"
3634		    else
3635		      droppeddeps=yes
3636		      $echo
3637		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3638		      $echo "*** I have the capability to make that library automatically link in when"
3639		      $echo "*** you link to this library.  But I can only do this if you have a"
3640		      $echo "*** shared version of the library, which you do not appear to have"
3641		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3642		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3643		    fi
3644		  fi
3645		else
3646		  droppeddeps=yes
3647		  $echo
3648		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3649		  $echo "*** make it link in!  You will probably need to install it or some"
3650		  $echo "*** library that it depends on before this library will be fully"
3651		  $echo "*** functional.  Installing it before continuing would be even better."
3652		fi
3653	      else
3654		newdeplibs="$newdeplibs $i"
3655	      fi
3656	    done
3657	  fi
3658	  ;;
3659	file_magic*)
3660	  set dummy $deplibs_check_method
3661	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3662	  for a_deplib in $deplibs; do
3663	    name=`expr $a_deplib : '-l\(.*\)'`
3664	    # If $name is empty we are operating on a -L argument.
3665            if test "$name" != "" && test  "$name" != "0"; then
3666	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3667		case " $predeps $postdeps " in
3668		*" $a_deplib "*)
3669		  newdeplibs="$newdeplibs $a_deplib"
3670		  a_deplib=""
3671		  ;;
3672		esac
3673	      fi
3674	      if test -n "$a_deplib" ; then
3675		libname=`eval \\$echo \"$libname_spec\"`
3676		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3677		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3678		  for potent_lib in $potential_libs; do
3679		      # Follow soft links.
3680		      if ls -lLd "$potent_lib" 2>/dev/null \
3681			 | grep " -> " >/dev/null; then
3682			continue
3683		      fi
3684		      # The statement above tries to avoid entering an
3685		      # endless loop below, in case of cyclic links.
3686		      # We might still enter an endless loop, since a link
3687		      # loop can be closed while we follow links,
3688		      # but so what?
3689		      potlib="$potent_lib"
3690		      while test -h "$potlib" 2>/dev/null; do
3691			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3692			case $potliblink in
3693			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3694			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3695			esac
3696		      done
3697		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3698			 | ${SED} 10q \
3699			 | $EGREP "$file_magic_regex" > /dev/null; then
3700			newdeplibs="$newdeplibs $a_deplib"
3701			a_deplib=""
3702			break 2
3703		      fi
3704		  done
3705		done
3706	      fi
3707	      if test -n "$a_deplib" ; then
3708		droppeddeps=yes
3709		$echo
3710		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3711		$echo "*** I have the capability to make that library automatically link in when"
3712		$echo "*** you link to this library.  But I can only do this if you have a"
3713		$echo "*** shared version of the library, which you do not appear to have"
3714		$echo "*** because I did check the linker path looking for a file starting"
3715		if test -z "$potlib" ; then
3716		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3717		else
3718		  $echo "*** with $libname and none of the candidates passed a file format test"
3719		  $echo "*** using a file magic. Last file checked: $potlib"
3720		fi
3721	      fi
3722	    else
3723	      # Add a -L argument.
3724	      newdeplibs="$newdeplibs $a_deplib"
3725	    fi
3726	  done # Gone through all deplibs.
3727	  ;;
3728	match_pattern*)
3729	  set dummy $deplibs_check_method
3730	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3731	  for a_deplib in $deplibs; do
3732	    name=`expr $a_deplib : '-l\(.*\)'`
3733	    # If $name is empty we are operating on a -L argument.
3734	    if test -n "$name" && test "$name" != "0"; then
3735	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3736		case " $predeps $postdeps " in
3737		*" $a_deplib "*)
3738		  newdeplibs="$newdeplibs $a_deplib"
3739		  a_deplib=""
3740		  ;;
3741		esac
3742	      fi
3743	      if test -n "$a_deplib" ; then
3744		libname=`eval \\$echo \"$libname_spec\"`
3745		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3746		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3747		  for potent_lib in $potential_libs; do
3748		    potlib="$potent_lib" # see symlink-check above in file_magic test
3749		    if eval $echo \"$potent_lib\" 2>/dev/null \
3750		        | ${SED} 10q \
3751		        | $EGREP "$match_pattern_regex" > /dev/null; then
3752		      newdeplibs="$newdeplibs $a_deplib"
3753		      a_deplib=""
3754		      break 2
3755		    fi
3756		  done
3757		done
3758	      fi
3759	      if test -n "$a_deplib" ; then
3760		droppeddeps=yes
3761		$echo
3762		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3763		$echo "*** I have the capability to make that library automatically link in when"
3764		$echo "*** you link to this library.  But I can only do this if you have a"
3765		$echo "*** shared version of the library, which you do not appear to have"
3766		$echo "*** because I did check the linker path looking for a file starting"
3767		if test -z "$potlib" ; then
3768		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3769		else
3770		  $echo "*** with $libname and none of the candidates passed a file format test"
3771		  $echo "*** using a regex pattern. Last file checked: $potlib"
3772		fi
3773	      fi
3774	    else
3775	      # Add a -L argument.
3776	      newdeplibs="$newdeplibs $a_deplib"
3777	    fi
3778	  done # Gone through all deplibs.
3779	  ;;
3780	none | unknown | *)
3781	  newdeplibs=""
3782	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3783	    -e 's/ -[LR][^ ]*//g'`
3784	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3785	    for i in $predeps $postdeps ; do
3786	      # can't use Xsed below, because $i might contain '/'
3787	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3788	    done
3789	  fi
3790	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3791	    | grep . >/dev/null; then
3792	    $echo
3793	    if test "X$deplibs_check_method" = "Xnone"; then
3794	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3795	    else
3796	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3797	    fi
3798	    $echo "*** All declared inter-library dependencies are being dropped."
3799	    droppeddeps=yes
3800	  fi
3801	  ;;
3802	esac
3803	versuffix=$versuffix_save
3804	major=$major_save
3805	release=$release_save
3806	libname=$libname_save
3807	name=$name_save
3808
3809	case $host in
3810	*-*-rhapsody* | *-*-darwin1.[012])
3811	  # On Rhapsody replace the C library is the System framework
3812	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3813	  ;;
3814	esac
3815
3816	if test "$droppeddeps" = yes; then
3817	  if test "$module" = yes; then
3818	    $echo
3819	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3820	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3821	    $echo "*** a static module, that should work as long as the dlopening"
3822	    $echo "*** application is linked with the -dlopen flag."
3823	    if test -z "$global_symbol_pipe"; then
3824	      $echo
3825	      $echo "*** However, this would only work if libtool was able to extract symbol"
3826	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3827	      $echo "*** not find such a program.  So, this module is probably useless."
3828	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3829	    fi
3830	    if test "$build_old_libs" = no; then
3831	      oldlibs="$output_objdir/$libname.$libext"
3832	      build_libtool_libs=module
3833	      build_old_libs=yes
3834	    else
3835	      build_libtool_libs=no
3836	    fi
3837	  else
3838	    $echo "*** The inter-library dependencies that have been dropped here will be"
3839	    $echo "*** automatically added whenever a program is linked with this library"
3840	    $echo "*** or is declared to -dlopen it."
3841
3842	    if test "$allow_undefined" = no; then
3843	      $echo
3844	      $echo "*** Since this library must not contain undefined symbols,"
3845	      $echo "*** because either the platform does not support them or"
3846	      $echo "*** it was explicitly requested with -no-undefined,"
3847	      $echo "*** libtool will only create a static version of it."
3848	      if test "$build_old_libs" = no; then
3849		oldlibs="$output_objdir/$libname.$libext"
3850		build_libtool_libs=module
3851		build_old_libs=yes
3852	      else
3853		build_libtool_libs=no
3854	      fi
3855	    fi
3856	  fi
3857	fi
3858	# Done checking deplibs!
3859	deplibs=$newdeplibs
3860      fi
3861
3862
3863      # move library search paths that coincide with paths to not yet
3864      # installed libraries to the beginning of the library search list
3865      new_libs=
3866      for path in $notinst_path; do
3867	case " $new_libs " in
3868	*" -L$path/$objdir "*) ;;
3869	*)
3870	  case " $deplibs " in
3871	  *" -L$path/$objdir "*)
3872	    new_libs="$new_libs -L$path/$objdir" ;;
3873	  esac
3874	  ;;
3875	esac
3876      done
3877      for deplib in $deplibs; do
3878	case $deplib in
3879	-L*)
3880	  case " $new_libs " in
3881	  *" $deplib "*) ;;
3882	  *) new_libs="$new_libs $deplib" ;;
3883	  esac
3884	  ;;
3885	*) new_libs="$new_libs $deplib" ;;
3886	esac
3887      done
3888      deplibs="$new_libs"
3889
3890
3891      # All the library-specific variables (install_libdir is set above).
3892      library_names=
3893      old_library=
3894      dlname=
3895
3896      # Test again, we may have decided not to build it any more
3897      if test "$build_libtool_libs" = yes; then
3898	if test "$hardcode_into_libs" = yes; then
3899	  # Hardcode the library paths
3900	  hardcode_libdirs=
3901	  dep_rpath=
3902	  rpath="$finalize_rpath"
3903	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3904	  for libdir in $rpath; do
3905	    if test -n "$hardcode_libdir_flag_spec"; then
3906	      if test -n "$hardcode_libdir_separator"; then
3907		if test -z "$hardcode_libdirs"; then
3908		  hardcode_libdirs="$libdir"
3909		else
3910		  # Just accumulate the unique libdirs.
3911		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3912		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3913		    ;;
3914		  *)
3915		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3916		    ;;
3917		  esac
3918		fi
3919	      else
3920		eval flag=\"$hardcode_libdir_flag_spec\"
3921		dep_rpath="$dep_rpath $flag"
3922	      fi
3923	    elif test -n "$runpath_var"; then
3924	      case "$perm_rpath " in
3925	      *" $libdir "*) ;;
3926	      *) perm_rpath="$perm_rpath $libdir" ;;
3927	      esac
3928	    fi
3929	  done
3930	  # Substitute the hardcoded libdirs into the rpath.
3931	  if test -n "$hardcode_libdir_separator" &&
3932	     test -n "$hardcode_libdirs"; then
3933	    libdir="$hardcode_libdirs"
3934	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3935	      case $archive_cmds in
3936	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
3937	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
3938	      esac
3939	    else
3940	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3941	    fi
3942	  fi
3943	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3944	    # We should set the runpath_var.
3945	    rpath=
3946	    for dir in $perm_rpath; do
3947	      rpath="$rpath$dir:"
3948	    done
3949	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3950	  fi
3951	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3952	fi
3953
3954	shlibpath="$finalize_shlibpath"
3955	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3956	if test -n "$shlibpath"; then
3957	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3958	fi
3959
3960	# Get the real and link names of the library.
3961	eval shared_ext=\"$shrext_cmds\"
3962	eval library_names=\"$library_names_spec\"
3963	set dummy $library_names
3964	realname="$2"
3965	shift; shift
3966
3967	if test -n "$soname_spec"; then
3968	  eval soname=\"$soname_spec\"
3969	else
3970	  soname="$realname"
3971	fi
3972	if test -z "$dlname"; then
3973	  dlname=$soname
3974	fi
3975
3976	lib="$output_objdir/$realname"
3977	linknames=
3978	for link
3979	do
3980	  linknames="$linknames $link"
3981	done
3982
3983	# Use standard objects if they are pic
3984	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3985
3986	# Prepare the list of exported symbols
3987	if test -z "$export_symbols"; then
3988	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3989	    $show "generating symbol list for \`$libname.la'"
3990	    export_symbols="$output_objdir/$libname.exp"
3991	    $run $rm $export_symbols
3992	    cmds=$export_symbols_cmds
3993	    save_ifs="$IFS"; IFS='~'
3994	    for cmd in $cmds; do
3995	      IFS="$save_ifs"
3996	      eval cmd=\"$cmd\"
3997	      if len=`expr "X$cmd" : ".*"` &&
3998	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3999	        $show "$cmd"
4000	        $run eval "$cmd" || exit $?
4001	        skipped_export=false
4002	      else
4003	        # The command line is too long to execute in one step.
4004	        $show "using reloadable object file for export list..."
4005	        skipped_export=:
4006		# Break out early, otherwise skipped_export may be
4007		# set to false by a later but shorter cmd.
4008		break
4009	      fi
4010	    done
4011	    IFS="$save_ifs"
4012	    if test -n "$export_symbols_regex"; then
4013	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
4014	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
4015	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
4016	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
4017	    fi
4018	  fi
4019	fi
4020
4021	if test -n "$export_symbols" && test -n "$include_expsyms"; then
4022	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
4023	fi
4024
4025	tmp_deplibs=
4026	for test_deplib in $deplibs; do
4027		case " $convenience " in
4028		*" $test_deplib "*) ;;
4029		*)
4030			tmp_deplibs="$tmp_deplibs $test_deplib"
4031			;;
4032		esac
4033	done
4034	deplibs="$tmp_deplibs"
4035
4036	if test -n "$convenience"; then
4037	  if test -n "$whole_archive_flag_spec"; then
4038	    save_libobjs=$libobjs
4039	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4040	  else
4041	    gentop="$output_objdir/${outputname}x"
4042	    generated="$generated $gentop"
4043
4044	    func_extract_archives $gentop $convenience
4045	    libobjs="$libobjs $func_extract_archives_result"
4046	  fi
4047	fi
4048
4049	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4050	  eval flag=\"$thread_safe_flag_spec\"
4051	  linker_flags="$linker_flags $flag"
4052	fi
4053
4054	# Make a backup of the uninstalled library when relinking
4055	if test "$mode" = relink; then
4056	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4057	fi
4058
4059	# Do each of the archive commands.
4060	if test "$module" = yes && test -n "$module_cmds" ; then
4061	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4062	    eval test_cmds=\"$module_expsym_cmds\"
4063	    cmds=$module_expsym_cmds
4064	  else
4065	    eval test_cmds=\"$module_cmds\"
4066	    cmds=$module_cmds
4067	  fi
4068	else
4069	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4070	  eval test_cmds=\"$archive_expsym_cmds\"
4071	  cmds=$archive_expsym_cmds
4072	else
4073	  eval test_cmds=\"$archive_cmds\"
4074	  cmds=$archive_cmds
4075	  fi
4076	fi
4077
4078	if test "X$skipped_export" != "X:" &&
4079	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4080	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4081	  :
4082	else
4083	  # The command line is too long to link in one step, link piecewise.
4084	  $echo "creating reloadable object files..."
4085
4086	  # Save the value of $output and $libobjs because we want to
4087	  # use them later.  If we have whole_archive_flag_spec, we
4088	  # want to use save_libobjs as it was before
4089	  # whole_archive_flag_spec was expanded, because we can't
4090	  # assume the linker understands whole_archive_flag_spec.
4091	  # This may have to be revisited, in case too many
4092	  # convenience libraries get linked in and end up exceeding
4093	  # the spec.
4094	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4095	    save_libobjs=$libobjs
4096	  fi
4097	  save_output=$output
4098	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4099
4100	  # Clear the reloadable object creation command queue and
4101	  # initialize k to one.
4102	  test_cmds=
4103	  concat_cmds=
4104	  objlist=
4105	  delfiles=
4106	  last_robj=
4107	  k=1
4108	  output=$output_objdir/$output_la-${k}.$objext
4109	  # Loop over the list of objects to be linked.
4110	  for obj in $save_libobjs
4111	  do
4112	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4113	    if test "X$objlist" = X ||
4114	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4115		 test "$len" -le "$max_cmd_len"; }; then
4116	      objlist="$objlist $obj"
4117	    else
4118	      # The command $test_cmds is almost too long, add a
4119	      # command to the queue.
4120	      if test "$k" -eq 1 ; then
4121		# The first file doesn't have a previous command to add.
4122		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4123	      else
4124		# All subsequent reloadable object files will link in
4125		# the last one created.
4126		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4127	      fi
4128	      last_robj=$output_objdir/$output_la-${k}.$objext
4129	      k=`expr $k + 1`
4130	      output=$output_objdir/$output_la-${k}.$objext
4131	      objlist=$obj
4132	      len=1
4133	    fi
4134	  done
4135	  # Handle the remaining objects by creating one last
4136	  # reloadable object file.  All subsequent reloadable object
4137	  # files will link in the last one created.
4138	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4139	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4140
4141	  if ${skipped_export-false}; then
4142	    $show "generating symbol list for \`$libname.la'"
4143	    export_symbols="$output_objdir/$libname.exp"
4144	    $run $rm $export_symbols
4145	    libobjs=$output
4146	    # Append the command to create the export file.
4147	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4148          fi
4149
4150	  # Set up a command to remove the reloadable object files
4151	  # after they are used.
4152	  i=0
4153	  while test "$i" -lt "$k"
4154	  do
4155	    i=`expr $i + 1`
4156	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4157	  done
4158
4159	  $echo "creating a temporary reloadable object file: $output"
4160
4161	  # Loop through the commands generated above and execute them.
4162	  save_ifs="$IFS"; IFS='~'
4163	  for cmd in $concat_cmds; do
4164	    IFS="$save_ifs"
4165	    $show "$cmd"
4166	    $run eval "$cmd" || exit $?
4167	  done
4168	  IFS="$save_ifs"
4169
4170	  libobjs=$output
4171	  # Restore the value of output.
4172	  output=$save_output
4173
4174	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4175	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4176	  fi
4177	  # Expand the library linking commands again to reset the
4178	  # value of $libobjs for piecewise linking.
4179
4180	  # Do each of the archive commands.
4181	  if test "$module" = yes && test -n "$module_cmds" ; then
4182	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4183	      cmds=$module_expsym_cmds
4184	    else
4185	      cmds=$module_cmds
4186	    fi
4187	  else
4188	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4189	    cmds=$archive_expsym_cmds
4190	  else
4191	    cmds=$archive_cmds
4192	    fi
4193	  fi
4194
4195	  # Append the command to remove the reloadable object files
4196	  # to the just-reset $cmds.
4197	  eval cmds=\"\$cmds~\$rm $delfiles\"
4198	fi
4199	save_ifs="$IFS"; IFS='~'
4200	for cmd in $cmds; do
4201	  IFS="$save_ifs"
4202	  eval cmd=\"$cmd\"
4203	  $show "$cmd"
4204	  $run eval "$cmd" || {
4205	    lt_exit=$?
4206
4207	    # Restore the uninstalled library and exit
4208	    if test "$mode" = relink; then
4209	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4210	    fi
4211
4212	    exit $lt_exit
4213	  }
4214	done
4215	IFS="$save_ifs"
4216
4217	# Restore the uninstalled library and exit
4218	if test "$mode" = relink; then
4219	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4220
4221	  if test -n "$convenience"; then
4222	    if test -z "$whole_archive_flag_spec"; then
4223	      $show "${rm}r $gentop"
4224	      $run ${rm}r "$gentop"
4225	    fi
4226	  fi
4227
4228	  exit $EXIT_SUCCESS
4229	fi
4230
4231	# Create links to the real library.
4232	for linkname in $linknames; do
4233	  if test "$realname" != "$linkname"; then
4234	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4235	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4236	  fi
4237	done
4238
4239	# If -module or -export-dynamic was specified, set the dlname.
4240	if test "$module" = yes || test "$export_dynamic" = yes; then
4241	  # On all known operating systems, these are identical.
4242	  dlname="$soname"
4243	fi
4244      fi
4245      ;;
4246
4247    obj)
4248      if test -n "$deplibs"; then
4249	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4250      fi
4251
4252      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4253	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4254      fi
4255
4256      if test -n "$rpath"; then
4257	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4258      fi
4259
4260      if test -n "$xrpath"; then
4261	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4262      fi
4263
4264      if test -n "$vinfo"; then
4265	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4266      fi
4267
4268      if test -n "$release"; then
4269	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4270      fi
4271
4272      case $output in
4273      *.lo)
4274	if test -n "$objs$old_deplibs"; then
4275	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4276	  exit $EXIT_FAILURE
4277	fi
4278	libobj="$output"
4279	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4280	;;
4281      *)
4282	libobj=
4283	obj="$output"
4284	;;
4285      esac
4286
4287      # Delete the old objects.
4288      $run $rm $obj $libobj
4289
4290      # Objects from convenience libraries.  This assumes
4291      # single-version convenience libraries.  Whenever we create
4292      # different ones for PIC/non-PIC, this we'll have to duplicate
4293      # the extraction.
4294      reload_conv_objs=
4295      gentop=
4296      # reload_cmds runs $LD directly, so let us get rid of
4297      # -Wl from whole_archive_flag_spec and hope we can get by with
4298      # turning comma into space..
4299      wl=
4300
4301      if test -n "$convenience"; then
4302	if test -n "$whole_archive_flag_spec"; then
4303	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
4304	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
4305	else
4306	  gentop="$output_objdir/${obj}x"
4307	  generated="$generated $gentop"
4308
4309	  func_extract_archives $gentop $convenience
4310	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4311	fi
4312      fi
4313
4314      # Create the old-style object.
4315      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
4316
4317      output="$obj"
4318      cmds=$reload_cmds
4319      save_ifs="$IFS"; IFS='~'
4320      for cmd in $cmds; do
4321	IFS="$save_ifs"
4322	eval cmd=\"$cmd\"
4323	$show "$cmd"
4324	$run eval "$cmd" || exit $?
4325      done
4326      IFS="$save_ifs"
4327
4328      # Exit if we aren't doing a library object file.
4329      if test -z "$libobj"; then
4330	if test -n "$gentop"; then
4331	  $show "${rm}r $gentop"
4332	  $run ${rm}r $gentop
4333	fi
4334
4335	exit $EXIT_SUCCESS
4336      fi
4337
4338      if test "$build_libtool_libs" != yes; then
4339	if test -n "$gentop"; then
4340	  $show "${rm}r $gentop"
4341	  $run ${rm}r $gentop
4342	fi
4343
4344	# Create an invalid libtool object if no PIC, so that we don't
4345	# accidentally link it into a program.
4346	# $show "echo timestamp > $libobj"
4347	# $run eval "echo timestamp > $libobj" || exit $?
4348	exit $EXIT_SUCCESS
4349      fi
4350
4351      if test -n "$pic_flag" || test "$pic_mode" != default; then
4352	# Only do commands if we really have different PIC objects.
4353	reload_objs="$libobjs $reload_conv_objs"
4354	output="$libobj"
4355	cmds=$reload_cmds
4356	save_ifs="$IFS"; IFS='~'
4357	for cmd in $cmds; do
4358	  IFS="$save_ifs"
4359	  eval cmd=\"$cmd\"
4360	  $show "$cmd"
4361	  $run eval "$cmd" || exit $?
4362	done
4363	IFS="$save_ifs"
4364      fi
4365
4366      if test -n "$gentop"; then
4367	$show "${rm}r $gentop"
4368	$run ${rm}r $gentop
4369      fi
4370
4371      exit $EXIT_SUCCESS
4372      ;;
4373
4374    prog)
4375      case $host in
4376	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4377      esac
4378      if test -n "$vinfo"; then
4379	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4380      fi
4381
4382      if test -n "$release"; then
4383	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4384      fi
4385
4386      if test "$preload" = yes; then
4387	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4388	   test "$dlopen_self_static" = unknown; then
4389	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4390	fi
4391      fi
4392
4393      case $host in
4394      *-*-rhapsody* | *-*-darwin1.[012])
4395	# On Rhapsody replace the C library is the System framework
4396	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4397	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4398	;;
4399      esac
4400
4401      case $host in
4402      *darwin*)
4403        # Don't allow lazy linking, it breaks C++ global constructors
4404        if test "$tagname" = CXX ; then
4405        compile_command="$compile_command ${wl}-bind_at_load"
4406        finalize_command="$finalize_command ${wl}-bind_at_load"
4407        fi
4408        ;;
4409      esac
4410
4411
4412      # move library search paths that coincide with paths to not yet
4413      # installed libraries to the beginning of the library search list
4414      new_libs=
4415      for path in $notinst_path; do
4416	case " $new_libs " in
4417	*" -L$path/$objdir "*) ;;
4418	*)
4419	  case " $compile_deplibs " in
4420	  *" -L$path/$objdir "*)
4421	    new_libs="$new_libs -L$path/$objdir" ;;
4422	  esac
4423	  ;;
4424	esac
4425      done
4426      for deplib in $compile_deplibs; do
4427	case $deplib in
4428	-L*)
4429	  case " $new_libs " in
4430	  *" $deplib "*) ;;
4431	  *) new_libs="$new_libs $deplib" ;;
4432	  esac
4433	  ;;
4434	*) new_libs="$new_libs $deplib" ;;
4435	esac
4436      done
4437      compile_deplibs="$new_libs"
4438
4439
4440      compile_command="$compile_command $compile_deplibs"
4441      finalize_command="$finalize_command $finalize_deplibs"
4442
4443      if test -n "$rpath$xrpath"; then
4444	# If the user specified any rpath flags, then add them.
4445	for libdir in $rpath $xrpath; do
4446	  # This is the magic to use -rpath.
4447	  case "$finalize_rpath " in
4448	  *" $libdir "*) ;;
4449	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4450	  esac
4451	done
4452      fi
4453
4454      # Now hardcode the library paths
4455      rpath=
4456      hardcode_libdirs=
4457      for libdir in $compile_rpath $finalize_rpath; do
4458	if test -n "$hardcode_libdir_flag_spec"; then
4459	  if test -n "$hardcode_libdir_separator"; then
4460	    if test -z "$hardcode_libdirs"; then
4461	      hardcode_libdirs="$libdir"
4462	    else
4463	      # Just accumulate the unique libdirs.
4464	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4465	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4466		;;
4467	      *)
4468		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4469		;;
4470	      esac
4471	    fi
4472	  else
4473	    eval flag=\"$hardcode_libdir_flag_spec\"
4474	    rpath="$rpath $flag"
4475	  fi
4476	elif test -n "$runpath_var"; then
4477	  case "$perm_rpath " in
4478	  *" $libdir "*) ;;
4479	  *) perm_rpath="$perm_rpath $libdir" ;;
4480	  esac
4481	fi
4482	case $host in
4483	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4484	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4485	  case :$dllsearchpath: in
4486	  *":$libdir:"*) ;;
4487	  *) dllsearchpath="$dllsearchpath:$libdir";;
4488	  esac
4489	  case :$dllsearchpath: in
4490	  *":$testbindir:"*) ;;
4491	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4492	  esac
4493	  ;;
4494	esac
4495      done
4496      # Substitute the hardcoded libdirs into the rpath.
4497      if test -n "$hardcode_libdir_separator" &&
4498	 test -n "$hardcode_libdirs"; then
4499	libdir="$hardcode_libdirs"
4500	eval rpath=\" $hardcode_libdir_flag_spec\"
4501      fi
4502      compile_rpath="$rpath"
4503
4504      rpath=
4505      hardcode_libdirs=
4506      for libdir in $finalize_rpath; do
4507	if test -n "$hardcode_libdir_flag_spec"; then
4508	  if test -n "$hardcode_libdir_separator"; then
4509	    if test -z "$hardcode_libdirs"; then
4510	      hardcode_libdirs="$libdir"
4511	    else
4512	      # Just accumulate the unique libdirs.
4513	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4514	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4515		;;
4516	      *)
4517		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4518		;;
4519	      esac
4520	    fi
4521	  else
4522	    eval flag=\"$hardcode_libdir_flag_spec\"
4523	    rpath="$rpath $flag"
4524	  fi
4525	elif test -n "$runpath_var"; then
4526	  case "$finalize_perm_rpath " in
4527	  *" $libdir "*) ;;
4528	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4529	  esac
4530	fi
4531      done
4532      # Substitute the hardcoded libdirs into the rpath.
4533      if test -n "$hardcode_libdir_separator" &&
4534	 test -n "$hardcode_libdirs"; then
4535	libdir="$hardcode_libdirs"
4536	eval rpath=\" $hardcode_libdir_flag_spec\"
4537      fi
4538      finalize_rpath="$rpath"
4539
4540      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4541	# Transform all the library objects into standard objects.
4542	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4543	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4544      fi
4545
4546      dlsyms=
4547      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4548	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4549	  dlsyms="${outputname}S.c"
4550	else
4551	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4552	fi
4553      fi
4554
4555      if test -n "$dlsyms"; then
4556	case $dlsyms in
4557	"") ;;
4558	*.c)
4559	  # Discover the nlist of each of the dlfiles.
4560	  nlist="$output_objdir/${outputname}.nm"
4561
4562	  $show "$rm $nlist ${nlist}S ${nlist}T"
4563	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4564
4565	  # Parse the name list into a source file.
4566	  $show "creating $output_objdir/$dlsyms"
4567
4568	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4569/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4570/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4571
4572#ifdef __cplusplus
4573extern \"C\" {
4574#endif
4575
4576/* Prevent the only kind of declaration conflicts we can make. */
4577#define lt_preloaded_symbols some_other_symbol
4578
4579/* External symbol declarations for the compiler. */\
4580"
4581
4582	  if test "$dlself" = yes; then
4583	    $show "generating symbol list for \`$output'"
4584
4585	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4586
4587	    # Add our own program objects to the symbol list.
4588	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4589	    for arg in $progfiles; do
4590	      $show "extracting global C symbols from \`$arg'"
4591	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4592	    done
4593
4594	    if test -n "$exclude_expsyms"; then
4595	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4596	      $run eval '$mv "$nlist"T "$nlist"'
4597	    fi
4598
4599	    if test -n "$export_symbols_regex"; then
4600	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4601	      $run eval '$mv "$nlist"T "$nlist"'
4602	    fi
4603
4604	    # Prepare the list of exported symbols
4605	    if test -z "$export_symbols"; then
4606	      export_symbols="$output_objdir/$outputname.exp"
4607	      $run $rm $export_symbols
4608	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4609              case $host in
4610              *cygwin* | *mingw* )
4611	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4612		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4613                ;;
4614              esac
4615	    else
4616	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4617	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4618	      $run eval 'mv "$nlist"T "$nlist"'
4619              case $host in
4620              *cygwin* | *mingw* )
4621	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4622		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4623                ;;
4624              esac
4625	    fi
4626	  fi
4627
4628	  for arg in $dlprefiles; do
4629	    $show "extracting global C symbols from \`$arg'"
4630	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4631	    $run eval '$echo ": $name " >> "$nlist"'
4632	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4633	  done
4634
4635	  if test -z "$run"; then
4636	    # Make sure we have at least an empty file.
4637	    test -f "$nlist" || : > "$nlist"
4638
4639	    if test -n "$exclude_expsyms"; then
4640	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4641	      $mv "$nlist"T "$nlist"
4642	    fi
4643
4644	    # Try sorting and uniquifying the output.
4645	    if grep -v "^: " < "$nlist" |
4646		if sort -k 3 </dev/null >/dev/null 2>&1; then
4647		  sort -k 3
4648		else
4649		  sort +2
4650		fi |
4651		uniq > "$nlist"S; then
4652	      :
4653	    else
4654	      grep -v "^: " < "$nlist" > "$nlist"S
4655	    fi
4656
4657	    if test -f "$nlist"S; then
4658	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4659	    else
4660	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4661	    fi
4662
4663	    $echo >> "$output_objdir/$dlsyms" "\
4664
4665#undef lt_preloaded_symbols
4666
4667#if defined (__STDC__) && __STDC__
4668# define lt_ptr void *
4669#else
4670# define lt_ptr char *
4671# define const
4672#endif
4673
4674/* The mapping between symbol names and symbols. */
4675"
4676
4677	    case $host in
4678	    *cygwin* | *mingw* )
4679	  $echo >> "$output_objdir/$dlsyms" "\
4680/* DATA imports from DLLs on WIN32 can't be const, because
4681   runtime relocations are performed -- see ld's documentation
4682   on pseudo-relocs */
4683struct {
4684"
4685	      ;;
4686	    * )
4687	  $echo >> "$output_objdir/$dlsyms" "\
4688const struct {
4689"
4690	      ;;
4691	    esac
4692
4693
4694	  $echo >> "$output_objdir/$dlsyms" "\
4695  const char *name;
4696  lt_ptr address;
4697}
4698lt_preloaded_symbols[] =
4699{\
4700"
4701
4702	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4703
4704	    $echo >> "$output_objdir/$dlsyms" "\
4705  {0, (lt_ptr) 0}
4706};
4707
4708/* This works around a problem in FreeBSD linker */
4709#ifdef FREEBSD_WORKAROUND
4710static const void *lt_preloaded_setup() {
4711  return lt_preloaded_symbols;
4712}
4713#endif
4714
4715#ifdef __cplusplus
4716}
4717#endif\
4718"
4719	  fi
4720
4721	  pic_flag_for_symtable=
4722	  case $host in
4723	  # compiling the symbol table file with pic_flag works around
4724	  # a FreeBSD bug that causes programs to crash when -lm is
4725	  # linked before any other PIC object.  But we must not use
4726	  # pic_flag when linking with -static.  The problem exists in
4727	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4728	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4729	    case "$compile_command " in
4730	    *" -static "*) ;;
4731	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4732	    esac;;
4733	  *-*-hpux*)
4734	    case "$compile_command " in
4735	    *" -static "*) ;;
4736	    *) pic_flag_for_symtable=" $pic_flag";;
4737	    esac
4738	  esac
4739
4740	  # Now compile the dynamic symbol file.
4741	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4742	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4743
4744	  # Clean up the generated files.
4745	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4746	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4747
4748	  # Transform the symbol file into the correct name.
4749          case $host in
4750          *cygwin* | *mingw* )
4751            if test -f "$output_objdir/${outputname}.def" ; then
4752              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4753              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4754            else
4755              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4756              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4757             fi
4758            ;;
4759          * )
4760            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4761            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4762            ;;
4763          esac
4764	  ;;
4765	*)
4766	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4767	  exit $EXIT_FAILURE
4768	  ;;
4769	esac
4770      else
4771	# We keep going just in case the user didn't refer to
4772	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4773	# really was required.
4774
4775	# Nullify the symbol file.
4776	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4777	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4778      fi
4779
4780      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4781	# Replace the output file specification.
4782	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
4783	link_command="$compile_command$compile_rpath"
4784
4785	# We have no uninstalled library dependencies, so finalize right now.
4786	$show "$link_command"
4787	$run eval "$link_command"
4788	exit_status=$?
4789
4790	# Delete the generated files.
4791	if test -n "$dlsyms"; then
4792	  $show "$rm $output_objdir/${outputname}S.${objext}"
4793	  $run $rm "$output_objdir/${outputname}S.${objext}"
4794	fi
4795
4796	exit $exit_status
4797      fi
4798
4799      if test -n "$shlibpath_var"; then
4800	# We should set the shlibpath_var
4801	rpath=
4802	for dir in $temp_rpath; do
4803	  case $dir in
4804	  [\\/]* | [A-Za-z]:[\\/]*)
4805	    # Absolute path.
4806	    rpath="$rpath$dir:"
4807	    ;;
4808	  *)
4809	    # Relative path: add a thisdir entry.
4810	    rpath="$rpath\$thisdir/$dir:"
4811	    ;;
4812	  esac
4813	done
4814	temp_rpath="$rpath"
4815      fi
4816
4817      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4818	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4819      fi
4820      if test -n "$finalize_shlibpath"; then
4821	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4822      fi
4823
4824      compile_var=
4825      finalize_var=
4826      if test -n "$runpath_var"; then
4827	if test -n "$perm_rpath"; then
4828	  # We should set the runpath_var.
4829	  rpath=
4830	  for dir in $perm_rpath; do
4831	    rpath="$rpath$dir:"
4832	  done
4833	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4834	fi
4835	if test -n "$finalize_perm_rpath"; then
4836	  # We should set the runpath_var.
4837	  rpath=
4838	  for dir in $finalize_perm_rpath; do
4839	    rpath="$rpath$dir:"
4840	  done
4841	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4842	fi
4843      fi
4844
4845      if test "$no_install" = yes; then
4846	# We don't need to create a wrapper script.
4847	link_command="$compile_var$compile_command$compile_rpath"
4848	# Replace the output file specification.
4849	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4850	# Delete the old output file.
4851	$run $rm $output
4852	# Link the executable and exit
4853	$show "$link_command"
4854	$run eval "$link_command" || exit $?
4855	exit $EXIT_SUCCESS
4856      fi
4857
4858      if test "$hardcode_action" = relink; then
4859	# Fast installation is not supported
4860	link_command="$compile_var$compile_command$compile_rpath"
4861	relink_command="$finalize_var$finalize_command$finalize_rpath"
4862
4863	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4864	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4865      else
4866	if test "$fast_install" != no; then
4867	  link_command="$finalize_var$compile_command$finalize_rpath"
4868	  if test "$fast_install" = yes; then
4869	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
4870	  else
4871	    # fast_install is set to needless
4872	    relink_command=
4873	  fi
4874	else
4875	  link_command="$compile_var$compile_command$compile_rpath"
4876	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4877	fi
4878      fi
4879
4880      # Replace the output file specification.
4881      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4882
4883      # Delete the old output files.
4884      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4885
4886      $show "$link_command"
4887      $run eval "$link_command" || exit $?
4888
4889      # Now create the wrapper script.
4890      $show "creating $output"
4891
4892      # Quote the relink command for shipping.
4893      if test -n "$relink_command"; then
4894	# Preserve any variables that may affect compiler behavior
4895	for var in $variables_saved_for_relink; do
4896	  if eval test -z \"\${$var+set}\"; then
4897	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4898	  elif eval var_value=\$$var; test -z "$var_value"; then
4899	    relink_command="$var=; export $var; $relink_command"
4900	  else
4901	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4902	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4903	  fi
4904	done
4905	relink_command="(cd `pwd`; $relink_command)"
4906	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
4907      fi
4908
4909      # Quote $echo for shipping.
4910      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4911	case $progpath in
4912	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4913	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4914	esac
4915	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4916      else
4917	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4918      fi
4919
4920      # Only actually do things if our run command is non-null.
4921      if test -z "$run"; then
4922	# win32 will think the script is a binary if it has
4923	# a .exe suffix, so we strip it off here.
4924	case $output in
4925	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4926	esac
4927	# test for cygwin because mv fails w/o .exe extensions
4928	case $host in
4929	  *cygwin*)
4930	    exeext=.exe
4931	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4932	  *) exeext= ;;
4933	esac
4934	case $host in
4935	  *cygwin* | *mingw* )
4936            output_name=`basename $output`
4937            output_path=`dirname $output`
4938            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4939            cwrapper="$output_path/$output_name.exe"
4940            $rm $cwrappersource $cwrapper
4941            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4942
4943	    cat > $cwrappersource <<EOF
4944
4945/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4946   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4947
4948   The $output program cannot be directly executed until all the libtool
4949   libraries that it depends on are installed.
4950
4951   This wrapper executable should never be moved out of the build directory.
4952   If it is, it will not operate correctly.
4953
4954   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4955   but could eventually absorb all of the scripts functionality and
4956   exec $objdir/$outputname directly.
4957*/
4958EOF
4959	    cat >> $cwrappersource<<"EOF"
4960#include <stdio.h>
4961#include <stdlib.h>
4962#include <unistd.h>
4963#include <malloc.h>
4964#include <stdarg.h>
4965#include <assert.h>
4966#include <string.h>
4967#include <ctype.h>
4968#include <sys/stat.h>
4969
4970#if defined(PATH_MAX)
4971# define LT_PATHMAX PATH_MAX
4972#elif defined(MAXPATHLEN)
4973# define LT_PATHMAX MAXPATHLEN
4974#else
4975# define LT_PATHMAX 1024
4976#endif
4977
4978#ifndef DIR_SEPARATOR
4979# define DIR_SEPARATOR '/'
4980# define PATH_SEPARATOR ':'
4981#endif
4982
4983#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4984  defined (__OS2__)
4985# define HAVE_DOS_BASED_FILE_SYSTEM
4986# ifndef DIR_SEPARATOR_2
4987#  define DIR_SEPARATOR_2 '\\'
4988# endif
4989# ifndef PATH_SEPARATOR_2
4990#  define PATH_SEPARATOR_2 ';'
4991# endif
4992#endif
4993
4994#ifndef DIR_SEPARATOR_2
4995# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4996#else /* DIR_SEPARATOR_2 */
4997# define IS_DIR_SEPARATOR(ch) \
4998        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4999#endif /* DIR_SEPARATOR_2 */
5000
5001#ifndef PATH_SEPARATOR_2
5002# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
5003#else /* PATH_SEPARATOR_2 */
5004# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
5005#endif /* PATH_SEPARATOR_2 */
5006
5007#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
5008#define XFREE(stale) do { \
5009  if (stale) { free ((void *) stale); stale = 0; } \
5010} while (0)
5011
5012/* -DDEBUG is fairly common in CFLAGS.  */
5013#undef DEBUG
5014#if defined DEBUGWRAPPER
5015# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
5016#else
5017# define DEBUG(format, ...)
5018#endif
5019
5020const char *program_name = NULL;
5021
5022void * xmalloc (size_t num);
5023char * xstrdup (const char *string);
5024const char * base_name (const char *name);
5025char * find_executable(const char *wrapper);
5026int    check_executable(const char *path);
5027char * strendzap(char *str, const char *pat);
5028void lt_fatal (const char *message, ...);
5029
5030int
5031main (int argc, char *argv[])
5032{
5033  char **newargz;
5034  int i;
5035
5036  program_name = (char *) xstrdup (base_name (argv[0]));
5037  DEBUG("(main) argv[0]      : %s\n",argv[0]);
5038  DEBUG("(main) program_name : %s\n",program_name);
5039  newargz = XMALLOC(char *, argc+2);
5040EOF
5041
5042            cat >> $cwrappersource <<EOF
5043  newargz[0] = (char *) xstrdup("$SHELL");
5044EOF
5045
5046            cat >> $cwrappersource <<"EOF"
5047  newargz[1] = find_executable(argv[0]);
5048  if (newargz[1] == NULL)
5049    lt_fatal("Couldn't find %s", argv[0]);
5050  DEBUG("(main) found exe at : %s\n",newargz[1]);
5051  /* we know the script has the same name, without the .exe */
5052  /* so make sure newargz[1] doesn't end in .exe */
5053  strendzap(newargz[1],".exe");
5054  for (i = 1; i < argc; i++)
5055    newargz[i+1] = xstrdup(argv[i]);
5056  newargz[argc+1] = NULL;
5057
5058  for (i=0; i<argc+1; i++)
5059  {
5060    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5061    ;
5062  }
5063
5064EOF
5065
5066            case $host_os in
5067              mingw*)
5068                cat >> $cwrappersource <<EOF
5069  execv("$SHELL",(char const **)newargz);
5070EOF
5071              ;;
5072              *)
5073                cat >> $cwrappersource <<EOF
5074  execv("$SHELL",newargz);
5075EOF
5076              ;;
5077            esac
5078
5079            cat >> $cwrappersource <<"EOF"
5080  return 127;
5081}
5082
5083void *
5084xmalloc (size_t num)
5085{
5086  void * p = (void *) malloc (num);
5087  if (!p)
5088    lt_fatal ("Memory exhausted");
5089
5090  return p;
5091}
5092
5093char *
5094xstrdup (const char *string)
5095{
5096  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5097;
5098}
5099
5100const char *
5101base_name (const char *name)
5102{
5103  const char *base;
5104
5105#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5106  /* Skip over the disk name in MSDOS pathnames. */
5107  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5108    name += 2;
5109#endif
5110
5111  for (base = name; *name; name++)
5112    if (IS_DIR_SEPARATOR (*name))
5113      base = name + 1;
5114  return base;
5115}
5116
5117int
5118check_executable(const char * path)
5119{
5120  struct stat st;
5121
5122  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5123  if ((!path) || (!*path))
5124    return 0;
5125
5126  if ((stat (path, &st) >= 0) &&
5127      (
5128        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5129#if defined (S_IXOTH)
5130       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5131#endif
5132#if defined (S_IXGRP)
5133       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5134#endif
5135       ((st.st_mode & S_IXUSR) == S_IXUSR))
5136      )
5137    return 1;
5138  else
5139    return 0;
5140}
5141
5142/* Searches for the full path of the wrapper.  Returns
5143   newly allocated full path name if found, NULL otherwise */
5144char *
5145find_executable (const char* wrapper)
5146{
5147  int has_slash = 0;
5148  const char* p;
5149  const char* p_next;
5150  /* static buffer for getcwd */
5151  char tmp[LT_PATHMAX + 1];
5152  int tmp_len;
5153  char* concat_name;
5154
5155  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5156
5157  if ((wrapper == NULL) || (*wrapper == '\0'))
5158    return NULL;
5159
5160  /* Absolute path? */
5161#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5162  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5163  {
5164    concat_name = xstrdup (wrapper);
5165    if (check_executable(concat_name))
5166      return concat_name;
5167    XFREE(concat_name);
5168  }
5169  else
5170  {
5171#endif
5172    if (IS_DIR_SEPARATOR (wrapper[0]))
5173    {
5174      concat_name = xstrdup (wrapper);
5175      if (check_executable(concat_name))
5176        return concat_name;
5177      XFREE(concat_name);
5178    }
5179#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5180  }
5181#endif
5182
5183  for (p = wrapper; *p; p++)
5184    if (*p == '/')
5185    {
5186      has_slash = 1;
5187      break;
5188    }
5189  if (!has_slash)
5190  {
5191    /* no slashes; search PATH */
5192    const char* path = getenv ("PATH");
5193    if (path != NULL)
5194    {
5195      for (p = path; *p; p = p_next)
5196      {
5197        const char* q;
5198        size_t p_len;
5199        for (q = p; *q; q++)
5200          if (IS_PATH_SEPARATOR(*q))
5201            break;
5202        p_len = q - p;
5203        p_next = (*q == '\0' ? q : q + 1);
5204        if (p_len == 0)
5205        {
5206          /* empty path: current directory */
5207          if (getcwd (tmp, LT_PATHMAX) == NULL)
5208            lt_fatal ("getcwd failed");
5209          tmp_len = strlen(tmp);
5210          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5211          memcpy (concat_name, tmp, tmp_len);
5212          concat_name[tmp_len] = '/';
5213          strcpy (concat_name + tmp_len + 1, wrapper);
5214        }
5215        else
5216        {
5217          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5218          memcpy (concat_name, p, p_len);
5219          concat_name[p_len] = '/';
5220          strcpy (concat_name + p_len + 1, wrapper);
5221        }
5222        if (check_executable(concat_name))
5223          return concat_name;
5224        XFREE(concat_name);
5225      }
5226    }
5227    /* not found in PATH; assume curdir */
5228  }
5229  /* Relative path | not found in path: prepend cwd */
5230  if (getcwd (tmp, LT_PATHMAX) == NULL)
5231    lt_fatal ("getcwd failed");
5232  tmp_len = strlen(tmp);
5233  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5234  memcpy (concat_name, tmp, tmp_len);
5235  concat_name[tmp_len] = '/';
5236  strcpy (concat_name + tmp_len + 1, wrapper);
5237
5238  if (check_executable(concat_name))
5239    return concat_name;
5240  XFREE(concat_name);
5241  return NULL;
5242}
5243
5244char *
5245strendzap(char *str, const char *pat)
5246{
5247  size_t len, patlen;
5248
5249  assert(str != NULL);
5250  assert(pat != NULL);
5251
5252  len = strlen(str);
5253  patlen = strlen(pat);
5254
5255  if (patlen <= len)
5256  {
5257    str += len - patlen;
5258    if (strcmp(str, pat) == 0)
5259      *str = '\0';
5260  }
5261  return str;
5262}
5263
5264static void
5265lt_error_core (int exit_status, const char * mode,
5266          const char * message, va_list ap)
5267{
5268  fprintf (stderr, "%s: %s: ", program_name, mode);
5269  vfprintf (stderr, message, ap);
5270  fprintf (stderr, ".\n");
5271
5272  if (exit_status >= 0)
5273    exit (exit_status);
5274}
5275
5276void
5277lt_fatal (const char *message, ...)
5278{
5279  va_list ap;
5280  va_start (ap, message);
5281  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5282  va_end (ap);
5283}
5284EOF
5285          # we should really use a build-platform specific compiler
5286          # here, but OTOH, the wrappers (shell script and this C one)
5287          # are only useful if you want to execute the "real" binary.
5288          # Since the "real" binary is built for $host, then this
5289          # wrapper might as well be built for $host, too.
5290          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5291          ;;
5292        esac
5293        $rm $output
5294        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5295
5296	$echo > $output "\
5297#! $SHELL
5298
5299# $output - temporary wrapper script for $objdir/$outputname
5300# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5301#
5302# The $output program cannot be directly executed until all the libtool
5303# libraries that it depends on are installed.
5304#
5305# This wrapper script should never be moved out of the build directory.
5306# If it is, it will not operate correctly.
5307
5308# Sed substitution that helps us do robust quoting.  It backslashifies
5309# metacharacters that are still active within double-quoted strings.
5310Xsed='${SED} -e 1s/^X//'
5311sed_quote_subst='$sed_quote_subst'
5312
5313# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
5314if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
5315  emulate sh
5316  NULLCMD=:
5317  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
5318  # is contrary to our usage.  Disable this feature.
5319  alias -g '\${1+\"\$@\"}'='\"\$@\"'
5320  setopt NO_GLOB_SUBST
5321else
5322  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
5323fi
5324BIN_SH=xpg4; export BIN_SH # for Tru64
5325DUALCASE=1; export DUALCASE # for MKS sh
5326
5327# The HP-UX ksh and POSIX shell print the target directory to stdout
5328# if CDPATH is set.
5329(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5330
5331relink_command=\"$relink_command\"
5332
5333# This environment variable determines our operation mode.
5334if test \"\$libtool_install_magic\" = \"$magic\"; then
5335  # install mode needs the following variable:
5336  notinst_deplibs='$notinst_deplibs'
5337else
5338  # When we are sourced in execute mode, \$file and \$echo are already set.
5339  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5340    echo=\"$qecho\"
5341    file=\"\$0\"
5342    # Make sure echo works.
5343    if test \"X\$1\" = X--no-reexec; then
5344      # Discard the --no-reexec flag, and continue.
5345      shift
5346    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5347      # Yippee, \$echo works!
5348      :
5349    else
5350      # Restart under the correct shell, and then maybe \$echo will work.
5351      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5352    fi
5353  fi\
5354"
5355	$echo >> $output "\
5356
5357  # Find the directory that this script lives in.
5358  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5359  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5360
5361  # Follow symbolic links until we get to the real thisdir.
5362  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5363  while test -n \"\$file\"; do
5364    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5365
5366    # If there was a directory component, then change thisdir.
5367    if test \"x\$destdir\" != \"x\$file\"; then
5368      case \"\$destdir\" in
5369      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5370      *) thisdir=\"\$thisdir/\$destdir\" ;;
5371      esac
5372    fi
5373
5374    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5375    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5376  done
5377
5378  # Try to get the absolute directory name.
5379  absdir=\`cd \"\$thisdir\" && pwd\`
5380  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5381"
5382
5383	if test "$fast_install" = yes; then
5384	  $echo >> $output "\
5385  program=lt-'$outputname'$exeext
5386  progdir=\"\$thisdir/$objdir\"
5387
5388  if test ! -f \"\$progdir/\$program\" || \\
5389     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5390       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5391
5392    file=\"\$\$-\$program\"
5393
5394    if test ! -d \"\$progdir\"; then
5395      $mkdir \"\$progdir\"
5396    else
5397      $rm \"\$progdir/\$file\"
5398    fi"
5399
5400	  $echo >> $output "\
5401
5402    # relink executable if necessary
5403    if test -n \"\$relink_command\"; then
5404      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5405      else
5406	$echo \"\$relink_command_output\" >&2
5407	$rm \"\$progdir/\$file\"
5408	exit $EXIT_FAILURE
5409      fi
5410    fi
5411
5412    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5413    { $rm \"\$progdir/\$program\";
5414      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5415    $rm \"\$progdir/\$file\"
5416  fi"
5417	else
5418	  $echo >> $output "\
5419  program='$outputname'
5420  progdir=\"\$thisdir/$objdir\"
5421"
5422	fi
5423
5424	$echo >> $output "\
5425
5426  if test -f \"\$progdir/\$program\"; then"
5427
5428	# Export our shlibpath_var if we have one.
5429	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5430	  $echo >> $output "\
5431    # Add our own library path to $shlibpath_var
5432    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5433
5434    # Some systems cannot cope with colon-terminated $shlibpath_var
5435    # The second colon is a workaround for a bug in BeOS R4 sed
5436    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5437
5438    export $shlibpath_var
5439"
5440	fi
5441
5442	# fixup the dll searchpath if we need to.
5443	if test -n "$dllsearchpath"; then
5444	  $echo >> $output "\
5445    # Add the dll search path components to the executable PATH
5446    PATH=$dllsearchpath:\$PATH
5447"
5448	fi
5449
5450	$echo >> $output "\
5451    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5452      # Run the actual program with our arguments.
5453"
5454	case $host in
5455	# Backslashes separate directories on plain windows
5456	*-*-mingw | *-*-os2*)
5457	  $echo >> $output "\
5458      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5459"
5460	  ;;
5461
5462	*)
5463	  $echo >> $output "\
5464      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5465"
5466	  ;;
5467	esac
5468	$echo >> $output "\
5469      \$echo \"\$0: cannot exec \$program \$*\"
5470      exit $EXIT_FAILURE
5471    fi
5472  else
5473    # The program doesn't exist.
5474    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5475    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5476    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5477    exit $EXIT_FAILURE
5478  fi
5479fi\
5480"
5481	chmod +x $output
5482      fi
5483      exit $EXIT_SUCCESS
5484      ;;
5485    esac
5486
5487    # See if we need to build an old-fashioned archive.
5488    for oldlib in $oldlibs; do
5489
5490      if test "$build_libtool_libs" = convenience; then
5491	oldobjs="$libobjs_save"
5492	addlibs="$convenience"
5493	build_libtool_libs=no
5494      else
5495	if test "$build_libtool_libs" = module; then
5496	  oldobjs="$libobjs_save"
5497	  build_libtool_libs=no
5498	else
5499	  oldobjs="$old_deplibs $non_pic_objects"
5500	fi
5501	addlibs="$old_convenience"
5502      fi
5503
5504      if test -n "$addlibs"; then
5505	gentop="$output_objdir/${outputname}x"
5506	generated="$generated $gentop"
5507
5508	func_extract_archives $gentop $addlibs
5509	oldobjs="$oldobjs $func_extract_archives_result"
5510      fi
5511
5512      # Do each command in the archive commands.
5513      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5514       cmds=$old_archive_from_new_cmds
5515      else
5516	# POSIX demands no paths to be encoded in archives.  We have
5517	# to avoid creating archives with duplicate basenames if we
5518	# might have to extract them afterwards, e.g., when creating a
5519	# static archive out of a convenience library, or when linking
5520	# the entirety of a libtool archive into another (currently
5521	# not supported by libtool).
5522	if (for obj in $oldobjs
5523	    do
5524	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5525	    done | sort | sort -uc >/dev/null 2>&1); then
5526	  :
5527	else
5528	  $echo "copying selected object files to avoid basename conflicts..."
5529
5530	  if test -z "$gentop"; then
5531	    gentop="$output_objdir/${outputname}x"
5532	    generated="$generated $gentop"
5533
5534	    $show "${rm}r $gentop"
5535	    $run ${rm}r "$gentop"
5536	    $show "$mkdir $gentop"
5537	    $run $mkdir "$gentop"
5538	    exit_status=$?
5539	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5540	      exit $exit_status
5541	    fi
5542	  fi
5543
5544	  save_oldobjs=$oldobjs
5545	  oldobjs=
5546	  counter=1
5547	  for obj in $save_oldobjs
5548	  do
5549	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5550	    case " $oldobjs " in
5551	    " ") oldobjs=$obj ;;
5552	    *[\ /]"$objbase "*)
5553	      while :; do
5554		# Make sure we don't pick an alternate name that also
5555		# overlaps.
5556		newobj=lt$counter-$objbase
5557		counter=`expr $counter + 1`
5558		case " $oldobjs " in
5559		*[\ /]"$newobj "*) ;;
5560		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5561		esac
5562	      done
5563	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5564	      $run ln "$obj" "$gentop/$newobj" ||
5565	      $run cp "$obj" "$gentop/$newobj"
5566	      oldobjs="$oldobjs $gentop/$newobj"
5567	      ;;
5568	    *) oldobjs="$oldobjs $obj" ;;
5569	    esac
5570	  done
5571	fi
5572
5573	eval cmds=\"$old_archive_cmds\"
5574
5575	if len=`expr "X$cmds" : ".*"` &&
5576	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5577	  cmds=$old_archive_cmds
5578	else
5579	  # the command line is too long to link in one step, link in parts
5580	  $echo "using piecewise archive linking..."
5581	  save_RANLIB=$RANLIB
5582	  RANLIB=:
5583	  objlist=
5584	  concat_cmds=
5585	  save_oldobjs=$oldobjs
5586
5587	  # Is there a better way of finding the last object in the list?
5588	  for obj in $save_oldobjs
5589	  do
5590	    last_oldobj=$obj
5591	  done
5592	  for obj in $save_oldobjs
5593	  do
5594	    oldobjs="$objlist $obj"
5595	    objlist="$objlist $obj"
5596	    eval test_cmds=\"$old_archive_cmds\"
5597	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5598	       test "$len" -le "$max_cmd_len"; then
5599	      :
5600	    else
5601	      # the above command should be used before it gets too long
5602	      oldobjs=$objlist
5603	      if test "$obj" = "$last_oldobj" ; then
5604	        RANLIB=$save_RANLIB
5605	      fi
5606	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5607	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5608	      objlist=
5609	    fi
5610	  done
5611	  RANLIB=$save_RANLIB
5612	  oldobjs=$objlist
5613	  if test "X$oldobjs" = "X" ; then
5614	    eval cmds=\"\$concat_cmds\"
5615	  else
5616	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5617	  fi
5618	fi
5619      fi
5620      save_ifs="$IFS"; IFS='~'
5621      for cmd in $cmds; do
5622        eval cmd=\"$cmd\"
5623	IFS="$save_ifs"
5624	$show "$cmd"
5625	$run eval "$cmd" || exit $?
5626      done
5627      IFS="$save_ifs"
5628    done
5629
5630    if test -n "$generated"; then
5631      $show "${rm}r$generated"
5632      $run ${rm}r$generated
5633    fi
5634
5635    # Now create the libtool archive.
5636    case $output in
5637    *.la)
5638      old_library=
5639      test "$build_old_libs" = yes && old_library="$libname.$libext"
5640      $show "creating $output"
5641
5642      # Preserve any variables that may affect compiler behavior
5643      for var in $variables_saved_for_relink; do
5644	if eval test -z \"\${$var+set}\"; then
5645	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5646	elif eval var_value=\$$var; test -z "$var_value"; then
5647	  relink_command="$var=; export $var; $relink_command"
5648	else
5649	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5650	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5651	fi
5652      done
5653      # Quote the link command for shipping.
5654      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5655      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
5656      if test "$hardcode_automatic" = yes ; then
5657	relink_command=
5658      fi
5659
5660
5661      # Only create the output if not a dry run.
5662      if test -z "$run"; then
5663	for installed in no yes; do
5664	  if test "$installed" = yes; then
5665	    if test -z "$install_libdir"; then
5666	      break
5667	    fi
5668	    output="$output_objdir/$outputname"i
5669	    # Replace all uninstalled libtool libraries with the installed ones
5670	    newdependency_libs=
5671	    for deplib in $dependency_libs; do
5672	      case $deplib in
5673	      *.la)
5674		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5675		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5676		if test -z "$libdir"; then
5677		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5678		  exit $EXIT_FAILURE
5679		fi
5680		newdependency_libs="$newdependency_libs $libdir/$name"
5681		;;
5682	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5683	      esac
5684	    done
5685	    dependency_libs="$newdependency_libs"
5686	    newdlfiles=
5687	    for lib in $dlfiles; do
5688	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5689	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5690	      if test -z "$libdir"; then
5691		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5692		exit $EXIT_FAILURE
5693	      fi
5694	      newdlfiles="$newdlfiles $libdir/$name"
5695	    done
5696	    dlfiles="$newdlfiles"
5697	    newdlprefiles=
5698	    for lib in $dlprefiles; do
5699	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5700	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5701	      if test -z "$libdir"; then
5702		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5703		exit $EXIT_FAILURE
5704	      fi
5705	      newdlprefiles="$newdlprefiles $libdir/$name"
5706	    done
5707	    dlprefiles="$newdlprefiles"
5708	  else
5709	    newdlfiles=
5710	    for lib in $dlfiles; do
5711	      case $lib in
5712		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5713		*) abs=`pwd`"/$lib" ;;
5714	      esac
5715	      newdlfiles="$newdlfiles $abs"
5716	    done
5717	    dlfiles="$newdlfiles"
5718	    newdlprefiles=
5719	    for lib in $dlprefiles; do
5720	      case $lib in
5721		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5722		*) abs=`pwd`"/$lib" ;;
5723	      esac
5724	      newdlprefiles="$newdlprefiles $abs"
5725	    done
5726	    dlprefiles="$newdlprefiles"
5727	  fi
5728	  $rm $output
5729	  # place dlname in correct position for cygwin
5730	  tdlname=$dlname
5731	  case $host,$output,$installed,$module,$dlname in
5732	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5733	  esac
5734	  $echo > $output "\
5735# $outputname - a libtool library file
5736# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5737#
5738# Please DO NOT delete this file!
5739# It is necessary for linking the library.
5740
5741# The name that we can dlopen(3).
5742dlname='$tdlname'
5743
5744# Names of this library.
5745library_names='$library_names'
5746
5747# The name of the static archive.
5748old_library='$old_library'
5749
5750# Libraries that this one depends upon.
5751dependency_libs='$dependency_libs'
5752
5753# Version information for $libname.
5754current=$current
5755age=$age
5756revision=$revision
5757
5758# Is this an already installed library?
5759installed=$installed
5760
5761# Should we warn about portability when linking against -modules?
5762shouldnotlink=$module
5763
5764# Files to dlopen/dlpreopen
5765dlopen='$dlfiles'
5766dlpreopen='$dlprefiles'
5767
5768# Directory that this library needs to be installed in:
5769libdir='$install_libdir'"
5770	  if test "$installed" = no && test "$need_relink" = yes; then
5771	    $echo >> $output "\
5772relink_command=\"$relink_command\""
5773	  fi
5774	done
5775      fi
5776
5777      # Do a symbolic link so that the libtool archive can be found in
5778      # LD_LIBRARY_PATH before the program is installed.
5779      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5780      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5781      ;;
5782    esac
5783    exit $EXIT_SUCCESS
5784    ;;
5785
5786  # libtool install mode
5787  install)
5788    modename="$modename: install"
5789
5790    # There may be an optional sh(1) argument at the beginning of
5791    # install_prog (especially on Windows NT).
5792    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5793       # Allow the use of GNU shtool's install command.
5794       $echo "X$nonopt" | grep shtool > /dev/null; then
5795      # Aesthetically quote it.
5796      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5797      case $arg in
5798      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5799	arg="\"$arg\""
5800	;;
5801      esac
5802      install_prog="$arg "
5803      arg="$1"
5804      shift
5805    else
5806      install_prog=
5807      arg=$nonopt
5808    fi
5809
5810    # The real first argument should be the name of the installation program.
5811    # Aesthetically quote it.
5812    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5813    case $arg in
5814    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5815      arg="\"$arg\""
5816      ;;
5817    esac
5818    install_prog="$install_prog$arg"
5819
5820    # We need to accept at least all the BSD install flags.
5821    dest=
5822    files=
5823    opts=
5824    prev=
5825    install_type=
5826    isdir=no
5827    stripme=
5828    for arg
5829    do
5830      if test -n "$dest"; then
5831	files="$files $dest"
5832	dest=$arg
5833	continue
5834      fi
5835
5836      case $arg in
5837      -d) isdir=yes ;;
5838      -f)
5839      	case " $install_prog " in
5840	*[\\\ /]cp\ *) ;;
5841	*) prev=$arg ;;
5842	esac
5843	;;
5844      -g | -m | -o) prev=$arg ;;
5845      -s)
5846	stripme=" -s"
5847	continue
5848	;;
5849      -*)
5850	;;
5851      *)
5852	# If the previous option needed an argument, then skip it.
5853	if test -n "$prev"; then
5854	  prev=
5855	else
5856	  dest=$arg
5857	  continue
5858	fi
5859	;;
5860      esac
5861
5862      # Aesthetically quote the argument.
5863      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5864      case $arg in
5865      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5866	arg="\"$arg\""
5867	;;
5868      esac
5869      install_prog="$install_prog $arg"
5870    done
5871
5872    if test -z "$install_prog"; then
5873      $echo "$modename: you must specify an install program" 1>&2
5874      $echo "$help" 1>&2
5875      exit $EXIT_FAILURE
5876    fi
5877
5878    if test -n "$prev"; then
5879      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5880      $echo "$help" 1>&2
5881      exit $EXIT_FAILURE
5882    fi
5883
5884    if test -z "$files"; then
5885      if test -z "$dest"; then
5886	$echo "$modename: no file or destination specified" 1>&2
5887      else
5888	$echo "$modename: you must specify a destination" 1>&2
5889      fi
5890      $echo "$help" 1>&2
5891      exit $EXIT_FAILURE
5892    fi
5893
5894    # Strip any trailing slash from the destination.
5895    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5896
5897    # Check to see that the destination is a directory.
5898    test -d "$dest" && isdir=yes
5899    if test "$isdir" = yes; then
5900      destdir="$dest"
5901      destname=
5902    else
5903      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5904      test "X$destdir" = "X$dest" && destdir=.
5905      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5906
5907      # Not a directory, so check to see that there is only one file specified.
5908      set dummy $files
5909      if test "$#" -gt 2; then
5910	$echo "$modename: \`$dest' is not a directory" 1>&2
5911	$echo "$help" 1>&2
5912	exit $EXIT_FAILURE
5913      fi
5914    fi
5915    case $destdir in
5916    [\\/]* | [A-Za-z]:[\\/]*) ;;
5917    *)
5918      for file in $files; do
5919	case $file in
5920	*.lo) ;;
5921	*)
5922	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5923	  $echo "$help" 1>&2
5924	  exit $EXIT_FAILURE
5925	  ;;
5926	esac
5927      done
5928      ;;
5929    esac
5930
5931    # This variable tells wrapper scripts just to set variables rather
5932    # than running their programs.
5933    libtool_install_magic="$magic"
5934
5935    staticlibs=
5936    future_libdirs=
5937    current_libdirs=
5938    for file in $files; do
5939
5940      # Do each installation.
5941      case $file in
5942      *.$libext)
5943	# Do the static libraries later.
5944	staticlibs="$staticlibs $file"
5945	;;
5946
5947      *.la)
5948	# Check to see that this really is a libtool archive.
5949	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5950	else
5951	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5952	  $echo "$help" 1>&2
5953	  exit $EXIT_FAILURE
5954	fi
5955
5956	library_names=
5957	old_library=
5958	relink_command=
5959	# If there is no directory component, then add one.
5960	case $file in
5961	*/* | *\\*) . $file ;;
5962	*) . ./$file ;;
5963	esac
5964
5965	# Add the libdir to current_libdirs if it is the destination.
5966	if test "X$destdir" = "X$libdir"; then
5967	  case "$current_libdirs " in
5968	  *" $libdir "*) ;;
5969	  *) current_libdirs="$current_libdirs $libdir" ;;
5970	  esac
5971	else
5972	  # Note the libdir as a future libdir.
5973	  case "$future_libdirs " in
5974	  *" $libdir "*) ;;
5975	  *) future_libdirs="$future_libdirs $libdir" ;;
5976	  esac
5977	fi
5978
5979	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5980	test "X$dir" = "X$file/" && dir=
5981	dir="$dir$objdir"
5982
5983	if test -n "$relink_command"; then
5984	  # Determine the prefix the user has applied to our future dir.
5985	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5986
5987	  # Don't allow the user to place us outside of our expected
5988	  # location b/c this prevents finding dependent libraries that
5989	  # are installed to the same prefix.
5990	  # At present, this check doesn't affect windows .dll's that
5991	  # are installed into $libdir/../bin (currently, that works fine)
5992	  # but it's something to keep an eye on.
5993	  if test "$inst_prefix_dir" = "$destdir"; then
5994	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5995	    exit $EXIT_FAILURE
5996	  fi
5997
5998	  if test -n "$inst_prefix_dir"; then
5999	    # Stick the inst_prefix_dir data into the link command.
6000	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
6001	  else
6002	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
6003	  fi
6004
6005	  $echo "$modename: warning: relinking \`$file'" 1>&2
6006	  $show "$relink_command"
6007	  if $run eval "$relink_command"; then :
6008	  else
6009	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6010	    exit $EXIT_FAILURE
6011	  fi
6012	fi
6013
6014	# See the names of the shared library.
6015	set dummy $library_names
6016	if test -n "$2"; then
6017	  realname="$2"
6018	  shift
6019	  shift
6020
6021	  srcname="$realname"
6022	  test -n "$relink_command" && srcname="$realname"T
6023
6024	  # Install the shared library and build the symlinks.
6025	  $show "$install_prog $dir/$srcname $destdir/$realname"
6026	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
6027	  if test -n "$stripme" && test -n "$striplib"; then
6028	    $show "$striplib $destdir/$realname"
6029	    $run eval "$striplib $destdir/$realname" || exit $?
6030	  fi
6031
6032	  if test "$#" -gt 0; then
6033	    # Delete the old symlinks, and create new ones.
6034	    # Try `ln -sf' first, because the `ln' binary might depend on
6035	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
6036	    # so we also need to try rm && ln -s.
6037	    for linkname
6038	    do
6039	      if test "$linkname" != "$realname"; then
6040                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6041                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6042	      fi
6043	    done
6044	  fi
6045
6046	  # Do each command in the postinstall commands.
6047	  lib="$destdir/$realname"
6048	  cmds=$postinstall_cmds
6049	  save_ifs="$IFS"; IFS='~'
6050	  for cmd in $cmds; do
6051	    IFS="$save_ifs"
6052	    eval cmd=\"$cmd\"
6053	    $show "$cmd"
6054	    $run eval "$cmd" || {
6055	      lt_exit=$?
6056
6057	      # Restore the uninstalled library and exit
6058	      if test "$mode" = relink; then
6059		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
6060	      fi
6061
6062	      exit $lt_exit
6063	    }
6064	  done
6065	  IFS="$save_ifs"
6066	fi
6067
6068	# Install the pseudo-library for information purposes.
6069	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6070	instname="$dir/$name"i
6071	$show "$install_prog $instname $destdir/$name"
6072	$run eval "$install_prog $instname $destdir/$name" || exit $?
6073
6074	# Maybe install the static library, too.
6075	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6076	;;
6077
6078      *.lo)
6079	# Install (i.e. copy) a libtool object.
6080
6081	# Figure out destination file name, if it wasn't already specified.
6082	if test -n "$destname"; then
6083	  destfile="$destdir/$destname"
6084	else
6085	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6086	  destfile="$destdir/$destfile"
6087	fi
6088
6089	# Deduce the name of the destination old-style object file.
6090	case $destfile in
6091	*.lo)
6092	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6093	  ;;
6094	*.$objext)
6095	  staticdest="$destfile"
6096	  destfile=
6097	  ;;
6098	*)
6099	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6100	  $echo "$help" 1>&2
6101	  exit $EXIT_FAILURE
6102	  ;;
6103	esac
6104
6105	# Install the libtool object if requested.
6106	if test -n "$destfile"; then
6107	  $show "$install_prog $file $destfile"
6108	  $run eval "$install_prog $file $destfile" || exit $?
6109	fi
6110
6111	# Install the old object if enabled.
6112	if test "$build_old_libs" = yes; then
6113	  # Deduce the name of the old-style object file.
6114	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6115
6116	  $show "$install_prog $staticobj $staticdest"
6117	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6118	fi
6119	exit $EXIT_SUCCESS
6120	;;
6121
6122      *)
6123	# Figure out destination file name, if it wasn't already specified.
6124	if test -n "$destname"; then
6125	  destfile="$destdir/$destname"
6126	else
6127	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6128	  destfile="$destdir/$destfile"
6129	fi
6130
6131	# If the file is missing, and there is a .exe on the end, strip it
6132	# because it is most likely a libtool script we actually want to
6133	# install
6134	stripped_ext=""
6135	case $file in
6136	  *.exe)
6137	    if test ! -f "$file"; then
6138	      file=`$echo $file|${SED} 's,.exe$,,'`
6139	      stripped_ext=".exe"
6140	    fi
6141	    ;;
6142	esac
6143
6144	# Do a test to see if this is really a libtool program.
6145	case $host in
6146	*cygwin*|*mingw*)
6147	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6148	    ;;
6149	*)
6150	    wrapper=$file
6151	    ;;
6152	esac
6153	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6154	  notinst_deplibs=
6155	  relink_command=
6156
6157	  # Note that it is not necessary on cygwin/mingw to append a dot to
6158	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6159	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6160	  # `FILE.' does not work on cygwin managed mounts.
6161	  #
6162	  # If there is no directory component, then add one.
6163	  case $wrapper in
6164	  */* | *\\*) . ${wrapper} ;;
6165	  *) . ./${wrapper} ;;
6166	  esac
6167
6168	  # Check the variables that should have been set.
6169	  if test -z "$notinst_deplibs"; then
6170	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6171	    exit $EXIT_FAILURE
6172	  fi
6173
6174	  finalize=yes
6175	  for lib in $notinst_deplibs; do
6176	    # Check to see that each library is installed.
6177	    libdir=
6178	    if test -f "$lib"; then
6179	      # If there is no directory component, then add one.
6180	      case $lib in
6181	      */* | *\\*) . $lib ;;
6182	      *) . ./$lib ;;
6183	      esac
6184	    fi
6185	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6186	    if test -n "$libdir" && test ! -f "$libfile"; then
6187	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6188	      finalize=no
6189	    fi
6190	  done
6191
6192	  relink_command=
6193	  # Note that it is not necessary on cygwin/mingw to append a dot to
6194	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6195	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6196	  # `FILE.' does not work on cygwin managed mounts.
6197	  #
6198	  # If there is no directory component, then add one.
6199	  case $wrapper in
6200	  */* | *\\*) . ${wrapper} ;;
6201	  *) . ./${wrapper} ;;
6202	  esac
6203
6204	  outputname=
6205	  if test "$fast_install" = no && test -n "$relink_command"; then
6206	    if test "$finalize" = yes && test -z "$run"; then
6207	      tmpdir=`func_mktempdir`
6208	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6209	      outputname="$tmpdir/$file"
6210	      # Replace the output file specification.
6211	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
6212
6213	      $show "$relink_command"
6214	      if $run eval "$relink_command"; then :
6215	      else
6216		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6217		${rm}r "$tmpdir"
6218		continue
6219	      fi
6220	      file="$outputname"
6221	    else
6222	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6223	    fi
6224	  else
6225	    # Install the binary that we compiled earlier.
6226	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6227	  fi
6228	fi
6229
6230	# remove .exe since cygwin /usr/bin/install will append another
6231	# one anyway
6232	case $install_prog,$host in
6233	*/usr/bin/install*,*cygwin*)
6234	  case $file:$destfile in
6235	  *.exe:*.exe)
6236	    # this is ok
6237	    ;;
6238	  *.exe:*)
6239	    destfile=$destfile.exe
6240	    ;;
6241	  *:*.exe)
6242	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6243	    ;;
6244	  esac
6245	  ;;
6246	esac
6247	$show "$install_prog$stripme $file $destfile"
6248	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6249	test -n "$outputname" && ${rm}r "$tmpdir"
6250	;;
6251      esac
6252    done
6253
6254    for file in $staticlibs; do
6255      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6256
6257      # Set up the ranlib parameters.
6258      oldlib="$destdir/$name"
6259
6260      $show "$install_prog $file $oldlib"
6261      $run eval "$install_prog \$file \$oldlib" || exit $?
6262
6263      if test -n "$stripme" && test -n "$old_striplib"; then
6264	$show "$old_striplib $oldlib"
6265	$run eval "$old_striplib $oldlib" || exit $?
6266      fi
6267
6268      # Do each command in the postinstall commands.
6269      cmds=$old_postinstall_cmds
6270      save_ifs="$IFS"; IFS='~'
6271      for cmd in $cmds; do
6272	IFS="$save_ifs"
6273	eval cmd=\"$cmd\"
6274	$show "$cmd"
6275	$run eval "$cmd" || exit $?
6276      done
6277      IFS="$save_ifs"
6278    done
6279
6280    if test -n "$future_libdirs"; then
6281      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6282    fi
6283
6284    if test -n "$current_libdirs"; then
6285      # Maybe just do a dry run.
6286      test -n "$run" && current_libdirs=" -n$current_libdirs"
6287      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6288    else
6289      exit $EXIT_SUCCESS
6290    fi
6291    ;;
6292
6293  # libtool finish mode
6294  finish)
6295    modename="$modename: finish"
6296    libdirs="$nonopt"
6297    admincmds=
6298
6299    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6300      for dir
6301      do
6302	libdirs="$libdirs $dir"
6303      done
6304
6305      for libdir in $libdirs; do
6306	if test -n "$finish_cmds"; then
6307	  # Do each command in the finish commands.
6308	  cmds=$finish_cmds
6309	  save_ifs="$IFS"; IFS='~'
6310	  for cmd in $cmds; do
6311	    IFS="$save_ifs"
6312	    eval cmd=\"$cmd\"
6313	    $show "$cmd"
6314	    $run eval "$cmd" || admincmds="$admincmds
6315       $cmd"
6316	  done
6317	  IFS="$save_ifs"
6318	fi
6319	if test -n "$finish_eval"; then
6320	  # Do the single finish_eval.
6321	  eval cmds=\"$finish_eval\"
6322	  $run eval "$cmds" || admincmds="$admincmds
6323       $cmds"
6324	fi
6325      done
6326    fi
6327
6328    # Exit here if they wanted silent mode.
6329    test "$show" = : && exit $EXIT_SUCCESS
6330
6331    $echo "X----------------------------------------------------------------------" | $Xsed
6332    $echo "Libraries have been installed in:"
6333    for libdir in $libdirs; do
6334      $echo "   $libdir"
6335    done
6336    $echo
6337    $echo "If you ever happen to want to link against installed libraries"
6338    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6339    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6340    $echo "flag during linking and do at least one of the following:"
6341    if test -n "$shlibpath_var"; then
6342      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6343      $echo "     during execution"
6344    fi
6345    if test -n "$runpath_var"; then
6346      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6347      $echo "     during linking"
6348    fi
6349    if test -n "$hardcode_libdir_flag_spec"; then
6350      libdir=LIBDIR
6351      eval flag=\"$hardcode_libdir_flag_spec\"
6352
6353      $echo "   - use the \`$flag' linker flag"
6354    fi
6355    if test -n "$admincmds"; then
6356      $echo "   - have your system administrator run these commands:$admincmds"
6357    fi
6358    if test -f /etc/ld.so.conf; then
6359      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6360    fi
6361    $echo
6362    $echo "See any operating system documentation about shared libraries for"
6363    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6364    $echo "X----------------------------------------------------------------------" | $Xsed
6365    exit $EXIT_SUCCESS
6366    ;;
6367
6368  # libtool execute mode
6369  execute)
6370    modename="$modename: execute"
6371
6372    # The first argument is the command name.
6373    cmd="$nonopt"
6374    if test -z "$cmd"; then
6375      $echo "$modename: you must specify a COMMAND" 1>&2
6376      $echo "$help"
6377      exit $EXIT_FAILURE
6378    fi
6379
6380    # Handle -dlopen flags immediately.
6381    for file in $execute_dlfiles; do
6382      if test ! -f "$file"; then
6383	$echo "$modename: \`$file' is not a file" 1>&2
6384	$echo "$help" 1>&2
6385	exit $EXIT_FAILURE
6386      fi
6387
6388      dir=
6389      case $file in
6390      *.la)
6391	# Check to see that this really is a libtool archive.
6392	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6393	else
6394	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6395	  $echo "$help" 1>&2
6396	  exit $EXIT_FAILURE
6397	fi
6398
6399	# Read the libtool library.
6400	dlname=
6401	library_names=
6402
6403	# If there is no directory component, then add one.
6404	case $file in
6405	*/* | *\\*) . $file ;;
6406	*) . ./$file ;;
6407	esac
6408
6409	# Skip this library if it cannot be dlopened.
6410	if test -z "$dlname"; then
6411	  # Warn if it was a shared library.
6412	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6413	  continue
6414	fi
6415
6416	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6417	test "X$dir" = "X$file" && dir=.
6418
6419	if test -f "$dir/$objdir/$dlname"; then
6420	  dir="$dir/$objdir"
6421	else
6422	  if test ! -f "$dir/$dlname"; then
6423	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6424	    exit $EXIT_FAILURE
6425	  fi
6426	fi
6427	;;
6428
6429      *.lo)
6430	# Just add the directory containing the .lo file.
6431	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6432	test "X$dir" = "X$file" && dir=.
6433	;;
6434
6435      *)
6436	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6437	continue
6438	;;
6439      esac
6440
6441      # Get the absolute pathname.
6442      absdir=`cd "$dir" && pwd`
6443      test -n "$absdir" && dir="$absdir"
6444
6445      # Now add the directory to shlibpath_var.
6446      if eval "test -z \"\$$shlibpath_var\""; then
6447	eval "$shlibpath_var=\"\$dir\""
6448      else
6449	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6450      fi
6451    done
6452
6453    # This variable tells wrapper scripts just to set shlibpath_var
6454    # rather than running their programs.
6455    libtool_execute_magic="$magic"
6456
6457    # Check if any of the arguments is a wrapper script.
6458    args=
6459    for file
6460    do
6461      case $file in
6462      -*) ;;
6463      *)
6464	# Do a test to see if this is really a libtool program.
6465	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6466	  # If there is no directory component, then add one.
6467	  case $file in
6468	  */* | *\\*) . $file ;;
6469	  *) . ./$file ;;
6470	  esac
6471
6472	  # Transform arg to wrapped name.
6473	  file="$progdir/$program"
6474	fi
6475	;;
6476      esac
6477      # Quote arguments (to preserve shell metacharacters).
6478      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6479      args="$args \"$file\""
6480    done
6481
6482    if test -z "$run"; then
6483      if test -n "$shlibpath_var"; then
6484	# Export the shlibpath_var.
6485	eval "export $shlibpath_var"
6486      fi
6487
6488      # Restore saved environment variables
6489      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
6490      do
6491	eval "if test \"\${save_$lt_var+set}\" = set; then
6492		$lt_var=\$save_$lt_var; export $lt_var
6493	      fi"
6494      done
6495
6496      # Now prepare to actually exec the command.
6497      exec_cmd="\$cmd$args"
6498    else
6499      # Display what would be done.
6500      if test -n "$shlibpath_var"; then
6501	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6502	$echo "export $shlibpath_var"
6503      fi
6504      $echo "$cmd$args"
6505      exit $EXIT_SUCCESS
6506    fi
6507    ;;
6508
6509  # libtool clean and uninstall mode
6510  clean | uninstall)
6511    modename="$modename: $mode"
6512    rm="$nonopt"
6513    files=
6514    rmforce=
6515    exit_status=0
6516
6517    # This variable tells wrapper scripts just to set variables rather
6518    # than running their programs.
6519    libtool_install_magic="$magic"
6520
6521    for arg
6522    do
6523      case $arg in
6524      -f) rm="$rm $arg"; rmforce=yes ;;
6525      -*) rm="$rm $arg" ;;
6526      *) files="$files $arg" ;;
6527      esac
6528    done
6529
6530    if test -z "$rm"; then
6531      $echo "$modename: you must specify an RM program" 1>&2
6532      $echo "$help" 1>&2
6533      exit $EXIT_FAILURE
6534    fi
6535
6536    rmdirs=
6537
6538    origobjdir="$objdir"
6539    for file in $files; do
6540      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6541      if test "X$dir" = "X$file"; then
6542	dir=.
6543	objdir="$origobjdir"
6544      else
6545	objdir="$dir/$origobjdir"
6546      fi
6547      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6548      test "$mode" = uninstall && objdir="$dir"
6549
6550      # Remember objdir for removal later, being careful to avoid duplicates
6551      if test "$mode" = clean; then
6552	case " $rmdirs " in
6553	  *" $objdir "*) ;;
6554	  *) rmdirs="$rmdirs $objdir" ;;
6555	esac
6556      fi
6557
6558      # Don't error if the file doesn't exist and rm -f was used.
6559      if (test -L "$file") >/dev/null 2>&1 \
6560	|| (test -h "$file") >/dev/null 2>&1 \
6561	|| test -f "$file"; then
6562	:
6563      elif test -d "$file"; then
6564	exit_status=1
6565	continue
6566      elif test "$rmforce" = yes; then
6567	continue
6568      fi
6569
6570      rmfiles="$file"
6571
6572      case $name in
6573      *.la)
6574	# Possibly a libtool archive, so verify it.
6575	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6576	  . $dir/$name
6577
6578	  # Delete the libtool libraries and symlinks.
6579	  for n in $library_names; do
6580	    rmfiles="$rmfiles $objdir/$n"
6581	  done
6582	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6583
6584	  case "$mode" in
6585	  clean)
6586	    case "  $library_names " in
6587	    # "  " in the beginning catches empty $dlname
6588	    *" $dlname "*) ;;
6589	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6590	    esac
6591	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6592	    ;;
6593	  uninstall)
6594	    if test -n "$library_names"; then
6595	      # Do each command in the postuninstall commands.
6596	      cmds=$postuninstall_cmds
6597	      save_ifs="$IFS"; IFS='~'
6598	      for cmd in $cmds; do
6599		IFS="$save_ifs"
6600		eval cmd=\"$cmd\"
6601		$show "$cmd"
6602		$run eval "$cmd"
6603		if test "$?" -ne 0 && test "$rmforce" != yes; then
6604		  exit_status=1
6605		fi
6606	      done
6607	      IFS="$save_ifs"
6608	    fi
6609
6610	    if test -n "$old_library"; then
6611	      # Do each command in the old_postuninstall commands.
6612	      cmds=$old_postuninstall_cmds
6613	      save_ifs="$IFS"; IFS='~'
6614	      for cmd in $cmds; do
6615		IFS="$save_ifs"
6616		eval cmd=\"$cmd\"
6617		$show "$cmd"
6618		$run eval "$cmd"
6619		if test "$?" -ne 0 && test "$rmforce" != yes; then
6620		  exit_status=1
6621		fi
6622	      done
6623	      IFS="$save_ifs"
6624	    fi
6625	    # FIXME: should reinstall the best remaining shared library.
6626	    ;;
6627	  esac
6628	fi
6629	;;
6630
6631      *.lo)
6632	# Possibly a libtool object, so verify it.
6633	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6634
6635	  # Read the .lo file
6636	  . $dir/$name
6637
6638	  # Add PIC object to the list of files to remove.
6639	  if test -n "$pic_object" \
6640	     && test "$pic_object" != none; then
6641	    rmfiles="$rmfiles $dir/$pic_object"
6642	  fi
6643
6644	  # Add non-PIC object to the list of files to remove.
6645	  if test -n "$non_pic_object" \
6646	     && test "$non_pic_object" != none; then
6647	    rmfiles="$rmfiles $dir/$non_pic_object"
6648	  fi
6649	fi
6650	;;
6651
6652      *)
6653	if test "$mode" = clean ; then
6654	  noexename=$name
6655	  case $file in
6656	  *.exe)
6657	    file=`$echo $file|${SED} 's,.exe$,,'`
6658	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6659	    # $file with .exe has already been added to rmfiles,
6660	    # add $file without .exe
6661	    rmfiles="$rmfiles $file"
6662	    ;;
6663	  esac
6664	  # Do a test to see if this is a libtool program.
6665	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6666	    relink_command=
6667	    . $dir/$noexename
6668
6669	    # note $name still contains .exe if it was in $file originally
6670	    # as does the version of $file that was added into $rmfiles
6671	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6672	    if test "$fast_install" = yes && test -n "$relink_command"; then
6673	      rmfiles="$rmfiles $objdir/lt-$name"
6674	    fi
6675	    if test "X$noexename" != "X$name" ; then
6676	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6677	    fi
6678	  fi
6679	fi
6680	;;
6681      esac
6682      $show "$rm $rmfiles"
6683      $run $rm $rmfiles || exit_status=1
6684    done
6685    objdir="$origobjdir"
6686
6687    # Try to remove the ${objdir}s in the directories where we deleted files
6688    for dir in $rmdirs; do
6689      if test -d "$dir"; then
6690	$show "rmdir $dir"
6691	$run rmdir $dir >/dev/null 2>&1
6692      fi
6693    done
6694
6695    exit $exit_status
6696    ;;
6697
6698  "")
6699    $echo "$modename: you must specify a MODE" 1>&2
6700    $echo "$generic_help" 1>&2
6701    exit $EXIT_FAILURE
6702    ;;
6703  esac
6704
6705  if test -z "$exec_cmd"; then
6706    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6707    $echo "$generic_help" 1>&2
6708    exit $EXIT_FAILURE
6709  fi
6710fi # test -z "$show_help"
6711
6712if test -n "$exec_cmd"; then
6713  eval exec $exec_cmd
6714  exit $EXIT_FAILURE
6715fi
6716
6717# We need to display help for each of the modes.
6718case $mode in
6719"") $echo \
6720"Usage: $modename [OPTION]... [MODE-ARG]...
6721
6722Provide generalized library-building support services.
6723
6724    --config          show all configuration variables
6725    --debug           enable verbose shell tracing
6726-n, --dry-run         display commands without modifying any files
6727    --features        display basic configuration information and exit
6728    --finish          same as \`--mode=finish'
6729    --help            display this help message and exit
6730    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6731    --quiet           same as \`--silent'
6732    --silent          don't print informational messages
6733    --tag=TAG         use configuration variables from tag TAG
6734    --version         print version information
6735
6736MODE must be one of the following:
6737
6738      clean           remove files from the build directory
6739      compile         compile a source file into a libtool object
6740      execute         automatically set library path, then run a program
6741      finish          complete the installation of libtool libraries
6742      install         install libraries or executables
6743      link            create a library or an executable
6744      uninstall       remove libraries from an installed directory
6745
6746MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6747a more detailed description of MODE.
6748
6749Report bugs to <bug-libtool@gnu.org>."
6750  exit $EXIT_SUCCESS
6751  ;;
6752
6753clean)
6754  $echo \
6755"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6756
6757Remove files from the build directory.
6758
6759RM is the name of the program to use to delete files associated with each FILE
6760(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6761to RM.
6762
6763If FILE is a libtool library, object or program, all the files associated
6764with it are deleted. Otherwise, only FILE itself is deleted using RM."
6765  ;;
6766
6767compile)
6768  $echo \
6769"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6770
6771Compile a source file into a libtool library object.
6772
6773This mode accepts the following additional options:
6774
6775  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6776  -prefer-pic       try to building PIC objects only
6777  -prefer-non-pic   try to building non-PIC objects only
6778  -static           always build a \`.o' file suitable for static linking
6779
6780COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6781from the given SOURCEFILE.
6782
6783The output file name is determined by removing the directory component from
6784SOURCEFILE, then substituting the C source code suffix \`.c' with the
6785library object suffix, \`.lo'."
6786  ;;
6787
6788execute)
6789  $echo \
6790"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6791
6792Automatically set library path, then run a program.
6793
6794This mode accepts the following additional options:
6795
6796  -dlopen FILE      add the directory containing FILE to the library path
6797
6798This mode sets the library path environment variable according to \`-dlopen'
6799flags.
6800
6801If any of the ARGS are libtool executable wrappers, then they are translated
6802into their corresponding uninstalled binary, and any of their required library
6803directories are added to the library path.
6804
6805Then, COMMAND is executed, with ARGS as arguments."
6806  ;;
6807
6808finish)
6809  $echo \
6810"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6811
6812Complete the installation of libtool libraries.
6813
6814Each LIBDIR is a directory that contains libtool libraries.
6815
6816The commands that this mode executes may require superuser privileges.  Use
6817the \`--dry-run' option if you just want to see what would be executed."
6818  ;;
6819
6820install)
6821  $echo \
6822"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6823
6824Install executables or libraries.
6825
6826INSTALL-COMMAND is the installation command.  The first component should be
6827either the \`install' or \`cp' program.
6828
6829The rest of the components are interpreted as arguments to that command (only
6830BSD-compatible install options are recognized)."
6831  ;;
6832
6833link)
6834  $echo \
6835"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6836
6837Link object files or libraries together to form another library, or to
6838create an executable program.
6839
6840LINK-COMMAND is a command using the C compiler that you would use to create
6841a program from several object files.
6842
6843The following components of LINK-COMMAND are treated specially:
6844
6845  -all-static       do not do any dynamic linking at all
6846  -avoid-version    do not add a version suffix if possible
6847  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6848  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6849  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6850  -export-symbols SYMFILE
6851                    try to export only the symbols listed in SYMFILE
6852  -export-symbols-regex REGEX
6853                    try to export only the symbols matching REGEX
6854  -LLIBDIR          search LIBDIR for required installed libraries
6855  -lNAME            OUTPUT-FILE requires the installed library libNAME
6856  -module           build a library that can dlopened
6857  -no-fast-install  disable the fast-install mode
6858  -no-install       link a not-installable executable
6859  -no-undefined     declare that a library does not refer to external symbols
6860  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6861  -objectlist FILE  Use a list of object files found in FILE to specify objects
6862  -precious-files-regex REGEX
6863                    don't remove output files matching REGEX
6864  -release RELEASE  specify package release information
6865  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6866  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6867  -static           do not do any dynamic linking of uninstalled libtool libraries
6868  -static-libtool-libs
6869                    do not do any dynamic linking of libtool libraries
6870  -version-info CURRENT[:REVISION[:AGE]]
6871                    specify library version info [each variable defaults to 0]
6872
6873All other options (arguments beginning with \`-') are ignored.
6874
6875Every other argument is treated as a filename.  Files ending in \`.la' are
6876treated as uninstalled libtool libraries, other files are standard or library
6877object files.
6878
6879If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6880only library objects (\`.lo' files) may be specified, and \`-rpath' is
6881required, except when creating a convenience library.
6882
6883If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6884using \`ar' and \`ranlib', or on Windows using \`lib'.
6885
6886If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6887is created, otherwise an executable program is created."
6888  ;;
6889
6890uninstall)
6891  $echo \
6892"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6893
6894Remove libraries from an installation directory.
6895
6896RM is the name of the program to use to delete files associated with each FILE
6897(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6898to RM.
6899
6900If FILE is a libtool library, all the files associated with it are deleted.
6901Otherwise, only FILE itself is deleted using RM."
6902  ;;
6903
6904*)
6905  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6906  $echo "$help" 1>&2
6907  exit $EXIT_FAILURE
6908  ;;
6909esac
6910
6911$echo
6912$echo "Try \`$modename --help' for more information about other modes."
6913
6914exit $?
6915
6916# The TAGs below are defined such that we never get into a situation
6917# in which we disable both kinds of libraries.  Given conflicting
6918# choices, we go for a static library, that is the most portable,
6919# since we can't tell whether shared libraries were disabled because
6920# the user asked for that or because the platform doesn't support
6921# them.  This is particularly important on AIX, because we don't
6922# support having both static and shared libraries enabled at the same
6923# time on that platform, so we default to a shared-only configuration.
6924# If a disable-shared tag is given, we'll fallback to a static-only
6925# configuration.  But we'll never go from static-only to shared-only.
6926
6927# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6928disable_libs=shared
6929# ### END LIBTOOL TAG CONFIG: disable-shared
6930
6931# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6932disable_libs=static
6933# ### END LIBTOOL TAG CONFIG: disable-static
6934
6935# Local Variables:
6936# mode:shell-script
6937# sh-indentation:2
6938# End:
6939