source: valtobtest/subversion-1.6.2/build/ltmain.sh @ 3

Last change on this file since 3 was 3, checked in by valtob, 15 years ago

subversion source 1.6.2 as test

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