Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/freealut-1.1.0/admin/autotools/ltmain.sh @ 14

Last change on this file since 14 was 14, checked in by landauf, 17 years ago

added freealut

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