source: trunk/third/file-roller/ltmain.sh @ 21345

Revision 21345, 179.0 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21344, 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 configure.
3#
4# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
5# Free Software Foundation, Inc.
6# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7#
8# This program is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 2 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16# General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program; if not, write to the Free Software
20# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21#
22# As a special exception to the GNU General Public License, if you
23# distribute this file as part of a program that contains a
24# configuration script generated by Autoconf, you may include it under
25# the same distribution terms that you use for the rest of that program.
26
27basename="s,^.*/,,g"
28
29# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30# is ksh but when the shell is invoked as "sh" and the current value of
31# the _XPG environment variable is not equal to 1 (one), the special
32# positional parameter $0, within a function call, is the name of the
33# function.
34progpath="$0"
35
36# The name of this program:
37progname=`echo "$progpath" | $SED $basename`
38modename="$progname"
39
40# Global variables:
41EXIT_SUCCESS=0
42EXIT_FAILURE=1
43
44PROGRAM=ltmain.sh
45PACKAGE=libtool
46VERSION=1.5.10
47TIMESTAMP=" (1.1220.2.130 2004/09/19 12:13:49)"
48
49# See if we are running on zsh, and set the options which allow our
50# commands through without removal of \ escapes.
51if test -n "${ZSH_VERSION+set}" ; then
52  setopt NO_GLOB_SUBST
53fi
54
55# Check that we have a working $echo.
56if test "X$1" = X--no-reexec; then
57  # Discard the --no-reexec flag, and continue.
58  shift
59elif test "X$1" = X--fallback-echo; then
60  # Avoid inline document here, it may be left over
61  :
62elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
63  # Yippee, $echo works!
64  :
65else
66  # Restart under the correct shell, and then maybe $echo will work.
67  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
68fi
69
70if test "X$1" = X--fallback-echo; then
71  # used as fallback echo
72  shift
73  cat <<EOF
74$*
75EOF
76  exit $EXIT_SUCCESS
77fi
78
79default_mode=
80help="Try \`$progname --help' for more information."
81magic="%%%MAGIC variable%%%"
82mkdir="mkdir"
83mv="mv -f"
84rm="rm -f"
85
86# Sed substitution that helps us do robust quoting.  It backslashifies
87# metacharacters that are still active within double-quoted strings.
88Xsed="${SED}"' -e 1s/^X//'
89sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
90# test EBCDIC or ASCII
91case `echo A|tr A '\301'` in
92 A) # EBCDIC based system
93  SP2NL="tr '\100' '\n'"
94  NL2SP="tr '\r\n' '\100\100'"
95  ;;
96 *) # Assume ASCII based system
97  SP2NL="tr '\040' '\012'"
98  NL2SP="tr '\015\012' '\040\040'"
99  ;;
100esac
101
102# NLS nuisances.
103# Only set LANG and LC_ALL to C if already set.
104# These must not be set unconditionally because not all systems understand
105# e.g. LANG=C (notably SCO).
106# We save the old values to restore during execute mode.
107if test "${LC_ALL+set}" = set; then
108  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
109fi
110if test "${LANG+set}" = set; then
111  save_LANG="$LANG"; LANG=C; export LANG
112fi
113
114# Make sure IFS has a sensible default
115: ${IFS="       
116"}
117
118if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
119  $echo "$modename: not configured to build any kind of library" 1>&2
120  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
121  exit $EXIT_FAILURE
122fi
123
124# Global variables.
125mode=$default_mode
126nonopt=
127prev=
128prevopt=
129run=
130show="$echo"
131show_help=
132execute_dlfiles=
133lo2o="s/\\.lo\$/.${objext}/"
134o2lo="s/\\.${objext}\$/.lo/"
135
136#####################################
137# Shell function definitions:
138# This seems to be the best place for them
139
140# func_win32_libid arg
141# return the library type of file 'arg'
142#
143# Need a lot of goo to handle *both* DLLs and import libs
144# Has to be a shell function in order to 'eat' the argument
145# that is supplied when $file_magic_command is called.
146func_win32_libid () {
147  win32_libid_type="unknown"
148  win32_fileres=`file -L $1 2>/dev/null`
149  case $win32_fileres in
150  *ar\ archive\ import\ library*) # definitely import
151    win32_libid_type="x86 archive import"
152    ;;
153  *ar\ archive*) # could be an import, or static
154    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
155      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
156      win32_nmres=`eval $NM -f posix -A $1 | \
157        sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
158      if test "X$win32_nmres" = "Ximport" ; then
159        win32_libid_type="x86 archive import"
160      else
161        win32_libid_type="x86 archive static"
162      fi
163    fi
164    ;;
165  *DLL*)
166    win32_libid_type="x86 DLL"
167    ;;
168  *executable*) # but shell scripts are "executable" too...
169    case $win32_fileres in
170    *MS\ Windows\ PE\ Intel*)
171      win32_libid_type="x86 DLL"
172      ;;
173    esac
174    ;;
175  esac
176  $echo $win32_libid_type
177}
178
179
180# func_infer_tag arg
181# Infer tagged configuration to use if any are available and
182# if one wasn't chosen via the "--tag" command line option.
183# Only attempt this if the compiler in the base compile
184# command doesn't match the default compiler.
185# arg is usually of the form 'gcc ...'
186func_infer_tag () {
187    if test -n "$available_tags" && test -z "$tagname"; then
188      CC_quoted=
189      for arg in $CC; do
190        case $arg in
191          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
192          arg="\"$arg\""
193          ;;
194        esac
195        CC_quoted="$CC_quoted $arg"
196      done
197      case $@ in
198      # Blanks in the command may have been stripped by the calling shell,
199      # but not from the CC environment variable when configure was run.
200      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
201      # Blanks at the start of $base_compile will cause this to fail
202      # if we don't check for them as well.
203      *)
204        for z in $available_tags; do
205          if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
206            # Evaluate the configuration.
207            eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
208            CC_quoted=
209            for arg in $CC; do
210            # Double-quote args containing other shell metacharacters.
211            case $arg in
212              *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
213              arg="\"$arg\""
214              ;;
215            esac
216            CC_quoted="$CC_quoted $arg"
217          done
218            case "$@ " in
219              " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
220              # The compiler in the base compile command matches
221              # the one in the tagged configuration.
222              # Assume this is the tagged configuration we want.
223              tagname=$z
224              break
225              ;;
226            esac
227          fi
228        done
229        # If $tagname still isn't set, then no tagged configuration
230        # was found and let the user know that the "--tag" command
231        # line option must be used.
232        if test -z "$tagname"; then
233          $echo "$modename: unable to infer tagged configuration"
234          $echo "$modename: specify a tag with \`--tag'" 1>&2
235          exit $EXIT_FAILURE
236#        else
237#          $echo "$modename: using $tagname tagged configuration"
238        fi
239        ;;
240      esac
241    fi
242}
243
244
245# func_extract_archives gentop oldlib ...
246func_extract_archives () {
247    my_gentop="$1"; shift
248    my_oldlibs=${1+"$@"}
249    my_oldobjs=""
250    my_xlib=""
251    my_xabs=""
252    my_xdir=""
253    my_status=""
254
255    $show "${rm}r $my_gentop"
256    $run ${rm}r "$my_gentop"
257    $show "$mkdir $my_gentop"
258    $run $mkdir "$my_gentop"
259    my_status=$?
260    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
261      exit $my_status
262    fi
263
264    for my_xlib in $my_oldlibs; do
265      # Extract the objects.
266      case $my_xlib in
267        [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
268        *) my_xabs=`pwd`"/$my_xlib" ;;
269      esac
270      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
271      my_xdir="$my_gentop/$my_xlib"
272
273      $show "${rm}r $my_xdir"
274      $run ${rm}r "$my_xdir"
275      $show "$mkdir $my_xdir"
276      $run $mkdir "$my_xdir"
277      status=$?
278      if test "$status" -ne 0 && test ! -d "$my_xdir"; then
279        exit $status
280      fi
281      case $host in
282      *-darwin*)
283        $show "Extracting $my_xabs"
284        # Do not bother doing anything if just a dry run
285        if test -z "$run"; then
286          darwin_orig_dir=`pwd`
287          cd $my_xdir || exit $?
288          darwin_archive=$my_xabs
289          darwin_curdir=`pwd`
290          darwin_base_archive=`basename $darwin_archive`
291          darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
292          if test -n "$darwin_arches"; then
293            darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
294            darwin_arch=
295            $show "$darwin_base_archive has multiple architectures $darwin_arches"
296            for darwin_arch in  $darwin_arches ; do
297              mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
298              lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
299              # Remove the table of contents from the thin files.
300              $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true
301              $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true
302              cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
303              $AR -xo "${darwin_base_archive}"
304              rm "${darwin_base_archive}"
305              cd "$darwin_curdir"
306            done # $darwin_arches
307      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
308            darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP`
309            darwin_file=
310            darwin_files=
311            for darwin_file in $darwin_filelist; do
312              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
313              lipo -create -output "$darwin_file" $darwin_files
314            done # $darwin_filelist
315            rm -rf unfat-$$
316            cd "$darwin_orig_dir"
317          else
318            cd $darwin_orig_dir
319            (cd $my_xdir && $AR x $my_xabs) || exit $?
320          fi # $darwin_arches
321        fi # $run
322      ;;
323      *)
324        # We will extract separately just the conflicting names and we will
325        # no longer touch any unique names. It is faster to leave these
326        # extract automatically by $AR in one run.
327        $show "(cd $my_xdir && $AR x $my_xabs)"
328        $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $?
329        if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then
330          :
331        else
332          $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
333          $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
334          $AR t "$my_xabs" | sort | uniq -cd | while read -r count name
335          do
336            i=1
337            while test "$i" -le "$count"
338            do
339              # Put our $i before any first dot (extension)
340              # Never overwrite any file
341              name_to="$name"
342              while test "X$name_to" = "X$name" || test -f "$my_xdir/$name_to"
343              do
344                name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
345              done
346              $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$name' '$name_to')"
347              $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $mv '$name' '$name_to')" || exit $?
348              i=`expr $i + 1`
349            done
350          done
351        fi
352        ;;
353      esac
354      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
355    done
356
357    func_extract_archives_result="$my_oldobjs"
358}
359# End of Shell function definitions
360#####################################
361
362# Darwin sucks
363eval std_shrext=\"$shrext_cmds\"
364
365# Parse our command line options once, thoroughly.
366while test "$#" -gt 0
367do
368  arg="$1"
369  shift
370
371  case $arg in
372  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
373  *) optarg= ;;
374  esac
375
376  # If the previous option needs an argument, assign it.
377  if test -n "$prev"; then
378    case $prev in
379    execute_dlfiles)
380      execute_dlfiles="$execute_dlfiles $arg"
381      ;;
382    tag)
383      tagname="$arg"
384      preserve_args="${preserve_args}=$arg"
385
386      # Check whether tagname contains only valid characters
387      case $tagname in
388      *[!-_A-Za-z0-9,/]*)
389        $echo "$progname: invalid tag name: $tagname" 1>&2
390        exit $EXIT_FAILURE
391        ;;
392      esac
393
394      case $tagname in
395      CC)
396        # Don't test for the "default" C tag, as we know, it's there, but
397        # not specially marked.
398        ;;
399      *)
400        if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
401          taglist="$taglist $tagname"
402          # Evaluate the configuration.
403          eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
404        else
405          $echo "$progname: ignoring unknown tag $tagname" 1>&2
406        fi
407        ;;
408      esac
409      ;;
410    *)
411      eval "$prev=\$arg"
412      ;;
413    esac
414
415    prev=
416    prevopt=
417    continue
418  fi
419
420  # Have we seen a non-optional argument yet?
421  case $arg in
422  --help)
423    show_help=yes
424    ;;
425
426  --version)
427    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
428    $echo
429    $echo "Copyright (C) 2003  Free Software Foundation, Inc."
430    $echo "This is free software; see the source for copying conditions.  There is NO"
431    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
432    exit $EXIT_SUCCESS
433    ;;
434
435  --config)
436    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
437    # Now print the configurations for the tags.
438    for tagname in $taglist; do
439      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
440    done
441    exit $EXIT_SUCCESS
442    ;;
443
444  --debug)
445    $echo "$progname: enabling shell trace mode"
446    set -x
447    preserve_args="$preserve_args $arg"
448    ;;
449
450  --dry-run | -n)
451    run=:
452    ;;
453
454  --features)
455    $echo "host: $host"
456    if test "$build_libtool_libs" = yes; then
457      $echo "enable shared libraries"
458    else
459      $echo "disable shared libraries"
460    fi
461    if test "$build_old_libs" = yes; then
462      $echo "enable static libraries"
463    else
464      $echo "disable static libraries"
465    fi
466    exit $EXIT_SUCCESS
467    ;;
468
469  --finish) mode="finish" ;;
470
471  --mode) prevopt="--mode" prev=mode ;;
472  --mode=*) mode="$optarg" ;;
473
474  --preserve-dup-deps) duplicate_deps="yes" ;;
475
476  --quiet | --silent)
477    show=:
478    preserve_args="$preserve_args $arg"
479    ;;
480
481  --tag) prevopt="--tag" prev=tag ;;
482  --tag=*)
483    set tag "$optarg" ${1+"$@"}
484    shift
485    prev=tag
486    preserve_args="$preserve_args --tag"
487    ;;
488
489  -dlopen)
490    prevopt="-dlopen"
491    prev=execute_dlfiles
492    ;;
493
494  -*)
495    $echo "$modename: unrecognized option \`$arg'" 1>&2
496    $echo "$help" 1>&2
497    exit $EXIT_FAILURE
498    ;;
499
500  *)
501    nonopt="$arg"
502    break
503    ;;
504  esac
505done
506
507if test -n "$prevopt"; then
508  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
509  $echo "$help" 1>&2
510  exit $EXIT_FAILURE
511fi
512
513# If this variable is set in any of the actions, the command in it
514# will be execed at the end.  This prevents here-documents from being
515# left over by shells.
516exec_cmd=
517
518if test -z "$show_help"; then
519
520  # Infer the operation mode.
521  if test -z "$mode"; then
522    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
523    $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
524    case $nonopt in
525    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
526      mode=link
527      for arg
528      do
529        case $arg in
530        -c)
531           mode=compile
532           break
533           ;;
534        esac
535      done
536      ;;
537    *db | *dbx | *strace | *truss)
538      mode=execute
539      ;;
540    *install*|cp|mv)
541      mode=install
542      ;;
543    *rm)
544      mode=uninstall
545      ;;
546    *)
547      # If we have no mode, but dlfiles were specified, then do execute mode.
548      test -n "$execute_dlfiles" && mode=execute
549
550      # Just use the default operation mode.
551      if test -z "$mode"; then
552        if test -n "$nonopt"; then
553          $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
554        else
555          $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
556        fi
557      fi
558      ;;
559    esac
560  fi
561
562  # Only execute mode is allowed to have -dlopen flags.
563  if test -n "$execute_dlfiles" && test "$mode" != execute; then
564    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
565    $echo "$help" 1>&2
566    exit $EXIT_FAILURE
567  fi
568
569  # Change the help message to a mode-specific one.
570  generic_help="$help"
571  help="Try \`$modename --help --mode=$mode' for more information."
572
573  # These modes are in order of execution frequency so that they run quickly.
574  case $mode in
575  # libtool compile mode
576  compile)
577    modename="$modename: compile"
578    # Get the compilation command and the source file.
579    base_compile=
580    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
581    suppress_opt=yes
582    suppress_output=
583    arg_mode=normal
584    libobj=
585    later=
586
587    for arg
588    do
589      case "$arg_mode" in
590      arg  )
591        # do not "continue".  Instead, add this to base_compile
592        lastarg="$arg"
593        arg_mode=normal
594        ;;
595
596      target )
597        libobj="$arg"
598        arg_mode=normal
599        continue
600        ;;
601
602      normal )
603        # Accept any command-line options.
604        case $arg in
605        -o)
606          if test -n "$libobj" ; then
607            $echo "$modename: you cannot specify \`-o' more than once" 1>&2
608            exit $EXIT_FAILURE
609          fi
610          arg_mode=target
611          continue
612          ;;
613
614        -static | -prefer-pic | -prefer-non-pic)
615          later="$later $arg"
616          continue
617          ;;
618
619        -no-suppress)
620          suppress_opt=no
621          continue
622          ;;
623
624        -Xcompiler)
625          arg_mode=arg  #  the next one goes into the "base_compile" arg list
626          continue      #  The current "srcfile" will either be retained or
627          ;;            #  replaced later.  I would guess that would be a bug.
628
629        -Wc,*)
630          args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
631          lastarg=
632          save_ifs="$IFS"; IFS=','
633          for arg in $args; do
634            IFS="$save_ifs"
635
636            # Double-quote args containing other shell metacharacters.
637            # Many Bourne shells cannot handle close brackets correctly
638            # in scan sets, so we specify it separately.
639            case $arg in
640              *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
641              arg="\"$arg\""
642              ;;
643            esac
644            lastarg="$lastarg $arg"
645          done
646          IFS="$save_ifs"
647          lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
648
649          # Add the arguments to base_compile.
650          base_compile="$base_compile $lastarg"
651          continue
652          ;;
653
654        * )
655          # Accept the current argument as the source file.
656          # The previous "srcfile" becomes the current argument.
657          #
658          lastarg="$srcfile"
659          srcfile="$arg"
660          ;;
661        esac  #  case $arg
662        ;;
663      esac    #  case $arg_mode
664
665      # Aesthetically quote the previous argument.
666      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
667
668      case $lastarg in
669      # Double-quote args containing other shell metacharacters.
670      # Many Bourne shells cannot handle close brackets correctly
671      # in scan sets, so we specify it separately.
672      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
673        lastarg="\"$lastarg\""
674        ;;
675      esac
676
677      base_compile="$base_compile $lastarg"
678    done # for arg
679
680    case $arg_mode in
681    arg)
682      $echo "$modename: you must specify an argument for -Xcompile"
683      exit $EXIT_FAILURE
684      ;;
685    target)
686      $echo "$modename: you must specify a target with \`-o'" 1>&2
687      exit $EXIT_FAILURE
688      ;;
689    *)
690      # Get the name of the library object.
691      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
692      ;;
693    esac
694
695    # Recognize several different file suffixes.
696    # If the user specifies -o file.o, it is replaced with file.lo
697    xform='[cCFSifmso]'
698    case $libobj in
699    *.ada) xform=ada ;;
700    *.adb) xform=adb ;;
701    *.ads) xform=ads ;;
702    *.asm) xform=asm ;;
703    *.c++) xform=c++ ;;
704    *.cc) xform=cc ;;
705    *.ii) xform=ii ;;
706    *.class) xform=class ;;
707    *.cpp) xform=cpp ;;
708    *.cxx) xform=cxx ;;
709    *.f90) xform=f90 ;;
710    *.for) xform=for ;;
711    *.java) xform=java ;;
712    esac
713
714    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
715
716    case $libobj in
717    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
718    *)
719      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
720      exit $EXIT_FAILURE
721      ;;
722    esac
723
724    func_infer_tag $base_compile
725
726    for arg in $later; do
727      case $arg in
728      -static)
729        build_old_libs=yes
730        continue
731        ;;
732
733      -prefer-pic)
734        pic_mode=yes
735        continue
736        ;;
737
738      -prefer-non-pic)
739        pic_mode=no
740        continue
741        ;;
742      esac
743    done
744
745    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
746    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
747    if test "X$xdir" = "X$obj"; then
748      xdir=
749    else
750      xdir=$xdir/
751    fi
752    lobj=${xdir}$objdir/$objname
753
754    if test -z "$base_compile"; then
755      $echo "$modename: you must specify a compilation command" 1>&2
756      $echo "$help" 1>&2
757      exit $EXIT_FAILURE
758    fi
759
760    # Delete any leftover library objects.
761    if test "$build_old_libs" = yes; then
762      removelist="$obj $lobj $libobj ${libobj}T"
763    else
764      removelist="$lobj $libobj ${libobj}T"
765    fi
766
767    $run $rm $removelist
768    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
769
770    # On Cygwin there's no "real" PIC flag so we must build both object types
771    case $host_os in
772    cygwin* | mingw* | pw32* | os2*)
773      pic_mode=default
774      ;;
775    esac
776    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
777      # non-PIC code in shared libraries is not supported
778      pic_mode=default
779    fi
780
781    # Calculate the filename of the output object if compiler does
782    # not support -o with -c
783    if test "$compiler_c_o" = no; then
784      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
785      lockfile="$output_obj.lock"
786      removelist="$removelist $output_obj $lockfile"
787      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
788    else
789      output_obj=
790      need_locks=no
791      lockfile=
792    fi
793
794    # Lock this critical section if it is needed
795    # We use this script file to make the link, it avoids creating a new file
796    if test "$need_locks" = yes; then
797      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
798        $show "Waiting for $lockfile to be removed"
799        sleep 2
800      done
801    elif test "$need_locks" = warn; then
802      if test -f "$lockfile"; then
803        $echo "\
804*** ERROR, $lockfile exists and contains:
805`cat $lockfile 2>/dev/null`
806
807This indicates that another process is trying to use the same
808temporary object file, and libtool could not work around it because
809your compiler does not support \`-c' and \`-o' together.  If you
810repeat this compilation, it may succeed, by chance, but you had better
811avoid parallel builds (make -j) in this platform, or get a better
812compiler."
813
814        $run $rm $removelist
815        exit $EXIT_FAILURE
816      fi
817      $echo $srcfile > "$lockfile"
818    fi
819
820    if test -n "$fix_srcfile_path"; then
821      eval srcfile=\"$fix_srcfile_path\"
822    fi
823
824    $run $rm "$libobj" "${libobj}T"
825
826    # Create a libtool object file (analogous to a ".la" file),
827    # but don't create it if we're doing a dry run.
828    test -z "$run" && cat > ${libobj}T <<EOF
829# $libobj - a libtool object file
830# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
831#
832# Please DO NOT delete this file!
833# It is necessary for linking the library.
834
835# Name of the PIC object.
836EOF
837
838    # Only build a PIC object if we are building libtool libraries.
839    if test "$build_libtool_libs" = yes; then
840      # Without this assignment, base_compile gets emptied.
841      fbsd_hideous_sh_bug=$base_compile
842
843      if test "$pic_mode" != no; then
844        command="$base_compile $srcfile $pic_flag"
845      else
846        # Don't build PIC code
847        command="$base_compile $srcfile"
848      fi
849
850      if test ! -d "${xdir}$objdir"; then
851        $show "$mkdir ${xdir}$objdir"
852        $run $mkdir ${xdir}$objdir
853        status=$?
854        if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
855          exit $status
856        fi
857      fi
858
859      if test -z "$output_obj"; then
860        # Place PIC objects in $objdir
861        command="$command -o $lobj"
862      fi
863
864      $run $rm "$lobj" "$output_obj"
865
866      $show "$command"
867      if $run eval "$command"; then :
868      else
869        test -n "$output_obj" && $run $rm $removelist
870        exit $EXIT_FAILURE
871      fi
872
873      if test "$need_locks" = warn &&
874         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
875        $echo "\
876*** ERROR, $lockfile contains:
877`cat $lockfile 2>/dev/null`
878
879but it should contain:
880$srcfile
881
882This indicates that another process is trying to use the same
883temporary object file, and libtool could not work around it because
884your compiler does not support \`-c' and \`-o' together.  If you
885repeat this compilation, it may succeed, by chance, but you had better
886avoid parallel builds (make -j) in this platform, or get a better
887compiler."
888
889        $run $rm $removelist
890        exit $EXIT_FAILURE
891      fi
892
893      # Just move the object if needed, then go on to compile the next one
894      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
895        $show "$mv $output_obj $lobj"
896        if $run $mv $output_obj $lobj; then :
897        else
898          error=$?
899          $run $rm $removelist
900          exit $error
901        fi
902      fi
903
904      # Append the name of the PIC object to the libtool object file.
905      test -z "$run" && cat >> ${libobj}T <<EOF
906pic_object='$objdir/$objname'
907
908EOF
909
910      # Allow error messages only from the first compilation.
911      if test "$suppress_opt" = yes; then
912        suppress_output=' >/dev/null 2>&1'
913      fi
914    else
915      # No PIC object so indicate it doesn't exist in the libtool
916      # object file.
917      test -z "$run" && cat >> ${libobj}T <<EOF
918pic_object=none
919
920EOF
921    fi
922
923    # Only build a position-dependent object if we build old libraries.
924    if test "$build_old_libs" = yes; then
925      if test "$pic_mode" != yes; then
926        # Don't build PIC code
927        command="$base_compile $srcfile"
928      else
929        command="$base_compile $srcfile $pic_flag"
930      fi
931      if test "$compiler_c_o" = yes; then
932        command="$command -o $obj"
933      fi
934
935      # Suppress compiler output if we already did a PIC compilation.
936      command="$command$suppress_output"
937      $run $rm "$obj" "$output_obj"
938      $show "$command"
939      if $run eval "$command"; then :
940      else
941        $run $rm $removelist
942        exit $EXIT_FAILURE
943      fi
944
945      if test "$need_locks" = warn &&
946         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
947        $echo "\
948*** ERROR, $lockfile contains:
949`cat $lockfile 2>/dev/null`
950
951but it should contain:
952$srcfile
953
954This indicates that another process is trying to use the same
955temporary object file, and libtool could not work around it because
956your compiler does not support \`-c' and \`-o' together.  If you
957repeat this compilation, it may succeed, by chance, but you had better
958avoid parallel builds (make -j) in this platform, or get a better
959compiler."
960
961        $run $rm $removelist
962        exit $EXIT_FAILURE
963      fi
964
965      # Just move the object if needed
966      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
967        $show "$mv $output_obj $obj"
968        if $run $mv $output_obj $obj; then :
969        else
970          error=$?
971          $run $rm $removelist
972          exit $error
973        fi
974      fi
975
976      # Append the name of the non-PIC object the libtool object file.
977      # Only append if the libtool object file exists.
978      test -z "$run" && cat >> ${libobj}T <<EOF
979# Name of the non-PIC object.
980non_pic_object='$objname'
981
982EOF
983    else
984      # Append the name of the non-PIC object the libtool object file.
985      # Only append if the libtool object file exists.
986      test -z "$run" && cat >> ${libobj}T <<EOF
987# Name of the non-PIC object.
988non_pic_object=none
989
990EOF
991    fi
992
993    $run $mv "${libobj}T" "${libobj}"
994
995    # Unlock the critical section if it was locked
996    if test "$need_locks" != no; then
997      $run $rm "$lockfile"
998    fi
999
1000    exit $EXIT_SUCCESS
1001    ;;
1002
1003  # libtool link mode
1004  link | relink)
1005    modename="$modename: link"
1006    case $host in
1007    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1008      # It is impossible to link a dll without this setting, and
1009      # we shouldn't force the makefile maintainer to figure out
1010      # which system we are compiling for in order to pass an extra
1011      # flag for every libtool invocation.
1012      # allow_undefined=no
1013
1014      # FIXME: Unfortunately, there are problems with the above when trying
1015      # to make a dll which has undefined symbols, in which case not
1016      # even a static library is built.  For now, we need to specify
1017      # -no-undefined on the libtool link line when we can be certain
1018      # that all symbols are satisfied, otherwise we get a static library.
1019      allow_undefined=yes
1020      ;;
1021    *)
1022      allow_undefined=yes
1023      ;;
1024    esac
1025    libtool_args="$nonopt"
1026    base_compile="$nonopt $@"
1027    compile_command="$nonopt"
1028    finalize_command="$nonopt"
1029
1030    compile_rpath=
1031    finalize_rpath=
1032    compile_shlibpath=
1033    finalize_shlibpath=
1034    convenience=
1035    old_convenience=
1036    deplibs=
1037    old_deplibs=
1038    compiler_flags=
1039    linker_flags=
1040    dllsearchpath=
1041    lib_search_path=`pwd`
1042    inst_prefix_dir=
1043
1044    avoid_version=no
1045    dlfiles=
1046    dlprefiles=
1047    dlself=no
1048    export_dynamic=no
1049    export_symbols=
1050    export_symbols_regex=
1051    generated=
1052    libobjs=
1053    ltlibs=
1054    module=no
1055    no_install=no
1056    objs=
1057    non_pic_objects=
1058    precious_files_regex=
1059    prefer_static_libs=no
1060    preload=no
1061    prev=
1062    prevarg=
1063    release=
1064    rpath=
1065    xrpath=
1066    perm_rpath=
1067    temp_rpath=
1068    thread_safe=no
1069    vinfo=
1070    vinfo_number=no
1071
1072    func_infer_tag $base_compile
1073
1074    # We need to know -static, to get the right output filenames.
1075    for arg
1076    do
1077      case $arg in
1078      -all-static | -static)
1079        if test "X$arg" = "X-all-static"; then
1080          if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1081            $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1082          fi
1083          if test -n "$link_static_flag"; then
1084            dlopen_self=$dlopen_self_static
1085          fi
1086        else
1087          if test -z "$pic_flag" && test -n "$link_static_flag"; then
1088            dlopen_self=$dlopen_self_static
1089          fi
1090        fi
1091        build_libtool_libs=no
1092        build_old_libs=yes
1093        prefer_static_libs=yes
1094        break
1095        ;;
1096      esac
1097    done
1098
1099    # See if our shared archives depend on static archives.
1100    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1101
1102    # Go through the arguments, transforming them on the way.
1103    while test "$#" -gt 0; do
1104      arg="$1"
1105      shift
1106      case $arg in
1107      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
1108        qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1109        ;;
1110      *) qarg=$arg ;;
1111      esac
1112      libtool_args="$libtool_args $qarg"
1113
1114      # If the previous option needs an argument, assign it.
1115      if test -n "$prev"; then
1116        case $prev in
1117        output)
1118          compile_command="$compile_command @OUTPUT@"
1119          finalize_command="$finalize_command @OUTPUT@"
1120          ;;
1121        esac
1122
1123        case $prev in
1124        dlfiles|dlprefiles)
1125          if test "$preload" = no; then
1126            # Add the symbol object into the linking commands.
1127            compile_command="$compile_command @SYMFILE@"
1128            finalize_command="$finalize_command @SYMFILE@"
1129            preload=yes
1130          fi
1131          case $arg in
1132          *.la | *.lo) ;;  # We handle these cases below.
1133          force)
1134            if test "$dlself" = no; then
1135              dlself=needless
1136              export_dynamic=yes
1137            fi
1138            prev=
1139            continue
1140            ;;
1141          self)
1142            if test "$prev" = dlprefiles; then
1143              dlself=yes
1144            elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1145              dlself=yes
1146            else
1147              dlself=needless
1148              export_dynamic=yes
1149            fi
1150            prev=
1151            continue
1152            ;;
1153          *)
1154            if test "$prev" = dlfiles; then
1155              dlfiles="$dlfiles $arg"
1156            else
1157              dlprefiles="$dlprefiles $arg"
1158            fi
1159            prev=
1160            continue
1161            ;;
1162          esac
1163          ;;
1164        expsyms)
1165          export_symbols="$arg"
1166          if test ! -f "$arg"; then
1167            $echo "$modename: symbol file \`$arg' does not exist"
1168            exit $EXIT_FAILURE
1169          fi
1170          prev=
1171          continue
1172          ;;
1173        expsyms_regex)
1174          export_symbols_regex="$arg"
1175          prev=
1176          continue
1177          ;;
1178        inst_prefix)
1179          inst_prefix_dir="$arg"
1180          prev=
1181          continue
1182          ;;
1183        precious_regex)
1184          precious_files_regex="$arg"
1185          prev=
1186          continue
1187          ;;
1188        release)
1189          release="-$arg"
1190          prev=
1191          continue
1192          ;;
1193        objectlist)
1194          if test -f "$arg"; then
1195            save_arg=$arg
1196            moreargs=
1197            for fil in `cat $save_arg`
1198            do
1199#             moreargs="$moreargs $fil"
1200              arg=$fil
1201              # A libtool-controlled object.
1202
1203              # Check to see that this really is a libtool object.
1204              if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1205                pic_object=
1206                non_pic_object=
1207
1208                # Read the .lo file
1209                # If there is no directory component, then add one.
1210                case $arg in
1211                */* | *\\*) . $arg ;;
1212                *) . ./$arg ;;
1213                esac
1214
1215                if test -z "$pic_object" || \
1216                   test -z "$non_pic_object" ||
1217                   test "$pic_object" = none && \
1218                   test "$non_pic_object" = none; then
1219                  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1220                  exit $EXIT_FAILURE
1221                fi
1222
1223                # Extract subdirectory from the argument.
1224                xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1225                if test "X$xdir" = "X$arg"; then
1226                  xdir=
1227                else
1228                  xdir="$xdir/"
1229                fi
1230
1231                if test "$pic_object" != none; then
1232                  # Prepend the subdirectory the object is found in.
1233                  pic_object="$xdir$pic_object"
1234
1235                  if test "$prev" = dlfiles; then
1236                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1237                      dlfiles="$dlfiles $pic_object"
1238                      prev=
1239                      continue
1240                    else
1241                      # If libtool objects are unsupported, then we need to preload.
1242                      prev=dlprefiles
1243                    fi
1244                  fi
1245
1246                  # CHECK ME:  I think I busted this.  -Ossama
1247                  if test "$prev" = dlprefiles; then
1248                    # Preload the old-style object.
1249                    dlprefiles="$dlprefiles $pic_object"
1250                    prev=
1251                  fi
1252
1253                  # A PIC object.
1254                  libobjs="$libobjs $pic_object"
1255                  arg="$pic_object"
1256                fi
1257
1258                # Non-PIC object.
1259                if test "$non_pic_object" != none; then
1260                  # Prepend the subdirectory the object is found in.
1261                  non_pic_object="$xdir$non_pic_object"
1262
1263                  # A standard non-PIC object
1264                  non_pic_objects="$non_pic_objects $non_pic_object"
1265                  if test -z "$pic_object" || test "$pic_object" = none ; then
1266                    arg="$non_pic_object"
1267                  fi
1268                fi
1269              else
1270                # Only an error if not doing a dry-run.
1271                if test -z "$run"; then
1272                  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1273                  exit $EXIT_FAILURE
1274                else
1275                  # Dry-run case.
1276
1277                  # Extract subdirectory from the argument.
1278                  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1279                  if test "X$xdir" = "X$arg"; then
1280                    xdir=
1281                  else
1282                    xdir="$xdir/"
1283                  fi
1284
1285                  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1286                  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1287                  libobjs="$libobjs $pic_object"
1288                  non_pic_objects="$non_pic_objects $non_pic_object"
1289                fi
1290              fi
1291            done
1292          else
1293            $echo "$modename: link input file \`$save_arg' does not exist"
1294            exit $EXIT_FAILURE
1295          fi
1296          arg=$save_arg
1297          prev=
1298          continue
1299          ;;
1300        rpath | xrpath)
1301          # We need an absolute path.
1302          case $arg in
1303          [\\/]* | [A-Za-z]:[\\/]*) ;;
1304          *)
1305            $echo "$modename: only absolute run-paths are allowed" 1>&2
1306            exit $EXIT_FAILURE
1307            ;;
1308          esac
1309          if test "$prev" = rpath; then
1310            case "$rpath " in
1311            *" $arg "*) ;;
1312            *) rpath="$rpath $arg" ;;
1313            esac
1314          else
1315            case "$xrpath " in
1316            *" $arg "*) ;;
1317            *) xrpath="$xrpath $arg" ;;
1318            esac
1319          fi
1320          prev=
1321          continue
1322          ;;
1323        xcompiler)
1324          compiler_flags="$compiler_flags $qarg"
1325          prev=
1326          compile_command="$compile_command $qarg"
1327          finalize_command="$finalize_command $qarg"
1328          continue
1329          ;;
1330        xlinker)
1331          linker_flags="$linker_flags $qarg"
1332          compiler_flags="$compiler_flags $wl$qarg"
1333          prev=
1334          compile_command="$compile_command $wl$qarg"
1335          finalize_command="$finalize_command $wl$qarg"
1336          continue
1337          ;;
1338        xcclinker)
1339          linker_flags="$linker_flags $qarg"
1340          compiler_flags="$compiler_flags $qarg"
1341          prev=
1342          compile_command="$compile_command $qarg"
1343          finalize_command="$finalize_command $qarg"
1344          continue
1345          ;;
1346        shrext)
1347          shrext_cmds="$arg"
1348          prev=
1349          continue
1350          ;;
1351        *)
1352          eval "$prev=\"\$arg\""
1353          prev=
1354          continue
1355          ;;
1356        esac
1357      fi # test -n "$prev"
1358
1359      prevarg="$arg"
1360
1361      case $arg in
1362      -all-static)
1363        if test -n "$link_static_flag"; then
1364          compile_command="$compile_command $link_static_flag"
1365          finalize_command="$finalize_command $link_static_flag"
1366        fi
1367        continue
1368        ;;
1369
1370      -allow-undefined)
1371        # FIXME: remove this flag sometime in the future.
1372        $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1373        continue
1374        ;;
1375
1376      -avoid-version)
1377        avoid_version=yes
1378        continue
1379        ;;
1380
1381      -dlopen)
1382        prev=dlfiles
1383        continue
1384        ;;
1385
1386      -dlpreopen)
1387        prev=dlprefiles
1388        continue
1389        ;;
1390
1391      -export-dynamic)
1392        export_dynamic=yes
1393        continue
1394        ;;
1395
1396      -export-symbols | -export-symbols-regex)
1397        if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1398          $echo "$modename: more than one -exported-symbols argument is not allowed"
1399          exit $EXIT_FAILURE
1400        fi
1401        if test "X$arg" = "X-export-symbols"; then
1402          prev=expsyms
1403        else
1404          prev=expsyms_regex
1405        fi
1406        continue
1407        ;;
1408
1409      -inst-prefix-dir)
1410        prev=inst_prefix
1411        continue
1412        ;;
1413
1414      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1415      # so, if we see these flags be careful not to treat them like -L
1416      -L[A-Z][A-Z]*:*)
1417        case $with_gcc/$host in
1418        no/*-*-irix* | /*-*-irix*)
1419          compile_command="$compile_command $arg"
1420          finalize_command="$finalize_command $arg"
1421          ;;
1422        esac
1423        continue
1424        ;;
1425
1426      -L*)
1427        dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1428        # We need an absolute path.
1429        case $dir in
1430        [\\/]* | [A-Za-z]:[\\/]*) ;;
1431        *)
1432          absdir=`cd "$dir" && pwd`
1433          if test -z "$absdir"; then
1434            $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1435            exit $EXIT_FAILURE
1436          fi
1437          dir="$absdir"
1438          ;;
1439        esac
1440        case "$deplibs " in
1441        *" -L$dir "*) ;;
1442        *)
1443          deplibs="$deplibs -L$dir"
1444          lib_search_path="$lib_search_path $dir"
1445          ;;
1446        esac
1447        case $host in
1448        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1449          case :$dllsearchpath: in
1450          *":$dir:"*) ;;
1451          *) dllsearchpath="$dllsearchpath:$dir";;
1452          esac
1453          ;;
1454        esac
1455        continue
1456        ;;
1457
1458      -l*)
1459        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1460          case $host in
1461          *-*-cygwin* | *-*-pw32* | *-*-beos*)
1462            # These systems don't actually have a C or math library (as such)
1463            continue
1464            ;;
1465          *-*-mingw* | *-*-os2*)
1466            # These systems don't actually have a C library (as such)
1467            test "X$arg" = "X-lc" && continue
1468            ;;
1469          *-*-openbsd* | *-*-freebsd*)
1470            # Do not include libc due to us having libc/libc_r.
1471            test "X$arg" = "X-lc" && continue
1472            ;;
1473          *-*-rhapsody* | *-*-darwin1.[012])
1474            # Rhapsody C and math libraries are in the System framework
1475            deplibs="$deplibs -framework System"
1476            continue
1477          esac
1478        elif test "X$arg" = "X-lc_r"; then
1479         case $host in
1480         *-*-openbsd* | *-*-freebsd*)
1481           # Do not include libc_r directly, use -pthread flag.
1482           continue
1483           ;;
1484         esac
1485        fi
1486        deplibs="$deplibs $arg"
1487        continue
1488        ;;
1489
1490     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1491        deplibs="$deplibs $arg"
1492        continue
1493        ;;
1494
1495      -module)
1496        module=yes
1497        continue
1498        ;;
1499
1500      # gcc -m* arguments should be passed to the linker via $compiler_flags
1501      # in order to pass architecture information to the linker
1502      # (e.g. 32 vs 64-bit).  This may also be accomplished via -Wl,-mfoo
1503      # but this is not reliable with gcc because gcc may use -mfoo to
1504      # select a different linker, different libraries, etc, while
1505      # -Wl,-mfoo simply passes -mfoo to the linker.
1506      -m*)
1507        # Unknown arguments in both finalize_command and compile_command need
1508        # to be aesthetically quoted because they are evaled later.
1509        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1510        case $arg in
1511        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
1512          arg="\"$arg\""
1513          ;;
1514        esac
1515        compile_command="$compile_command $arg"
1516        finalize_command="$finalize_command $arg"
1517        if test "$with_gcc" = "yes" ; then
1518          compiler_flags="$compiler_flags $arg"
1519        fi
1520        continue
1521        ;;
1522
1523      -shrext)
1524        prev=shrext
1525        continue
1526        ;;
1527
1528      -no-fast-install)
1529        fast_install=no
1530        continue
1531        ;;
1532
1533      -no-install)
1534        case $host in
1535        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1536          # The PATH hackery in wrapper scripts is required on Windows
1537          # in order for the loader to find any dlls it needs.
1538          $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1539          $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1540          fast_install=no
1541          ;;
1542        *) no_install=yes ;;
1543        esac
1544        continue
1545        ;;
1546
1547      -no-undefined)
1548        allow_undefined=no
1549        continue
1550        ;;
1551
1552      -objectlist)
1553        prev=objectlist
1554        continue
1555        ;;
1556
1557      -o) prev=output ;;
1558
1559      -precious-files-regex)
1560        prev=precious_regex
1561        continue
1562        ;;
1563
1564      -release)
1565        prev=release
1566        continue
1567        ;;
1568
1569      -rpath)
1570        prev=rpath
1571        continue
1572        ;;
1573
1574      -R)
1575        prev=xrpath
1576        continue
1577        ;;
1578
1579      -R*)
1580        dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1581        # We need an absolute path.
1582        case $dir in
1583        [\\/]* | [A-Za-z]:[\\/]*) ;;
1584        *)
1585          $echo "$modename: only absolute run-paths are allowed" 1>&2
1586          exit $EXIT_FAILURE
1587          ;;
1588        esac
1589        case "$xrpath " in
1590        *" $dir "*) ;;
1591        *) xrpath="$xrpath $dir" ;;
1592        esac
1593        continue
1594        ;;
1595
1596      -static)
1597        # The effects of -static are defined in a previous loop.
1598        # We used to do the same as -all-static on platforms that
1599        # didn't have a PIC flag, but the assumption that the effects
1600        # would be equivalent was wrong.  It would break on at least
1601        # Digital Unix and AIX.
1602        continue
1603        ;;
1604
1605      -thread-safe)
1606        thread_safe=yes
1607        continue
1608        ;;
1609
1610      -version-info)
1611        prev=vinfo
1612        continue
1613        ;;
1614      -version-number)
1615        prev=vinfo
1616        vinfo_number=yes
1617        continue
1618        ;;
1619
1620      -Wc,*)
1621        args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1622        arg=
1623        save_ifs="$IFS"; IFS=','
1624        for flag in $args; do
1625          IFS="$save_ifs"
1626          case $flag in
1627            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
1628            flag="\"$flag\""
1629            ;;
1630          esac
1631          arg="$arg $wl$flag"
1632          compiler_flags="$compiler_flags $flag"
1633        done
1634        IFS="$save_ifs"
1635        arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1636        ;;
1637
1638      -Wl,*)
1639        args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1640        arg=
1641        save_ifs="$IFS"; IFS=','
1642        for flag in $args; do
1643          IFS="$save_ifs"
1644          case $flag in
1645            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
1646            flag="\"$flag\""
1647            ;;
1648          esac
1649          arg="$arg $wl$flag"
1650          compiler_flags="$compiler_flags $wl$flag"
1651          linker_flags="$linker_flags $flag"
1652        done
1653        IFS="$save_ifs"
1654        arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1655        ;;
1656
1657      -Xcompiler)
1658        prev=xcompiler
1659        continue
1660        ;;
1661
1662      -Xlinker)
1663        prev=xlinker
1664        continue
1665        ;;
1666
1667      -XCClinker)
1668        prev=xcclinker
1669        continue
1670        ;;
1671
1672      # Some other compiler flag.
1673      -* | +*)
1674        # Unknown arguments in both finalize_command and compile_command need
1675        # to be aesthetically quoted because they are evaled later.
1676        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1677        case $arg in
1678        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
1679          arg="\"$arg\""
1680          ;;
1681        esac
1682        ;;
1683
1684      *.$objext)
1685        # A standard object.
1686        objs="$objs $arg"
1687        ;;
1688
1689      *.lo)
1690        # A libtool-controlled object.
1691
1692        # Check to see that this really is a libtool object.
1693        if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1694          pic_object=
1695          non_pic_object=
1696
1697          # Read the .lo file
1698          # If there is no directory component, then add one.
1699          case $arg in
1700          */* | *\\*) . $arg ;;
1701          *) . ./$arg ;;
1702          esac
1703
1704          if test -z "$pic_object" || \
1705             test -z "$non_pic_object" ||
1706             test "$pic_object" = none && \
1707             test "$non_pic_object" = none; then
1708            $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1709            exit $EXIT_FAILURE
1710          fi
1711
1712          # Extract subdirectory from the argument.
1713          xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1714          if test "X$xdir" = "X$arg"; then
1715            xdir=
1716          else
1717            xdir="$xdir/"
1718          fi
1719
1720          if test "$pic_object" != none; then
1721            # Prepend the subdirectory the object is found in.
1722            pic_object="$xdir$pic_object"
1723
1724            if test "$prev" = dlfiles; then
1725              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1726                dlfiles="$dlfiles $pic_object"
1727                prev=
1728                continue
1729              else
1730                # If libtool objects are unsupported, then we need to preload.
1731                prev=dlprefiles
1732              fi
1733            fi
1734
1735            # CHECK ME:  I think I busted this.  -Ossama
1736            if test "$prev" = dlprefiles; then
1737              # Preload the old-style object.
1738              dlprefiles="$dlprefiles $pic_object"
1739              prev=
1740            fi
1741
1742            # A PIC object.
1743            libobjs="$libobjs $pic_object"
1744            arg="$pic_object"
1745          fi
1746
1747          # Non-PIC object.
1748          if test "$non_pic_object" != none; then
1749            # Prepend the subdirectory the object is found in.
1750            non_pic_object="$xdir$non_pic_object"
1751
1752            # A standard non-PIC object
1753            non_pic_objects="$non_pic_objects $non_pic_object"
1754            if test -z "$pic_object" || test "$pic_object" = none ; then
1755              arg="$non_pic_object"
1756            fi
1757          fi
1758        else
1759          # Only an error if not doing a dry-run.
1760          if test -z "$run"; then
1761            $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1762            exit $EXIT_FAILURE
1763          else
1764            # Dry-run case.
1765
1766            # Extract subdirectory from the argument.
1767            xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1768            if test "X$xdir" = "X$arg"; then
1769              xdir=
1770            else
1771              xdir="$xdir/"
1772            fi
1773
1774            pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1775            non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1776            libobjs="$libobjs $pic_object"
1777            non_pic_objects="$non_pic_objects $non_pic_object"
1778          fi
1779        fi
1780        ;;
1781
1782      *.$libext)
1783        # An archive.
1784        deplibs="$deplibs $arg"
1785        old_deplibs="$old_deplibs $arg"
1786        continue
1787        ;;
1788
1789      *.la)
1790        # A libtool-controlled library.
1791
1792        if test "$prev" = dlfiles; then
1793          # This library was specified with -dlopen.
1794          dlfiles="$dlfiles $arg"
1795          prev=
1796        elif test "$prev" = dlprefiles; then
1797          # The library was specified with -dlpreopen.
1798          dlprefiles="$dlprefiles $arg"
1799          prev=
1800        else
1801          deplibs="$deplibs $arg"
1802        fi
1803        continue
1804        ;;
1805
1806      # Some other compiler argument.
1807      *)
1808        # Unknown arguments in both finalize_command and compile_command need
1809        # to be aesthetically quoted because they are evaled later.
1810        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1811        case $arg in
1812        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
1813          arg="\"$arg\""
1814          ;;
1815        esac
1816        ;;
1817      esac # arg
1818
1819      # Now actually substitute the argument into the commands.
1820      if test -n "$arg"; then
1821        compile_command="$compile_command $arg"
1822        finalize_command="$finalize_command $arg"
1823      fi
1824    done # argument parsing loop
1825
1826    if test -n "$prev"; then
1827      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1828      $echo "$help" 1>&2
1829      exit $EXIT_FAILURE
1830    fi
1831
1832    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1833      eval arg=\"$export_dynamic_flag_spec\"
1834      compile_command="$compile_command $arg"
1835      finalize_command="$finalize_command $arg"
1836    fi
1837
1838    oldlibs=
1839    # calculate the name of the file, without its directory
1840    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1841    libobjs_save="$libobjs"
1842
1843    if test -n "$shlibpath_var"; then
1844      # get the directories listed in $shlibpath_var
1845      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1846    else
1847      shlib_search_path=
1848    fi
1849    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1850    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1851
1852    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1853    if test "X$output_objdir" = "X$output"; then
1854      output_objdir="$objdir"
1855    else
1856      output_objdir="$output_objdir/$objdir"
1857    fi
1858    # Create the object directory.
1859    if test ! -d "$output_objdir"; then
1860      $show "$mkdir $output_objdir"
1861      $run $mkdir $output_objdir
1862      status=$?
1863      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
1864        exit $status
1865      fi
1866    fi
1867
1868    # Determine the type of output
1869    case $output in
1870    "")
1871      $echo "$modename: you must specify an output file" 1>&2
1872      $echo "$help" 1>&2
1873      exit $EXIT_FAILURE
1874      ;;
1875    *.$libext) linkmode=oldlib ;;
1876    *.lo | *.$objext) linkmode=obj ;;
1877    *.la) linkmode=lib ;;
1878    *) linkmode=prog ;; # Anything else should be a program.
1879    esac
1880
1881    case $host in
1882    *cygwin* | *mingw* | *pw32*)
1883      # don't eliminate duplications in $postdeps and $predeps
1884      duplicate_compiler_generated_deps=yes
1885      ;;
1886    *)
1887      duplicate_compiler_generated_deps=$duplicate_deps
1888      ;;
1889    esac
1890    specialdeplibs=
1891
1892    libs=
1893    # Find all interdependent deplibs by searching for libraries
1894    # that are linked more than once (e.g. -la -lb -la)
1895    for deplib in $deplibs; do
1896      if test "X$duplicate_deps" = "Xyes" ; then
1897        case "$libs " in
1898        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1899        esac
1900      fi
1901      libs="$libs $deplib"
1902    done
1903
1904    if test "$linkmode" = lib; then
1905      libs="$predeps $libs $compiler_lib_search_path $postdeps"
1906
1907      # Compute libraries that are listed more than once in $predeps
1908      # $postdeps and mark them as special (i.e., whose duplicates are
1909      # not to be eliminated).
1910      pre_post_deps=
1911      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
1912        for pre_post_dep in $predeps $postdeps; do
1913          case "$pre_post_deps " in
1914          *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
1915          esac
1916          pre_post_deps="$pre_post_deps $pre_post_dep"
1917        done
1918      fi
1919      pre_post_deps=
1920    fi
1921
1922    deplibs=
1923    newdependency_libs=
1924    newlib_search_path=
1925    need_relink=no # whether we're linking any uninstalled libtool libraries
1926    notinst_deplibs= # not-installed libtool libraries
1927    notinst_path= # paths that contain not-installed libtool libraries
1928    case $linkmode in
1929    lib)
1930        passes="conv link"
1931        for file in $dlfiles $dlprefiles; do
1932          case $file in
1933          *.la) ;;
1934          *)
1935            $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1936            exit $EXIT_FAILURE
1937            ;;
1938          esac
1939        done
1940        ;;
1941    prog)
1942        compile_deplibs=
1943        finalize_deplibs=
1944        alldeplibs=no
1945        newdlfiles=
1946        newdlprefiles=
1947        passes="conv scan dlopen dlpreopen link"
1948        ;;
1949    *)  passes="conv"
1950        ;;
1951    esac
1952    for pass in $passes; do
1953      if test "$linkmode,$pass" = "lib,link" ||
1954         test "$linkmode,$pass" = "prog,scan"; then
1955        libs="$deplibs"
1956        deplibs=
1957      fi
1958      if test "$linkmode" = prog; then
1959        case $pass in
1960        dlopen) libs="$dlfiles" ;;
1961        dlpreopen) libs="$dlprefiles" ;;
1962        link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1963        esac
1964      fi
1965      if test "$pass" = dlopen; then
1966        # Collect dlpreopened libraries
1967        save_deplibs="$deplibs"
1968        deplibs=
1969      fi
1970      for deplib in $libs; do
1971        lib=
1972        found=no
1973        case $deplib in
1974        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1975          if test "$linkmode,$pass" = "prog,link"; then
1976            compile_deplibs="$deplib $compile_deplibs"
1977            finalize_deplibs="$deplib $finalize_deplibs"
1978          else
1979            deplibs="$deplib $deplibs"
1980          fi
1981          continue
1982          ;;
1983        -l*)
1984          if test "$linkmode" != lib && test "$linkmode" != prog; then
1985            $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
1986            continue
1987          fi
1988          if test "$pass" = conv; then
1989            deplibs="$deplib $deplibs"
1990            continue
1991          fi
1992          name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1993          for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1994            for search_ext in .la $std_shrext .so .a; do
1995              # Search the libtool library
1996              lib="$searchdir/lib${name}${search_ext}"
1997              if test -f "$lib"; then
1998                if test "$search_ext" = ".la"; then
1999                  found=yes
2000                else
2001                  found=no
2002                fi
2003                break 2
2004              fi
2005            done
2006          done
2007          if test "$found" != yes; then
2008            # deplib doesn't seem to be a libtool library
2009            if test "$linkmode,$pass" = "prog,link"; then
2010              compile_deplibs="$deplib $compile_deplibs"
2011              finalize_deplibs="$deplib $finalize_deplibs"
2012            else
2013              deplibs="$deplib $deplibs"
2014              test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2015            fi
2016            continue
2017          else # deplib is a libtool library
2018            # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2019            # We need to do some special things here, and not later.
2020            if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2021              case " $predeps $postdeps " in
2022              *" $deplib "*)
2023                if (${SED} -e '2q' $lib |
2024                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2025                  library_names=
2026                  old_library=
2027                  case $lib in
2028                  */* | *\\*) . $lib ;;
2029                  *) . ./$lib ;;
2030                  esac
2031                  for l in $old_library $library_names; do
2032                    ll="$l"
2033                  done
2034                  if test "X$ll" = "X$old_library" ; then # only static version available
2035                    found=no
2036                    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2037                    test "X$ladir" = "X$lib" && ladir="."
2038                    lib=$ladir/$old_library
2039                    if test "$linkmode,$pass" = "prog,link"; then
2040                      compile_deplibs="$deplib $compile_deplibs"
2041                      finalize_deplibs="$deplib $finalize_deplibs"
2042                    else
2043                      deplibs="$deplib $deplibs"
2044                      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2045                    fi
2046                    continue
2047                  fi
2048                fi
2049                ;;
2050              *) ;;
2051              esac
2052            fi
2053          fi
2054          ;; # -l
2055        -L*)
2056          case $linkmode in
2057          lib)
2058            deplibs="$deplib $deplibs"
2059            test "$pass" = conv && continue
2060            newdependency_libs="$deplib $newdependency_libs"
2061            newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2062            ;;
2063          prog)
2064            if test "$pass" = conv; then
2065              deplibs="$deplib $deplibs"
2066              continue
2067            fi
2068            if test "$pass" = scan; then
2069              deplibs="$deplib $deplibs"
2070            else
2071              compile_deplibs="$deplib $compile_deplibs"
2072              finalize_deplibs="$deplib $finalize_deplibs"
2073            fi
2074            newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2075            ;;
2076          *)
2077            $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2078            ;;
2079          esac # linkmode
2080          continue
2081          ;; # -L
2082        -R*)
2083          if test "$pass" = link; then
2084            dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2085            # Make sure the xrpath contains only unique directories.
2086            case "$xrpath " in
2087            *" $dir "*) ;;
2088            *) xrpath="$xrpath $dir" ;;
2089            esac
2090          fi
2091          deplibs="$deplib $deplibs"
2092          continue
2093          ;;
2094        *.la) lib="$deplib" ;;
2095        *.$libext)
2096          if test "$pass" = conv; then
2097            deplibs="$deplib $deplibs"
2098            continue
2099          fi
2100          case $linkmode in
2101          lib)
2102            valid_a_lib=no
2103            case $deplibs_check_method in
2104              match_pattern*)
2105                set dummy $deplibs_check_method
2106                match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2107                if eval $echo \"$deplib\" 2>/dev/null \
2108                    | $SED 10q \
2109                    | $EGREP "$match_pattern_regex" > /dev/null; then
2110                  valid_a_lib=yes
2111                fi
2112                ;;
2113              pass_all)
2114                valid_a_lib=yes
2115                ;;
2116            esac
2117            if test "$valid_a_lib" != yes; then
2118              $echo
2119              $echo "*** Warning: Trying to link with static lib archive $deplib."
2120              $echo "*** I have the capability to make that library automatically link in when"
2121              $echo "*** you link to this library.  But I can only do this if you have a"
2122              $echo "*** shared version of the library, which you do not appear to have"
2123              $echo "*** because the file extensions .$libext of this argument makes me believe"
2124              $echo "*** that it is just a static archive that I should not used here."
2125            else
2126              $echo
2127              $echo "*** Warning: Linking the shared library $output against the"
2128              $echo "*** static library $deplib is not portable!"
2129              deplibs="$deplib $deplibs"
2130            fi
2131            continue
2132            ;;
2133          prog)
2134            if test "$pass" != link; then
2135              deplibs="$deplib $deplibs"
2136            else
2137              compile_deplibs="$deplib $compile_deplibs"
2138              finalize_deplibs="$deplib $finalize_deplibs"
2139            fi
2140            continue
2141            ;;
2142          esac # linkmode
2143          ;; # *.$libext
2144        *.lo | *.$objext)
2145          if test "$pass" = conv; then
2146            deplibs="$deplib $deplibs"
2147          elif test "$linkmode" = prog; then
2148            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2149              # If there is no dlopen support or we're linking statically,
2150              # we need to preload.
2151              newdlprefiles="$newdlprefiles $deplib"
2152              compile_deplibs="$deplib $compile_deplibs"
2153              finalize_deplibs="$deplib $finalize_deplibs"
2154            else
2155              newdlfiles="$newdlfiles $deplib"
2156            fi
2157          fi
2158          continue
2159          ;;
2160        %DEPLIBS%)
2161          alldeplibs=yes
2162          continue
2163          ;;
2164        esac # case $deplib
2165        if test "$found" = yes || test -f "$lib"; then :
2166        else
2167          $echo "$modename: cannot find the library \`$lib'" 1>&2
2168          exit $EXIT_FAILURE
2169        fi
2170
2171        # Check to see that this really is a libtool archive.
2172        if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2173        else
2174          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2175          exit $EXIT_FAILURE
2176        fi
2177
2178        ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2179        test "X$ladir" = "X$lib" && ladir="."
2180
2181        dlname=
2182        dlopen=
2183        dlpreopen=
2184        libdir=
2185        library_names=
2186        old_library=
2187        # If the library was installed with an old release of libtool,
2188        # it will not redefine variables installed, or shouldnotlink
2189        installed=yes
2190        shouldnotlink=no
2191
2192        # Read the .la file
2193        case $lib in
2194        */* | *\\*) . $lib ;;
2195        *) . ./$lib ;;
2196        esac
2197
2198        if test "$linkmode,$pass" = "lib,link" ||
2199           test "$linkmode,$pass" = "prog,scan" ||
2200           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2201          test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2202          test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2203        fi
2204
2205        if test "$pass" = conv; then
2206          # Only check for convenience libraries
2207          deplibs="$lib $deplibs"
2208          if test -z "$libdir"; then
2209            if test -z "$old_library"; then
2210              $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2211              exit $EXIT_FAILURE
2212            fi
2213            # It is a libtool convenience library, so add in its objects.
2214            convenience="$convenience $ladir/$objdir/$old_library"
2215            old_convenience="$old_convenience $ladir/$objdir/$old_library"
2216            tmp_libs=
2217            for deplib in $dependency_libs; do
2218              deplibs="$deplib $deplibs"
2219              if test "X$duplicate_deps" = "Xyes" ; then
2220                case "$tmp_libs " in
2221                *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2222                esac
2223              fi
2224              tmp_libs="$tmp_libs $deplib"
2225            done
2226          elif test "$linkmode" != prog && test "$linkmode" != lib; then
2227            $echo "$modename: \`$lib' is not a convenience library" 1>&2
2228            exit $EXIT_FAILURE
2229          fi
2230          continue
2231        fi # $pass = conv
2232
2233
2234        # Get the name of the library we link against.
2235        linklib=
2236        for l in $old_library $library_names; do
2237          linklib="$l"
2238        done
2239        if test -z "$linklib"; then
2240          $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2241          exit $EXIT_FAILURE
2242        fi
2243
2244        # This library was specified with -dlopen.
2245        if test "$pass" = dlopen; then
2246          if test -z "$libdir"; then
2247            $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2248            exit $EXIT_FAILURE
2249          fi
2250          if test -z "$dlname" ||
2251             test "$dlopen_support" != yes ||
2252             test "$build_libtool_libs" = no; then
2253            # If there is no dlname, no dlopen support or we're linking
2254            # statically, we need to preload.  We also need to preload any
2255            # dependent libraries so libltdl's deplib preloader doesn't
2256            # bomb out in the load deplibs phase.
2257            dlprefiles="$dlprefiles $lib $dependency_libs"
2258          else
2259            newdlfiles="$newdlfiles $lib"
2260          fi
2261          continue
2262        fi # $pass = dlopen
2263
2264        # We need an absolute path.
2265        case $ladir in
2266        [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2267        *)
2268          abs_ladir=`cd "$ladir" && pwd`
2269          if test -z "$abs_ladir"; then
2270            $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2271            $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2272            abs_ladir="$ladir"
2273          fi
2274          ;;
2275        esac
2276        laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2277
2278        # Find the relevant object directory and library name.
2279        if test "X$installed" = Xyes; then
2280          if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2281            $echo "$modename: warning: library \`$lib' was moved." 1>&2
2282            dir="$ladir"
2283            absdir="$abs_ladir"
2284            libdir="$abs_ladir"
2285          else
2286            dir="$libdir"
2287            absdir="$libdir"
2288          fi
2289        else
2290          if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2291            dir="$ladir"
2292            absdir="$abs_ladir"
2293            # Remove this search path later
2294            notinst_path="$notinst_path $abs_ladir"
2295          else
2296            dir="$ladir/$objdir"
2297            absdir="$abs_ladir/$objdir"
2298            # Remove this search path later
2299            notinst_path="$notinst_path $abs_ladir"
2300          fi
2301        fi # $installed = yes
2302        name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2303
2304        # This library was specified with -dlpreopen.
2305        if test "$pass" = dlpreopen; then
2306          if test -z "$libdir"; then
2307            $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2308            exit $EXIT_FAILURE
2309          fi
2310          # Prefer using a static library (so that no silly _DYNAMIC symbols
2311          # are required to link).
2312          if test -n "$old_library"; then
2313            newdlprefiles="$newdlprefiles $dir/$old_library"
2314          # Otherwise, use the dlname, so that lt_dlopen finds it.
2315          elif test -n "$dlname"; then
2316            newdlprefiles="$newdlprefiles $dir/$dlname"
2317          else
2318            newdlprefiles="$newdlprefiles $dir/$linklib"
2319          fi
2320        fi # $pass = dlpreopen
2321
2322        if test -z "$libdir"; then
2323          # Link the convenience library
2324          if test "$linkmode" = lib; then
2325            deplibs="$dir/$old_library $deplibs"
2326          elif test "$linkmode,$pass" = "prog,link"; then
2327            compile_deplibs="$dir/$old_library $compile_deplibs"
2328            finalize_deplibs="$dir/$old_library $finalize_deplibs"
2329          else
2330            deplibs="$lib $deplibs" # used for prog,scan pass
2331          fi
2332          continue
2333        fi
2334
2335
2336        if test "$linkmode" = prog && test "$pass" != link; then
2337          newlib_search_path="$newlib_search_path $ladir"
2338          deplibs="$lib $deplibs"
2339
2340          linkalldeplibs=no
2341          if test "$link_all_deplibs" != no || test -z "$library_names" ||
2342             test "$build_libtool_libs" = no; then
2343            linkalldeplibs=yes
2344          fi
2345
2346          tmp_libs=
2347          for deplib in $dependency_libs; do
2348            case $deplib in
2349            -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2350            esac
2351            # Need to link against all dependency_libs?
2352            if test "$linkalldeplibs" = yes; then
2353              deplibs="$deplib $deplibs"
2354            else
2355              # Need to hardcode shared library paths
2356              # or/and link against static libraries
2357              newdependency_libs="$deplib $newdependency_libs"
2358            fi
2359            if test "X$duplicate_deps" = "Xyes" ; then
2360              case "$tmp_libs " in
2361              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2362              esac
2363            fi
2364            tmp_libs="$tmp_libs $deplib"
2365          done # for deplib
2366          continue
2367        fi # $linkmode = prog...
2368
2369        if test "$linkmode,$pass" = "prog,link"; then
2370          if test -n "$library_names" &&
2371             { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2372            # We need to hardcode the library path
2373            if test -n "$shlibpath_var"; then
2374              # Make sure the rpath contains only unique directories.
2375              case "$temp_rpath " in
2376              *" $dir "*) ;;
2377              *" $absdir "*) ;;
2378              *) temp_rpath="$temp_rpath $dir" ;;
2379              esac
2380            fi
2381
2382            # Hardcode the library path.
2383            # Skip directories that are in the system default run-time
2384            # search path.
2385            case " $sys_lib_dlsearch_path " in
2386            *" $absdir "*) ;;
2387            *)
2388              case "$compile_rpath " in
2389              *" $absdir "*) ;;
2390              *) compile_rpath="$compile_rpath $absdir"
2391              esac
2392              ;;
2393            esac
2394            case " $sys_lib_dlsearch_path " in
2395            *" $libdir "*) ;;
2396            *)
2397              case "$finalize_rpath " in
2398              *" $libdir "*) ;;
2399              *) finalize_rpath="$finalize_rpath $libdir"
2400              esac
2401              ;;
2402            esac
2403          fi # $linkmode,$pass = prog,link...
2404
2405          if test "$alldeplibs" = yes &&
2406             { test "$deplibs_check_method" = pass_all ||
2407               { test "$build_libtool_libs" = yes &&
2408                 test -n "$library_names"; }; }; then
2409            # We only need to search for static libraries
2410            continue
2411          fi
2412        fi
2413
2414        link_static=no # Whether the deplib will be linked statically
2415        if test -n "$library_names" &&
2416           { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2417          if test "$installed" = no; then
2418            notinst_deplibs="$notinst_deplibs $lib"
2419            need_relink=yes
2420          fi
2421          # This is a shared library
2422
2423          # Warn about portability, can't link against -module's on
2424          # some systems (darwin)
2425          if test "$shouldnotlink" = yes && test "$pass" = link ; then
2426            $echo
2427            if test "$linkmode" = prog; then
2428              $echo "*** Warning: Linking the executable $output against the loadable module"
2429            else
2430              $echo "*** Warning: Linking the shared library $output against the loadable module"
2431            fi
2432            $echo "*** $linklib is not portable!"
2433          fi
2434          if test "$linkmode" = lib &&
2435             test "$hardcode_into_libs" = yes; then
2436            # Hardcode the library path.
2437            # Skip directories that are in the system default run-time
2438            # search path.
2439            case " $sys_lib_dlsearch_path " in
2440            *" $absdir "*) ;;
2441            *)
2442              case "$compile_rpath " in
2443              *" $absdir "*) ;;
2444              *) compile_rpath="$compile_rpath $absdir"
2445              esac
2446              ;;
2447            esac
2448            case " $sys_lib_dlsearch_path " in
2449            *" $libdir "*) ;;
2450            *)
2451              case "$finalize_rpath " in
2452              *" $libdir "*) ;;
2453              *) finalize_rpath="$finalize_rpath $libdir"
2454              esac
2455              ;;
2456            esac
2457          fi
2458
2459          if test -n "$old_archive_from_expsyms_cmds"; then
2460            # figure out the soname
2461            set dummy $library_names
2462            realname="$2"
2463            shift; shift
2464            libname=`eval \\$echo \"$libname_spec\"`
2465            # use dlname if we got it. it's perfectly good, no?
2466            if test -n "$dlname"; then
2467              soname="$dlname"
2468            elif test -n "$soname_spec"; then
2469              # bleh windows
2470              case $host in
2471              *cygwin* | mingw*)
2472                major=`expr $current - $age`
2473                versuffix="-$major"
2474                ;;
2475              esac
2476              eval soname=\"$soname_spec\"
2477            else
2478              soname="$realname"
2479            fi
2480
2481            # Make a new name for the extract_expsyms_cmds to use
2482            soroot="$soname"
2483            soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2484            newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2485
2486            # If the library has no export list, then create one now
2487            if test -f "$output_objdir/$soname-def"; then :
2488            else
2489              $show "extracting exported symbol list from \`$soname'"
2490              save_ifs="$IFS"; IFS='~'
2491              cmds=$extract_expsyms_cmds
2492              for cmd in $cmds; do
2493                IFS="$save_ifs"
2494                eval cmd=\"$cmd\"
2495                $show "$cmd"
2496                $run eval "$cmd" || exit $?
2497              done
2498              IFS="$save_ifs"
2499            fi
2500
2501            # Create $newlib
2502            if test -f "$output_objdir/$newlib"; then :; else
2503              $show "generating import library for \`$soname'"
2504              save_ifs="$IFS"; IFS='~'
2505              cmds=$old_archive_from_expsyms_cmds
2506              for cmd in $cmds; do
2507                IFS="$save_ifs"
2508                eval cmd=\"$cmd\"
2509                $show "$cmd"
2510                $run eval "$cmd" || exit $?
2511              done
2512              IFS="$save_ifs"
2513            fi
2514            # make sure the library variables are pointing to the new library
2515            dir=$output_objdir
2516            linklib=$newlib
2517          fi # test -n "$old_archive_from_expsyms_cmds"
2518
2519          if test "$linkmode" = prog || test "$mode" != relink; then
2520            add_shlibpath=
2521            add_dir=
2522            add=
2523            lib_linked=yes
2524            case $hardcode_action in
2525            immediate | unsupported)
2526              if test "$hardcode_direct" = no; then
2527                add="$dir/$linklib"
2528                case $host in
2529                  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
2530                  *-*-darwin* )
2531                    # if the lib is a module then we can not link against
2532                    # it, someone is ignoring the new warnings I added
2533                    if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
2534                      $echo "** Warning, lib $linklib is a module, not a shared library"
2535                      if test -z "$old_library" ; then
2536                        $echo
2537                        $echo "** And there doesn't seem to be a static archive available"
2538                        $echo "** The link will probably fail, sorry"
2539                      else
2540                        add="$dir/$old_library"
2541                      fi
2542                    fi
2543                esac
2544              elif test "$hardcode_minus_L" = no; then
2545                case $host in
2546                *-*-sunos*) add_shlibpath="$dir" ;;
2547                esac
2548                add_dir="-L$dir"
2549                add="-l$name"
2550              elif test "$hardcode_shlibpath_var" = no; then
2551                add_shlibpath="$dir"
2552                add="-l$name"
2553              else
2554                lib_linked=no
2555              fi
2556              ;;
2557            relink)
2558              if test "$hardcode_direct" = yes; then
2559                add="$dir/$linklib"
2560              elif test "$hardcode_minus_L" = yes; then
2561                add_dir="-L$dir"
2562                # Try looking first in the location we're being installed to.
2563                if test -n "$inst_prefix_dir"; then
2564                  case "$libdir" in
2565                    [\\/]*)
2566                      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2567                      ;;
2568                  esac
2569                fi
2570                add="-l$name"
2571              elif test "$hardcode_shlibpath_var" = yes; then
2572                add_shlibpath="$dir"
2573                add="-l$name"
2574              else
2575                lib_linked=no
2576              fi
2577              ;;
2578            *) lib_linked=no ;;
2579            esac
2580
2581            if test "$lib_linked" != yes; then
2582              $echo "$modename: configuration error: unsupported hardcode properties"
2583              exit $EXIT_FAILURE
2584            fi
2585
2586            if test -n "$add_shlibpath"; then
2587              case :$compile_shlibpath: in
2588              *":$add_shlibpath:"*) ;;
2589              *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2590              esac
2591            fi
2592            if test "$linkmode" = prog; then
2593              test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2594              test -n "$add" && compile_deplibs="$add $compile_deplibs"
2595            else
2596              test -n "$add_dir" && deplibs="$add_dir $deplibs"
2597              test -n "$add" && deplibs="$add $deplibs"
2598              if test "$hardcode_direct" != yes && \
2599                 test "$hardcode_minus_L" != yes && \
2600                 test "$hardcode_shlibpath_var" = yes; then
2601                case :$finalize_shlibpath: in
2602                *":$libdir:"*) ;;
2603                *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2604                esac
2605              fi
2606            fi
2607          fi
2608
2609          if test "$linkmode" = prog || test "$mode" = relink; then
2610            add_shlibpath=
2611            add_dir=
2612            add=
2613            # Finalize command for both is simple: just hardcode it.
2614            if test "$hardcode_direct" = yes; then
2615              add="$libdir/$linklib"
2616            elif test "$hardcode_minus_L" = yes; then
2617              add_dir="-L$libdir"
2618              add="-l$name"
2619            elif test "$hardcode_shlibpath_var" = yes; then
2620              case :$finalize_shlibpath: in
2621              *":$libdir:"*) ;;
2622              *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2623              esac
2624              add="-l$name"
2625            elif test "$hardcode_automatic" = yes; then
2626              if test -n "$inst_prefix_dir" &&
2627                 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2628                add="$inst_prefix_dir$libdir/$linklib"
2629              else
2630                add="$libdir/$linklib"
2631              fi
2632            else
2633              # We cannot seem to hardcode it, guess we'll fake it.
2634              add_dir="-L$libdir"
2635              # Try looking first in the location we're being installed to.
2636              if test -n "$inst_prefix_dir"; then
2637                case "$libdir" in
2638                  [\\/]*)
2639                    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2640                    ;;
2641                esac
2642              fi
2643              add="-l$name"
2644            fi
2645
2646            if test "$linkmode" = prog; then
2647              test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2648              test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2649            else
2650              test -n "$add_dir" && deplibs="$add_dir $deplibs"
2651              test -n "$add" && deplibs="$add $deplibs"
2652            fi
2653          fi
2654        elif test "$linkmode" = prog; then
2655          # Here we assume that one of hardcode_direct or hardcode_minus_L
2656          # is not unsupported.  This is valid on all known static and
2657          # shared platforms.
2658          if test "$hardcode_direct" != unsupported; then
2659            test -n "$old_library" && linklib="$old_library"
2660            compile_deplibs="$dir/$linklib $compile_deplibs"
2661            finalize_deplibs="$dir/$linklib $finalize_deplibs"
2662          else
2663            compile_deplibs="-l$name -L$dir $compile_deplibs"
2664            finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2665          fi
2666        elif test "$build_libtool_libs" = yes; then
2667          # Not a shared library
2668          if test "$deplibs_check_method" != pass_all; then
2669            # We're trying link a shared library against a static one
2670            # but the system doesn't support it.
2671
2672            # Just print a warning and add the library to dependency_libs so
2673            # that the program can be linked against the static library.
2674            $echo
2675            $echo "*** Warning: This system can not link to static lib archive $lib."
2676            $echo "*** I have the capability to make that library automatically link in when"
2677            $echo "*** you link to this library.  But I can only do this if you have a"
2678            $echo "*** shared version of the library, which you do not appear to have."
2679            if test "$module" = yes; then
2680              $echo "*** But as you try to build a module library, libtool will still create "
2681              $echo "*** a static module, that should work as long as the dlopening application"
2682              $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2683              if test -z "$global_symbol_pipe"; then
2684                $echo
2685                $echo "*** However, this would only work if libtool was able to extract symbol"
2686                $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2687                $echo "*** not find such a program.  So, this module is probably useless."
2688                $echo "*** \`nm' from GNU binutils and a full rebuild may help."
2689              fi
2690              if test "$build_old_libs" = no; then
2691                build_libtool_libs=module
2692                build_old_libs=yes
2693              else
2694                build_libtool_libs=no
2695              fi
2696            fi
2697          else
2698            convenience="$convenience $dir/$old_library"
2699            old_convenience="$old_convenience $dir/$old_library"
2700            deplibs="$dir/$old_library $deplibs"
2701            link_static=yes
2702          fi
2703        fi # link shared/static library?
2704
2705        if test "$linkmode" = lib; then
2706          if test -n "$dependency_libs" &&
2707             { test "$hardcode_into_libs" != yes ||
2708               test "$build_old_libs" = yes ||
2709               test "$link_static" = yes; }; then
2710            # Extract -R from dependency_libs
2711            temp_deplibs=
2712            for libdir in $dependency_libs; do
2713              case $libdir in
2714              -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2715                   case " $xrpath " in
2716                   *" $temp_xrpath "*) ;;
2717                   *) xrpath="$xrpath $temp_xrpath";;
2718                   esac;;
2719              *) temp_deplibs="$temp_deplibs $libdir";;
2720              esac
2721            done
2722            dependency_libs="$temp_deplibs"
2723          fi
2724
2725          newlib_search_path="$newlib_search_path $absdir"
2726          # Link against this library
2727          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2728          # ... and its dependency_libs
2729          tmp_libs=
2730          for deplib in $dependency_libs; do
2731            newdependency_libs="$deplib $newdependency_libs"
2732            if test "X$duplicate_deps" = "Xyes" ; then
2733              case "$tmp_libs " in
2734              *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2735              esac
2736            fi
2737            tmp_libs="$tmp_libs $deplib"
2738          done
2739
2740          if test "$link_all_deplibs" != no; then
2741            # Add the search paths of all dependency libraries
2742            for deplib in $dependency_libs; do
2743              case $deplib in
2744              -L*) path="$deplib" ;;
2745              *.la)
2746                dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2747                test "X$dir" = "X$deplib" && dir="."
2748                # We need an absolute path.
2749                case $dir in
2750                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2751                *)
2752                  absdir=`cd "$dir" && pwd`
2753                  if test -z "$absdir"; then
2754                    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2755                    absdir="$dir"
2756                  fi
2757                  ;;
2758                esac
2759                if grep "^installed=no" $deplib > /dev/null; then
2760                  path="$absdir/$objdir"
2761                else
2762                  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2763                  if test -z "$libdir"; then
2764                    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2765                    exit $EXIT_FAILURE
2766                  fi
2767                  if test "$absdir" != "$libdir"; then
2768                    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2769                  fi
2770                  path="$absdir"
2771                fi
2772                depdepl=
2773                case $host in
2774                *-*-darwin*)
2775                  # we do not want to link against static libs,
2776                  # but need to link against shared
2777                  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2778                  if test -n "$deplibrary_names" ; then
2779                    for tmp in $deplibrary_names ; do
2780                      depdepl=$tmp
2781                    done
2782                    if test -f "$path/$depdepl" ; then
2783                      depdepl="$path/$depdepl"
2784                    fi
2785                    # do not add paths which are already there
2786                    case " $newlib_search_path " in
2787                    *" $path "*) ;;
2788                    *) newlib_search_path="$newlib_search_path $path";;
2789                    esac
2790                  fi
2791                  path=""
2792                  ;;
2793                *)
2794                  path="-L$path"
2795                  ;;
2796                esac
2797                ;;
2798              -l*)
2799                case $host in
2800                *-*-darwin*)
2801                  # Again, we only want to link against shared libraries
2802                  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2803                  for tmp in $newlib_search_path ; do
2804                    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2805                      eval depdepl="$tmp/lib$tmp_libs.dylib"
2806                      break
2807                    fi
2808                  done
2809                  path=""
2810                  ;;
2811                *) continue ;;
2812                esac
2813                ;;
2814              *) continue ;;
2815              esac
2816              case " $deplibs " in
2817              *" $depdepl "*) ;;
2818              *) deplibs="$depdepl $deplibs" ;;
2819              esac
2820              case " $deplibs " in
2821              *" $path "*) ;;
2822              *) deplibs="$deplibs $path" ;;
2823              esac
2824            done
2825          fi # link_all_deplibs != no
2826        fi # linkmode = lib
2827      done # for deplib in $libs
2828      dependency_libs="$newdependency_libs"
2829      if test "$pass" = dlpreopen; then
2830        # Link the dlpreopened libraries before other libraries
2831        for deplib in $save_deplibs; do
2832          deplibs="$deplib $deplibs"
2833        done
2834      fi
2835      if test "$pass" != dlopen; then
2836        if test "$pass" != conv; then
2837          # Make sure lib_search_path contains only unique directories.
2838          lib_search_path=
2839          for dir in $newlib_search_path; do
2840            case "$lib_search_path " in
2841            *" $dir "*) ;;
2842            *) lib_search_path="$lib_search_path $dir" ;;
2843            esac
2844          done
2845          newlib_search_path=
2846        fi
2847
2848        if test "$linkmode,$pass" != "prog,link"; then
2849          vars="deplibs"
2850        else
2851          vars="compile_deplibs finalize_deplibs"
2852        fi
2853        for var in $vars dependency_libs; do
2854          # Add libraries to $var in reverse order
2855          eval tmp_libs=\"\$$var\"
2856          new_libs=
2857          for deplib in $tmp_libs; do
2858            # FIXME: Pedantically, this is the right thing to do, so
2859            #        that some nasty dependency loop isn't accidentally
2860            #        broken:
2861            #new_libs="$deplib $new_libs"
2862            # Pragmatically, this seems to cause very few problems in
2863            # practice:
2864            case $deplib in
2865            -L*) new_libs="$deplib $new_libs" ;;
2866            -R*) ;;
2867            *)
2868              # And here is the reason: when a library appears more
2869              # than once as an explicit dependence of a library, or
2870              # is implicitly linked in more than once by the
2871              # compiler, it is considered special, and multiple
2872              # occurrences thereof are not removed.  Compare this
2873              # with having the same library being listed as a
2874              # dependency of multiple other libraries: in this case,
2875              # we know (pedantically, we assume) the library does not
2876              # need to be listed more than once, so we keep only the
2877              # last copy.  This is not always right, but it is rare
2878              # enough that we require users that really mean to play
2879              # such unportable linking tricks to link the library
2880              # using -Wl,-lname, so that libtool does not consider it
2881              # for duplicate removal.
2882              case " $specialdeplibs " in
2883              *" $deplib "*) new_libs="$deplib $new_libs" ;;
2884              *)
2885                case " $new_libs " in
2886                *" $deplib "*) ;;
2887                *) new_libs="$deplib $new_libs" ;;
2888                esac
2889                ;;
2890              esac
2891              ;;
2892            esac
2893          done
2894          tmp_libs=
2895          for deplib in $new_libs; do
2896            case $deplib in
2897            -L*)
2898              case " $tmp_libs " in
2899              *" $deplib "*) ;;
2900              *) tmp_libs="$tmp_libs $deplib" ;;
2901              esac
2902              ;;
2903            *) tmp_libs="$tmp_libs $deplib" ;;
2904            esac
2905          done
2906          eval $var=\"$tmp_libs\"
2907        done # for var
2908      fi
2909      # Last step: remove runtime libs from dependency_libs
2910      # (they stay in deplibs)
2911      tmp_libs=
2912      for i in $dependency_libs ; do
2913        case " $predeps $postdeps $compiler_lib_search_path " in
2914        *" $i "*)
2915          i=""
2916          ;;
2917        esac
2918        if test -n "$i" ; then
2919          tmp_libs="$tmp_libs $i"
2920        fi
2921      done
2922      dependency_libs=$tmp_libs
2923    done # for pass
2924    if test "$linkmode" = prog; then
2925      dlfiles="$newdlfiles"
2926      dlprefiles="$newdlprefiles"
2927    fi
2928
2929    case $linkmode in
2930    oldlib)
2931      if test -n "$deplibs"; then
2932        $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2933      fi
2934
2935      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2936        $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2937      fi
2938
2939      if test -n "$rpath"; then
2940        $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2941      fi
2942
2943      if test -n "$xrpath"; then
2944        $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2945      fi
2946
2947      if test -n "$vinfo"; then
2948        $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
2949      fi
2950
2951      if test -n "$release"; then
2952        $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2953      fi
2954
2955      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2956        $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2957      fi
2958
2959      # Now set the variables for building old libraries.
2960      build_libtool_libs=no
2961      oldlibs="$output"
2962      objs="$objs$old_deplibs"
2963      ;;
2964
2965    lib)
2966      # Make sure we only generate libraries of the form `libNAME.la'.
2967      case $outputname in
2968      lib*)
2969        name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2970        eval shared_ext=\"$shrext_cmds\"
2971        eval libname=\"$libname_spec\"
2972        ;;
2973      *)
2974        if test "$module" = no; then
2975          $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2976          $echo "$help" 1>&2
2977          exit $EXIT_FAILURE
2978        fi
2979        if test "$need_lib_prefix" != no; then
2980          # Add the "lib" prefix for modules if required
2981          name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2982          eval shared_ext=\"$shrext_cmds\"
2983          eval libname=\"$libname_spec\"
2984        else
2985          libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2986        fi
2987        ;;
2988      esac
2989
2990      if test -n "$objs"; then
2991        if test "$deplibs_check_method" != pass_all; then
2992          $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2993          exit $EXIT_FAILURE
2994        else
2995          $echo
2996          $echo "*** Warning: Linking the shared library $output against the non-libtool"
2997          $echo "*** objects $objs is not portable!"
2998          libobjs="$libobjs $objs"
2999        fi
3000      fi
3001
3002      if test "$dlself" != no; then
3003        $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3004      fi
3005
3006      set dummy $rpath
3007      if test "$#" -gt 2; then
3008        $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3009      fi
3010      install_libdir="$2"
3011
3012      oldlibs=
3013      if test -z "$rpath"; then
3014        if test "$build_libtool_libs" = yes; then
3015          # Building a libtool convenience library.
3016          # Some compilers have problems with a `.al' extension so
3017          # convenience libraries should have the same extension an
3018          # archive normally would.
3019          oldlibs="$output_objdir/$libname.$libext $oldlibs"
3020          build_libtool_libs=convenience
3021          build_old_libs=yes
3022        fi
3023
3024        if test -n "$vinfo"; then
3025          $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3026        fi
3027
3028        if test -n "$release"; then
3029          $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3030        fi
3031      else
3032
3033        # Parse the version information argument.
3034        save_ifs="$IFS"; IFS=':'
3035        set dummy $vinfo 0 0 0
3036        IFS="$save_ifs"
3037
3038        if test -n "$8"; then
3039          $echo "$modename: too many parameters to \`-version-info'" 1>&2
3040          $echo "$help" 1>&2
3041          exit $EXIT_FAILURE
3042        fi
3043
3044        # convert absolute version numbers to libtool ages
3045        # this retains compatibility with .la files and attempts
3046        # to make the code below a bit more comprehensible
3047
3048        case $vinfo_number in
3049        yes)
3050          number_major="$2"
3051          number_minor="$3"
3052          number_revision="$4"
3053          #
3054          # There are really only two kinds -- those that
3055          # use the current revision as the major version
3056          # and those that subtract age and use age as
3057          # a minor version.  But, then there is irix
3058          # which has an extra 1 added just for fun
3059          #
3060          case $version_type in
3061          darwin|linux|osf|windows)
3062            current=`expr $number_major + $number_minor`
3063            age="$number_minor"
3064            revision="$number_revision"
3065            ;;
3066          freebsd-aout|freebsd-elf|sunos)
3067            current="$number_major"
3068            revision="$number_minor"
3069            age="0"
3070            ;;
3071          irix|nonstopux)
3072            current=`expr $number_major + $number_minor - 1`
3073            age="$number_minor"
3074            revision="$number_minor"
3075            ;;
3076          esac
3077          ;;
3078        no)
3079          current="$2"
3080          revision="$3"
3081          age="$4"
3082          ;;
3083        esac
3084
3085        # Check that each of the things are valid numbers.
3086        case $current in
3087        0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
3088        *)
3089          $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
3090          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3091          exit $EXIT_FAILURE
3092          ;;
3093        esac
3094
3095        case $revision in
3096        0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
3097        *)
3098          $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
3099          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3100          exit $EXIT_FAILURE
3101          ;;
3102        esac
3103
3104        case $age in
3105        0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
3106        *)
3107          $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
3108          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3109          exit $EXIT_FAILURE
3110          ;;
3111        esac
3112
3113        if test "$age" -gt "$current"; then
3114          $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3115          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3116          exit $EXIT_FAILURE
3117        fi
3118
3119        # Calculate the version variables.
3120        major=
3121        versuffix=
3122        verstring=
3123        case $version_type in
3124        none) ;;
3125
3126        darwin)
3127          # Like Linux, but with the current version available in
3128          # verstring for coding it into the library header
3129          major=.`expr $current - $age`
3130          versuffix="$major.$age.$revision"
3131          # Darwin ld doesn't like 0 for these options...
3132          minor_current=`expr $current + 1`
3133          verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3134          ;;
3135
3136        freebsd-aout)
3137          major=".$current"
3138          versuffix=".$current.$revision";
3139          ;;
3140
3141        freebsd-elf)
3142          major=".$current"
3143          versuffix=".$current";
3144          ;;
3145
3146        irix | nonstopux)
3147          major=`expr $current - $age + 1`
3148
3149          case $version_type in
3150            nonstopux) verstring_prefix=nonstopux ;;
3151            *)         verstring_prefix=sgi ;;
3152          esac
3153          verstring="$verstring_prefix$major.$revision"
3154
3155          # Add in all the interfaces that we are compatible with.
3156          loop=$revision
3157          while test "$loop" -ne 0; do
3158            iface=`expr $revision - $loop`
3159            loop=`expr $loop - 1`
3160            verstring="$verstring_prefix$major.$iface:$verstring"
3161          done
3162
3163          # Before this point, $major must not contain `.'.
3164          major=.$major
3165          versuffix="$major.$revision"
3166          ;;
3167
3168        linux)
3169          major=.`expr $current - $age`
3170          versuffix="$major.$age.$revision"
3171          ;;
3172
3173        osf)
3174          major=.`expr $current - $age`
3175          versuffix=".$current.$age.$revision"
3176          verstring="$current.$age.$revision"
3177
3178          # Add in all the interfaces that we are compatible with.
3179          loop=$age
3180          while test "$loop" -ne 0; do
3181            iface=`expr $current - $loop`
3182            loop=`expr $loop - 1`
3183            verstring="$verstring:${iface}.0"
3184          done
3185
3186          # Make executables depend on our current version.
3187          verstring="$verstring:${current}.0"
3188          ;;
3189
3190        sunos)
3191          major=".$current"
3192          versuffix=".$current.$revision"
3193          ;;
3194
3195        windows)
3196          # Use '-' rather than '.', since we only want one
3197          # extension on DOS 8.3 filesystems.
3198          major=`expr $current - $age`
3199          versuffix="-$major"
3200          ;;
3201
3202        *)
3203          $echo "$modename: unknown library version type \`$version_type'" 1>&2
3204          $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3205          exit $EXIT_FAILURE
3206          ;;
3207        esac
3208
3209        # Clear the version info if we defaulted, and they specified a release.
3210        if test -z "$vinfo" && test -n "$release"; then
3211          major=
3212          case $version_type in
3213          darwin)
3214            # we can't check for "0.0" in archive_cmds due to quoting
3215            # problems, so we reset it completely
3216            verstring=
3217            ;;
3218          *)
3219            verstring="0.0"
3220            ;;
3221          esac
3222          if test "$need_version" = no; then
3223            versuffix=
3224          else
3225            versuffix=".0.0"
3226          fi
3227        fi
3228
3229        # Remove version info from name if versioning should be avoided
3230        if test "$avoid_version" = yes && test "$need_version" = no; then
3231          major=
3232          versuffix=
3233          verstring=""
3234        fi
3235
3236        # Check to see if the archive will have undefined symbols.
3237        if test "$allow_undefined" = yes; then
3238          if test "$allow_undefined_flag" = unsupported; then
3239            $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3240            build_libtool_libs=no
3241            build_old_libs=yes
3242          fi
3243        else
3244          # Don't allow undefined symbols.
3245          allow_undefined_flag="$no_undefined_flag"
3246        fi
3247      fi
3248
3249      if test "$mode" != relink; then
3250        # Remove our outputs, but don't remove object files since they
3251        # may have been created when compiling PIC objects.
3252        removelist=
3253        tempremovelist=`$echo "$output_objdir/*"`
3254        for p in $tempremovelist; do
3255          case $p in
3256            *.$objext)
3257               ;;
3258            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3259               if test "X$precious_files_regex" != "X"; then
3260                 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3261                 then
3262                   continue
3263                 fi
3264               fi
3265               removelist="$removelist $p"
3266               ;;
3267            *) ;;
3268          esac
3269        done
3270        if test -n "$removelist"; then
3271          $show "${rm}r $removelist"
3272          $run ${rm}r $removelist
3273        fi
3274      fi
3275
3276      # Now set the variables for building old libraries.
3277      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3278        oldlibs="$oldlibs $output_objdir/$libname.$libext"
3279
3280        # Transform .lo files to .o files.
3281        oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3282      fi
3283
3284      # Eliminate all temporary directories.
3285      for path in $notinst_path; do
3286        lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
3287        deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
3288        dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
3289      done
3290
3291      if test -n "$xrpath"; then
3292        # If the user specified any rpath flags, then add them.
3293        temp_xrpath=
3294        for libdir in $xrpath; do
3295          temp_xrpath="$temp_xrpath -R$libdir"
3296          case "$finalize_rpath " in
3297          *" $libdir "*) ;;
3298          *) finalize_rpath="$finalize_rpath $libdir" ;;
3299          esac
3300        done
3301        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3302          dependency_libs="$temp_xrpath $dependency_libs"
3303        fi
3304      fi
3305
3306      # Make sure dlfiles contains only unique files that won't be dlpreopened
3307      old_dlfiles="$dlfiles"
3308      dlfiles=
3309      for lib in $old_dlfiles; do
3310        case " $dlprefiles $dlfiles " in
3311        *" $lib "*) ;;
3312        *) dlfiles="$dlfiles $lib" ;;
3313        esac
3314      done
3315
3316      # Make sure dlprefiles contains only unique files
3317      old_dlprefiles="$dlprefiles"
3318      dlprefiles=
3319      for lib in $old_dlprefiles; do
3320        case "$dlprefiles " in
3321        *" $lib "*) ;;
3322        *) dlprefiles="$dlprefiles $lib" ;;
3323        esac
3324      done
3325
3326      if test "$build_libtool_libs" = yes; then
3327        if test -n "$rpath"; then
3328          case $host in
3329          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3330            # these systems don't actually have a c library (as such)!
3331            ;;
3332          *-*-rhapsody* | *-*-darwin1.[012])
3333            # Rhapsody C library is in the System framework
3334            deplibs="$deplibs -framework System"
3335            ;;
3336          *-*-netbsd*)
3337            # Don't link with libc until the a.out ld.so is fixed.
3338            ;;
3339          *-*-openbsd* | *-*-freebsd*)
3340            # Do not include libc due to us having libc/libc_r.
3341            test "X$arg" = "X-lc" && continue
3342            ;;
3343          *)
3344            # Add libc to deplibs on all other systems if necessary.
3345            if test "$build_libtool_need_lc" = "yes"; then
3346              deplibs="$deplibs -lc"
3347            fi
3348            ;;
3349          esac
3350        fi
3351
3352        # Transform deplibs into only deplibs that can be linked in shared.
3353        name_save=$name
3354        libname_save=$libname
3355        release_save=$release
3356        versuffix_save=$versuffix
3357        major_save=$major
3358        # I'm not sure if I'm treating the release correctly.  I think
3359        # release should show up in the -l (ie -lgmp5) so we don't want to
3360        # add it in twice.  Is that correct?
3361        release=""
3362        versuffix=""
3363        major=""
3364        newdeplibs=
3365        droppeddeps=no
3366        case $deplibs_check_method in
3367        pass_all)
3368          # Don't check for shared/static.  Everything works.
3369          # This might be a little naive.  We might want to check
3370          # whether the library exists or not.  But this is on
3371          # osf3 & osf4 and I'm not really sure... Just
3372          # implementing what was already the behavior.
3373          newdeplibs=$deplibs
3374          ;;
3375        test_compile)
3376          # This code stresses the "libraries are programs" paradigm to its
3377          # limits. Maybe even breaks it.  We compile a program, linking it
3378          # against the deplibs as a proxy for the library.  Then we can check
3379          # whether they linked in statically or dynamically with ldd.
3380          $rm conftest.c
3381          cat > conftest.c <<EOF
3382          int main() { return 0; }
3383EOF
3384          $rm conftest
3385          $LTCC -o conftest conftest.c $deplibs
3386          if test "$?" -eq 0 ; then
3387            ldd_output=`ldd conftest`
3388            for i in $deplibs; do
3389              name="`expr $i : '-l\(.*\)'`"
3390              # If $name is empty we are operating on a -L argument.
3391              if test "$name" != "" && test "$name" -ne "0"; then
3392                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3393                  case " $predeps $postdeps " in
3394                  *" $i "*)
3395                    newdeplibs="$newdeplibs $i"
3396                    i=""
3397                    ;;
3398                  esac
3399                fi
3400                if test -n "$i" ; then
3401                  libname=`eval \\$echo \"$libname_spec\"`
3402                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3403                  set dummy $deplib_matches
3404                  deplib_match=$2
3405                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3406                    newdeplibs="$newdeplibs $i"
3407                  else
3408                    droppeddeps=yes
3409                    $echo
3410                    $echo "*** Warning: dynamic linker does not accept needed library $i."
3411                    $echo "*** I have the capability to make that library automatically link in when"
3412                    $echo "*** you link to this library.  But I can only do this if you have a"
3413                    $echo "*** shared version of the library, which I believe you do not have"
3414                    $echo "*** because a test_compile did reveal that the linker did not use it for"
3415                    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3416                  fi
3417                fi
3418              else
3419                newdeplibs="$newdeplibs $i"
3420              fi
3421            done
3422          else
3423            # Error occurred in the first compile.  Let's try to salvage
3424            # the situation: Compile a separate program for each library.
3425            for i in $deplibs; do
3426              name="`expr $i : '-l\(.*\)'`"
3427              # If $name is empty we are operating on a -L argument.
3428              if test "$name" != "" && test "$name" != "0"; then
3429                $rm conftest
3430                $LTCC -o conftest conftest.c $i
3431                # Did it work?
3432                if test "$?" -eq 0 ; then
3433                  ldd_output=`ldd conftest`
3434                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3435                    case " $predeps $postdeps " in
3436                    *" $i "*)
3437                      newdeplibs="$newdeplibs $i"
3438                      i=""
3439                      ;;
3440                    esac
3441                  fi
3442                  if test -n "$i" ; then
3443                    libname=`eval \\$echo \"$libname_spec\"`
3444                    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3445                    set dummy $deplib_matches
3446                    deplib_match=$2
3447                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3448                      newdeplibs="$newdeplibs $i"
3449                    else
3450                      droppeddeps=yes
3451                      $echo
3452                      $echo "*** Warning: dynamic linker does not accept needed library $i."
3453                      $echo "*** I have the capability to make that library automatically link in when"
3454                      $echo "*** you link to this library.  But I can only do this if you have a"
3455                      $echo "*** shared version of the library, which you do not appear to have"
3456                      $echo "*** because a test_compile did reveal that the linker did not use this one"
3457                      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3458                    fi
3459                  fi
3460                else
3461                  droppeddeps=yes
3462                  $echo
3463                  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3464                  $echo "***  make it link in!  You will probably need to install it or some"
3465                  $echo "*** library that it depends on before this library will be fully"
3466                  $echo "*** functional.  Installing it before continuing would be even better."
3467                fi
3468              else
3469                newdeplibs="$newdeplibs $i"
3470              fi
3471            done
3472          fi
3473          ;;
3474        file_magic*)
3475          set dummy $deplibs_check_method
3476          file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3477          for a_deplib in $deplibs; do
3478            name="`expr $a_deplib : '-l\(.*\)'`"
3479            # If $name is empty we are operating on a -L argument.
3480            if test "$name" != "" && test  "$name" != "0"; then
3481              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3482                case " $predeps $postdeps " in
3483                *" $a_deplib "*)
3484                  newdeplibs="$newdeplibs $a_deplib"
3485                  a_deplib=""
3486                  ;;
3487                esac
3488              fi
3489              if test -n "$a_deplib" ; then
3490                libname=`eval \\$echo \"$libname_spec\"`
3491                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3492                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3493                  for potent_lib in $potential_libs; do
3494                      # Follow soft links.
3495                      if ls -lLd "$potent_lib" 2>/dev/null \
3496                         | grep " -> " >/dev/null; then
3497                        continue
3498                      fi
3499                      # The statement above tries to avoid entering an
3500                      # endless loop below, in case of cyclic links.
3501                      # We might still enter an endless loop, since a link
3502                      # loop can be closed while we follow links,
3503                      # but so what?
3504                      potlib="$potent_lib"
3505                      while test -h "$potlib" 2>/dev/null; do
3506                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3507                        case $potliblink in
3508                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3509                        *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3510                        esac
3511                      done
3512                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3513                         | ${SED} 10q \
3514                         | $EGREP "$file_magic_regex" > /dev/null; then
3515                        newdeplibs="$newdeplibs $a_deplib"
3516                        a_deplib=""
3517                        break 2
3518                      fi
3519                  done
3520                done
3521              fi
3522              if test -n "$a_deplib" ; then
3523                droppeddeps=yes
3524                $echo
3525                $echo "*** Warning: linker path does not have real file for library $a_deplib."
3526                $echo "*** I have the capability to make that library automatically link in when"
3527                $echo "*** you link to this library.  But I can only do this if you have a"
3528                $echo "*** shared version of the library, which you do not appear to have"
3529                $echo "*** because I did check the linker path looking for a file starting"
3530                if test -z "$potlib" ; then
3531                  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3532                else
3533                  $echo "*** with $libname and none of the candidates passed a file format test"
3534                  $echo "*** using a file magic. Last file checked: $potlib"
3535                fi
3536              fi
3537            else
3538              # Add a -L argument.
3539              newdeplibs="$newdeplibs $a_deplib"
3540            fi
3541          done # Gone through all deplibs.
3542          ;;
3543        match_pattern*)
3544          set dummy $deplibs_check_method
3545          match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3546          for a_deplib in $deplibs; do
3547            name="`expr $a_deplib : '-l\(.*\)'`"
3548            # If $name is empty we are operating on a -L argument.
3549            if test -n "$name" && test "$name" != "0"; then
3550              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3551                case " $predeps $postdeps " in
3552                *" $a_deplib "*)
3553                  newdeplibs="$newdeplibs $a_deplib"
3554                  a_deplib=""
3555                  ;;
3556                esac
3557              fi
3558              if test -n "$a_deplib" ; then
3559                libname=`eval \\$echo \"$libname_spec\"`
3560                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3561                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3562                  for potent_lib in $potential_libs; do
3563                    potlib="$potent_lib" # see symlink-check above in file_magic test
3564                    if eval $echo \"$potent_lib\" 2>/dev/null \
3565                        | ${SED} 10q \
3566                        | $EGREP "$match_pattern_regex" > /dev/null; then
3567                      newdeplibs="$newdeplibs $a_deplib"
3568                      a_deplib=""
3569                      break 2
3570                    fi
3571                  done
3572                done
3573              fi
3574              if test -n "$a_deplib" ; then
3575                droppeddeps=yes
3576                $echo
3577                $echo "*** Warning: linker path does not have real file for library $a_deplib."
3578                $echo "*** I have the capability to make that library automatically link in when"
3579                $echo "*** you link to this library.  But I can only do this if you have a"
3580                $echo "*** shared version of the library, which you do not appear to have"
3581                $echo "*** because I did check the linker path looking for a file starting"
3582                if test -z "$potlib" ; then
3583                  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3584                else
3585                  $echo "*** with $libname and none of the candidates passed a file format test"
3586                  $echo "*** using a regex pattern. Last file checked: $potlib"
3587                fi
3588              fi
3589            else
3590              # Add a -L argument.
3591              newdeplibs="$newdeplibs $a_deplib"
3592            fi
3593          done # Gone through all deplibs.
3594          ;;
3595        none | unknown | *)
3596          newdeplibs=""
3597          tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3598            -e 's/ -[LR][^ ]*//g'`
3599          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3600            for i in $predeps $postdeps ; do
3601              # can't use Xsed below, because $i might contain '/'
3602              tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3603            done
3604          fi
3605          if $echo "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' \
3606            | grep . >/dev/null; then
3607            $echo
3608            if test "X$deplibs_check_method" = "Xnone"; then
3609              $echo "*** Warning: inter-library dependencies are not supported in this platform."
3610            else
3611              $echo "*** Warning: inter-library dependencies are not known to be supported."
3612            fi
3613            $echo "*** All declared inter-library dependencies are being dropped."
3614            droppeddeps=yes
3615          fi
3616          ;;
3617        esac
3618        versuffix=$versuffix_save
3619        major=$major_save
3620        release=$release_save
3621        libname=$libname_save
3622        name=$name_save
3623
3624        case $host in
3625        *-*-rhapsody* | *-*-darwin1.[012])
3626          # On Rhapsody replace the C library is the System framework
3627          newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3628          ;;
3629        esac
3630
3631        if test "$droppeddeps" = yes; then
3632          if test "$module" = yes; then
3633            $echo
3634            $echo "*** Warning: libtool could not satisfy all declared inter-library"
3635            $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3636            $echo "*** a static module, that should work as long as the dlopening"
3637            $echo "*** application is linked with the -dlopen flag."
3638            if test -z "$global_symbol_pipe"; then
3639              $echo
3640              $echo "*** However, this would only work if libtool was able to extract symbol"
3641              $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3642              $echo "*** not find such a program.  So, this module is probably useless."
3643              $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3644            fi
3645            if test "$build_old_libs" = no; then
3646              oldlibs="$output_objdir/$libname.$libext"
3647              build_libtool_libs=module
3648              build_old_libs=yes
3649            else
3650              build_libtool_libs=no
3651            fi
3652          else
3653            $echo "*** The inter-library dependencies that have been dropped here will be"
3654            $echo "*** automatically added whenever a program is linked with this library"
3655            $echo "*** or is declared to -dlopen it."
3656
3657            if test "$allow_undefined" = no; then
3658              $echo
3659              $echo "*** Since this library must not contain undefined symbols,"
3660              $echo "*** because either the platform does not support them or"
3661              $echo "*** it was explicitly requested with -no-undefined,"
3662              $echo "*** libtool will only create a static version of it."
3663              if test "$build_old_libs" = no; then
3664                oldlibs="$output_objdir/$libname.$libext"
3665                build_libtool_libs=module
3666                build_old_libs=yes
3667              else
3668                build_libtool_libs=no
3669              fi
3670            fi
3671          fi
3672        fi
3673        # Done checking deplibs!
3674        deplibs=$newdeplibs
3675      fi
3676
3677      # All the library-specific variables (install_libdir is set above).
3678      library_names=
3679      old_library=
3680      dlname=
3681
3682      # Test again, we may have decided not to build it any more
3683      if test "$build_libtool_libs" = yes; then
3684        if test "$hardcode_into_libs" = yes; then
3685          # Hardcode the library paths
3686          hardcode_libdirs=
3687          dep_rpath=
3688          rpath="$finalize_rpath"
3689          test "$mode" != relink && rpath="$compile_rpath$rpath"
3690          for libdir in $rpath; do
3691            if test -n "$hardcode_libdir_flag_spec"; then
3692              if test -n "$hardcode_libdir_separator"; then
3693                if test -z "$hardcode_libdirs"; then
3694                  hardcode_libdirs="$libdir"
3695                else
3696                  # Just accumulate the unique libdirs.
3697                  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3698                  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3699                    ;;
3700                  *)
3701                    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3702                    ;;
3703                  esac
3704                fi
3705              else
3706                eval flag=\"$hardcode_libdir_flag_spec\"
3707                dep_rpath="$dep_rpath $flag"
3708              fi
3709            elif test -n "$runpath_var"; then
3710              case "$perm_rpath " in
3711              *" $libdir "*) ;;
3712              *) perm_rpath="$perm_rpath $libdir" ;;
3713              esac
3714            fi
3715          done
3716          # Substitute the hardcoded libdirs into the rpath.
3717          if test -n "$hardcode_libdir_separator" &&
3718             test -n "$hardcode_libdirs"; then
3719            libdir="$hardcode_libdirs"
3720            if test -n "$hardcode_libdir_flag_spec_ld"; then
3721              eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3722            else
3723              eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3724            fi
3725          fi
3726          if test -n "$runpath_var" && test -n "$perm_rpath"; then
3727            # We should set the runpath_var.
3728            rpath=
3729            for dir in $perm_rpath; do
3730              rpath="$rpath$dir:"
3731            done
3732            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3733          fi
3734          test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3735        fi
3736
3737        shlibpath="$finalize_shlibpath"
3738        test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3739        if test -n "$shlibpath"; then
3740          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3741        fi
3742
3743        # Get the real and link names of the library.
3744        eval shared_ext=\"$shrext_cmds\"
3745        eval library_names=\"$library_names_spec\"
3746        set dummy $library_names
3747        realname="$2"
3748        shift; shift
3749
3750        if test -n "$soname_spec"; then
3751          eval soname=\"$soname_spec\"
3752        else
3753          soname="$realname"
3754        fi
3755        if test -z "$dlname"; then
3756          dlname=$soname
3757        fi
3758
3759        lib="$output_objdir/$realname"
3760        for link
3761        do
3762          linknames="$linknames $link"
3763        done
3764
3765        # Use standard objects if they are pic
3766        test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3767
3768        # Prepare the list of exported symbols
3769        if test -z "$export_symbols"; then
3770          if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3771            $show "generating symbol list for \`$libname.la'"
3772            export_symbols="$output_objdir/$libname.exp"
3773            $run $rm $export_symbols
3774            cmds=$export_symbols_cmds
3775            save_ifs="$IFS"; IFS='~'
3776            for cmd in $cmds; do
3777              IFS="$save_ifs"
3778              eval cmd=\"$cmd\"
3779              if len=`expr "X$cmd" : ".*"` &&
3780               test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3781                $show "$cmd"
3782                $run eval "$cmd" || exit $?
3783                skipped_export=false
3784              else
3785                # The command line is too long to execute in one step.
3786                $show "using reloadable object file for export list..."
3787                skipped_export=:
3788              fi
3789            done
3790            IFS="$save_ifs"
3791            if test -n "$export_symbols_regex"; then
3792              $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3793              $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3794              $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3795              $run eval '$mv "${export_symbols}T" "$export_symbols"'
3796            fi
3797          fi
3798        fi
3799
3800        if test -n "$export_symbols" && test -n "$include_expsyms"; then
3801          $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3802        fi
3803
3804        tmp_deplibs=
3805        for test_deplib in $deplibs; do
3806                case " $convenience " in
3807                *" $test_deplib "*) ;;
3808                *)
3809                        tmp_deplibs="$tmp_deplibs $test_deplib"
3810                        ;;
3811                esac
3812        done
3813        deplibs="$tmp_deplibs"
3814
3815        if test -n "$convenience"; then
3816          if test -n "$whole_archive_flag_spec"; then
3817            save_libobjs=$libobjs
3818            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3819          else
3820            gentop="$output_objdir/${outputname}x"
3821            generated="$generated $gentop"
3822
3823            func_extract_archives $gentop $convenience
3824            libobjs="$libobjs $func_extract_archives_result"
3825          fi
3826        fi
3827       
3828        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3829          eval flag=\"$thread_safe_flag_spec\"
3830          linker_flags="$linker_flags $flag"
3831        fi
3832
3833        # Make a backup of the uninstalled library when relinking
3834        if test "$mode" = relink; then
3835          $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
3836        fi
3837
3838        # Do each of the archive commands.
3839        if test "$module" = yes && test -n "$module_cmds" ; then
3840          if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3841            eval test_cmds=\"$module_expsym_cmds\"
3842            cmds=$module_expsym_cmds
3843          else
3844            eval test_cmds=\"$module_cmds\"
3845            cmds=$module_cmds
3846          fi
3847        else
3848        if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3849          eval test_cmds=\"$archive_expsym_cmds\"
3850          cmds=$archive_expsym_cmds
3851        else
3852          eval test_cmds=\"$archive_cmds\"
3853          cmds=$archive_cmds
3854          fi
3855        fi
3856
3857        if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
3858           test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3859          :
3860        else
3861          # The command line is too long to link in one step, link piecewise.
3862          $echo "creating reloadable object files..."
3863
3864          # Save the value of $output and $libobjs because we want to
3865          # use them later.  If we have whole_archive_flag_spec, we
3866          # want to use save_libobjs as it was before
3867          # whole_archive_flag_spec was expanded, because we can't
3868          # assume the linker understands whole_archive_flag_spec.
3869          # This may have to be revisited, in case too many
3870          # convenience libraries get linked in and end up exceeding
3871          # the spec.
3872          if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
3873            save_libobjs=$libobjs
3874          fi
3875          save_output=$output
3876
3877          # Clear the reloadable object creation command queue and
3878          # initialize k to one.
3879          test_cmds=
3880          concat_cmds=
3881          objlist=
3882          delfiles=
3883          last_robj=
3884          k=1
3885          output=$output_objdir/$save_output-${k}.$objext
3886          # Loop over the list of objects to be linked.
3887          for obj in $save_libobjs
3888          do
3889            eval test_cmds=\"$reload_cmds $objlist $last_robj\"
3890            if test "X$objlist" = X ||
3891               { len=`expr "X$test_cmds" : ".*"` &&
3892                 test "$len" -le "$max_cmd_len"; }; then
3893              objlist="$objlist $obj"
3894            else
3895              # The command $test_cmds is almost too long, add a
3896              # command to the queue.
3897              if test "$k" -eq 1 ; then
3898                # The first file doesn't have a previous command to add.
3899                eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
3900              else
3901                # All subsequent reloadable object files will link in
3902                # the last one created.
3903                eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
3904              fi
3905              last_robj=$output_objdir/$save_output-${k}.$objext
3906              k=`expr $k + 1`
3907              output=$output_objdir/$save_output-${k}.$objext
3908              objlist=$obj
3909              len=1
3910            fi
3911          done
3912          # Handle the remaining objects by creating one last
3913          # reloadable object file.  All subsequent reloadable object
3914          # files will link in the last one created.
3915          test -z "$concat_cmds" || concat_cmds=$concat_cmds~
3916          eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
3917
3918          if ${skipped_export-false}; then
3919            $show "generating symbol list for \`$libname.la'"
3920            export_symbols="$output_objdir/$libname.exp"
3921            $run $rm $export_symbols
3922            libobjs=$output
3923            # Append the command to create the export file.
3924            eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
3925          fi
3926
3927          # Set up a command to remove the reloadale object files
3928          # after they are used.
3929          i=0
3930          while test "$i" -lt "$k"
3931          do
3932            i=`expr $i + 1`
3933            delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
3934          done
3935
3936          $echo "creating a temporary reloadable object file: $output"
3937
3938          # Loop through the commands generated above and execute them.
3939          save_ifs="$IFS"; IFS='~'
3940          for cmd in $concat_cmds; do
3941            IFS="$save_ifs"
3942            $show "$cmd"
3943            $run eval "$cmd" || exit $?
3944          done
3945          IFS="$save_ifs"
3946
3947          libobjs=$output
3948          # Restore the value of output.
3949          output=$save_output
3950
3951          if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
3952            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3953          fi
3954          # Expand the library linking commands again to reset the
3955          # value of $libobjs for piecewise linking.
3956
3957          # Do each of the archive commands.
3958          if test "$module" = yes && test -n "$module_cmds" ; then
3959            if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3960              cmds=$module_expsym_cmds
3961            else
3962              cmds=$module_cmds
3963            fi
3964          else
3965          if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3966            cmds=$archive_expsym_cmds
3967          else
3968            cmds=$archive_cmds
3969            fi
3970          fi
3971
3972          # Append the command to remove the reloadable object files
3973          # to the just-reset $cmds.
3974          eval cmds=\"\$cmds~\$rm $delfiles\"
3975        fi
3976        save_ifs="$IFS"; IFS='~'
3977        for cmd in $cmds; do
3978          IFS="$save_ifs"
3979          eval cmd=\"$cmd\"
3980          $show "$cmd"
3981          $run eval "$cmd" || exit $?
3982        done
3983        IFS="$save_ifs"
3984
3985        # Restore the uninstalled library and exit
3986        if test "$mode" = relink; then
3987          $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
3988          exit $EXIT_SUCCESS
3989        fi
3990
3991        # Create links to the real library.
3992        for linkname in $linknames; do
3993          if test "$realname" != "$linkname"; then
3994            $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3995            $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
3996          fi
3997        done
3998
3999        # If -module or -export-dynamic was specified, set the dlname.
4000        if test "$module" = yes || test "$export_dynamic" = yes; then
4001          # On all known operating systems, these are identical.
4002          dlname="$soname"
4003        fi
4004      fi
4005      ;;
4006
4007    obj)
4008      if test -n "$deplibs"; then
4009        $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4010      fi
4011
4012      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4013        $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4014      fi
4015
4016      if test -n "$rpath"; then
4017        $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4018      fi
4019
4020      if test -n "$xrpath"; then
4021        $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4022      fi
4023
4024      if test -n "$vinfo"; then
4025        $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4026      fi
4027
4028      if test -n "$release"; then
4029        $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4030      fi
4031
4032      case $output in
4033      *.lo)
4034        if test -n "$objs$old_deplibs"; then
4035          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4036          exit $EXIT_FAILURE
4037        fi
4038        libobj="$output"
4039        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4040        ;;
4041      *)
4042        libobj=
4043        obj="$output"
4044        ;;
4045      esac
4046
4047      # Delete the old objects.
4048      $run $rm $obj $libobj
4049
4050      # Objects from convenience libraries.  This assumes
4051      # single-version convenience libraries.  Whenever we create
4052      # different ones for PIC/non-PIC, this we'll have to duplicate
4053      # the extraction.
4054      reload_conv_objs=
4055      gentop=
4056      # reload_cmds runs $LD directly, so let us get rid of
4057      # -Wl from whole_archive_flag_spec
4058      wl=
4059
4060      if test -n "$convenience"; then
4061        if test -n "$whole_archive_flag_spec"; then
4062          eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4063        else
4064          gentop="$output_objdir/${obj}x"
4065          generated="$generated $gentop"
4066
4067          func_extract_archives $gentop $convenience
4068          reload_conv_objs="$reload_objs $func_extract_archives_result"
4069        fi
4070      fi
4071
4072      # Create the old-style object.
4073      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
4074
4075      output="$obj"
4076      cmds=$reload_cmds
4077      save_ifs="$IFS"; IFS='~'
4078      for cmd in $cmds; do
4079        IFS="$save_ifs"
4080        eval cmd=\"$cmd\"
4081        $show "$cmd"
4082        $run eval "$cmd" || exit $?
4083      done
4084      IFS="$save_ifs"
4085
4086      # Exit if we aren't doing a library object file.
4087      if test -z "$libobj"; then
4088        if test -n "$gentop"; then
4089          $show "${rm}r $gentop"
4090          $run ${rm}r $gentop
4091        fi
4092
4093        exit $EXIT_SUCCESS
4094      fi
4095
4096      if test "$build_libtool_libs" != yes; then
4097        if test -n "$gentop"; then
4098          $show "${rm}r $gentop"
4099          $run ${rm}r $gentop
4100        fi
4101
4102        # Create an invalid libtool object if no PIC, so that we don't
4103        # accidentally link it into a program.
4104        # $show "echo timestamp > $libobj"
4105        # $run eval "echo timestamp > $libobj" || exit $?
4106        exit $EXIT_SUCCESS
4107      fi
4108
4109      if test -n "$pic_flag" || test "$pic_mode" != default; then
4110        # Only do commands if we really have different PIC objects.
4111        reload_objs="$libobjs $reload_conv_objs"
4112        output="$libobj"
4113        cmds=$reload_cmds
4114        save_ifs="$IFS"; IFS='~'
4115        for cmd in $cmds; do
4116          IFS="$save_ifs"
4117          eval cmd=\"$cmd\"
4118          $show "$cmd"
4119          $run eval "$cmd" || exit $?
4120        done
4121        IFS="$save_ifs"
4122      fi
4123
4124      if test -n "$gentop"; then
4125        $show "${rm}r $gentop"
4126        $run ${rm}r $gentop
4127      fi
4128
4129      exit $EXIT_SUCCESS
4130      ;;
4131
4132    prog)
4133      case $host in
4134        *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4135      esac
4136      if test -n "$vinfo"; then
4137        $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4138      fi
4139
4140      if test -n "$release"; then
4141        $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4142      fi
4143
4144      if test "$preload" = yes; then
4145        if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4146           test "$dlopen_self_static" = unknown; then
4147          $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4148        fi
4149      fi
4150
4151      case $host in
4152      *-*-rhapsody* | *-*-darwin1.[012])
4153        # On Rhapsody replace the C library is the System framework
4154        compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4155        finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4156        ;;
4157      esac
4158
4159      case $host in
4160      *darwin*)
4161        # Don't allow lazy linking, it breaks C++ global constructors
4162        if test "$tagname" = CXX ; then
4163        compile_command="$compile_command ${wl}-bind_at_load"
4164        finalize_command="$finalize_command ${wl}-bind_at_load"
4165        fi
4166        ;;
4167      esac
4168
4169      compile_command="$compile_command $compile_deplibs"
4170      finalize_command="$finalize_command $finalize_deplibs"
4171
4172      if test -n "$rpath$xrpath"; then
4173        # If the user specified any rpath flags, then add them.
4174        for libdir in $rpath $xrpath; do
4175          # This is the magic to use -rpath.
4176          case "$finalize_rpath " in
4177          *" $libdir "*) ;;
4178          *) finalize_rpath="$finalize_rpath $libdir" ;;
4179          esac
4180        done
4181      fi
4182
4183      # Now hardcode the library paths
4184      rpath=
4185      hardcode_libdirs=
4186      for libdir in $compile_rpath $finalize_rpath; do
4187        if test -n "$hardcode_libdir_flag_spec"; then
4188          if test -n "$hardcode_libdir_separator"; then
4189            if test -z "$hardcode_libdirs"; then
4190              hardcode_libdirs="$libdir"
4191            else
4192              # Just accumulate the unique libdirs.
4193              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4194              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4195                ;;
4196              *)
4197                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4198                ;;
4199              esac
4200            fi
4201          else
4202            eval flag=\"$hardcode_libdir_flag_spec\"
4203            rpath="$rpath $flag"
4204          fi
4205        elif test -n "$runpath_var"; then
4206          case "$perm_rpath " in
4207          *" $libdir "*) ;;
4208          *) perm_rpath="$perm_rpath $libdir" ;;
4209          esac
4210        fi
4211        case $host in
4212        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4213          case :$dllsearchpath: in
4214          *":$libdir:"*) ;;
4215          *) dllsearchpath="$dllsearchpath:$libdir";;
4216          esac
4217          ;;
4218        esac
4219      done
4220      # Substitute the hardcoded libdirs into the rpath.
4221      if test -n "$hardcode_libdir_separator" &&
4222         test -n "$hardcode_libdirs"; then
4223        libdir="$hardcode_libdirs"
4224        eval rpath=\" $hardcode_libdir_flag_spec\"
4225      fi
4226      compile_rpath="$rpath"
4227
4228      rpath=
4229      hardcode_libdirs=
4230      for libdir in $finalize_rpath; do
4231        if test -n "$hardcode_libdir_flag_spec"; then
4232          if test -n "$hardcode_libdir_separator"; then
4233            if test -z "$hardcode_libdirs"; then
4234              hardcode_libdirs="$libdir"
4235            else
4236              # Just accumulate the unique libdirs.
4237              case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4238              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4239                ;;
4240              *)
4241                hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4242                ;;
4243              esac
4244            fi
4245          else
4246            eval flag=\"$hardcode_libdir_flag_spec\"
4247            rpath="$rpath $flag"
4248          fi
4249        elif test -n "$runpath_var"; then
4250          case "$finalize_perm_rpath " in
4251          *" $libdir "*) ;;
4252          *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4253          esac
4254        fi
4255      done
4256      # Substitute the hardcoded libdirs into the rpath.
4257      if test -n "$hardcode_libdir_separator" &&
4258         test -n "$hardcode_libdirs"; then
4259        libdir="$hardcode_libdirs"
4260        eval rpath=\" $hardcode_libdir_flag_spec\"
4261      fi
4262      finalize_rpath="$rpath"
4263
4264      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4265        # Transform all the library objects into standard objects.
4266        compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4267        finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4268      fi
4269
4270      dlsyms=
4271      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4272        if test -n "$NM" && test -n "$global_symbol_pipe"; then
4273          dlsyms="${outputname}S.c"
4274        else
4275          $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4276        fi
4277      fi
4278
4279      if test -n "$dlsyms"; then
4280        case $dlsyms in
4281        "") ;;
4282        *.c)
4283          # Discover the nlist of each of the dlfiles.
4284          nlist="$output_objdir/${outputname}.nm"
4285
4286          $show "$rm $nlist ${nlist}S ${nlist}T"
4287          $run $rm "$nlist" "${nlist}S" "${nlist}T"
4288
4289          # Parse the name list into a source file.
4290          $show "creating $output_objdir/$dlsyms"
4291
4292          test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4293/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4294/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4295
4296#ifdef __cplusplus
4297extern \"C\" {
4298#endif
4299
4300/* Prevent the only kind of declaration conflicts we can make. */
4301#define lt_preloaded_symbols some_other_symbol
4302
4303/* External symbol declarations for the compiler. */\
4304"
4305
4306          if test "$dlself" = yes; then
4307            $show "generating symbol list for \`$output'"
4308
4309            test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4310
4311            # Add our own program objects to the symbol list.
4312            progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4313            for arg in $progfiles; do
4314              $show "extracting global C symbols from \`$arg'"
4315              $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4316            done
4317
4318            if test -n "$exclude_expsyms"; then
4319              $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4320              $run eval '$mv "$nlist"T "$nlist"'
4321            fi
4322
4323            if test -n "$export_symbols_regex"; then
4324              $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4325              $run eval '$mv "$nlist"T "$nlist"'
4326            fi
4327
4328            # Prepare the list of exported symbols
4329            if test -z "$export_symbols"; then
4330              export_symbols="$output_objdir/$output.exp"
4331              $run $rm $export_symbols
4332              $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4333            else
4334              $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
4335              $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
4336              $run eval 'mv "$nlist"T "$nlist"'
4337            fi
4338          fi
4339
4340          for arg in $dlprefiles; do
4341            $show "extracting global C symbols from \`$arg'"
4342            name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4343            $run eval '$echo ": $name " >> "$nlist"'
4344            $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4345          done
4346
4347          if test -z "$run"; then
4348            # Make sure we have at least an empty file.
4349            test -f "$nlist" || : > "$nlist"
4350
4351            if test -n "$exclude_expsyms"; then
4352              $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4353              $mv "$nlist"T "$nlist"
4354            fi
4355
4356            # Try sorting and uniquifying the output.
4357            if grep -v "^: " < "$nlist" |
4358                if sort -k 3 </dev/null >/dev/null 2>&1; then
4359                  sort -k 3
4360                else
4361                  sort +2
4362                fi |
4363                uniq > "$nlist"S; then
4364              :
4365            else
4366              grep -v "^: " < "$nlist" > "$nlist"S
4367            fi
4368
4369            if test -f "$nlist"S; then
4370              eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4371            else
4372              $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4373            fi
4374
4375            $echo >> "$output_objdir/$dlsyms" "\
4376
4377#undef lt_preloaded_symbols
4378
4379#if defined (__STDC__) && __STDC__
4380# define lt_ptr void *
4381#else
4382# define lt_ptr char *
4383# define const
4384#endif
4385
4386/* The mapping between symbol names and symbols. */
4387const struct {
4388  const char *name;
4389  lt_ptr address;
4390}
4391lt_preloaded_symbols[] =
4392{\
4393"
4394
4395            eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4396
4397            $echo >> "$output_objdir/$dlsyms" "\
4398  {0, (lt_ptr) 0}
4399};
4400
4401/* This works around a problem in FreeBSD linker */
4402#ifdef FREEBSD_WORKAROUND
4403static const void *lt_preloaded_setup() {
4404  return lt_preloaded_symbols;
4405}
4406#endif
4407
4408#ifdef __cplusplus
4409}
4410#endif\
4411"
4412          fi
4413
4414          pic_flag_for_symtable=
4415          case $host in
4416          # compiling the symbol table file with pic_flag works around
4417          # a FreeBSD bug that causes programs to crash when -lm is
4418          # linked before any other PIC object.  But we must not use
4419          # pic_flag when linking with -static.  The problem exists in
4420          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4421          *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4422            case "$compile_command " in
4423            *" -static "*) ;;
4424            *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4425            esac;;
4426          *-*-hpux*)
4427            case "$compile_command " in
4428            *" -static "*) ;;
4429            *) pic_flag_for_symtable=" $pic_flag";;
4430            esac
4431          esac
4432
4433          # Now compile the dynamic symbol file.
4434          $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4435          $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4436
4437          # Clean up the generated files.
4438          $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4439          $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4440
4441          # Transform the symbol file into the correct name.
4442          compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4443          finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4444          ;;
4445        *)
4446          $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4447          exit $EXIT_FAILURE
4448          ;;
4449        esac
4450      else
4451        # We keep going just in case the user didn't refer to
4452        # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4453        # really was required.
4454
4455        # Nullify the symbol file.
4456        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4457        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4458      fi
4459
4460      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4461        # Replace the output file specification.
4462        compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4463        link_command="$compile_command$compile_rpath"
4464
4465        # We have no uninstalled library dependencies, so finalize right now.
4466        $show "$link_command"
4467        $run eval "$link_command"
4468        status=$?
4469
4470        # Delete the generated files.
4471        if test -n "$dlsyms"; then
4472          $show "$rm $output_objdir/${outputname}S.${objext}"
4473          $run $rm "$output_objdir/${outputname}S.${objext}"
4474        fi
4475
4476        exit $status
4477      fi
4478
4479      if test -n "$shlibpath_var"; then
4480        # We should set the shlibpath_var
4481        rpath=
4482        for dir in $temp_rpath; do
4483          case $dir in
4484          [\\/]* | [A-Za-z]:[\\/]*)
4485            # Absolute path.
4486            rpath="$rpath$dir:"
4487            ;;
4488          *)
4489            # Relative path: add a thisdir entry.
4490            rpath="$rpath\$thisdir/$dir:"
4491            ;;
4492          esac
4493        done
4494        temp_rpath="$rpath"
4495      fi
4496
4497      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4498        compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4499      fi
4500      if test -n "$finalize_shlibpath"; then
4501        finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4502      fi
4503
4504      compile_var=
4505      finalize_var=
4506      if test -n "$runpath_var"; then
4507        if test -n "$perm_rpath"; then
4508          # We should set the runpath_var.
4509          rpath=
4510          for dir in $perm_rpath; do
4511            rpath="$rpath$dir:"
4512          done
4513          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4514        fi
4515        if test -n "$finalize_perm_rpath"; then
4516          # We should set the runpath_var.
4517          rpath=
4518          for dir in $finalize_perm_rpath; do
4519            rpath="$rpath$dir:"
4520          done
4521          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4522        fi
4523      fi
4524
4525      if test "$no_install" = yes; then
4526        # We don't need to create a wrapper script.
4527        link_command="$compile_var$compile_command$compile_rpath"
4528        # Replace the output file specification.
4529        link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4530        # Delete the old output file.
4531        $run $rm $output
4532        # Link the executable and exit
4533        $show "$link_command"
4534        $run eval "$link_command" || exit $?
4535        exit $EXIT_SUCCESS
4536      fi
4537
4538      if test "$hardcode_action" = relink; then
4539        # Fast installation is not supported
4540        link_command="$compile_var$compile_command$compile_rpath"
4541        relink_command="$finalize_var$finalize_command$finalize_rpath"
4542
4543        $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4544        $echo "$modename: \`$output' will be relinked during installation" 1>&2
4545      else
4546        if test "$fast_install" != no; then
4547          link_command="$finalize_var$compile_command$finalize_rpath"
4548          if test "$fast_install" = yes; then
4549            relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4550          else
4551            # fast_install is set to needless
4552            relink_command=
4553          fi
4554        else
4555          link_command="$compile_var$compile_command$compile_rpath"
4556          relink_command="$finalize_var$finalize_command$finalize_rpath"
4557        fi
4558      fi
4559
4560      # Replace the output file specification.
4561      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4562
4563      # Delete the old output files.
4564      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4565
4566      $show "$link_command"
4567      $run eval "$link_command" || exit $?
4568
4569      # Now create the wrapper script.
4570      $show "creating $output"
4571
4572      # Quote the relink command for shipping.
4573      if test -n "$relink_command"; then
4574        # Preserve any variables that may affect compiler behavior
4575        for var in $variables_saved_for_relink; do
4576          if eval test -z \"\${$var+set}\"; then
4577            relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4578          elif eval var_value=\$$var; test -z "$var_value"; then
4579            relink_command="$var=; export $var; $relink_command"
4580          else
4581            var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4582            relink_command="$var=\"$var_value\"; export $var; $relink_command"
4583          fi
4584        done
4585        relink_command="(cd `pwd`; $relink_command)"
4586        relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4587      fi
4588
4589      # Quote $echo for shipping.
4590      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4591        case $progpath in
4592        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4593        *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4594        esac
4595        qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4596      else
4597        qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4598      fi
4599
4600      # Only actually do things if our run command is non-null.
4601      if test -z "$run"; then
4602        # win32 will think the script is a binary if it has
4603        # a .exe suffix, so we strip it off here.
4604        case $output in
4605          *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4606        esac
4607        # test for cygwin because mv fails w/o .exe extensions
4608        case $host in
4609          *cygwin*)
4610            exeext=.exe
4611            outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4612          *) exeext= ;;
4613        esac
4614        case $host in
4615          *cygwin* | *mingw* )
4616            cwrappersource=`$echo ${objdir}/lt-${output}.c`
4617            cwrapper=`$echo ${output}.exe`
4618            $rm $cwrappersource $cwrapper
4619            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4620
4621            cat > $cwrappersource <<EOF
4622
4623/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4624   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4625
4626   The $output program cannot be directly executed until all the libtool
4627   libraries that it depends on are installed.
4628
4629   This wrapper executable should never be moved out of the build directory.
4630   If it is, it will not operate correctly.
4631
4632   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4633   but could eventually absorb all of the scripts functionality and
4634   exec $objdir/$outputname directly.
4635*/
4636EOF
4637            cat >> $cwrappersource<<"EOF"
4638#include <stdio.h>
4639#include <stdlib.h>
4640#include <unistd.h>
4641#include <malloc.h>
4642#include <stdarg.h>
4643#include <assert.h>
4644
4645#if defined(PATH_MAX)
4646# define LT_PATHMAX PATH_MAX
4647#elif defined(MAXPATHLEN)
4648# define LT_PATHMAX MAXPATHLEN
4649#else
4650# define LT_PATHMAX 1024
4651#endif
4652
4653#ifndef DIR_SEPARATOR
4654#define DIR_SEPARATOR '/'
4655#endif
4656
4657#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4658  defined (__OS2__)
4659#define HAVE_DOS_BASED_FILE_SYSTEM
4660#ifndef DIR_SEPARATOR_2
4661#define DIR_SEPARATOR_2 '\\'
4662#endif
4663#endif
4664
4665#ifndef DIR_SEPARATOR_2
4666# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4667#else /* DIR_SEPARATOR_2 */
4668# define IS_DIR_SEPARATOR(ch) \
4669        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4670#endif /* DIR_SEPARATOR_2 */
4671
4672#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
4673#define XFREE(stale) do { \
4674  if (stale) { free ((void *) stale); stale = 0; } \
4675} while (0)
4676
4677const char *program_name = NULL;
4678
4679void * xmalloc (size_t num);
4680char * xstrdup (const char *string);
4681char * basename (const char *name);
4682char * fnqualify(const char *path);
4683char * strendzap(char *str, const char *pat);
4684void lt_fatal (const char *message, ...);
4685
4686int
4687main (int argc, char *argv[])
4688{
4689  char **newargz;
4690  int i;
4691
4692  program_name = (char *) xstrdup ((char *) basename (argv[0]));
4693  newargz = XMALLOC(char *, argc+2);
4694EOF
4695
4696            cat >> $cwrappersource <<EOF
4697  newargz[0] = "$SHELL";
4698EOF
4699
4700            cat >> $cwrappersource <<"EOF"
4701  newargz[1] = fnqualify(argv[0]);
4702  /* we know the script has the same name, without the .exe */
4703  /* so make sure newargz[1] doesn't end in .exe */
4704  strendzap(newargz[1],".exe");
4705  for (i = 1; i < argc; i++)
4706    newargz[i+1] = xstrdup(argv[i]);
4707  newargz[argc+1] = NULL;
4708EOF
4709
4710            cat >> $cwrappersource <<EOF
4711  execv("$SHELL",newargz);
4712EOF
4713
4714            cat >> $cwrappersource <<"EOF"
4715}
4716
4717void *
4718xmalloc (size_t num)
4719{
4720  void * p = (void *) malloc (num);
4721  if (!p)
4722    lt_fatal ("Memory exhausted");
4723
4724  return p;
4725}
4726
4727char *
4728xstrdup (const char *string)
4729{
4730  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
4731;
4732}
4733
4734char *
4735basename (const char *name)
4736{
4737  const char *base;
4738
4739#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4740  /* Skip over the disk name in MSDOS pathnames. */
4741  if (isalpha (name[0]) && name[1] == ':')
4742    name += 2;
4743#endif
4744
4745  for (base = name; *name; name++)
4746    if (IS_DIR_SEPARATOR (*name))
4747      base = name + 1;
4748  return (char *) base;
4749}
4750
4751char *
4752fnqualify(const char *path)
4753{
4754  size_t size;
4755  char *p;
4756  char tmp[LT_PATHMAX + 1];
4757
4758  assert(path != NULL);
4759
4760  /* Is it qualified already? */
4761#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4762  if (isalpha (path[0]) && path[1] == ':')
4763    return xstrdup (path);
4764#endif
4765  if (IS_DIR_SEPARATOR (path[0]))
4766    return xstrdup (path);
4767
4768  /* prepend the current directory */
4769  /* doesn't handle '~' */
4770  if (getcwd (tmp, LT_PATHMAX) == NULL)
4771    lt_fatal ("getcwd failed");
4772  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
4773  p = XMALLOC(char, size);
4774  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
4775  return p;
4776}
4777
4778char *
4779strendzap(char *str, const char *pat)
4780{
4781  size_t len, patlen;
4782
4783  assert(str != NULL);
4784  assert(pat != NULL);
4785
4786  len = strlen(str);
4787  patlen = strlen(pat);
4788
4789  if (patlen <= len)
4790  {
4791    str += len - patlen;
4792    if (strcmp(str, pat) == 0)
4793      *str = '\0';
4794  }
4795  return str;
4796}
4797
4798static void
4799lt_error_core (int exit_status, const char * mode,
4800          const char * message, va_list ap)
4801{
4802  fprintf (stderr, "%s: %s: ", program_name, mode);
4803  vfprintf (stderr, message, ap);
4804  fprintf (stderr, ".\n");
4805
4806  if (exit_status >= 0)
4807    exit (exit_status);
4808}
4809
4810void
4811lt_fatal (const char *message, ...)
4812{
4813  va_list ap;
4814  va_start (ap, message);
4815  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
4816  va_end (ap);
4817}
4818EOF
4819          # we should really use a build-platform specific compiler
4820          # here, but OTOH, the wrappers (shell script and this C one)
4821          # are only useful if you want to execute the "real" binary.
4822          # Since the "real" binary is built for $host, then this
4823          # wrapper might as well be built for $host, too.
4824          $run $LTCC -s -o $cwrapper $cwrappersource
4825          ;;
4826        esac
4827        $rm $output
4828        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
4829
4830        $echo > $output "\
4831#! $SHELL
4832
4833# $output - temporary wrapper script for $objdir/$outputname
4834# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4835#
4836# The $output program cannot be directly executed until all the libtool
4837# libraries that it depends on are installed.
4838#
4839# This wrapper script should never be moved out of the build directory.
4840# If it is, it will not operate correctly.
4841
4842# Sed substitution that helps us do robust quoting.  It backslashifies
4843# metacharacters that are still active within double-quoted strings.
4844Xsed='${SED} -e 1s/^X//'
4845sed_quote_subst='$sed_quote_subst'
4846
4847# The HP-UX ksh and POSIX shell print the target directory to stdout
4848# if CDPATH is set.
4849(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
4850
4851relink_command=\"$relink_command\"
4852
4853# This environment variable determines our operation mode.
4854if test \"\$libtool_install_magic\" = \"$magic\"; then
4855  # install mode needs the following variable:
4856  notinst_deplibs='$notinst_deplibs'
4857else
4858  # When we are sourced in execute mode, \$file and \$echo are already set.
4859  if test \"\$libtool_execute_magic\" != \"$magic\"; then
4860    echo=\"$qecho\"
4861    file=\"\$0\"
4862    # Make sure echo works.
4863    if test \"X\$1\" = X--no-reexec; then
4864      # Discard the --no-reexec flag, and continue.
4865      shift
4866    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
4867      # Yippee, \$echo works!
4868      :
4869    else
4870      # Restart under the correct shell, and then maybe \$echo will work.
4871      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
4872    fi
4873  fi\
4874"
4875        $echo >> $output "\
4876
4877  # Find the directory that this script lives in.
4878  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
4879  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4880
4881  # Follow symbolic links until we get to the real thisdir.
4882  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
4883  while test -n \"\$file\"; do
4884    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
4885
4886    # If there was a directory component, then change thisdir.
4887    if test \"x\$destdir\" != \"x\$file\"; then
4888      case \"\$destdir\" in
4889      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4890      *) thisdir=\"\$thisdir/\$destdir\" ;;
4891      esac
4892    fi
4893
4894    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
4895    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
4896  done
4897
4898  # Try to get the absolute directory name.
4899  absdir=\`cd \"\$thisdir\" && pwd\`
4900  test -n \"\$absdir\" && thisdir=\"\$absdir\"
4901"
4902
4903        if test "$fast_install" = yes; then
4904          $echo >> $output "\
4905  program=lt-'$outputname'$exeext
4906  progdir=\"\$thisdir/$objdir\"
4907
4908  if test ! -f \"\$progdir/\$program\" || \\
4909     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4910       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4911
4912    file=\"\$\$-\$program\"
4913
4914    if test ! -d \"\$progdir\"; then
4915      $mkdir \"\$progdir\"
4916    else
4917      $rm \"\$progdir/\$file\"
4918    fi"
4919
4920          $echo >> $output "\
4921
4922    # relink executable if necessary
4923    if test -n \"\$relink_command\"; then
4924      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4925      else
4926        $echo \"\$relink_command_output\" >&2
4927        $rm \"\$progdir/\$file\"
4928        exit $EXIT_FAILURE
4929      fi
4930    fi
4931
4932    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4933    { $rm \"\$progdir/\$program\";
4934      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4935    $rm \"\$progdir/\$file\"
4936  fi"
4937        else
4938          $echo >> $output "\
4939  program='$outputname'
4940  progdir=\"\$thisdir/$objdir\"
4941"
4942        fi
4943
4944        $echo >> $output "\
4945
4946  if test -f \"\$progdir/\$program\"; then"
4947
4948        # Export our shlibpath_var if we have one.
4949        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4950          $echo >> $output "\
4951    # Add our own library path to $shlibpath_var
4952    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4953
4954    # Some systems cannot cope with colon-terminated $shlibpath_var
4955    # The second colon is a workaround for a bug in BeOS R4 sed
4956    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
4957
4958    export $shlibpath_var
4959"
4960        fi
4961
4962        # fixup the dll searchpath if we need to.
4963        if test -n "$dllsearchpath"; then
4964          $echo >> $output "\
4965    # Add the dll search path components to the executable PATH
4966    PATH=$dllsearchpath:\$PATH
4967"
4968        fi
4969
4970        $echo >> $output "\
4971    if test \"\$libtool_execute_magic\" != \"$magic\"; then
4972      # Run the actual program with our arguments.
4973"
4974        case $host in
4975        # Backslashes separate directories on plain windows
4976        *-*-mingw | *-*-os2*)
4977          $echo >> $output "\
4978      exec \$progdir\\\\\$program \${1+\"\$@\"}
4979"
4980          ;;
4981
4982        *)
4983          $echo >> $output "\
4984      exec \$progdir/\$program \${1+\"\$@\"}
4985"
4986          ;;
4987        esac
4988        $echo >> $output "\
4989      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
4990      exit $EXIT_FAILURE
4991    fi
4992  else
4993    # The program doesn't exist.
4994    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
4995    \$echo \"This script is just a wrapper for \$program.\" 1>&2
4996    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
4997    exit $EXIT_FAILURE
4998  fi
4999fi\
5000"
5001        chmod +x $output
5002      fi
5003      exit $EXIT_SUCCESS
5004      ;;
5005    esac
5006
5007    # See if we need to build an old-fashioned archive.
5008    for oldlib in $oldlibs; do
5009
5010      if test "$build_libtool_libs" = convenience; then
5011        oldobjs="$libobjs_save"
5012        addlibs="$convenience"
5013        build_libtool_libs=no
5014      else
5015        if test "$build_libtool_libs" = module; then
5016          oldobjs="$libobjs_save"
5017          build_libtool_libs=no
5018        else
5019          oldobjs="$old_deplibs $non_pic_objects"
5020        fi
5021        addlibs="$old_convenience"
5022      fi
5023
5024      if test -n "$addlibs"; then
5025        gentop="$output_objdir/${outputname}x"
5026        generated="$generated $gentop"
5027
5028        func_extract_archives $gentop $addlibs
5029        oldobjs="$oldobjs $func_extract_archives_result"
5030      fi
5031
5032      # Do each command in the archive commands.
5033      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5034       cmds=$old_archive_from_new_cmds
5035      else
5036        eval cmds=\"$old_archive_cmds\"
5037
5038        if len=`expr "X$cmds" : ".*"` &&
5039             test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5040          cmds=$old_archive_cmds
5041        else
5042          # the command line is too long to link in one step, link in parts
5043          $echo "using piecewise archive linking..."
5044          save_RANLIB=$RANLIB
5045          RANLIB=:
5046          objlist=
5047          concat_cmds=
5048          save_oldobjs=$oldobjs
5049          # GNU ar 2.10+ was changed to match POSIX; thus no paths are
5050          # encoded into archives.  This makes 'ar r' malfunction in
5051          # this piecewise linking case whenever conflicting object
5052          # names appear in distinct ar calls; check, warn and compensate.
5053            if (for obj in $save_oldobjs
5054            do
5055              $echo "X$obj" | $Xsed -e 's%^.*/%%'
5056            done | sort | sort -uc >/dev/null 2>&1); then
5057            :
5058          else
5059            $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
5060            $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
5061            AR_FLAGS=cq
5062          fi
5063          # Is there a better way of finding the last object in the list?
5064          for obj in $save_oldobjs
5065          do
5066            last_oldobj=$obj
5067          done
5068          for obj in $save_oldobjs
5069          do
5070            oldobjs="$objlist $obj"
5071            objlist="$objlist $obj"
5072            eval test_cmds=\"$old_archive_cmds\"
5073            if len=`expr "X$test_cmds" : ".*"` &&
5074               test "$len" -le "$max_cmd_len"; then
5075              :
5076            else
5077              # the above command should be used before it gets too long
5078              oldobjs=$objlist
5079              if test "$obj" = "$last_oldobj" ; then
5080                RANLIB=$save_RANLIB
5081              fi
5082              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5083              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5084              objlist=
5085            fi
5086          done
5087          RANLIB=$save_RANLIB
5088          oldobjs=$objlist
5089          if test "X$oldobjs" = "X" ; then
5090            eval cmds=\"\$concat_cmds\"
5091          else
5092            eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5093          fi
5094        fi
5095      fi
5096      save_ifs="$IFS"; IFS='~'
5097      for cmd in $cmds; do
5098        eval cmd=\"$cmd\"
5099        IFS="$save_ifs"
5100        $show "$cmd"
5101        $run eval "$cmd" || exit $?
5102      done
5103      IFS="$save_ifs"
5104    done
5105
5106    if test -n "$generated"; then
5107      $show "${rm}r$generated"
5108      $run ${rm}r$generated
5109    fi
5110
5111    # Now create the libtool archive.
5112    case $output in
5113    *.la)
5114      old_library=
5115      test "$build_old_libs" = yes && old_library="$libname.$libext"
5116      $show "creating $output"
5117
5118      # Preserve any variables that may affect compiler behavior
5119      for var in $variables_saved_for_relink; do
5120        if eval test -z \"\${$var+set}\"; then
5121          relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5122        elif eval var_value=\$$var; test -z "$var_value"; then
5123          relink_command="$var=; export $var; $relink_command"
5124        else
5125          var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5126          relink_command="$var=\"$var_value\"; export $var; $relink_command"
5127        fi
5128      done
5129      # Quote the link command for shipping.
5130      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5131      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5132      if test "$hardcode_automatic" = yes ; then
5133        relink_command=
5134      fi
5135
5136
5137      # Only create the output if not a dry run.
5138      if test -z "$run"; then
5139        for installed in no yes; do
5140          if test "$installed" = yes; then
5141            if test -z "$install_libdir"; then
5142              break
5143            fi
5144            output="$output_objdir/$outputname"i
5145            # Replace all uninstalled libtool libraries with the installed ones
5146            newdependency_libs=
5147            for deplib in $dependency_libs; do
5148              case $deplib in
5149              *.la)
5150                name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5151                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5152                if test -z "$libdir"; then
5153                  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5154                  exit $EXIT_FAILURE
5155                fi
5156                newdependency_libs="$newdependency_libs $libdir/$name"
5157                ;;
5158              *) newdependency_libs="$newdependency_libs $deplib" ;;
5159              esac
5160            done
5161            dependency_libs="$newdependency_libs"
5162            newdlfiles=
5163            for lib in $dlfiles; do
5164              name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5165              eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5166              if test -z "$libdir"; then
5167                $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5168                exit $EXIT_FAILURE
5169              fi
5170              newdlfiles="$newdlfiles $libdir/$name"
5171            done
5172            dlfiles="$newdlfiles"
5173            newdlprefiles=
5174            for lib in $dlprefiles; do
5175              name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5176              eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5177              if test -z "$libdir"; then
5178                $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5179                exit $EXIT_FAILURE
5180              fi
5181              newdlprefiles="$newdlprefiles $libdir/$name"
5182            done
5183            dlprefiles="$newdlprefiles"
5184          else
5185            newdlfiles=
5186            for lib in $dlfiles; do
5187              case $lib in
5188                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5189                *) abs=`pwd`"/$lib" ;;
5190              esac
5191              newdlfiles="$newdlfiles $abs"
5192            done
5193            dlfiles="$newdlfiles"
5194            newdlprefiles=
5195            for lib in $dlprefiles; do
5196              case $lib in
5197                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5198                *) abs=`pwd`"/$lib" ;;
5199              esac
5200              newdlprefiles="$newdlprefiles $abs"
5201            done
5202            dlprefiles="$newdlprefiles"
5203          fi
5204          $rm $output
5205          # place dlname in correct position for cygwin
5206          tdlname=$dlname
5207          case $host,$output,$installed,$module,$dlname in
5208            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5209          esac
5210          $echo > $output "\
5211# $outputname - a libtool library file
5212# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5213#
5214# Please DO NOT delete this file!
5215# It is necessary for linking the library.
5216
5217# The name that we can dlopen(3).
5218dlname='$tdlname'
5219
5220# Names of this library.
5221library_names='$library_names'
5222
5223# The name of the static archive.
5224old_library='$old_library'
5225
5226# Libraries that this one depends upon.
5227dependency_libs='$dependency_libs'
5228
5229# Version information for $libname.
5230current=$current
5231age=$age
5232revision=$revision
5233
5234# Is this an already installed library?
5235installed=$installed
5236
5237# Should we warn about portability when linking against -modules?
5238shouldnotlink=$module
5239
5240# Files to dlopen/dlpreopen
5241dlopen='$dlfiles'
5242dlpreopen='$dlprefiles'
5243
5244# Directory that this library needs to be installed in:
5245libdir='$install_libdir'"
5246          if test "$installed" = no && test "$need_relink" = yes; then
5247            $echo >> $output "\
5248relink_command=\"$relink_command\""
5249          fi
5250        done
5251      fi
5252
5253      # Do a symbolic link so that the libtool archive can be found in
5254      # LD_LIBRARY_PATH before the program is installed.
5255      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5256      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5257      ;;
5258    esac
5259    exit $EXIT_SUCCESS
5260    ;;
5261
5262  # libtool install mode
5263  install)
5264    modename="$modename: install"
5265
5266    # There may be an optional sh(1) argument at the beginning of
5267    # install_prog (especially on Windows NT).
5268    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5269       # Allow the use of GNU shtool's install command.
5270       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
5271      # Aesthetically quote it.
5272      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5273      case $arg in
5274      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
5275        arg="\"$arg\""
5276        ;;
5277      esac
5278      install_prog="$arg "
5279      arg="$1"
5280      shift
5281    else
5282      install_prog=
5283      arg="$nonopt"
5284    fi
5285
5286    # The real first argument should be the name of the installation program.
5287    # Aesthetically quote it.
5288    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5289    case $arg in
5290    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*)
5291      arg="\"$arg\""
5292      ;;
5293    esac
5294    install_prog="$install_prog$arg"
5295
5296    # We need to accept at least all the BSD install flags.
5297    dest=
5298    files=
5299    opts=
5300    prev=
5301    install_type=
5302    isdir=no
5303    stripme=
5304    for arg
5305    do
5306      if test -n "$dest"; then
5307        files="$files $dest"
5308        dest="$arg"
5309        continue
5310      fi
5311
5312      case $arg in
5313      -d) isdir=yes ;;
5314      -f) prev="-f" ;;
5315      -g) prev="-g" ;;
5316      -m) prev="-m" ;;
5317      -o) prev="-o" ;;
5318      -s)
5319        stripme=" -s"
5320        continue
5321        ;;
5322      -*) ;;
5323
5324      *)
5325        # If the previous option needed an argument, then skip it.
5326        if test -n "$prev"; then
5327          prev=
5328        else
5329          dest="$arg"
5330          continue
5331        fi
5332        ;;
5333      esac
5334
5335      # Aesthetically quote the argument.
5336      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5337      case $arg in
5338      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*)
5339        arg="\"$arg\""
5340        ;;
5341      esac
5342      install_prog="$install_prog $arg"
5343    done
5344
5345    if test -z "$install_prog"; then
5346      $echo "$modename: you must specify an install program" 1>&2
5347      $echo "$help" 1>&2
5348      exit $EXIT_FAILURE
5349    fi
5350
5351    if test -n "$prev"; then
5352      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5353      $echo "$help" 1>&2
5354      exit $EXIT_FAILURE
5355    fi
5356
5357    if test -z "$files"; then
5358      if test -z "$dest"; then
5359        $echo "$modename: no file or destination specified" 1>&2
5360      else
5361        $echo "$modename: you must specify a destination" 1>&2
5362      fi
5363      $echo "$help" 1>&2
5364      exit $EXIT_FAILURE
5365    fi
5366
5367    # Strip any trailing slash from the destination.
5368    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5369
5370    # Check to see that the destination is a directory.
5371    test -d "$dest" && isdir=yes
5372    if test "$isdir" = yes; then
5373      destdir="$dest"
5374      destname=
5375    else
5376      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5377      test "X$destdir" = "X$dest" && destdir=.
5378      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5379
5380      # Not a directory, so check to see that there is only one file specified.
5381      set dummy $files
5382      if test "$#" -gt 2; then
5383        $echo "$modename: \`$dest' is not a directory" 1>&2
5384        $echo "$help" 1>&2
5385        exit $EXIT_FAILURE
5386      fi
5387    fi
5388    case $destdir in
5389    [\\/]* | [A-Za-z]:[\\/]*) ;;
5390    *)
5391      for file in $files; do
5392        case $file in
5393        *.lo) ;;
5394        *)
5395          $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5396          $echo "$help" 1>&2
5397          exit $EXIT_FAILURE
5398          ;;
5399        esac
5400      done
5401      ;;
5402    esac
5403
5404    # This variable tells wrapper scripts just to set variables rather
5405    # than running their programs.
5406    libtool_install_magic="$magic"
5407
5408    staticlibs=
5409    future_libdirs=
5410    current_libdirs=
5411    for file in $files; do
5412
5413      # Do each installation.
5414      case $file in
5415      *.$libext)
5416        # Do the static libraries later.
5417        staticlibs="$staticlibs $file"
5418        ;;
5419
5420      *.la)
5421        # Check to see that this really is a libtool archive.
5422        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5423        else
5424          $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5425          $echo "$help" 1>&2
5426          exit $EXIT_FAILURE
5427        fi
5428
5429        library_names=
5430        old_library=
5431        relink_command=
5432        # If there is no directory component, then add one.
5433        case $file in
5434        */* | *\\*) . $file ;;
5435        *) . ./$file ;;
5436        esac
5437
5438        # Add the libdir to current_libdirs if it is the destination.
5439        if test "X$destdir" = "X$libdir"; then
5440          case "$current_libdirs " in
5441          *" $libdir "*) ;;
5442          *) current_libdirs="$current_libdirs $libdir" ;;
5443          esac
5444        else
5445          # Note the libdir as a future libdir.
5446          case "$future_libdirs " in
5447          *" $libdir "*) ;;
5448          *) future_libdirs="$future_libdirs $libdir" ;;
5449          esac
5450        fi
5451
5452        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5453        test "X$dir" = "X$file/" && dir=
5454        dir="$dir$objdir"
5455
5456        if test -n "$relink_command"; then
5457          # Determine the prefix the user has applied to our future dir.
5458          inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5459
5460          # Don't allow the user to place us outside of our expected
5461          # location b/c this prevents finding dependent libraries that
5462          # are installed to the same prefix.
5463          # At present, this check doesn't affect windows .dll's that
5464          # are installed into $libdir/../bin (currently, that works fine)
5465          # but it's something to keep an eye on.
5466          if test "$inst_prefix_dir" = "$destdir"; then
5467            $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5468            exit $EXIT_FAILURE
5469          fi
5470
5471          if test -n "$inst_prefix_dir"; then
5472            # Stick the inst_prefix_dir data into the link command.
5473            relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5474          else
5475            relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5476          fi
5477
5478          $echo "$modename: warning: relinking \`$file'" 1>&2
5479          $show "$relink_command"
5480          if $run eval "$relink_command"; then :
5481          else
5482            $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5483            exit $EXIT_FAILURE
5484          fi
5485        fi
5486
5487        # See the names of the shared library.
5488        set dummy $library_names
5489        if test -n "$2"; then
5490          realname="$2"
5491          shift
5492          shift
5493
5494          srcname="$realname"
5495          test -n "$relink_command" && srcname="$realname"T
5496
5497          # Install the shared library and build the symlinks.
5498          $show "$install_prog $dir/$srcname $destdir/$realname"
5499          $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5500          if test -n "$stripme" && test -n "$striplib"; then
5501            $show "$striplib $destdir/$realname"
5502            $run eval "$striplib $destdir/$realname" || exit $?
5503          fi
5504
5505          if test "$#" -gt 0; then
5506            # Delete the old symlinks, and create new ones.
5507            for linkname
5508            do
5509              if test "$linkname" != "$realname"; then
5510                $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5511                $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5512              fi
5513            done
5514          fi
5515
5516          # Do each command in the postinstall commands.
5517          lib="$destdir/$realname"
5518          cmds=$postinstall_cmds
5519          save_ifs="$IFS"; IFS='~'
5520          for cmd in $cmds; do
5521            IFS="$save_ifs"
5522            eval cmd=\"$cmd\"
5523            $show "$cmd"
5524            $run eval "$cmd" || exit $?
5525          done
5526          IFS="$save_ifs"
5527        fi
5528
5529        # Install the pseudo-library for information purposes.
5530        name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5531        instname="$dir/$name"i
5532        $show "$install_prog $instname $destdir/$name"
5533        $run eval "$install_prog $instname $destdir/$name" || exit $?
5534
5535        # Maybe install the static library, too.
5536        test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
5537        ;;
5538
5539      *.lo)
5540        # Install (i.e. copy) a libtool object.
5541
5542        # Figure out destination file name, if it wasn't already specified.
5543        if test -n "$destname"; then
5544          destfile="$destdir/$destname"
5545        else
5546          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5547          destfile="$destdir/$destfile"
5548        fi
5549
5550        # Deduce the name of the destination old-style object file.
5551        case $destfile in
5552        *.lo)
5553          staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
5554          ;;
5555        *.$objext)
5556          staticdest="$destfile"
5557          destfile=
5558          ;;
5559        *)
5560          $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
5561          $echo "$help" 1>&2
5562          exit $EXIT_FAILURE
5563          ;;
5564        esac
5565
5566        # Install the libtool object if requested.
5567        if test -n "$destfile"; then
5568          $show "$install_prog $file $destfile"
5569          $run eval "$install_prog $file $destfile" || exit $?
5570        fi
5571
5572        # Install the old object if enabled.
5573        if test "$build_old_libs" = yes; then
5574          # Deduce the name of the old-style object file.
5575          staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
5576
5577          $show "$install_prog $staticobj $staticdest"
5578          $run eval "$install_prog \$staticobj \$staticdest" || exit $?
5579        fi
5580        exit $EXIT_SUCCESS
5581        ;;
5582
5583      *)
5584        # Figure out destination file name, if it wasn't already specified.
5585        if test -n "$destname"; then
5586          destfile="$destdir/$destname"
5587        else
5588          destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5589          destfile="$destdir/$destfile"
5590        fi
5591
5592        # If the file is missing, and there is a .exe on the end, strip it
5593        # because it is most likely a libtool script we actually want to
5594        # install
5595        stripped_ext=""
5596        case $file in
5597          *.exe)
5598            if test ! -f "$file"; then
5599              file=`$echo $file|${SED} 's,.exe$,,'`
5600              stripped_ext=".exe"
5601            fi
5602            ;;
5603        esac
5604
5605        # Do a test to see if this is really a libtool program.
5606        case $host in
5607        *cygwin*|*mingw*)
5608            wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
5609            ;;
5610        *)
5611            wrapper=$file
5612            ;;
5613        esac
5614        if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
5615          notinst_deplibs=
5616          relink_command=
5617
5618          # To insure that "foo" is sourced, and not "foo.exe",
5619          # finese the cygwin/MSYS system by explicitly sourcing "foo."
5620          # which disallows the automatic-append-.exe behavior.
5621          case $build in
5622          *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
5623          *) wrapperdot=${wrapper} ;;
5624          esac
5625          # If there is no directory component, then add one.
5626          case $file in
5627          */* | *\\*) . ${wrapperdot} ;;
5628          *) . ./${wrapperdot} ;;
5629          esac
5630
5631          # Check the variables that should have been set.
5632          if test -z "$notinst_deplibs"; then
5633            $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
5634            exit $EXIT_FAILURE
5635          fi
5636
5637          finalize=yes
5638          for lib in $notinst_deplibs; do
5639            # Check to see that each library is installed.
5640            libdir=
5641            if test -f "$lib"; then
5642              # If there is no directory component, then add one.
5643              case $lib in
5644              */* | *\\*) . $lib ;;
5645              *) . ./$lib ;;
5646              esac
5647            fi
5648            libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
5649            if test -n "$libdir" && test ! -f "$libfile"; then
5650              $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
5651              finalize=no
5652            fi
5653          done
5654
5655          relink_command=
5656          # To insure that "foo" is sourced, and not "foo.exe",
5657          # finese the cygwin/MSYS system by explicitly sourcing "foo."
5658          # which disallows the automatic-append-.exe behavior.
5659          case $build in
5660          *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
5661          *) wrapperdot=${wrapper} ;;
5662          esac
5663          # If there is no directory component, then add one.
5664          case $file in
5665          */* | *\\*) . ${wrapperdot} ;;
5666          *) . ./${wrapperdot} ;;
5667          esac
5668
5669          outputname=
5670          if test "$fast_install" = no && test -n "$relink_command"; then
5671            if test "$finalize" = yes && test -z "$run"; then
5672              tmpdir="/tmp"
5673              test -n "$TMPDIR" && tmpdir="$TMPDIR"
5674              tmpdir="$tmpdir/libtool-$$"
5675              save_umask=`umask`
5676              umask 0077
5677              if $mkdir "$tmpdir"; then
5678                umask $save_umask
5679              else
5680                umask $save_umask
5681                $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
5682                continue
5683              fi
5684              file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
5685              outputname="$tmpdir/$file"
5686              # Replace the output file specification.
5687              relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
5688
5689              $show "$relink_command"
5690              if $run eval "$relink_command"; then :
5691              else
5692                $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5693                ${rm}r "$tmpdir"
5694                continue
5695              fi
5696              file="$outputname"
5697            else
5698              $echo "$modename: warning: cannot relink \`$file'" 1>&2
5699            fi
5700          else
5701            # Install the binary that we compiled earlier.
5702            file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
5703          fi
5704        fi
5705
5706        # remove .exe since cygwin /usr/bin/install will append another
5707        # one anyways
5708        case $install_prog,$host in
5709        */usr/bin/install*,*cygwin*)
5710          case $file:$destfile in
5711          *.exe:*.exe)
5712            # this is ok
5713            ;;
5714          *.exe:*)
5715            destfile=$destfile.exe
5716            ;;
5717          *:*.exe)
5718            destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
5719            ;;
5720          esac
5721          ;;
5722        esac
5723        $show "$install_prog$stripme $file $destfile"
5724        $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
5725        test -n "$outputname" && ${rm}r "$tmpdir"
5726        ;;
5727      esac
5728    done
5729
5730    for file in $staticlibs; do
5731      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5732
5733      # Set up the ranlib parameters.
5734      oldlib="$destdir/$name"
5735
5736      $show "$install_prog $file $oldlib"
5737      $run eval "$install_prog \$file \$oldlib" || exit $?
5738
5739      if test -n "$stripme" && test -n "$old_striplib"; then
5740        $show "$old_striplib $oldlib"
5741        $run eval "$old_striplib $oldlib" || exit $?
5742      fi
5743
5744      # Do each command in the postinstall commands.
5745      cmds=$old_postinstall_cmds
5746      save_ifs="$IFS"; IFS='~'
5747      for cmd in $cmds; do
5748        IFS="$save_ifs"
5749        eval cmd=\"$cmd\"
5750        $show "$cmd"
5751        $run eval "$cmd" || exit $?
5752      done
5753      IFS="$save_ifs"
5754    done
5755
5756    if test -n "$future_libdirs"; then
5757      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
5758    fi
5759
5760    if test -n "$current_libdirs"; then
5761      # Maybe just do a dry run.
5762      test -n "$run" && current_libdirs=" -n$current_libdirs"
5763      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
5764    else
5765      exit $EXIT_SUCCESS
5766    fi
5767    ;;
5768
5769  # libtool finish mode
5770  finish)
5771    modename="$modename: finish"
5772    libdirs="$nonopt"
5773    admincmds=
5774
5775    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
5776      for dir
5777      do
5778        libdirs="$libdirs $dir"
5779      done
5780
5781      for libdir in $libdirs; do
5782        if test -n "$finish_cmds"; then
5783          # Do each command in the finish commands.
5784          cmds=$finish_cmds
5785          save_ifs="$IFS"; IFS='~'
5786          for cmd in $cmds; do
5787            IFS="$save_ifs"
5788            eval cmd=\"$cmd\"
5789            $show "$cmd"
5790            $run eval "$cmd" || admincmds="$admincmds
5791       $cmd"
5792          done
5793          IFS="$save_ifs"
5794        fi
5795        if test -n "$finish_eval"; then
5796          # Do the single finish_eval.
5797          eval cmds=\"$finish_eval\"
5798          $run eval "$cmds" || admincmds="$admincmds
5799       $cmds"
5800        fi
5801      done
5802    fi
5803
5804    # Exit here if they wanted silent mode.
5805    test "$show" = : && exit $EXIT_SUCCESS
5806
5807    $echo "----------------------------------------------------------------------"
5808    $echo "Libraries have been installed in:"
5809    for libdir in $libdirs; do
5810      $echo "   $libdir"
5811    done
5812    $echo
5813    $echo "If you ever happen to want to link against installed libraries"
5814    $echo "in a given directory, LIBDIR, you must either use libtool, and"
5815    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
5816    $echo "flag during linking and do at least one of the following:"
5817    if test -n "$shlibpath_var"; then
5818      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
5819      $echo "     during execution"
5820    fi
5821    if test -n "$runpath_var"; then
5822      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
5823      $echo "     during linking"
5824    fi
5825    if test -n "$hardcode_libdir_flag_spec"; then
5826      libdir=LIBDIR
5827      eval flag=\"$hardcode_libdir_flag_spec\"
5828
5829      $echo "   - use the \`$flag' linker flag"
5830    fi
5831    if test -n "$admincmds"; then
5832      $echo "   - have your system administrator run these commands:$admincmds"
5833    fi
5834    if test -f /etc/ld.so.conf; then
5835      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
5836    fi
5837    $echo
5838    $echo "See any operating system documentation about shared libraries for"
5839    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
5840    $echo "----------------------------------------------------------------------"
5841    exit $EXIT_SUCCESS
5842    ;;
5843
5844  # libtool execute mode
5845  execute)
5846    modename="$modename: execute"
5847
5848    # The first argument is the command name.
5849    cmd="$nonopt"
5850    if test -z "$cmd"; then
5851      $echo "$modename: you must specify a COMMAND" 1>&2
5852      $echo "$help"
5853      exit $EXIT_FAILURE
5854    fi
5855
5856    # Handle -dlopen flags immediately.
5857    for file in $execute_dlfiles; do
5858      if test ! -f "$file"; then
5859        $echo "$modename: \`$file' is not a file" 1>&2
5860        $echo "$help" 1>&2
5861        exit $EXIT_FAILURE
5862      fi
5863
5864      dir=
5865      case $file in
5866      *.la)
5867        # Check to see that this really is a libtool archive.
5868        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5869        else
5870          $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5871          $echo "$help" 1>&2
5872          exit $EXIT_FAILURE
5873        fi
5874
5875        # Read the libtool library.
5876        dlname=
5877        library_names=
5878
5879        # If there is no directory component, then add one.
5880        case $file in
5881        */* | *\\*) . $file ;;
5882        *) . ./$file ;;
5883        esac
5884
5885        # Skip this library if it cannot be dlopened.
5886        if test -z "$dlname"; then
5887          # Warn if it was a shared library.
5888          test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
5889          continue
5890        fi
5891
5892        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5893        test "X$dir" = "X$file" && dir=.
5894
5895        if test -f "$dir/$objdir/$dlname"; then
5896          dir="$dir/$objdir"
5897        else
5898          $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
5899          exit $EXIT_FAILURE
5900        fi
5901        ;;
5902
5903      *.lo)
5904        # Just add the directory containing the .lo file.
5905        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5906        test "X$dir" = "X$file" && dir=.
5907        ;;
5908
5909      *)
5910        $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
5911        continue
5912        ;;
5913      esac
5914
5915      # Get the absolute pathname.
5916      absdir=`cd "$dir" && pwd`
5917      test -n "$absdir" && dir="$absdir"
5918
5919      # Now add the directory to shlibpath_var.
5920      if eval "test -z \"\$$shlibpath_var\""; then
5921        eval "$shlibpath_var=\"\$dir\""
5922      else
5923        eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
5924      fi
5925    done
5926
5927    # This variable tells wrapper scripts just to set shlibpath_var
5928    # rather than running their programs.
5929    libtool_execute_magic="$magic"
5930
5931    # Check if any of the arguments is a wrapper script.
5932    args=
5933    for file
5934    do
5935      case $file in
5936      -*) ;;
5937      *)
5938        # Do a test to see if this is really a libtool program.
5939        if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5940          # If there is no directory component, then add one.
5941          case $file in
5942          */* | *\\*) . $file ;;
5943          *) . ./$file ;;
5944          esac
5945
5946          # Transform arg to wrapped name.
5947          file="$progdir/$program"
5948        fi
5949        ;;
5950      esac
5951      # Quote arguments (to preserve shell metacharacters).
5952      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
5953      args="$args \"$file\""
5954    done
5955
5956    if test -z "$run"; then
5957      if test -n "$shlibpath_var"; then
5958        # Export the shlibpath_var.
5959        eval "export $shlibpath_var"
5960      fi
5961
5962      # Restore saved environment variables
5963      if test "${save_LC_ALL+set}" = set; then
5964        LC_ALL="$save_LC_ALL"; export LC_ALL
5965      fi
5966      if test "${save_LANG+set}" = set; then
5967        LANG="$save_LANG"; export LANG
5968      fi
5969
5970      # Now prepare to actually exec the command.
5971      exec_cmd="\$cmd$args"
5972    else
5973      # Display what would be done.
5974      if test -n "$shlibpath_var"; then
5975        eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
5976        $echo "export $shlibpath_var"
5977      fi
5978      $echo "$cmd$args"
5979      exit $EXIT_SUCCESS
5980    fi
5981    ;;
5982
5983  # libtool clean and uninstall mode
5984  clean | uninstall)
5985    modename="$modename: $mode"
5986    rm="$nonopt"
5987    files=
5988    rmforce=
5989    exit_status=0
5990
5991    # This variable tells wrapper scripts just to set variables rather
5992    # than running their programs.
5993    libtool_install_magic="$magic"
5994
5995    for arg
5996    do
5997      case $arg in
5998      -f) rm="$rm $arg"; rmforce=yes ;;
5999      -*) rm="$rm $arg" ;;
6000      *) files="$files $arg" ;;
6001      esac
6002    done
6003
6004    if test -z "$rm"; then
6005      $echo "$modename: you must specify an RM program" 1>&2
6006      $echo "$help" 1>&2
6007      exit $EXIT_FAILURE
6008    fi
6009
6010    rmdirs=
6011
6012    origobjdir="$objdir"
6013    for file in $files; do
6014      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6015      if test "X$dir" = "X$file"; then
6016        dir=.
6017        objdir="$origobjdir"
6018      else
6019        objdir="$dir/$origobjdir"
6020      fi
6021      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6022      test "$mode" = uninstall && objdir="$dir"
6023
6024      # Remember objdir for removal later, being careful to avoid duplicates
6025      if test "$mode" = clean; then
6026        case " $rmdirs " in
6027          *" $objdir "*) ;;
6028          *) rmdirs="$rmdirs $objdir" ;;
6029        esac
6030      fi
6031
6032      # Don't error if the file doesn't exist and rm -f was used.
6033      if (test -L "$file") >/dev/null 2>&1 \
6034        || (test -h "$file") >/dev/null 2>&1 \
6035        || test -f "$file"; then
6036        :
6037      elif test -d "$file"; then
6038        exit_status=1
6039        continue
6040      elif test "$rmforce" = yes; then
6041        continue
6042      fi
6043
6044      rmfiles="$file"
6045
6046      case $name in
6047      *.la)
6048        # Possibly a libtool archive, so verify it.
6049        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6050          . $dir/$name
6051
6052          # Delete the libtool libraries and symlinks.
6053          for n in $library_names; do
6054            rmfiles="$rmfiles $objdir/$n"
6055          done
6056          test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6057          test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6058
6059          if test "$mode" = uninstall; then
6060            if test -n "$library_names"; then
6061              # Do each command in the postuninstall commands.
6062              cmds=$postuninstall_cmds
6063              save_ifs="$IFS"; IFS='~'
6064              for cmd in $cmds; do
6065                IFS="$save_ifs"
6066                eval cmd=\"$cmd\"
6067                $show "$cmd"
6068                $run eval "$cmd"
6069                if test "$?" -ne 0 && test "$rmforce" != yes; then
6070                  exit_status=1
6071                fi
6072              done
6073              IFS="$save_ifs"
6074            fi
6075
6076            if test -n "$old_library"; then
6077              # Do each command in the old_postuninstall commands.
6078              cmds=$old_postuninstall_cmds
6079              save_ifs="$IFS"; IFS='~'
6080              for cmd in $cmds; do
6081                IFS="$save_ifs"
6082                eval cmd=\"$cmd\"
6083                $show "$cmd"
6084                $run eval "$cmd"
6085                if test "$?" -ne 0 && test "$rmforce" != yes; then
6086                  exit_status=1
6087                fi
6088              done
6089              IFS="$save_ifs"
6090            fi
6091            # FIXME: should reinstall the best remaining shared library.
6092          fi
6093        fi
6094        ;;
6095
6096      *.lo)
6097        # Possibly a libtool object, so verify it.
6098        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6099
6100          # Read the .lo file
6101          . $dir/$name
6102
6103          # Add PIC object to the list of files to remove.
6104          if test -n "$pic_object" \
6105             && test "$pic_object" != none; then
6106            rmfiles="$rmfiles $dir/$pic_object"
6107          fi
6108
6109          # Add non-PIC object to the list of files to remove.
6110          if test -n "$non_pic_object" \
6111             && test "$non_pic_object" != none; then
6112            rmfiles="$rmfiles $dir/$non_pic_object"
6113          fi
6114        fi
6115        ;;
6116
6117      *)
6118        if test "$mode" = clean ; then
6119          noexename=$name
6120          case $file in
6121          *.exe)
6122            file=`$echo $file|${SED} 's,.exe$,,'`
6123            noexename=`$echo $name|${SED} 's,.exe$,,'`
6124            # $file with .exe has already been added to rmfiles,
6125            # add $file without .exe
6126            rmfiles="$rmfiles $file"
6127            ;;
6128          esac
6129          # Do a test to see if this is a libtool program.
6130          if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6131            relink_command=
6132            . $dir/$noexename
6133
6134            # note $name still contains .exe if it was in $file originally
6135            # as does the version of $file that was added into $rmfiles
6136            rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6137            if test "$fast_install" = yes && test -n "$relink_command"; then
6138              rmfiles="$rmfiles $objdir/lt-$name"
6139            fi
6140            if test "X$noexename" != "X$name" ; then
6141              rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6142            fi
6143          fi
6144        fi
6145        ;;
6146      esac
6147      $show "$rm $rmfiles"
6148      $run $rm $rmfiles || exit_status=1
6149    done
6150    objdir="$origobjdir"
6151
6152    # Try to remove the ${objdir}s in the directories where we deleted files
6153    for dir in $rmdirs; do
6154      if test -d "$dir"; then
6155        $show "rmdir $dir"
6156        $run rmdir $dir >/dev/null 2>&1
6157      fi
6158    done
6159
6160    exit $exit_status
6161    ;;
6162
6163  "")
6164    $echo "$modename: you must specify a MODE" 1>&2
6165    $echo "$generic_help" 1>&2
6166    exit $EXIT_FAILURE
6167    ;;
6168  esac
6169
6170  if test -z "$exec_cmd"; then
6171    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6172    $echo "$generic_help" 1>&2
6173    exit $EXIT_FAILURE
6174  fi
6175fi # test -z "$show_help"
6176
6177if test -n "$exec_cmd"; then
6178  eval exec $exec_cmd
6179  exit $EXIT_FAILURE
6180fi
6181
6182# We need to display help for each of the modes.
6183case $mode in
6184"") $echo \
6185"Usage: $modename [OPTION]... [MODE-ARG]...
6186
6187Provide generalized library-building support services.
6188
6189    --config          show all configuration variables
6190    --debug           enable verbose shell tracing
6191-n, --dry-run         display commands without modifying any files
6192    --features        display basic configuration information and exit
6193    --finish          same as \`--mode=finish'
6194    --help            display this help message and exit
6195    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6196    --quiet           same as \`--silent'
6197    --silent          don't print informational messages
6198    --tag=TAG         use configuration variables from tag TAG
6199    --version         print version information
6200
6201MODE must be one of the following:
6202
6203      clean           remove files from the build directory
6204      compile         compile a source file into a libtool object
6205      execute         automatically set library path, then run a program
6206      finish          complete the installation of libtool libraries
6207      install         install libraries or executables
6208      link            create a library or an executable
6209      uninstall       remove libraries from an installed directory
6210
6211MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6212a more detailed description of MODE.
6213
6214Report bugs to <bug-libtool@gnu.org>."
6215  exit $EXIT_SUCCESS
6216  ;;
6217
6218clean)
6219  $echo \
6220"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6221
6222Remove files from the build directory.
6223
6224RM is the name of the program to use to delete files associated with each FILE
6225(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6226to RM.
6227
6228If FILE is a libtool library, object or program, all the files associated
6229with it are deleted. Otherwise, only FILE itself is deleted using RM."
6230  ;;
6231
6232compile)
6233  $echo \
6234"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6235
6236Compile a source file into a libtool library object.
6237
6238This mode accepts the following additional options:
6239
6240  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6241  -prefer-pic       try to building PIC objects only
6242  -prefer-non-pic   try to building non-PIC objects only
6243  -static           always build a \`.o' file suitable for static linking
6244
6245COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6246from the given SOURCEFILE.
6247
6248The output file name is determined by removing the directory component from
6249SOURCEFILE, then substituting the C source code suffix \`.c' with the
6250library object suffix, \`.lo'."
6251  ;;
6252
6253execute)
6254  $echo \
6255"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6256
6257Automatically set library path, then run a program.
6258
6259This mode accepts the following additional options:
6260
6261  -dlopen FILE      add the directory containing FILE to the library path
6262
6263This mode sets the library path environment variable according to \`-dlopen'
6264flags.
6265
6266If any of the ARGS are libtool executable wrappers, then they are translated
6267into their corresponding uninstalled binary, and any of their required library
6268directories are added to the library path.
6269
6270Then, COMMAND is executed, with ARGS as arguments."
6271  ;;
6272
6273finish)
6274  $echo \
6275"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6276
6277Complete the installation of libtool libraries.
6278
6279Each LIBDIR is a directory that contains libtool libraries.
6280
6281The commands that this mode executes may require superuser privileges.  Use
6282the \`--dry-run' option if you just want to see what would be executed."
6283  ;;
6284
6285install)
6286  $echo \
6287"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6288
6289Install executables or libraries.
6290
6291INSTALL-COMMAND is the installation command.  The first component should be
6292either the \`install' or \`cp' program.
6293
6294The rest of the components are interpreted as arguments to that command (only
6295BSD-compatible install options are recognized)."
6296  ;;
6297
6298link)
6299  $echo \
6300"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6301
6302Link object files or libraries together to form another library, or to
6303create an executable program.
6304
6305LINK-COMMAND is a command using the C compiler that you would use to create
6306a program from several object files.
6307
6308The following components of LINK-COMMAND are treated specially:
6309
6310  -all-static       do not do any dynamic linking at all
6311  -avoid-version    do not add a version suffix if possible
6312  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6313  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6314  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6315  -export-symbols SYMFILE
6316                    try to export only the symbols listed in SYMFILE
6317  -export-symbols-regex REGEX
6318                    try to export only the symbols matching REGEX
6319  -LLIBDIR          search LIBDIR for required installed libraries
6320  -lNAME            OUTPUT-FILE requires the installed library libNAME
6321  -module           build a library that can dlopened
6322  -no-fast-install  disable the fast-install mode
6323  -no-install       link a not-installable executable
6324  -no-undefined     declare that a library does not refer to external symbols
6325  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6326  -objectlist FILE  Use a list of object files found in FILE to specify objects
6327  -precious-files-regex REGEX
6328                    don't remove output files matching REGEX
6329  -release RELEASE  specify package release information
6330  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6331  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6332  -static           do not do any dynamic linking of libtool libraries
6333  -version-info CURRENT[:REVISION[:AGE]]
6334                    specify library version info [each variable defaults to 0]
6335
6336All other options (arguments beginning with \`-') are ignored.
6337
6338Every other argument is treated as a filename.  Files ending in \`.la' are
6339treated as uninstalled libtool libraries, other files are standard or library
6340object files.
6341
6342If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6343only library objects (\`.lo' files) may be specified, and \`-rpath' is
6344required, except when creating a convenience library.
6345
6346If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6347using \`ar' and \`ranlib', or on Windows using \`lib'.
6348
6349If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6350is created, otherwise an executable program is created."
6351  ;;
6352
6353uninstall)
6354  $echo \
6355"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6356
6357Remove libraries from an installation directory.
6358
6359RM is the name of the program to use to delete files associated with each FILE
6360(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6361to RM.
6362
6363If FILE is a libtool library, all the files associated with it are deleted.
6364Otherwise, only FILE itself is deleted using RM."
6365  ;;
6366
6367*)
6368  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6369  $echo "$help" 1>&2
6370  exit $EXIT_FAILURE
6371  ;;
6372esac
6373
6374$echo
6375$echo "Try \`$modename --help' for more information about other modes."
6376
6377exit $EXIT_SUCCESS
6378
6379# The TAGs below are defined such that we never get into a situation
6380# in which we disable both kinds of libraries.  Given conflicting
6381# choices, we go for a static library, that is the most portable,
6382# since we can't tell whether shared libraries were disabled because
6383# the user asked for that or because the platform doesn't support
6384# them.  This is particularly important on AIX, because we don't
6385# support having both static and shared libraries enabled at the same
6386# time on that platform, so we default to a shared-only configuration.
6387# If a disable-shared tag is given, we'll fallback to a static-only
6388# configuration.  But we'll never go from static-only to shared-only.
6389
6390# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6391build_libtool_libs=no
6392build_old_libs=yes
6393# ### END LIBTOOL TAG CONFIG: disable-shared
6394
6395# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6396build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
6397# ### END LIBTOOL TAG CONFIG: disable-static
6398
6399# Local Variables:
6400# mode:shell-script
6401# sh-indentation:2
6402# End:
Note: See TracBrowser for help on using the repository browser.