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