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