ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/utils/ltmain.sh
Revision: 1.1
Committed: Fri Feb 3 07:14:50 2006 UTC (18 years, 3 months ago) by root
Content type: application/x-sh
Branch: MAIN
Branch point for: UPSTREAM
Log Message:
Initial revision

File Contents

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