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