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	  if test "x$verstring" = "x0.0"; then
2185	    tmp_verstring=
2186	  else
2187	    tmp_verstring="$verstring"
2188	  fi
2189	  eval cmds=\"$archive_cmds\"
2190	fi
2191	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
2192	for cmd in $cmds; do
2193	  IFS="$save_ifs"
2194	  $show "$cmd"
2195	  $run eval "$cmd" || exit $?
2196	done
2197	IFS="$save_ifs"
2198
2199	# Create links to the real library.
2200	for linkname in $linknames; do
2201	  if test "$realname" != "$linkname"; then
2202	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2203	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2204	  fi
2205	done
2206
2207	# If -module or -export-dynamic was specified, set the dlname.
2208	if test "$module" = yes || test "$export_dynamic" = yes; then
2209	  # On all known operating systems, these are identical.
2210	  dlname="$soname"
2211	fi
2212      fi
2213      ;;
2214
2215    *.lo | *.o | *.obj)
2216      if test -n "$link_against_libtool_libs"; then
2217	$echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2218	exit 1
2219      fi
2220
2221      if test -n "$deplibs"; then
2222	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2223      fi
2224
2225      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2226	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2227      fi
2228
2229      if test -n "$rpath"; then
2230	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2231      fi
2232
2233      if test -n "$xrpath"; then
2234	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2235      fi
2236
2237      if test -n "$vinfo"; then
2238	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2239      fi
2240
2241      if test -n "$release"; then
2242	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2243      fi
2244
2245      case "$output" in
2246      *.lo)
2247	if test -n "$objs"; then
2248	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2249	  exit 1
2250	fi
2251	libobj="$output"
2252	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2253	;;
2254      *)
2255	libobj=
2256	obj="$output"
2257	;;
2258      esac
2259
2260      # Delete the old objects.
2261      $run $rm $obj $libobj
2262
2263      # Objects from convenience libraries.  This assumes
2264      # single-version convenience libraries.  Whenever we create
2265      # different ones for PIC/non-PIC, this we'll have to duplicate
2266      # the extraction.
2267      reload_conv_objs=
2268      gentop=
2269      # reload_cmds runs $LD directly, so let us get rid of
2270      # -Wl from whole_archive_flag_spec
2271      wl= 
2272
2273      if test -n "$convenience"; then
2274	if test -n "$whole_archive_flag_spec"; then
2275	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2276	else
2277	  gentop="$output_objdir/${obj}x"
2278	  $show "${rm}r $gentop"
2279	  $run ${rm}r "$gentop"
2280	  $show "mkdir $gentop"
2281	  $run mkdir "$gentop"
2282	  status=$?
2283	  if test $status -ne 0 && test ! -d "$gentop"; then
2284	    exit $status
2285	  fi
2286	  generated="$generated $gentop"
2287
2288	  for xlib in $convenience; do
2289	    # Extract the objects.
2290	    case "$xlib" in
2291	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2292	    *) xabs=`pwd`"/$xlib" ;;
2293	    esac
2294	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2295	    xdir="$gentop/$xlib"
2296
2297	    $show "${rm}r $xdir"
2298	    $run ${rm}r "$xdir"
2299	    $show "mkdir $xdir"
2300	    $run mkdir "$xdir"
2301	    status=$?
2302	    if test $status -ne 0 && test ! -d "$xdir"; then
2303	      exit $status
2304	    fi
2305	    $show "(cd $xdir && $AR x $xabs)"
2306	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2307
2308	    reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2309	  done
2310	fi
2311      fi
2312
2313      # Create the old-style object.
2314      reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
2315
2316      output="$obj"
2317      eval cmds=\"$reload_cmds\"
2318      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
2319      for cmd in $cmds; do
2320	IFS="$save_ifs"
2321	$show "$cmd"
2322	$run eval "$cmd" || exit $?
2323      done
2324      IFS="$save_ifs"
2325
2326      # Exit if we aren't doing a library object file.
2327      if test -z "$libobj"; then
2328	if test -n "$gentop"; then
2329	  $show "${rm}r $gentop"
2330	  $run ${rm}r $gentop
2331	fi
2332
2333	exit 0
2334      fi
2335
2336      if test "$build_libtool_libs" != yes; then
2337	if test -n "$gentop"; then
2338	  $show "${rm}r $gentop"
2339	  $run ${rm}r $gentop
2340	fi
2341
2342	# Create an invalid libtool object if no PIC, so that we don't
2343	# accidentally link it into a program.
2344	$show "echo timestamp > $libobj"
2345	$run eval "echo timestamp > $libobj" || exit $?
2346	exit 0
2347      fi
2348
2349      if test -n "$pic_flag"; then
2350	# Only do commands if we really have different PIC objects.
2351	reload_objs="$libobjs $reload_conv_objs"
2352	output="$libobj"
2353	eval cmds=\"$reload_cmds\"
2354	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
2355	for cmd in $cmds; do
2356	  IFS="$save_ifs"
2357	  $show "$cmd"
2358	  $run eval "$cmd" || exit $?
2359	done
2360	IFS="$save_ifs"
2361      else
2362	# Just create a symlink.
2363	$show $rm $libobj
2364	$run $rm $libobj
2365	xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
2366	if test "X$xdir" = "X$libobj"; then
2367	  xdir="."
2368	else
2369	  xdir="$xdir"
2370	fi
2371	baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
2372	oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2373	$show "(cd $xdir && $LN_S $oldobj $baseobj)"
2374	$run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
2375      fi
2376
2377      if test -n "$gentop"; then
2378	$show "${rm}r $gentop"
2379	$run ${rm}r $gentop
2380      fi
2381
2382      exit 0
2383      ;;
2384
2385    # Anything else should be a program.
2386    *)
2387      if test -n "$vinfo"; then
2388	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2389      fi
2390
2391      if test -n "$release"; then
2392	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2393      fi
2394
2395      if test "$preload" = yes; then
2396	if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2397	   test "$dlopen_self_static" = unknown; then
2398	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2399	fi 
2400      fi
2401    
2402      if test -n "$rpath$xrpath"; then
2403	# If the user specified any rpath flags, then add them.
2404	for libdir in $rpath $xrpath; do
2405	  # This is the magic to use -rpath.
2406	  case "$compile_rpath " in
2407	  *" $libdir "*) ;;
2408	  *) compile_rpath="$compile_rpath $libdir" ;;
2409	  esac
2410	  case "$finalize_rpath " in
2411	  *" $libdir "*) ;;
2412	  *) finalize_rpath="$finalize_rpath $libdir" ;;
2413	  esac
2414	done
2415      fi
2416
2417      # Now hardcode the library paths
2418      rpath=
2419      hardcode_libdirs=
2420      for libdir in $compile_rpath $finalize_rpath; do
2421	if test -n "$hardcode_libdir_flag_spec"; then
2422	  if test -n "$hardcode_libdir_separator"; then
2423	    if test -z "$hardcode_libdirs"; then
2424	      hardcode_libdirs="$libdir"
2425	    else
2426	      # Just accumulate the unique libdirs.
2427	      case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2428	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2429		;;
2430	      *)
2431		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2432		;;
2433	      esac
2434	    fi
2435	  else
2436	    eval flag=\"$hardcode_libdir_flag_spec\"
2437	    rpath="$rpath $flag"
2438	  fi
2439	elif test -n "$runpath_var"; then
2440	  case "$perm_rpath " in
2441	  *" $libdir "*) ;;
2442	  *) perm_rpath="$perm_rpath $libdir" ;;
2443	  esac
2444	fi
2445      done
2446      # Substitute the hardcoded libdirs into the rpath.
2447      if test -n "$hardcode_libdir_separator" &&
2448	 test -n "$hardcode_libdirs"; then
2449	libdir="$hardcode_libdirs"
2450	eval rpath=\" $hardcode_libdir_flag_spec\"
2451      fi
2452      compile_rpath="$rpath"
2453
2454      rpath=
2455      hardcode_libdirs=
2456      for libdir in $finalize_rpath; do
2457	if test -n "$hardcode_libdir_flag_spec"; then
2458	  if test -n "$hardcode_libdir_separator"; then
2459	    if test -z "$hardcode_libdirs"; then
2460	      hardcode_libdirs="$libdir"
2461	    else
2462	      # Just accumulate the unique libdirs.
2463	      case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2464	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2465		;;
2466	      *)
2467		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2468		;;
2469	      esac
2470	    fi
2471	  else
2472	    eval flag=\"$hardcode_libdir_flag_spec\"
2473	    rpath="$rpath $flag"
2474	  fi
2475	elif test -n "$runpath_var"; then
2476	  case "$finalize_perm_rpath " in
2477	  *" $libdir "*) ;;
2478	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2479	  esac
2480	fi
2481      done
2482      # Substitute the hardcoded libdirs into the rpath.
2483      if test -n "$hardcode_libdir_separator" &&
2484	 test -n "$hardcode_libdirs"; then
2485	libdir="$hardcode_libdirs"
2486	eval rpath=\" $hardcode_libdir_flag_spec\"
2487      fi
2488      finalize_rpath="$rpath"
2489
2490      output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2491      if test "X$output_objdir" = "X$output"; then
2492	output_objdir="$objdir"
2493      else
2494	output_objdir="$output_objdir/$objdir"
2495      fi
2496
2497      # Create the binary in the object directory, then wrap it.
2498      if test ! -d $output_objdir; then
2499	$show "$mkdir $output_objdir"
2500	$run $mkdir $output_objdir
2501	status=$?
2502	if test $status -ne 0 && test ! -d $output_objdir; then
2503	  exit $status
2504	fi
2505      fi
2506
2507      if test -n "$libobjs" && test "$build_old_libs" = yes; then
2508	# Transform all the library objects into standard objects.
2509	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2510	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2511      fi
2512
2513      dlsyms=
2514      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2515	if test -n "$NM" && test -n "$global_symbol_pipe"; then
2516	  dlsyms="${outputname}S.c"
2517	else
2518	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2519	fi
2520      fi
2521
2522      if test -n "$dlsyms"; then
2523	case "$dlsyms" in
2524	"") ;;
2525	*.c)
2526	  # Discover the nlist of each of the dlfiles.
2527	  nlist="$output_objdir/${outputname}.nm"
2528
2529	  $show "$rm $nlist ${nlist}S ${nlist}T"
2530	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
2531
2532	  # Parse the name list into a source file.
2533	  $show "creating $output_objdir/$dlsyms"
2534
2535	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2536/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2537/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2538
2539#ifdef __cplusplus
2540extern \"C\" {
2541#endif
2542
2543/* Prevent the only kind of declaration conflicts we can make. */
2544#define lt_preloaded_symbols some_other_symbol
2545
2546/* External symbol declarations for the compiler. */\
2547"
2548
2549	  if test "$dlself" = yes; then
2550	    $show "generating symbol list for \`$output'"
2551
2552	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2553
2554	    # Add our own program objects to the symbol list.
2555	    progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2556	    for arg in $progfiles; do
2557	      $show "extracting global C symbols from \`$arg'"
2558	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2559	    done
2560
2561	    if test -n "$exclude_expsyms"; then
2562	      $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2563	      $run eval '$mv "$nlist"T "$nlist"'
2564	    fi
2565	    
2566	    if test -n "$export_symbols_regex"; then
2567	      $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2568	      $run eval '$mv "$nlist"T "$nlist"'
2569	    fi
2570
2571	    # Prepare the list of exported symbols
2572	    if test -z "$export_symbols"; then
2573	      export_symbols="$output_objdir/$output.exp"
2574	      $run $rm $export_symbols
2575	      $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2576	    else
2577	      $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2578	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2579	      $run eval 'mv "$nlist"T "$nlist"'
2580	    fi
2581	  fi
2582
2583	  for arg in $dlprefiles; do
2584	    $show "extracting global C symbols from \`$arg'"
2585	    name=`echo "$arg" | sed -e 's%^.*/%%'`
2586	    $run eval 'echo ": $name " >> "$nlist"'
2587	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2588	  done
2589
2590	  if test -z "$run"; then
2591	    # Make sure we have at least an empty file.
2592	    test -f "$nlist" || : > "$nlist"
2593
2594	    if test -n "$exclude_expsyms"; then
2595	      egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2596	      $mv "$nlist"T "$nlist"
2597	    fi
2598
2599	    # Try sorting and uniquifying the output.
2600	    if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2601	      :
2602	    else
2603	      grep -v "^: " < "$nlist" > "$nlist"S
2604	    fi
2605
2606	    if test -f "$nlist"S; then
2607	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2608	    else
2609	      echo '/* NONE */' >> "$output_objdir/$dlsyms"
2610	    fi
2611
2612	    $echo >> "$output_objdir/$dlsyms" "\
2613
2614#undef lt_preloaded_symbols
2615
2616#if defined (__STDC__) && __STDC__
2617# define lt_ptr_t void *
2618#else
2619# define lt_ptr_t char *
2620# define const
2621#endif
2622
2623/* The mapping between symbol names and symbols. */
2624const struct {
2625  const char *name;
2626  lt_ptr_t address;
2627}
2628lt_preloaded_symbols[] =
2629{\
2630"
2631
2632	    sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
2633		-e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
2634		  < "$nlist" >> "$output_objdir/$dlsyms"
2635
2636	    $echo >> "$output_objdir/$dlsyms" "\
2637  {0, (lt_ptr_t) 0}
2638};
2639
2640/* This works around a problem in FreeBSD linker */
2641#ifdef FREEBSD_WORKAROUND
2642static const void *lt_preloaded_setup() {
2643  return lt_preloaded_symbols;
2644}
2645#endif
2646
2647#ifdef __cplusplus
2648}
2649#endif\
2650"
2651	  fi
2652
2653	  pic_flag_for_symtable=
2654	  case "$host" in
2655	  # compiling the symbol table file with pic_flag works around
2656	  # a FreeBSD bug that causes programs to crash when -lm is
2657	  # linked before any other PIC object.  But we must not use
2658	  # pic_flag when linking with -static.  The problem exists in
2659	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2660	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2661	    case "$compile_command " in
2662	    *" -static "*) ;;
2663	    *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2664	    esac;;
2665	  *-*-hpux*)
2666	    case "$compile_command " in
2667	    *" -static "*) ;;
2668	    *) pic_flag_for_symtable=" $pic_flag -DPIC";;
2669	    esac
2670	  esac
2671
2672	  # Now compile the dynamic symbol file.
2673	  $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2674	  $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2675
2676	  # Clean up the generated files.
2677	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2678	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2679
2680	  # Transform the symbol file into the correct name.
2681	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2682	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2683	  ;;
2684	*)
2685	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2686	  exit 1
2687	  ;;
2688	esac
2689      else
2690	# We keep going just in case the user didn't refer to
2691	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
2692	# really was required.
2693
2694	# Nullify the symbol file.
2695	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2696	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2697      fi
2698
2699      if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2700	# Replace the output file specification.
2701	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2702	link_command="$compile_command$compile_rpath"
2703
2704	# We have no uninstalled library dependencies, so finalize right now.
2705	$show "$link_command"
2706	$run eval "$link_command"
2707	status=$?
2708	
2709	# Delete the generated files.
2710	if test -n "$dlsyms"; then
2711	  $show "$rm $output_objdir/${outputname}S.${objext}"
2712	  $run $rm "$output_objdir/${outputname}S.${objext}"
2713	fi
2714
2715	exit $status
2716      fi
2717
2718      if test -n "$shlibpath_var"; then
2719	# We should set the shlibpath_var
2720	rpath=
2721	for dir in $temp_rpath; do
2722	  case "$dir" in
2723	  [\\/]* | [A-Za-z]:[\\/]*)
2724	    # Absolute path.
2725	    rpath="$rpath$dir:"
2726	    ;;
2727	  *)
2728	    # Relative path: add a thisdir entry.
2729	    rpath="$rpath\$thisdir/$dir:"
2730	    ;;
2731	  esac
2732	done
2733	temp_rpath="$rpath"
2734      fi
2735
2736      if test -n "$compile_shlibpath$finalize_shlibpath"; then
2737	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2738      fi
2739      if test -n "$finalize_shlibpath"; then
2740	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2741      fi
2742
2743      compile_var=
2744      finalize_var=
2745      if test -n "$runpath_var"; then
2746	if test -n "$perm_rpath"; then
2747	  # We should set the runpath_var.
2748	  rpath=
2749	  for dir in $perm_rpath; do
2750	    rpath="$rpath$dir:"
2751	  done
2752	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2753	fi
2754	if test -n "$finalize_perm_rpath"; then
2755	  # We should set the runpath_var.
2756	  rpath=
2757	  for dir in $finalize_perm_rpath; do
2758	    rpath="$rpath$dir:"
2759	  done
2760	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2761	fi
2762      fi
2763
2764      if test "$hardcode_action" = relink; then
2765	# Fast installation is not supported
2766	link_command="$compile_var$compile_command$compile_rpath"
2767	relink_command="$finalize_var$finalize_command$finalize_rpath"
2768	
2769	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2770	$echo "$modename: \`$output' will be relinked during installation" 1>&2
2771      else
2772	if test "$fast_install" != no; then
2773	  link_command="$finalize_var$compile_command$finalize_rpath"
2774	  if test "$fast_install" = yes; then
2775	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2776	  else
2777	    # fast_install is set to needless
2778	    relink_command=
2779	  fi
2780	else
2781	  link_command="$compile_var$compile_command$compile_rpath"
2782	  relink_command="$finalize_var$finalize_command$finalize_rpath"
2783	fi
2784      fi
2785
2786      # Replace the output file specification.
2787      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2788      
2789      # Delete the old output files.
2790      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2791
2792      $show "$link_command"
2793      $run eval "$link_command" || exit $?
2794
2795      # Now create the wrapper script.
2796      $show "creating $output"
2797
2798      # Quote the relink command for shipping.
2799      if test -n "$relink_command"; then
2800	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2801      fi
2802
2803      # Quote $echo for shipping.
2804      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2805	case "$0" in
2806	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2807	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2808	esac
2809	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2810      else
2811	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2812      fi
2813
2814      # Only actually do things if our run command is non-null.
2815      if test -z "$run"; then
2816	# win32 will think the script is a binary if it has
2817	# a .exe suffix, so we strip it off here.
2818	case $output in
2819	  *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2820	esac
2821	$rm $output
2822	trap "$rm $output; exit 1" 1 2 15
2823
2824	$echo > $output "\
2825#! $SHELL
2826
2827# $output - temporary wrapper script for $objdir/$outputname
2828# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2829#
2830# The $output program cannot be directly executed until all the libtool
2831# libraries that it depends on are installed.
2832#
2833# This wrapper script should never be moved out of the build directory.
2834# If it is, it will not operate correctly.
2835
2836# Sed substitution that helps us do robust quoting.  It backslashifies
2837# metacharacters that are still active within double-quoted strings.
2838Xsed='sed -e 1s/^X//'
2839sed_quote_subst='$sed_quote_subst'
2840
2841# The HP-UX ksh and POSIX shell print the target directory to stdout
2842# if CDPATH is set.
2843if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
2844
2845relink_command=\"$relink_command\"
2846
2847# This environment variable determines our operation mode.
2848if test \"\$libtool_install_magic\" = \"$magic\"; then
2849  # install mode needs the following variable:
2850  link_against_libtool_libs='$link_against_libtool_libs'
2851else
2852  # When we are sourced in execute mode, \$file and \$echo are already set.
2853  if test \"\$libtool_execute_magic\" != \"$magic\"; then
2854    echo=\"$qecho\"
2855    file=\"\$0\"
2856    # Make sure echo works.
2857    if test \"X\$1\" = X--no-reexec; then
2858      # Discard the --no-reexec flag, and continue.
2859      shift
2860    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2861      # Yippee, \$echo works!
2862      :
2863    else
2864      # Restart under the correct shell, and then maybe \$echo will work.
2865      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2866    fi
2867  fi\
2868"
2869	$echo >> $output "\
2870
2871  # Find the directory that this script lives in.
2872  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2873  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2874
2875  # Follow symbolic links until we get to the real thisdir.
2876  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2877  while test -n \"\$file\"; do
2878    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2879
2880    # If there was a directory component, then change thisdir.
2881    if test \"x\$destdir\" != \"x\$file\"; then
2882      case \"\$destdir\" in
2883      [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2884      *) thisdir=\"\$thisdir/\$destdir\" ;;
2885      esac
2886    fi
2887
2888    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2889    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2890  done
2891
2892  # Try to get the absolute directory name.
2893  absdir=\`cd \"\$thisdir\" && pwd\`
2894  test -n \"\$absdir\" && thisdir=\"\$absdir\"
2895"
2896
2897	if test "$fast_install" = yes; then
2898	  echo >> $output "\
2899  program=lt-'$outputname'
2900  progdir=\"\$thisdir/$objdir\"
2901  
2902  if test ! -f \"\$progdir/\$program\" || \\
2903     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2904       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2905
2906    file=\"\$\$-\$program\"
2907
2908    if test ! -d \"\$progdir\"; then
2909      $mkdir \"\$progdir\"
2910    else
2911      $rm \"\$progdir/\$file\"
2912    fi"
2913
2914	  echo >> $output "\
2915
2916    # relink executable if necessary
2917    if test -n \"\$relink_command\"; then
2918      if (cd \"\$thisdir\" && eval \$relink_command); then :
2919      else
2920	$rm \"\$progdir/\$file\"
2921	exit 1
2922      fi
2923    fi
2924
2925    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2926    { $rm \"\$progdir/\$program\";
2927      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2928    $rm \"\$progdir/\$file\"
2929  fi"
2930	else
2931	  echo >> $output "\
2932  program='$outputname'
2933  progdir=\"\$thisdir/$objdir\"
2934"
2935	fi
2936
2937	echo >> $output "\
2938
2939  if test -f \"\$progdir/\$program\"; then"
2940
2941	# Export our shlibpath_var if we have one.
2942	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2943	  $echo >> $output "\
2944    # Add our own library path to $shlibpath_var
2945    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2946
2947    # Some systems cannot cope with colon-terminated $shlibpath_var
2948    # The second colon is a workaround for a bug in BeOS R4 sed
2949    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2950
2951    export $shlibpath_var
2952"
2953	fi
2954
2955	# fixup the dll searchpath if we need to.
2956	if test -n "$dllsearchpath"; then
2957	  $echo >> $output "\
2958    # Add the dll search path components to the executable PATH
2959    PATH=$dllsearchpath:\$PATH
2960"
2961	fi
2962
2963	$echo >> $output "\
2964    if test \"\$libtool_execute_magic\" != \"$magic\"; then
2965      # Run the actual program with our arguments.
2966"
2967	case $host in
2968	  # win32 systems need to use the prog path for dll
2969	  # lookup to work
2970	*-*-cygwin*)
2971	  $echo >> $output "\
2972      exec \$progdir/\$program \${1+\"\$@\"}
2973"
2974	  ;;
2975
2976	# Backslashes separate directories on plain windows
2977	*-*-mingw | *-*-os2*)
2978	  $echo >> $output "\
2979      exec \$progdir\\\\\$program \${1+\"\$@\"}
2980"
2981	  ;;
2982
2983	*)
2984	  $echo >> $output "\
2985      # Export the path to the program.
2986      PATH=\"\$progdir:\$PATH\"
2987      export PATH
2988
2989      exec \$program \${1+\"\$@\"}
2990"
2991	  ;;
2992	esac
2993	$echo >> $output "\
2994      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2995      exit 1
2996    fi
2997  else
2998    # The program doesn't exist.
2999    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
3000    \$echo \"This script is just a wrapper for \$program.\" 1>&2
3001    echo \"See the $PACKAGE documentation for more information.\" 1>&2
3002    exit 1
3003  fi
3004fi\
3005"
3006	chmod +x $output
3007      fi
3008      exit 0
3009      ;;
3010    esac
3011
3012    # See if we need to build an old-fashioned archive.
3013    for oldlib in $oldlibs; do
3014
3015      if test "$build_libtool_libs" = convenience; then
3016	oldobjs="$libobjs_save"
3017	addlibs="$convenience"
3018	build_libtool_libs=no
3019      else
3020	if test "$build_libtool_libs" = module; then
3021	  oldobjs="$libobjs_save"
3022	  build_libtool_libs=no
3023	else
3024	  oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3025	fi
3026	addlibs="$old_convenience"
3027      fi
3028
3029      if test -n "$addlibs"; then
3030	gentop="$output_objdir/${outputname}x"
3031	$show "${rm}r $gentop"
3032	$run ${rm}r "$gentop"
3033	$show "mkdir $gentop"
3034	$run mkdir "$gentop"
3035	status=$?
3036	if test $status -ne 0 && test ! -d "$gentop"; then
3037	  exit $status
3038	fi
3039	generated="$generated $gentop"
3040	  
3041	# Add in members from convenience archives.
3042	for xlib in $addlibs; do
3043	  # Extract the objects.
3044	  case "$xlib" in
3045	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3046	  *) xabs=`pwd`"/$xlib" ;;
3047	  esac
3048	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3049	  xdir="$gentop/$xlib"
3050
3051	  $show "${rm}r $xdir"
3052	  $run ${rm}r "$xdir"
3053	  $show "mkdir $xdir"
3054	  $run mkdir "$xdir"
3055	  status=$?
3056	  if test $status -ne 0 && test ! -d "$xdir"; then
3057	    exit $status
3058	  fi
3059	  $show "(cd $xdir && $AR x $xabs)"
3060	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3061
3062	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3063	done
3064      fi
3065
3066      # Do each command in the archive commands.
3067      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3068	eval cmds=\"$old_archive_from_new_cmds\"
3069      else
3070	# Ensure that we have .o objects in place in case we decided
3071	# not to build a shared library, and have fallen back to building
3072	# static libs even though --disable-static was passed!
3073	for oldobj in $oldobjs; do
3074	  if test ! -f $oldobj; then
3075	    xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3076	    if test "X$xdir" = "X$oldobj"; then
3077	      xdir="."
3078	    else
3079	      xdir="$xdir"
3080	    fi
3081	    baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3082	    obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3083	    $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3084	    $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3085	  fi
3086	done
3087
3088	eval cmds=\"$old_archive_cmds\"
3089      fi
3090      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3091      for cmd in $cmds; do
3092	IFS="$save_ifs"
3093	$show "$cmd"
3094	$run eval "$cmd" || exit $?
3095      done
3096      IFS="$save_ifs"
3097    done
3098
3099    if test -n "$generated"; then
3100      $show "${rm}r$generated"
3101      $run ${rm}r$generated
3102    fi
3103
3104    # Now create the libtool archive.
3105    case "$output" in
3106    *.la)
3107      old_library=
3108      test "$build_old_libs" = yes && old_library="$libname.$libext"
3109      $show "creating $output"
3110
3111      if test -n "$xrpath"; then
3112	temp_xrpath=
3113	for libdir in $xrpath; do
3114	  temp_xrpath="$temp_xrpath -R$libdir"
3115	done
3116	dependency_libs="$temp_xrpath $dependency_libs"
3117      fi
3118
3119      # Only create the output if not a dry run.
3120      if test -z "$run"; then
3121	for installed in no yes; do
3122	  if test "$installed" = yes; then
3123	    if test -z "$install_libdir"; then
3124	      break
3125	    fi
3126	    output="$output_objdir/$outputname"i
3127	  fi
3128	  $rm $output
3129	  $echo > $output "\
3130# $outputname - a libtool library file
3131# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3132#
3133# Please DO NOT delete this file!
3134# It is necessary for linking the library.
3135
3136# The name that we can dlopen(3).
3137dlname='$dlname'
3138
3139# Names of this library.
3140library_names='$library_names'
3141
3142# The name of the static archive.
3143old_library='$old_library'
3144
3145# Libraries that this one depends upon.
3146dependency_libs='$dependency_libs'
3147
3148# Version information for $libname.
3149current=$current
3150age=$age
3151revision=$revision
3152
3153# Is this an already installed library?
3154installed=$installed
3155
3156# Directory that this library needs to be installed in:
3157libdir='$install_libdir'\
3158"
3159	done
3160      fi
3161
3162      # Do a symbolic link so that the libtool archive can be found in
3163      # LD_LIBRARY_PATH before the program is installed.
3164      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3165      $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3166      ;;
3167    esac
3168    exit 0
3169    ;;
3170
3171  # libtool install mode
3172  install)
3173    modename="$modename: install"
3174
3175    # There may be an optional sh(1) argument at the beginning of
3176    # install_prog (especially on Windows NT).
3177    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3178      # Aesthetically quote it.
3179      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3180      case "$arg" in
3181      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
3182	arg="\"$arg\""
3183	;;
3184      esac
3185      install_prog="$arg "
3186      arg="$1"
3187      shift
3188    else
3189      install_prog=
3190      arg="$nonopt"
3191    fi
3192
3193    # The real first argument should be the name of the installation program.
3194    # Aesthetically quote it.
3195    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3196    case "$arg" in
3197    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
3198      arg="\"$arg\""
3199      ;;
3200    esac
3201    install_prog="$install_prog$arg"
3202
3203    # We need to accept at least all the BSD install flags.
3204    dest=
3205    files=
3206    opts=
3207    prev=
3208    install_type=
3209    isdir=no
3210    stripme=
3211    for arg
3212    do
3213      if test -n "$dest"; then
3214	files="$files $dest"
3215	dest="$arg"
3216	continue
3217      fi
3218
3219      case "$arg" in
3220      -d) isdir=yes ;;
3221      -f) prev="-f" ;;
3222      -g) prev="-g" ;;
3223      -m) prev="-m" ;;
3224      -o) prev="-o" ;;
3225      -s)
3226	stripme=" -s"
3227	continue
3228	;;
3229      -*) ;;
3230
3231      *)
3232	# If the previous option needed an argument, then skip it.
3233	if test -n "$prev"; then
3234	  prev=
3235	else
3236	  dest="$arg"
3237	  continue
3238	fi
3239	;;
3240      esac
3241
3242      # Aesthetically quote the argument.
3243      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3244      case "$arg" in
3245      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
3246	arg="\"$arg\""
3247	;;
3248      esac
3249      install_prog="$install_prog $arg"
3250    done
3251
3252    if test -z "$install_prog"; then
3253      $echo "$modename: you must specify an install program" 1>&2
3254      $echo "$help" 1>&2
3255      exit 1
3256    fi
3257
3258    if test -n "$prev"; then
3259      $echo "$modename: the \`$prev' option requires an argument" 1>&2
3260      $echo "$help" 1>&2
3261      exit 1
3262    fi
3263
3264    if test -z "$files"; then
3265      if test -z "$dest"; then
3266	$echo "$modename: no file or destination specified" 1>&2
3267      else
3268	$echo "$modename: you must specify a destination" 1>&2
3269      fi
3270      $echo "$help" 1>&2
3271      exit 1
3272    fi
3273
3274    # Strip any trailing slash from the destination.
3275    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3276
3277    # Check to see that the destination is a directory.
3278    test -d "$dest" && isdir=yes
3279    if test "$isdir" = yes; then
3280      destdir="$dest"
3281      destname=
3282    else
3283      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3284      test "X$destdir" = "X$dest" && destdir=.
3285      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3286
3287      # Not a directory, so check to see that there is only one file specified.
3288      set dummy $files
3289      if test $# -gt 2; then
3290	$echo "$modename: \`$dest' is not a directory" 1>&2
3291	$echo "$help" 1>&2
3292	exit 1
3293      fi
3294    fi
3295    case "$destdir" in
3296    [\\/]* | [A-Za-z]:[\\/]*) ;;
3297    *)
3298      for file in $files; do
3299	case "$file" in
3300	*.lo) ;;
3301	*)
3302	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3303	  $echo "$help" 1>&2
3304	  exit 1
3305	  ;;
3306	esac
3307      done
3308      ;;
3309    esac
3310
3311    # This variable tells wrapper scripts just to set variables rather
3312    # than running their programs.
3313    libtool_install_magic="$magic"
3314
3315    staticlibs=
3316    future_libdirs=
3317    current_libdirs=
3318    for file in $files; do
3319
3320      # Do each installation.
3321      case "$file" in
3322      *.a | *.lib)
3323	# Do the static libraries later.
3324	staticlibs="$staticlibs $file"
3325	;;
3326
3327      *.la)
3328	# Check to see that this really is a libtool archive.
3329	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3330	else
3331	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3332	  $echo "$help" 1>&2
3333	  exit 1
3334	fi
3335
3336	library_names=
3337	old_library=
3338	# If there is no directory component, then add one.
3339	case "$file" in
3340	*/* | *\\*) . $file ;;
3341	*) . ./$file ;;
3342	esac
3343
3344	# Add the libdir to current_libdirs if it is the destination.
3345	if test "X$destdir" = "X$libdir"; then
3346	  case "$current_libdirs " in
3347	  *" $libdir "*) ;;
3348	  *) current_libdirs="$current_libdirs $libdir" ;;
3349	  esac
3350	else
3351	  # Note the libdir as a future libdir.
3352	  case "$future_libdirs " in
3353	  *" $libdir "*) ;;
3354	  *) future_libdirs="$future_libdirs $libdir" ;;
3355	  esac
3356	fi
3357
3358	dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3359	test "X$dir" = "X$file/" && dir=
3360	dir="$dir$objdir"
3361
3362	# See the names of the shared library.
3363	set dummy $library_names
3364	if test -n "$2"; then
3365	  realname="$2"
3366	  shift
3367	  shift
3368
3369	  # Install the shared library and build the symlinks.
3370	  $show "$install_prog $dir/$realname $destdir/$realname"
3371	  $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3372
3373	  if test $# -gt 0; then
3374	    # Delete the old symlinks, and create new ones.
3375	    for linkname
3376	    do
3377	      if test "$linkname" != "$realname"; then
3378		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3379		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3380	      fi
3381	    done
3382	  fi
3383
3384	  # Do each command in the postinstall commands.
3385	  lib="$destdir/$realname"
3386	  eval cmds=\"$postinstall_cmds\"
3387	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3388	  for cmd in $cmds; do
3389	    IFS="$save_ifs"
3390	    $show "$cmd"
3391	    $run eval "$cmd" || exit $?
3392	  done
3393	  IFS="$save_ifs"
3394	fi
3395
3396	# Install the pseudo-library for information purposes.
3397	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3398	instname="$dir/$name"i
3399	$show "$install_prog $instname $destdir/$name"
3400	$run eval "$install_prog $instname $destdir/$name" || exit $?
3401
3402	# Maybe install the static library, too.
3403	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3404	;;
3405
3406      *.lo)
3407	# Install (i.e. copy) a libtool object.
3408
3409	# Figure out destination file name, if it wasn't already specified.
3410	if test -n "$destname"; then
3411	  destfile="$destdir/$destname"
3412	else
3413	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3414	  destfile="$destdir/$destfile"
3415	fi
3416
3417	# Deduce the name of the destination old-style object file.
3418	case "$destfile" in
3419	*.lo)
3420	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3421	  ;;
3422	*.o | *.obj)
3423	  staticdest="$destfile"
3424	  destfile=
3425	  ;;
3426	*)
3427	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3428	  $echo "$help" 1>&2
3429	  exit 1
3430	  ;;
3431	esac
3432
3433	# Install the libtool object if requested.
3434	if test -n "$destfile"; then
3435	  $show "$install_prog $file $destfile"
3436	  $run eval "$install_prog $file $destfile" || exit $?
3437	fi
3438
3439	# Install the old object if enabled.
3440	if test "$build_old_libs" = yes; then
3441	  # Deduce the name of the old-style object file.
3442	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3443
3444	  $show "$install_prog $staticobj $staticdest"
3445	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3446	fi
3447	exit 0
3448	;;
3449
3450      *)
3451	# Figure out destination file name, if it wasn't already specified.
3452	if test -n "$destname"; then
3453	  destfile="$destdir/$destname"
3454	else
3455	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3456	  destfile="$destdir/$destfile"
3457	fi
3458
3459	# Do a test to see if this is really a libtool program.
3460	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3461	  link_against_libtool_libs=
3462	  relink_command=
3463
3464	  # If there is no directory component, then add one.
3465	  case "$file" in
3466	  */* | *\\*) . $file ;;
3467	  *) . ./$file ;;
3468	  esac
3469
3470	  # Check the variables that should have been set.
3471	  if test -z "$link_against_libtool_libs"; then
3472	    $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3473	    exit 1
3474	  fi
3475
3476	  finalize=yes
3477	  for lib in $link_against_libtool_libs; do
3478	    # Check to see that each library is installed.
3479	    libdir=
3480	    if test -f "$lib"; then
3481	      # If there is no directory component, then add one.
3482	      case "$lib" in
3483	      */* | *\\*) . $lib ;;
3484	      *) . ./$lib ;;
3485	      esac
3486	    fi
3487	    libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3488	    if test -n "$libdir" && test ! -f "$libfile"; then
3489	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3490	      finalize=no
3491	    fi
3492	  done
3493
3494	  outputname=
3495	  if test "$fast_install" = no && test -n "$relink_command"; then
3496	    if test "$finalize" = yes && test -z "$run"; then
3497	      tmpdir="/tmp"
3498	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
3499	      tmpdir="$tmpdir/libtool-$$"
3500	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3501	      else
3502		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3503		continue
3504	      fi
3505	      outputname="$tmpdir/$file"
3506	      # Replace the output file specification.
3507	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3508
3509	      $show "$relink_command"
3510	      if $run eval "$relink_command"; then :
3511	      else
3512		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3513		${rm}r "$tmpdir"
3514		continue
3515	      fi
3516	      file="$outputname"
3517	    else
3518	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
3519	    fi
3520	  else
3521	    # Install the binary that we compiled earlier.
3522	    file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3523	  fi
3524	fi
3525
3526	$show "$install_prog$stripme $file $destfile"
3527	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3528	test -n "$outputname" && ${rm}r "$tmpdir"
3529	;;
3530      esac
3531    done
3532
3533    for file in $staticlibs; do
3534      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3535
3536      # Set up the ranlib parameters.
3537      oldlib="$destdir/$name"
3538
3539      $show "$install_prog $file $oldlib"
3540      $run eval "$install_prog \$file \$oldlib" || exit $?
3541
3542      # Do each command in the postinstall commands.
3543      eval cmds=\"$old_postinstall_cmds\"
3544      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3545      for cmd in $cmds; do
3546	IFS="$save_ifs"
3547	$show "$cmd"
3548	$run eval "$cmd" || exit $?
3549      done
3550      IFS="$save_ifs"
3551    done
3552
3553    if test -n "$future_libdirs"; then
3554      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3555    fi
3556
3557    if test -n "$current_libdirs"; then
3558      # Maybe just do a dry run.
3559      test -n "$run" && current_libdirs=" -n$current_libdirs"
3560      exec $SHELL $0 --finish$current_libdirs
3561      exit 1
3562    fi
3563
3564    exit 0
3565    ;;
3566
3567  # libtool finish mode
3568  finish)
3569    modename="$modename: finish"
3570    libdirs="$nonopt"
3571    admincmds=
3572
3573    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3574      for dir
3575      do
3576	libdirs="$libdirs $dir"
3577      done
3578
3579      for libdir in $libdirs; do
3580	if test -n "$finish_cmds"; then
3581	  # Do each command in the finish commands.
3582	  eval cmds=\"$finish_cmds\"
3583	  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3584	  for cmd in $cmds; do
3585	    IFS="$save_ifs"
3586	    $show "$cmd"
3587	    $run eval "$cmd" || admincmds="$admincmds
3588       $cmd"
3589	  done
3590	  IFS="$save_ifs"
3591	fi
3592	if test -n "$finish_eval"; then
3593	  # Do the single finish_eval.
3594	  eval cmds=\"$finish_eval\"
3595	  $run eval "$cmds" || admincmds="$admincmds
3596       $cmds"
3597	fi
3598      done
3599    fi
3600
3601    # Exit here if they wanted silent mode.
3602    test "$show" = : && exit 0
3603
3604    echo "----------------------------------------------------------------------"
3605    echo "Libraries have been installed in:"
3606    for libdir in $libdirs; do
3607      echo "   $libdir"
3608    done
3609    echo
3610    echo "If you ever happen to want to link against installed libraries"
3611    echo "in a given directory, LIBDIR, you must either use libtool, and"
3612    echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3613    echo "flag during linking and do at least one of the following:"
3614    if test -n "$shlibpath_var"; then
3615      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
3616      echo "     during execution"
3617    fi
3618    if test -n "$runpath_var"; then
3619      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
3620      echo "     during linking"
3621    fi
3622    if test -n "$hardcode_libdir_flag_spec"; then
3623      libdir=LIBDIR
3624      eval flag=\"$hardcode_libdir_flag_spec\"
3625
3626      echo "   - use the \`$flag' linker flag"
3627    fi
3628    if test -n "$admincmds"; then
3629      echo "   - have your system administrator run these commands:$admincmds"
3630    fi
3631    if test -f /etc/ld.so.conf; then
3632      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3633    fi
3634    echo
3635    echo "See any operating system documentation about shared libraries for"
3636    echo "more information, such as the ld(1) and ld.so(8) manual pages."
3637    echo "----------------------------------------------------------------------"
3638    exit 0
3639    ;;
3640
3641  # libtool execute mode
3642  execute)
3643    modename="$modename: execute"
3644
3645    # The first argument is the command name.
3646    cmd="$nonopt"
3647    if test -z "$cmd"; then
3648      $echo "$modename: you must specify a COMMAND" 1>&2
3649      $echo "$help"
3650      exit 1
3651    fi
3652
3653    # Handle -dlopen flags immediately.
3654    for file in $execute_dlfiles; do
3655      if test ! -f "$file"; then
3656	$echo "$modename: \`$file' is not a file" 1>&2
3657	$echo "$help" 1>&2
3658	exit 1
3659      fi
3660
3661      dir=
3662      case "$file" in
3663      *.la)
3664	# Check to see that this really is a libtool archive.
3665	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3666	else
3667	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3668	  $echo "$help" 1>&2
3669	  exit 1
3670	fi
3671
3672	# Read the libtool library.
3673	dlname=
3674	library_names=
3675
3676	# If there is no directory component, then add one.
3677	case "$file" in
3678	*/* | *\\*) . $file ;;
3679	*) . ./$file ;;
3680	esac
3681
3682	# Skip this library if it cannot be dlopened.
3683	if test -z "$dlname"; then
3684	  # Warn if it was a shared library.
3685	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3686	  continue
3687	fi
3688
3689	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3690	test "X$dir" = "X$file" && dir=.
3691
3692	if test -f "$dir/$objdir/$dlname"; then
3693	  dir="$dir/$objdir"
3694	else
3695	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3696	  exit 1
3697	fi
3698	;;
3699
3700      *.lo)
3701	# Just add the directory containing the .lo file.
3702	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3703	test "X$dir" = "X$file" && dir=.
3704	;;
3705
3706      *)
3707	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3708	continue
3709	;;
3710      esac
3711
3712      # Get the absolute pathname.
3713      absdir=`cd "$dir" && pwd`
3714      test -n "$absdir" && dir="$absdir"
3715
3716      # Now add the directory to shlibpath_var.
3717      if eval "test -z \"\$$shlibpath_var\""; then
3718	eval "$shlibpath_var=\"\$dir\""
3719      else
3720	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3721      fi
3722    done
3723
3724    # This variable tells wrapper scripts just to set shlibpath_var
3725    # rather than running their programs.
3726    libtool_execute_magic="$magic"
3727
3728    # Check if any of the arguments is a wrapper script.
3729    args=
3730    for file
3731    do
3732      case "$file" in
3733      -*) ;;
3734      *)
3735	# Do a test to see if this is really a libtool program.
3736	if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3737	  # If there is no directory component, then add one.
3738	  case "$file" in
3739	  */* | *\\*) . $file ;;
3740	  *) . ./$file ;;
3741	  esac
3742
3743	  # Transform arg to wrapped name.
3744	  file="$progdir/$program"
3745	fi
3746	;;
3747      esac
3748      # Quote arguments (to preserve shell metacharacters).
3749      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3750      args="$args \"$file\""
3751    done
3752
3753    if test -z "$run"; then
3754      if test -n "$shlibpath_var"; then
3755        # Export the shlibpath_var.
3756        eval "export $shlibpath_var"
3757      fi
3758
3759      # Restore saved enviroment variables
3760      if test "${save_LC_ALL+set}" = set; then
3761	LC_ALL="$save_LC_ALL"; export LC_ALL
3762      fi
3763      if test "${save_LANG+set}" = set; then
3764	LANG="$save_LANG"; export LANG
3765      fi
3766
3767      # Now actually exec the command.
3768      eval "exec \$cmd$args"
3769
3770      $echo "$modename: cannot exec \$cmd$args"
3771      exit 1
3772    else
3773      # Display what would be done.
3774      if test -n "$shlibpath_var"; then
3775        eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3776        $echo "export $shlibpath_var"
3777      fi
3778      $echo "$cmd$args"
3779      exit 0
3780    fi
3781    ;;
3782
3783  # libtool uninstall mode
3784  uninstall)
3785    modename="$modename: uninstall"
3786    rm="$nonopt"
3787    files=
3788
3789    for arg
3790    do
3791      case "$arg" in
3792      -*) rm="$rm $arg" ;;
3793      *) files="$files $arg" ;;
3794      esac
3795    done
3796
3797    if test -z "$rm"; then
3798      $echo "$modename: you must specify an RM program" 1>&2
3799      $echo "$help" 1>&2
3800      exit 1
3801    fi
3802
3803    for file in $files; do
3804      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3805      test "X$dir" = "X$file" && dir=.
3806      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3807
3808      rmfiles="$file"
3809
3810      case "$name" in
3811      *.la)
3812	# Possibly a libtool archive, so verify it.
3813	if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3814	  . $dir/$name
3815
3816	  # Delete the libtool libraries and symlinks.
3817	  for n in $library_names; do
3818	    rmfiles="$rmfiles $dir/$n"
3819	  done
3820	  test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3821
3822	  $show "$rm $rmfiles"
3823	  $run $rm $rmfiles
3824
3825	  if test -n "$library_names"; then
3826	    # Do each command in the postuninstall commands.
3827	    eval cmds=\"$postuninstall_cmds\"
3828	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3829	    for cmd in $cmds; do
3830	      IFS="$save_ifs"
3831	      $show "$cmd"
3832	      $run eval "$cmd"
3833	    done
3834	    IFS="$save_ifs"
3835	  fi
3836
3837	  if test -n "$old_library"; then
3838	    # Do each command in the old_postuninstall commands.
3839	    eval cmds=\"$old_postuninstall_cmds\"
3840	    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
3841	    for cmd in $cmds; do
3842	      IFS="$save_ifs"
3843	      $show "$cmd"
3844	      $run eval "$cmd"
3845	    done
3846	    IFS="$save_ifs"
3847	  fi
3848
3849	  # FIXME: should reinstall the best remaining shared library.
3850	fi
3851	;;
3852
3853      *.lo)
3854	if test "$build_old_libs" = yes; then
3855	  oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3856	  rmfiles="$rmfiles $dir/$oldobj"
3857	fi
3858	$show "$rm $rmfiles"
3859	$run $rm $rmfiles
3860	;;
3861
3862      *)
3863	$show "$rm $rmfiles"
3864	$run $rm $rmfiles
3865	;;
3866      esac
3867    done
3868    exit 0
3869    ;;
3870
3871  "")
3872    $echo "$modename: you must specify a MODE" 1>&2
3873    $echo "$generic_help" 1>&2
3874    exit 1
3875    ;;
3876  esac
3877
3878  $echo "$modename: invalid operation mode \`$mode'" 1>&2
3879  $echo "$generic_help" 1>&2
3880  exit 1
3881fi # test -z "$show_help"
3882
3883# We need to display help for each of the modes.
3884case "$mode" in
3885"") $echo \
3886"Usage: $modename [OPTION]... [MODE-ARG]...
3887
3888Provide generalized library-building support services.
3889
3890    --config          show all configuration variables
3891    --debug           enable verbose shell tracing
3892-n, --dry-run         display commands without modifying any files
3893    --features        display basic configuration information and exit
3894    --finish          same as \`--mode=finish'
3895    --help            display this help message and exit
3896    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
3897    --quiet           same as \`--silent'
3898    --silent          don't print informational messages
3899    --version         print version information
3900
3901MODE must be one of the following:
3902
3903      compile         compile a source file into a libtool object
3904      execute         automatically set library path, then run a program
3905      finish          complete the installation of libtool libraries
3906      install         install libraries or executables
3907      link            create a library or an executable
3908      uninstall       remove libraries from an installed directory
3909
3910MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
3911a more detailed description of MODE."
3912  exit 0
3913  ;;
3914
3915compile)
3916  $echo \
3917"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3918
3919Compile a source file into a libtool library object.
3920
3921This mode accepts the following additional options:
3922
3923  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
3924  -static           always build a \`.o' file suitable for static linking
3925
3926COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3927from the given SOURCEFILE.
3928
3929The output file name is determined by removing the directory component from
3930SOURCEFILE, then substituting the C source code suffix \`.c' with the
3931library object suffix, \`.lo'."
3932  ;;
3933
3934execute)
3935  $echo \
3936"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3937
3938Automatically set library path, then run a program.
3939
3940This mode accepts the following additional options:
3941
3942  -dlopen FILE      add the directory containing FILE to the library path
3943
3944This mode sets the library path environment variable according to \`-dlopen'
3945flags.
3946
3947If any of the ARGS are libtool executable wrappers, then they are translated
3948into their corresponding uninstalled binary, and any of their required library
3949directories are added to the library path.
3950
3951Then, COMMAND is executed, with ARGS as arguments."
3952  ;;
3953
3954finish)
3955  $echo \
3956"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3957
3958Complete the installation of libtool libraries.
3959
3960Each LIBDIR is a directory that contains libtool libraries.
3961
3962The commands that this mode executes may require superuser privileges.  Use
3963the \`--dry-run' option if you just want to see what would be executed."
3964  ;;
3965
3966install)
3967  $echo \
3968"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3969
3970Install executables or libraries.
3971
3972INSTALL-COMMAND is the installation command.  The first component should be
3973either the \`install' or \`cp' program.
3974
3975The rest of the components are interpreted as arguments to that command (only
3976BSD-compatible install options are recognized)."
3977  ;;
3978
3979link)
3980  $echo \
3981"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3982
3983Link object files or libraries together to form another library, or to
3984create an executable program.
3985
3986LINK-COMMAND is a command using the C compiler that you would use to create
3987a program from several object files.
3988
3989The following components of LINK-COMMAND are treated specially:
3990
3991  -all-static       do not do any dynamic linking at all
3992  -avoid-version    do not add a version suffix if possible
3993  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
3994  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
3995  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3996  -export-symbols SYMFILE
3997		    try to export only the symbols listed in SYMFILE
3998  -export-symbols-regex REGEX
3999		    try to export only the symbols matching REGEX
4000  -LLIBDIR          search LIBDIR for required installed libraries
4001  -lNAME            OUTPUT-FILE requires the installed library libNAME
4002  -module           build a library that can dlopened
4003  -no-undefined     declare that a library does not refer to external symbols
4004  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
4005  -release RELEASE  specify package release information
4006  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
4007  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
4008  -static           do not do any dynamic linking of libtool libraries
4009  -version-info CURRENT[:REVISION[:AGE]]
4010		    specify library version info [each variable defaults to 0]
4011
4012All other options (arguments beginning with \`-') are ignored.
4013
4014Every other argument is treated as a filename.  Files ending in \`.la' are
4015treated as uninstalled libtool libraries, other files are standard or library
4016object files.
4017
4018If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4019only library objects (\`.lo' files) may be specified, and \`-rpath' is
4020required, except when creating a convenience library.
4021
4022If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4023using \`ar' and \`ranlib', or on Windows using \`lib'.
4024
4025If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4026is created, otherwise an executable program is created."
4027  ;;
4028
4029uninstall)
4030  $echo \
4031"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4032
4033Remove libraries from an installation directory.
4034
4035RM is the name of the program to use to delete files associated with each FILE
4036(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
4037to RM.
4038
4039If FILE is a libtool library, all the files associated with it are deleted.
4040Otherwise, only FILE itself is deleted using RM."
4041  ;;
4042
4043*)
4044  $echo "$modename: invalid operation mode \`$mode'" 1>&2
4045  $echo "$help" 1>&2
4046  exit 1
4047  ;;
4048esac
4049
4050echo
4051$echo "Try \`$modename --help' for more information about other modes."
4052
4053exit 0
4054
4055# Local Variables:
4056# mode:shell-script
4057# sh-indentation:2
4058# End:
4059