source: trunk/third/ORBit/ltmain.sh @ 15271

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