source: ether_eccad/trunk/API_EXTRACT/ltmain.sh @ 68

Last change on this file since 68 was 68, checked in by cbipsl, 14 years ago

commit v1 eccad

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