1# ltmain.sh - Provide generalized library-building support services.
2# NOTE: Changing this file will not affect anything until you rerun configure.
3#
4# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5# 2007  Free Software Foundation, Inc.
6# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7#
8# This program is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 2 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16# General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program; if not, write to the Free Software
20# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21#
22# As a special exception to the GNU General Public License, if you
23# distribute this file as part of a program that contains a
24# configuration script generated by Autoconf, you may include it under
25# the same distribution terms that you use for the rest of that program.
26
27basename="s,^.*/,,g"
28
29# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30# is ksh but when the shell is invoked as "sh" and the current value of
31# the _XPG environment variable is not equal to 1 (one), the special
32# positional parameter $0, within a function call, is the name of the
33# function.
34progpath="$0"
35
36# The name of this program:
37progname=`echo "$progpath" | $SED $basename`
38modename="$progname"
39
40# Global variables:
41EXIT_SUCCESS=0
42EXIT_FAILURE=1
43
44PROGRAM=ltmain.sh
45PACKAGE=libtool
46VERSION=1.5.24
47TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)"
48
49# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
50if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
51  emulate sh
52  NULLCMD=:
53  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
54  # is contrary to our usage.  Disable this feature.
55  alias -g '${1+"$@"}'='"$@"'
56  setopt NO_GLOB_SUBST
57else
58  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
59fi
60BIN_SH=xpg4; export BIN_SH # for Tru64
61DUALCASE=1; export DUALCASE # for MKS sh
62
63# Check that we have a working $echo.
64if test "X$1" = X--no-reexec; then
65  # Discard the --no-reexec flag, and continue.
66  shift
67elif test "X$1" = X--fallback-echo; then
68  # Avoid inline document here, it may be left over
69  :
70elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
71  # Yippee, $echo works!
72  :
73else
74  # Restart under the correct shell, and then maybe $echo will work.
75  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
76fi
77
78if test "X$1" = X--fallback-echo; then
79  # used as fallback echo
80  shift
81  cat <<EOF
82$*
83EOF
84  exit $EXIT_SUCCESS
85fi
86
87default_mode=
88help="Try \`$progname --help' for more information."
89magic="%%%MAGIC variable%%%"
90mkdir="mkdir"
91mv="mv -f"
92rm="rm -f"
93
94# Sed substitution that helps us do robust quoting.  It backslashifies
95# metacharacters that are still active within double-quoted strings.
96Xsed="${SED}"' -e 1s/^X//'
97sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
98# test EBCDIC or ASCII
99case `echo X|tr X '\101'` in
100 A) # ASCII based system
101    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
102  SP2NL='tr \040 \012'
103  NL2SP='tr \015\012 \040\040'
104  ;;
105 *) # EBCDIC based system
106  SP2NL='tr \100 \n'
107  NL2SP='tr \r\n \100\100'
108  ;;
109esac
110
111# NLS nuisances.
112# Only set LANG and LC_ALL to C if already set.
113# These must not be set unconditionally because not all systems understand
114# e.g. LANG=C (notably SCO).
115# We save the old values to restore during execute mode.
116for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
117do
118  eval "if test \"\${$lt_var+set}\" = set; then
119	  save_$lt_var=\$$lt_var
120	  $lt_var=C
121	  export $lt_var
122	fi"
123done
124
125# Make sure IFS has a sensible default
126lt_nl='
127'
128IFS=" 	$lt_nl"
129
130if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
131  $echo "$modename: not configured to build any kind of library" 1>&2
132  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
133  exit $EXIT_FAILURE
134fi
135
136# Global variables.
137mode=$default_mode
138nonopt=
139prev=
140prevopt=
141run=
142show="$echo"
143show_help=
144execute_dlfiles=
145duplicate_deps=no
146preserve_args=
147lo2o="s/\\.lo\$/.${objext}/"
148o2lo="s/\\.${objext}\$/.lo/"
149extracted_archives=
150extracted_serial=0
151
152#####################################
153# Shell function definitions:
154# This seems to be the best place for them
155
156# func_mktempdir [string]
157# Make a temporary directory that won't clash with other running
158# libtool processes, and avoids race conditions if possible.  If
159# given, STRING is the basename for that directory.
160func_mktempdir ()
161{
162    my_template="${TMPDIR-/tmp}/${1-$progname}"
163
164    if test "$run" = ":"; then
165      # Return a directory name, but don't create it in dry-run mode
166      my_tmpdir="${my_template}-$$"
167    else
168
169      # If mktemp works, use that first and foremost
170      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
171
172      if test ! -d "$my_tmpdir"; then
173	# Failing that, at least try and use $RANDOM to avoid a race
174	my_tmpdir="${my_template}-${RANDOM-0}$$"
175
176	save_mktempdir_umask=`umask`
177	umask 0077
178	$mkdir "$my_tmpdir"
179	umask $save_mktempdir_umask
180      fi
181
182      # If we're not in dry-run mode, bomb out on failure
183      test -d "$my_tmpdir" || {
184        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
185	exit $EXIT_FAILURE
186      }
187    fi
188
189    $echo "X$my_tmpdir" | $Xsed
190}
191
192
193# func_win32_libid arg
194# return the library type of file 'arg'
195#
196# Need a lot of goo to handle *both* DLLs and import libs
197# Has to be a shell function in order to 'eat' the argument
198# that is supplied when $file_magic_command is called.
199func_win32_libid ()
200{
201  win32_libid_type="unknown"
202  win32_fileres=`file -L $1 2>/dev/null`
203  case $win32_fileres in
204  *ar\ archive\ import\ library*) # definitely import
205    win32_libid_type="x86 archive import"
206    ;;
207  *ar\ archive*) # could be an import, or static
208    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
209      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
210      win32_nmres=`eval $NM -f posix -A $1 | \
211	$SED -n -e '1,100{
212		/ I /{
213			s,.*,import,
214			p
215			q
216			}
217		}'`
218      case $win32_nmres in
219      import*)  win32_libid_type="x86 archive import";;
220      *)        win32_libid_type="x86 archive static";;
221      esac
222    fi
223    ;;
224  *DLL*)
225    win32_libid_type="x86 DLL"
226    ;;
227  *executable*) # but shell scripts are "executable" too...
228    case $win32_fileres in
229    *MS\ Windows\ PE\ Intel*)
230      win32_libid_type="x86 DLL"
231      ;;
232    esac
233    ;;
234  esac
235  $echo $win32_libid_type
236}
237
238
239# func_infer_tag arg
240# Infer tagged configuration to use if any are available and
241# if one wasn't chosen via the "--tag" command line option.
242# Only attempt this if the compiler in the base compile
243# command doesn't match the default compiler.
244# arg is usually of the form 'gcc ...'
245func_infer_tag ()
246{
247    if test -n "$available_tags" && test -z "$tagname"; then
248      CC_quoted=
249      for arg in $CC; do
250	case $arg in
251	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
252	  arg="\"$arg\""
253	  ;;
254	esac
255	CC_quoted="$CC_quoted $arg"
256      done
257      case $@ in
258      # Blanks in the command may have been stripped by the calling shell,
259      # but not from the CC environment variable when configure was run.
260      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
261      # Blanks at the start of $base_compile will cause this to fail
262      # if we don't check for them as well.
263      *)
264	for z in $available_tags; do
265	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
266	    # Evaluate the configuration.
267	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
268	    CC_quoted=
269	    for arg in $CC; do
270	    # Double-quote args containing other shell metacharacters.
271	    case $arg in
272	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
273	      arg="\"$arg\""
274	      ;;
275	    esac
276	    CC_quoted="$CC_quoted $arg"
277	  done
278	    # 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* | *-*-darwin*)
1709	  # The PATH hackery in wrapper scripts is required on Windows
1710	  # and Darwin 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`
3257	    age="$number_minor"
3258	    revision="$number_minor"
3259	    lt_irix_increment=no
3260	    ;;
3261	  esac
3262	  ;;
3263	no)
3264	  current="$2"
3265	  revision="$3"
3266	  age="$4"
3267	  ;;
3268	esac
3269
3270	# Check that each of the things are valid numbers.
3271	case $current in
3272	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]) ;;
3273	*)
3274	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3275	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3276	  exit $EXIT_FAILURE
3277	  ;;
3278	esac
3279
3280	case $revision in
3281	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]) ;;
3282	*)
3283	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3284	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3285	  exit $EXIT_FAILURE
3286	  ;;
3287	esac
3288
3289	case $age in
3290	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]) ;;
3291	*)
3292	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3293	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3294	  exit $EXIT_FAILURE
3295	  ;;
3296	esac
3297
3298	if test "$age" -gt "$current"; then
3299	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3300	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3301	  exit $EXIT_FAILURE
3302	fi
3303
3304	# Calculate the version variables.
3305	major=
3306	versuffix=
3307	verstring=
3308	case $version_type in
3309	none) ;;
3310
3311	darwin)
3312	  # Like Linux, but with the current version available in
3313	  # verstring for coding it into the library header
3314	  major=.`expr $current - $age`
3315	  versuffix="$major.$age.$revision"
3316	  # Darwin ld doesn't like 0 for these options...
3317	  minor_current=`expr $current + 1`
3318	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3319	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
3320	  ;;
3321
3322	freebsd-aout)
3323	  major=".$current"
3324	  versuffix=".$current.$revision";
3325	  ;;
3326
3327	freebsd-elf)
3328	  major=".$current"
3329	  versuffix=".$current";
3330	  ;;
3331
3332	irix | nonstopux)
3333	  if test "X$lt_irix_increment" = "Xno"; then
3334	    major=`expr $current - $age`
3335	  else
3336	    major=`expr $current - $age + 1`
3337	  fi
3338	  case $version_type in
3339	    nonstopux) verstring_prefix=nonstopux ;;
3340	    *)         verstring_prefix=sgi ;;
3341	  esac
3342	  verstring="$verstring_prefix$major.$revision"
3343
3344	  # Add in all the interfaces that we are compatible with.
3345	  loop=$revision
3346	  while test "$loop" -ne 0; do
3347	    iface=`expr $revision - $loop`
3348	    loop=`expr $loop - 1`
3349	    verstring="$verstring_prefix$major.$iface:$verstring"
3350	  done
3351
3352	  # Before this point, $major must not contain `.'.
3353	  major=.$major
3354	  versuffix="$major.$revision"
3355	  ;;
3356
3357	linux)
3358	  major=.`expr $current - $age`
3359	  versuffix="$major.$age.$revision"
3360	  ;;
3361
3362	osf)
3363	  major=.`expr $current - $age`
3364	  versuffix=".$current.$age.$revision"
3365	  verstring="$current.$age.$revision"
3366
3367	  # Add in all the interfaces that we are compatible with.
3368	  loop=$age
3369	  while test "$loop" -ne 0; do
3370	    iface=`expr $current - $loop`
3371	    loop=`expr $loop - 1`
3372	    verstring="$verstring:${iface}.0"
3373	  done
3374
3375	  # Make executables depend on our current version.
3376	  verstring="$verstring:${current}.0"
3377	  ;;
3378
3379	sunos)
3380	  major=".$current"
3381	  versuffix=".$current.$revision"
3382	  ;;
3383
3384	windows)
3385	  # Use '-' rather than '.', since we only want one
3386	  # extension on DOS 8.3 filesystems.
3387	  major=`expr $current - $age`
3388	  versuffix="-$major"
3389	  ;;
3390
3391	*)
3392	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3393	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3394	  exit $EXIT_FAILURE
3395	  ;;
3396	esac
3397
3398	# Clear the version info if we defaulted, and they specified a release.
3399	if test -z "$vinfo" && test -n "$release"; then
3400	  major=
3401	  case $version_type in
3402	  darwin)
3403	    # we can't check for "0.0" in archive_cmds due to quoting
3404	    # problems, so we reset it completely
3405	    verstring=
3406	    ;;
3407	  *)
3408	    verstring="0.0"
3409	    ;;
3410	  esac
3411	  if test "$need_version" = no; then
3412	    versuffix=
3413	  else
3414	    versuffix=".0.0"
3415	  fi
3416	fi
3417
3418	# Remove version info from name if versioning should be avoided
3419	if test "$avoid_version" = yes && test "$need_version" = no; then
3420	  major=
3421	  versuffix=
3422	  verstring=""
3423	fi
3424
3425	# Check to see if the archive will have undefined symbols.
3426	if test "$allow_undefined" = yes; then
3427	  if test "$allow_undefined_flag" = unsupported; then
3428	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3429	    build_libtool_libs=no
3430	    build_old_libs=yes
3431	  fi
3432	else
3433	  # Don't allow undefined symbols.
3434	  allow_undefined_flag="$no_undefined_flag"
3435	fi
3436      fi
3437
3438      if test "$mode" != relink; then
3439	# Remove our outputs, but don't remove object files since they
3440	# may have been created when compiling PIC objects.
3441	removelist=
3442	tempremovelist=`$echo "$output_objdir/*"`
3443	for p in $tempremovelist; do
3444	  case $p in
3445	    *.$objext)
3446	       ;;
3447	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3448	       if test "X$precious_files_regex" != "X"; then
3449	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3450	         then
3451		   continue
3452		 fi
3453	       fi
3454	       removelist="$removelist $p"
3455	       ;;
3456	    *) ;;
3457	  esac
3458	done
3459	if test -n "$removelist"; then
3460	  $show "${rm}r $removelist"
3461	  $run ${rm}r $removelist
3462	fi
3463      fi
3464
3465      # Now set the variables for building old libraries.
3466      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3467	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3468
3469	# Transform .lo files to .o files.
3470	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3471      fi
3472
3473      # Eliminate all temporary directories.
3474      #for path in $notinst_path; do
3475      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3476      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3477      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3478      #done
3479
3480      if test -n "$xrpath"; then
3481	# If the user specified any rpath flags, then add them.
3482	temp_xrpath=
3483	for libdir in $xrpath; do
3484	  temp_xrpath="$temp_xrpath -R$libdir"
3485	  case "$finalize_rpath " in
3486	  *" $libdir "*) ;;
3487	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3488	  esac
3489	done
3490	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3491	  dependency_libs="$temp_xrpath $dependency_libs"
3492	fi
3493      fi
3494
3495      # Make sure dlfiles contains only unique files that won't be dlpreopened
3496      old_dlfiles="$dlfiles"
3497      dlfiles=
3498      for lib in $old_dlfiles; do
3499	case " $dlprefiles $dlfiles " in
3500	*" $lib "*) ;;
3501	*) dlfiles="$dlfiles $lib" ;;
3502	esac
3503      done
3504
3505      # Make sure dlprefiles contains only unique files
3506      old_dlprefiles="$dlprefiles"
3507      dlprefiles=
3508      for lib in $old_dlprefiles; do
3509	case "$dlprefiles " in
3510	*" $lib "*) ;;
3511	*) dlprefiles="$dlprefiles $lib" ;;
3512	esac
3513      done
3514
3515      if test "$build_libtool_libs" = yes; then
3516	if test -n "$rpath"; then
3517	  case $host in
3518	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3519	    # these systems don't actually have a c library (as such)!
3520	    ;;
3521	  *-*-rhapsody* | *-*-darwin1.[012])
3522	    # Rhapsody C library is in the System framework
3523	    deplibs="$deplibs -framework System"
3524	    ;;
3525	  *-*-netbsd*)
3526	    # Don't link with libc until the a.out ld.so is fixed.
3527	    ;;
3528	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3529	    # Do not include libc due to us having libc/libc_r.
3530	    ;;
3531	  *-*-sco3.2v5* | *-*-sco5v6*)
3532	    # Causes problems with __ctype
3533	    ;;
3534	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3535	    # Compiler inserts libc in the correct place for threads to work
3536	    ;;
3537 	  *)
3538	    # Add libc to deplibs on all other systems if necessary.
3539	    if test "$build_libtool_need_lc" = "yes"; then
3540	      deplibs="$deplibs -lc"
3541	    fi
3542	    ;;
3543	  esac
3544	fi
3545
3546	# Transform deplibs into only deplibs that can be linked in shared.
3547	name_save=$name
3548	libname_save=$libname
3549	release_save=$release
3550	versuffix_save=$versuffix
3551	major_save=$major
3552	# I'm not sure if I'm treating the release correctly.  I think
3553	# release should show up in the -l (ie -lgmp5) so we don't want to
3554	# add it in twice.  Is that correct?
3555	release=""
3556	versuffix=""
3557	major=""
3558	newdeplibs=
3559	droppeddeps=no
3560	case $deplibs_check_method in
3561	pass_all)
3562	  # Don't check for shared/static.  Everything works.
3563	  # This might be a little naive.  We might want to check
3564	  # whether the library exists or not.  But this is on
3565	  # osf3 & osf4 and I'm not really sure... Just
3566	  # implementing what was already the behavior.
3567	  newdeplibs=$deplibs
3568	  ;;
3569	test_compile)
3570	  # This code stresses the "libraries are programs" paradigm to its
3571	  # limits. Maybe even breaks it.  We compile a program, linking it
3572	  # against the deplibs as a proxy for the library.  Then we can check
3573	  # whether they linked in statically or dynamically with ldd.
3574	  $rm conftest.c
3575	  cat > conftest.c <<EOF
3576	  int main() { return 0; }
3577EOF
3578	  $rm conftest
3579	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
3580	    ldd_output=`ldd conftest`
3581	    for i in $deplibs; do
3582	      name=`expr $i : '-l\(.*\)'`
3583	      # If $name is empty we are operating on a -L argument.
3584              if test "$name" != "" && test "$name" != "0"; then
3585		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3586		  case " $predeps $postdeps " in
3587		  *" $i "*)
3588		    newdeplibs="$newdeplibs $i"
3589		    i=""
3590		    ;;
3591		  esac
3592	        fi
3593		if test -n "$i" ; then
3594		  libname=`eval \\$echo \"$libname_spec\"`
3595		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3596		  set dummy $deplib_matches
3597		  deplib_match=$2
3598		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3599		    newdeplibs="$newdeplibs $i"
3600		  else
3601		    droppeddeps=yes
3602		    $echo
3603		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3604		    $echo "*** I have the capability to make that library automatically link in when"
3605		    $echo "*** you link to this library.  But I can only do this if you have a"
3606		    $echo "*** shared version of the library, which I believe you do not have"
3607		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3608		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3609		  fi
3610		fi
3611	      else
3612		newdeplibs="$newdeplibs $i"
3613	      fi
3614	    done
3615	  else
3616	    # Error occurred in the first compile.  Let's try to salvage
3617	    # the situation: Compile a separate program for each library.
3618	    for i in $deplibs; do
3619	      name=`expr $i : '-l\(.*\)'`
3620	      # If $name is empty we are operating on a -L argument.
3621              if test "$name" != "" && test "$name" != "0"; then
3622		$rm conftest
3623		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
3624		  ldd_output=`ldd conftest`
3625		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3626		    case " $predeps $postdeps " in
3627		    *" $i "*)
3628		      newdeplibs="$newdeplibs $i"
3629		      i=""
3630		      ;;
3631		    esac
3632		  fi
3633		  if test -n "$i" ; then
3634		    libname=`eval \\$echo \"$libname_spec\"`
3635		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3636		    set dummy $deplib_matches
3637		    deplib_match=$2
3638		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3639		      newdeplibs="$newdeplibs $i"
3640		    else
3641		      droppeddeps=yes
3642		      $echo
3643		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3644		      $echo "*** I have the capability to make that library automatically link in when"
3645		      $echo "*** you link to this library.  But I can only do this if you have a"
3646		      $echo "*** shared version of the library, which you do not appear to have"
3647		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3648		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3649		    fi
3650		  fi
3651		else
3652		  droppeddeps=yes
3653		  $echo
3654		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3655		  $echo "*** make it link in!  You will probably need to install it or some"
3656		  $echo "*** library that it depends on before this library will be fully"
3657		  $echo "*** functional.  Installing it before continuing would be even better."
3658		fi
3659	      else
3660		newdeplibs="$newdeplibs $i"
3661	      fi
3662	    done
3663	  fi
3664	  ;;
3665	file_magic*)
3666	  set dummy $deplibs_check_method
3667	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3668	  for a_deplib in $deplibs; do
3669	    name=`expr $a_deplib : '-l\(.*\)'`
3670	    # If $name is empty we are operating on a -L argument.
3671            if test "$name" != "" && test  "$name" != "0"; then
3672	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3673		case " $predeps $postdeps " in
3674		*" $a_deplib "*)
3675		  newdeplibs="$newdeplibs $a_deplib"
3676		  a_deplib=""
3677		  ;;
3678		esac
3679	      fi
3680	      if test -n "$a_deplib" ; then
3681		libname=`eval \\$echo \"$libname_spec\"`
3682		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3683		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3684		  for potent_lib in $potential_libs; do
3685		      # Follow soft links.
3686		      if ls -lLd "$potent_lib" 2>/dev/null \
3687			 | grep " -> " >/dev/null; then
3688			continue
3689		      fi
3690		      # The statement above tries to avoid entering an
3691		      # endless loop below, in case of cyclic links.
3692		      # We might still enter an endless loop, since a link
3693		      # loop can be closed while we follow links,
3694		      # but so what?
3695		      potlib="$potent_lib"
3696		      while test -h "$potlib" 2>/dev/null; do
3697			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3698			case $potliblink in
3699			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3700			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3701			esac
3702		      done
3703		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3704			 | ${SED} 10q \
3705			 | $EGREP "$file_magic_regex" > /dev/null; then
3706			newdeplibs="$newdeplibs $a_deplib"
3707			a_deplib=""
3708			break 2
3709		      fi
3710		  done
3711		done
3712	      fi
3713	      if test -n "$a_deplib" ; then
3714		droppeddeps=yes
3715		$echo
3716		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3717		$echo "*** I have the capability to make that library automatically link in when"
3718		$echo "*** you link to this library.  But I can only do this if you have a"
3719		$echo "*** shared version of the library, which you do not appear to have"
3720		$echo "*** because I did check the linker path looking for a file starting"
3721		if test -z "$potlib" ; then
3722		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3723		else
3724		  $echo "*** with $libname and none of the candidates passed a file format test"
3725		  $echo "*** using a file magic. Last file checked: $potlib"
3726		fi
3727	      fi
3728	    else
3729	      # Add a -L argument.
3730	      newdeplibs="$newdeplibs $a_deplib"
3731	    fi
3732	  done # Gone through all deplibs.
3733	  ;;
3734	match_pattern*)
3735	  set dummy $deplibs_check_method
3736	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3737	  for a_deplib in $deplibs; do
3738	    name=`expr $a_deplib : '-l\(.*\)'`
3739	    # If $name is empty we are operating on a -L argument.
3740	    if test -n "$name" && test "$name" != "0"; then
3741	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3742		case " $predeps $postdeps " in
3743		*" $a_deplib "*)
3744		  newdeplibs="$newdeplibs $a_deplib"
3745		  a_deplib=""
3746		  ;;
3747		esac
3748	      fi
3749	      if test -n "$a_deplib" ; then
3750		libname=`eval \\$echo \"$libname_spec\"`
3751		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3752		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3753		  for potent_lib in $potential_libs; do
3754		    potlib="$potent_lib" # see symlink-check above in file_magic test
3755		    if eval $echo \"$potent_lib\" 2>/dev/null \
3756		        | ${SED} 10q \
3757		        | $EGREP "$match_pattern_regex" > /dev/null; then
3758		      newdeplibs="$newdeplibs $a_deplib"
3759		      a_deplib=""
3760		      break 2
3761		    fi
3762		  done
3763		done
3764	      fi
3765	      if test -n "$a_deplib" ; then
3766		droppeddeps=yes
3767		$echo
3768		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3769		$echo "*** I have the capability to make that library automatically link in when"
3770		$echo "*** you link to this library.  But I can only do this if you have a"
3771		$echo "*** shared version of the library, which you do not appear to have"
3772		$echo "*** because I did check the linker path looking for a file starting"
3773		if test -z "$potlib" ; then
3774		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3775		else
3776		  $echo "*** with $libname and none of the candidates passed a file format test"
3777		  $echo "*** using a regex pattern. Last file checked: $potlib"
3778		fi
3779	      fi
3780	    else
3781	      # Add a -L argument.
3782	      newdeplibs="$newdeplibs $a_deplib"
3783	    fi
3784	  done # Gone through all deplibs.
3785	  ;;
3786	none | unknown | *)
3787	  newdeplibs=""
3788	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3789	    -e 's/ -[LR][^ ]*//g'`
3790	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3791	    for i in $predeps $postdeps ; do
3792	      # can't use Xsed below, because $i might contain '/'
3793	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3794	    done
3795	  fi
3796	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3797	    | grep . >/dev/null; then
3798	    $echo
3799	    if test "X$deplibs_check_method" = "Xnone"; then
3800	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3801	    else
3802	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3803	    fi
3804	    $echo "*** All declared inter-library dependencies are being dropped."
3805	    droppeddeps=yes
3806	  fi
3807	  ;;
3808	esac
3809	versuffix=$versuffix_save
3810	major=$major_save
3811	release=$release_save
3812	libname=$libname_save
3813	name=$name_save
3814
3815	case $host in
3816	*-*-rhapsody* | *-*-darwin1.[012])
3817	  # On Rhapsody replace the C library is the System framework
3818	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3819	  ;;
3820	esac
3821
3822	if test "$droppeddeps" = yes; then
3823	  if test "$module" = yes; then
3824	    $echo
3825	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3826	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3827	    $echo "*** a static module, that should work as long as the dlopening"
3828	    $echo "*** application is linked with the -dlopen flag."
3829	    if test -z "$global_symbol_pipe"; then
3830	      $echo
3831	      $echo "*** However, this would only work if libtool was able to extract symbol"
3832	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3833	      $echo "*** not find such a program.  So, this module is probably useless."
3834	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3835	    fi
3836	    if test "$build_old_libs" = no; then
3837	      oldlibs="$output_objdir/$libname.$libext"
3838	      build_libtool_libs=module
3839	      build_old_libs=yes
3840	    else
3841	      build_libtool_libs=no
3842	    fi
3843	  else
3844	    $echo "*** The inter-library dependencies that have been dropped here will be"
3845	    $echo "*** automatically added whenever a program is linked with this library"
3846	    $echo "*** or is declared to -dlopen it."
3847
3848	    if test "$allow_undefined" = no; then
3849	      $echo
3850	      $echo "*** Since this library must not contain undefined symbols,"
3851	      $echo "*** because either the platform does not support them or"
3852	      $echo "*** it was explicitly requested with -no-undefined,"
3853	      $echo "*** libtool will only create a static version of it."
3854	      if test "$build_old_libs" = no; then
3855		oldlibs="$output_objdir/$libname.$libext"
3856		build_libtool_libs=module
3857		build_old_libs=yes
3858	      else
3859		build_libtool_libs=no
3860	      fi
3861	    fi
3862	  fi
3863	fi
3864	# Done checking deplibs!
3865	deplibs=$newdeplibs
3866      fi
3867
3868
3869      # move library search paths that coincide with paths to not yet
3870      # installed libraries to the beginning of the library search list
3871      new_libs=
3872      for path in $notinst_path; do
3873	case " $new_libs " in
3874	*" -L$path/$objdir "*) ;;
3875	*)
3876	  case " $deplibs " in
3877	  *" -L$path/$objdir "*)
3878	    new_libs="$new_libs -L$path/$objdir" ;;
3879	  esac
3880	  ;;
3881	esac
3882      done
3883      for deplib in $deplibs; do
3884	case $deplib in
3885	-L*)
3886	  case " $new_libs " in
3887	  *" $deplib "*) ;;
3888	  *) new_libs="$new_libs $deplib" ;;
3889	  esac
3890	  ;;
3891	*) new_libs="$new_libs $deplib" ;;
3892	esac
3893      done
3894      deplibs="$new_libs"
3895
3896
3897      # All the library-specific variables (install_libdir is set above).
3898      library_names=
3899      old_library=
3900      dlname=
3901
3902      # Test again, we may have decided not to build it any more
3903      if test "$build_libtool_libs" = yes; then
3904	if test "$hardcode_into_libs" = yes; then
3905	  # Hardcode the library paths
3906	  hardcode_libdirs=
3907	  dep_rpath=
3908	  rpath="$finalize_rpath"
3909	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3910	  for libdir in $rpath; do
3911	    if test -n "$hardcode_libdir_flag_spec"; then
3912	      if test -n "$hardcode_libdir_separator"; then
3913		if test -z "$hardcode_libdirs"; then
3914		  hardcode_libdirs="$libdir"
3915		else
3916		  # Just accumulate the unique libdirs.
3917		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3918		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3919		    ;;
3920		  *)
3921		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3922		    ;;
3923		  esac
3924		fi
3925	      else
3926		eval flag=\"$hardcode_libdir_flag_spec\"
3927		dep_rpath="$dep_rpath $flag"
3928	      fi
3929	    elif test -n "$runpath_var"; then
3930	      case "$perm_rpath " in
3931	      *" $libdir "*) ;;
3932	      *) perm_rpath="$perm_rpath $libdir" ;;
3933	      esac
3934	    fi
3935	  done
3936	  # Substitute the hardcoded libdirs into the rpath.
3937	  if test -n "$hardcode_libdir_separator" &&
3938	     test -n "$hardcode_libdirs"; then
3939	    libdir="$hardcode_libdirs"
3940	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3941	      case $archive_cmds in
3942	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
3943	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
3944	      esac
3945	    else
3946	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3947	    fi
3948	  fi
3949	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3950	    # We should set the runpath_var.
3951	    rpath=
3952	    for dir in $perm_rpath; do
3953	      rpath="$rpath$dir:"
3954	    done
3955	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3956	  fi
3957	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3958	fi
3959
3960	shlibpath="$finalize_shlibpath"
3961	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3962	if test -n "$shlibpath"; then
3963	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3964	fi
3965
3966	# Get the real and link names of the library.
3967	eval shared_ext=\"$shrext_cmds\"
3968	eval library_names=\"$library_names_spec\"
3969	set dummy $library_names
3970	realname="$2"
3971	shift; shift
3972
3973	if test -n "$soname_spec"; then
3974	  eval soname=\"$soname_spec\"
3975	else
3976	  soname="$realname"
3977	fi
3978	if test -z "$dlname"; then
3979	  dlname=$soname
3980	fi
3981
3982	lib="$output_objdir/$realname"
3983	linknames=
3984	for link
3985	do
3986	  linknames="$linknames $link"
3987	done
3988
3989	# Use standard objects if they are pic
3990	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3991
3992	# Prepare the list of exported symbols
3993	if test -z "$export_symbols"; then
3994	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3995	    $show "generating symbol list for \`$libname.la'"
3996	    export_symbols="$output_objdir/$libname.exp"
3997	    $run $rm $export_symbols
3998	    cmds=$export_symbols_cmds
3999	    save_ifs="$IFS"; IFS='~'
4000	    for cmd in $cmds; do
4001	      IFS="$save_ifs"
4002	      eval cmd=\"$cmd\"
4003	      if len=`expr "X$cmd" : ".*"` &&
4004	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4005	        $show "$cmd"
4006	        $run eval "$cmd" || exit $?
4007	        skipped_export=false
4008	      else
4009	        # The command line is too long to execute in one step.
4010	        $show "using reloadable object file for export list..."
4011	        skipped_export=:
4012		# Break out early, otherwise skipped_export may be
4013		# set to false by a later but shorter cmd.
4014		break
4015	      fi
4016	    done
4017	    IFS="$save_ifs"
4018	    if test -n "$export_symbols_regex"; then
4019	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
4020	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
4021	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
4022	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
4023	    fi
4024	  fi
4025	fi
4026
4027	if test -n "$export_symbols" && test -n "$include_expsyms"; then
4028	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
4029	fi
4030
4031	tmp_deplibs=
4032	for test_deplib in $deplibs; do
4033		case " $convenience " in
4034		*" $test_deplib "*) ;;
4035		*)
4036			tmp_deplibs="$tmp_deplibs $test_deplib"
4037			;;
4038		esac
4039	done
4040	deplibs="$tmp_deplibs"
4041
4042	if test -n "$convenience"; then
4043	  if test -n "$whole_archive_flag_spec"; then
4044	    save_libobjs=$libobjs
4045	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4046	  else
4047	    gentop="$output_objdir/${outputname}x"
4048	    generated="$generated $gentop"
4049
4050	    func_extract_archives $gentop $convenience
4051	    libobjs="$libobjs $func_extract_archives_result"
4052	  fi
4053	fi
4054
4055	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4056	  eval flag=\"$thread_safe_flag_spec\"
4057	  linker_flags="$linker_flags $flag"
4058	fi
4059
4060	# Make a backup of the uninstalled library when relinking
4061	if test "$mode" = relink; then
4062	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4063	fi
4064
4065	# Do each of the archive commands.
4066	if test "$module" = yes && test -n "$module_cmds" ; then
4067	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4068	    eval test_cmds=\"$module_expsym_cmds\"
4069	    cmds=$module_expsym_cmds
4070	  else
4071	    eval test_cmds=\"$module_cmds\"
4072	    cmds=$module_cmds
4073	  fi
4074	else
4075	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4076	  eval test_cmds=\"$archive_expsym_cmds\"
4077	  cmds=$archive_expsym_cmds
4078	else
4079	  eval test_cmds=\"$archive_cmds\"
4080	  cmds=$archive_cmds
4081	  fi
4082	fi
4083
4084	if test "X$skipped_export" != "X:" &&
4085	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4086	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4087	  :
4088	else
4089	  # The command line is too long to link in one step, link piecewise.
4090	  $echo "creating reloadable object files..."
4091
4092	  # Save the value of $output and $libobjs because we want to
4093	  # use them later.  If we have whole_archive_flag_spec, we
4094	  # want to use save_libobjs as it was before
4095	  # whole_archive_flag_spec was expanded, because we can't
4096	  # assume the linker understands whole_archive_flag_spec.
4097	  # This may have to be revisited, in case too many
4098	  # convenience libraries get linked in and end up exceeding
4099	  # the spec.
4100	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4101	    save_libobjs=$libobjs
4102	  fi
4103	  save_output=$output
4104	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4105
4106	  # Clear the reloadable object creation command queue and
4107	  # initialize k to one.
4108	  test_cmds=
4109	  concat_cmds=
4110	  objlist=
4111	  delfiles=
4112	  last_robj=
4113	  k=1
4114	  output=$output_objdir/$output_la-${k}.$objext
4115	  # Loop over the list of objects to be linked.
4116	  for obj in $save_libobjs
4117	  do
4118	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4119	    if test "X$objlist" = X ||
4120	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4121		 test "$len" -le "$max_cmd_len"; }; then
4122	      objlist="$objlist $obj"
4123	    else
4124	      # The command $test_cmds is almost too long, add a
4125	      # command to the queue.
4126	      if test "$k" -eq 1 ; then
4127		# The first file doesn't have a previous command to add.
4128		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4129	      else
4130		# All subsequent reloadable object files will link in
4131		# the last one created.
4132		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4133	      fi
4134	      last_robj=$output_objdir/$output_la-${k}.$objext
4135	      k=`expr $k + 1`
4136	      output=$output_objdir/$output_la-${k}.$objext
4137	      objlist=$obj
4138	      len=1
4139	    fi
4140	  done
4141	  # Handle the remaining objects by creating one last
4142	  # reloadable object file.  All subsequent reloadable object
4143	  # files will link in the last one created.
4144	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4145	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4146
4147	  if ${skipped_export-false}; then
4148	    $show "generating symbol list for \`$libname.la'"
4149	    export_symbols="$output_objdir/$libname.exp"
4150	    $run $rm $export_symbols
4151	    libobjs=$output
4152	    # Append the command to create the export file.
4153	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4154          fi
4155
4156	  # Set up a command to remove the reloadable object files
4157	  # after they are used.
4158	  i=0
4159	  while test "$i" -lt "$k"
4160	  do
4161	    i=`expr $i + 1`
4162	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4163	  done
4164
4165	  $echo "creating a temporary reloadable object file: $output"
4166
4167	  # Loop through the commands generated above and execute them.
4168	  save_ifs="$IFS"; IFS='~'
4169	  for cmd in $concat_cmds; do
4170	    IFS="$save_ifs"
4171	    $show "$cmd"
4172	    $run eval "$cmd" || exit $?
4173	  done
4174	  IFS="$save_ifs"
4175
4176	  libobjs=$output
4177	  # Restore the value of output.
4178	  output=$save_output
4179
4180	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4181	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4182	  fi
4183	  # Expand the library linking commands again to reset the
4184	  # value of $libobjs for piecewise linking.
4185
4186	  # Do each of the archive commands.
4187	  if test "$module" = yes && test -n "$module_cmds" ; then
4188	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4189	      cmds=$module_expsym_cmds
4190	    else
4191	      cmds=$module_cmds
4192	    fi
4193	  else
4194	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4195	    cmds=$archive_expsym_cmds
4196	  else
4197	    cmds=$archive_cmds
4198	    fi
4199	  fi
4200
4201	  # Append the command to remove the reloadable object files
4202	  # to the just-reset $cmds.
4203	  eval cmds=\"\$cmds~\$rm $delfiles\"
4204	fi
4205	save_ifs="$IFS"; IFS='~'
4206	for cmd in $cmds; do
4207	  IFS="$save_ifs"
4208	  eval cmd=\"$cmd\"
4209	  $show "$cmd"
4210	  $run eval "$cmd" || {
4211	    lt_exit=$?
4212
4213	    # Restore the uninstalled library and exit
4214	    if test "$mode" = relink; then
4215	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4216	    fi
4217
4218	    exit $lt_exit
4219	  }
4220	done
4221	IFS="$save_ifs"
4222
4223	# Restore the uninstalled library and exit
4224	if test "$mode" = relink; then
4225	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4226
4227	  if test -n "$convenience"; then
4228	    if test -z "$whole_archive_flag_spec"; then
4229	      $show "${rm}r $gentop"
4230	      $run ${rm}r "$gentop"
4231	    fi
4232	  fi
4233
4234	  exit $EXIT_SUCCESS
4235	fi
4236
4237	# Create links to the real library.
4238	for linkname in $linknames; do
4239	  if test "$realname" != "$linkname"; then
4240	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4241	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4242	  fi
4243	done
4244
4245	# If -module or -export-dynamic was specified, set the dlname.
4246	if test "$module" = yes || test "$export_dynamic" = yes; then
4247	  # On all known operating systems, these are identical.
4248	  dlname="$soname"
4249	fi
4250      fi
4251      ;;
4252
4253    obj)
4254      if test -n "$deplibs"; then
4255	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4256      fi
4257
4258      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4259	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4260      fi
4261
4262      if test -n "$rpath"; then
4263	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4264      fi
4265
4266      if test -n "$xrpath"; then
4267	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4268      fi
4269
4270      if test -n "$vinfo"; then
4271	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4272      fi
4273
4274      if test -n "$release"; then
4275	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4276      fi
4277
4278      case $output in
4279      *.lo)
4280	if test -n "$objs$old_deplibs"; then
4281	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4282	  exit $EXIT_FAILURE
4283	fi
4284	libobj="$output"
4285	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4286	;;
4287      *)
4288	libobj=
4289	obj="$output"
4290	;;
4291      esac
4292
4293      # Delete the old objects.
4294      $run $rm $obj $libobj
4295
4296      # Objects from convenience libraries.  This assumes
4297      # single-version convenience libraries.  Whenever we create
4298      # different ones for PIC/non-PIC, this we'll have to duplicate
4299      # the extraction.
4300      reload_conv_objs=
4301      gentop=
4302      # reload_cmds runs $LD directly, so let us get rid of
4303      # -Wl from whole_archive_flag_spec and hope we can get by with
4304      # turning comma into space..
4305      wl=
4306
4307      if test -n "$convenience"; then
4308	if test -n "$whole_archive_flag_spec"; then
4309	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
4310	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
4311	else
4312	  gentop="$output_objdir/${obj}x"
4313	  generated="$generated $gentop"
4314
4315	  func_extract_archives $gentop $convenience
4316	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4317	fi
4318      fi
4319
4320      # Create the old-style object.
4321      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
4322
4323      output="$obj"
4324      cmds=$reload_cmds
4325      save_ifs="$IFS"; IFS='~'
4326      for cmd in $cmds; do
4327	IFS="$save_ifs"
4328	eval cmd=\"$cmd\"
4329	$show "$cmd"
4330	$run eval "$cmd" || exit $?
4331      done
4332      IFS="$save_ifs"
4333
4334      # Exit if we aren't doing a library object file.
4335      if test -z "$libobj"; then
4336	if test -n "$gentop"; then
4337	  $show "${rm}r $gentop"
4338	  $run ${rm}r $gentop
4339	fi
4340
4341	exit $EXIT_SUCCESS
4342      fi
4343
4344      if test "$build_libtool_libs" != yes; then
4345	if test -n "$gentop"; then
4346	  $show "${rm}r $gentop"
4347	  $run ${rm}r $gentop
4348	fi
4349
4350	# Create an invalid libtool object if no PIC, so that we don't
4351	# accidentally link it into a program.
4352	# $show "echo timestamp > $libobj"
4353	# $run eval "echo timestamp > $libobj" || exit $?
4354	exit $EXIT_SUCCESS
4355      fi
4356
4357      if test -n "$pic_flag" || test "$pic_mode" != default; then
4358	# Only do commands if we really have different PIC objects.
4359	reload_objs="$libobjs $reload_conv_objs"
4360	output="$libobj"
4361	cmds=$reload_cmds
4362	save_ifs="$IFS"; IFS='~'
4363	for cmd in $cmds; do
4364	  IFS="$save_ifs"
4365	  eval cmd=\"$cmd\"
4366	  $show "$cmd"
4367	  $run eval "$cmd" || exit $?
4368	done
4369	IFS="$save_ifs"
4370      fi
4371
4372      if test -n "$gentop"; then
4373	$show "${rm}r $gentop"
4374	$run ${rm}r $gentop
4375      fi
4376
4377      exit $EXIT_SUCCESS
4378      ;;
4379
4380    prog)
4381      case $host in
4382	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4383      esac
4384      if test -n "$vinfo"; then
4385	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4386      fi
4387
4388      if test -n "$release"; then
4389	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4390      fi
4391
4392      if test "$preload" = yes; then
4393	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4394	   test "$dlopen_self_static" = unknown; then
4395	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4396	fi
4397      fi
4398
4399      case $host in
4400      *-*-rhapsody* | *-*-darwin1.[012])
4401	# On Rhapsody replace the C library is the System framework
4402	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4403	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4404	;;
4405      esac
4406
4407      case $host in
4408      *darwin*)
4409        # Don't allow lazy linking, it breaks C++ global constructors
4410        if test "$tagname" = CXX ; then
4411        compile_command="$compile_command ${wl}-bind_at_load"
4412        finalize_command="$finalize_command ${wl}-bind_at_load"
4413        fi
4414        ;;
4415      esac
4416
4417
4418      # move library search paths that coincide with paths to not yet
4419      # installed libraries to the beginning of the library search list
4420      new_libs=
4421      for path in $notinst_path; do
4422	case " $new_libs " in
4423	*" -L$path/$objdir "*) ;;
4424	*)
4425	  case " $compile_deplibs " in
4426	  *" -L$path/$objdir "*)
4427	    new_libs="$new_libs -L$path/$objdir" ;;
4428	  esac
4429	  ;;
4430	esac
4431      done
4432      for deplib in $compile_deplibs; do
4433	case $deplib in
4434	-L*)
4435	  case " $new_libs " in
4436	  *" $deplib "*) ;;
4437	  *) new_libs="$new_libs $deplib" ;;
4438	  esac
4439	  ;;
4440	*) new_libs="$new_libs $deplib" ;;
4441	esac
4442      done
4443      compile_deplibs="$new_libs"
4444
4445
4446      compile_command="$compile_command $compile_deplibs"
4447      finalize_command="$finalize_command $finalize_deplibs"
4448
4449      if test -n "$rpath$xrpath"; then
4450	# If the user specified any rpath flags, then add them.
4451	for libdir in $rpath $xrpath; do
4452	  # This is the magic to use -rpath.
4453	  case "$finalize_rpath " in
4454	  *" $libdir "*) ;;
4455	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4456	  esac
4457	done
4458      fi
4459
4460      # Now hardcode the library paths
4461      rpath=
4462      hardcode_libdirs=
4463      for libdir in $compile_rpath $finalize_rpath; do
4464	if test -n "$hardcode_libdir_flag_spec"; then
4465	  if test -n "$hardcode_libdir_separator"; then
4466	    if test -z "$hardcode_libdirs"; then
4467	      hardcode_libdirs="$libdir"
4468	    else
4469	      # Just accumulate the unique libdirs.
4470	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4471	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4472		;;
4473	      *)
4474		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4475		;;
4476	      esac
4477	    fi
4478	  else
4479	    eval flag=\"$hardcode_libdir_flag_spec\"
4480	    rpath="$rpath $flag"
4481	  fi
4482	elif test -n "$runpath_var"; then
4483	  case "$perm_rpath " in
4484	  *" $libdir "*) ;;
4485	  *) perm_rpath="$perm_rpath $libdir" ;;
4486	  esac
4487	fi
4488	case $host in
4489	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4490	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4491	  case :$dllsearchpath: in
4492	  *":$libdir:"*) ;;
4493	  *) dllsearchpath="$dllsearchpath:$libdir";;
4494	  esac
4495	  case :$dllsearchpath: in
4496	  *":$testbindir:"*) ;;
4497	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4498	  esac
4499	  ;;
4500	esac
4501      done
4502      # Substitute the hardcoded libdirs into the rpath.
4503      if test -n "$hardcode_libdir_separator" &&
4504	 test -n "$hardcode_libdirs"; then
4505	libdir="$hardcode_libdirs"
4506	eval rpath=\" $hardcode_libdir_flag_spec\"
4507      fi
4508      compile_rpath="$rpath"
4509
4510      rpath=
4511      hardcode_libdirs=
4512      for libdir in $finalize_rpath; do
4513	if test -n "$hardcode_libdir_flag_spec"; then
4514	  if test -n "$hardcode_libdir_separator"; then
4515	    if test -z "$hardcode_libdirs"; then
4516	      hardcode_libdirs="$libdir"
4517	    else
4518	      # Just accumulate the unique libdirs.
4519	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4520	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4521		;;
4522	      *)
4523		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4524		;;
4525	      esac
4526	    fi
4527	  else
4528	    eval flag=\"$hardcode_libdir_flag_spec\"
4529	    rpath="$rpath $flag"
4530	  fi
4531	elif test -n "$runpath_var"; then
4532	  case "$finalize_perm_rpath " in
4533	  *" $libdir "*) ;;
4534	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4535	  esac
4536	fi
4537      done
4538      # Substitute the hardcoded libdirs into the rpath.
4539      if test -n "$hardcode_libdir_separator" &&
4540	 test -n "$hardcode_libdirs"; then
4541	libdir="$hardcode_libdirs"
4542	eval rpath=\" $hardcode_libdir_flag_spec\"
4543      fi
4544      finalize_rpath="$rpath"
4545
4546      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4547	# Transform all the library objects into standard objects.
4548	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4549	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4550      fi
4551
4552      dlsyms=
4553      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4554	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4555	  dlsyms="${outputname}S.c"
4556	else
4557	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4558	fi
4559      fi
4560
4561      if test -n "$dlsyms"; then
4562	case $dlsyms in
4563	"") ;;
4564	*.c)
4565	  # Discover the nlist of each of the dlfiles.
4566	  nlist="$output_objdir/${outputname}.nm"
4567
4568	  $show "$rm $nlist ${nlist}S ${nlist}T"
4569	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4570
4571	  # Parse the name list into a source file.
4572	  $show "creating $output_objdir/$dlsyms"
4573
4574	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4575/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4576/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4577
4578#ifdef __cplusplus
4579extern \"C\" {
4580#endif
4581
4582/* Prevent the only kind of declaration conflicts we can make. */
4583#define lt_preloaded_symbols some_other_symbol
4584
4585/* External symbol declarations for the compiler. */\
4586"
4587
4588	  if test "$dlself" = yes; then
4589	    $show "generating symbol list for \`$output'"
4590
4591	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4592
4593	    # Add our own program objects to the symbol list.
4594	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4595	    for arg in $progfiles; do
4596	      $show "extracting global C symbols from \`$arg'"
4597	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4598	    done
4599
4600	    if test -n "$exclude_expsyms"; then
4601	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4602	      $run eval '$mv "$nlist"T "$nlist"'
4603	    fi
4604
4605	    if test -n "$export_symbols_regex"; then
4606	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4607	      $run eval '$mv "$nlist"T "$nlist"'
4608	    fi
4609
4610	    # Prepare the list of exported symbols
4611	    if test -z "$export_symbols"; then
4612	      export_symbols="$output_objdir/$outputname.exp"
4613	      $run $rm $export_symbols
4614	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4615              case $host in
4616              *cygwin* | *mingw* )
4617	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4618		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4619                ;;
4620              esac
4621	    else
4622	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4623	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4624	      $run eval 'mv "$nlist"T "$nlist"'
4625              case $host in
4626              *cygwin* | *mingw* )
4627	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4628		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4629                ;;
4630              esac
4631	    fi
4632	  fi
4633
4634	  for arg in $dlprefiles; do
4635	    $show "extracting global C symbols from \`$arg'"
4636	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4637	    $run eval '$echo ": $name " >> "$nlist"'
4638	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4639	  done
4640
4641	  if test -z "$run"; then
4642	    # Make sure we have at least an empty file.
4643	    test -f "$nlist" || : > "$nlist"
4644
4645	    if test -n "$exclude_expsyms"; then
4646	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4647	      $mv "$nlist"T "$nlist"
4648	    fi
4649
4650	    # Try sorting and uniquifying the output.
4651	    if grep -v "^: " < "$nlist" |
4652		if sort -k 3 </dev/null >/dev/null 2>&1; then
4653		  sort -k 3
4654		else
4655		  sort +2
4656		fi |
4657		uniq > "$nlist"S; then
4658	      :
4659	    else
4660	      grep -v "^: " < "$nlist" > "$nlist"S
4661	    fi
4662
4663	    if test -f "$nlist"S; then
4664	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4665	    else
4666	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4667	    fi
4668
4669	    $echo >> "$output_objdir/$dlsyms" "\
4670
4671#undef lt_preloaded_symbols
4672
4673#if defined (__STDC__) && __STDC__
4674# define lt_ptr void *
4675#else
4676# define lt_ptr char *
4677# define const
4678#endif
4679
4680/* The mapping between symbol names and symbols. */
4681"
4682
4683	    case $host in
4684	    *cygwin* | *mingw* )
4685	  $echo >> "$output_objdir/$dlsyms" "\
4686/* DATA imports from DLLs on WIN32 can't be const, because
4687   runtime relocations are performed -- see ld's documentation
4688   on pseudo-relocs */
4689struct {
4690"
4691	      ;;
4692	    * )
4693	  $echo >> "$output_objdir/$dlsyms" "\
4694const struct {
4695"
4696	      ;;
4697	    esac
4698
4699
4700	  $echo >> "$output_objdir/$dlsyms" "\
4701  const char *name;
4702  lt_ptr address;
4703}
4704lt_preloaded_symbols[] =
4705{\
4706"
4707
4708	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4709
4710	    $echo >> "$output_objdir/$dlsyms" "\
4711  {0, (lt_ptr) 0}
4712};
4713
4714/* This works around a problem in FreeBSD linker */
4715#ifdef FREEBSD_WORKAROUND
4716static const void *lt_preloaded_setup() {
4717  return lt_preloaded_symbols;
4718}
4719#endif
4720
4721#ifdef __cplusplus
4722}
4723#endif\
4724"
4725	  fi
4726
4727	  pic_flag_for_symtable=
4728	  case $host in
4729	  # compiling the symbol table file with pic_flag works around
4730	  # a FreeBSD bug that causes programs to crash when -lm is
4731	  # linked before any other PIC object.  But we must not use
4732	  # pic_flag when linking with -static.  The problem exists in
4733	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4734	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4735	    case "$compile_command " in
4736	    *" -static "*) ;;
4737	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4738	    esac;;
4739	  *-*-hpux*)
4740	    case "$compile_command " in
4741	    *" -static "*) ;;
4742	    *) pic_flag_for_symtable=" $pic_flag";;
4743	    esac
4744	  esac
4745
4746	  # Now compile the dynamic symbol file.
4747	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4748	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4749
4750	  # Clean up the generated files.
4751	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4752	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4753
4754	  # Transform the symbol file into the correct name.
4755          case $host in
4756          *cygwin* | *mingw* )
4757            if test -f "$output_objdir/${outputname}.def" ; then
4758              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4759              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4760            else
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             fi
4764            ;;
4765          * )
4766            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4767            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4768            ;;
4769          esac
4770	  ;;
4771	*)
4772	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4773	  exit $EXIT_FAILURE
4774	  ;;
4775	esac
4776      else
4777	# We keep going just in case the user didn't refer to
4778	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4779	# really was required.
4780
4781	# Nullify the symbol file.
4782	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4783	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4784      fi
4785
4786      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4787	# Replace the output file specification.
4788	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
4789	link_command="$compile_command$compile_rpath"
4790
4791	# We have no uninstalled library dependencies, so finalize right now.
4792	$show "$link_command"
4793	$run eval "$link_command"
4794	exit_status=$?
4795
4796	# Delete the generated files.
4797	if test -n "$dlsyms"; then
4798	  $show "$rm $output_objdir/${outputname}S.${objext}"
4799	  $run $rm "$output_objdir/${outputname}S.${objext}"
4800	fi
4801
4802	exit $exit_status
4803      fi
4804
4805      if test -n "$shlibpath_var"; then
4806	# We should set the shlibpath_var
4807	rpath=
4808	for dir in $temp_rpath; do
4809	  case $dir in
4810	  [\\/]* | [A-Za-z]:[\\/]*)
4811	    # Absolute path.
4812	    rpath="$rpath$dir:"
4813	    ;;
4814	  *)
4815	    # Relative path: add a thisdir entry.
4816	    rpath="$rpath\$thisdir/$dir:"
4817	    ;;
4818	  esac
4819	done
4820	temp_rpath="$rpath"
4821      fi
4822
4823      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4824	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4825      fi
4826      if test -n "$finalize_shlibpath"; then
4827	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4828      fi
4829
4830      compile_var=
4831      finalize_var=
4832      if test -n "$runpath_var"; then
4833	if test -n "$perm_rpath"; then
4834	  # We should set the runpath_var.
4835	  rpath=
4836	  for dir in $perm_rpath; do
4837	    rpath="$rpath$dir:"
4838	  done
4839	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4840	fi
4841	if test -n "$finalize_perm_rpath"; then
4842	  # We should set the runpath_var.
4843	  rpath=
4844	  for dir in $finalize_perm_rpath; do
4845	    rpath="$rpath$dir:"
4846	  done
4847	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4848	fi
4849      fi
4850
4851      if test "$no_install" = yes; then
4852	# We don't need to create a wrapper script.
4853	link_command="$compile_var$compile_command$compile_rpath"
4854	# Replace the output file specification.
4855	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4856	# Delete the old output file.
4857	$run $rm $output
4858	# Link the executable and exit
4859	$show "$link_command"
4860	$run eval "$link_command" || exit $?
4861	exit $EXIT_SUCCESS
4862      fi
4863
4864      if test "$hardcode_action" = relink; then
4865	# Fast installation is not supported
4866	link_command="$compile_var$compile_command$compile_rpath"
4867	relink_command="$finalize_var$finalize_command$finalize_rpath"
4868
4869	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4870	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4871      else
4872	if test "$fast_install" != no; then
4873	  link_command="$finalize_var$compile_command$finalize_rpath"
4874	  if test "$fast_install" = yes; then
4875	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
4876	  else
4877	    # fast_install is set to needless
4878	    relink_command=
4879	  fi
4880	else
4881	  link_command="$compile_var$compile_command$compile_rpath"
4882	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4883	fi
4884      fi
4885
4886      # Replace the output file specification.
4887      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4888
4889      # Delete the old output files.
4890      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4891
4892      $show "$link_command"
4893      $run eval "$link_command" || exit $?
4894
4895      # Now create the wrapper script.
4896      $show "creating $output"
4897
4898      # Quote the relink command for shipping.
4899      if test -n "$relink_command"; then
4900	# Preserve any variables that may affect compiler behavior
4901	for var in $variables_saved_for_relink; do
4902	  if eval test -z \"\${$var+set}\"; then
4903	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4904	  elif eval var_value=\$$var; test -z "$var_value"; then
4905	    relink_command="$var=; export $var; $relink_command"
4906	  else
4907	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4908	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4909	  fi
4910	done
4911	relink_command="(cd `pwd`; $relink_command)"
4912	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
4913      fi
4914
4915      # Quote $echo for shipping.
4916      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4917	case $progpath in
4918	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4919	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4920	esac
4921	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4922      else
4923	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4924      fi
4925
4926      # Only actually do things if our run command is non-null.
4927      if test -z "$run"; then
4928	# win32 will think the script is a binary if it has
4929	# a .exe suffix, so we strip it off here.
4930	case $output in
4931	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4932	esac
4933	# test for cygwin because mv fails w/o .exe extensions
4934	case $host in
4935	  *cygwin*)
4936	    exeext=.exe
4937	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4938	  *) exeext= ;;
4939	esac
4940	case $host in
4941	  *cygwin* | *mingw* )
4942            output_name=`basename $output`
4943            output_path=`dirname $output`
4944            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4945            cwrapper="$output_path/$output_name.exe"
4946            $rm $cwrappersource $cwrapper
4947            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4948
4949	    cat > $cwrappersource <<EOF
4950
4951/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4952   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4953
4954   The $output program cannot be directly executed until all the libtool
4955   libraries that it depends on are installed.
4956
4957   This wrapper executable should never be moved out of the build directory.
4958   If it is, it will not operate correctly.
4959
4960   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4961   but could eventually absorb all of the scripts functionality and
4962   exec $objdir/$outputname directly.
4963*/
4964EOF
4965	    cat >> $cwrappersource<<"EOF"
4966#include <stdio.h>
4967#include <stdlib.h>
4968#include <unistd.h>
4969#include <malloc.h>
4970#include <stdarg.h>
4971#include <assert.h>
4972#include <string.h>
4973#include <ctype.h>
4974#include <sys/stat.h>
4975
4976#if defined(PATH_MAX)
4977# define LT_PATHMAX PATH_MAX
4978#elif defined(MAXPATHLEN)
4979# define LT_PATHMAX MAXPATHLEN
4980#else
4981# define LT_PATHMAX 1024
4982#endif
4983
4984#ifndef DIR_SEPARATOR
4985# define DIR_SEPARATOR '/'
4986# define PATH_SEPARATOR ':'
4987#endif
4988
4989#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4990  defined (__OS2__)
4991# define HAVE_DOS_BASED_FILE_SYSTEM
4992# ifndef DIR_SEPARATOR_2
4993#  define DIR_SEPARATOR_2 '\\'
4994# endif
4995# ifndef PATH_SEPARATOR_2
4996#  define PATH_SEPARATOR_2 ';'
4997# endif
4998#endif
4999
5000#ifndef DIR_SEPARATOR_2
5001# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
5002#else /* DIR_SEPARATOR_2 */
5003# define IS_DIR_SEPARATOR(ch) \
5004        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
5005#endif /* DIR_SEPARATOR_2 */
5006
5007#ifndef PATH_SEPARATOR_2
5008# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
5009#else /* PATH_SEPARATOR_2 */
5010# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
5011#endif /* PATH_SEPARATOR_2 */
5012
5013#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
5014#define XFREE(stale) do { \
5015  if (stale) { free ((void *) stale); stale = 0; } \
5016} while (0)
5017
5018/* -DDEBUG is fairly common in CFLAGS.  */
5019#undef DEBUG
5020#if defined DEBUGWRAPPER
5021# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
5022#else
5023# define DEBUG(format, ...)
5024#endif
5025
5026const char *program_name = NULL;
5027
5028void * xmalloc (size_t num);
5029char * xstrdup (const char *string);
5030const char * base_name (const char *name);
5031char * find_executable(const char *wrapper);
5032int    check_executable(const char *path);
5033char * strendzap(char *str, const char *pat);
5034void lt_fatal (const char *message, ...);
5035
5036int
5037main (int argc, char *argv[])
5038{
5039  char **newargz;
5040  int i;
5041
5042  program_name = (char *) xstrdup (base_name (argv[0]));
5043  DEBUG("(main) argv[0]      : %s\n",argv[0]);
5044  DEBUG("(main) program_name : %s\n",program_name);
5045  newargz = XMALLOC(char *, argc+2);
5046EOF
5047
5048            cat >> $cwrappersource <<EOF
5049  newargz[0] = (char *) xstrdup("$SHELL");
5050EOF
5051
5052            cat >> $cwrappersource <<"EOF"
5053  newargz[1] = find_executable(argv[0]);
5054  if (newargz[1] == NULL)
5055    lt_fatal("Couldn't find %s", argv[0]);
5056  DEBUG("(main) found exe at : %s\n",newargz[1]);
5057  /* we know the script has the same name, without the .exe */
5058  /* so make sure newargz[1] doesn't end in .exe */
5059  strendzap(newargz[1],".exe");
5060  for (i = 1; i < argc; i++)
5061    newargz[i+1] = xstrdup(argv[i]);
5062  newargz[argc+1] = NULL;
5063
5064  for (i=0; i<argc+1; i++)
5065  {
5066    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5067    ;
5068  }
5069
5070EOF
5071
5072            case $host_os in
5073              mingw*)
5074                cat >> $cwrappersource <<EOF
5075  execv("$SHELL",(char const **)newargz);
5076EOF
5077              ;;
5078              *)
5079                cat >> $cwrappersource <<EOF
5080  execv("$SHELL",newargz);
5081EOF
5082              ;;
5083            esac
5084
5085            cat >> $cwrappersource <<"EOF"
5086  return 127;
5087}
5088
5089void *
5090xmalloc (size_t num)
5091{
5092  void * p = (void *) malloc (num);
5093  if (!p)
5094    lt_fatal ("Memory exhausted");
5095
5096  return p;
5097}
5098
5099char *
5100xstrdup (const char *string)
5101{
5102  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5103;
5104}
5105
5106const char *
5107base_name (const char *name)
5108{
5109  const char *base;
5110
5111#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5112  /* Skip over the disk name in MSDOS pathnames. */
5113  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5114    name += 2;
5115#endif
5116
5117  for (base = name; *name; name++)
5118    if (IS_DIR_SEPARATOR (*name))
5119      base = name + 1;
5120  return base;
5121}
5122
5123int
5124check_executable(const char * path)
5125{
5126  struct stat st;
5127
5128  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5129  if ((!path) || (!*path))
5130    return 0;
5131
5132  if ((stat (path, &st) >= 0) &&
5133      (
5134        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5135#if defined (S_IXOTH)
5136       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5137#endif
5138#if defined (S_IXGRP)
5139       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5140#endif
5141       ((st.st_mode & S_IXUSR) == S_IXUSR))
5142      )
5143    return 1;
5144  else
5145    return 0;
5146}
5147
5148/* Searches for the full path of the wrapper.  Returns
5149   newly allocated full path name if found, NULL otherwise */
5150char *
5151find_executable (const char* wrapper)
5152{
5153  int has_slash = 0;
5154  const char* p;
5155  const char* p_next;
5156  /* static buffer for getcwd */
5157  char tmp[LT_PATHMAX + 1];
5158  int tmp_len;
5159  char* concat_name;
5160
5161  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5162
5163  if ((wrapper == NULL) || (*wrapper == '\0'))
5164    return NULL;
5165
5166  /* Absolute path? */
5167#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5168  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5169  {
5170    concat_name = xstrdup (wrapper);
5171    if (check_executable(concat_name))
5172      return concat_name;
5173    XFREE(concat_name);
5174  }
5175  else
5176  {
5177#endif
5178    if (IS_DIR_SEPARATOR (wrapper[0]))
5179    {
5180      concat_name = xstrdup (wrapper);
5181      if (check_executable(concat_name))
5182        return concat_name;
5183      XFREE(concat_name);
5184    }
5185#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5186  }
5187#endif
5188
5189  for (p = wrapper; *p; p++)
5190    if (*p == '/')
5191    {
5192      has_slash = 1;
5193      break;
5194    }
5195  if (!has_slash)
5196  {
5197    /* no slashes; search PATH */
5198    const char* path = getenv ("PATH");
5199    if (path != NULL)
5200    {
5201      for (p = path; *p; p = p_next)
5202      {
5203        const char* q;
5204        size_t p_len;
5205        for (q = p; *q; q++)
5206          if (IS_PATH_SEPARATOR(*q))
5207            break;
5208        p_len = q - p;
5209        p_next = (*q == '\0' ? q : q + 1);
5210        if (p_len == 0)
5211        {
5212          /* empty path: current directory */
5213          if (getcwd (tmp, LT_PATHMAX) == NULL)
5214            lt_fatal ("getcwd failed");
5215          tmp_len = strlen(tmp);
5216          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5217          memcpy (concat_name, tmp, tmp_len);
5218          concat_name[tmp_len] = '/';
5219          strcpy (concat_name + tmp_len + 1, wrapper);
5220        }
5221        else
5222        {
5223          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5224          memcpy (concat_name, p, p_len);
5225          concat_name[p_len] = '/';
5226          strcpy (concat_name + p_len + 1, wrapper);
5227        }
5228        if (check_executable(concat_name))
5229          return concat_name;
5230        XFREE(concat_name);
5231      }
5232    }
5233    /* not found in PATH; assume curdir */
5234  }
5235  /* Relative path | not found in path: prepend cwd */
5236  if (getcwd (tmp, LT_PATHMAX) == NULL)
5237    lt_fatal ("getcwd failed");
5238  tmp_len = strlen(tmp);
5239  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5240  memcpy (concat_name, tmp, tmp_len);
5241  concat_name[tmp_len] = '/';
5242  strcpy (concat_name + tmp_len + 1, wrapper);
5243
5244  if (check_executable(concat_name))
5245    return concat_name;
5246  XFREE(concat_name);
5247  return NULL;
5248}
5249
5250char *
5251strendzap(char *str, const char *pat)
5252{
5253  size_t len, patlen;
5254
5255  assert(str != NULL);
5256  assert(pat != NULL);
5257
5258  len = strlen(str);
5259  patlen = strlen(pat);
5260
5261  if (patlen <= len)
5262  {
5263    str += len - patlen;
5264    if (strcmp(str, pat) == 0)
5265      *str = '\0';
5266  }
5267  return str;
5268}
5269
5270static void
5271lt_error_core (int exit_status, const char * mode,
5272          const char * message, va_list ap)
5273{
5274  fprintf (stderr, "%s: %s: ", program_name, mode);
5275  vfprintf (stderr, message, ap);
5276  fprintf (stderr, ".\n");
5277
5278  if (exit_status >= 0)
5279    exit (exit_status);
5280}
5281
5282void
5283lt_fatal (const char *message, ...)
5284{
5285  va_list ap;
5286  va_start (ap, message);
5287  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5288  va_end (ap);
5289}
5290EOF
5291          # we should really use a build-platform specific compiler
5292          # here, but OTOH, the wrappers (shell script and this C one)
5293          # are only useful if you want to execute the "real" binary.
5294          # Since the "real" binary is built for $host, then this
5295          # wrapper might as well be built for $host, too.
5296          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5297          ;;
5298        esac
5299        $rm $output
5300        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5301
5302	$echo > $output "\
5303#! $SHELL
5304
5305# $output - temporary wrapper script for $objdir/$outputname
5306# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5307#
5308# The $output program cannot be directly executed until all the libtool
5309# libraries that it depends on are installed.
5310#
5311# This wrapper script should never be moved out of the build directory.
5312# If it is, it will not operate correctly.
5313
5314# Sed substitution that helps us do robust quoting.  It backslashifies
5315# metacharacters that are still active within double-quoted strings.
5316Xsed='${SED} -e 1s/^X//'
5317sed_quote_subst='$sed_quote_subst'
5318
5319# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
5320if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
5321  emulate sh
5322  NULLCMD=:
5323  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
5324  # is contrary to our usage.  Disable this feature.
5325  alias -g '\${1+\"\$@\"}'='\"\$@\"'
5326  setopt NO_GLOB_SUBST
5327else
5328  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
5329fi
5330BIN_SH=xpg4; export BIN_SH # for Tru64
5331DUALCASE=1; export DUALCASE # for MKS sh
5332
5333# The HP-UX ksh and POSIX shell print the target directory to stdout
5334# if CDPATH is set.
5335(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5336
5337relink_command=\"$relink_command\"
5338
5339# This environment variable determines our operation mode.
5340if test \"\$libtool_install_magic\" = \"$magic\"; then
5341  # install mode needs the following variable:
5342  notinst_deplibs='$notinst_deplibs'
5343else
5344  # When we are sourced in execute mode, \$file and \$echo are already set.
5345  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5346    echo=\"$qecho\"
5347    file=\"\$0\"
5348    # Make sure echo works.
5349    if test \"X\$1\" = X--no-reexec; then
5350      # Discard the --no-reexec flag, and continue.
5351      shift
5352    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5353      # Yippee, \$echo works!
5354      :
5355    else
5356      # Restart under the correct shell, and then maybe \$echo will work.
5357      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5358    fi
5359  fi\
5360"
5361	$echo >> $output "\
5362
5363  # Find the directory that this script lives in.
5364  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5365  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5366
5367  # Follow symbolic links until we get to the real thisdir.
5368  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5369  while test -n \"\$file\"; do
5370    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5371
5372    # If there was a directory component, then change thisdir.
5373    if test \"x\$destdir\" != \"x\$file\"; then
5374      case \"\$destdir\" in
5375      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5376      *) thisdir=\"\$thisdir/\$destdir\" ;;
5377      esac
5378    fi
5379
5380    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5381    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5382  done
5383
5384  # Try to get the absolute directory name.
5385  absdir=\`cd \"\$thisdir\" && pwd\`
5386  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5387"
5388
5389	if test "$fast_install" = yes; then
5390	  $echo >> $output "\
5391  program=lt-'$outputname'$exeext
5392  progdir=\"\$thisdir/$objdir\"
5393
5394  if test ! -f \"\$progdir/\$program\" || \\
5395     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5396       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5397
5398    file=\"\$\$-\$program\"
5399
5400    if test ! -d \"\$progdir\"; then
5401      $mkdir \"\$progdir\"
5402    else
5403      $rm \"\$progdir/\$file\"
5404    fi"
5405
5406	  $echo >> $output "\
5407
5408    # relink executable if necessary
5409    if test -n \"\$relink_command\"; then
5410      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5411      else
5412	$echo \"\$relink_command_output\" >&2
5413	$rm \"\$progdir/\$file\"
5414	exit $EXIT_FAILURE
5415      fi
5416    fi
5417
5418    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5419    { $rm \"\$progdir/\$program\";
5420      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5421    $rm \"\$progdir/\$file\"
5422  fi"
5423	else
5424	  $echo >> $output "\
5425  program='$outputname'
5426  progdir=\"\$thisdir/$objdir\"
5427"
5428	fi
5429
5430	$echo >> $output "\
5431
5432  if test -f \"\$progdir/\$program\"; then"
5433
5434	# Export our shlibpath_var if we have one.
5435	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5436	  $echo >> $output "\
5437    # Add our own library path to $shlibpath_var
5438    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5439
5440    # Some systems cannot cope with colon-terminated $shlibpath_var
5441    # The second colon is a workaround for a bug in BeOS R4 sed
5442    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5443
5444    export $shlibpath_var
5445"
5446	fi
5447
5448	# fixup the dll searchpath if we need to.
5449	if test -n "$dllsearchpath"; then
5450	  $echo >> $output "\
5451    # Add the dll search path components to the executable PATH
5452    PATH=$dllsearchpath:\$PATH
5453"
5454	fi
5455
5456	$echo >> $output "\
5457    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5458      # Run the actual program with our arguments.
5459
5460      # Make sure env LD_LIBRARY_PATH does not mess us up
5461      if test -n \"\${LD_LIBRARY_PATH+set}\"; then
5462        export LD_LIBRARY_PATH=\$progdir:\$LD_LIBRARY_PATH
5463      fi
5464"
5465	case $host in
5466	# Backslashes separate directories on plain windows
5467	*-*-mingw | *-*-os2*)
5468	  $echo >> $output "\
5469      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5470"
5471	  ;;
5472
5473	*)
5474	  $echo >> $output "\
5475      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5476"
5477	  ;;
5478	esac
5479	$echo >> $output "\
5480      \$echo \"\$0: cannot exec \$program \$*\"
5481      exit $EXIT_FAILURE
5482    fi
5483  else
5484    # The program doesn't exist.
5485    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5486    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5487    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5488    exit $EXIT_FAILURE
5489  fi
5490fi\
5491"
5492	chmod +x $output
5493      fi
5494      exit $EXIT_SUCCESS
5495      ;;
5496    esac
5497
5498    # See if we need to build an old-fashioned archive.
5499    for oldlib in $oldlibs; do
5500
5501      if test "$build_libtool_libs" = convenience; then
5502	oldobjs="$libobjs_save"
5503	addlibs="$convenience"
5504	build_libtool_libs=no
5505      else
5506	if test "$build_libtool_libs" = module; then
5507	  oldobjs="$libobjs_save"
5508	  build_libtool_libs=no
5509	else
5510	  oldobjs="$old_deplibs $non_pic_objects"
5511	fi
5512	addlibs="$old_convenience"
5513      fi
5514
5515      if test -n "$addlibs"; then
5516	gentop="$output_objdir/${outputname}x"
5517	generated="$generated $gentop"
5518
5519	func_extract_archives $gentop $addlibs
5520	oldobjs="$oldobjs $func_extract_archives_result"
5521      fi
5522
5523      # Do each command in the archive commands.
5524      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5525       cmds=$old_archive_from_new_cmds
5526      else
5527	# POSIX demands no paths to be encoded in archives.  We have
5528	# to avoid creating archives with duplicate basenames if we
5529	# might have to extract them afterwards, e.g., when creating a
5530	# static archive out of a convenience library, or when linking
5531	# the entirety of a libtool archive into another (currently
5532	# not supported by libtool).
5533	if (for obj in $oldobjs
5534	    do
5535	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5536	    done | sort | sort -uc >/dev/null 2>&1); then
5537	  :
5538	else
5539	  $echo "copying selected object files to avoid basename conflicts..."
5540
5541	  if test -z "$gentop"; then
5542	    gentop="$output_objdir/${outputname}x"
5543	    generated="$generated $gentop"
5544
5545	    $show "${rm}r $gentop"
5546	    $run ${rm}r "$gentop"
5547	    $show "$mkdir $gentop"
5548	    $run $mkdir "$gentop"
5549	    exit_status=$?
5550	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5551	      exit $exit_status
5552	    fi
5553	  fi
5554
5555	  save_oldobjs=$oldobjs
5556	  oldobjs=
5557	  counter=1
5558	  for obj in $save_oldobjs
5559	  do
5560	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5561	    case " $oldobjs " in
5562	    " ") oldobjs=$obj ;;
5563	    *[\ /]"$objbase "*)
5564	      while :; do
5565		# Make sure we don't pick an alternate name that also
5566		# overlaps.
5567		newobj=lt$counter-$objbase
5568		counter=`expr $counter + 1`
5569		case " $oldobjs " in
5570		*[\ /]"$newobj "*) ;;
5571		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5572		esac
5573	      done
5574	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5575	      $run ln "$obj" "$gentop/$newobj" ||
5576	      $run cp "$obj" "$gentop/$newobj"
5577	      oldobjs="$oldobjs $gentop/$newobj"
5578	      ;;
5579	    *) oldobjs="$oldobjs $obj" ;;
5580	    esac
5581	  done
5582	fi
5583
5584	eval cmds=\"$old_archive_cmds\"
5585
5586	if len=`expr "X$cmds" : ".*"` &&
5587	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5588	  cmds=$old_archive_cmds
5589	else
5590	  # the command line is too long to link in one step, link in parts
5591	  $echo "using piecewise archive linking..."
5592	  save_RANLIB=$RANLIB
5593	  RANLIB=:
5594	  objlist=
5595	  concat_cmds=
5596	  save_oldobjs=$oldobjs
5597
5598	  # Is there a better way of finding the last object in the list?
5599	  for obj in $save_oldobjs
5600	  do
5601	    last_oldobj=$obj
5602	  done
5603	  for obj in $save_oldobjs
5604	  do
5605	    oldobjs="$objlist $obj"
5606	    objlist="$objlist $obj"
5607	    eval test_cmds=\"$old_archive_cmds\"
5608	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5609	       test "$len" -le "$max_cmd_len"; then
5610	      :
5611	    else
5612	      # the above command should be used before it gets too long
5613	      oldobjs=$objlist
5614	      if test "$obj" = "$last_oldobj" ; then
5615	        RANLIB=$save_RANLIB
5616	      fi
5617	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5618	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5619	      objlist=
5620	    fi
5621	  done
5622	  RANLIB=$save_RANLIB
5623	  oldobjs=$objlist
5624	  if test "X$oldobjs" = "X" ; then
5625	    eval cmds=\"\$concat_cmds\"
5626	  else
5627	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5628	  fi
5629	fi
5630      fi
5631      save_ifs="$IFS"; IFS='~'
5632      for cmd in $cmds; do
5633        eval cmd=\"$cmd\"
5634	IFS="$save_ifs"
5635	$show "$cmd"
5636	$run eval "$cmd" || exit $?
5637      done
5638      IFS="$save_ifs"
5639    done
5640
5641    if test -n "$generated"; then
5642      $show "${rm}r$generated"
5643      $run ${rm}r$generated
5644    fi
5645
5646    # Now create the libtool archive.
5647    case $output in
5648    *.la)
5649      old_library=
5650      test "$build_old_libs" = yes && old_library="$libname.$libext"
5651      $show "creating $output"
5652
5653      # Preserve any variables that may affect compiler behavior
5654      for var in $variables_saved_for_relink; do
5655	if eval test -z \"\${$var+set}\"; then
5656	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5657	elif eval var_value=\$$var; test -z "$var_value"; then
5658	  relink_command="$var=; export $var; $relink_command"
5659	else
5660	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5661	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5662	fi
5663      done
5664      # Quote the link command for shipping.
5665      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5666      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
5667      if test "$hardcode_automatic" = yes ; then
5668	relink_command=
5669      fi
5670
5671
5672      # Only create the output if not a dry run.
5673      if test -z "$run"; then
5674	for installed in no yes; do
5675	  if test "$installed" = yes; then
5676	    if test -z "$install_libdir"; then
5677	      break
5678	    fi
5679	    output="$output_objdir/$outputname"i
5680	    # Replace all uninstalled libtool libraries with the installed ones
5681	    newdependency_libs=
5682	    for deplib in $dependency_libs; do
5683	      case $deplib in
5684	      *.la)
5685		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5686		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5687		if test -z "$libdir"; then
5688		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5689		  exit $EXIT_FAILURE
5690		fi
5691		if test "X$EGREP" = X ; then
5692			EGREP=egrep
5693		fi
5694		# We do not want portage's install root ($D) present.  Check only for
5695		# this if the .la is being installed.
5696		if test "$installed" = yes && test "$D"; then
5697		  eval mynewdependency_lib=`echo "$libdir/$name" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
5698		else
5699		  mynewdependency_lib="$libdir/$name"
5700		fi
5701		# Do not add duplicates
5702		if test "$mynewdependency_lib"; then
5703		  my_little_ninja_foo_1=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
5704		  if test -z "$my_little_ninja_foo_1"; then
5705		    newdependency_libs="$newdependency_libs $mynewdependency_lib"
5706		  fi
5707		fi
5708		;;
5709		  *)
5710		if test "$installed" = yes; then
5711		  # Rather use S=WORKDIR if our version of portage supports it.
5712		  # This is because some ebuild (gcc) do not use $S as buildroot.
5713		  if test "$PWORKDIR"; then
5714		    S="$PWORKDIR"
5715		  fi
5716		  # We do not want portage's build root ($S) present.
5717		  my_little_ninja_foo_2=`echo $deplib |$EGREP -e "$S"`
5718		  # We do not want portage's install root ($D) present.
5719		  my_little_ninja_foo_3=`echo $deplib |$EGREP -e "$D"`
5720		  if test -n "$my_little_ninja_foo_2" && test "$S"; then
5721		    mynewdependency_lib=""
5722		  elif test -n "$my_little_ninja_foo_3" && test "$D"; then
5723		    eval mynewdependency_lib=`echo "$deplib" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
5724		  else
5725		    mynewdependency_lib="$deplib"
5726		  fi
5727		else
5728		  mynewdependency_lib="$deplib"
5729		fi
5730		# Do not add duplicates
5731		if test "$mynewdependency_lib"; then
5732		  my_little_ninja_foo_4=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
5733		  if test -z "$my_little_ninja_foo_4"; then
5734			newdependency_libs="$newdependency_libs $mynewdependency_lib"
5735		  fi
5736		fi
5737		;;
5738	      esac
5739	    done
5740	    dependency_libs="$newdependency_libs"
5741	    newdlfiles=
5742	    for lib in $dlfiles; do
5743	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5744	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5745	      if test -z "$libdir"; then
5746		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5747		exit $EXIT_FAILURE
5748	      fi
5749	      newdlfiles="$newdlfiles $libdir/$name"
5750	    done
5751	    dlfiles="$newdlfiles"
5752	    newdlprefiles=
5753	    for lib in $dlprefiles; do
5754	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5755	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5756	      if test -z "$libdir"; then
5757		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5758		exit $EXIT_FAILURE
5759	      fi
5760	      newdlprefiles="$newdlprefiles $libdir/$name"
5761	    done
5762	    dlprefiles="$newdlprefiles"
5763	  else
5764	    newdlfiles=
5765	    for lib in $dlfiles; do
5766	      case $lib in
5767		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5768		*) abs=`pwd`"/$lib" ;;
5769	      esac
5770	      newdlfiles="$newdlfiles $abs"
5771	    done
5772	    dlfiles="$newdlfiles"
5773	    newdlprefiles=
5774	    for lib in $dlprefiles; do
5775	      case $lib in
5776		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5777		*) abs=`pwd`"/$lib" ;;
5778	      esac
5779	      newdlprefiles="$newdlprefiles $abs"
5780	    done
5781	    dlprefiles="$newdlprefiles"
5782	  fi
5783	  $rm $output
5784	  # place dlname in correct position for cygwin
5785	  tdlname=$dlname
5786	  case $host,$output,$installed,$module,$dlname in
5787	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5788	  esac
5789	  # Do not add duplicates
5790	  if test "$installed" = yes && test "$D"; then
5791	    install_libdir=`echo "$install_libdir" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
5792	  fi
5793	  $echo > $output "\
5794# $outputname - a libtool library file
5795# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5796#
5797# Please DO NOT delete this file!
5798# It is necessary for linking the library.
5799
5800# The name that we can dlopen(3).
5801dlname='$tdlname'
5802
5803# Names of this library.
5804library_names='$library_names'
5805
5806# The name of the static archive.
5807old_library='$old_library'
5808
5809# Libraries that this one depends upon.
5810dependency_libs='$dependency_libs'
5811
5812# Version information for $libname.
5813current=$current
5814age=$age
5815revision=$revision
5816
5817# Is this an already installed library?
5818installed=$installed
5819
5820# Should we warn about portability when linking against -modules?
5821shouldnotlink=$module
5822
5823# Files to dlopen/dlpreopen
5824dlopen='$dlfiles'
5825dlpreopen='$dlprefiles'
5826
5827# Directory that this library needs to be installed in:
5828libdir='$install_libdir'"
5829	  if test "$installed" = no && test "$need_relink" = yes; then
5830	    $echo >> $output "\
5831relink_command=\"$relink_command\""
5832	  fi
5833	done
5834      fi
5835
5836      # Do a symbolic link so that the libtool archive can be found in
5837      # LD_LIBRARY_PATH before the program is installed.
5838      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5839      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5840      ;;
5841    esac
5842    exit $EXIT_SUCCESS
5843    ;;
5844
5845  # libtool install mode
5846  install)
5847    modename="$modename: install"
5848
5849    # There may be an optional sh(1) argument at the beginning of
5850    # install_prog (especially on Windows NT).
5851    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5852       # Allow the use of GNU shtool's install command.
5853       $echo "X$nonopt" | grep shtool > /dev/null; then
5854      # Aesthetically quote it.
5855      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5856      case $arg in
5857      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5858	arg="\"$arg\""
5859	;;
5860      esac
5861      install_prog="$arg "
5862      arg="$1"
5863      shift
5864    else
5865      install_prog=
5866      arg=$nonopt
5867    fi
5868
5869    # The real first argument should be the name of the installation program.
5870    # Aesthetically quote it.
5871    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5872    case $arg in
5873    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5874      arg="\"$arg\""
5875      ;;
5876    esac
5877    install_prog="$install_prog$arg"
5878
5879    # We need to accept at least all the BSD install flags.
5880    dest=
5881    files=
5882    opts=
5883    prev=
5884    install_type=
5885    isdir=no
5886    stripme=
5887    for arg
5888    do
5889      if test -n "$dest"; then
5890	files="$files $dest"
5891	dest=$arg
5892	continue
5893      fi
5894
5895      case $arg in
5896      -d) isdir=yes ;;
5897      -f)
5898      	case " $install_prog " in
5899	*[\\\ /]cp\ *) ;;
5900	*) prev=$arg ;;
5901	esac
5902	;;
5903      -g | -m | -o) prev=$arg ;;
5904      -s)
5905	stripme=" -s"
5906	continue
5907	;;
5908      -*)
5909	;;
5910      *)
5911	# If the previous option needed an argument, then skip it.
5912	if test -n "$prev"; then
5913	  prev=
5914	else
5915	  dest=$arg
5916	  continue
5917	fi
5918	;;
5919      esac
5920
5921      # Aesthetically quote the argument.
5922      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5923      case $arg in
5924      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5925	arg="\"$arg\""
5926	;;
5927      esac
5928      install_prog="$install_prog $arg"
5929    done
5930
5931    if test -z "$install_prog"; then
5932      $echo "$modename: you must specify an install program" 1>&2
5933      $echo "$help" 1>&2
5934      exit $EXIT_FAILURE
5935    fi
5936
5937    if test -n "$prev"; then
5938      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5939      $echo "$help" 1>&2
5940      exit $EXIT_FAILURE
5941    fi
5942
5943    if test -z "$files"; then
5944      if test -z "$dest"; then
5945	$echo "$modename: no file or destination specified" 1>&2
5946      else
5947	$echo "$modename: you must specify a destination" 1>&2
5948      fi
5949      $echo "$help" 1>&2
5950      exit $EXIT_FAILURE
5951    fi
5952
5953    # Strip any trailing slash from the destination.
5954    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5955
5956    # Check to see that the destination is a directory.
5957    test -d "$dest" && isdir=yes
5958    if test "$isdir" = yes; then
5959      destdir="$dest"
5960      destname=
5961    else
5962      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5963      test "X$destdir" = "X$dest" && destdir=.
5964      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5965
5966      # Not a directory, so check to see that there is only one file specified.
5967      set dummy $files
5968      if test "$#" -gt 2; then
5969	$echo "$modename: \`$dest' is not a directory" 1>&2
5970	$echo "$help" 1>&2
5971	exit $EXIT_FAILURE
5972      fi
5973    fi
5974    case $destdir in
5975    [\\/]* | [A-Za-z]:[\\/]*) ;;
5976    *)
5977      for file in $files; do
5978	case $file in
5979	*.lo) ;;
5980	*)
5981	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5982	  $echo "$help" 1>&2
5983	  exit $EXIT_FAILURE
5984	  ;;
5985	esac
5986      done
5987      ;;
5988    esac
5989
5990    # This variable tells wrapper scripts just to set variables rather
5991    # than running their programs.
5992    libtool_install_magic="$magic"
5993
5994    staticlibs=
5995    future_libdirs=
5996    current_libdirs=
5997    for file in $files; do
5998
5999      # Do each installation.
6000      case $file in
6001      *.$libext)
6002	# Do the static libraries later.
6003	staticlibs="$staticlibs $file"
6004	;;
6005
6006      *.la)
6007	# Check to see that this really is a libtool archive.
6008	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6009	else
6010	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
6011	  $echo "$help" 1>&2
6012	  exit $EXIT_FAILURE
6013	fi
6014
6015	library_names=
6016	old_library=
6017	relink_command=
6018	# If there is no directory component, then add one.
6019	case $file in
6020	*/* | *\\*) . $file ;;
6021	*) . ./$file ;;
6022	esac
6023
6024	# Add the libdir to current_libdirs if it is the destination.
6025	if test "X$destdir" = "X$libdir"; then
6026	  case "$current_libdirs " in
6027	  *" $libdir "*) ;;
6028	  *) current_libdirs="$current_libdirs $libdir" ;;
6029	  esac
6030	else
6031	  # Note the libdir as a future libdir.
6032	  case "$future_libdirs " in
6033	  *" $libdir "*) ;;
6034	  *) future_libdirs="$future_libdirs $libdir" ;;
6035	  esac
6036	fi
6037
6038	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
6039	test "X$dir" = "X$file/" && dir=
6040	dir="$dir$objdir"
6041
6042	if test -n "$relink_command"; then
6043	  # Determine the prefix the user has applied to our future dir.
6044	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
6045
6046	  # Don't allow the user to place us outside of our expected
6047	  # location b/c this prevents finding dependent libraries that
6048	  # are installed to the same prefix.
6049	  # At present, this check doesn't affect windows .dll's that
6050	  # are installed into $libdir/../bin (currently, that works fine)
6051	  # but it's something to keep an eye on.
6052	  if test "$inst_prefix_dir" = "$destdir"; then
6053	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
6054	    exit $EXIT_FAILURE
6055	  fi
6056
6057	  if test -n "$inst_prefix_dir"; then
6058	    # Stick the inst_prefix_dir data into the link command.
6059	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
6060	  else
6061	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
6062	  fi
6063
6064	  $echo "$modename: warning: relinking \`$file'" 1>&2
6065	  $show "$relink_command"
6066	  if $run eval "$relink_command"; then :
6067	  else
6068	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6069	    exit $EXIT_FAILURE
6070	  fi
6071	fi
6072
6073	# See the names of the shared library.
6074	set dummy $library_names
6075	if test -n "$2"; then
6076	  realname="$2"
6077	  shift
6078	  shift
6079
6080	  srcname="$realname"
6081	  test -n "$relink_command" && srcname="$realname"T
6082
6083	  # Install the shared library and build the symlinks.
6084	  $show "$install_prog $dir/$srcname $destdir/$realname"
6085	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
6086	  if test -n "$stripme" && test -n "$striplib"; then
6087	    $show "$striplib $destdir/$realname"
6088	    $run eval "$striplib $destdir/$realname" || exit $?
6089	  fi
6090
6091	  if test "$#" -gt 0; then
6092	    # Delete the old symlinks, and create new ones.
6093	    # Try `ln -sf' first, because the `ln' binary might depend on
6094	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
6095	    # so we also need to try rm && ln -s.
6096	    for linkname
6097	    do
6098	      if test "$linkname" != "$realname"; then
6099                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6100                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6101	      fi
6102	    done
6103	  fi
6104
6105	  # Do each command in the postinstall commands.
6106	  lib="$destdir/$realname"
6107	  cmds=$postinstall_cmds
6108	  save_ifs="$IFS"; IFS='~'
6109	  for cmd in $cmds; do
6110	    IFS="$save_ifs"
6111	    eval cmd=\"$cmd\"
6112	    $show "$cmd"
6113	    $run eval "$cmd" || {
6114	      lt_exit=$?
6115
6116	      # Restore the uninstalled library and exit
6117	      if test "$mode" = relink; then
6118		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
6119	      fi
6120
6121	      exit $lt_exit
6122	    }
6123	  done
6124	  IFS="$save_ifs"
6125	fi
6126
6127	# Install the pseudo-library for information purposes.
6128	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6129	instname="$dir/$name"i
6130	$show "$install_prog $instname $destdir/$name"
6131	$run eval "$install_prog $instname $destdir/$name" || exit $?
6132
6133	# Maybe install the static library, too.
6134	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6135	;;
6136
6137      *.lo)
6138	# Install (i.e. copy) a libtool object.
6139
6140	# Figure out destination file name, if it wasn't already specified.
6141	if test -n "$destname"; then
6142	  destfile="$destdir/$destname"
6143	else
6144	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6145	  destfile="$destdir/$destfile"
6146	fi
6147
6148	# Deduce the name of the destination old-style object file.
6149	case $destfile in
6150	*.lo)
6151	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6152	  ;;
6153	*.$objext)
6154	  staticdest="$destfile"
6155	  destfile=
6156	  ;;
6157	*)
6158	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6159	  $echo "$help" 1>&2
6160	  exit $EXIT_FAILURE
6161	  ;;
6162	esac
6163
6164	# Install the libtool object if requested.
6165	if test -n "$destfile"; then
6166	  $show "$install_prog $file $destfile"
6167	  $run eval "$install_prog $file $destfile" || exit $?
6168	fi
6169
6170	# Install the old object if enabled.
6171	if test "$build_old_libs" = yes; then
6172	  # Deduce the name of the old-style object file.
6173	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6174
6175	  $show "$install_prog $staticobj $staticdest"
6176	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6177	fi
6178	exit $EXIT_SUCCESS
6179	;;
6180
6181      *)
6182	# Figure out destination file name, if it wasn't already specified.
6183	if test -n "$destname"; then
6184	  destfile="$destdir/$destname"
6185	else
6186	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6187	  destfile="$destdir/$destfile"
6188	fi
6189
6190	# If the file is missing, and there is a .exe on the end, strip it
6191	# because it is most likely a libtool script we actually want to
6192	# install
6193	stripped_ext=""
6194	case $file in
6195	  *.exe)
6196	    if test ! -f "$file"; then
6197	      file=`$echo $file|${SED} 's,.exe$,,'`
6198	      stripped_ext=".exe"
6199	    fi
6200	    ;;
6201	esac
6202
6203	# Do a test to see if this is really a libtool program.
6204	case $host in
6205	*cygwin*|*mingw*)
6206	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6207	    ;;
6208	*)
6209	    wrapper=$file
6210	    ;;
6211	esac
6212	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6213	  notinst_deplibs=
6214	  relink_command=
6215
6216	  # Note that it is not necessary on cygwin/mingw to append a dot to
6217	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6218	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6219	  # `FILE.' does not work on cygwin managed mounts.
6220	  #
6221	  # If there is no directory component, then add one.
6222	  case $wrapper in
6223	  */* | *\\*) . ${wrapper} ;;
6224	  *) . ./${wrapper} ;;
6225	  esac
6226
6227	  # Check the variables that should have been set.
6228	  if test -z "$notinst_deplibs"; then
6229	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6230	    exit $EXIT_FAILURE
6231	  fi
6232
6233	  finalize=yes
6234	  for lib in $notinst_deplibs; do
6235	    # Check to see that each library is installed.
6236	    libdir=
6237	    if test -f "$lib"; then
6238	      # If there is no directory component, then add one.
6239	      case $lib in
6240	      */* | *\\*) . $lib ;;
6241	      *) . ./$lib ;;
6242	      esac
6243	    fi
6244	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6245	    if test -n "$libdir" && test ! -f "$libfile"; then
6246	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6247	      finalize=no
6248	    fi
6249	  done
6250
6251	  relink_command=
6252	  # Note that it is not necessary on cygwin/mingw to append a dot to
6253	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6254	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6255	  # `FILE.' does not work on cygwin managed mounts.
6256	  #
6257	  # If there is no directory component, then add one.
6258	  case $wrapper in
6259	  */* | *\\*) . ${wrapper} ;;
6260	  *) . ./${wrapper} ;;
6261	  esac
6262
6263	  outputname=
6264	  if test "$fast_install" = no && test -n "$relink_command"; then
6265	    if test "$finalize" = yes && test -z "$run"; then
6266	      tmpdir=`func_mktempdir`
6267	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6268	      outputname="$tmpdir/$file"
6269	      # Replace the output file specification.
6270	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
6271
6272	      $show "$relink_command"
6273	      if $run eval "$relink_command"; then :
6274	      else
6275		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6276		${rm}r "$tmpdir"
6277		continue
6278	      fi
6279	      file="$outputname"
6280	    else
6281	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6282	    fi
6283	  else
6284	    # Install the binary that we compiled earlier.
6285	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6286	  fi
6287	fi
6288
6289	# remove .exe since cygwin /usr/bin/install will append another
6290	# one anyway
6291	case $install_prog,$host in
6292	*/usr/bin/install*,*cygwin*)
6293	  case $file:$destfile in
6294	  *.exe:*.exe)
6295	    # this is ok
6296	    ;;
6297	  *.exe:*)
6298	    destfile=$destfile.exe
6299	    ;;
6300	  *:*.exe)
6301	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6302	    ;;
6303	  esac
6304	  ;;
6305	esac
6306	$show "$install_prog$stripme $file $destfile"
6307	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6308	test -n "$outputname" && ${rm}r "$tmpdir"
6309	;;
6310      esac
6311    done
6312
6313    for file in $staticlibs; do
6314      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6315
6316      # Set up the ranlib parameters.
6317      oldlib="$destdir/$name"
6318
6319      $show "$install_prog $file $oldlib"
6320      $run eval "$install_prog \$file \$oldlib" || exit $?
6321
6322      if test -n "$stripme" && test -n "$old_striplib"; then
6323	$show "$old_striplib $oldlib"
6324	$run eval "$old_striplib $oldlib" || exit $?
6325      fi
6326
6327      # Do each command in the postinstall commands.
6328      cmds=$old_postinstall_cmds
6329      save_ifs="$IFS"; IFS='~'
6330      for cmd in $cmds; do
6331	IFS="$save_ifs"
6332	eval cmd=\"$cmd\"
6333	$show "$cmd"
6334	$run eval "$cmd" || exit $?
6335      done
6336      IFS="$save_ifs"
6337    done
6338
6339    if test -n "$future_libdirs"; then
6340      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6341    fi
6342
6343    if test -n "$current_libdirs"; then
6344      # Maybe just do a dry run.
6345      test -n "$run" && current_libdirs=" -n$current_libdirs"
6346      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6347    else
6348      exit $EXIT_SUCCESS
6349    fi
6350    ;;
6351
6352  # libtool finish mode
6353  finish)
6354    modename="$modename: finish"
6355    libdirs="$nonopt"
6356    admincmds=
6357
6358    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6359      for dir
6360      do
6361	libdirs="$libdirs $dir"
6362      done
6363
6364      for libdir in $libdirs; do
6365	if test -n "$finish_cmds"; then
6366	  # Do each command in the finish commands.
6367	  cmds=$finish_cmds
6368	  save_ifs="$IFS"; IFS='~'
6369	  for cmd in $cmds; do
6370	    IFS="$save_ifs"
6371	    eval cmd=\"$cmd\"
6372	    $show "$cmd"
6373	    $run eval "$cmd" || admincmds="$admincmds
6374       $cmd"
6375	  done
6376	  IFS="$save_ifs"
6377	fi
6378	if test -n "$finish_eval"; then
6379	  # Do the single finish_eval.
6380	  eval cmds=\"$finish_eval\"
6381	  $run eval "$cmds" || admincmds="$admincmds
6382       $cmds"
6383	fi
6384      done
6385    fi
6386
6387    # Exit here if they wanted silent mode.
6388    test "$show" = : && exit $EXIT_SUCCESS
6389
6390    $echo "X----------------------------------------------------------------------" | $Xsed
6391    $echo "Libraries have been installed in:"
6392    for libdir in $libdirs; do
6393      $echo "   $libdir"
6394    done
6395    $echo
6396    $echo "If you ever happen to want to link against installed libraries"
6397    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6398    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6399    $echo "flag during linking and do at least one of the following:"
6400    if test -n "$shlibpath_var"; then
6401      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6402      $echo "     during execution"
6403    fi
6404    if test -n "$runpath_var"; then
6405      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6406      $echo "     during linking"
6407    fi
6408    if test -n "$hardcode_libdir_flag_spec"; then
6409      libdir=LIBDIR
6410      eval flag=\"$hardcode_libdir_flag_spec\"
6411
6412      $echo "   - use the \`$flag' linker flag"
6413    fi
6414    if test -n "$admincmds"; then
6415      $echo "   - have your system administrator run these commands:$admincmds"
6416    fi
6417    if test -f /etc/ld.so.conf; then
6418      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6419    fi
6420    $echo
6421    $echo "See any operating system documentation about shared libraries for"
6422    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6423    $echo "X----------------------------------------------------------------------" | $Xsed
6424    exit $EXIT_SUCCESS
6425    ;;
6426
6427  # libtool execute mode
6428  execute)
6429    modename="$modename: execute"
6430
6431    # The first argument is the command name.
6432    cmd="$nonopt"
6433    if test -z "$cmd"; then
6434      $echo "$modename: you must specify a COMMAND" 1>&2
6435      $echo "$help"
6436      exit $EXIT_FAILURE
6437    fi
6438
6439    # Handle -dlopen flags immediately.
6440    for file in $execute_dlfiles; do
6441      if test ! -f "$file"; then
6442	$echo "$modename: \`$file' is not a file" 1>&2
6443	$echo "$help" 1>&2
6444	exit $EXIT_FAILURE
6445      fi
6446
6447      dir=
6448      case $file in
6449      *.la)
6450	# Check to see that this really is a libtool archive.
6451	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6452	else
6453	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6454	  $echo "$help" 1>&2
6455	  exit $EXIT_FAILURE
6456	fi
6457
6458	# Read the libtool library.
6459	dlname=
6460	library_names=
6461
6462	# If there is no directory component, then add one.
6463	case $file in
6464	*/* | *\\*) . $file ;;
6465	*) . ./$file ;;
6466	esac
6467
6468	# Skip this library if it cannot be dlopened.
6469	if test -z "$dlname"; then
6470	  # Warn if it was a shared library.
6471	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6472	  continue
6473	fi
6474
6475	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6476	test "X$dir" = "X$file" && dir=.
6477
6478	if test -f "$dir/$objdir/$dlname"; then
6479	  dir="$dir/$objdir"
6480	else
6481	  if test ! -f "$dir/$dlname"; then
6482	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6483	    exit $EXIT_FAILURE
6484	  fi
6485	fi
6486	;;
6487
6488      *.lo)
6489	# Just add the directory containing the .lo file.
6490	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6491	test "X$dir" = "X$file" && dir=.
6492	;;
6493
6494      *)
6495	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6496	continue
6497	;;
6498      esac
6499
6500      # Get the absolute pathname.
6501      absdir=`cd "$dir" && pwd`
6502      test -n "$absdir" && dir="$absdir"
6503
6504      # Now add the directory to shlibpath_var.
6505      if eval "test -z \"\$$shlibpath_var\""; then
6506	eval "$shlibpath_var=\"\$dir\""
6507      else
6508	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6509      fi
6510    done
6511
6512    # This variable tells wrapper scripts just to set shlibpath_var
6513    # rather than running their programs.
6514    libtool_execute_magic="$magic"
6515
6516    # Check if any of the arguments is a wrapper script.
6517    args=
6518    for file
6519    do
6520      case $file in
6521      -*) ;;
6522      *)
6523	# Do a test to see if this is really a libtool program.
6524	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6525	  # If there is no directory component, then add one.
6526	  case $file in
6527	  */* | *\\*) . $file ;;
6528	  *) . ./$file ;;
6529	  esac
6530
6531	  # Transform arg to wrapped name.
6532	  file="$progdir/$program"
6533	fi
6534	;;
6535      esac
6536      # Quote arguments (to preserve shell metacharacters).
6537      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6538      args="$args \"$file\""
6539    done
6540
6541    if test -z "$run"; then
6542      if test -n "$shlibpath_var"; then
6543	# Export the shlibpath_var.
6544	eval "export $shlibpath_var"
6545      fi
6546
6547      # Restore saved environment variables
6548      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
6549      do
6550	eval "if test \"\${save_$lt_var+set}\" = set; then
6551		$lt_var=\$save_$lt_var; export $lt_var
6552	      fi"
6553      done
6554
6555      # Now prepare to actually exec the command.
6556      exec_cmd="\$cmd$args"
6557    else
6558      # Display what would be done.
6559      if test -n "$shlibpath_var"; then
6560	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6561	$echo "export $shlibpath_var"
6562      fi
6563      $echo "$cmd$args"
6564      exit $EXIT_SUCCESS
6565    fi
6566    ;;
6567
6568  # libtool clean and uninstall mode
6569  clean | uninstall)
6570    modename="$modename: $mode"
6571    rm="$nonopt"
6572    files=
6573    rmforce=
6574    exit_status=0
6575
6576    # This variable tells wrapper scripts just to set variables rather
6577    # than running their programs.
6578    libtool_install_magic="$magic"
6579
6580    for arg
6581    do
6582      case $arg in
6583      -f) rm="$rm $arg"; rmforce=yes ;;
6584      -*) rm="$rm $arg" ;;
6585      *) files="$files $arg" ;;
6586      esac
6587    done
6588
6589    if test -z "$rm"; then
6590      $echo "$modename: you must specify an RM program" 1>&2
6591      $echo "$help" 1>&2
6592      exit $EXIT_FAILURE
6593    fi
6594
6595    rmdirs=
6596
6597    origobjdir="$objdir"
6598    for file in $files; do
6599      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6600      if test "X$dir" = "X$file"; then
6601	dir=.
6602	objdir="$origobjdir"
6603      else
6604	objdir="$dir/$origobjdir"
6605      fi
6606      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6607      test "$mode" = uninstall && objdir="$dir"
6608
6609      # Remember objdir for removal later, being careful to avoid duplicates
6610      if test "$mode" = clean; then
6611	case " $rmdirs " in
6612	  *" $objdir "*) ;;
6613	  *) rmdirs="$rmdirs $objdir" ;;
6614	esac
6615      fi
6616
6617      # Don't error if the file doesn't exist and rm -f was used.
6618      if (test -L "$file") >/dev/null 2>&1 \
6619	|| (test -h "$file") >/dev/null 2>&1 \
6620	|| test -f "$file"; then
6621	:
6622      elif test -d "$file"; then
6623	exit_status=1
6624	continue
6625      elif test "$rmforce" = yes; then
6626	continue
6627      fi
6628
6629      rmfiles="$file"
6630
6631      case $name in
6632      *.la)
6633	# Possibly a libtool archive, so verify it.
6634	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6635	  . $dir/$name
6636
6637	  # Delete the libtool libraries and symlinks.
6638	  for n in $library_names; do
6639	    rmfiles="$rmfiles $objdir/$n"
6640	  done
6641	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6642
6643	  case "$mode" in
6644	  clean)
6645	    case "  $library_names " in
6646	    # "  " in the beginning catches empty $dlname
6647	    *" $dlname "*) ;;
6648	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6649	    esac
6650	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6651	    ;;
6652	  uninstall)
6653	    if test -n "$library_names"; then
6654	      # Do each command in the postuninstall commands.
6655	      cmds=$postuninstall_cmds
6656	      save_ifs="$IFS"; IFS='~'
6657	      for cmd in $cmds; do
6658		IFS="$save_ifs"
6659		eval cmd=\"$cmd\"
6660		$show "$cmd"
6661		$run eval "$cmd"
6662		if test "$?" -ne 0 && test "$rmforce" != yes; then
6663		  exit_status=1
6664		fi
6665	      done
6666	      IFS="$save_ifs"
6667	    fi
6668
6669	    if test -n "$old_library"; then
6670	      # Do each command in the old_postuninstall commands.
6671	      cmds=$old_postuninstall_cmds
6672	      save_ifs="$IFS"; IFS='~'
6673	      for cmd in $cmds; do
6674		IFS="$save_ifs"
6675		eval cmd=\"$cmd\"
6676		$show "$cmd"
6677		$run eval "$cmd"
6678		if test "$?" -ne 0 && test "$rmforce" != yes; then
6679		  exit_status=1
6680		fi
6681	      done
6682	      IFS="$save_ifs"
6683	    fi
6684	    # FIXME: should reinstall the best remaining shared library.
6685	    ;;
6686	  esac
6687	fi
6688	;;
6689
6690      *.lo)
6691	# Possibly a libtool object, so verify it.
6692	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6693
6694	  # Read the .lo file
6695	  . $dir/$name
6696
6697	  # Add PIC object to the list of files to remove.
6698	  if test -n "$pic_object" \
6699	     && test "$pic_object" != none; then
6700	    rmfiles="$rmfiles $dir/$pic_object"
6701	  fi
6702
6703	  # Add non-PIC object to the list of files to remove.
6704	  if test -n "$non_pic_object" \
6705	     && test "$non_pic_object" != none; then
6706	    rmfiles="$rmfiles $dir/$non_pic_object"
6707	  fi
6708	fi
6709	;;
6710
6711      *)
6712	if test "$mode" = clean ; then
6713	  noexename=$name
6714	  case $file in
6715	  *.exe)
6716	    file=`$echo $file|${SED} 's,.exe$,,'`
6717	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6718	    # $file with .exe has already been added to rmfiles,
6719	    # add $file without .exe
6720	    rmfiles="$rmfiles $file"
6721	    ;;
6722	  esac
6723	  # Do a test to see if this is a libtool program.
6724	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6725	    relink_command=
6726	    . $dir/$noexename
6727
6728	    # note $name still contains .exe if it was in $file originally
6729	    # as does the version of $file that was added into $rmfiles
6730	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6731	    if test "$fast_install" = yes && test -n "$relink_command"; then
6732	      rmfiles="$rmfiles $objdir/lt-$name"
6733	    fi
6734	    if test "X$noexename" != "X$name" ; then
6735	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6736	    fi
6737	  fi
6738	fi
6739	;;
6740      esac
6741      $show "$rm $rmfiles"
6742      $run $rm $rmfiles || exit_status=1
6743    done
6744    objdir="$origobjdir"
6745
6746    # Try to remove the ${objdir}s in the directories where we deleted files
6747    for dir in $rmdirs; do
6748      if test -d "$dir"; then
6749	$show "rmdir $dir"
6750	$run rmdir $dir >/dev/null 2>&1
6751      fi
6752    done
6753
6754    exit $exit_status
6755    ;;
6756
6757  "")
6758    $echo "$modename: you must specify a MODE" 1>&2
6759    $echo "$generic_help" 1>&2
6760    exit $EXIT_FAILURE
6761    ;;
6762  esac
6763
6764  if test -z "$exec_cmd"; then
6765    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6766    $echo "$generic_help" 1>&2
6767    exit $EXIT_FAILURE
6768  fi
6769fi # test -z "$show_help"
6770
6771if test -n "$exec_cmd"; then
6772  eval exec $exec_cmd
6773  exit $EXIT_FAILURE
6774fi
6775
6776# We need to display help for each of the modes.
6777case $mode in
6778"") $echo \
6779"Usage: $modename [OPTION]... [MODE-ARG]...
6780
6781Provide generalized library-building support services.
6782
6783    --config          show all configuration variables
6784    --debug           enable verbose shell tracing
6785-n, --dry-run         display commands without modifying any files
6786    --features        display basic configuration information and exit
6787    --finish          same as \`--mode=finish'
6788    --help            display this help message and exit
6789    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6790    --quiet           same as \`--silent'
6791    --silent          don't print informational messages
6792    --tag=TAG         use configuration variables from tag TAG
6793    --version         print version information
6794
6795MODE must be one of the following:
6796
6797      clean           remove files from the build directory
6798      compile         compile a source file into a libtool object
6799      execute         automatically set library path, then run a program
6800      finish          complete the installation of libtool libraries
6801      install         install libraries or executables
6802      link            create a library or an executable
6803      uninstall       remove libraries from an installed directory
6804
6805MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6806a more detailed description of MODE.
6807
6808Report bugs to <bug-libtool@gnu.org>."
6809  exit $EXIT_SUCCESS
6810  ;;
6811
6812clean)
6813  $echo \
6814"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6815
6816Remove files from the build directory.
6817
6818RM is the name of the program to use to delete files associated with each FILE
6819(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6820to RM.
6821
6822If FILE is a libtool library, object or program, all the files associated
6823with it are deleted. Otherwise, only FILE itself is deleted using RM."
6824  ;;
6825
6826compile)
6827  $echo \
6828"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6829
6830Compile a source file into a libtool library object.
6831
6832This mode accepts the following additional options:
6833
6834  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6835  -prefer-pic       try to building PIC objects only
6836  -prefer-non-pic   try to building non-PIC objects only
6837  -static           always build a \`.o' file suitable for static linking
6838
6839COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6840from the given SOURCEFILE.
6841
6842The output file name is determined by removing the directory component from
6843SOURCEFILE, then substituting the C source code suffix \`.c' with the
6844library object suffix, \`.lo'."
6845  ;;
6846
6847execute)
6848  $echo \
6849"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6850
6851Automatically set library path, then run a program.
6852
6853This mode accepts the following additional options:
6854
6855  -dlopen FILE      add the directory containing FILE to the library path
6856
6857This mode sets the library path environment variable according to \`-dlopen'
6858flags.
6859
6860If any of the ARGS are libtool executable wrappers, then they are translated
6861into their corresponding uninstalled binary, and any of their required library
6862directories are added to the library path.
6863
6864Then, COMMAND is executed, with ARGS as arguments."
6865  ;;
6866
6867finish)
6868  $echo \
6869"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6870
6871Complete the installation of libtool libraries.
6872
6873Each LIBDIR is a directory that contains libtool libraries.
6874
6875The commands that this mode executes may require superuser privileges.  Use
6876the \`--dry-run' option if you just want to see what would be executed."
6877  ;;
6878
6879install)
6880  $echo \
6881"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6882
6883Install executables or libraries.
6884
6885INSTALL-COMMAND is the installation command.  The first component should be
6886either the \`install' or \`cp' program.
6887
6888The rest of the components are interpreted as arguments to that command (only
6889BSD-compatible install options are recognized)."
6890  ;;
6891
6892link)
6893  $echo \
6894"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6895
6896Link object files or libraries together to form another library, or to
6897create an executable program.
6898
6899LINK-COMMAND is a command using the C compiler that you would use to create
6900a program from several object files.
6901
6902The following components of LINK-COMMAND are treated specially:
6903
6904  -all-static       do not do any dynamic linking at all
6905  -avoid-version    do not add a version suffix if possible
6906  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6907  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6908  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6909  -export-symbols SYMFILE
6910                    try to export only the symbols listed in SYMFILE
6911  -export-symbols-regex REGEX
6912                    try to export only the symbols matching REGEX
6913  -LLIBDIR          search LIBDIR for required installed libraries
6914  -lNAME            OUTPUT-FILE requires the installed library libNAME
6915  -module           build a library that can dlopened
6916  -no-fast-install  disable the fast-install mode
6917  -no-install       link a not-installable executable
6918  -no-undefined     declare that a library does not refer to external symbols
6919  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6920  -objectlist FILE  Use a list of object files found in FILE to specify objects
6921  -precious-files-regex REGEX
6922                    don't remove output files matching REGEX
6923  -release RELEASE  specify package release information
6924  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6925  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6926  -static           do not do any dynamic linking of uninstalled libtool libraries
6927  -static-libtool-libs
6928                    do not do any dynamic linking of libtool libraries
6929  -version-info CURRENT[:REVISION[:AGE]]
6930                    specify library version info [each variable defaults to 0]
6931
6932All other options (arguments beginning with \`-') are ignored.
6933
6934Every other argument is treated as a filename.  Files ending in \`.la' are
6935treated as uninstalled libtool libraries, other files are standard or library
6936object files.
6937
6938If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6939only library objects (\`.lo' files) may be specified, and \`-rpath' is
6940required, except when creating a convenience library.
6941
6942If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6943using \`ar' and \`ranlib', or on Windows using \`lib'.
6944
6945If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6946is created, otherwise an executable program is created."
6947  ;;
6948
6949uninstall)
6950  $echo \
6951"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6952
6953Remove libraries from an installation directory.
6954
6955RM is the name of the program to use to delete files associated with each FILE
6956(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6957to RM.
6958
6959If FILE is a libtool library, all the files associated with it are deleted.
6960Otherwise, only FILE itself is deleted using RM."
6961  ;;
6962
6963*)
6964  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6965  $echo "$help" 1>&2
6966  exit $EXIT_FAILURE
6967  ;;
6968esac
6969
6970$echo
6971$echo "Try \`$modename --help' for more information about other modes."
6972
6973exit $?
6974
6975# The TAGs below are defined such that we never get into a situation
6976# in which we disable both kinds of libraries.  Given conflicting
6977# choices, we go for a static library, that is the most portable,
6978# since we can't tell whether shared libraries were disabled because
6979# the user asked for that or because the platform doesn't support
6980# them.  This is particularly important on AIX, because we don't
6981# support having both static and shared libraries enabled at the same
6982# time on that platform, so we default to a shared-only configuration.
6983# If a disable-shared tag is given, we'll fallback to a static-only
6984# configuration.  But we'll never go from static-only to shared-only.
6985
6986# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6987disable_libs=shared
6988# ### END LIBTOOL TAG CONFIG: disable-shared
6989
6990# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6991disable_libs=static
6992# ### END LIBTOOL TAG CONFIG: disable-static
6993
6994# Local Variables:
6995# mode:shell-script
6996# sh-indentation:2
6997# End:
6998