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