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