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