1# ltmain.sh - Provide generalized library-building support services.
2# NOTE: Changing this file will not affect anything until you rerun ltconfig.
3#
4# Copyright (C) 1996-1999 Free Software Foundation, Inc.
5# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful, but
13# WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15# General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20#
21# As a special exception to the GNU General Public License, if you
22# distribute this file as part of a program that contains a
23# configuration script generated by Autoconf, you may include it under
24# the same distribution terms that you use for the rest of that program.
25
26# Check that we have a working $echo.
27if test "X$1" = X--no-reexec; then
28  # Discard the --no-reexec flag, and continue.
29  shift
30elif test "X$1" = X--fallback-echo; then
31  # Avoid inline document here, it may be left over
32  :
33elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
34  # Yippee, $echo works!
35  :
36else
37  # Restart under the correct shell, and then maybe $echo will work.
38  exec $SHELL "$0" --no-reexec ${1+"$@"}
39fi
40
41if test "X$1" = X--fallback-echo; then
42  # used as fallback echo
43  shift
44  cat <<EOF
45$*
46EOF
47  exit 0
48fi
49
50# The name of this program.
51progname=`$echo "$0" | sed 's%^.*/%%'`
52modename="$progname"
53
54# Constants.
55PROGRAM=ltmain.sh
56PACKAGE=libtool
57VERSION=1.3.5
58TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
59
60default_mode=
61help="Try \`$progname --help' for more information."
62magic="%%%MAGIC variable%%%"
63mkdir="mkdir"
64mv="mv -f"
65rm="rm -f"
66
67# Sed substitution that helps us do robust quoting.  It backslashifies
68# metacharacters that are still active within double-quoted strings.
69Xsed='sed -e 1s/^X//'
70sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
71# test EBCDIC or ASCII
72case `echo '' | od -x` in
73*15*) # EBCDIC based system
74  SP2NL='tr \100 \025'
75  NL2SP='tr \025 \100'
76  ;;
77*) # Assume ASCII based system
78  SP2NL='tr \040 \012'
79  NL2SP='tr \015\012 \040\040'
80  ;;
81esac
82
83# NLS nuisances.
84# Only set LANG and LC_ALL to C if already set.
85# These must not be set unconditionally because not all systems understand
86# e.g. LANG=C (notably SCO).
87# We save the old values to restore during execute mode.
88if test "${LC_ALL+set}" = set; then
89  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
90fi
91if test "${LANG+set}" = set; then
92  save_LANG="$LANG"; LANG=C; export LANG
93fi
94
95if test "$LTCONFIG_VERSION" != "$VERSION"; then
96  echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
97  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
98  exit 1
99fi
100
101if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
102  echo "$modename: not configured to build any kind of library" 1>&2
103  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
104  exit 1
105fi
106
107# Global variables.
108mode=$default_mode
109nonopt=
110prev=
111prevopt=
112run=
113show="$echo"
114show_help=
115execute_dlfiles=
116lo2o="s/\\.lo\$/.${objext}/"
117o2lo="s/\\.${objext}\$/.lo/"
118
119# Parse our command line options once, thoroughly.
120while test $# -gt 0
121do
122  arg="$1"
123  shift
124
125  case "$arg" in
126  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
127  *) optarg= ;;
128  esac
129
130  # If the previous option needs an argument, assign it.
131  if test -n "$prev"; then
132    case "$prev" in
133    execute_dlfiles)
134      eval "$prev=\"\$$prev \$arg\""
135      ;;
136    *)
137      eval "$prev=\$arg"
138      ;;
139    esac
140
141    prev=
142    prevopt=
143    continue
144  fi
145
146  # Have we seen a non-optional argument yet?
147  case "$arg" in
148  --help)
149    show_help=yes
150    ;;
151
152  --version)
153    echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
154    exit 0
155    ;;
156
157  --config)
158    sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
159    exit 0
160    ;;
161
162  --debug)
163    echo "$progname: enabling shell trace mode"
164    set -x
165    ;;
166
167  --dry-run | -n)
168    run=:
169    ;;
170
171  --features)
172    echo "host: $host"
173    if test "$build_libtool_libs" = yes; then
174      echo "enable shared libraries"
175    else
176      echo "disable shared libraries"
177    fi
178    if test "$build_old_libs" = yes; then
179      echo "enable static libraries"
180    else
181      echo "disable static libraries"
182    fi
183    exit 0
184    ;;
185
186  --finish) mode="finish" ;;
187
188  --mode) prevopt="--mode" prev=mode ;;
189  --mode=*) mode="$optarg" ;;
190
191  --quiet | --silent)
192    show=:
193    ;;
194
195  -dlopen)
196    prevopt="-dlopen"
197    prev=execute_dlfiles
198    ;;
199
200  -*)
201    $echo "$modename: unrecognized option \`$arg'" 1>&2
202    $echo "$help" 1>&2
203    exit 1
204    ;;
205
206  *)
207    nonopt="$arg"
208    break
209    ;;
210  esac
211done
212
213if test -n "$prevopt"; then
214  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
215  $echo "$help" 1>&2
216  exit 1
217fi
218
219if test -z "$show_help"; then
220
221  # Infer the operation mode.
222  if test -z "$mode"; then
223    case "$nonopt" in
224    *cc | *++ | gcc* | *-gcc*)
225      mode=link
226      for arg
227      do
228	case "$arg" in
229	-c)
230	   mode=compile
231	   break
232	   ;;
233	esac
234      done
235      ;;
236    *db | *dbx | *strace | *truss)
237      mode=execute
238      ;;
239    *install*|cp|mv)
240      mode=install
241      ;;
242    *rm)
243      mode=uninstall
244      ;;
245    *)
246      # If we have no mode, but dlfiles were specified, then do execute mode.
247      test -n "$execute_dlfiles" && mode=execute
248
249      # Just use the default operation mode.
250      if test -z "$mode"; then
251	if test -n "$nonopt"; then
252	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
253	else
254	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
255	fi
256      fi
257      ;;
258    esac
259  fi
260
261  # Only execute mode is allowed to have -dlopen flags.
262  if test -n "$execute_dlfiles" && test "$mode" != execute; then
263    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
264    $echo "$help" 1>&2
265    exit 1
266  fi
267
268  # Change the help message to a mode-specific one.
269  generic_help="$help"
270  help="Try \`$modename --help --mode=$mode' for more information."
271
272  # These modes are in order of execution frequency so that they run quickly.
273  case "$mode" in
274  # libtool compile mode
275  compile)
276    modename="$modename: compile"
277    # Get the compilation command and the source file.
278    base_compile=
279    lastarg=
280    srcfile="$nonopt"
281    suppress_output=
282
283    user_target=no
284    for arg
285    do
286      # Accept any command-line options.
287      case "$arg" in
288      -o)
289	if test "$user_target" != "no"; then
290	  $echo "$modename: you cannot specify \`-o' more than once" 1>&2
291	  exit 1
292	fi
293	user_target=next
294	;;
295
296      -static)
297	build_old_libs=yes
298	continue
299	;;
300      esac
301
302      case "$user_target" in
303      next)
304	# The next one is the -o target name
305	user_target=yes
306	continue
307	;;
308      yes)
309	# We got the output file
310	user_target=set
311	libobj="$arg"
312	continue
313	;;
314      esac
315
316      # Accept the current argument as the source file.
317      lastarg="$srcfile"
318      srcfile="$arg"
319
320      # Aesthetically quote the previous argument.
321
322      # Backslashify any backslashes, double quotes, and dollar signs.
323      # These are the only characters that are still specially
324      # interpreted inside of double-quoted scrings.
325      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
326
327      # Double-quote args containing other shell metacharacters.
328      # Many Bourne shells cannot handle close brackets correctly in scan
329      # sets, so we specify it separately.
330      case "$lastarg" in
331      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
332	lastarg="\"$lastarg\""
333	;;
334      esac
335
336      # Add the previous argument to base_compile.
337      if test -z "$base_compile"; then
338	base_compile="$lastarg"
339      else
340	base_compile="$base_compile $lastarg"
341      fi
342    done
343
344    case "$user_target" in
345    set)
346      ;;
347    no)
348      # Get the name of the library object.
349      libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
350      ;;
351    *)
352      $echo "$modename: you must specify a target with \`-o'" 1>&2
353      exit 1
354      ;;
355    esac
356
357    # Recognize several different file suffixes.
358    # If the user specifies -o file.o, it is replaced with file.lo
359    xform='[cCFSfmso]'
360    case "$libobj" in
361    *.ada) xform=ada ;;
362    *.adb) xform=adb ;;
363    *.ads) xform=ads ;;
364    *.asm) xform=asm ;;
365    *.c++) xform=c++ ;;
366    *.cc) xform=cc ;;
367    *.cpp) xform=cpp ;;
368    *.cxx) xform=cxx ;;
369    *.f90) xform=f90 ;;
370    *.for) xform=for ;;
371    esac
372
373    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
374
375    case "$libobj" in
376    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
377    *)
378      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
379      exit 1
380      ;;
381    esac
382
383    if test -z "$base_compile"; then
384      $echo "$modename: you must specify a compilation command" 1>&2
385      $echo "$help" 1>&2
386      exit 1
387    fi
388
389    # Delete any leftover library objects.
390    if test "$build_old_libs" = yes; then
391      removelist="$obj $libobj"
392    else
393      removelist="$libobj"
394    fi
395
396    $run $rm $removelist
397    trap "$run $rm $removelist; exit 1" 1 2 15
398
399    # Calculate the filename of the output object if compiler does
400    # not support -o with -c
401    if test "$compiler_c_o" = no; then
402      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
403      lockfile="$output_obj.lock"
404      removelist="$removelist $output_obj $lockfile"
405      trap "$run $rm $removelist; exit 1" 1 2 15
406    else
407      need_locks=no
408      lockfile=
409    fi
410
411    # Lock this critical section if it is needed
412    # We use this script file to make the link, it avoids creating a new file
413    if test "$need_locks" = yes; then
414      until ln "$0" "$lockfile" 2>/dev/null; do
415	$show "Waiting for $lockfile to be removed"
416	sleep 2
417      done
418    elif test "$need_locks" = warn; then
419      if test -f "$lockfile"; then
420	echo "\
421*** ERROR, $lockfile exists and contains:
422`cat $lockfile 2>/dev/null`
423
424This indicates that another process is trying to use the same
425temporary object file, and libtool could not work around it because
426your compiler does not support \`-c' and \`-o' together.  If you
427repeat this compilation, it may succeed, by chance, but you had better
428avoid parallel builds (make -j) in this platform, or get a better
429compiler."
430
431	$run $rm $removelist
432	exit 1
433      fi
434      echo $srcfile > "$lockfile"
435    fi
436
437    if test -n "$fix_srcfile_path"; then
438      eval srcfile=\"$fix_srcfile_path\"
439    fi
440
441    # Only build a PIC object if we are building libtool libraries.
442    if test "$build_libtool_libs" = yes; then
443      # Without this assignment, base_compile gets emptied.
444      fbsd_hideous_sh_bug=$base_compile
445
446      # All platforms use -DPIC, to notify preprocessed assembler code.
447      command="$base_compile $srcfile $pic_flag -DPIC"
448      if test "$build_old_libs" = yes; then
449	lo_libobj="$libobj"
450	dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
451	if test "X$dir" = "X$libobj"; then
452	  dir="$objdir"
453	else
454	  dir="$dir/$objdir"
455	fi
456	libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
457
458	if test -d "$dir"; then
459	  $show "$rm $libobj"
460	  $run $rm $libobj
461	else
462	  $show "$mkdir $dir"
463	  $run $mkdir $dir
464	  status=$?
465	  if test $status -ne 0 && test ! -d $dir; then
466	    exit $status
467	  fi
468	fi
469      fi
470      if test "$compiler_o_lo" = yes; then
471	output_obj="$libobj"
472	command="$command -o $output_obj"
473      elif test "$compiler_c_o" = yes; then
474	output_obj="$obj"
475	command="$command -o $output_obj"
476      fi
477
478      $run $rm "$output_obj"
479      $show "$command"
480      if $run eval "$command"; then :
481      else
482	test -n "$output_obj" && $run $rm $removelist
483	exit 1
484      fi
485
486      if test "$need_locks" = warn &&
487	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
488	echo "\
489*** ERROR, $lockfile contains:
490`cat $lockfile 2>/dev/null`
491
492but it should contain:
493$srcfile
494
495This indicates that another process is trying to use the same
496temporary object file, and libtool could not work around it because
497your compiler does not support \`-c' and \`-o' together.  If you
498repeat this compilation, it may succeed, by chance, but you had better
499avoid parallel builds (make -j) in this platform, or get a better
500compiler."
501
502	$run $rm $removelist
503	exit 1
504      fi
505
506      # Just move the object if needed, then go on to compile the next one
507      if test x"$output_obj" != x"$libobj"; then
508	$show "$mv $output_obj $libobj"
509	if $run $mv $output_obj $libobj; then :
510	else
511	  error=$?
512	  $run $rm $removelist
513	  exit $error
514	fi
515      fi
516
517      # If we have no pic_flag, then copy the object into place and finish.
518      if test -z "$pic_flag" && test "$build_old_libs" = yes; then
519	# Rename the .lo from within objdir to obj
520	if test -f $obj; then
521	  $show $rm $obj
522	  $run $rm $obj
523	fi
524
525	$show "$mv $libobj $obj"
526	if $run $mv $libobj $obj; then :
527	else
528	  error=$?
529	  $run $rm $removelist
530	  exit $error
531	fi
532
533	xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
534	if test "X$xdir" = "X$obj"; then
535	  xdir="."
536	else
537	  xdir="$xdir"
538	fi
539	baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
540	libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
541	# Now arrange that obj and lo_libobj become the same file
542	$show "(cd $xdir && $LN_S $baseobj $libobj)"
543	if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
544	  exit 0
545	else
546	  error=$?
547	  $run $rm $removelist
548	  exit $error
549	fi
550      fi
551
552      # Allow error messages only from the first compilation.
553      suppress_output=' >/dev/null 2>&1'
554    fi
555
556    # Only build a position-dependent object if we build old libraries.
557    if test "$build_old_libs" = yes; then
558      command="$base_compile $srcfile"
559      if test "$compiler_c_o" = yes; then
560	command="$command -o $obj"
561	output_obj="$obj"
562      fi
563
564      # Suppress compiler output if we already did a PIC compilation.
565      command="$command$suppress_output"
566      $run $rm "$output_obj"
567      $show "$command"
568      if $run eval "$command"; then :
569      else
570	$run $rm $removelist
571	exit 1
572      fi
573
574      if test "$need_locks" = warn &&
575	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
576	echo "\
577*** ERROR, $lockfile contains:
578`cat $lockfile 2>/dev/null`
579
580but it should contain:
581$srcfile
582
583This indicates that another process is trying to use the same
584temporary object file, and libtool could not work around it because
585your compiler does not support \`-c' and \`-o' together.  If you
586repeat this compilation, it may succeed, by chance, but you had better
587avoid parallel builds (make -j) in this platform, or get a better
588compiler."
589
590	$run $rm $removelist
591	exit 1
592      fi
593
594      # Just move the object if needed
595      if test x"$output_obj" != x"$obj"; then
596	$show "$mv $output_obj $obj"
597	if $run $mv $output_obj $obj; then :
598	else
599	  error=$?
600	  $run $rm $removelist
601	  exit $error
602	fi
603      fi
604
605      # Create an invalid libtool object if no PIC, so that we do not
606      # accidentally link it into a program.
607      if test "$build_libtool_libs" != yes; then
608	$show "echo timestamp > $libobj"
609	$run eval "echo timestamp > \$libobj" || exit $?
610      else
611	# Move the .lo from within objdir
612	$show "$mv $libobj $lo_libobj"
613	if $run $mv $libobj $lo_libobj; then :
614	else
615	  error=$?
616	  $run $rm $removelist
617	  exit $error
618	fi
619      fi
620    fi
621
622    # Unlock the critical section if it was locked
623    if test "$need_locks" != no; then
624      $rm "$lockfile"
625    fi
626
627    exit 0
628    ;;
629
630  # libtool link mode
631  link)
632    modename="$modename: link"
633    case "$host" in
634    *-*-cygwin* | *-*-mingw* | *-*-os2*)
635      # It is impossible to link a dll without this setting, and
636      # we shouldn't force the makefile maintainer to figure out
637      # which system we are compiling for in order to pass an extra
638      # flag for every libtool invokation.
639      # allow_undefined=no
640
641      # FIXME: Unfortunately, there are problems with the above when trying
642      # to make a dll which has undefined symbols, in which case not
643      # even a static library is built.  For now, we need to specify
644      # -no-undefined on the libtool link line when we can be certain
645      # that all symbols are satisfied, otherwise we get a static library.
646      allow_undefined=yes
647
648      # This is a source program that is used to create dlls on Windows
649      # Don't remove nor modify the starting and closing comments
650# /* ltdll.c starts here */
651# #define WIN32_LEAN_AND_MEAN
652# #include <windows.h>
653# #undef WIN32_LEAN_AND_MEAN
654# #include <stdio.h>
655#
656# #ifndef __CYGWIN__
657# #  ifdef __CYGWIN32__
658# #    define __CYGWIN__ __CYGWIN32__
659# #  endif
660# #endif
661#
662# #ifdef __cplusplus
663# extern "C" {
664# #endif
665# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
666# #ifdef __cplusplus
667# }
668# #endif
669#
670# #ifdef __CYGWIN__
671# #include <cygwin/cygwin_dll.h>
672# DECLARE_CYGWIN_DLL( DllMain );
673# #endif
674# HINSTANCE __hDllInstance_base;
675#
676# BOOL APIENTRY
677# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
678# {
679#   __hDllInstance_base = hInst;
680#   return TRUE;
681# }
682# /* ltdll.c ends here */
683      # This is a source program that is used to create import libraries
684      # on Windows for dlls which lack them. Don't remove nor modify the
685      # starting and closing comments
686# /* impgen.c starts here */
687# /*   Copyright (C) 1999 Free Software Foundation, Inc.
688# 
689#  This file is part of GNU libtool.
690# 
691#  This program is free software; you can redistribute it and/or modify
692#  it under the terms of the GNU General Public License as published by
693#  the Free Software Foundation; either version 2 of the License, or
694#  (at your option) any later version.
695# 
696#  This program is distributed in the hope that it will be useful,
697#  but WITHOUT ANY WARRANTY; without even the implied warranty of
698#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
699#  GNU General Public License for more details.
700# 
701#  You should have received a copy of the GNU General Public License
702#  along with this program; if not, write to the Free Software
703#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
704#  */
705# 
706#  #include <stdio.h>		/* for printf() */
707#  #include <unistd.h>		/* for open(), lseek(), read() */
708#  #include <fcntl.h>		/* for O_RDONLY, O_BINARY */
709#  #include <string.h>		/* for strdup() */
710# 
711#  static unsigned int
712#  pe_get16 (fd, offset)
713#       int fd;
714#       int offset;
715#  {
716#    unsigned char b[2];
717#    lseek (fd, offset, SEEK_SET);
718#    read (fd, b, 2);
719#    return b[0] + (b[1]<<8);
720#  }
721# 
722#  static unsigned int
723#  pe_get32 (fd, offset)
724#      int fd;
725#      int offset;
726#  {
727#    unsigned char b[4];
728#    lseek (fd, offset, SEEK_SET);
729#    read (fd, b, 4);
730#    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
731#  }
732# 
733#  static unsigned int
734#  pe_as32 (ptr)
735#       void *ptr;
736#  {
737#    unsigned char *b = ptr;
738#    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
739#  }
740# 
741#  int
742#  main (argc, argv)
743#      int argc;
744#      char *argv[];
745#  {
746#      int dll;
747#      unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
748#      unsigned long export_rva, export_size, nsections, secptr, expptr;
749#      unsigned long name_rvas, nexp;
750#      unsigned char *expdata, *erva;
751#      char *filename, *dll_name;
752# 
753#      filename = argv[1];
754# 
755#      dll = open(filename, O_RDONLY|O_BINARY);
756#      if (!dll)
757#  	return 1;
758# 
759#      dll_name = filename;
760#    
761#      for (i=0; filename[i]; i++)
762#  	if (filename[i] == '/' || filename[i] == '\\'  || filename[i] == ':')
763#  	    dll_name = filename + i +1;
764# 
765#      pe_header_offset = pe_get32 (dll, 0x3c);
766#      opthdr_ofs = pe_header_offset + 4 + 20;
767#      num_entries = pe_get32 (dll, opthdr_ofs + 92);
768# 
769#      if (num_entries < 1) /* no exports */
770#  	return 1;
771# 
772#      export_rva = pe_get32 (dll, opthdr_ofs + 96);
773#      export_size = pe_get32 (dll, opthdr_ofs + 100);
774#      nsections = pe_get16 (dll, pe_header_offset + 4 +2);
775#      secptr = (pe_header_offset + 4 + 20 +
776#  	      pe_get16 (dll, pe_header_offset + 4 + 16));
777# 
778#      expptr = 0;
779#      for (i = 0; i < nsections; i++)
780#      {
781#  	char sname[8];
782#  	unsigned long secptr1 = secptr + 40 * i;
783#  	unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
784#  	unsigned long vsize = pe_get32 (dll, secptr1 + 16);
785#  	unsigned long fptr = pe_get32 (dll, secptr1 + 20);
786#  	lseek(dll, secptr1, SEEK_SET);
787#  	read(dll, sname, 8);
788#  	if (vaddr <= export_rva && vaddr+vsize > export_rva)
789#  	{
790#  	    expptr = fptr + (export_rva - vaddr);
791#  	    if (export_rva + export_size > vaddr + vsize)
792#  		export_size = vsize - (export_rva - vaddr);
793#  	    break;
794#  	}
795#      }
796# 
797#      expdata = (unsigned char*)malloc(export_size);
798#      lseek (dll, expptr, SEEK_SET);
799#      read (dll, expdata, export_size);
800#      erva = expdata - export_rva;
801# 
802#      nexp = pe_as32 (expdata+24);
803#      name_rvas = pe_as32 (expdata+32);
804# 
805#      printf ("EXPORTS\n");
806#      for (i = 0; i<nexp; i++)
807#      {
808#  	unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
809#  	printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
810#      }
811# 
812#      return 0;
813#  }
814# /* impgen.c ends here */
815      ;;
816    *)
817      allow_undefined=yes
818      ;;
819    esac
820    compile_command="$nonopt"
821    finalize_command="$nonopt"
822
823    compile_rpath=
824    finalize_rpath=
825    compile_shlibpath=
826    finalize_shlibpath=
827    convenience=
828    old_convenience=
829    deplibs=
830    linkopts=
831
832    if test -n "$shlibpath_var"; then
833      # get the directories listed in $shlibpath_var
834      eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
835    else
836      lib_search_path=
837    fi
838    # now prepend the system-specific ones
839    eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
840    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
841    
842    avoid_version=no
843    dlfiles=
844    dlprefiles=
845    dlself=no
846    export_dynamic=no
847    export_symbols=
848    export_symbols_regex=
849    generated=
850    libobjs=
851    link_against_libtool_libs=
852    ltlibs=
853    module=no
854    objs=
855    prefer_static_libs=no
856    preload=no
857    prev=
858    prevarg=
859    release=
860    rpath=
861    xrpath=
862    perm_rpath=
863    temp_rpath=
864    thread_safe=no
865    vinfo=
866
867    # We need to know -static, to get the right output filenames.
868    for arg
869    do
870      case "$arg" in
871      -all-static | -static)
872	if test "X$arg" = "X-all-static"; then
873	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
874	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
875	  fi
876	  if test -n "$link_static_flag"; then
877	    dlopen_self=$dlopen_self_static
878	  fi
879	else
880	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
881	    dlopen_self=$dlopen_self_static
882	  fi
883	fi
884	build_libtool_libs=no
885	build_old_libs=yes
886	prefer_static_libs=yes
887	break
888	;;
889      esac
890    done
891
892    # See if our shared archives depend on static archives.
893    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
894
895    # Go through the arguments, transforming them on the way.
896    while test $# -gt 0; do
897      arg="$1"
898      shift
899
900      # If the previous option needs an argument, assign it.
901      if test -n "$prev"; then
902	case "$prev" in
903	output)
904	  compile_command="$compile_command @OUTPUT@"
905	  finalize_command="$finalize_command @OUTPUT@"
906	  ;;
907	esac
908
909	case "$prev" in
910	dlfiles|dlprefiles)
911	  if test "$preload" = no; then
912	    # Add the symbol object into the linking commands.
913	    compile_command="$compile_command @SYMFILE@"
914	    finalize_command="$finalize_command @SYMFILE@"
915	    preload=yes
916	  fi
917	  case "$arg" in
918	  *.la | *.lo) ;;  # We handle these cases below.
919	  force)
920	    if test "$dlself" = no; then
921	      dlself=needless
922	      export_dynamic=yes
923	    fi
924	    prev=
925	    continue
926	    ;;
927	  self)
928	    if test "$prev" = dlprefiles; then
929	      dlself=yes
930	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
931	      dlself=yes
932	    else
933	      dlself=needless
934	      export_dynamic=yes
935	    fi
936	    prev=
937	    continue
938	    ;;
939	  *)
940	    if test "$prev" = dlfiles; then
941	      dlfiles="$dlfiles $arg"
942	    else
943	      dlprefiles="$dlprefiles $arg"
944	    fi
945	    prev=
946	    ;;
947	  esac
948	  ;;
949	expsyms)
950	  export_symbols="$arg"
951	  if test ! -f "$arg"; then
952	    $echo "$modename: symbol file \`$arg' does not exist"
953	    exit 1
954	  fi
955	  prev=
956	  continue
957	  ;;
958	expsyms_regex)
959	  export_symbols_regex="$arg"
960	  prev=
961	  continue
962	  ;;
963	release)
964	  release="-$arg"
965	  prev=
966	  continue
967	  ;;
968	rpath | xrpath)
969	  # We need an absolute path.
970	  case "$arg" in
971	  [\\/]* | [A-Za-z]:[\\/]*) ;;
972	  *)
973	    $echo "$modename: only absolute run-paths are allowed" 1>&2
974	    exit 1
975	    ;;
976	  esac
977	  if test "$prev" = rpath; then
978	    case "$rpath " in
979	    *" $arg "*) ;;
980	    *) rpath="$rpath $arg" ;;
981	    esac
982	  else
983	    case "$xrpath " in
984	    *" $arg "*) ;;
985	    *) xrpath="$xrpath $arg" ;;
986	    esac
987	  fi
988	  prev=
989	  continue
990	  ;;
991	*)
992	  eval "$prev=\"\$arg\""
993	  prev=
994	  continue
995	  ;;
996	esac
997      fi
998
999      prevarg="$arg"
1000
1001      case "$arg" in
1002      -all-static)
1003	if test -n "$link_static_flag"; then
1004	  compile_command="$compile_command $link_static_flag"
1005	  finalize_command="$finalize_command $link_static_flag"
1006	fi
1007	continue
1008	;;
1009
1010      -allow-undefined)
1011	# FIXME: remove this flag sometime in the future.
1012	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1013	continue
1014	;;
1015
1016      -avoid-version)
1017	avoid_version=yes
1018	continue
1019	;;
1020
1021      -dlopen)
1022	prev=dlfiles
1023	continue
1024	;;
1025
1026      -dlpreopen)
1027	prev=dlprefiles
1028	continue
1029	;;
1030
1031      -export-dynamic)
1032	export_dynamic=yes
1033	continue
1034	;;
1035
1036      -export-symbols | -export-symbols-regex)
1037	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1038	  $echo "$modename: not more than one -exported-symbols argument allowed"
1039	  exit 1
1040	fi
1041	if test "X$arg" = "X-export-symbols"; then
1042	  prev=expsyms
1043	else
1044	  prev=expsyms_regex
1045	fi
1046	continue
1047	;;
1048
1049      -L*)
1050	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1051	# We need an absolute path.
1052	case "$dir" in
1053	[\\/]* | [A-Za-z]:[\\/]*) ;;
1054	*)
1055	  absdir=`cd "$dir" && pwd`
1056	  if test -z "$absdir"; then
1057	    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1058	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1059	    absdir="$dir"
1060	  fi
1061	  dir="$absdir"
1062	  ;;
1063	esac
1064	case " $deplibs " in
1065	*" $arg "*) ;;
1066	*) deplibs="$deplibs $arg";;
1067	esac
1068	case " $lib_search_path " in
1069	*" $dir "*) ;;
1070	*) lib_search_path="$lib_search_path $dir";;
1071	esac
1072	case "$host" in
1073	*-*-cygwin* | *-*-mingw* | *-*-os2*)
1074	  dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1075	  case ":$dllsearchpath:" in
1076	  ::) dllsearchpath="$dllsearchdir";;
1077	  *":$dllsearchdir:"*) ;;
1078	  *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1079	  esac
1080	  ;;
1081	esac
1082	;;
1083
1084      -l*)
1085	if test "$arg" = "-lc"; then
1086	  case "$host" in
1087	  *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1088	    # These systems don't actually have c library (as such)
1089	    continue
1090	    ;;
1091	  *-*-rhapsody* | *-*-darwin1.[012])
1092	    # Rhapsody C library is in the System framework
1093	    deplibs="$deplibs -framework System"
1094	    continue
1095	    ;;
1096	  esac
1097	elif test "$arg" = "-lm"; then
1098	  case "$host" in
1099	  *-*-cygwin* | *-*-beos*)
1100	    # These systems don't actually have math library (as such)
1101	    continue
1102	    ;;
1103	  *-*-rhapsody* | *-*-darwin1.[012])
1104	    # Rhapsody math library is in the System framework
1105	    deplibs="$deplibs -framework System"
1106	    continue
1107	    ;;
1108	  esac
1109	fi
1110	deplibs="$deplibs $arg"
1111	;;
1112
1113      -module)
1114	module=yes
1115	continue
1116	;;
1117
1118      -no-undefined)
1119	allow_undefined=no
1120	continue
1121	;;
1122
1123      -o) prev=output ;;
1124
1125      -release)
1126	prev=release
1127	continue
1128	;;
1129
1130      -rpath)
1131	prev=rpath
1132	continue
1133	;;
1134
1135      -R)
1136	prev=xrpath
1137	continue
1138	;;
1139
1140      -R*)
1141	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1142	# We need an absolute path.
1143	case "$dir" in
1144	[\\/]* | [A-Za-z]:[\\/]*) ;;
1145	*)
1146	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1147	  exit 1
1148	  ;;
1149	esac
1150	case "$xrpath " in
1151	*" $dir "*) ;;
1152	*) xrpath="$xrpath $dir" ;;
1153	esac
1154	continue
1155	;;
1156
1157      -static)
1158	# If we have no pic_flag, then this is the same as -all-static.
1159	if test -z "$pic_flag" && test -n "$link_static_flag"; then
1160	  compile_command="$compile_command $link_static_flag"
1161	  finalize_command="$finalize_command $link_static_flag"
1162	fi
1163	continue
1164	;;
1165
1166      -thread-safe)
1167	thread_safe=yes
1168	continue
1169	;;
1170
1171      -version-info)
1172	prev=vinfo
1173	continue
1174	;;
1175
1176      # Some other compiler flag.
1177      -* | +*)
1178	# Unknown arguments in both finalize_command and compile_command need
1179	# to be aesthetically quoted because they are evaled later.
1180	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1181	case "$arg" in
1182	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
1183	  arg="\"$arg\""
1184	  ;;
1185	esac
1186	;;
1187
1188      *.o | *.obj | *.a | *.lib)
1189	# A standard object.
1190	objs="$objs $arg"
1191	;;
1192
1193      *.lo)
1194	# A library object.
1195	if test "$prev" = dlfiles; then
1196	  dlfiles="$dlfiles $arg"
1197	  if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1198	    prev=
1199	    continue
1200	  else
1201	    # If libtool objects are unsupported, then we need to preload.
1202	    prev=dlprefiles
1203	  fi
1204	fi
1205
1206	if test "$prev" = dlprefiles; then
1207	  # Preload the old-style object.
1208	  dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1209	  prev=
1210	fi
1211	libobjs="$libobjs $arg"
1212	;;
1213
1214      *.la)
1215	# A libtool-controlled library.
1216
1217	dlname=
1218	libdir=
1219	library_names=
1220	old_library=
1221
1222	# Check to see that this really is a libtool archive.
1223	if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1224	else
1225	  $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1226	  exit 1
1227	fi
1228
1229	# If the library was installed with an old release of libtool,
1230	# it will not redefine variable installed.
1231	installed=yes
1232
1233	# Read the .la file
1234	# If there is no directory component, then add one.
1235	case "$arg" in
1236	*/* | *\\*) . $arg ;;
1237	*) . ./$arg ;;
1238	esac
1239
1240	# Get the name of the library we link against.
1241	linklib=
1242	for l in $old_library $library_names; do
1243	  linklib="$l"
1244	done
1245
1246	if test -z "$linklib"; then
1247	  $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1248	  exit 1
1249	fi
1250
1251	# Find the relevant object directory and library name.
1252	name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1253
1254	if test "X$installed" = Xyes; then
1255	  dir="$libdir"
1256	else
1257	  dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1258	  if test "X$dir" = "X$arg"; then
1259	    dir="$objdir"
1260	  else
1261	    dir="$dir/$objdir"
1262	  fi
1263	fi
1264
1265	if test -n "$dependency_libs"; then
1266	  # Extract -R and -L from dependency_libs
1267	  temp_deplibs=
1268	  for deplib in $dependency_libs; do
1269	    case "$deplib" in
1270	    -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1271		 case " $rpath $xrpath " in
1272		 *" $temp_xrpath "*) ;;
1273		 *) xrpath="$xrpath $temp_xrpath";;
1274		 esac;;
1275	    -L*) case "$compile_command $temp_deplibs " in
1276		 *" $deplib "*) ;;
1277		 *) temp_deplibs="$temp_deplibs $deplib";;
1278		 esac
1279		 temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1280		 case " $lib_search_path " in
1281		 *" $temp_dir "*) ;;
1282		 *) lib_search_path="$lib_search_path $temp_dir";;
1283		 esac
1284		 ;;
1285	    *) temp_deplibs="$temp_deplibs $deplib";;
1286	    esac
1287	  done
1288	  dependency_libs="$temp_deplibs"
1289	fi
1290
1291	if test -z "$libdir"; then
1292	  # It is a libtool convenience library, so add in its objects.
1293	  convenience="$convenience $dir/$old_library"
1294	  old_convenience="$old_convenience $dir/$old_library"
1295	  deplibs="$deplibs$dependency_libs"
1296	  compile_command="$compile_command $dir/$old_library$dependency_libs"
1297	  finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1298	  continue
1299	fi
1300
1301	# This library was specified with -dlopen.
1302	if test "$prev" = dlfiles; then
1303	  dlfiles="$dlfiles $arg"
1304	  if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1305	    # If there is no dlname, no dlopen support or we're linking statically,
1306	    # we need to preload.
1307	    prev=dlprefiles
1308	  else
1309	    # We should not create a dependency on this library, but we
1310	    # may need any libraries it requires.
1311	    compile_command="$compile_command$dependency_libs"
1312	    finalize_command="$finalize_command$dependency_libs"
1313	    prev=
1314	    continue
1315	  fi
1316	fi
1317
1318	# The library was specified with -dlpreopen.
1319	if test "$prev" = dlprefiles; then
1320	  # Prefer using a static library (so that no silly _DYNAMIC symbols
1321	  # are required to link).
1322	  if test -n "$old_library"; then
1323	    dlprefiles="$dlprefiles $dir/$old_library"
1324	  else
1325	    dlprefiles="$dlprefiles $dir/$linklib"
1326	  fi
1327	  prev=
1328	fi
1329
1330	if test -n "$library_names" &&
1331	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1332	  link_against_libtool_libs="$link_against_libtool_libs $arg"
1333	  if test -n "$shlibpath_var"; then
1334	    # Make sure the rpath contains only unique directories.
1335	    case "$temp_rpath " in
1336	    *" $dir "*) ;;
1337	    *) temp_rpath="$temp_rpath $dir" ;;
1338	    esac
1339	  fi
1340
1341	  # We need an absolute path.
1342	  case "$dir" in
1343	  [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1344	  *)
1345	    absdir=`cd "$dir" && pwd`
1346	    if test -z "$absdir"; then
1347	      $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1348	      $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1349	      absdir="$dir"
1350	    fi
1351	    ;;
1352	  esac
1353	  
1354	  # This is the magic to use -rpath.
1355	  # Skip directories that are in the system default run-time
1356	  # search path, unless they have been requested with -R.
1357	  case " $sys_lib_dlsearch_path " in
1358	  *" $absdir "*) ;;
1359	  *)
1360	    case "$compile_rpath " in
1361	    *" $absdir "*) ;;
1362	    *) compile_rpath="$compile_rpath $absdir" 
1363	    esac
1364	    ;;
1365	  esac
1366
1367	  case " $sys_lib_dlsearch_path " in
1368	  *" $libdir "*) ;;
1369	  *)
1370	    case "$finalize_rpath " in
1371	    *" $libdir "*) ;;
1372	    *) finalize_rpath="$finalize_rpath $libdir"
1373	    esac
1374	    ;;
1375	  esac
1376
1377	  lib_linked=yes
1378	  case "$hardcode_action" in
1379	  immediate | unsupported)
1380	    if test "$hardcode_direct" = no; then
1381	      compile_command="$compile_command $dir/$linklib"
1382	      deplibs="$deplibs $dir/$linklib"
1383	      case "$host" in
1384	      *-*-cygwin* | *-*-mingw* | *-*-os2*)
1385		dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1386		if test -n "$dllsearchpath"; then
1387		  dllsearchpath="$dllsearchpath:$dllsearchdir"
1388		else
1389		  dllsearchpath="$dllsearchdir"
1390		fi
1391		;;
1392	      esac
1393	    elif test "$hardcode_minus_L" = no; then
1394	      case "$host" in
1395	      *-*-sunos*)
1396		compile_shlibpath="$compile_shlibpath$dir:"
1397		;;
1398	      esac
1399	      case "$compile_command " in
1400	      *" -L$dir "*) ;;
1401	      *) compile_command="$compile_command -L$dir";;
1402	      esac
1403	      compile_command="$compile_command -l$name"
1404	      deplibs="$deplibs -L$dir -l$name"
1405	    elif test "$hardcode_shlibpath_var" = no; then
1406	      case ":$compile_shlibpath:" in
1407	      *":$dir:"*) ;;
1408	      *) compile_shlibpath="$compile_shlibpath$dir:";;
1409	      esac
1410	      compile_command="$compile_command -l$name"
1411	      deplibs="$deplibs -l$name"
1412	    else
1413	      lib_linked=no
1414	    fi
1415	    ;;
1416
1417	  relink)
1418	    if test "$hardcode_direct" = yes; then
1419	      compile_command="$compile_command $absdir/$linklib"
1420	      deplibs="$deplibs $absdir/$linklib"
1421	    elif test "$hardcode_minus_L" = yes; then
1422	      case "$compile_command " in
1423	      *" -L$absdir "*) ;;
1424	      *) compile_command="$compile_command -L$absdir";;
1425	      esac
1426	      compile_command="$compile_command -l$name"
1427	      deplibs="$deplibs -L$absdir -l$name"
1428	    elif test "$hardcode_shlibpath_var" = yes; then
1429	      case ":$compile_shlibpath:" in
1430	      *":$absdir:"*) ;;
1431	      *) compile_shlibpath="$compile_shlibpath$absdir:";;
1432	      esac
1433	      compile_command="$compile_command -l$name"
1434	      deplibs="$deplibs -l$name"
1435	    else
1436	      lib_linked=no
1437	    fi
1438	    ;;
1439
1440	  *)
1441	    lib_linked=no
1442	    ;;
1443	  esac
1444
1445	  if test "$lib_linked" != yes; then
1446	    $echo "$modename: configuration error: unsupported hardcode properties"
1447	    exit 1
1448	  fi
1449
1450	  # Finalize command for both is simple: just hardcode it.
1451	  if test "$hardcode_direct" = yes; then
1452	    finalize_command="$finalize_command $libdir/$linklib"
1453	  elif test "$hardcode_minus_L" = yes; then
1454	    case "$finalize_command " in
1455	    *" -L$libdir "*) ;;
1456	    *) finalize_command="$finalize_command -L$libdir";;
1457	    esac
1458	    finalize_command="$finalize_command -l$name"
1459	  elif test "$hardcode_shlibpath_var" = yes; then
1460	    case ":$finalize_shlibpath:" in
1461	    *":$libdir:"*) ;;
1462	    *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1463	    esac
1464	    finalize_command="$finalize_command -l$name"
1465	  else
1466	    # We cannot seem to hardcode it, guess we'll fake it.
1467	    case "$finalize_command " in
1468	    *" -L$dir "*) ;;
1469	    *) finalize_command="$finalize_command -L$libdir";;
1470	    esac
1471	    finalize_command="$finalize_command -l$name"
1472	  fi
1473	else
1474	  # Transform directly to old archives if we don't build new libraries.
1475	  if test -n "$pic_flag" && test -z "$old_library"; then
1476	    $echo "$modename: cannot find static library for \`$arg'" 1>&2
1477	    exit 1
1478	  fi
1479
1480	  # Here we assume that one of hardcode_direct or hardcode_minus_L
1481	  # is not unsupported.  This is valid on all known static and
1482	  # shared platforms.
1483	  if test "$hardcode_direct" != unsupported; then
1484	    test -n "$old_library" && linklib="$old_library"
1485	    compile_command="$compile_command $dir/$linklib"
1486	    finalize_command="$finalize_command $dir/$linklib"
1487	  else
1488	    case "$compile_command " in
1489	    *" -L$dir "*) ;;
1490	    *) compile_command="$compile_command -L$dir";;
1491	    esac
1492	    compile_command="$compile_command -l$name"
1493	    case "$finalize_command " in
1494	    *" -L$dir "*) ;;
1495	    *) finalize_command="$finalize_command -L$dir";;
1496	    esac
1497	    finalize_command="$finalize_command -l$name"
1498	  fi
1499	fi
1500
1501	# Add in any libraries that this one depends upon.
1502	compile_command="$compile_command$dependency_libs"
1503	finalize_command="$finalize_command$dependency_libs"
1504	continue
1505	;;
1506
1507      # Some other compiler argument.
1508      *)
1509	# Unknown arguments in both finalize_command and compile_command need
1510	# to be aesthetically quoted because they are evaled later.
1511	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1512	case "$arg" in
1513	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
1514	  arg="\"$arg\""
1515	  ;;
1516	esac
1517	;;
1518      esac
1519
1520      # Now actually substitute the argument into the commands.
1521      if test -n "$arg"; then
1522	compile_command="$compile_command $arg"
1523	finalize_command="$finalize_command $arg"
1524      fi
1525    done
1526
1527    if test -n "$prev"; then
1528      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1529      $echo "$help" 1>&2
1530      exit 1
1531    fi
1532
1533    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1534      eval arg=\"$export_dynamic_flag_spec\"
1535      compile_command="$compile_command $arg"
1536      finalize_command="$finalize_command $arg"
1537    fi
1538
1539    oldlibs=
1540    # calculate the name of the file, without its directory
1541    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1542    libobjs_save="$libobjs"
1543
1544    case "$output" in
1545    "")
1546      $echo "$modename: you must specify an output file" 1>&2
1547      $echo "$help" 1>&2
1548      exit 1
1549      ;;
1550
1551    *.a | *.lib)
1552      if test -n "$link_against_libtool_libs"; then
1553	$echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1554	exit 1
1555      fi
1556
1557      if test -n "$deplibs"; then
1558	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1559      fi
1560
1561      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1562	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1563      fi
1564
1565      if test -n "$rpath"; then
1566	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1567      fi
1568
1569      if test -n "$xrpath"; then
1570	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1571      fi
1572
1573      if test -n "$vinfo"; then
1574	$echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1575      fi
1576
1577      if test -n "$release"; then
1578	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1579      fi
1580
1581      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1582	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1583      fi
1584
1585      # Now set the variables for building old libraries.
1586      build_libtool_libs=no
1587      oldlibs="$output"
1588      ;;
1589
1590    *.la)
1591      # Make sure we only generate libraries of the form `libNAME.la'.
1592      case "$outputname" in
1593      lib*)
1594	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1595	eval libname=\"$libname_spec\"
1596	;;
1597      *)
1598	if test "$module" = no; then
1599	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1600	  $echo "$help" 1>&2
1601	  exit 1
1602	fi
1603	if test "$need_lib_prefix" != no; then
1604	  # Add the "lib" prefix for modules if required
1605	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1606	  eval libname=\"$libname_spec\"
1607	else
1608	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1609	fi
1610	;;
1611      esac
1612
1613      output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1614      if test "X$output_objdir" = "X$output"; then
1615	output_objdir="$objdir"
1616      else
1617	output_objdir="$output_objdir/$objdir"
1618      fi
1619
1620      if test -n "$objs"; then
1621	$echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1622	exit 1
1623      fi
1624
1625      # How the heck are we supposed to write a wrapper for a shared library?
1626      if test -n "$link_against_libtool_libs"; then
1627	 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1628	 exit 1
1629      fi
1630
1631      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1632	$echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1633      fi
1634
1635      set dummy $rpath
1636      if test $# -gt 2; then
1637	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1638      fi
1639      install_libdir="$2"
1640
1641      oldlibs=
1642      if test -z "$rpath"; then
1643	if test "$build_libtool_libs" = yes; then
1644	  # Building a libtool convenience library.
1645	  libext=al
1646	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
1647	  build_libtool_libs=convenience
1648	  build_old_libs=yes
1649	fi
1650	dependency_libs="$deplibs"
1651
1652	if test -n "$vinfo"; then
1653	  $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1654	fi
1655
1656	if test -n "$release"; then
1657	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1658	fi
1659      else
1660
1661	# Parse the version information argument.
1662	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=':'
1663	set dummy $vinfo 0 0 0
1664	IFS="$save_ifs"
1665
1666	if test -n "$8"; then
1667	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
1668	  $echo "$help" 1>&2
1669	  exit 1
1670	fi
1671
1672	current="$2"
1673	revision="$3"
1674	age="$4"
1675
1676	# Check that each of the things are valid numbers.
1677	case "$current" in
1678	0 | [1-9] | [1-9][0-9]*) ;;
1679	*)
1680	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1681	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1682	  exit 1
1683	  ;;
1684	esac
1685
1686	case "$revision" in
1687	0 | [1-9] | [1-9][0-9]*) ;;
1688	*)
1689	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1690	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1691	  exit 1
1692	  ;;
1693	esac
1694
1695	case "$age" in
1696	0 | [1-9] | [1-9][0-9]*) ;;
1697	*)
1698	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1699	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1700	  exit 1
1701	  ;;
1702	esac
1703
1704	if test $age -gt $current; then
1705	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1706	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1707	  exit 1
1708	fi
1709
1710	# Calculate the version variables.
1711	major=
1712	versuffix=
1713	verstring=
1714	case "$version_type" in
1715	none) ;;
1716
1717	irix)
1718	  major=`expr $current - $age + 1`
1719	  versuffix="$major.$revision"
1720	  verstring="sgi$major.$revision"
1721
1722	  # Add in all the interfaces that we are compatible with.
1723	  loop=$revision
1724	  while test $loop != 0; do
1725	    iface=`expr $revision - $loop`
1726	    loop=`expr $loop - 1`
1727	    verstring="sgi$major.$iface:$verstring"
1728	  done
1729	  ;;
1730
1731	linux)
1732	  major=.`expr $current - $age`
1733	  versuffix="$major.$age.$revision"
1734	  ;;
1735
1736	osf)
1737	  major=`expr $current - $age`
1738	  versuffix=".$current.$age.$revision"
1739	  verstring="$current.$age.$revision"
1740
1741	  # Add in all the interfaces that we are compatible with.
1742	  loop=$age
1743	  while test $loop != 0; do
1744	    iface=`expr $current - $loop`
1745	    loop=`expr $loop - 1`
1746	    verstring="$verstring:${iface}.0"
1747	  done
1748
1749	  # Make executables depend on our current version.
1750	  verstring="$verstring:${current}.0"
1751	  ;;
1752
1753	sunos)
1754	  major=".$current"
1755	  versuffix=".$current.$revision"
1756	  ;;
1757
1758	freebsd-aout)
1759	  major=".$current"
1760	  versuffix=".$current.$revision";
1761	  ;;
1762
1763	freebsd-elf)
1764	  major=".$current"
1765	  versuffix=".$current";
1766	  ;;
1767
1768	windows)
1769	  # Like Linux, but with '-' rather than '.', since we only
1770	  # want one extension on Windows 95.
1771	  major=`expr $current - $age`
1772	  versuffix="-$major-$age-$revision"
1773	  ;;
1774
1775	darwin)
1776	  # Like Linux, but with the current version available in
1777	  # verstring for coding it into the library header
1778	  major=.`expr $current - $age`
1779	  versuffix="$major.$age.$revision"
1780	  # Darwin ld doesn't like 0 for these options...
1781	  minor_current=`expr $current + 1`
1782	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
1783	  ;;
1784
1785	*)
1786	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
1787	  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1788	  exit 1
1789	  ;;
1790	esac
1791
1792	# Clear the version info if we defaulted, and they specified a release.
1793	if test -z "$vinfo" && test -n "$release"; then
1794	  major=
1795	  verstring="0.0"
1796	  if test "$need_version" = no; then
1797	    versuffix=
1798	  else
1799	    versuffix=".0.0"
1800	  fi
1801	fi
1802
1803	# Remove version info from name if versioning should be avoided
1804	if test "$avoid_version" = yes && test "$need_version" = no; then
1805	  major=
1806	  versuffix=
1807	  verstring=""
1808	fi
1809	
1810	# Check to see if the archive will have undefined symbols.
1811	if test "$allow_undefined" = yes; then
1812	  if test "$allow_undefined_flag" = unsupported; then
1813	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1814	    build_libtool_libs=no
1815	    build_old_libs=yes
1816	  fi
1817	else
1818	  # Don't allow undefined symbols.
1819	  allow_undefined_flag="$no_undefined_flag"
1820	fi
1821
1822	dependency_libs="$deplibs"
1823	case "$host" in
1824	*-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1825	  # these systems don't actually have a c library (as such)!
1826	  ;;
1827        *-*-rhapsody* | *-*-darwin1.[012])
1828	  # Rhapsody C library is in the System framework
1829	  deplibs="$deplibs -framework System"
1830	  ;;
1831	*)
1832	  # Add libc to deplibs on all other systems.
1833	  deplibs="$deplibs -lc"
1834	  ;;
1835	esac
1836      fi
1837
1838      # Create the output directory, or remove our outputs if we need to.
1839      if test -d $output_objdir; then
1840	$show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1841	$run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1842      else
1843	$show "$mkdir $output_objdir"
1844	$run $mkdir $output_objdir
1845	status=$?
1846	if test $status -ne 0 && test ! -d $output_objdir; then
1847	  exit $status
1848	fi
1849      fi
1850
1851      # Now set the variables for building old libraries.
1852      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1853	oldlibs="$oldlibs $output_objdir/$libname.$libext"
1854
1855	# Transform .lo files to .o files.
1856	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1857      fi
1858
1859      if test "$build_libtool_libs" = yes; then
1860	# Transform deplibs into only deplibs that can be linked in shared.
1861	name_save=$name
1862	libname_save=$libname
1863	release_save=$release
1864	versuffix_save=$versuffix
1865	major_save=$major
1866	# I'm not sure if I'm treating the release correctly.  I think
1867	# release should show up in the -l (ie -lgmp5) so we don't want to
1868	# add it in twice.  Is that correct?
1869	release=""
1870	versuffix=""
1871	major=""
1872	newdeplibs=
1873	droppeddeps=no
1874	case "$deplibs_check_method" in
1875	pass_all)
1876	  # Don't check for shared/static.  Everything works.
1877	  # This might be a little naive.  We might want to check
1878	  # whether the library exists or not.  But this is on
1879	  # osf3 & osf4 and I'm not really sure... Just
1880	  # implementing what was already the behaviour.
1881	  newdeplibs=$deplibs
1882	  ;;
1883	test_compile)
1884	  # This code stresses the "libraries are programs" paradigm to its
1885	  # limits. Maybe even breaks it.  We compile a program, linking it
1886	  # against the deplibs as a proxy for the library.  Then we can check
1887	  # whether they linked in statically or dynamically with ldd.
1888	  $rm conftest.c
1889	  cat > conftest.c <<EOF
1890	  int main() { return 0; }
1891EOF
1892	  $rm conftest
1893	  $CC -o conftest conftest.c $deplibs
1894	  if test $? -eq 0 ; then
1895	    ldd_output=`ldd conftest`
1896	    for i in $deplibs; do
1897	      name="`expr X$i : 'X-l\(.*\)'`"
1898	      # If $name is empty we are operating on a -L argument.
1899	      if test "$name" != "" ; then
1900		libname=`eval \\$echo \"$libname_spec\"`
1901		deplib_matches=`eval \\$echo \"$library_names_spec\"`
1902		set dummy $deplib_matches
1903		deplib_match=$2
1904		if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1905		  newdeplibs="$newdeplibs $i"
1906		else
1907		  droppeddeps=yes
1908		  echo
1909		  echo "*** Warning: This library needs some functionality provided by $i."
1910		  echo "*** I have the capability to make that library automatically link in when"
1911		  echo "*** you link to this library.  But I can only do this if you have a"
1912		  echo "*** shared version of the library, which you do not appear to have."
1913		fi
1914	      else
1915		newdeplibs="$newdeplibs $i"
1916	      fi
1917	    done
1918	  else
1919	    # Error occured in the first compile.  Let's try to salvage the situation:
1920	    # Compile a seperate program for each library.
1921	    for i in $deplibs; do
1922	      name="`expr X$i : 'X-l\(.*\)'`"
1923	     # If $name is empty we are operating on a -L argument.
1924	      if test "$name" != "" ; then
1925		$rm conftest
1926		$CC -o conftest conftest.c $i
1927		# Did it work?
1928		if test $? -eq 0 ; then
1929		  ldd_output=`ldd conftest`
1930		  libname=`eval \\$echo \"$libname_spec\"`
1931		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
1932		  set dummy $deplib_matches
1933		  deplib_match=$2
1934		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1935		    newdeplibs="$newdeplibs $i"
1936		  else
1937		    droppeddeps=yes
1938		    echo
1939		    echo "*** Warning: This library needs some functionality provided by $i."
1940		    echo "*** I have the capability to make that library automatically link in when"
1941		    echo "*** you link to this library.  But I can only do this if you have a"
1942		    echo "*** shared version of the library, which you do not appear to have."
1943		  fi
1944		else
1945		  droppeddeps=yes
1946		  echo
1947		  echo "*** Warning!  Library $i is needed by this library but I was not able to"
1948		  echo "***  make it link in!  You will probably need to install it or some"
1949		  echo "*** library that it depends on before this library will be fully"
1950		  echo "*** functional.  Installing it before continuing would be even better."
1951		fi
1952	      else
1953		newdeplibs="$newdeplibs $i"
1954	      fi
1955	    done
1956	  fi
1957	  ;;
1958	file_magic*)
1959	  set dummy $deplibs_check_method
1960	  file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1961	  for a_deplib in $deplibs; do
1962	    name="`expr X$a_deplib : 'X-l\(.*\)'`"
1963	    # If $name is empty we are operating on a -L argument.
1964	    if test "$name" != "" ; then
1965	      libname=`eval \\$echo \"$libname_spec\"`
1966	      for i in $lib_search_path; do
1967		    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1968		    for potent_lib in $potential_libs; do
1969		      # Follow soft links.
1970		      if ls -lLd "$potent_lib" 2>/dev/null \
1971			 | grep " -> " >/dev/null; then
1972			continue 
1973		      fi
1974		      # The statement above tries to avoid entering an
1975		      # endless loop below, in case of cyclic links.
1976		      # We might still enter an endless loop, since a link
1977		      # loop can be closed while we follow links,
1978		      # but so what?
1979		      potlib="$potent_lib"
1980		      while test -h "$potlib" 2>/dev/null; do
1981			potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1982			case "$potliblink" in
1983			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1984			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1985			esac
1986		      done
1987		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1988			 | sed 10q \
1989			 | egrep "$file_magic_regex" > /dev/null; then
1990			newdeplibs="$newdeplibs $a_deplib"
1991			a_deplib=""
1992			break 2
1993		      fi
1994		    done
1995	      done
1996	      if test -n "$a_deplib" ; then
1997		droppeddeps=yes
1998		echo
1999		echo "*** Warning: This library needs some functionality provided by $a_deplib."
2000		echo "*** I have the capability to make that library automatically link in when"
2001		echo "*** you link to this library.  But I can only do this if you have a"
2002		echo "*** shared version of the library, which you do not appear to have."
2003	      fi
2004	    else
2005	      # Add a -L argument.
2006	      newdeplibs="$newdeplibs $a_deplib"
2007	    fi
2008	  done # Gone through all deplibs.
2009	  ;;
2010	none | unknown | *)
2011	  newdeplibs=""
2012	  if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2013	       -e 's/ -[LR][^ ]*//g' -e 's/[ 	]//g' |
2014	     grep . >/dev/null; then
2015	    echo
2016	    if test "X$deplibs_check_method" = "Xnone"; then
2017	      echo "*** Warning: inter-library dependencies are not supported in this platform."
2018	    else
2019	      echo "*** Warning: inter-library dependencies are not known to be supported."
2020	    fi
2021	    echo "*** All declared inter-library dependencies are being dropped."
2022	    droppeddeps=yes
2023	  fi
2024	  ;;
2025	esac
2026	versuffix=$versuffix_save
2027	major=$major_save
2028	release=$release_save
2029	libname=$libname_save
2030	name=$name_save
2031
2032	if test "$droppeddeps" = yes; then
2033	  if test "$module" = yes; then
2034	    echo
2035	    echo "*** Warning: libtool could not satisfy all declared inter-library"
2036	    echo "*** dependencies of module $libname.  Therefore, libtool will create"
2037	    echo "*** a static module, that should work as long as the dlopening"
2038	    echo "*** application is linked with the -dlopen flag."
2039	    if test -z "$global_symbol_pipe"; then
2040	      echo
2041	      echo "*** However, this would only work if libtool was able to extract symbol"
2042	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2043	      echo "*** not find such a program.  So, this module is probably useless."
2044	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
2045	    fi
2046	    if test "$build_old_libs" = no; then
2047	      oldlibs="$output_objdir/$libname.$libext"
2048	      build_libtool_libs=module
2049	      build_old_libs=yes
2050	    else
2051	      build_libtool_libs=no
2052	    fi
2053	  else
2054	    echo "*** The inter-library dependencies that have been dropped here will be"
2055	    echo "*** automatically added whenever a program is linked with this library"
2056	    echo "*** or is declared to -dlopen it."
2057	  fi
2058	fi
2059	# Done checking deplibs!
2060	deplibs=$newdeplibs
2061      fi
2062
2063      # All the library-specific variables (install_libdir is set above).
2064      library_names=
2065      old_library=
2066      dlname=
2067      
2068      # Test again, we may have decided not to build it any more
2069      if test "$build_libtool_libs" = yes; then
2070	# Get the real and link names of the library.
2071	eval library_names=\"$library_names_spec\"
2072	set dummy $library_names
2073	realname="$2"
2074	shift; shift
2075
2076	if test -n "$soname_spec"; then
2077	  eval soname=\"$soname_spec\"
2078	else
2079	  soname="$realname"
2080	fi
2081
2082	lib="$output_objdir/$realname"
2083	for link
2084	do
2085	  linknames="$linknames $link"
2086	done
2087
2088	# Ensure that we have .o objects for linkers which dislike .lo
2089	# (e.g. aix) in case we are running --disable-static
2090	for obj in $libobjs; do
2091	  xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2092	  if test "X$xdir" = "X$obj"; then
2093	    xdir="."
2094	  else
2095	    xdir="$xdir"
2096	  fi
2097	  baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2098	  oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2099	  if test ! -f $xdir/$oldobj; then
2100	    $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2101	    $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2102	  fi
2103	done
2104
2105	# Use standard objects if they are pic
2106	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2107
2108	# Prepare the list of exported symbols
2109	if test -z "$export_symbols"; then
2110	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2111	    $show "generating symbol list for \`$libname.la'"
2112	    export_symbols="$output_objdir/$libname.exp"
2113	    $run $rm $export_symbols
2114	    eval cmds=\"$export_symbols_cmds\"
2115	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
2116	    for cmd in $cmds; do
2117	      IFS="$save_ifs"
2118	      $show "$cmd"
2119	      $run eval "$cmd" || exit $?
2120	    done
2121	    IFS="$save_ifs"
2122	    if test -n "$export_symbols_regex"; then
2123	      $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2124	      $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2125	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2126	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
2127	    fi
2128	  fi
2129	fi
2130
2131	if test -n "$export_symbols" && test -n "$include_expsyms"; then
2132	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2133	fi
2134
2135	if test -n "$convenience"; then
2136	  if test -n "$whole_archive_flag_spec"; then
2137	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2138	  else
2139	    gentop="$output_objdir/${outputname}x"
2140	    $show "${rm}r $gentop"
2141	    $run ${rm}r "$gentop"
2142	    $show "mkdir $gentop"
2143	    $run mkdir "$gentop"
2144	    status=$?
2145	    if test $status -ne 0 && test ! -d "$gentop"; then
2146	      exit $status
2147	    fi
2148	    generated="$generated $gentop"
2149
2150	    for xlib in $convenience; do
2151	      # Extract the objects.
2152	      case "$xlib" in
2153	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2154	      *) xabs=`pwd`"/$xlib" ;;
2155	      esac
2156	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2157	      xdir="$gentop/$xlib"
2158
2159	      $show "${rm}r $xdir"
2160	      $run ${rm}r "$xdir"
2161	      $show "mkdir $xdir"
2162	      $run mkdir "$xdir"
2163	      status=$?
2164	      if test $status -ne 0 && test ! -d "$xdir"; then
2165		exit $status
2166	      fi
2167	      $show "(cd $xdir && $AR x $xabs)"
2168	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2169
2170	      libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2171	    done
2172	  fi
2173	fi
2174
2175	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2176	  eval flag=\"$thread_safe_flag_spec\"
2177	  linkopts="$linkopts $flag"
2178	fi
2179
2180	# Do each of the archive commands.
2181	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2182	  eval cmds=\"$archive_expsym_cmds\"
2183	else
2184	  eval cmds=\"$archive_cmds\"
2185	fi
2186	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
2187	for cmd in $cmds; do
2188	  IFS="$save_ifs"
2189	  $show "$cmd"
2190	  $run eval "$cmd" || exit $?
2191	done
2192	IFS="$save_ifs"
2193
2194	# Create links to the real library.
2195	for linkname in $linknames; do
2196	  if test "$realname" != "$linkname"; then
2197	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2198	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2199	  fi
2200	done
2201
2202	# If -module or -export-dynamic was specified, set the dlname.
2203	if test "$module" = yes || test "$export_dynamic" = yes; then
2204	  # On all known operating systems, these are identical.
2205	  dlname="$soname"
2206	fi
2207      fi
2208      ;;
2209
2210    *.lo | *.o | *.obj)
2211      if test -n "$link_against_libtool_libs"; then
2212	$echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2213	exit 1
2214      fi
2215
2216      if test -n "$deplibs"; then
2217	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2218      fi
2219
2220      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2221	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2222      fi
2223
2224      if test -n "$rpath"; then
2225	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2226      fi
2227
2228      if test -n "$xrpath"; then
2229	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2230      fi
2231
2232      if test -n "$vinfo"; then
2233	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2234      fi
2235
2236      if test -n "$release"; then
2237	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2238      fi
2239
2240      case "$output" in
2241      *.lo)
2242	if test -n "$objs"; then
2243	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2244	  exit 1
2245	fi
2246	libobj="$output"
2247	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2248	;;
2249      *)
2250	libobj=
2251	obj="$output"
2252	;;
2253      esac
2254
2255      # Delete the old objects.
2256      $run $rm $obj $libobj
2257
2258      # Objects from convenience libraries.  This assumes
2259      # single-version convenience libraries.  Whenever we create
2260      # different ones for PIC/non-PIC, this we'll have to duplicate
2261      # the extraction.
2262      reload_conv_objs=
2263      gentop=
2264      # reload_cmds runs $LD directly, so let us get rid of
2265      # -Wl from whole_archive_flag_spec
2266      wl= 
2267
2268      if test -n "$convenience"; then
2269	if test -n "$whole_archive_flag_spec"; then
2270	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2271	else
2272	  gentop="$output_objdir/${obj}x"
2273	  $show "${rm}r $gentop"
2274	  $run ${rm}r "$gentop"
2275	  $show "mkdir $gentop"
2276	  $run mkdir "$gentop"
2277	  status=$?
2278	  if test $status -ne 0 && test ! -d "$gentop"; then
2279	    exit $status
2280	  fi
2281	  generated="$generated $gentop"
2282
2283	  for xlib in $convenience; do
2284	    # Extract the objects.
2285	    case "$xlib" in
2286	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2287	    *) xabs=`pwd`"/$xlib" ;;
2288	    esac
2289	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2290	    xdir="$gentop/$xlib"
2291
2292	    $show "${rm}r $xdir"
2293	    $run ${rm}r "$xdir"
2294	    $show "mkdir $xdir"
2295	    $run mkdir "$xdir"
2296	    status=$?
2297	    if test $status -ne 0 && test ! -d "$xdir"; then
2298	      exit $status
2299	    fi
2300	    $show "(cd $xdir && $AR x $xabs)"
2301	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2302
2303	    reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2304	  done
2305	fi
2306      fi
2307
2308      # Create the old-style object.
2309      reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
2310
2311      output="$obj"
2312      eval cmds=\"$reload_cmds\"
2313      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
2314      for cmd in $cmds; do
2315	IFS="$save_ifs"
2316	$show "$cmd"
2317	$run eval "$cmd" || exit $?
2318      done
2319      IFS="$save_ifs"
2320
2321      # Exit if we aren't doing a library object file.
2322      if test -z "$libobj"; then
2323	if test -n "$gentop"; then
2324	  $show "${rm}r $gentop"
2325	  $run ${rm}r $gentop
2326	fi
2327
2328	exit 0
2329      fi
2330
2331      if test "$build_libtool_libs" != yes; then
2332	if test -n "$gentop"; then
2333	  $show "${rm}r $gentop"
2334	  $run ${rm}r $gentop
2335	fi
2336
2337	# Create an invalid libtool object if no PIC, so that we don't
2338	# accidentally link it into a program.
2339	$show "echo timestamp > $libobj"
2340	$run eval "echo timestamp > $libobj" || exit $?
2341	exit 0
2342      fi
2343
2344      if test -n "$pic_flag"; then
2345	# Only do commands if we really have different PIC objects.
2346	reload_objs="$libobjs $reload_conv_objs"
2347	output="$libobj"
2348	eval cmds=\"$reload_cmds\"
2349	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
2350	for cmd in $cmds; do
2351	  IFS="$save_ifs"
2352	  $show "$cmd"
2353	  $run eval "$cmd" || exit $?
2354	done
2355	IFS="$save_ifs"
2356      else
2357	# Just create a symlink.
2358	$show $rm $libobj
2359	$run $rm $libobj
2360	xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
2361	if test "X$xdir" = "X$libobj"; then
2362	  xdir="."
2363	else
2364	  xdir="$xdir"
2365	fi
2366	baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
2367	oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2368	$show "(cd $xdir && $LN_S $oldobj $baseobj)"
2369	$run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
2370      fi
2371
2372      if test -n "$gentop"; then
2373	$show "${rm}r $gentop"
2374	$run ${rm}r $gentop
2375      fi
2376
2377      exit 0
2378      ;;
2379
2380    # Anything else should be a program.
2381    *)
2382      if test -n "$vinfo"; then
2383	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2384      fi
2385
2386      if test -n "$release"; then
2387	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2388      fi
2389
2390      if test "$preload" = yes; then
2391	if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2392	   test "$dlopen_self_static" = unknown; then
2393	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2394	fi 
2395      fi
2396    
2397      if test -n "$rpath$xrpath"; then
2398	# If the user specified any rpath flags, then add them.
2399	for libdir in $rpath $xrpath; do
2400	  # This is the magic to use -rpath.
2401	  case "$compile_rpath " in
2402	  *" $libdir "*) ;;
2403	  *) compile_rpath="$compile_rpath $libdir" ;;
2404	  esac
2405	  case "$finalize_rpath " in
2406	  *" $libdir "*) ;;
2407	  *) finalize_rpath="$finalize_rpath $libdir" ;;
2408	  esac
2409	done
2410      fi
2411
2412      # Now hardcode the library paths
2413      rpath=
2414      hardcode_libdirs=
2415      for libdir in $compile_rpath $finalize_rpath; do
2416	if test -n "$hardcode_libdir_flag_spec"; then
2417	  if test -n "$hardcode_libdir_separator"; then
2418	    if test -z "$hardcode_libdirs"; then
2419	      hardcode_libdirs="$libdir"
2420	    else
2421	      # Just accumulate the unique libdirs.
2422	      case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2423	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2424		;;
2425	      *)
2426		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2427		;;
2428	      esac
2429	    fi
2430	  else
2431	    eval flag=\"$hardcode_libdir_flag_spec\"
2432	    rpath="$rpath $flag"
2433	  fi
2434	elif test -n "$runpath_var"; then
2435	  case "$perm_rpath " in
2436	  *" $libdir "*) ;;
2437	  *) perm_rpath="$perm_rpath $libdir" ;;
2438	  esac
2439	fi
2440      done
2441      # Substitute the hardcoded libdirs into the rpath.
2442      if test -n "$hardcode_libdir_separator" &&
2443	 test -n "$hardcode_libdirs"; then
2444	libdir="$hardcode_libdirs"
2445	eval rpath=\" $hardcode_libdir_flag_spec\"
2446      fi
2447      compile_rpath="$rpath"
2448
2449      rpath=
2450      hardcode_libdirs=
2451      for libdir in $finalize_rpath; do
2452	if test -n "$hardcode_libdir_flag_spec"; then
2453	  if test -n "$hardcode_libdir_separator"; then
2454	    if test -z "$hardcode_libdirs"; then
2455	      hardcode_libdirs="$libdir"
2456	    else
2457	      # Just accumulate the unique libdirs.
2458	      case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2459	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2460		;;
2461	      *)
2462		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2463		;;
2464	      esac
2465	    fi
2466	  else
2467	    eval flag=\"$hardcode_libdir_flag_spec\"
2468	    rpath="$rpath $flag"
2469	  fi
2470	elif test -n "$runpath_var"; then
2471	  case "$finalize_perm_rpath " in
2472	  *" $libdir "*) ;;
2473	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2474	  esac
2475	fi
2476      done
2477      # Substitute the hardcoded libdirs into the rpath.
2478      if test -n "$hardcode_libdir_separator" &&
2479	 test -n "$hardcode_libdirs"; then
2480	libdir="$hardcode_libdirs"
2481	eval rpath=\" $hardcode_libdir_flag_spec\"
2482      fi
2483      finalize_rpath="$rpath"
2484
2485      output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2486      if test "X$output_objdir" = "X$output"; then
2487	output_objdir="$objdir"
2488      else
2489	output_objdir="$output_objdir/$objdir"
2490      fi
2491
2492      # Create the binary in the object directory, then wrap it.
2493      if test ! -d $output_objdir; then
2494	$show "$mkdir $output_objdir"
2495	$run $mkdir $output_objdir
2496	status=$?
2497	if test $status -ne 0 && test ! -d $output_objdir; then
2498	  exit $status
2499	fi
2500      fi
2501
2502      if test -n "$libobjs" && test "$build_old_libs" = yes; then
2503	# Transform all the library objects into standard objects.
2504	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2505	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2506      fi
2507
2508      dlsyms=
2509      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2510	if test -n "$NM" && test -n "$global_symbol_pipe"; then
2511	  dlsyms="${outputname}S.c"
2512	else
2513	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2514	fi
2515      fi
2516
2517      if test -n "$dlsyms"; then
2518	case "$dlsyms" in
2519	"") ;;
2520	*.c)
2521	  # Discover the nlist of each of the dlfiles.
2522	  nlist="$output_objdir/${outputname}.nm"
2523
2524	  $show "$rm $nlist ${nlist}S ${nlist}T"
2525	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
2526
2527	  # Parse the name list into a source file.
2528	  $show "creating $output_objdir/$dlsyms"
2529
2530	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2531/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2532/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2533
2534#ifdef __cplusplus
2535extern \"C\" {
2536#endif
2537
2538/* Prevent the only kind of declaration conflicts we can make. */
2539#define lt_preloaded_symbols some_other_symbol
2540
2541/* External symbol declarations for the compiler. */\
2542"
2543
2544	  if test "$dlself" = yes; then
2545	    $show "generating symbol list for \`$output'"
2546
2547	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2548
2549	    # Add our own program objects to the symbol list.
2550	    progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2551	    for arg in $progfiles; do
2552	      $show "extracting global C symbols from \`$arg'"
2553	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2554	    done
2555
2556	    if test -n "$exclude_expsyms"; then
2557	      $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2558	      $run eval '$mv "$nlist"T "$nlist"'
2559	    fi
2560	    
2561	    if test -n "$export_symbols_regex"; then
2562	      $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2563	      $run eval '$mv "$nlist"T "$nlist"'
2564	    fi
2565
2566	    # Prepare the list of exported symbols
2567	    if test -z "$export_symbols"; then
2568	      export_symbols="$output_objdir/$output.exp"
2569	      $run $rm $export_symbols
2570	      $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2571	    else
2572	      $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2573	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2574	      $run eval 'mv "$nlist"T "$nlist"'
2575	    fi
2576	  fi
2577
2578	  for arg in $dlprefiles; do
2579	    $show "extracting global C symbols from \`$arg'"
2580	    name=`echo "$arg" | sed -e 's%^.*/%%'`
2581	    $run eval 'echo ": $name " >> "$nlist"'
2582	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2583	  done
2584
2585	  if test -z "$run"; then
2586	    # Make sure we have at least an empty file.
2587	    test -f "$nlist" || : > "$nlist"
2588
2589	    if test -n "$exclude_expsyms"; then
2590	      egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2591	      $mv "$nlist"T "$nlist"
2592	    fi
2593
2594	    # Try sorting and uniquifying the output.
2595	    if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2596	      :
2597	    else
2598	      grep -v "^: " < "$nlist" > "$nlist"S
2599	    fi
2600
2601	    if test -f "$nlist"S; then
2602	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2603	    else
2604	      echo '/* NONE */' >> "$output_objdir/$dlsyms"
2605	    fi
2606
2607	    $echo >> "$output_objdir/$dlsyms" "\
2608
2609#undef lt_preloaded_symbols
2610
2611#if defined (__STDC__) && __STDC__
2612# define lt_ptr_t void *
2613#else
2614# define lt_ptr_t char *
2615# define const
2616#endif
2617
2618/* The mapping between symbol names and symbols. */
2619const struct {
2620  const char *name;
2621  lt_ptr_t address;
2622}
2623lt_preloaded_symbols[] =
2624{\
2625"
2626
2627	    sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
2628		-e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
2629		  < "$nlist" >> "$output_objdir/$dlsyms"
2630
2631	    $echo >> "$output_objdir/$dlsyms" "\
2632  {0, (lt_ptr_t) 0}
2633};
2634
2635/* This works around a problem in FreeBSD linker */
2636#ifdef FREEBSD_WORKAROUND
2637static const void *lt_preloaded_setup() {
2638  return lt_preloaded_symbols;
2639}
2640#endif
2641
2642#ifdef __cplusplus
2643}
2644#endif\
2645"
2646	  fi
2647
2648	  pic_flag_for_symtable=
2649	  case "$host" in
2650	  # compiling the symbol table file with pic_flag works around
2651	  # a FreeBSD bug that causes programs to crash when -lm is
2652	  # linked before any other PIC object.  But we must not use
2653	  # pic_flag when linking with -static.  The problem exists in
2654	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2655	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2656	    case "$compile_command " in
2657	    *" -static "*) ;;
2658	    *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2659	    esac;;
2660	  *-*-hpux*)
2661	    case "$compile_command " in
2662	    *" -static "*) ;;
2663	    *) pic_flag_for_symtable=" $pic_flag -DPIC";;
2664	    esac
2665	  esac
2666
2667	  # Now compile the dynamic symbol file.
2668	  $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2669	  $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2670
2671	  # Clean up the generated files.
2672	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2673	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2674
2675	  # Transform the symbol file into the correct name.
2676	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2677	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2678	  ;;
2679	*)
2680	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2681	  exit 1
2682	  ;;
2683	esac
2684      else
2685	# We keep going just in case the user didn't refer to
2686	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
2687	# really was required.
2688
2689	# Nullify the symbol file.
2690	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2691	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2692      fi
2693
2694      if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2695	# Replace the output file specification.
2696	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2697	link_command="$compile_command$compile_rpath"
2698
2699	# We have no uninstalled library dependencies, so finalize right now.
2700	$show "$link_command"
2701	$run eval "$link_command"
2702	status=$?
2703	
2704	# Delete the generated files.
2705	if test -n "$dlsyms"; then
2706	  $show "$rm $output_objdir/${outputname}S.${objext}"
2707	  $run $rm "$output_objdir/${outputname}S.${objext}"
2708	fi
2709
2710	exit $status
2711      fi
2712
2713      if test -n "$shlibpath_var"; then
2714	# We should set the shlibpath_var
2715	rpath=
2716	for dir in $temp_rpath; do
2717	  case "$dir" in
2718	  [\\/]* | [A-Za-z]:[\\/]*)
2719	    # Absolute path.
2720	    rpath="$rpath$dir:"
2721	    ;;
2722	  *)
2723	    # Relative path: add a thisdir entry.
2724	    rpath="$rpath\$thisdir/$dir:"
2725	    ;;
2726	  esac
2727	done
2728	temp_rpath="$rpath"
2729      fi
2730
2731      if test -n "$compile_shlibpath$finalize_shlibpath"; then
2732	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2733      fi
2734      if test -n "$finalize_shlibpath"; then
2735	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2736      fi
2737
2738      compile_var=
2739      finalize_var=
2740      if test -n "$runpath_var"; then
2741	if test -n "$perm_rpath"; then
2742	  # We should set the runpath_var.
2743	  rpath=
2744	  for dir in $perm_rpath; do
2745	    rpath="$rpath$dir:"
2746	  done
2747	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2748	fi
2749	if test -n "$finalize_perm_rpath"; then
2750	  # We should set the runpath_var.
2751	  rpath=
2752	  for dir in $finalize_perm_rpath; do
2753	    rpath="$rpath$dir:"
2754	  done
2755	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2756	fi
2757      fi
2758
2759      if test "$hardcode_action" = relink; then
2760	# Fast installation is not supported
2761	link_command="$compile_var$compile_command$compile_rpath"
2762	relink_command="$finalize_var$finalize_command$finalize_rpath"
2763	
2764	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2765	$echo "$modename: \`$output' will be relinked during installation" 1>&2
2766      else
2767	if test "$fast_install" != no; then
2768	  link_command="$finalize_var$compile_command$finalize_rpath"
2769	  if test "$fast_install" = yes; then
2770	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2771	  else
2772	    # fast_install is set to needless
2773	    relink_command=
2774	  fi
2775	else
2776	  link_command="$compile_var$compile_command$compile_rpath"
2777	  relink_command="$finalize_var$finalize_command$finalize_rpath"
2778	fi
2779      fi
2780
2781      # Replace the output file specification.
2782      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2783      
2784      # Delete the old output files.
2785      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2786
2787      $show "$link_command"
2788      $run eval "$link_command" || exit $?
2789
2790      # Now create the wrapper script.
2791      $show "creating $output"
2792
2793      # Quote the relink command for shipping.
2794      if test -n "$relink_command"; then
2795	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2796      fi
2797
2798      # Quote $echo for shipping.
2799      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2800	case "$0" in
2801	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2802	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2803	esac
2804	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2805      else
2806	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2807      fi
2808
2809      # Only actually do things if our run command is non-null.
2810      if test -z "$run"; then
2811	# win32 will think the script is a binary if it has
2812	# a .exe suffix, so we strip it off here.
2813	case $output in
2814	  *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2815	esac
2816	$rm $output
2817	trap "$rm $output; exit 1" 1 2 15
2818
2819	$echo > $output "\
2820#! $SHELL
2821
2822# $output - temporary wrapper script for $objdir/$outputname
2823# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2824#
2825# The $output program cannot be directly executed until all the libtool
2826# libraries that it depends on are installed.
2827#
2828# This wrapper script should never be moved out of the build directory.
2829# If it is, it will not operate correctly.
2830
2831# Sed substitution that helps us do robust quoting.  It backslashifies
2832# metacharacters that are still active within double-quoted strings.
2833Xsed='sed -e 1s/^X//'
2834sed_quote_subst='$sed_quote_subst'
2835
2836# The HP-UX ksh and POSIX shell print the target directory to stdout
2837# if CDPATH is set.
2838if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
2839
2840relink_command=\"$relink_command\"
2841
2842# This environment variable determines our operation mode.
2843if test \"\$libtool_install_magic\" = \"$magic\"; then
2844  # install mode needs the following variable:
2845  link_against_libtool_libs='$link_against_libtool_libs'
2846else
2847  # When we are sourced in execute mode, \$file and \$echo are already set.
2848  if test \"\$libtool_execute_magic\" != \"$magic\"; then
2849    echo=\"$qecho\"
2850    file=\"\$0\"
2851    # Make sure echo works.
2852    if test \"X\$1\" = X--no-reexec; then
2853      # Discard the --no-reexec flag, and continue.
2854      shift
2855    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2856      # Yippee, \$echo works!
2857      :
2858    else
2859      # Restart under the correct shell, and then maybe \$echo will work.
2860      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2861    fi
2862  fi\
2863"
2864	$echo >> $output "\
2865
2866  # Find the directory that this script lives in.
2867  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2868  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2869
2870  # Follow symbolic links until we get to the real thisdir.
2871  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2872  while test -n \"\$file\"; do
2873    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2874
2875    # If there was a directory component, then change thisdir.
2876    if test \"x\$destdir\" != \"x\$file\"; then
2877      case \"\$destdir\" in
2878      [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2879      *) thisdir=\"\$thisdir/\$destdir\" ;;
2880      esac
2881    fi
2882
2883    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2884    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2885  done
2886
2887  # Try to get the absolute directory name.
2888  absdir=\`cd \"\$thisdir\" && pwd\`
2889  test -n \"\$absdir\" && thisdir=\"\$absdir\"
2890"
2891
2892	if test "$fast_install" = yes; then
2893	  echo >> $output "\
2894  program=lt-'$outputname'
2895  progdir=\"\$thisdir/$objdir\"
2896  
2897  if test ! -f \"\$progdir/\$program\" || \\
2898     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2899       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2900
2901    file=\"\$\$-\$program\"
2902
2903    if test ! -d \"\$progdir\"; then
2904      $mkdir \"\$progdir\"
2905    else
2906      $rm \"\$progdir/\$file\"
2907    fi"
2908
2909	  echo >> $output "\
2910
2911    # relink executable if necessary
2912    if test -n \"\$relink_command\"; then
2913      if (cd \"\$thisdir\" && eval \$relink_command); then :
2914      else
2915	$rm \"\$progdir/\$file\"
2916	exit 1
2917      fi
2918    fi
2919
2920    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2921    { $rm \"\$progdir/\$program\";
2922      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2923    $rm \"\$progdir/\$file\"
2924  fi"
2925	else
2926	  echo >> $output "\
2927  program='$outputname'
2928  progdir=\"\$thisdir/$objdir\"
2929"
2930	fi
2931
2932	echo >> $output "\
2933
2934  if test -f \"\$progdir/\$program\"; then"
2935
2936	# Export our shlibpath_var if we have one.
2937	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2938	  $echo >> $output "\
2939    # Add our own library path to $shlibpath_var
2940    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2941
2942    # Some systems cannot cope with colon-terminated $shlibpath_var
2943    # The second colon is a workaround for a bug in BeOS R4 sed
2944    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2945
2946    export $shlibpath_var
2947"
2948	fi
2949
2950	# fixup the dll searchpath if we need to.
2951	if test -n "$dllsearchpath"; then
2952	  $echo >> $output "\
2953    # Add the dll search path components to the executable PATH
2954    PATH=$dllsearchpath:\$PATH
2955"
2956	fi
2957
2958	$echo >> $output "\
2959    if test \"\$libtool_execute_magic\" != \"$magic\"; then
2960      # Run the actual program with our arguments.
2961"
2962	case $host in
2963	  # win32 systems need to use the prog path for dll
2964	  # lookup to work
2965	*-*-cygwin*)
2966	  $echo >> $output "\
2967      exec \$progdir/\$program \${1+\"\$@\"}
2968"
2969	  ;;
2970
2971	# Backslashes separate directories on plain windows
2972	*-*-mingw | *-*-os2*)
2973	  $echo >> $output "\
2974      exec \$progdir\\\\\$program \${1+\"\$@\"}
2975"
2976	  ;;
2977
2978	*)
2979	  $echo >> $output "\
2980      # Export the path to the program.
2981      PATH=\"\$progdir:\$PATH\"
2982      export PATH
2983
2984      exec \$program \${1+\"\$@\"}
2985"
2986	  ;;
2987	esac
2988	$echo >> $output "\
2989      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2990      exit 1
2991    fi
2992  else
2993    # The program doesn't exist.
2994    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2995    \$echo \"This script is just a wrapper for \$program.\" 1>&2
2996    echo \"See the $PACKAGE documentation for more information.\" 1>&2
2997    exit 1
2998  fi
2999fi\
3000"
3001	chmod +x $output
3002      fi
3003      exit 0
3004      ;;
3005    esac
3006
3007    # See if we need to build an old-fashioned archive.
3008    for oldlib in $oldlibs; do
3009
3010      if test "$build_libtool_libs" = convenience; then
3011	oldobjs="$libobjs_save"
3012	addlibs="$convenience"
3013	build_libtool_libs=no
3014      else
3015	if test "$build_libtool_libs" = module; then
3016	  oldobjs="$libobjs_save"
3017	  build_libtool_libs=no
3018	else
3019	  oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3020	fi
3021	addlibs="$old_convenience"
3022      fi
3023
3024      if test -n "$addlibs"; then
3025	gentop="$output_objdir/${outputname}x"
3026	$show "${rm}r $gentop"
3027	$run ${rm}r "$gentop"
3028	$show "mkdir $gentop"
3029	$run mkdir "$gentop"
3030	status=$?
3031	if test $status -ne 0 && test ! -d "$gentop"; then
3032	  exit $status
3033	fi
3034	generated="$generated $gentop"
3035	  
3036	# Add in members from convenience archives.
3037	for xlib in $addlibs; do
3038	  # Extract the objects.
3039	  case "$xlib" in
3040	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3041	  *) xabs=`pwd`"/$xlib" ;;
3042	  esac
3043	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3044	  xdir="$gentop/$xlib"
3045
3046	  $show "${rm}r $xdir"
3047	  $run ${rm}r "$xdir"
3048	  $show "mkdir $xdir"
3049	  $run mkdir "$xdir"
3050	  status=$?
3051	  if test $status -ne 0 && test ! -d "$xdir"; then
3052	    exit $status
3053	  fi
3054	  $show "(cd $xdir && $AR x $xabs)"
3055	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3056
3057	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3058	done
3059      fi
3060
3061      # Do each command in the archive commands.
3062      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3063	eval cmds=\"$old_archive_from_new_cmds\"
3064      else
3065	# Ensure that we have .o objects in place in case we decided
3066	# not to build a shared library, and have fallen back to building
3067	# static libs even though --disable-static was passed!
3068	for oldobj in $oldobjs; do
3069	  if test ! -f $oldobj; then
3070	    xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3071	    if test "X$xdir" = "X$oldobj"; then
3072	      xdir="."
3073	    else
3074	      xdir="$xdir"
3075	    fi
3076	    baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3077	    obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3078	    $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3079	    $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3080	  fi
3081	done
3082
3083	eval cmds=\"$old_archive_cmds\"
3084      fi
3085      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3086      for cmd in $cmds; do
3087	IFS="$save_ifs"
3088	$show "$cmd"
3089	$run eval "$cmd" || exit $?
3090      done
3091      IFS="$save_ifs"
3092    done
3093
3094    if test -n "$generated"; then
3095      $show "${rm}r$generated"
3096      $run ${rm}r$generated
3097    fi
3098
3099    # Now create the libtool archive.
3100    case "$output" in
3101    *.la)
3102      old_library=
3103      test "$build_old_libs" = yes && old_library="$libname.$libext"
3104      $show "creating $output"
3105
3106      if test -n "$xrpath"; then
3107	temp_xrpath=
3108	for libdir in $xrpath; do
3109	  temp_xrpath="$temp_xrpath -R$libdir"
3110	done
3111	dependency_libs="$temp_xrpath $dependency_libs"
3112      fi
3113
3114      # Only create the output if not a dry run.
3115      if test -z "$run"; then
3116	for installed in no yes; do
3117	  if test "$installed" = yes; then
3118	    if test -z "$install_libdir"; then
3119	      break
3120	    fi
3121	    output="$output_objdir/$outputname"i
3122	  fi
3123	  $rm $output
3124	  $echo > $output "\
3125# $outputname - a libtool library file
3126# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3127#
3128# Please DO NOT delete this file!
3129# It is necessary for linking the library.
3130
3131# The name that we can dlopen(3).
3132dlname='$dlname'
3133
3134# Names of this library.
3135library_names='$library_names'
3136
3137# The name of the static archive.
3138old_library='$old_library'
3139
3140# Libraries that this one depends upon.
3141dependency_libs='$dependency_libs'
3142
3143# Version information for $libname.
3144current=$current
3145age=$age
3146revision=$revision
3147
3148# Is this an already installed library?
3149installed=$installed
3150
3151# Directory that this library needs to be installed in:
3152libdir='$install_libdir'\
3153"
3154	done
3155      fi
3156
3157      # Do a symbolic link so that the libtool archive can be found in
3158      # LD_LIBRARY_PATH before the program is installed.
3159      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3160      $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3161      ;;
3162    esac
3163    exit 0
3164    ;;
3165
3166  # libtool install mode
3167  install)
3168    modename="$modename: install"
3169
3170    # There may be an optional sh(1) argument at the beginning of
3171    # install_prog (especially on Windows NT).
3172    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3173      # Aesthetically quote it.
3174      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3175      case "$arg" in
3176      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
3177	arg="\"$arg\""
3178	;;
3179      esac
3180      install_prog="$arg "
3181      arg="$1"
3182      shift
3183    else
3184      install_prog=
3185      arg="$nonopt"
3186    fi
3187
3188    # The real first argument should be the name of the installation program.
3189    # Aesthetically quote it.
3190    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3191    case "$arg" in
3192    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
3193      arg="\"$arg\""
3194      ;;
3195    esac
3196    install_prog="$install_prog$arg"
3197
3198    # We need to accept at least all the BSD install flags.
3199    dest=
3200    files=
3201    opts=
3202    prev=
3203    install_type=
3204    isdir=no
3205    stripme=
3206    for arg
3207    do
3208      if test -n "$dest"; then
3209	files="$files $dest"
3210	dest="$arg"
3211	continue
3212      fi
3213
3214      case "$arg" in
3215      -d) isdir=yes ;;
3216      -f) prev="-f" ;;
3217      -g) prev="-g" ;;
3218      -m) prev="-m" ;;
3219      -o) prev="-o" ;;
3220      -s)
3221	stripme=" -s"
3222	continue
3223	;;
3224      -*) ;;
3225
3226      *)
3227	# If the previous option needed an argument, then skip it.
3228	if test -n "$prev"; then
3229	  prev=
3230	else
3231	  dest="$arg"
3232	  continue
3233	fi
3234	;;
3235      esac
3236
3237      # Aesthetically quote the argument.
3238      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3239      case "$arg" in
3240      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
3241	arg="\"$arg\""
3242	;;
3243      esac
3244      install_prog="$install_prog $arg"
3245    done
3246
3247    if test -z "$install_prog"; then
3248      $echo "$modename: you must specify an install program" 1>&2
3249      $echo "$help" 1>&2
3250      exit 1
3251    fi
3252
3253    if test -n "$prev"; then
3254      $echo "$modename: the \`$prev' option requires an argument" 1>&2
3255      $echo "$help" 1>&2
3256      exit 1
3257    fi
3258
3259    if test -z "$files"; then
3260      if test -z "$dest"; then
3261	$echo "$modename: no file or destination specified" 1>&2
3262      else
3263	$echo "$modename: you must specify a destination" 1>&2
3264      fi
3265      $echo "$help" 1>&2
3266      exit 1
3267    fi
3268
3269    # Strip any trailing slash from the destination.
3270    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3271
3272    # Check to see that the destination is a directory.
3273    test -d "$dest" && isdir=yes
3274    if test "$isdir" = yes; then
3275      destdir="$dest"
3276      destname=
3277    else
3278      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3279      test "X$destdir" = "X$dest" && destdir=.
3280      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3281
3282      # Not a directory, so check to see that there is only one file specified.
3283      set dummy $files
3284      if test $# -gt 2; then
3285	$echo "$modename: \`$dest' is not a directory" 1>&2
3286	$echo "$help" 1>&2
3287	exit 1
3288      fi
3289    fi
3290    case "$destdir" in
3291    [\\/]* | [A-Za-z]:[\\/]*) ;;
3292    *)
3293      for file in $files; do
3294	case "$file" in
3295	*.lo) ;;
3296	*)
3297	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3298	  $echo "$help" 1>&2
3299	  exit 1
3300	  ;;
3301	esac
3302      done
3303      ;;
3304    esac
3305
3306    # This variable tells wrapper scripts just to set variables rather
3307    # than running their programs.
3308    libtool_install_magic="$magic"
3309
3310    staticlibs=
3311    future_libdirs=
3312    current_libdirs=
3313    for file in $files; do
3314
3315      # Do each installation.
3316      case "$file" in
3317      *.a | *.lib)
3318	# Do the static libraries later.
3319	staticlibs="$staticlibs $file"
3320	;;
3321
3322      *.la)
3323	# Check to see that this really is a libtool archive.
3324	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3325	else
3326	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3327	  $echo "$help" 1>&2
3328	  exit 1
3329	fi
3330
3331	library_names=
3332	old_library=
3333	# If there is no directory component, then add one.
3334	case "$file" in
3335	*/* | *\\*) . $file ;;
3336	*) . ./$file ;;
3337	esac
3338
3339	# Add the libdir to current_libdirs if it is the destination.
3340	if test "X$destdir" = "X$libdir"; then
3341	  case "$current_libdirs " in
3342	  *" $libdir "*) ;;
3343	  *) current_libdirs="$current_libdirs $libdir" ;;
3344	  esac
3345	else
3346	  # Note the libdir as a future libdir.
3347	  case "$future_libdirs " in
3348	  *" $libdir "*) ;;
3349	  *) future_libdirs="$future_libdirs $libdir" ;;
3350	  esac
3351	fi
3352
3353	dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3354	test "X$dir" = "X$file/" && dir=
3355	dir="$dir$objdir"
3356
3357	# See the names of the shared library.
3358	set dummy $library_names
3359	if test -n "$2"; then
3360	  realname="$2"
3361	  shift
3362	  shift
3363
3364	  # Install the shared library and build the symlinks.
3365	  $show "$install_prog $dir/$realname $destdir/$realname"
3366	  $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3367
3368	  if test $# -gt 0; then
3369	    # Delete the old symlinks, and create new ones.
3370	    for linkname
3371	    do
3372	      if test "$linkname" != "$realname"; then
3373		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3374		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3375	      fi
3376	    done
3377	  fi
3378
3379	  # Do each command in the postinstall commands.
3380	  lib="$destdir/$realname"
3381	  eval cmds=\"$postinstall_cmds\"
3382	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3383	  for cmd in $cmds; do
3384	    IFS="$save_ifs"
3385	    $show "$cmd"
3386	    $run eval "$cmd" || exit $?
3387	  done
3388	  IFS="$save_ifs"
3389	fi
3390
3391	# Install the pseudo-library for information purposes.
3392	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3393	instname="$dir/$name"i
3394	$show "$install_prog $instname $destdir/$name"
3395	$run eval "$install_prog $instname $destdir/$name" || exit $?
3396
3397	# Maybe install the static library, too.
3398	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3399	;;
3400
3401      *.lo)
3402	# Install (i.e. copy) a libtool object.
3403
3404	# Figure out destination file name, if it wasn't already specified.
3405	if test -n "$destname"; then
3406	  destfile="$destdir/$destname"
3407	else
3408	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3409	  destfile="$destdir/$destfile"
3410	fi
3411
3412	# Deduce the name of the destination old-style object file.
3413	case "$destfile" in
3414	*.lo)
3415	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3416	  ;;
3417	*.o | *.obj)
3418	  staticdest="$destfile"
3419	  destfile=
3420	  ;;
3421	*)
3422	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3423	  $echo "$help" 1>&2
3424	  exit 1
3425	  ;;
3426	esac
3427
3428	# Install the libtool object if requested.
3429	if test -n "$destfile"; then
3430	  $show "$install_prog $file $destfile"
3431	  $run eval "$install_prog $file $destfile" || exit $?
3432	fi
3433
3434	# Install the old object if enabled.
3435	if test "$build_old_libs" = yes; then
3436	  # Deduce the name of the old-style object file.
3437	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3438
3439	  $show "$install_prog $staticobj $staticdest"
3440	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3441	fi
3442	exit 0
3443	;;
3444
3445      *)
3446	# Figure out destination file name, if it wasn't already specified.
3447	if test -n "$destname"; then
3448	  destfile="$destdir/$destname"
3449	else
3450	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3451	  destfile="$destdir/$destfile"
3452	fi
3453
3454	# Do a test to see if this is really a libtool program.
3455	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3456	  link_against_libtool_libs=
3457	  relink_command=
3458
3459	  # If there is no directory component, then add one.
3460	  case "$file" in
3461	  */* | *\\*) . $file ;;
3462	  *) . ./$file ;;
3463	  esac
3464
3465	  # Check the variables that should have been set.
3466	  if test -z "$link_against_libtool_libs"; then
3467	    $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3468	    exit 1
3469	  fi
3470
3471	  finalize=yes
3472	  for lib in $link_against_libtool_libs; do
3473	    # Check to see that each library is installed.
3474	    libdir=
3475	    if test -f "$lib"; then
3476	      # If there is no directory component, then add one.
3477	      case "$lib" in
3478	      */* | *\\*) . $lib ;;
3479	      *) . ./$lib ;;
3480	      esac
3481	    fi
3482	    libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3483	    if test -n "$libdir" && test ! -f "$libfile"; then
3484	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3485	      finalize=no
3486	    fi
3487	  done
3488
3489	  outputname=
3490	  if test "$fast_install" = no && test -n "$relink_command"; then
3491	    if test "$finalize" = yes && test -z "$run"; then
3492	      tmpdir="/tmp"
3493	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
3494	      tmpdir="$tmpdir/libtool-$$"
3495	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3496	      else
3497		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3498		continue
3499	      fi
3500	      outputname="$tmpdir/$file"
3501	      # Replace the output file specification.
3502	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3503
3504	      $show "$relink_command"
3505	      if $run eval "$relink_command"; then :
3506	      else
3507		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3508		${rm}r "$tmpdir"
3509		continue
3510	      fi
3511	      file="$outputname"
3512	    else
3513	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
3514	    fi
3515	  else
3516	    # Install the binary that we compiled earlier.
3517	    file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3518	  fi
3519	fi
3520
3521	$show "$install_prog$stripme $file $destfile"
3522	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3523	test -n "$outputname" && ${rm}r "$tmpdir"
3524	;;
3525      esac
3526    done
3527
3528    for file in $staticlibs; do
3529      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3530
3531      # Set up the ranlib parameters.
3532      oldlib="$destdir/$name"
3533
3534      $show "$install_prog $file $oldlib"
3535      $run eval "$install_prog \$file \$oldlib" || exit $?
3536
3537      # Do each command in the postinstall commands.
3538      eval cmds=\"$old_postinstall_cmds\"
3539      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3540      for cmd in $cmds; do
3541	IFS="$save_ifs"
3542	$show "$cmd"
3543	$run eval "$cmd" || exit $?
3544      done
3545      IFS="$save_ifs"
3546    done
3547
3548    if test -n "$future_libdirs"; then
3549      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3550    fi
3551
3552    if test -n "$current_libdirs"; then
3553      # Maybe just do a dry run.
3554      test -n "$run" && current_libdirs=" -n$current_libdirs"
3555      exec $SHELL $0 --finish$current_libdirs
3556      exit 1
3557    fi
3558
3559    exit 0
3560    ;;
3561
3562  # libtool finish mode
3563  finish)
3564    modename="$modename: finish"
3565    libdirs="$nonopt"
3566    admincmds=
3567
3568    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3569      for dir
3570      do
3571	libdirs="$libdirs $dir"
3572      done
3573
3574      for libdir in $libdirs; do
3575	if test -n "$finish_cmds"; then
3576	  # Do each command in the finish commands.
3577	  eval cmds=\"$finish_cmds\"
3578	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3579	  for cmd in $cmds; do
3580	    IFS="$save_ifs"
3581	    $show "$cmd"
3582	    $run eval "$cmd" || admincmds="$admincmds
3583       $cmd"
3584	  done
3585	  IFS="$save_ifs"
3586	fi
3587	if test -n "$finish_eval"; then
3588	  # Do the single finish_eval.
3589	  eval cmds=\"$finish_eval\"
3590	  $run eval "$cmds" || admincmds="$admincmds
3591       $cmds"
3592	fi
3593      done
3594    fi
3595
3596    # Exit here if they wanted silent mode.
3597    test "$show" = : && exit 0
3598
3599    echo "----------------------------------------------------------------------"
3600    echo "Libraries have been installed in:"
3601    for libdir in $libdirs; do
3602      echo "   $libdir"
3603    done
3604    echo
3605    echo "If you ever happen to want to link against installed libraries"
3606    echo "in a given directory, LIBDIR, you must either use libtool, and"
3607    echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3608    echo "flag during linking and do at least one of the following:"
3609    if test -n "$shlibpath_var"; then
3610      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
3611      echo "     during execution"
3612    fi
3613    if test -n "$runpath_var"; then
3614      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
3615      echo "     during linking"
3616    fi
3617    if test -n "$hardcode_libdir_flag_spec"; then
3618      libdir=LIBDIR
3619      eval flag=\"$hardcode_libdir_flag_spec\"
3620
3621      echo "   - use the \`$flag' linker flag"
3622    fi
3623    if test -n "$admincmds"; then
3624      echo "   - have your system administrator run these commands:$admincmds"
3625    fi
3626    if test -f /etc/ld.so.conf; then
3627      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3628    fi
3629    echo
3630    echo "See any operating system documentation about shared libraries for"
3631    echo "more information, such as the ld(1) and ld.so(8) manual pages."
3632    echo "----------------------------------------------------------------------"
3633    exit 0
3634    ;;
3635
3636  # libtool execute mode
3637  execute)
3638    modename="$modename: execute"
3639
3640    # The first argument is the command name.
3641    cmd="$nonopt"
3642    if test -z "$cmd"; then
3643      $echo "$modename: you must specify a COMMAND" 1>&2
3644      $echo "$help"
3645      exit 1
3646    fi
3647
3648    # Handle -dlopen flags immediately.
3649    for file in $execute_dlfiles; do
3650      if test ! -f "$file"; then
3651	$echo "$modename: \`$file' is not a file" 1>&2
3652	$echo "$help" 1>&2
3653	exit 1
3654      fi
3655
3656      dir=
3657      case "$file" in
3658      *.la)
3659	# Check to see that this really is a libtool archive.
3660	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3661	else
3662	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3663	  $echo "$help" 1>&2
3664	  exit 1
3665	fi
3666
3667	# Read the libtool library.
3668	dlname=
3669	library_names=
3670
3671	# If there is no directory component, then add one.
3672	case "$file" in
3673	*/* | *\\*) . $file ;;
3674	*) . ./$file ;;
3675	esac
3676
3677	# Skip this library if it cannot be dlopened.
3678	if test -z "$dlname"; then
3679	  # Warn if it was a shared library.
3680	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3681	  continue
3682	fi
3683
3684	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3685	test "X$dir" = "X$file" && dir=.
3686
3687	if test -f "$dir/$objdir/$dlname"; then
3688	  dir="$dir/$objdir"
3689	else
3690	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3691	  exit 1
3692	fi
3693	;;
3694
3695      *.lo)
3696	# Just add the directory containing the .lo file.
3697	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3698	test "X$dir" = "X$file" && dir=.
3699	;;
3700
3701      *)
3702	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3703	continue
3704	;;
3705      esac
3706
3707      # Get the absolute pathname.
3708      absdir=`cd "$dir" && pwd`
3709      test -n "$absdir" && dir="$absdir"
3710
3711      # Now add the directory to shlibpath_var.
3712      if eval "test -z \"\$$shlibpath_var\""; then
3713	eval "$shlibpath_var=\"\$dir\""
3714      else
3715	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3716      fi
3717    done
3718
3719    # This variable tells wrapper scripts just to set shlibpath_var
3720    # rather than running their programs.
3721    libtool_execute_magic="$magic"
3722
3723    # Check if any of the arguments is a wrapper script.
3724    args=
3725    for file
3726    do
3727      case "$file" in
3728      -*) ;;
3729      *)
3730	# Do a test to see if this is really a libtool program.
3731	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3732	  # If there is no directory component, then add one.
3733	  case "$file" in
3734	  */* | *\\*) . $file ;;
3735	  *) . ./$file ;;
3736	  esac
3737
3738	  # Transform arg to wrapped name.
3739	  file="$progdir/$program"
3740	fi
3741	;;
3742      esac
3743      # Quote arguments (to preserve shell metacharacters).
3744      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3745      args="$args \"$file\""
3746    done
3747
3748    if test -z "$run"; then
3749      if test -n "$shlibpath_var"; then
3750        # Export the shlibpath_var.
3751        eval "export $shlibpath_var"
3752      fi
3753
3754      # Restore saved enviroment variables
3755      if test "${save_LC_ALL+set}" = set; then
3756	LC_ALL="$save_LC_ALL"; export LC_ALL
3757      fi
3758      if test "${save_LANG+set}" = set; then
3759	LANG="$save_LANG"; export LANG
3760      fi
3761
3762      # Now actually exec the command.
3763      eval "exec \$cmd$args"
3764
3765      $echo "$modename: cannot exec \$cmd$args"
3766      exit 1
3767    else
3768      # Display what would be done.
3769      if test -n "$shlibpath_var"; then
3770        eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3771        $echo "export $shlibpath_var"
3772      fi
3773      $echo "$cmd$args"
3774      exit 0
3775    fi
3776    ;;
3777
3778  # libtool uninstall mode
3779  uninstall)
3780    modename="$modename: uninstall"
3781    rm="$nonopt"
3782    files=
3783
3784    for arg
3785    do
3786      case "$arg" in
3787      -*) rm="$rm $arg" ;;
3788      *) files="$files $arg" ;;
3789      esac
3790    done
3791
3792    if test -z "$rm"; then
3793      $echo "$modename: you must specify an RM program" 1>&2
3794      $echo "$help" 1>&2
3795      exit 1
3796    fi
3797
3798    for file in $files; do
3799      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3800      test "X$dir" = "X$file" && dir=.
3801      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3802
3803      rmfiles="$file"
3804
3805      case "$name" in
3806      *.la)
3807	# Possibly a libtool archive, so verify it.
3808	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3809	  . $dir/$name
3810
3811	  # Delete the libtool libraries and symlinks.
3812	  for n in $library_names; do
3813	    rmfiles="$rmfiles $dir/$n"
3814	  done
3815	  test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3816
3817	  $show "$rm $rmfiles"
3818	  $run $rm $rmfiles
3819
3820	  if test -n "$library_names"; then
3821	    # Do each command in the postuninstall commands.
3822	    eval cmds=\"$postuninstall_cmds\"
3823	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3824	    for cmd in $cmds; do
3825	      IFS="$save_ifs"
3826	      $show "$cmd"
3827	      $run eval "$cmd"
3828	    done
3829	    IFS="$save_ifs"
3830	  fi
3831
3832	  if test -n "$old_library"; then
3833	    # Do each command in the old_postuninstall commands.
3834	    eval cmds=\"$old_postuninstall_cmds\"
3835	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3836	    for cmd in $cmds; do
3837	      IFS="$save_ifs"
3838	      $show "$cmd"
3839	      $run eval "$cmd"
3840	    done
3841	    IFS="$save_ifs"
3842	  fi
3843
3844	  # FIXME: should reinstall the best remaining shared library.
3845	fi
3846	;;
3847
3848      *.lo)
3849	if test "$build_old_libs" = yes; then
3850	  oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3851	  rmfiles="$rmfiles $dir/$oldobj"
3852	fi
3853	$show "$rm $rmfiles"
3854	$run $rm $rmfiles
3855	;;
3856
3857      *)
3858	$show "$rm $rmfiles"
3859	$run $rm $rmfiles
3860	;;
3861      esac
3862    done
3863    exit 0
3864    ;;
3865
3866  "")
3867    $echo "$modename: you must specify a MODE" 1>&2
3868    $echo "$generic_help" 1>&2
3869    exit 1
3870    ;;
3871  esac
3872
3873  $echo "$modename: invalid operation mode \`$mode'" 1>&2
3874  $echo "$generic_help" 1>&2
3875  exit 1
3876fi # test -z "$show_help"
3877
3878# We need to display help for each of the modes.
3879case "$mode" in
3880"") $echo \
3881"Usage: $modename [OPTION]... [MODE-ARG]...
3882
3883Provide generalized library-building support services.
3884
3885    --config          show all configuration variables
3886    --debug           enable verbose shell tracing
3887-n, --dry-run         display commands without modifying any files
3888    --features        display basic configuration information and exit
3889    --finish          same as \`--mode=finish'
3890    --help            display this help message and exit
3891    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
3892    --quiet           same as \`--silent'
3893    --silent          don't print informational messages
3894    --version         print version information
3895
3896MODE must be one of the following:
3897
3898      compile         compile a source file into a libtool object
3899      execute         automatically set library path, then run a program
3900      finish          complete the installation of libtool libraries
3901      install         install libraries or executables
3902      link            create a library or an executable
3903      uninstall       remove libraries from an installed directory
3904
3905MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
3906a more detailed description of MODE."
3907  exit 0
3908  ;;
3909
3910compile)
3911  $echo \
3912"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3913
3914Compile a source file into a libtool library object.
3915
3916This mode accepts the following additional options:
3917
3918  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
3919  -static           always build a \`.o' file suitable for static linking
3920
3921COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3922from the given SOURCEFILE.
3923
3924The output file name is determined by removing the directory component from
3925SOURCEFILE, then substituting the C source code suffix \`.c' with the
3926library object suffix, \`.lo'."
3927  ;;
3928
3929execute)
3930  $echo \
3931"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3932
3933Automatically set library path, then run a program.
3934
3935This mode accepts the following additional options:
3936
3937  -dlopen FILE      add the directory containing FILE to the library path
3938
3939This mode sets the library path environment variable according to \`-dlopen'
3940flags.
3941
3942If any of the ARGS are libtool executable wrappers, then they are translated
3943into their corresponding uninstalled binary, and any of their required library
3944directories are added to the library path.
3945
3946Then, COMMAND is executed, with ARGS as arguments."
3947  ;;
3948
3949finish)
3950  $echo \
3951"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3952
3953Complete the installation of libtool libraries.
3954
3955Each LIBDIR is a directory that contains libtool libraries.
3956
3957The commands that this mode executes may require superuser privileges.  Use
3958the \`--dry-run' option if you just want to see what would be executed."
3959  ;;
3960
3961install)
3962  $echo \
3963"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3964
3965Install executables or libraries.
3966
3967INSTALL-COMMAND is the installation command.  The first component should be
3968either the \`install' or \`cp' program.
3969
3970The rest of the components are interpreted as arguments to that command (only
3971BSD-compatible install options are recognized)."
3972  ;;
3973
3974link)
3975  $echo \
3976"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3977
3978Link object files or libraries together to form another library, or to
3979create an executable program.
3980
3981LINK-COMMAND is a command using the C compiler that you would use to create
3982a program from several object files.
3983
3984The following components of LINK-COMMAND are treated specially:
3985
3986  -all-static       do not do any dynamic linking at all
3987  -avoid-version    do not add a version suffix if possible
3988  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
3989  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
3990  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3991  -export-symbols SYMFILE
3992		    try to export only the symbols listed in SYMFILE
3993  -export-symbols-regex REGEX
3994		    try to export only the symbols matching REGEX
3995  -LLIBDIR          search LIBDIR for required installed libraries
3996  -lNAME            OUTPUT-FILE requires the installed library libNAME
3997  -module           build a library that can dlopened
3998  -no-undefined     declare that a library does not refer to external symbols
3999  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
4000  -release RELEASE  specify package release information
4001  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
4002  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
4003  -static           do not do any dynamic linking of libtool libraries
4004  -version-info CURRENT[:REVISION[:AGE]]
4005		    specify library version info [each variable defaults to 0]
4006
4007All other options (arguments beginning with \`-') are ignored.
4008
4009Every other argument is treated as a filename.  Files ending in \`.la' are
4010treated as uninstalled libtool libraries, other files are standard or library
4011object files.
4012
4013If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4014only library objects (\`.lo' files) may be specified, and \`-rpath' is
4015required, except when creating a convenience library.
4016
4017If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4018using \`ar' and \`ranlib', or on Windows using \`lib'.
4019
4020If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4021is created, otherwise an executable program is created."
4022  ;;
4023
4024uninstall)
4025  $echo \
4026"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4027
4028Remove libraries from an installation directory.
4029
4030RM is the name of the program to use to delete files associated with each FILE
4031(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
4032to RM.
4033
4034If FILE is a libtool library, all the files associated with it are deleted.
4035Otherwise, only FILE itself is deleted using RM."
4036  ;;
4037
4038*)
4039  $echo "$modename: invalid operation mode \`$mode'" 1>&2
4040  $echo "$help" 1>&2
4041  exit 1
4042  ;;
4043esac
4044
4045echo
4046$echo "Try \`$modename --help' for more information about other modes."
4047
4048exit 0
4049
4050# Local Variables:
4051# mode:shell-script
4052# sh-indentation:2
4053# End:
4054