source: trunk/third/librep/ltmain.sh @ 15767

Revision 15767, 108.3 KB checked in by ghudson, 24 years ago (diff)
Merge with librep 0.13.4.
Line 
1# ltmain.sh - Provide generalized library-building support services.
2# NOTE: Changing this file will not affect anything until you rerun ltconfig.
3#
4# Copyright (C) 1996-1999 Free Software Foundation, Inc.
5# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful, but
13# WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15# General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20#
21# As a special exception to the GNU General Public License, if you
22# distribute this file as part of a program that contains a
23# configuration script generated by Autoconf, you may include it under
24# the same distribution terms that you use for the rest of that program.
25
26# Check that we have a working $echo.
27if test "X$1" = X--no-reexec; then
28  # Discard the --no-reexec flag, and continue.
29  shift
30elif test "X$1" = X--fallback-echo; then
31  # Avoid inline document here, it may be left over
32  :
33elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
34  # Yippee, $echo works!
35  :
36else
37  # Restart under the correct shell, and then maybe $echo will work.
38  exec $SHELL "$0" --no-reexec ${1+"$@"}
39fi
40
41if test "X$1" = X--fallback-echo; then
42  # used as fallback echo
43  shift
44  cat <<EOF
45$*
46EOF
47  exit 0
48fi
49
50# The name of this program.
51progname=`$echo "$0" | sed 's%^.*/%%'`
52modename="$progname"
53
54# Constants.
55PROGRAM=ltmain.sh
56PACKAGE=libtool
57VERSION=1.3.5
58TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
59
60default_mode=
61help="Try \`$progname --help' for more information."
62magic="%%%MAGIC variable%%%"
63mkdir="mkdir"
64mv="mv -f"
65rm="rm -f"
66
67# Sed substitution that helps us do robust quoting.  It backslashifies
68# metacharacters that are still active within double-quoted strings.
69Xsed='sed -e 1s/^X//'
70sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
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-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-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-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          verstring="sgi$major.$revision"
1701
1702          # Add in all the interfaces that we are compatible with.
1703          loop=$revision
1704          while test $loop != 0; do
1705            iface=`expr $revision - $loop`
1706            loop=`expr $loop - 1`
1707            verstring="sgi$major.$iface:$verstring"
1708          done
1709
1710          # Before this point, $major must not contain `.'.
1711          major=.$major
1712          versuffix="$major.$revision"
1713          ;;
1714
1715        linux)
1716          major=.`expr $current - $age`
1717          versuffix="$major.$age.$revision"
1718          ;;
1719
1720        osf)
1721          major=`expr $current - $age`
1722          versuffix=".$current.$age.$revision"
1723          verstring="$current.$age.$revision"
1724
1725          # Add in all the interfaces that we are compatible with.
1726          loop=$age
1727          while test $loop != 0; do
1728            iface=`expr $current - $loop`
1729            loop=`expr $loop - 1`
1730            verstring="$verstring:${iface}.0"
1731          done
1732
1733          # Make executables depend on our current version.
1734          verstring="$verstring:${current}.0"
1735          ;;
1736
1737        sunos)
1738          major=".$current"
1739          versuffix=".$current.$revision"
1740          ;;
1741
1742        freebsd-aout)
1743          major=".$current"
1744          versuffix=".$current.$revision";
1745          ;;
1746
1747        freebsd-elf)
1748          major=".$current"
1749          versuffix=".$current";
1750          ;;
1751
1752        windows)
1753          # Like Linux, but with '-' rather than '.', since we only
1754          # want one extension on Windows 95.
1755          major=`expr $current - $age`
1756          versuffix="-$major-$age-$revision"
1757          ;;
1758
1759        *)
1760          $echo "$modename: unknown library version type \`$version_type'" 1>&2
1761          echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1762          exit 1
1763          ;;
1764        esac
1765
1766        # Clear the version info if we defaulted, and they specified a release.
1767        if test -z "$vinfo" && test -n "$release"; then
1768          major=
1769          verstring="0.0"
1770          if test "$need_version" = no; then
1771            versuffix=
1772          else
1773            versuffix=".0.0"
1774          fi
1775        fi
1776
1777        # Remove version info from name if versioning should be avoided
1778        if test "$avoid_version" = yes && test "$need_version" = no; then
1779          major=
1780          versuffix=
1781          verstring=""
1782        fi
1783       
1784        # Check to see if the archive will have undefined symbols.
1785        if test "$allow_undefined" = yes; then
1786          if test "$allow_undefined_flag" = unsupported; then
1787            $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1788            build_libtool_libs=no
1789            build_old_libs=yes
1790          fi
1791        else
1792          # Don't allow undefined symbols.
1793          allow_undefined_flag="$no_undefined_flag"
1794        fi
1795
1796        dependency_libs="$deplibs"
1797        case "$host" in
1798        *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1799          # these systems don't actually have a c library (as such)!
1800          ;;
1801        *-*-rhapsody*)
1802          # rhapsody is a little odd...
1803          deplibs="$deplibs -framework System"
1804          ;;
1805        *)
1806          # Add libc to deplibs on all other systems.
1807          deplibs="$deplibs -lc"
1808          ;;
1809        esac
1810      fi
1811
1812      # Create the output directory, or remove our outputs if we need to.
1813      if test -d $output_objdir; then
1814        $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1815        $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1816      else
1817        $show "$mkdir $output_objdir"
1818        $run $mkdir $output_objdir
1819        status=$?
1820        if test $status -ne 0 && test ! -d $output_objdir; then
1821          exit $status
1822        fi
1823      fi
1824
1825      # Now set the variables for building old libraries.
1826      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1827        oldlibs="$oldlibs $output_objdir/$libname.$libext"
1828
1829        # Transform .lo files to .o files.
1830        oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1831      fi
1832
1833      if test "$build_libtool_libs" = yes; then
1834        # Transform deplibs into only deplibs that can be linked in shared.
1835        name_save=$name
1836        libname_save=$libname
1837        release_save=$release
1838        versuffix_save=$versuffix
1839        major_save=$major
1840        # I'm not sure if I'm treating the release correctly.  I think
1841        # release should show up in the -l (ie -lgmp5) so we don't want to
1842        # add it in twice.  Is that correct?
1843        release=""
1844        versuffix=""
1845        major=""
1846        newdeplibs=
1847        droppeddeps=no
1848        case "$deplibs_check_method" in
1849        pass_all)
1850          # Don't check for shared/static.  Everything works.
1851          # This might be a little naive.  We might want to check
1852          # whether the library exists or not.  But this is on
1853          # osf3 & osf4 and I'm not really sure... Just
1854          # implementing what was already the behaviour.
1855          newdeplibs=$deplibs
1856          ;;
1857        test_compile)
1858          # This code stresses the "libraries are programs" paradigm to its
1859          # limits. Maybe even breaks it.  We compile a program, linking it
1860          # against the deplibs as a proxy for the library.  Then we can check
1861          # whether they linked in statically or dynamically with ldd.
1862          $rm conftest.c
1863          cat > conftest.c <<EOF
1864          int main() { return 0; }
1865EOF
1866          $rm conftest
1867          $CC -o conftest conftest.c $deplibs
1868          if test $? -eq 0 ; then
1869            ldd_output=`ldd conftest`
1870            for i in $deplibs; do
1871              name="`expr $i : '-l\(.*\)'`"
1872              # If $name is empty we are operating on a -L argument.
1873              if test "$name" != "" ; then
1874                libname=`eval \\$echo \"$libname_spec\"`
1875                deplib_matches=`eval \\$echo \"$library_names_spec\"`
1876                set dummy $deplib_matches
1877                deplib_match=$2
1878                if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1879                  newdeplibs="$newdeplibs $i"
1880                else
1881                  droppeddeps=yes
1882                  echo
1883                  echo "*** Warning: This library needs some functionality provided by $i."
1884                  echo "*** I have the capability to make that library automatically link in when"
1885                  echo "*** you link to this library.  But I can only do this if you have a"
1886                  echo "*** shared version of the library, which you do not appear to have."
1887                fi
1888              else
1889                newdeplibs="$newdeplibs $i"
1890              fi
1891            done
1892          else
1893            # Error occured in the first compile.  Let's try to salvage the situation:
1894            # Compile a seperate program for each library.
1895            for i in $deplibs; do
1896              name="`expr $i : '-l\(.*\)'`"
1897             # If $name is empty we are operating on a -L argument.
1898              if test "$name" != "" ; then
1899                $rm conftest
1900                $CC -o conftest conftest.c $i
1901                # Did it work?
1902                if test $? -eq 0 ; then
1903                  ldd_output=`ldd conftest`
1904                  libname=`eval \\$echo \"$libname_spec\"`
1905                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
1906                  set dummy $deplib_matches
1907                  deplib_match=$2
1908                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1909                    newdeplibs="$newdeplibs $i"
1910                  else
1911                    droppeddeps=yes
1912                    echo
1913                    echo "*** Warning: This library needs some functionality provided by $i."
1914                    echo "*** I have the capability to make that library automatically link in when"
1915                    echo "*** you link to this library.  But I can only do this if you have a"
1916                    echo "*** shared version of the library, which you do not appear to have."
1917                  fi
1918                else
1919                  droppeddeps=yes
1920                  echo
1921                  echo "*** Warning!  Library $i is needed by this library but I was not able to"
1922                  echo "***  make it link in!  You will probably need to install it or some"
1923                  echo "*** library that it depends on before this library will be fully"
1924                  echo "*** functional.  Installing it before continuing would be even better."
1925                fi
1926              else
1927                newdeplibs="$newdeplibs $i"
1928              fi
1929            done
1930          fi
1931          ;;
1932        file_magic*)
1933          set dummy $deplibs_check_method
1934          file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1935          for a_deplib in $deplibs; do
1936            name="`expr $a_deplib : '-l\(.*\)'`"
1937            # If $name is empty we are operating on a -L argument.
1938            if test "$name" != "" ; then
1939              libname=`eval \\$echo \"$libname_spec\"`
1940              for i in $lib_search_path; do
1941                    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1942                    for potent_lib in $potential_libs; do
1943                      # Follow soft links.
1944                      if ls -lLd "$potent_lib" 2>/dev/null \
1945                         | grep " -> " >/dev/null; then
1946                        continue
1947                      fi
1948                      # The statement above tries to avoid entering an
1949                      # endless loop below, in case of cyclic links.
1950                      # We might still enter an endless loop, since a link
1951                      # loop can be closed while we follow links,
1952                      # but so what?
1953                      potlib="$potent_lib"
1954                      while test -h "$potlib" 2>/dev/null; do
1955                        potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1956                        case "$potliblink" in
1957                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1958                        *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1959                        esac
1960                      done
1961                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1962                         | sed 10q \
1963                         | egrep "$file_magic_regex" > /dev/null; then
1964                        newdeplibs="$newdeplibs $a_deplib"
1965                        a_deplib=""
1966                        break 2
1967                      fi
1968                    done
1969              done
1970              if test -n "$a_deplib" ; then
1971                droppeddeps=yes
1972                echo
1973                echo "*** Warning: This library needs some functionality provided by $a_deplib."
1974                echo "*** I have the capability to make that library automatically link in when"
1975                echo "*** you link to this library.  But I can only do this if you have a"
1976                echo "*** shared version of the library, which you do not appear to have."
1977              fi
1978            else
1979              # Add a -L argument.
1980              newdeplibs="$newdeplibs $a_deplib"
1981            fi
1982          done # Gone through all deplibs.
1983          ;;
1984        none | unknown | *)
1985          newdeplibs=""
1986          if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
1987               -e 's/ -[LR][^ ]*//g' -e 's/[    ]//g' |
1988             grep . >/dev/null; then
1989            echo
1990            if test "X$deplibs_check_method" = "Xnone"; then
1991              echo "*** Warning: inter-library dependencies are not supported in this platform."
1992            else
1993              echo "*** Warning: inter-library dependencies are not known to be supported."
1994            fi
1995            echo "*** All declared inter-library dependencies are being dropped."
1996            droppeddeps=yes
1997          fi
1998          ;;
1999        esac
2000        versuffix=$versuffix_save
2001        major=$major_save
2002        release=$release_save
2003        libname=$libname_save
2004        name=$name_save
2005
2006        if test "$droppeddeps" = yes; then
2007          if test "$module" = yes; then
2008            echo
2009            echo "*** Warning: libtool could not satisfy all declared inter-library"
2010            echo "*** dependencies of module $libname.  Therefore, libtool will create"
2011            echo "*** a static module, that should work as long as the dlopening"
2012            echo "*** application is linked with the -dlopen flag."
2013            if test -z "$global_symbol_pipe"; then
2014              echo
2015              echo "*** However, this would only work if libtool was able to extract symbol"
2016              echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2017              echo "*** not find such a program.  So, this module is probably useless."
2018              echo "*** \`nm' from GNU binutils and a full rebuild may help."
2019            fi
2020            if test "$build_old_libs" = no; then
2021              oldlibs="$output_objdir/$libname.$libext"
2022              build_libtool_libs=module
2023              build_old_libs=yes
2024            else
2025              build_libtool_libs=no
2026            fi
2027          else
2028            echo "*** The inter-library dependencies that have been dropped here will be"
2029            echo "*** automatically added whenever a program is linked with this library"
2030            echo "*** or is declared to -dlopen it."
2031          fi
2032        fi
2033        # Done checking deplibs!
2034        deplibs=$newdeplibs
2035      fi
2036
2037      # All the library-specific variables (install_libdir is set above).
2038      library_names=
2039      old_library=
2040      dlname=
2041     
2042      # Test again, we may have decided not to build it any more
2043      if test "$build_libtool_libs" = yes; then
2044        # Get the real and link names of the library.
2045        eval library_names=\"$library_names_spec\"
2046        set dummy $library_names
2047        realname="$2"
2048        shift; shift
2049
2050        if test -n "$soname_spec"; then
2051          eval soname=\"$soname_spec\"
2052        else
2053          soname="$realname"
2054        fi
2055
2056        lib="$output_objdir/$realname"
2057        for link
2058        do
2059          linknames="$linknames $link"
2060        done
2061
2062        # Ensure that we have .o objects for linkers which dislike .lo
2063        # (e.g. aix) in case we are running --disable-static
2064        for obj in $libobjs; do
2065          xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2066          if test "X$xdir" = "X$obj"; then
2067            xdir="."
2068          else
2069            xdir="$xdir"
2070          fi
2071          baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2072          oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2073          if test ! -f $xdir/$oldobj; then
2074            $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2075            $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2076          fi
2077        done
2078
2079        # Use standard objects if they are pic
2080        test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2081
2082        # Prepare the list of exported symbols
2083        if test -z "$export_symbols"; then
2084          if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2085            $show "generating symbol list for \`$libname.la'"
2086            export_symbols="$output_objdir/$libname.exp"
2087            $run $rm $export_symbols
2088            eval cmds=\"$export_symbols_cmds\"
2089            IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
2090            for cmd in $cmds; do
2091              IFS="$save_ifs"
2092              $show "$cmd"
2093              $run eval "$cmd" || exit $?
2094            done
2095            IFS="$save_ifs"
2096            if test -n "$export_symbols_regex"; then
2097              $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2098              $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2099              $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2100              $run eval '$mv "${export_symbols}T" "$export_symbols"'
2101            fi
2102          fi
2103        fi
2104
2105        if test -n "$export_symbols" && test -n "$include_expsyms"; then
2106          $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2107        fi
2108
2109        if test -n "$convenience"; then
2110          if test -n "$whole_archive_flag_spec"; then
2111            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2112          else
2113            gentop="$output_objdir/${outputname}x"
2114            $show "${rm}r $gentop"
2115            $run ${rm}r "$gentop"
2116            $show "mkdir $gentop"
2117            $run mkdir "$gentop"
2118            status=$?
2119            if test $status -ne 0 && test ! -d "$gentop"; then
2120              exit $status
2121            fi
2122            generated="$generated $gentop"
2123
2124            for xlib in $convenience; do
2125              # Extract the objects.
2126              case "$xlib" in
2127              [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2128              *) xabs=`pwd`"/$xlib" ;;
2129              esac
2130              xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2131              xdir="$gentop/$xlib"
2132
2133              $show "${rm}r $xdir"
2134              $run ${rm}r "$xdir"
2135              $show "mkdir $xdir"
2136              $run mkdir "$xdir"
2137              status=$?
2138              if test $status -ne 0 && test ! -d "$xdir"; then
2139                exit $status
2140              fi
2141              $show "(cd $xdir && $AR x $xabs)"
2142              $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2143
2144              libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2145            done
2146          fi
2147        fi
2148
2149        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2150          eval flag=\"$thread_safe_flag_spec\"
2151          linkopts="$linkopts $flag"
2152        fi
2153
2154        # Do each of the archive commands.
2155        if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2156          eval cmds=\"$archive_expsym_cmds\"
2157        else
2158          eval cmds=\"$archive_cmds\"
2159        fi
2160        IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
2161        for cmd in $cmds; do
2162          IFS="$save_ifs"
2163          $show "$cmd"
2164          $run eval "$cmd" || exit $?
2165        done
2166        IFS="$save_ifs"
2167
2168        # Create links to the real library.
2169        for linkname in $linknames; do
2170          if test "$realname" != "$linkname"; then
2171            $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2172            $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2173          fi
2174        done
2175
2176        # If -module or -export-dynamic was specified, set the dlname.
2177        if test "$module" = yes || test "$export_dynamic" = yes; then
2178          # On all known operating systems, these are identical.
2179          dlname="$soname"
2180        fi
2181      fi
2182      ;;
2183
2184    *.lo | *.o | *.obj)
2185      if test -n "$link_against_libtool_libs"; then
2186        $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2187        exit 1
2188      fi
2189
2190      if test -n "$deplibs"; then
2191        $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2192      fi
2193
2194      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2195        $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2196      fi
2197
2198      if test -n "$rpath"; then
2199        $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2200      fi
2201
2202      if test -n "$xrpath"; then
2203        $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2204      fi
2205
2206      if test -n "$vinfo"; then
2207        $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2208      fi
2209
2210      if test -n "$release"; then
2211        $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2212      fi
2213
2214      case "$output" in
2215      *.lo)
2216        if test -n "$objs"; then
2217          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2218          exit 1
2219        fi
2220        libobj="$output"
2221        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2222        ;;
2223      *)
2224        libobj=
2225        obj="$output"
2226        ;;
2227      esac
2228
2229      # Delete the old objects.
2230      $run $rm $obj $libobj
2231
2232      # Objects from convenience libraries.  This assumes
2233      # single-version convenience libraries.  Whenever we create
2234      # different ones for PIC/non-PIC, this we'll have to duplicate
2235      # the extraction.
2236      reload_conv_objs=
2237      gentop=
2238      # reload_cmds runs $LD directly, so let us get rid of
2239      # -Wl from whole_archive_flag_spec
2240      wl=
2241
2242      if test -n "$convenience"; then
2243        if test -n "$whole_archive_flag_spec"; then
2244          eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2245        else
2246          gentop="$output_objdir/${obj}x"
2247          $show "${rm}r $gentop"
2248          $run ${rm}r "$gentop"
2249          $show "mkdir $gentop"
2250          $run mkdir "$gentop"
2251          status=$?
2252          if test $status -ne 0 && test ! -d "$gentop"; then
2253            exit $status
2254          fi
2255          generated="$generated $gentop"
2256
2257          for xlib in $convenience; do
2258            # Extract the objects.
2259            case "$xlib" in
2260            [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2261            *) xabs=`pwd`"/$xlib" ;;
2262            esac
2263            xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2264            xdir="$gentop/$xlib"
2265
2266            $show "${rm}r $xdir"
2267            $run ${rm}r "$xdir"
2268            $show "mkdir $xdir"
2269            $run mkdir "$xdir"
2270            status=$?
2271            if test $status -ne 0 && test ! -d "$xdir"; then
2272              exit $status
2273            fi
2274            $show "(cd $xdir && $AR x $xabs)"
2275            $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2276
2277            reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2278          done
2279        fi
2280      fi
2281
2282      # Create the old-style object.
2283      reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
2284
2285      output="$obj"
2286      eval cmds=\"$reload_cmds\"
2287      IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
2288      for cmd in $cmds; do
2289        IFS="$save_ifs"
2290        $show "$cmd"
2291        $run eval "$cmd" || exit $?
2292      done
2293      IFS="$save_ifs"
2294
2295      # Exit if we aren't doing a library object file.
2296      if test -z "$libobj"; then
2297        if test -n "$gentop"; then
2298          $show "${rm}r $gentop"
2299          $run ${rm}r $gentop
2300        fi
2301
2302        exit 0
2303      fi
2304
2305      if test "$build_libtool_libs" != yes; then
2306        if test -n "$gentop"; then
2307          $show "${rm}r $gentop"
2308          $run ${rm}r $gentop
2309        fi
2310
2311        # Create an invalid libtool object if no PIC, so that we don't
2312        # accidentally link it into a program.
2313        $show "echo timestamp > $libobj"
2314        $run eval "echo timestamp > $libobj" || exit $?
2315        exit 0
2316      fi
2317
2318      if test -n "$pic_flag"; then
2319        # Only do commands if we really have different PIC objects.
2320        reload_objs="$libobjs $reload_conv_objs"
2321        output="$libobj"
2322        eval cmds=\"$reload_cmds\"
2323        IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
2324        for cmd in $cmds; do
2325          IFS="$save_ifs"
2326          $show "$cmd"
2327          $run eval "$cmd" || exit $?
2328        done
2329        IFS="$save_ifs"
2330      else
2331        # Just create a symlink.
2332        $show $rm $libobj
2333        $run $rm $libobj
2334        xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
2335        if test "X$xdir" = "X$libobj"; then
2336          xdir="."
2337        else
2338          xdir="$xdir"
2339        fi
2340        baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
2341        oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2342        $show "(cd $xdir && $LN_S $oldobj $baseobj)"
2343        $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
2344      fi
2345
2346      if test -n "$gentop"; then
2347        $show "${rm}r $gentop"
2348        $run ${rm}r $gentop
2349      fi
2350
2351      exit 0
2352      ;;
2353
2354    # Anything else should be a program.
2355    *)
2356      if test -n "$vinfo"; then
2357        $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2358      fi
2359
2360      if test -n "$release"; then
2361        $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2362      fi
2363
2364      if test "$preload" = yes; then
2365        if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2366           test "$dlopen_self_static" = unknown; then
2367          $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2368        fi
2369      fi
2370   
2371      if test -n "$rpath$xrpath"; then
2372        # If the user specified any rpath flags, then add them.
2373        for libdir in $rpath $xrpath; do
2374          # This is the magic to use -rpath.
2375          case "$compile_rpath " in
2376          *" $libdir "*) ;;
2377          *) compile_rpath="$compile_rpath $libdir" ;;
2378          esac
2379          case "$finalize_rpath " in
2380          *" $libdir "*) ;;
2381          *) finalize_rpath="$finalize_rpath $libdir" ;;
2382          esac
2383        done
2384      fi
2385
2386      # Now hardcode the library paths
2387      rpath=
2388      hardcode_libdirs=
2389      for libdir in $compile_rpath $finalize_rpath; do
2390        if test -n "$hardcode_libdir_flag_spec"; then
2391          if test -n "$hardcode_libdir_separator"; then
2392            if test -z "$hardcode_libdirs"; then
2393              hardcode_libdirs="$libdir"
2394            else
2395              # Just accumulate the unique libdirs.
2396              case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2397              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2398                ;;
2399              *)
2400                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2401                ;;
2402              esac
2403            fi
2404          else
2405            eval flag=\"$hardcode_libdir_flag_spec\"
2406            rpath="$rpath $flag"
2407          fi
2408        elif test -n "$runpath_var"; then
2409          case "$perm_rpath " in
2410          *" $libdir "*) ;;
2411          *) perm_rpath="$perm_rpath $libdir" ;;
2412          esac
2413        fi
2414      done
2415      # Substitute the hardcoded libdirs into the rpath.
2416      if test -n "$hardcode_libdir_separator" &&
2417         test -n "$hardcode_libdirs"; then
2418        libdir="$hardcode_libdirs"
2419        eval rpath=\" $hardcode_libdir_flag_spec\"
2420      fi
2421      compile_rpath="$rpath"
2422
2423      rpath=
2424      hardcode_libdirs=
2425      for libdir in $finalize_rpath; do
2426        if test -n "$hardcode_libdir_flag_spec"; then
2427          if test -n "$hardcode_libdir_separator"; then
2428            if test -z "$hardcode_libdirs"; then
2429              hardcode_libdirs="$libdir"
2430            else
2431              # Just accumulate the unique libdirs.
2432              case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2433              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2434                ;;
2435              *)
2436                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2437                ;;
2438              esac
2439            fi
2440          else
2441            eval flag=\"$hardcode_libdir_flag_spec\"
2442            rpath="$rpath $flag"
2443          fi
2444        elif test -n "$runpath_var"; then
2445          case "$finalize_perm_rpath " in
2446          *" $libdir "*) ;;
2447          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2448          esac
2449        fi
2450      done
2451      # Substitute the hardcoded libdirs into the rpath.
2452      if test -n "$hardcode_libdir_separator" &&
2453         test -n "$hardcode_libdirs"; then
2454        libdir="$hardcode_libdirs"
2455        eval rpath=\" $hardcode_libdir_flag_spec\"
2456      fi
2457      finalize_rpath="$rpath"
2458
2459      output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2460      if test "X$output_objdir" = "X$output"; then
2461        output_objdir="$objdir"
2462      else
2463        output_objdir="$output_objdir/$objdir"
2464      fi
2465
2466      # Create the binary in the object directory, then wrap it.
2467      if test ! -d $output_objdir; then
2468        $show "$mkdir $output_objdir"
2469        $run $mkdir $output_objdir
2470        status=$?
2471        if test $status -ne 0 && test ! -d $output_objdir; then
2472          exit $status
2473        fi
2474      fi
2475
2476      if test -n "$libobjs" && test "$build_old_libs" = yes; then
2477        # Transform all the library objects into standard objects.
2478        compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2479        finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2480      fi
2481
2482      dlsyms=
2483      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2484        if test -n "$NM" && test -n "$global_symbol_pipe"; then
2485          dlsyms="${outputname}S.c"
2486        else
2487          $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2488        fi
2489      fi
2490
2491      if test -n "$dlsyms"; then
2492        case "$dlsyms" in
2493        "") ;;
2494        *.c)
2495          # Discover the nlist of each of the dlfiles.
2496          nlist="$output_objdir/${outputname}.nm"
2497
2498          $show "$rm $nlist ${nlist}S ${nlist}T"
2499          $run $rm "$nlist" "${nlist}S" "${nlist}T"
2500
2501          # Parse the name list into a source file.
2502          $show "creating $output_objdir/$dlsyms"
2503
2504          test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2505/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2506/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2507
2508#ifdef __cplusplus
2509extern \"C\" {
2510#endif
2511
2512/* Prevent the only kind of declaration conflicts we can make. */
2513#define lt_preloaded_symbols some_other_symbol
2514
2515/* External symbol declarations for the compiler. */\
2516"
2517
2518          if test "$dlself" = yes; then
2519            $show "generating symbol list for \`$output'"
2520
2521            test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2522
2523            # Add our own program objects to the symbol list.
2524            progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2525            for arg in $progfiles; do
2526              $show "extracting global C symbols from \`$arg'"
2527              $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2528            done
2529
2530            if test -n "$exclude_expsyms"; then
2531              $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2532              $run eval '$mv "$nlist"T "$nlist"'
2533            fi
2534           
2535            if test -n "$export_symbols_regex"; then
2536              $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2537              $run eval '$mv "$nlist"T "$nlist"'
2538            fi
2539
2540            # Prepare the list of exported symbols
2541            if test -z "$export_symbols"; then
2542              export_symbols="$output_objdir/$output.exp"
2543              $run $rm $export_symbols
2544              $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2545            else
2546              $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2547              $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2548              $run eval 'mv "$nlist"T "$nlist"'
2549            fi
2550          fi
2551
2552          for arg in $dlprefiles; do
2553            $show "extracting global C symbols from \`$arg'"
2554            name=`echo "$arg" | sed -e 's%^.*/%%'`
2555            $run eval 'echo ": $name " >> "$nlist"'
2556            $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2557          done
2558
2559          if test -z "$run"; then
2560            # Make sure we have at least an empty file.
2561            test -f "$nlist" || : > "$nlist"
2562
2563            if test -n "$exclude_expsyms"; then
2564              egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2565              $mv "$nlist"T "$nlist"
2566            fi
2567
2568            # Try sorting and uniquifying the output.
2569            if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2570              :
2571            else
2572              grep -v "^: " < "$nlist" > "$nlist"S
2573            fi
2574
2575            if test -f "$nlist"S; then
2576              eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2577            else
2578              echo '/* NONE */' >> "$output_objdir/$dlsyms"
2579            fi
2580
2581            $echo >> "$output_objdir/$dlsyms" "\
2582
2583#undef lt_preloaded_symbols
2584
2585#if defined (__STDC__) && __STDC__
2586# define lt_ptr_t void *
2587#else
2588# define lt_ptr_t char *
2589# define const
2590#endif
2591
2592/* The mapping between symbol names and symbols. */
2593const struct {
2594  const char *name;
2595  lt_ptr_t address;
2596}
2597lt_preloaded_symbols[] =
2598{\
2599"
2600
2601            sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
2602                -e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
2603                  < "$nlist" >> "$output_objdir/$dlsyms"
2604
2605            $echo >> "$output_objdir/$dlsyms" "\
2606  {0, (lt_ptr_t) 0}
2607};
2608
2609/* This works around a problem in FreeBSD linker */
2610#ifdef FREEBSD_WORKAROUND
2611static const void *lt_preloaded_setup() {
2612  return lt_preloaded_symbols;
2613}
2614#endif
2615
2616#ifdef __cplusplus
2617}
2618#endif\
2619"
2620          fi
2621
2622          pic_flag_for_symtable=
2623          case "$host" in
2624          # compiling the symbol table file with pic_flag works around
2625          # a FreeBSD bug that causes programs to crash when -lm is
2626          # linked before any other PIC object.  But we must not use
2627          # pic_flag when linking with -static.  The problem exists in
2628          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2629          *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2630            case "$compile_command " in
2631            *" -static "*) ;;
2632            *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2633            esac;;
2634          *-*-hpux*)
2635            case "$compile_command " in
2636            *" -static "*) ;;
2637            *) pic_flag_for_symtable=" $pic_flag -DPIC";;
2638            esac
2639          esac
2640
2641          # Now compile the dynamic symbol file.
2642          $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2643          $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2644
2645          # Clean up the generated files.
2646          $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2647          $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2648
2649          # Transform the symbol file into the correct name.
2650          compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2651          finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2652          ;;
2653        *)
2654          $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2655          exit 1
2656          ;;
2657        esac
2658      else
2659        # We keep going just in case the user didn't refer to
2660        # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
2661        # really was required.
2662
2663        # Nullify the symbol file.
2664        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2665        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2666      fi
2667
2668      if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2669        # Replace the output file specification.
2670        compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2671        link_command="$compile_command$compile_rpath"
2672
2673        # We have no uninstalled library dependencies, so finalize right now.
2674        $show "$link_command"
2675        $run eval "$link_command"
2676        status=$?
2677       
2678        # Delete the generated files.
2679        if test -n "$dlsyms"; then
2680          $show "$rm $output_objdir/${outputname}S.${objext}"
2681          $run $rm "$output_objdir/${outputname}S.${objext}"
2682        fi
2683
2684        exit $status
2685      fi
2686
2687      if test -n "$shlibpath_var"; then
2688        # We should set the shlibpath_var
2689        rpath=
2690        for dir in $temp_rpath; do
2691          case "$dir" in
2692          [\\/]* | [A-Za-z]:[\\/]*)
2693            # Absolute path.
2694            rpath="$rpath$dir:"
2695            ;;
2696          *)
2697            # Relative path: add a thisdir entry.
2698            rpath="$rpath\$thisdir/$dir:"
2699            ;;
2700          esac
2701        done
2702        temp_rpath="$rpath"
2703      fi
2704
2705      if test -n "$compile_shlibpath$finalize_shlibpath"; then
2706        compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2707      fi
2708      if test -n "$finalize_shlibpath"; then
2709        finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2710      fi
2711
2712      compile_var=
2713      finalize_var=
2714      if test -n "$runpath_var"; then
2715        if test -n "$perm_rpath"; then
2716          # We should set the runpath_var.
2717          rpath=
2718          for dir in $perm_rpath; do
2719            rpath="$rpath$dir:"
2720          done
2721          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2722        fi
2723        if test -n "$finalize_perm_rpath"; then
2724          # We should set the runpath_var.
2725          rpath=
2726          for dir in $finalize_perm_rpath; do
2727            rpath="$rpath$dir:"
2728          done
2729          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2730        fi
2731      fi
2732
2733      if test "$hardcode_action" = relink; then
2734        # Fast installation is not supported
2735        link_command="$compile_var$compile_command$compile_rpath"
2736        relink_command="$finalize_var$finalize_command$finalize_rpath"
2737       
2738        $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2739        $echo "$modename: \`$output' will be relinked during installation" 1>&2
2740      else
2741        if test "$fast_install" != no; then
2742          link_command="$finalize_var$compile_command$finalize_rpath"
2743          if test "$fast_install" = yes; then
2744            relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2745          else
2746            # fast_install is set to needless
2747            relink_command=
2748          fi
2749        else
2750          link_command="$compile_var$compile_command$compile_rpath"
2751          relink_command="$finalize_var$finalize_command$finalize_rpath"
2752        fi
2753      fi
2754
2755      # Replace the output file specification.
2756      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2757     
2758      # Delete the old output files.
2759      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2760
2761      $show "$link_command"
2762      $run eval "$link_command" || exit $?
2763
2764      # Now create the wrapper script.
2765      $show "creating $output"
2766
2767      # Quote the relink command for shipping.
2768      if test -n "$relink_command"; then
2769        relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2770      fi
2771
2772      # Quote $echo for shipping.
2773      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2774        case "$0" in
2775        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2776        *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2777        esac
2778        qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2779      else
2780        qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2781      fi
2782
2783      # Only actually do things if our run command is non-null.
2784      if test -z "$run"; then
2785        # win32 will think the script is a binary if it has
2786        # a .exe suffix, so we strip it off here.
2787        case $output in
2788          *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2789        esac
2790        $rm $output
2791        trap "$rm $output; exit 1" 1 2 15
2792
2793        $echo > $output "\
2794#! $SHELL
2795
2796# $output - temporary wrapper script for $objdir/$outputname
2797# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2798#
2799# The $output program cannot be directly executed until all the libtool
2800# libraries that it depends on are installed.
2801#
2802# This wrapper script should never be moved out of the build directory.
2803# If it is, it will not operate correctly.
2804
2805# Sed substitution that helps us do robust quoting.  It backslashifies
2806# metacharacters that are still active within double-quoted strings.
2807Xsed='sed -e 1s/^X//'
2808sed_quote_subst='$sed_quote_subst'
2809
2810# The HP-UX ksh and POSIX shell print the target directory to stdout
2811# if CDPATH is set.
2812if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
2813
2814relink_command=\"$relink_command\"
2815
2816# This environment variable determines our operation mode.
2817if test \"\$libtool_install_magic\" = \"$magic\"; then
2818  # install mode needs the following variable:
2819  link_against_libtool_libs='$link_against_libtool_libs'
2820else
2821  # When we are sourced in execute mode, \$file and \$echo are already set.
2822  if test \"\$libtool_execute_magic\" != \"$magic\"; then
2823    echo=\"$qecho\"
2824    file=\"\$0\"
2825    # Make sure echo works.
2826    if test \"X\$1\" = X--no-reexec; then
2827      # Discard the --no-reexec flag, and continue.
2828      shift
2829    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2830      # Yippee, \$echo works!
2831      :
2832    else
2833      # Restart under the correct shell, and then maybe \$echo will work.
2834      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2835    fi
2836  fi\
2837"
2838        $echo >> $output "\
2839
2840  # Find the directory that this script lives in.
2841  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2842  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2843
2844  # Follow symbolic links until we get to the real thisdir.
2845  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2846  while test -n \"\$file\"; do
2847    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2848
2849    # If there was a directory component, then change thisdir.
2850    if test \"x\$destdir\" != \"x\$file\"; then
2851      case \"\$destdir\" in
2852      [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2853      *) thisdir=\"\$thisdir/\$destdir\" ;;
2854      esac
2855    fi
2856
2857    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2858    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2859  done
2860
2861  # Try to get the absolute directory name.
2862  absdir=\`cd \"\$thisdir\" && pwd\`
2863  test -n \"\$absdir\" && thisdir=\"\$absdir\"
2864"
2865
2866        if test "$fast_install" = yes; then
2867          echo >> $output "\
2868  program=lt-'$outputname'
2869  progdir=\"\$thisdir/$objdir\"
2870 
2871  if test ! -f \"\$progdir/\$program\" || \\
2872     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2873       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2874
2875    file=\"\$\$-\$program\"
2876
2877    if test ! -d \"\$progdir\"; then
2878      $mkdir \"\$progdir\"
2879    else
2880      $rm \"\$progdir/\$file\"
2881    fi"
2882
2883          echo >> $output "\
2884
2885    # relink executable if necessary
2886    if test -n \"\$relink_command\"; then
2887      if (cd \"\$thisdir\" && eval \$relink_command); then :
2888      else
2889        $rm \"\$progdir/\$file\"
2890        exit 1
2891      fi
2892    fi
2893
2894    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2895    { $rm \"\$progdir/\$program\";
2896      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2897    $rm \"\$progdir/\$file\"
2898  fi"
2899        else
2900          echo >> $output "\
2901  program='$outputname'
2902  progdir=\"\$thisdir/$objdir\"
2903"
2904        fi
2905
2906        echo >> $output "\
2907
2908  if test -f \"\$progdir/\$program\"; then"
2909
2910        # Export our shlibpath_var if we have one.
2911        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2912          $echo >> $output "\
2913    # Add our own library path to $shlibpath_var
2914    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2915
2916    # Some systems cannot cope with colon-terminated $shlibpath_var
2917    # The second colon is a workaround for a bug in BeOS R4 sed
2918    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2919
2920    export $shlibpath_var
2921"
2922        fi
2923
2924        # fixup the dll searchpath if we need to.
2925        if test -n "$dllsearchpath"; then
2926          $echo >> $output "\
2927    # Add the dll search path components to the executable PATH
2928    PATH=$dllsearchpath:\$PATH
2929"
2930        fi
2931
2932        $echo >> $output "\
2933    if test \"\$libtool_execute_magic\" != \"$magic\"; then
2934      # Run the actual program with our arguments.
2935"
2936        case $host in
2937          # win32 systems need to use the prog path for dll
2938          # lookup to work
2939        *-*-cygwin*)
2940          $echo >> $output "\
2941      exec \$progdir/\$program \${1+\"\$@\"}
2942"
2943          ;;
2944
2945        # Backslashes separate directories on plain windows
2946        *-*-mingw | *-*-os2*)
2947          $echo >> $output "\
2948      exec \$progdir\\\\\$program \${1+\"\$@\"}
2949"
2950          ;;
2951
2952        *)
2953          $echo >> $output "\
2954      # Export the path to the program.
2955      PATH=\"\$progdir:\$PATH\"
2956      export PATH
2957
2958      exec \$program \${1+\"\$@\"}
2959"
2960          ;;
2961        esac
2962        $echo >> $output "\
2963      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2964      exit 1
2965    fi
2966  else
2967    # The program doesn't exist.
2968    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2969    \$echo \"This script is just a wrapper for \$program.\" 1>&2
2970    echo \"See the $PACKAGE documentation for more information.\" 1>&2
2971    exit 1
2972  fi
2973fi\
2974"
2975        chmod +x $output
2976      fi
2977      exit 0
2978      ;;
2979    esac
2980
2981    # See if we need to build an old-fashioned archive.
2982    for oldlib in $oldlibs; do
2983
2984      if test "$build_libtool_libs" = convenience; then
2985        oldobjs="$libobjs_save"
2986        addlibs="$convenience"
2987        build_libtool_libs=no
2988      else
2989        if test "$build_libtool_libs" = module; then
2990          oldobjs="$libobjs_save"
2991          build_libtool_libs=no
2992        else
2993          oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2994        fi
2995        addlibs="$old_convenience"
2996      fi
2997
2998      if test -n "$addlibs"; then
2999        gentop="$output_objdir/${outputname}x"
3000        $show "${rm}r $gentop"
3001        $run ${rm}r "$gentop"
3002        $show "mkdir $gentop"
3003        $run mkdir "$gentop"
3004        status=$?
3005        if test $status -ne 0 && test ! -d "$gentop"; then
3006          exit $status
3007        fi
3008        generated="$generated $gentop"
3009         
3010        # Add in members from convenience archives.
3011        for xlib in $addlibs; do
3012          # Extract the objects.
3013          case "$xlib" in
3014          [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3015          *) xabs=`pwd`"/$xlib" ;;
3016          esac
3017          xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3018          xdir="$gentop/$xlib"
3019
3020          $show "${rm}r $xdir"
3021          $run ${rm}r "$xdir"
3022          $show "mkdir $xdir"
3023          $run mkdir "$xdir"
3024          status=$?
3025          if test $status -ne 0 && test ! -d "$xdir"; then
3026            exit $status
3027          fi
3028          $show "(cd $xdir && $AR x $xabs)"
3029          $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3030
3031          oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3032        done
3033      fi
3034
3035      # Do each command in the archive commands.
3036      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3037        eval cmds=\"$old_archive_from_new_cmds\"
3038      else
3039        # Ensure that we have .o objects in place in case we decided
3040        # not to build a shared library, and have fallen back to building
3041        # static libs even though --disable-static was passed!
3042        for oldobj in $oldobjs; do
3043          if test ! -f $oldobj; then
3044            xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3045            if test "X$xdir" = "X$oldobj"; then
3046              xdir="."
3047            else
3048              xdir="$xdir"
3049            fi
3050            baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3051            obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3052            $show "(cd $xdir && ${LN_S} $obj $baseobj)"
3053            $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3054          fi
3055        done
3056
3057        eval cmds=\"$old_archive_cmds\"
3058      fi
3059      IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
3060      for cmd in $cmds; do
3061        IFS="$save_ifs"
3062        $show "$cmd"
3063        $run eval "$cmd" || exit $?
3064      done
3065      IFS="$save_ifs"
3066    done
3067
3068    if test -n "$generated"; then
3069      $show "${rm}r$generated"
3070      $run ${rm}r$generated
3071    fi
3072
3073    # Now create the libtool archive.
3074    case "$output" in
3075    *.la)
3076      old_library=
3077      test "$build_old_libs" = yes && old_library="$libname.$libext"
3078      $show "creating $output"
3079
3080      if test -n "$xrpath"; then
3081        temp_xrpath=
3082        for libdir in $xrpath; do
3083          temp_xrpath="$temp_xrpath -R$libdir"
3084        done
3085        dependency_libs="$temp_xrpath $dependency_libs"
3086      fi
3087
3088      # Only create the output if not a dry run.
3089      if test -z "$run"; then
3090        for installed in no yes; do
3091          if test "$installed" = yes; then
3092            if test -z "$install_libdir"; then
3093              break
3094            fi
3095            output="$output_objdir/$outputname"i
3096          fi
3097          $rm $output
3098          $echo > $output "\
3099# $outputname - a libtool library file
3100# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3101#
3102# Please DO NOT delete this file!
3103# It is necessary for linking the library.
3104
3105# The name that we can dlopen(3).
3106dlname='$dlname'
3107
3108# Names of this library.
3109library_names='$library_names'
3110
3111# The name of the static archive.
3112old_library='$old_library'
3113
3114# Libraries that this one depends upon.
3115dependency_libs='$dependency_libs'
3116
3117# Version information for $libname.
3118current=$current
3119age=$age
3120revision=$revision
3121
3122# Is this an already installed library?
3123installed=$installed
3124
3125# Directory that this library needs to be installed in:
3126libdir='$install_libdir'\
3127"
3128        done
3129      fi
3130
3131      # Do a symbolic link so that the libtool archive can be found in
3132      # LD_LIBRARY_PATH before the program is installed.
3133      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3134      $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3135      ;;
3136    esac
3137    exit 0
3138    ;;
3139
3140  # libtool install mode
3141  install)
3142    modename="$modename: install"
3143
3144    # There may be an optional sh(1) argument at the beginning of
3145    # install_prog (especially on Windows NT).
3146    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3147      # Aesthetically quote it.
3148      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3149      case "$arg" in
3150      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
3151        arg="\"$arg\""
3152        ;;
3153      esac
3154      install_prog="$arg "
3155      arg="$1"
3156      shift
3157    else
3158      install_prog=
3159      arg="$nonopt"
3160    fi
3161
3162    # The real first argument should be the name of the installation program.
3163    # Aesthetically quote it.
3164    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3165    case "$arg" in
3166    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*)
3167      arg="\"$arg\""
3168      ;;
3169    esac
3170    install_prog="$install_prog$arg"
3171
3172    # We need to accept at least all the BSD install flags.
3173    dest=
3174    files=
3175    opts=
3176    prev=
3177    install_type=
3178    isdir=no
3179    stripme=
3180    for arg
3181    do
3182      if test -n "$dest"; then
3183        files="$files $dest"
3184        dest="$arg"
3185        continue
3186      fi
3187
3188      case "$arg" in
3189      -d) isdir=yes ;;
3190      -f) prev="-f" ;;
3191      -g) prev="-g" ;;
3192      -m) prev="-m" ;;
3193      -o) prev="-o" ;;
3194      -s)
3195        stripme=" -s"
3196        continue
3197        ;;
3198      -*) ;;
3199
3200      *)
3201        # If the previous option needed an argument, then skip it.
3202        if test -n "$prev"; then
3203          prev=
3204        else
3205          dest="$arg"
3206          continue
3207        fi
3208        ;;
3209      esac
3210
3211      # Aesthetically quote the argument.
3212      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3213      case "$arg" in
3214      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
3215        arg="\"$arg\""
3216        ;;
3217      esac
3218      install_prog="$install_prog $arg"
3219    done
3220
3221    if test -z "$install_prog"; then
3222      $echo "$modename: you must specify an install program" 1>&2
3223      $echo "$help" 1>&2
3224      exit 1
3225    fi
3226
3227    if test -n "$prev"; then
3228      $echo "$modename: the \`$prev' option requires an argument" 1>&2
3229      $echo "$help" 1>&2
3230      exit 1
3231    fi
3232
3233    if test -z "$files"; then
3234      if test -z "$dest"; then
3235        $echo "$modename: no file or destination specified" 1>&2
3236      else
3237        $echo "$modename: you must specify a destination" 1>&2
3238      fi
3239      $echo "$help" 1>&2
3240      exit 1
3241    fi
3242
3243    # Strip any trailing slash from the destination.
3244    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3245
3246    # Check to see that the destination is a directory.
3247    test -d "$dest" && isdir=yes
3248    if test "$isdir" = yes; then
3249      destdir="$dest"
3250      destname=
3251    else
3252      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3253      test "X$destdir" = "X$dest" && destdir=.
3254      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3255
3256      # Not a directory, so check to see that there is only one file specified.
3257      set dummy $files
3258      if test $# -gt 2; then
3259        $echo "$modename: \`$dest' is not a directory" 1>&2
3260        $echo "$help" 1>&2
3261        exit 1
3262      fi
3263    fi
3264    case "$destdir" in
3265    [\\/]* | [A-Za-z]:[\\/]*) ;;
3266    *)
3267      for file in $files; do
3268        case "$file" in
3269        *.lo) ;;
3270        *)
3271          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3272          $echo "$help" 1>&2
3273          exit 1
3274          ;;
3275        esac
3276      done
3277      ;;
3278    esac
3279
3280    # This variable tells wrapper scripts just to set variables rather
3281    # than running their programs.
3282    libtool_install_magic="$magic"
3283
3284    staticlibs=
3285    future_libdirs=
3286    current_libdirs=
3287    for file in $files; do
3288
3289      # Do each installation.
3290      case "$file" in
3291      *.a | *.lib)
3292        # Do the static libraries later.
3293        staticlibs="$staticlibs $file"
3294        ;;
3295
3296      *.la)
3297        # Check to see that this really is a libtool archive.
3298        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3299        else
3300          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3301          $echo "$help" 1>&2
3302          exit 1
3303        fi
3304
3305        library_names=
3306        old_library=
3307        # If there is no directory component, then add one.
3308        case "$file" in
3309        */* | *\\*) . $file ;;
3310        *) . ./$file ;;
3311        esac
3312
3313        # Add the libdir to current_libdirs if it is the destination.
3314        if test "X$destdir" = "X$libdir"; then
3315          case "$current_libdirs " in
3316          *" $libdir "*) ;;
3317          *) current_libdirs="$current_libdirs $libdir" ;;
3318          esac
3319        else
3320          # Note the libdir as a future libdir.
3321          case "$future_libdirs " in
3322          *" $libdir "*) ;;
3323          *) future_libdirs="$future_libdirs $libdir" ;;
3324          esac
3325        fi
3326
3327        dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3328        test "X$dir" = "X$file/" && dir=
3329        dir="$dir$objdir"
3330
3331        # See the names of the shared library.
3332        set dummy $library_names
3333        if test -n "$2"; then
3334          realname="$2"
3335          shift
3336          shift
3337
3338          # Install the shared library and build the symlinks.
3339          $show "$install_prog $dir/$realname $destdir/$realname"
3340          $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3341
3342          if test $# -gt 0; then
3343            # Delete the old symlinks, and create new ones.
3344            for linkname
3345            do
3346              if test "$linkname" != "$realname"; then
3347                $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3348                $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3349              fi
3350            done
3351          fi
3352
3353          # Do each command in the postinstall commands.
3354          lib="$destdir/$realname"
3355          eval cmds=\"$postinstall_cmds\"
3356          IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
3357          for cmd in $cmds; do
3358            IFS="$save_ifs"
3359            $show "$cmd"
3360            $run eval "$cmd" || exit $?
3361          done
3362          IFS="$save_ifs"
3363        fi
3364
3365        # Install the pseudo-library for information purposes.
3366        name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3367        instname="$dir/$name"i
3368        $show "$install_prog $instname $destdir/$name"
3369        $run eval "$install_prog $instname $destdir/$name" || exit $?
3370
3371        # Maybe install the static library, too.
3372        test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3373        ;;
3374
3375      *.lo)
3376        # Install (i.e. copy) a libtool object.
3377
3378        # Figure out destination file name, if it wasn't already specified.
3379        if test -n "$destname"; then
3380          destfile="$destdir/$destname"
3381        else
3382          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3383          destfile="$destdir/$destfile"
3384        fi
3385
3386        # Deduce the name of the destination old-style object file.
3387        case "$destfile" in
3388        *.lo)
3389          staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3390          ;;
3391        *.o | *.obj)
3392          staticdest="$destfile"
3393          destfile=
3394          ;;
3395        *)
3396          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3397          $echo "$help" 1>&2
3398          exit 1
3399          ;;
3400        esac
3401
3402        # Install the libtool object if requested.
3403        if test -n "$destfile"; then
3404          $show "$install_prog $file $destfile"
3405          $run eval "$install_prog $file $destfile" || exit $?
3406        fi
3407
3408        # Install the old object if enabled.
3409        if test "$build_old_libs" = yes; then
3410          # Deduce the name of the old-style object file.
3411          staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3412
3413          $show "$install_prog $staticobj $staticdest"
3414          $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3415        fi
3416        exit 0
3417        ;;
3418
3419      *)
3420        # Figure out destination file name, if it wasn't already specified.
3421        if test -n "$destname"; then
3422          destfile="$destdir/$destname"
3423        else
3424          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3425          destfile="$destdir/$destfile"
3426        fi
3427
3428        # Do a test to see if this is really a libtool program.
3429        if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3430          link_against_libtool_libs=
3431          relink_command=
3432
3433          # If there is no directory component, then add one.
3434          case "$file" in
3435          */* | *\\*) . $file ;;
3436          *) . ./$file ;;
3437          esac
3438
3439          # Check the variables that should have been set.
3440          if test -z "$link_against_libtool_libs"; then
3441            $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3442            exit 1
3443          fi
3444
3445          finalize=yes
3446          for lib in $link_against_libtool_libs; do
3447            # Check to see that each library is installed.
3448            libdir=
3449            if test -f "$lib"; then
3450              # If there is no directory component, then add one.
3451              case "$lib" in
3452              */* | *\\*) . $lib ;;
3453              *) . ./$lib ;;
3454              esac
3455            fi
3456            libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3457            if test -n "$libdir" && test ! -f "$libfile"; then
3458              $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3459              finalize=no
3460            fi
3461          done
3462
3463          outputname=
3464          if test "$fast_install" = no && test -n "$relink_command"; then
3465            if test "$finalize" = yes && test -z "$run"; then
3466              tmpdir="/tmp"
3467              test -n "$TMPDIR" && tmpdir="$TMPDIR"
3468              tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null`
3469              if test $? = 0 ; then :
3470              else
3471                tmpdir="$tmpdir/libtool-$$"
3472              fi
3473              if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3474              else
3475                $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3476                continue
3477              fi
3478              outputname="$tmpdir/$file"
3479              # Replace the output file specification.
3480              relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3481
3482              $show "$relink_command"
3483              if $run eval "$relink_command"; then :
3484              else
3485                $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3486                ${rm}r "$tmpdir"
3487                continue
3488              fi
3489              file="$outputname"
3490            else
3491              $echo "$modename: warning: cannot relink \`$file'" 1>&2
3492            fi
3493          else
3494            # Install the binary that we compiled earlier.
3495            file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3496          fi
3497        fi
3498
3499        $show "$install_prog$stripme $file $destfile"
3500        $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3501        test -n "$outputname" && ${rm}r "$tmpdir"
3502        ;;
3503      esac
3504    done
3505
3506    for file in $staticlibs; do
3507      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3508
3509      # Set up the ranlib parameters.
3510      oldlib="$destdir/$name"
3511
3512      $show "$install_prog $file $oldlib"
3513      $run eval "$install_prog \$file \$oldlib" || exit $?
3514
3515      # Do each command in the postinstall commands.
3516      eval cmds=\"$old_postinstall_cmds\"
3517      IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
3518      for cmd in $cmds; do
3519        IFS="$save_ifs"
3520        $show "$cmd"
3521        $run eval "$cmd" || exit $?
3522      done
3523      IFS="$save_ifs"
3524    done
3525
3526    if test -n "$future_libdirs"; then
3527      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3528    fi
3529
3530    if test -n "$current_libdirs"; then
3531      # Maybe just do a dry run.
3532      test -n "$run" && current_libdirs=" -n$current_libdirs"
3533      exec $SHELL $0 --finish$current_libdirs
3534      exit 1
3535    fi
3536
3537    exit 0
3538    ;;
3539
3540  # libtool finish mode
3541  finish)
3542    modename="$modename: finish"
3543    libdirs="$nonopt"
3544    admincmds=
3545
3546    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3547      for dir
3548      do
3549        libdirs="$libdirs $dir"
3550      done
3551
3552      for libdir in $libdirs; do
3553        if test -n "$finish_cmds"; then
3554          # Do each command in the finish commands.
3555          eval cmds=\"$finish_cmds\"
3556          IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
3557          for cmd in $cmds; do
3558            IFS="$save_ifs"
3559            $show "$cmd"
3560            $run eval "$cmd" || admincmds="$admincmds
3561       $cmd"
3562          done
3563          IFS="$save_ifs"
3564        fi
3565        if test -n "$finish_eval"; then
3566          # Do the single finish_eval.
3567          eval cmds=\"$finish_eval\"
3568          $run eval "$cmds" || admincmds="$admincmds
3569       $cmds"
3570        fi
3571      done
3572    fi
3573
3574    # Exit here if they wanted silent mode.
3575    test "$show" = : && exit 0
3576
3577    echo "----------------------------------------------------------------------"
3578    echo "Libraries have been installed in:"
3579    for libdir in $libdirs; do
3580      echo "   $libdir"
3581    done
3582    echo
3583    echo "If you ever happen to want to link against installed libraries"
3584    echo "in a given directory, LIBDIR, you must either use libtool, and"
3585    echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3586    echo "flag during linking and do at least one of the following:"
3587    if test -n "$shlibpath_var"; then
3588      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
3589      echo "     during execution"
3590    fi
3591    if test -n "$runpath_var"; then
3592      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
3593      echo "     during linking"
3594    fi
3595    if test -n "$hardcode_libdir_flag_spec"; then
3596      libdir=LIBDIR
3597      eval flag=\"$hardcode_libdir_flag_spec\"
3598
3599      echo "   - use the \`$flag' linker flag"
3600    fi
3601    if test -n "$admincmds"; then
3602      echo "   - have your system administrator run these commands:$admincmds"
3603    fi
3604    if test -f /etc/ld.so.conf; then
3605      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3606    fi
3607    echo
3608    echo "See any operating system documentation about shared libraries for"
3609    echo "more information, such as the ld(1) and ld.so(8) manual pages."
3610    echo "----------------------------------------------------------------------"
3611    exit 0
3612    ;;
3613
3614  # libtool execute mode
3615  execute)
3616    modename="$modename: execute"
3617
3618    # The first argument is the command name.
3619    cmd="$nonopt"
3620    if test -z "$cmd"; then
3621      $echo "$modename: you must specify a COMMAND" 1>&2
3622      $echo "$help"
3623      exit 1
3624    fi
3625
3626    # Handle -dlopen flags immediately.
3627    for file in $execute_dlfiles; do
3628      if test ! -f "$file"; then
3629        $echo "$modename: \`$file' is not a file" 1>&2
3630        $echo "$help" 1>&2
3631        exit 1
3632      fi
3633
3634      dir=
3635      case "$file" in
3636      *.la)
3637        # Check to see that this really is a libtool archive.
3638        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3639        else
3640          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3641          $echo "$help" 1>&2
3642          exit 1
3643        fi
3644
3645        # Read the libtool library.
3646        dlname=
3647        library_names=
3648
3649        # If there is no directory component, then add one.
3650        case "$file" in
3651        */* | *\\*) . $file ;;
3652        *) . ./$file ;;
3653        esac
3654
3655        # Skip this library if it cannot be dlopened.
3656        if test -z "$dlname"; then
3657          # Warn if it was a shared library.
3658          test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3659          continue
3660        fi
3661
3662        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3663        test "X$dir" = "X$file" && dir=.
3664
3665        if test -f "$dir/$objdir/$dlname"; then
3666          dir="$dir/$objdir"
3667        else
3668          $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3669          exit 1
3670        fi
3671        ;;
3672
3673      *.lo)
3674        # Just add the directory containing the .lo file.
3675        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3676        test "X$dir" = "X$file" && dir=.
3677        ;;
3678
3679      *)
3680        $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3681        continue
3682        ;;
3683      esac
3684
3685      # Get the absolute pathname.
3686      absdir=`cd "$dir" && pwd`
3687      test -n "$absdir" && dir="$absdir"
3688
3689      # Now add the directory to shlibpath_var.
3690      if eval "test -z \"\$$shlibpath_var\""; then
3691        eval "$shlibpath_var=\"\$dir\""
3692      else
3693        eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3694      fi
3695    done
3696
3697    # This variable tells wrapper scripts just to set shlibpath_var
3698    # rather than running their programs.
3699    libtool_execute_magic="$magic"
3700
3701    # Check if any of the arguments is a wrapper script.
3702    args=
3703    for file
3704    do
3705      case "$file" in
3706      -*) ;;
3707      *)
3708        # Do a test to see if this is really a libtool program.
3709        if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3710          # If there is no directory component, then add one.
3711          case "$file" in
3712          */* | *\\*) . $file ;;
3713          *) . ./$file ;;
3714          esac
3715
3716          # Transform arg to wrapped name.
3717          file="$progdir/$program"
3718        fi
3719        ;;
3720      esac
3721      # Quote arguments (to preserve shell metacharacters).
3722      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3723      args="$args \"$file\""
3724    done
3725
3726    if test -z "$run"; then
3727      if test -n "$shlibpath_var"; then
3728        # Export the shlibpath_var.
3729        eval "export $shlibpath_var"
3730      fi
3731
3732      # Restore saved enviroment variables
3733      if test "${save_LC_ALL+set}" = set; then
3734        LC_ALL="$save_LC_ALL"; export LC_ALL
3735      fi
3736      if test "${save_LANG+set}" = set; then
3737        LANG="$save_LANG"; export LANG
3738      fi
3739
3740      # Now actually exec the command.
3741      eval "exec \$cmd$args"
3742
3743      $echo "$modename: cannot exec \$cmd$args"
3744      exit 1
3745    else
3746      # Display what would be done.
3747      if test -n "$shlibpath_var"; then
3748        eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3749        $echo "export $shlibpath_var"
3750      fi
3751      $echo "$cmd$args"
3752      exit 0
3753    fi
3754    ;;
3755
3756  # libtool uninstall mode
3757  uninstall)
3758    modename="$modename: uninstall"
3759    rm="$nonopt"
3760    files=
3761
3762    for arg
3763    do
3764      case "$arg" in
3765      -*) rm="$rm $arg" ;;
3766      *) files="$files $arg" ;;
3767      esac
3768    done
3769
3770    if test -z "$rm"; then
3771      $echo "$modename: you must specify an RM program" 1>&2
3772      $echo "$help" 1>&2
3773      exit 1
3774    fi
3775
3776    for file in $files; do
3777      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3778      test "X$dir" = "X$file" && dir=.
3779      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3780
3781      rmfiles="$file"
3782
3783      case "$name" in
3784      *.la)
3785        # Possibly a libtool archive, so verify it.
3786        if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3787          . $dir/$name
3788
3789          # Delete the libtool libraries and symlinks.
3790          for n in $library_names; do
3791            rmfiles="$rmfiles $dir/$n"
3792          done
3793          test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3794
3795          $show "$rm $rmfiles"
3796          $run $rm $rmfiles
3797
3798          if test -n "$library_names"; then
3799            # Do each command in the postuninstall commands.
3800            eval cmds=\"$postuninstall_cmds\"
3801            IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
3802            for cmd in $cmds; do
3803              IFS="$save_ifs"
3804              $show "$cmd"
3805              $run eval "$cmd"
3806            done
3807            IFS="$save_ifs"
3808          fi
3809
3810          if test -n "$old_library"; then
3811            # Do each command in the old_postuninstall commands.
3812            eval cmds=\"$old_postuninstall_cmds\"
3813            IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
3814            for cmd in $cmds; do
3815              IFS="$save_ifs"
3816              $show "$cmd"
3817              $run eval "$cmd"
3818            done
3819            IFS="$save_ifs"
3820          fi
3821
3822          # FIXME: should reinstall the best remaining shared library.
3823        fi
3824        ;;
3825
3826      *.lo)
3827        if test "$build_old_libs" = yes; then
3828          oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3829          rmfiles="$rmfiles $dir/$oldobj"
3830        fi
3831        $show "$rm $rmfiles"
3832        $run $rm $rmfiles
3833        ;;
3834
3835      *)
3836        $show "$rm $rmfiles"
3837        $run $rm $rmfiles
3838        ;;
3839      esac
3840    done
3841    exit 0
3842    ;;
3843
3844  "")
3845    $echo "$modename: you must specify a MODE" 1>&2
3846    $echo "$generic_help" 1>&2
3847    exit 1
3848    ;;
3849  esac
3850
3851  $echo "$modename: invalid operation mode \`$mode'" 1>&2
3852  $echo "$generic_help" 1>&2
3853  exit 1
3854fi # test -z "$show_help"
3855
3856# We need to display help for each of the modes.
3857case "$mode" in
3858"") $echo \
3859"Usage: $modename [OPTION]... [MODE-ARG]...
3860
3861Provide generalized library-building support services.
3862
3863    --config          show all configuration variables
3864    --debug           enable verbose shell tracing
3865-n, --dry-run         display commands without modifying any files
3866    --features        display basic configuration information and exit
3867    --finish          same as \`--mode=finish'
3868    --help            display this help message and exit
3869    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
3870    --quiet           same as \`--silent'
3871    --silent          don't print informational messages
3872    --version         print version information
3873
3874MODE must be one of the following:
3875
3876      compile         compile a source file into a libtool object
3877      execute         automatically set library path, then run a program
3878      finish          complete the installation of libtool libraries
3879      install         install libraries or executables
3880      link            create a library or an executable
3881      uninstall       remove libraries from an installed directory
3882
3883MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
3884a more detailed description of MODE."
3885  exit 0
3886  ;;
3887
3888compile)
3889  $echo \
3890"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3891
3892Compile a source file into a libtool library object.
3893
3894This mode accepts the following additional options:
3895
3896  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
3897  -static           always build a \`.o' file suitable for static linking
3898
3899COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3900from the given SOURCEFILE.
3901
3902The output file name is determined by removing the directory component from
3903SOURCEFILE, then substituting the C source code suffix \`.c' with the
3904library object suffix, \`.lo'."
3905  ;;
3906
3907execute)
3908  $echo \
3909"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3910
3911Automatically set library path, then run a program.
3912
3913This mode accepts the following additional options:
3914
3915  -dlopen FILE      add the directory containing FILE to the library path
3916
3917This mode sets the library path environment variable according to \`-dlopen'
3918flags.
3919
3920If any of the ARGS are libtool executable wrappers, then they are translated
3921into their corresponding uninstalled binary, and any of their required library
3922directories are added to the library path.
3923
3924Then, COMMAND is executed, with ARGS as arguments."
3925  ;;
3926
3927finish)
3928  $echo \
3929"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3930
3931Complete the installation of libtool libraries.
3932
3933Each LIBDIR is a directory that contains libtool libraries.
3934
3935The commands that this mode executes may require superuser privileges.  Use
3936the \`--dry-run' option if you just want to see what would be executed."
3937  ;;
3938
3939install)
3940  $echo \
3941"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3942
3943Install executables or libraries.
3944
3945INSTALL-COMMAND is the installation command.  The first component should be
3946either the \`install' or \`cp' program.
3947
3948The rest of the components are interpreted as arguments to that command (only
3949BSD-compatible install options are recognized)."
3950  ;;
3951
3952link)
3953  $echo \
3954"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3955
3956Link object files or libraries together to form another library, or to
3957create an executable program.
3958
3959LINK-COMMAND is a command using the C compiler that you would use to create
3960a program from several object files.
3961
3962The following components of LINK-COMMAND are treated specially:
3963
3964  -all-static       do not do any dynamic linking at all
3965  -avoid-version    do not add a version suffix if possible
3966  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
3967  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
3968  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3969  -export-symbols SYMFILE
3970                    try to export only the symbols listed in SYMFILE
3971  -export-symbols-regex REGEX
3972                    try to export only the symbols matching REGEX
3973  -LLIBDIR          search LIBDIR for required installed libraries
3974  -lNAME            OUTPUT-FILE requires the installed library libNAME
3975  -module           build a library that can dlopened
3976  -no-undefined     declare that a library does not refer to external symbols
3977  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
3978  -release RELEASE  specify package release information
3979  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
3980  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
3981  -static           do not do any dynamic linking of libtool libraries
3982  -version-info CURRENT[:REVISION[:AGE]]
3983                    specify library version info [each variable defaults to 0]
3984
3985All other options (arguments beginning with \`-') are ignored.
3986
3987Every other argument is treated as a filename.  Files ending in \`.la' are
3988treated as uninstalled libtool libraries, other files are standard or library
3989object files.
3990
3991If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
3992only library objects (\`.lo' files) may be specified, and \`-rpath' is
3993required, except when creating a convenience library.
3994
3995If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
3996using \`ar' and \`ranlib', or on Windows using \`lib'.
3997
3998If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
3999is created, otherwise an executable program is created."
4000  ;;
4001
4002uninstall)
4003  $echo \
4004"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4005
4006Remove libraries from an installation directory.
4007
4008RM is the name of the program to use to delete files associated with each FILE
4009(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
4010to RM.
4011
4012If FILE is a libtool library, all the files associated with it are deleted.
4013Otherwise, only FILE itself is deleted using RM."
4014  ;;
4015
4016*)
4017  $echo "$modename: invalid operation mode \`$mode'" 1>&2
4018  $echo "$help" 1>&2
4019  exit 1
4020  ;;
4021esac
4022
4023echo
4024$echo "Try \`$modename --help' for more information about other modes."
4025
4026exit 0
4027
4028# Local Variables:
4029# mode:shell-script
4030# sh-indentation:2
4031# End:
Note: See TracBrowser for help on using the repository browser.