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