ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/pack/ubuntu/mod-transform/mod-transform-0.6.0/ltmain.sh
Revision: 63
Committed: 2009-02-01T04:49:35-08:00 (16 years, 5 months ago) by douglas
Content type: text/x-sh
Original Path: debian/mod-transform/mod-transform-0.6.0/ltmain.sh
File size: 183740 byte(s)
Log Message:
Debian package for mod_transform.

File Contents

# User Rev Content
1 douglas 63 # 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.94 2004/04/10 16:27:27)"
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) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1842     esac
1843     fi
1844     if test "$pass" = dlopen; then
1845     # Collect dlpreopened libraries
1846     save_deplibs="$deplibs"
1847     deplibs=
1848     fi
1849     for deplib in $libs; do
1850     lib=
1851     found=no
1852     case $deplib in
1853     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1854     if test "$linkmode,$pass" = "prog,link"; then
1855     compile_deplibs="$deplib $compile_deplibs"
1856     finalize_deplibs="$deplib $finalize_deplibs"
1857     else
1858     deplibs="$deplib $deplibs"
1859     fi
1860     continue
1861     ;;
1862     -l*)
1863     if test "$linkmode" != lib && test "$linkmode" != prog; then
1864     $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
1865     continue
1866     fi
1867     if test "$pass" = conv; then
1868     deplibs="$deplib $deplibs"
1869     continue
1870     fi
1871     name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1872     for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1873     for search_ext in .la $std_shrext .so .a; do
1874     # Search the libtool library
1875     lib="$searchdir/lib${name}${search_ext}"
1876     if test -f "$lib"; then
1877     if test "$search_ext" = ".la"; then
1878     found=yes
1879     else
1880     found=no
1881     fi
1882     break 2
1883     fi
1884     done
1885     done
1886     if test "$found" != yes; then
1887     # deplib doesn't seem to be a libtool library
1888     if test "$linkmode,$pass" = "prog,link"; then
1889     compile_deplibs="$deplib $compile_deplibs"
1890     finalize_deplibs="$deplib $finalize_deplibs"
1891     else
1892     deplibs="$deplib $deplibs"
1893     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1894     fi
1895     continue
1896     else # deplib is a libtool library
1897     # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
1898     # We need to do some special things here, and not later.
1899     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
1900     case " $predeps $postdeps " in
1901     *" $deplib "*)
1902     if (${SED} -e '2q' $lib |
1903     grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1904     library_names=
1905     old_library=
1906     case $lib in
1907     */* | *\\*) . $lib ;;
1908     *) . ./$lib ;;
1909     esac
1910     for l in $old_library $library_names; do
1911     ll="$l"
1912     done
1913     if test "X$ll" = "X$old_library" ; then # only static version available
1914     found=no
1915     ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1916     test "X$ladir" = "X$lib" && ladir="."
1917     lib=$ladir/$old_library
1918     if test "$linkmode,$pass" = "prog,link"; then
1919     compile_deplibs="$deplib $compile_deplibs"
1920     finalize_deplibs="$deplib $finalize_deplibs"
1921     else
1922     deplibs="$deplib $deplibs"
1923     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
1924     fi
1925     continue
1926     fi
1927     fi
1928     ;;
1929     *) ;;
1930     esac
1931     fi
1932     fi
1933     ;; # -l
1934     -L*)
1935     case $linkmode in
1936     lib)
1937     deplibs="$deplib $deplibs"
1938     test "$pass" = conv && continue
1939     newdependency_libs="$deplib $newdependency_libs"
1940     newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1941     ;;
1942     prog)
1943     if test "$pass" = conv; then
1944     deplibs="$deplib $deplibs"
1945     continue
1946     fi
1947     if test "$pass" = scan; then
1948     deplibs="$deplib $deplibs"
1949     else
1950     compile_deplibs="$deplib $compile_deplibs"
1951     finalize_deplibs="$deplib $finalize_deplibs"
1952     fi
1953     newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1954     ;;
1955     *)
1956     $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
1957     ;;
1958     esac # linkmode
1959     continue
1960     ;; # -L
1961     -R*)
1962     if test "$pass" = link; then
1963     dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1964     # Make sure the xrpath contains only unique directories.
1965     case "$xrpath " in
1966     *" $dir "*) ;;
1967     *) xrpath="$xrpath $dir" ;;
1968     esac
1969     fi
1970     deplibs="$deplib $deplibs"
1971     continue
1972     ;;
1973     *.la) lib="$deplib" ;;
1974     *.$libext)
1975     if test "$pass" = conv; then
1976     deplibs="$deplib $deplibs"
1977     continue
1978     fi
1979     case $linkmode in
1980     lib)
1981     if test "$deplibs_check_method" != pass_all; then
1982     $echo
1983     $echo "*** Warning: Trying to link with static lib archive $deplib."
1984     $echo "*** I have the capability to make that library automatically link in when"
1985     $echo "*** you link to this library. But I can only do this if you have a"
1986     $echo "*** shared version of the library, which you do not appear to have"
1987     $echo "*** because the file extensions .$libext of this argument makes me believe"
1988     $echo "*** that it is just a static archive that I should not used here."
1989     else
1990     $echo
1991     $echo "*** Warning: Linking the shared library $output against the"
1992     $echo "*** static library $deplib is not portable!"
1993     deplibs="$deplib $deplibs"
1994     fi
1995     continue
1996     ;;
1997     prog)
1998     if test "$pass" != link; then
1999     deplibs="$deplib $deplibs"
2000     else
2001     compile_deplibs="$deplib $compile_deplibs"
2002     finalize_deplibs="$deplib $finalize_deplibs"
2003     fi
2004     continue
2005     ;;
2006     esac # linkmode
2007     ;; # *.$libext
2008     *.lo | *.$objext)
2009     if test "$pass" = conv; then
2010     deplibs="$deplib $deplibs"
2011     elif test "$linkmode" = prog; then
2012     if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2013     # If there is no dlopen support or we're linking statically,
2014     # we need to preload.
2015     newdlprefiles="$newdlprefiles $deplib"
2016     compile_deplibs="$deplib $compile_deplibs"
2017     finalize_deplibs="$deplib $finalize_deplibs"
2018     else
2019     newdlfiles="$newdlfiles $deplib"
2020     fi
2021     fi
2022     continue
2023     ;;
2024     %DEPLIBS%)
2025     alldeplibs=yes
2026     continue
2027     ;;
2028     esac # case $deplib
2029     if test "$found" = yes || test -f "$lib"; then :
2030     else
2031     $echo "$modename: cannot find the library \`$lib'" 1>&2
2032     exit $EXIT_FAILURE
2033     fi
2034    
2035     # Check to see that this really is a libtool archive.
2036     if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2037     else
2038     $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2039     exit $EXIT_FAILURE
2040     fi
2041    
2042     ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2043     test "X$ladir" = "X$lib" && ladir="."
2044    
2045     dlname=
2046     dlopen=
2047     dlpreopen=
2048     libdir=
2049     library_names=
2050     old_library=
2051     # If the library was installed with an old release of libtool,
2052     # it will not redefine variables installed, or shouldnotlink
2053     installed=yes
2054     shouldnotlink=no
2055    
2056     # Read the .la file
2057     case $lib in
2058     */* | *\\*) . $lib ;;
2059     *) . ./$lib ;;
2060     esac
2061    
2062     if test "$linkmode,$pass" = "lib,link" ||
2063     test "$linkmode,$pass" = "prog,scan" ||
2064     { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2065     test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2066     test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2067     fi
2068    
2069     if test "$pass" = conv; then
2070     # Only check for convenience libraries
2071     deplibs="$lib $deplibs"
2072     if test -z "$libdir"; then
2073     if test -z "$old_library"; then
2074     $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2075     exit $EXIT_FAILURE
2076     fi
2077     # It is a libtool convenience library, so add in its objects.
2078     convenience="$convenience $ladir/$objdir/$old_library"
2079     old_convenience="$old_convenience $ladir/$objdir/$old_library"
2080     tmp_libs=
2081     for deplib in $dependency_libs; do
2082     deplibs="$deplib $deplibs"
2083     if test "X$duplicate_deps" = "Xyes" ; then
2084     case "$tmp_libs " in
2085     *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2086     esac
2087     fi
2088     tmp_libs="$tmp_libs $deplib"
2089     done
2090     elif test "$linkmode" != prog && test "$linkmode" != lib; then
2091     $echo "$modename: \`$lib' is not a convenience library" 1>&2
2092     exit $EXIT_FAILURE
2093     fi
2094     continue
2095     fi # $pass = conv
2096    
2097    
2098     # Get the name of the library we link against.
2099     linklib=
2100     for l in $old_library $library_names; do
2101     linklib="$l"
2102     done
2103     if test -z "$linklib"; then
2104     $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2105     exit $EXIT_FAILURE
2106     fi
2107    
2108     # This library was specified with -dlopen.
2109     if test "$pass" = dlopen; then
2110     if test -z "$libdir"; then
2111     $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2112     exit $EXIT_FAILURE
2113     fi
2114     if test -z "$dlname" ||
2115     test "$dlopen_support" != yes ||
2116     test "$build_libtool_libs" = no; then
2117     # If there is no dlname, no dlopen support or we're linking
2118     # statically, we need to preload. We also need to preload any
2119     # dependent libraries so libltdl's deplib preloader doesn't
2120     # bomb out in the load deplibs phase.
2121     dlprefiles="$dlprefiles $lib $dependency_libs"
2122     else
2123     newdlfiles="$newdlfiles $lib"
2124     fi
2125     continue
2126     fi # $pass = dlopen
2127    
2128     # We need an absolute path.
2129     case $ladir in
2130     [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2131     *)
2132     abs_ladir=`cd "$ladir" && pwd`
2133     if test -z "$abs_ladir"; then
2134     $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2135     $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2136     abs_ladir="$ladir"
2137     fi
2138     ;;
2139     esac
2140     laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2141    
2142     # Find the relevant object directory and library name.
2143     if test "X$installed" = Xyes; then
2144     if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2145     $echo "$modename: warning: library \`$lib' was moved." 1>&2
2146     dir="$ladir"
2147     absdir="$abs_ladir"
2148     libdir="$abs_ladir"
2149     else
2150     dir="$libdir"
2151     absdir="$libdir"
2152     fi
2153     else
2154     dir="$ladir/$objdir"
2155     absdir="$abs_ladir/$objdir"
2156     # Remove this search path later
2157     notinst_path="$notinst_path $abs_ladir"
2158     fi # $installed = yes
2159     name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2160    
2161     # This library was specified with -dlpreopen.
2162     if test "$pass" = dlpreopen; then
2163     if test -z "$libdir"; then
2164     $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2165     exit $EXIT_FAILURE
2166     fi
2167     # Prefer using a static library (so that no silly _DYNAMIC symbols
2168     # are required to link).
2169     if test -n "$old_library"; then
2170     newdlprefiles="$newdlprefiles $dir/$old_library"
2171     # Otherwise, use the dlname, so that lt_dlopen finds it.
2172     elif test -n "$dlname"; then
2173     newdlprefiles="$newdlprefiles $dir/$dlname"
2174     else
2175     newdlprefiles="$newdlprefiles $dir/$linklib"
2176     fi
2177     fi # $pass = dlpreopen
2178    
2179     if test -z "$libdir"; then
2180     # Link the convenience library
2181     if test "$linkmode" = lib; then
2182     deplibs="$dir/$old_library $deplibs"
2183     elif test "$linkmode,$pass" = "prog,link"; then
2184     compile_deplibs="$dir/$old_library $compile_deplibs"
2185     finalize_deplibs="$dir/$old_library $finalize_deplibs"
2186     else
2187     deplibs="$lib $deplibs" # used for prog,scan pass
2188     fi
2189     continue
2190     fi
2191    
2192    
2193     if test "$linkmode" = prog && test "$pass" != link; then
2194     newlib_search_path="$newlib_search_path $ladir"
2195     deplibs="$lib $deplibs"
2196    
2197     linkalldeplibs=no
2198     if test "$link_all_deplibs" != no || test -z "$library_names" ||
2199     test "$build_libtool_libs" = no; then
2200     linkalldeplibs=yes
2201     fi
2202    
2203     tmp_libs=
2204     for deplib in $dependency_libs; do
2205     case $deplib in
2206     -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2207     esac
2208     # Need to link against all dependency_libs?
2209     if test "$linkalldeplibs" = yes; then
2210     deplibs="$deplib $deplibs"
2211     else
2212     # Need to hardcode shared library paths
2213     # or/and link against static libraries
2214     newdependency_libs="$deplib $newdependency_libs"
2215     fi
2216     if test "X$duplicate_deps" = "Xyes" ; then
2217     case "$tmp_libs " in
2218     *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2219     esac
2220     fi
2221     tmp_libs="$tmp_libs $deplib"
2222     done # for deplib
2223     continue
2224     fi # $linkmode = prog...
2225    
2226     if test "$linkmode,$pass" = "prog,link"; then
2227     if test -n "$library_names" &&
2228     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2229     # We need to hardcode the library path
2230     if test -n "$shlibpath_var"; then
2231     # Make sure the rpath contains only unique directories.
2232     case "$temp_rpath " in
2233     *" $dir "*) ;;
2234     *" $absdir "*) ;;
2235     *) temp_rpath="$temp_rpath $dir" ;;
2236     esac
2237     fi
2238    
2239     # Hardcode the library path.
2240     # Skip directories that are in the system default run-time
2241     # search path.
2242     case " $sys_lib_dlsearch_path " in
2243     *" $absdir "*) ;;
2244     *)
2245     case "$compile_rpath " in
2246     *" $absdir "*) ;;
2247     *) compile_rpath="$compile_rpath $absdir"
2248     esac
2249     ;;
2250     esac
2251     case " $sys_lib_dlsearch_path " in
2252     *" $libdir "*) ;;
2253     *)
2254     case "$finalize_rpath " in
2255     *" $libdir "*) ;;
2256     *) finalize_rpath="$finalize_rpath $libdir"
2257     esac
2258     ;;
2259     esac
2260     fi # $linkmode,$pass = prog,link...
2261    
2262     if test "$alldeplibs" = yes &&
2263     { test "$deplibs_check_method" = pass_all ||
2264     { test "$build_libtool_libs" = yes &&
2265     test -n "$library_names"; }; }; then
2266     # We only need to search for static libraries
2267     continue
2268     fi
2269     fi
2270    
2271     link_static=no # Whether the deplib will be linked statically
2272     if test -n "$library_names" &&
2273     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2274     if test "$installed" = no; then
2275     notinst_deplibs="$notinst_deplibs $lib"
2276     need_relink=yes
2277     fi
2278     # This is a shared library
2279    
2280     # Warn about portability, can't link against -module's on
2281     # some systems (darwin)
2282     if test "$shouldnotlink" = yes && test "$pass" = link ; then
2283     $echo
2284     if test "$linkmode" = prog; then
2285     $echo "*** Warning: Linking the executable $output against the loadable module"
2286     else
2287     $echo "*** Warning: Linking the shared library $output against the loadable module"
2288     fi
2289     $echo "*** $linklib is not portable!"
2290     fi
2291     if test "$linkmode" = lib &&
2292     test "$hardcode_into_libs" = yes; then
2293     # Hardcode the library path.
2294     # Skip directories that are in the system default run-time
2295     # search path.
2296     case " $sys_lib_dlsearch_path " in
2297     *" $absdir "*) ;;
2298     *)
2299     case "$compile_rpath " in
2300     *" $absdir "*) ;;
2301     *) compile_rpath="$compile_rpath $absdir"
2302     esac
2303     ;;
2304     esac
2305     case " $sys_lib_dlsearch_path " in
2306     *" $libdir "*) ;;
2307     *)
2308     case "$finalize_rpath " in
2309     *" $libdir "*) ;;
2310     *) finalize_rpath="$finalize_rpath $libdir"
2311     esac
2312     ;;
2313     esac
2314     fi
2315    
2316     if test -n "$old_archive_from_expsyms_cmds"; then
2317     # figure out the soname
2318     set dummy $library_names
2319     realname="$2"
2320     shift; shift
2321     libname=`eval \\$echo \"$libname_spec\"`
2322     # use dlname if we got it. it's perfectly good, no?
2323     if test -n "$dlname"; then
2324     soname="$dlname"
2325     elif test -n "$soname_spec"; then
2326     # bleh windows
2327     case $host in
2328     *cygwin* | mingw*)
2329     major=`expr $current - $age`
2330     versuffix="-$major"
2331     ;;
2332     esac
2333     eval soname=\"$soname_spec\"
2334     else
2335     soname="$realname"
2336     fi
2337    
2338     # Make a new name for the extract_expsyms_cmds to use
2339     soroot="$soname"
2340     soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2341     newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2342    
2343     # If the library has no export list, then create one now
2344     if test -f "$output_objdir/$soname-def"; then :
2345     else
2346     $show "extracting exported symbol list from \`$soname'"
2347     save_ifs="$IFS"; IFS='~'
2348     cmds=$extract_expsyms_cmds
2349     for cmd in $cmds; do
2350     IFS="$save_ifs"
2351     eval cmd=\"$cmd\"
2352     $show "$cmd"
2353     $run eval "$cmd" || exit $?
2354     done
2355     IFS="$save_ifs"
2356     fi
2357    
2358     # Create $newlib
2359     if test -f "$output_objdir/$newlib"; then :; else
2360     $show "generating import library for \`$soname'"
2361     save_ifs="$IFS"; IFS='~'
2362     cmds=$old_archive_from_expsyms_cmds
2363     for cmd in $cmds; do
2364     IFS="$save_ifs"
2365     eval cmd=\"$cmd\"
2366     $show "$cmd"
2367     $run eval "$cmd" || exit $?
2368     done
2369     IFS="$save_ifs"
2370     fi
2371     # make sure the library variables are pointing to the new library
2372     dir=$output_objdir
2373     linklib=$newlib
2374     fi # test -n "$old_archive_from_expsyms_cmds"
2375    
2376     if test "$linkmode" = prog || test "$mode" != relink; then
2377     add_shlibpath=
2378     add_dir=
2379     add=
2380     lib_linked=yes
2381     case $hardcode_action in
2382     immediate | unsupported)
2383     if test "$hardcode_direct" = no; then
2384     add="$dir/$linklib"
2385     case $host in
2386     *-*-sco3.2v5* ) add_dir="-L$dir" ;;
2387     *-*-darwin* )
2388     # if the lib is a module then we can not link against
2389     # it, someone is ignoring the new warnings I added
2390     if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
2391     $echo "** Warning, lib $linklib is a module, not a shared library"
2392     if test -z "$old_library" ; then
2393     $echo
2394     $echo "** And there doesn't seem to be a static archive available"
2395     $echo "** The link will probably fail, sorry"
2396     else
2397     add="$dir/$old_library"
2398     fi
2399     fi
2400     esac
2401     elif test "$hardcode_minus_L" = no; then
2402     case $host in
2403     *-*-sunos*) add_shlibpath="$dir" ;;
2404     esac
2405     add_dir="-L$dir"
2406     add="-l$name"
2407     elif test "$hardcode_shlibpath_var" = no; then
2408     add_shlibpath="$dir"
2409     add="-l$name"
2410     else
2411     lib_linked=no
2412     fi
2413     ;;
2414     relink)
2415     if test "$hardcode_direct" = yes; then
2416     add="$dir/$linklib"
2417     elif test "$hardcode_minus_L" = yes; then
2418     add_dir="-L$dir"
2419     # Try looking first in the location we're being installed to.
2420     if test -n "$inst_prefix_dir"; then
2421     case "$libdir" in
2422     [\\/]*)
2423     add_dir="$add_dir -L$inst_prefix_dir$libdir"
2424     ;;
2425     esac
2426     fi
2427     add="-l$name"
2428     elif test "$hardcode_shlibpath_var" = yes; then
2429     add_shlibpath="$dir"
2430     add="-l$name"
2431     else
2432     lib_linked=no
2433     fi
2434     ;;
2435     *) lib_linked=no ;;
2436     esac
2437    
2438     if test "$lib_linked" != yes; then
2439     $echo "$modename: configuration error: unsupported hardcode properties"
2440     exit $EXIT_FAILURE
2441     fi
2442    
2443     if test -n "$add_shlibpath"; then
2444     case :$compile_shlibpath: in
2445     *":$add_shlibpath:"*) ;;
2446     *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2447     esac
2448     fi
2449     if test "$linkmode" = prog; then
2450     test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2451     test -n "$add" && compile_deplibs="$add $compile_deplibs"
2452     else
2453     test -n "$add_dir" && deplibs="$add_dir $deplibs"
2454     test -n "$add" && deplibs="$add $deplibs"
2455     if test "$hardcode_direct" != yes && \
2456     test "$hardcode_minus_L" != yes && \
2457     test "$hardcode_shlibpath_var" = yes; then
2458     case :$finalize_shlibpath: in
2459     *":$libdir:"*) ;;
2460     *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2461     esac
2462     fi
2463     fi
2464     fi
2465    
2466     if test "$linkmode" = prog || test "$mode" = relink; then
2467     add_shlibpath=
2468     add_dir=
2469     add=
2470     # Finalize command for both is simple: just hardcode it.
2471     if test "$hardcode_direct" = yes; then
2472     add="$libdir/$linklib"
2473     elif test "$hardcode_minus_L" = yes; then
2474     add_dir="-L$libdir"
2475     add="-l$name"
2476     elif test "$hardcode_shlibpath_var" = yes; then
2477     case :$finalize_shlibpath: in
2478     *":$libdir:"*) ;;
2479     *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2480     esac
2481     add="-l$name"
2482     elif test "$hardcode_automatic" = yes; then
2483     if test -n "$inst_prefix_dir" &&
2484     test -f "$inst_prefix_dir$libdir/$linklib" ; then
2485     add="$inst_prefix_dir$libdir/$linklib"
2486     else
2487     add="$libdir/$linklib"
2488     fi
2489     else
2490     # We cannot seem to hardcode it, guess we'll fake it.
2491     add_dir="-L$libdir"
2492     # Try looking first in the location we're being installed to.
2493     if test -n "$inst_prefix_dir"; then
2494     case "$libdir" in
2495     [\\/]*)
2496     add_dir="$add_dir -L$inst_prefix_dir$libdir"
2497     ;;
2498     esac
2499     fi
2500     add="-l$name"
2501     fi
2502    
2503     if test "$linkmode" = prog; then
2504     test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2505     test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2506     else
2507     test -n "$add_dir" && deplibs="$add_dir $deplibs"
2508     test -n "$add" && deplibs="$add $deplibs"
2509     fi
2510     fi
2511     elif test "$linkmode" = prog; then
2512     # Here we assume that one of hardcode_direct or hardcode_minus_L
2513     # is not unsupported. This is valid on all known static and
2514     # shared platforms.
2515     if test "$hardcode_direct" != unsupported; then
2516     test -n "$old_library" && linklib="$old_library"
2517     compile_deplibs="$dir/$linklib $compile_deplibs"
2518     finalize_deplibs="$dir/$linklib $finalize_deplibs"
2519     else
2520     compile_deplibs="-l$name -L$dir $compile_deplibs"
2521     finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2522     fi
2523     elif test "$build_libtool_libs" = yes; then
2524     # Not a shared library
2525     if test "$deplibs_check_method" != pass_all; then
2526     # We're trying link a shared library against a static one
2527     # but the system doesn't support it.
2528    
2529     # Just print a warning and add the library to dependency_libs so
2530     # that the program can be linked against the static library.
2531     $echo
2532     $echo "*** Warning: This system can not link to static lib archive $lib."
2533     $echo "*** I have the capability to make that library automatically link in when"
2534     $echo "*** you link to this library. But I can only do this if you have a"
2535     $echo "*** shared version of the library, which you do not appear to have."
2536     if test "$module" = yes; then
2537     $echo "*** But as you try to build a module library, libtool will still create "
2538     $echo "*** a static module, that should work as long as the dlopening application"
2539     $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2540     if test -z "$global_symbol_pipe"; then
2541     $echo
2542     $echo "*** However, this would only work if libtool was able to extract symbol"
2543     $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2544     $echo "*** not find such a program. So, this module is probably useless."
2545     $echo "*** \`nm' from GNU binutils and a full rebuild may help."
2546     fi
2547     if test "$build_old_libs" = no; then
2548     build_libtool_libs=module
2549     build_old_libs=yes
2550     else
2551     build_libtool_libs=no
2552     fi
2553     fi
2554     else
2555     convenience="$convenience $dir/$old_library"
2556     old_convenience="$old_convenience $dir/$old_library"
2557     deplibs="$dir/$old_library $deplibs"
2558     link_static=yes
2559     fi
2560     fi # link shared/static library?
2561    
2562     if test "$linkmode" = lib; then
2563     if test -n "$dependency_libs" &&
2564     { test "$hardcode_into_libs" != yes ||
2565     test "$build_old_libs" = yes ||
2566     test "$link_static" = yes; }; then
2567     # Extract -R from dependency_libs
2568     temp_deplibs=
2569     for libdir in $dependency_libs; do
2570     case $libdir in
2571     -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2572     case " $xrpath " in
2573     *" $temp_xrpath "*) ;;
2574     *) xrpath="$xrpath $temp_xrpath";;
2575     esac;;
2576     *) temp_deplibs="$temp_deplibs $libdir";;
2577     esac
2578     done
2579     dependency_libs="$temp_deplibs"
2580     fi
2581    
2582     newlib_search_path="$newlib_search_path $absdir"
2583     # Link against this library
2584     test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2585     # ... and its dependency_libs
2586     tmp_libs=
2587     for deplib in $dependency_libs; do
2588     newdependency_libs="$deplib $newdependency_libs"
2589     if test "X$duplicate_deps" = "Xyes" ; then
2590     case "$tmp_libs " in
2591     *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2592     esac
2593     fi
2594     tmp_libs="$tmp_libs $deplib"
2595     done
2596    
2597     if test "$link_all_deplibs" != no; then
2598     # Add the search paths of all dependency libraries
2599     for deplib in $dependency_libs; do
2600     case $deplib in
2601     -L*) path="$deplib" ;;
2602     *.la)
2603     dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2604     test "X$dir" = "X$deplib" && dir="."
2605     # We need an absolute path.
2606     case $dir in
2607     [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2608     *)
2609     absdir=`cd "$dir" && pwd`
2610     if test -z "$absdir"; then
2611     $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2612     absdir="$dir"
2613     fi
2614     ;;
2615     esac
2616     if grep "^installed=no" $deplib > /dev/null; then
2617     path="$absdir/$objdir"
2618     else
2619     eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2620     if test -z "$libdir"; then
2621     $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2622     exit $EXIT_FAILURE
2623     fi
2624     if test "$absdir" != "$libdir"; then
2625     $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2626     fi
2627     path="$absdir"
2628     fi
2629     depdepl=
2630     case $host in
2631     *-*-darwin*)
2632     # we do not want to link against static libs,
2633     # but need to link against shared
2634     eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2635     if test -n "$deplibrary_names" ; then
2636     for tmp in $deplibrary_names ; do
2637     depdepl=$tmp
2638     done
2639     if test -f "$path/$depdepl" ; then
2640     depdepl="$path/$depdepl"
2641     fi
2642     # do not add paths which are already there
2643     case " $newlib_search_path " in
2644     *" $path "*) ;;
2645     *) newlib_search_path="$newlib_search_path $path";;
2646     esac
2647     fi
2648     path=""
2649     ;;
2650     *)
2651     path="-L$path"
2652     ;;
2653     esac
2654     ;;
2655     -l*)
2656     case $host in
2657     *-*-darwin*)
2658     # Again, we only want to link against shared libraries
2659     eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2660     for tmp in $newlib_search_path ; do
2661     if test -f "$tmp/lib$tmp_libs.dylib" ; then
2662     eval depdepl="$tmp/lib$tmp_libs.dylib"
2663     break
2664     fi
2665     done
2666     path=""
2667     ;;
2668     *) continue ;;
2669     esac
2670     ;;
2671     *) continue ;;
2672     esac
2673     case " $deplibs " in
2674     *" $depdepl "*) ;;
2675     *) deplibs="$depdepl $deplibs" ;;
2676     esac
2677     case " $deplibs " in
2678     *" $path "*) ;;
2679     *) deplibs="$deplibs $path" ;;
2680     esac
2681     done
2682     fi # link_all_deplibs != no
2683     fi # linkmode = lib
2684     done # for deplib in $libs
2685     dependency_libs="$newdependency_libs"
2686     if test "$pass" = dlpreopen; then
2687     # Link the dlpreopened libraries before other libraries
2688     for deplib in $save_deplibs; do
2689     deplibs="$deplib $deplibs"
2690     done
2691     fi
2692     if test "$pass" != dlopen; then
2693     if test "$pass" != conv; then
2694     # Make sure lib_search_path contains only unique directories.
2695     lib_search_path=
2696     for dir in $newlib_search_path; do
2697     case "$lib_search_path " in
2698     *" $dir "*) ;;
2699     *) lib_search_path="$lib_search_path $dir" ;;
2700     esac
2701     done
2702     newlib_search_path=
2703     fi
2704    
2705     if test "$linkmode,$pass" != "prog,link"; then
2706     vars="deplibs"
2707     else
2708     vars="compile_deplibs finalize_deplibs"
2709     fi
2710     for var in $vars dependency_libs; do
2711     # Add libraries to $var in reverse order
2712     eval tmp_libs=\"\$$var\"
2713     new_libs=
2714     for deplib in $tmp_libs; do
2715     # FIXME: Pedantically, this is the right thing to do, so
2716     # that some nasty dependency loop isn't accidentally
2717     # broken:
2718     #new_libs="$deplib $new_libs"
2719     # Pragmatically, this seems to cause very few problems in
2720     # practice:
2721     case $deplib in
2722     -L*) new_libs="$deplib $new_libs" ;;
2723     -R*) ;;
2724     *)
2725     # And here is the reason: when a library appears more
2726     # than once as an explicit dependence of a library, or
2727     # is implicitly linked in more than once by the
2728     # compiler, it is considered special, and multiple
2729     # occurrences thereof are not removed. Compare this
2730     # with having the same library being listed as a
2731     # dependency of multiple other libraries: in this case,
2732     # we know (pedantically, we assume) the library does not
2733     # need to be listed more than once, so we keep only the
2734     # last copy. This is not always right, but it is rare
2735     # enough that we require users that really mean to play
2736     # such unportable linking tricks to link the library
2737     # using -Wl,-lname, so that libtool does not consider it
2738     # for duplicate removal.
2739     case " $specialdeplibs " in
2740     *" $deplib "*) new_libs="$deplib $new_libs" ;;
2741     *)
2742     case " $new_libs " in
2743     *" $deplib "*) ;;
2744     *) new_libs="$deplib $new_libs" ;;
2745     esac
2746     ;;
2747     esac
2748     ;;
2749     esac
2750     done
2751     tmp_libs=
2752     for deplib in $new_libs; do
2753     case $deplib in
2754     -L*)
2755     case " $tmp_libs " in
2756     *" $deplib "*) ;;
2757     *) tmp_libs="$tmp_libs $deplib" ;;
2758     esac
2759     ;;
2760     *) tmp_libs="$tmp_libs $deplib" ;;
2761     esac
2762     done
2763     eval $var=\"$tmp_libs\"
2764     done # for var
2765     fi
2766     # Last step: remove runtime libs from dependency_libs
2767     # (they stay in deplibs)
2768     tmp_libs=
2769     for i in $dependency_libs ; do
2770     case " $predeps $postdeps $compiler_lib_search_path " in
2771     *" $i "*)
2772     i=""
2773     ;;
2774     esac
2775     if test -n "$i" ; then
2776     tmp_libs="$tmp_libs $i"
2777     fi
2778     done
2779     dependency_libs=$tmp_libs
2780     done # for pass
2781     if test "$linkmode" = prog; then
2782     dlfiles="$newdlfiles"
2783     dlprefiles="$newdlprefiles"
2784     fi
2785    
2786     case $linkmode in
2787     oldlib)
2788     if test -n "$deplibs"; then
2789     $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
2790     fi
2791    
2792     if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2793     $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2794     fi
2795    
2796     if test -n "$rpath"; then
2797     $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2798     fi
2799    
2800     if test -n "$xrpath"; then
2801     $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2802     fi
2803    
2804     if test -n "$vinfo"; then
2805     $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
2806     fi
2807    
2808     if test -n "$release"; then
2809     $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2810     fi
2811    
2812     if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2813     $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2814     fi
2815    
2816     # Now set the variables for building old libraries.
2817     build_libtool_libs=no
2818     oldlibs="$output"
2819     objs="$objs$old_deplibs"
2820     ;;
2821    
2822     lib)
2823     # Make sure we only generate libraries of the form `libNAME.la'.
2824     case $outputname in
2825     lib*)
2826     name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2827     eval shared_ext=\"$shrext_cmds\"
2828     eval libname=\"$libname_spec\"
2829     ;;
2830     *)
2831     if test "$module" = no; then
2832     $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2833     $echo "$help" 1>&2
2834     exit $EXIT_FAILURE
2835     fi
2836     if test "$need_lib_prefix" != no; then
2837     # Add the "lib" prefix for modules if required
2838     name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2839     eval shared_ext=\"$shrext_cmds\"
2840     eval libname=\"$libname_spec\"
2841     else
2842     libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2843     fi
2844     ;;
2845     esac
2846    
2847     if test -n "$objs"; then
2848     if test "$deplibs_check_method" != pass_all; then
2849     $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2850     exit $EXIT_FAILURE
2851     else
2852     $echo
2853     $echo "*** Warning: Linking the shared library $output against the non-libtool"
2854     $echo "*** objects $objs is not portable!"
2855     libobjs="$libobjs $objs"
2856     fi
2857     fi
2858    
2859     if test "$dlself" != no; then
2860     $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2861     fi
2862    
2863     set dummy $rpath
2864     if test "$#" -gt 2; then
2865     $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2866     fi
2867     install_libdir="$2"
2868    
2869     oldlibs=
2870     if test -z "$rpath"; then
2871     if test "$build_libtool_libs" = yes; then
2872     # Building a libtool convenience library.
2873     # Some compilers have problems with a `.al' extension so
2874     # convenience libraries should have the same extension an
2875     # archive normally would.
2876     oldlibs="$output_objdir/$libname.$libext $oldlibs"
2877     build_libtool_libs=convenience
2878     build_old_libs=yes
2879     fi
2880    
2881     if test -n "$vinfo"; then
2882     $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
2883     fi
2884    
2885     if test -n "$release"; then
2886     $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2887     fi
2888     else
2889    
2890     # Parse the version information argument.
2891     save_ifs="$IFS"; IFS=':'
2892     set dummy $vinfo 0 0 0
2893     IFS="$save_ifs"
2894    
2895     if test -n "$8"; then
2896     $echo "$modename: too many parameters to \`-version-info'" 1>&2
2897     $echo "$help" 1>&2
2898     exit $EXIT_FAILURE
2899     fi
2900    
2901     # convert absolute version numbers to libtool ages
2902     # this retains compatibility with .la files and attempts
2903     # to make the code below a bit more comprehensible
2904    
2905     case $vinfo_number in
2906     yes)
2907     number_major="$2"
2908     number_minor="$3"
2909     number_revision="$4"
2910     #
2911     # There are really only two kinds -- those that
2912     # use the current revision as the major version
2913     # and those that subtract age and use age as
2914     # a minor version. But, then there is irix
2915     # which has an extra 1 added just for fun
2916     #
2917     case $version_type in
2918     darwin|linux|osf|windows)
2919     current=`expr $number_major + $number_minor`
2920     age="$number_minor"
2921     revision="$number_revision"
2922     ;;
2923     freebsd-aout|freebsd-elf|sunos)
2924     current="$number_major"
2925     revision="$number_minor"
2926     age="0"
2927     ;;
2928     irix|nonstopux)
2929     current=`expr $number_major + $number_minor - 1`
2930     age="$number_minor"
2931     revision="$number_minor"
2932     ;;
2933     esac
2934     ;;
2935     no)
2936     current="$2"
2937     revision="$3"
2938     age="$4"
2939     ;;
2940     esac
2941    
2942     # Check that each of the things are valid numbers.
2943     case $current in
2944     0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2945     *)
2946     $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2947     $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2948     exit $EXIT_FAILURE
2949     ;;
2950     esac
2951    
2952     case $revision in
2953     0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2954     *)
2955     $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2956     $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2957     exit $EXIT_FAILURE
2958     ;;
2959     esac
2960    
2961     case $age in
2962     0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2963     *)
2964     $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2965     $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2966     exit $EXIT_FAILURE
2967     ;;
2968     esac
2969    
2970     if test "$age" -gt "$current"; then
2971     $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2972     $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2973     exit $EXIT_FAILURE
2974     fi
2975    
2976     # Calculate the version variables.
2977     major=
2978     versuffix=
2979     verstring=
2980     case $version_type in
2981     none) ;;
2982    
2983     darwin)
2984     # Like Linux, but with the current version available in
2985     # verstring for coding it into the library header
2986     major=.`expr $current - $age`
2987     versuffix="$major.$age.$revision"
2988     # Darwin ld doesn't like 0 for these options...
2989     minor_current=`expr $current + 1`
2990     verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2991     ;;
2992    
2993     freebsd-aout)
2994     major=".$current"
2995     versuffix=".$current.$revision";
2996     ;;
2997    
2998     freebsd-elf)
2999     major=".$current"
3000     versuffix=".$current";
3001     ;;
3002    
3003     irix | nonstopux)
3004     major=`expr $current - $age + 1`
3005    
3006     case $version_type in
3007     nonstopux) verstring_prefix=nonstopux ;;
3008     *) verstring_prefix=sgi ;;
3009     esac
3010     verstring="$verstring_prefix$major.$revision"
3011    
3012     # Add in all the interfaces that we are compatible with.
3013     loop=$revision
3014     while test "$loop" -ne 0; do
3015     iface=`expr $revision - $loop`
3016     loop=`expr $loop - 1`
3017     verstring="$verstring_prefix$major.$iface:$verstring"
3018     done
3019    
3020     # Before this point, $major must not contain `.'.
3021     major=.$major
3022     versuffix="$major.$revision"
3023     ;;
3024    
3025     linux)
3026     major=.`expr $current - $age`
3027     versuffix="$major.$age.$revision"
3028     ;;
3029    
3030     osf)
3031     major=.`expr $current - $age`
3032     versuffix=".$current.$age.$revision"
3033     verstring="$current.$age.$revision"
3034    
3035     # Add in all the interfaces that we are compatible with.
3036     loop=$age
3037     while test "$loop" -ne 0; do
3038     iface=`expr $current - $loop`
3039     loop=`expr $loop - 1`
3040     verstring="$verstring:${iface}.0"
3041     done
3042    
3043     # Make executables depend on our current version.
3044     verstring="$verstring:${current}.0"
3045     ;;
3046    
3047     sunos)
3048     major=".$current"
3049     versuffix=".$current.$revision"
3050     ;;
3051    
3052     windows)
3053     # Use '-' rather than '.', since we only want one
3054     # extension on DOS 8.3 filesystems.
3055     major=`expr $current - $age`
3056     versuffix="-$major"
3057     ;;
3058    
3059     *)
3060     $echo "$modename: unknown library version type \`$version_type'" 1>&2
3061     $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3062     exit $EXIT_FAILURE
3063     ;;
3064     esac
3065    
3066     # Clear the version info if we defaulted, and they specified a release.
3067     if test -z "$vinfo" && test -n "$release"; then
3068     major=
3069     case $version_type in
3070     darwin)
3071     # we can't check for "0.0" in archive_cmds due to quoting
3072     # problems, so we reset it completely
3073     verstring=
3074     ;;
3075     *)
3076     verstring="0.0"
3077     ;;
3078     esac
3079     if test "$need_version" = no; then
3080     versuffix=
3081     else
3082     versuffix=".0.0"
3083     fi
3084     fi
3085    
3086     # Remove version info from name if versioning should be avoided
3087     if test "$avoid_version" = yes && test "$need_version" = no; then
3088     major=
3089     versuffix=
3090     verstring=""
3091     fi
3092    
3093     # Check to see if the archive will have undefined symbols.
3094     if test "$allow_undefined" = yes; then
3095     if test "$allow_undefined_flag" = unsupported; then
3096     $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3097     build_libtool_libs=no
3098     build_old_libs=yes
3099     fi
3100     else
3101     # Don't allow undefined symbols.
3102     allow_undefined_flag="$no_undefined_flag"
3103     fi
3104     fi
3105    
3106     if test "$mode" != relink; then
3107     # Remove our outputs, but don't remove object files since they
3108     # may have been created when compiling PIC objects.
3109     removelist=
3110     tempremovelist=`$echo "$output_objdir/*"`
3111     for p in $tempremovelist; do
3112     case $p in
3113     *.$objext)
3114     ;;
3115     $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3116     if test "X$precious_files_regex" != "X"; then
3117     if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3118     then
3119     continue
3120     fi
3121     fi
3122     removelist="$removelist $p"
3123     ;;
3124     *) ;;
3125     esac
3126     done
3127     if test -n "$removelist"; then
3128     $show "${rm}r $removelist"
3129     $run ${rm}r $removelist
3130     fi
3131     fi
3132    
3133     # Now set the variables for building old libraries.
3134     if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3135     oldlibs="$oldlibs $output_objdir/$libname.$libext"
3136    
3137     # Transform .lo files to .o files.
3138     oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3139     fi
3140    
3141     # Eliminate all temporary directories.
3142     for path in $notinst_path; do
3143     lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
3144     deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
3145     dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
3146     done
3147    
3148     if test -n "$xrpath"; then
3149     # If the user specified any rpath flags, then add them.
3150     temp_xrpath=
3151     for libdir in $xrpath; do
3152     temp_xrpath="$temp_xrpath -R$libdir"
3153     case "$finalize_rpath " in
3154     *" $libdir "*) ;;
3155     *) finalize_rpath="$finalize_rpath $libdir" ;;
3156     esac
3157     done
3158     if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3159     dependency_libs="$temp_xrpath $dependency_libs"
3160     fi
3161     fi
3162    
3163     # Make sure dlfiles contains only unique files that won't be dlpreopened
3164     old_dlfiles="$dlfiles"
3165     dlfiles=
3166     for lib in $old_dlfiles; do
3167     case " $dlprefiles $dlfiles " in
3168     *" $lib "*) ;;
3169     *) dlfiles="$dlfiles $lib" ;;
3170     esac
3171     done
3172    
3173     # Make sure dlprefiles contains only unique files
3174     old_dlprefiles="$dlprefiles"
3175     dlprefiles=
3176     for lib in $old_dlprefiles; do
3177     case "$dlprefiles " in
3178     *" $lib "*) ;;
3179     *) dlprefiles="$dlprefiles $lib" ;;
3180     esac
3181     done
3182    
3183     if test "$build_libtool_libs" = yes; then
3184     if test -n "$rpath"; then
3185     case $host in
3186     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3187     # these systems don't actually have a c library (as such)!
3188     ;;
3189     *-*-rhapsody* | *-*-darwin1.[012])
3190     # Rhapsody C library is in the System framework
3191     deplibs="$deplibs -framework System"
3192     ;;
3193     *-*-netbsd*)
3194     # Don't link with libc until the a.out ld.so is fixed.
3195     ;;
3196     *-*-openbsd* | *-*-freebsd*)
3197     # Do not include libc due to us having libc/libc_r.
3198     test "X$arg" = "X-lc" && continue
3199     ;;
3200     *)
3201     # Add libc to deplibs on all other systems if necessary.
3202     if test "$build_libtool_need_lc" = "yes"; then
3203     deplibs="$deplibs -lc"
3204     fi
3205     ;;
3206     esac
3207     fi
3208    
3209     # Transform deplibs into only deplibs that can be linked in shared.
3210     name_save=$name
3211     libname_save=$libname
3212     release_save=$release
3213     versuffix_save=$versuffix
3214     major_save=$major
3215     # I'm not sure if I'm treating the release correctly. I think
3216     # release should show up in the -l (ie -lgmp5) so we don't want to
3217     # add it in twice. Is that correct?
3218     release=""
3219     versuffix=""
3220     major=""
3221     newdeplibs=
3222     droppeddeps=no
3223     case $deplibs_check_method in
3224     pass_all)
3225     # Don't check for shared/static. Everything works.
3226     # This might be a little naive. We might want to check
3227     # whether the library exists or not. But this is on
3228     # osf3 & osf4 and I'm not really sure... Just
3229     # implementing what was already the behavior.
3230     newdeplibs=$deplibs
3231     ;;
3232     test_compile)
3233     # This code stresses the "libraries are programs" paradigm to its
3234     # limits. Maybe even breaks it. We compile a program, linking it
3235     # against the deplibs as a proxy for the library. Then we can check
3236     # whether they linked in statically or dynamically with ldd.
3237     $rm conftest.c
3238     cat > conftest.c <<EOF
3239     int main() { return 0; }
3240     EOF
3241     $rm conftest
3242     $LTCC -o conftest conftest.c $deplibs
3243     if test "$?" -eq 0 ; then
3244     ldd_output=`ldd conftest`
3245     for i in $deplibs; do
3246     name="`expr $i : '-l\(.*\)'`"
3247     # If $name is empty we are operating on a -L argument.
3248     if test "$name" != "" && test "$name" -ne "0"; then
3249     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3250     case " $predeps $postdeps " in
3251     *" $i "*)
3252     newdeplibs="$newdeplibs $i"
3253     i=""
3254     ;;
3255     esac
3256     fi
3257     if test -n "$i" ; then
3258     libname=`eval \\$echo \"$libname_spec\"`
3259     deplib_matches=`eval \\$echo \"$library_names_spec\"`
3260     set dummy $deplib_matches
3261     deplib_match=$2
3262     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3263     newdeplibs="$newdeplibs $i"
3264     else
3265     droppeddeps=yes
3266     $echo
3267     $echo "*** Warning: dynamic linker does not accept needed library $i."
3268     $echo "*** I have the capability to make that library automatically link in when"
3269     $echo "*** you link to this library. But I can only do this if you have a"
3270     $echo "*** shared version of the library, which I believe you do not have"
3271     $echo "*** because a test_compile did reveal that the linker did not use it for"
3272     $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3273     fi
3274     fi
3275     else
3276     newdeplibs="$newdeplibs $i"
3277     fi
3278     done
3279     else
3280     # Error occurred in the first compile. Let's try to salvage
3281     # the situation: Compile a separate program for each library.
3282     for i in $deplibs; do
3283     name="`expr $i : '-l\(.*\)'`"
3284     # If $name is empty we are operating on a -L argument.
3285     if test "$name" != "" && test "$name" != "0"; then
3286     $rm conftest
3287     $LTCC -o conftest conftest.c $i
3288     # Did it work?
3289     if test "$?" -eq 0 ; then
3290     ldd_output=`ldd conftest`
3291     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3292     case " $predeps $postdeps " in
3293     *" $i "*)
3294     newdeplibs="$newdeplibs $i"
3295     i=""
3296     ;;
3297     esac
3298     fi
3299     if test -n "$i" ; then
3300     libname=`eval \\$echo \"$libname_spec\"`
3301     deplib_matches=`eval \\$echo \"$library_names_spec\"`
3302     set dummy $deplib_matches
3303     deplib_match=$2
3304     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3305     newdeplibs="$newdeplibs $i"
3306     else
3307     droppeddeps=yes
3308     $echo
3309     $echo "*** Warning: dynamic linker does not accept needed library $i."
3310     $echo "*** I have the capability to make that library automatically link in when"
3311     $echo "*** you link to this library. But I can only do this if you have a"
3312     $echo "*** shared version of the library, which you do not appear to have"
3313     $echo "*** because a test_compile did reveal that the linker did not use this one"
3314     $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3315     fi
3316     fi
3317     else
3318     droppeddeps=yes
3319     $echo
3320     $echo "*** Warning! Library $i is needed by this library but I was not able to"
3321     $echo "*** make it link in! You will probably need to install it or some"
3322     $echo "*** library that it depends on before this library will be fully"
3323     $echo "*** functional. Installing it before continuing would be even better."
3324     fi
3325     else
3326     newdeplibs="$newdeplibs $i"
3327     fi
3328     done
3329     fi
3330     ;;
3331     file_magic*)
3332     set dummy $deplibs_check_method
3333     file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3334     for a_deplib in $deplibs; do
3335     name="`expr $a_deplib : '-l\(.*\)'`"
3336     # If $name is empty we are operating on a -L argument.
3337     if test "$name" != "" && test "$name" != "0"; then
3338     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3339     case " $predeps $postdeps " in
3340     *" $a_deplib "*)
3341     newdeplibs="$newdeplibs $a_deplib"
3342     a_deplib=""
3343     ;;
3344     esac
3345     fi
3346     if test -n "$a_deplib" ; then
3347     libname=`eval \\$echo \"$libname_spec\"`
3348     for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3349     potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3350     for potent_lib in $potential_libs; do
3351     # Follow soft links.
3352     if ls -lLd "$potent_lib" 2>/dev/null \
3353     | grep " -> " >/dev/null; then
3354     continue
3355     fi
3356     # The statement above tries to avoid entering an
3357     # endless loop below, in case of cyclic links.
3358     # We might still enter an endless loop, since a link
3359     # loop can be closed while we follow links,
3360     # but so what?
3361     potlib="$potent_lib"
3362     while test -h "$potlib" 2>/dev/null; do
3363     potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3364     case $potliblink in
3365     [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3366     *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3367     esac
3368     done
3369     if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3370     | ${SED} 10q \
3371     | $EGREP "$file_magic_regex" > /dev/null; then
3372     newdeplibs="$newdeplibs $a_deplib"
3373     a_deplib=""
3374     break 2
3375     fi
3376     done
3377     done
3378     fi
3379     if test -n "$a_deplib" ; then
3380     droppeddeps=yes
3381     $echo
3382     $echo "*** Warning: linker path does not have real file for library $a_deplib."
3383     $echo "*** I have the capability to make that library automatically link in when"
3384     $echo "*** you link to this library. But I can only do this if you have a"
3385     $echo "*** shared version of the library, which you do not appear to have"
3386     $echo "*** because I did check the linker path looking for a file starting"
3387     if test -z "$potlib" ; then
3388     $echo "*** with $libname but no candidates were found. (...for file magic test)"
3389     else
3390     $echo "*** with $libname and none of the candidates passed a file format test"
3391     $echo "*** using a file magic. Last file checked: $potlib"
3392     fi
3393     fi
3394     else
3395     # Add a -L argument.
3396     newdeplibs="$newdeplibs $a_deplib"
3397     fi
3398     done # Gone through all deplibs.
3399     ;;
3400     match_pattern*)
3401     set dummy $deplibs_check_method
3402     match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3403     for a_deplib in $deplibs; do
3404     name="`expr $a_deplib : '-l\(.*\)'`"
3405     # If $name is empty we are operating on a -L argument.
3406     if test -n "$name" && test "$name" != "0"; then
3407     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3408     case " $predeps $postdeps " in
3409     *" $a_deplib "*)
3410     newdeplibs="$newdeplibs $a_deplib"
3411     a_deplib=""
3412     ;;
3413     esac
3414     fi
3415     if test -n "$a_deplib" ; then
3416     libname=`eval \\$echo \"$libname_spec\"`
3417     for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3418     potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3419     for potent_lib in $potential_libs; do
3420     potlib="$potent_lib" # see symlink-check above in file_magic test
3421     if eval $echo \"$potent_lib\" 2>/dev/null \
3422     | ${SED} 10q \
3423     | $EGREP "$match_pattern_regex" > /dev/null; then
3424     newdeplibs="$newdeplibs $a_deplib"
3425     a_deplib=""
3426     break 2
3427     fi
3428     done
3429     done
3430     fi
3431     if test -n "$a_deplib" ; then
3432     droppeddeps=yes
3433     $echo
3434     $echo "*** Warning: linker path does not have real file for library $a_deplib."
3435     $echo "*** I have the capability to make that library automatically link in when"
3436     $echo "*** you link to this library. But I can only do this if you have a"
3437     $echo "*** shared version of the library, which you do not appear to have"
3438     $echo "*** because I did check the linker path looking for a file starting"
3439     if test -z "$potlib" ; then
3440     $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3441     else
3442     $echo "*** with $libname and none of the candidates passed a file format test"
3443     $echo "*** using a regex pattern. Last file checked: $potlib"
3444     fi
3445     fi
3446     else
3447     # Add a -L argument.
3448     newdeplibs="$newdeplibs $a_deplib"
3449     fi
3450     done # Gone through all deplibs.
3451     ;;
3452     none | unknown | *)
3453     newdeplibs=""
3454     tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3455     -e 's/ -[LR][^ ]*//g'`
3456     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3457     for i in $predeps $postdeps ; do
3458     # can't use Xsed below, because $i might contain '/'
3459     tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3460     done
3461     fi
3462     if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
3463     | grep . >/dev/null; then
3464     $echo
3465     if test "X$deplibs_check_method" = "Xnone"; then
3466     $echo "*** Warning: inter-library dependencies are not supported in this platform."
3467     else
3468     $echo "*** Warning: inter-library dependencies are not known to be supported."
3469     fi
3470     $echo "*** All declared inter-library dependencies are being dropped."
3471     droppeddeps=yes
3472     fi
3473     ;;
3474     esac
3475     versuffix=$versuffix_save
3476     major=$major_save
3477     release=$release_save
3478     libname=$libname_save
3479     name=$name_save
3480    
3481     case $host in
3482     *-*-rhapsody* | *-*-darwin1.[012])
3483     # On Rhapsody replace the C library is the System framework
3484     newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3485     ;;
3486     esac
3487    
3488     if test "$droppeddeps" = yes; then
3489     if test "$module" = yes; then
3490     $echo
3491     $echo "*** Warning: libtool could not satisfy all declared inter-library"
3492     $echo "*** dependencies of module $libname. Therefore, libtool will create"
3493     $echo "*** a static module, that should work as long as the dlopening"
3494     $echo "*** application is linked with the -dlopen flag."
3495     if test -z "$global_symbol_pipe"; then
3496     $echo
3497     $echo "*** However, this would only work if libtool was able to extract symbol"
3498     $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3499     $echo "*** not find such a program. So, this module is probably useless."
3500     $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3501     fi
3502     if test "$build_old_libs" = no; then
3503     oldlibs="$output_objdir/$libname.$libext"
3504     build_libtool_libs=module
3505     build_old_libs=yes
3506     else
3507     build_libtool_libs=no
3508     fi
3509     else
3510     $echo "*** The inter-library dependencies that have been dropped here will be"
3511     $echo "*** automatically added whenever a program is linked with this library"
3512     $echo "*** or is declared to -dlopen it."
3513    
3514     if test "$allow_undefined" = no; then
3515     $echo
3516     $echo "*** Since this library must not contain undefined symbols,"
3517     $echo "*** because either the platform does not support them or"
3518     $echo "*** it was explicitly requested with -no-undefined,"
3519     $echo "*** libtool will only create a static version of it."
3520     if test "$build_old_libs" = no; then
3521     oldlibs="$output_objdir/$libname.$libext"
3522     build_libtool_libs=module
3523     build_old_libs=yes
3524     else
3525     build_libtool_libs=no
3526     fi
3527     fi
3528     fi
3529     fi
3530     # Done checking deplibs!
3531     deplibs=$newdeplibs
3532     fi
3533    
3534     # All the library-specific variables (install_libdir is set above).
3535     library_names=
3536     old_library=
3537     dlname=
3538    
3539     # Test again, we may have decided not to build it any more
3540     if test "$build_libtool_libs" = yes; then
3541     if test "$hardcode_into_libs" = yes; then
3542     # Hardcode the library paths
3543     hardcode_libdirs=
3544     dep_rpath=
3545     rpath="$finalize_rpath"
3546     test "$mode" != relink && rpath="$compile_rpath$rpath"
3547     for libdir in $rpath; do
3548     if test -n "$hardcode_libdir_flag_spec"; then
3549     if test -n "$hardcode_libdir_separator"; then
3550     if test -z "$hardcode_libdirs"; then
3551     hardcode_libdirs="$libdir"
3552     else
3553     # Just accumulate the unique libdirs.
3554     case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3555     *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3556     ;;
3557     *)
3558     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3559     ;;
3560     esac
3561     fi
3562     else
3563     eval flag=\"$hardcode_libdir_flag_spec\"
3564     dep_rpath="$dep_rpath $flag"
3565     fi
3566     elif test -n "$runpath_var"; then
3567     case "$perm_rpath " in
3568     *" $libdir "*) ;;
3569     *) perm_rpath="$perm_rpath $libdir" ;;
3570     esac
3571     fi
3572     done
3573     # Substitute the hardcoded libdirs into the rpath.
3574     if test -n "$hardcode_libdir_separator" &&
3575     test -n "$hardcode_libdirs"; then
3576     libdir="$hardcode_libdirs"
3577     if test -n "$hardcode_libdir_flag_spec_ld"; then
3578     eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3579     else
3580     eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3581     fi
3582     fi
3583     if test -n "$runpath_var" && test -n "$perm_rpath"; then
3584     # We should set the runpath_var.
3585     rpath=
3586     for dir in $perm_rpath; do
3587     rpath="$rpath$dir:"
3588     done
3589     eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3590     fi
3591     test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3592     fi
3593    
3594     shlibpath="$finalize_shlibpath"
3595     test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3596     if test -n "$shlibpath"; then
3597     eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3598     fi
3599    
3600     # Get the real and link names of the library.
3601     eval shared_ext=\"$shrext_cmds\"
3602     eval library_names=\"$library_names_spec\"
3603     set dummy $library_names
3604     realname="$2"
3605     shift; shift
3606    
3607     if test -n "$soname_spec"; then
3608     eval soname=\"$soname_spec\"
3609     else
3610     soname="$realname"
3611     fi
3612     if test -z "$dlname"; then
3613     dlname=$soname
3614     fi
3615    
3616     lib="$output_objdir/$realname"
3617     for link
3618     do
3619     linknames="$linknames $link"
3620     done
3621    
3622     # Use standard objects if they are pic
3623     test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3624    
3625     # Prepare the list of exported symbols
3626     if test -z "$export_symbols"; then
3627     if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3628     $show "generating symbol list for \`$libname.la'"
3629     export_symbols="$output_objdir/$libname.exp"
3630     $run $rm $export_symbols
3631     cmds=$export_symbols_cmds
3632     save_ifs="$IFS"; IFS='~'
3633     for cmd in $cmds; do
3634     IFS="$save_ifs"
3635     eval cmd=\"$cmd\"
3636     if len=`expr "X$cmd" : ".*"` &&
3637     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3638     $show "$cmd"
3639     $run eval "$cmd" || exit $?
3640     skipped_export=false
3641     else
3642     # The command line is too long to execute in one step.
3643     $show "using reloadable object file for export list..."
3644     skipped_export=:
3645     fi
3646     done
3647     IFS="$save_ifs"
3648     if test -n "$export_symbols_regex"; then
3649     $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3650     $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3651     $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3652     $run eval '$mv "${export_symbols}T" "$export_symbols"'
3653     fi
3654     fi
3655     fi
3656    
3657     if test -n "$export_symbols" && test -n "$include_expsyms"; then
3658     $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3659     fi
3660    
3661     tmp_deplibs=
3662     for test_deplib in $deplibs; do
3663     case " $convenience " in
3664     *" $test_deplib "*) ;;
3665     *)
3666     tmp_deplibs="$tmp_deplibs $test_deplib"
3667     ;;
3668     esac
3669     done
3670     deplibs="$tmp_deplibs"
3671    
3672     if test -n "$convenience"; then
3673     if test -n "$whole_archive_flag_spec"; then
3674     save_libobjs=$libobjs
3675     eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3676     else
3677     gentop="$output_objdir/${outputname}x"
3678     $show "${rm}r $gentop"
3679     $run ${rm}r "$gentop"
3680     $show "$mkdir $gentop"
3681     $run $mkdir "$gentop"
3682     status=$?
3683     if test "$status" -ne 0 && test ! -d "$gentop"; then
3684     exit $status
3685     fi
3686     generated="$generated $gentop"
3687    
3688     for xlib in $convenience; do
3689     # Extract the objects.
3690     case $xlib in
3691     [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3692     *) xabs=`pwd`"/$xlib" ;;
3693     esac
3694     xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3695     xdir="$gentop/$xlib"
3696    
3697     $show "${rm}r $xdir"
3698     $run ${rm}r "$xdir"
3699     $show "$mkdir $xdir"
3700     $run $mkdir "$xdir"
3701     status=$?
3702     if test "$status" -ne 0 && test ! -d "$xdir"; then
3703     exit $status
3704     fi
3705     # We will extract separately just the conflicting names and we will no
3706     # longer touch any unique names. It is faster to leave these extract
3707     # automatically by $AR in one run.
3708     $show "(cd $xdir && $AR x $xabs)"
3709     $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3710     if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
3711     :
3712     else
3713     $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
3714     $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
3715     $AR t "$xabs" | sort | uniq -cd | while read -r count name
3716     do
3717     i=1
3718     while test "$i" -le "$count"
3719     do
3720     # Put our $i before any first dot (extension)
3721     # Never overwrite any file
3722     name_to="$name"
3723     while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
3724     do
3725     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
3726     done
3727     $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
3728     $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
3729     i=`expr $i + 1`
3730     done
3731     done
3732     fi
3733    
3734     libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3735     done
3736     fi
3737     fi
3738    
3739     if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3740     eval flag=\"$thread_safe_flag_spec\"
3741     linker_flags="$linker_flags $flag"
3742     fi
3743    
3744     # Make a backup of the uninstalled library when relinking
3745     if test "$mode" = relink; then
3746     $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
3747     fi
3748    
3749     # Do each of the archive commands.
3750     if test "$module" = yes && test -n "$module_cmds" ; then
3751     if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3752     eval test_cmds=\"$module_expsym_cmds\"
3753     cmds=$module_expsym_cmds
3754     else
3755     eval test_cmds=\"$module_cmds\"
3756     cmds=$module_cmds
3757     fi
3758     else
3759     if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3760     eval test_cmds=\"$archive_expsym_cmds\"
3761     cmds=$archive_expsym_cmds
3762     else
3763     eval test_cmds=\"$archive_cmds\"
3764     cmds=$archive_cmds
3765     fi
3766     fi
3767    
3768     if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
3769     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3770     :
3771     else
3772     # The command line is too long to link in one step, link piecewise.
3773     $echo "creating reloadable object files..."
3774    
3775     # Save the value of $output and $libobjs because we want to
3776     # use them later. If we have whole_archive_flag_spec, we
3777     # want to use save_libobjs as it was before
3778     # whole_archive_flag_spec was expanded, because we can't
3779     # assume the linker understands whole_archive_flag_spec.
3780     # This may have to be revisited, in case too many
3781     # convenience libraries get linked in and end up exceeding
3782     # the spec.
3783     if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
3784     save_libobjs=$libobjs
3785     fi
3786     save_output=$output
3787    
3788     # Clear the reloadable object creation command queue and
3789     # initialize k to one.
3790     test_cmds=
3791     concat_cmds=
3792     objlist=
3793     delfiles=
3794     last_robj=
3795     k=1
3796     output=$output_objdir/$save_output-${k}.$objext
3797     # Loop over the list of objects to be linked.
3798     for obj in $save_libobjs
3799     do
3800     eval test_cmds=\"$reload_cmds $objlist $last_robj\"
3801     if test "X$objlist" = X ||
3802     { len=`expr "X$test_cmds" : ".*"` &&
3803     test "$len" -le "$max_cmd_len"; }; then
3804     objlist="$objlist $obj"
3805     else
3806     # The command $test_cmds is almost too long, add a
3807     # command to the queue.
3808     if test "$k" -eq 1 ; then
3809     # The first file doesn't have a previous command to add.
3810     eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
3811     else
3812     # All subsequent reloadable object files will link in
3813     # the last one created.
3814     eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
3815     fi
3816     last_robj=$output_objdir/$save_output-${k}.$objext
3817     k=`expr $k + 1`
3818     output=$output_objdir/$save_output-${k}.$objext
3819     objlist=$obj
3820     len=1
3821     fi
3822     done
3823     # Handle the remaining objects by creating one last
3824     # reloadable object file. All subsequent reloadable object
3825     # files will link in the last one created.
3826     test -z "$concat_cmds" || concat_cmds=$concat_cmds~
3827     eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
3828    
3829     if ${skipped_export-false}; then
3830     $show "generating symbol list for \`$libname.la'"
3831     export_symbols="$output_objdir/$libname.exp"
3832     $run $rm $export_symbols
3833     libobjs=$output
3834     # Append the command to create the export file.
3835     eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
3836     fi
3837    
3838     # Set up a command to remove the reloadale object files
3839     # after they are used.
3840     i=0
3841     while test "$i" -lt "$k"
3842     do
3843     i=`expr $i + 1`
3844     delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
3845     done
3846    
3847     $echo "creating a temporary reloadable object file: $output"
3848    
3849     # Loop through the commands generated above and execute them.
3850     save_ifs="$IFS"; IFS='~'
3851     for cmd in $concat_cmds; do
3852     IFS="$save_ifs"
3853     $show "$cmd"
3854     $run eval "$cmd" || exit $?
3855     done
3856     IFS="$save_ifs"
3857    
3858     libobjs=$output
3859     # Restore the value of output.
3860     output=$save_output
3861    
3862     if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
3863     eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3864     fi
3865     # Expand the library linking commands again to reset the
3866     # value of $libobjs for piecewise linking.
3867    
3868     # Do each of the archive commands.
3869     if test "$module" = yes && test -n "$module_cmds" ; then
3870     if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
3871     cmds=$module_expsym_cmds
3872     else
3873     cmds=$module_cmds
3874     fi
3875     else
3876     if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3877     cmds=$archive_expsym_cmds
3878     else
3879     cmds=$archive_cmds
3880     fi
3881     fi
3882    
3883     # Append the command to remove the reloadable object files
3884     # to the just-reset $cmds.
3885     eval cmds=\"\$cmds~\$rm $delfiles\"
3886     fi
3887     save_ifs="$IFS"; IFS='~'
3888     for cmd in $cmds; do
3889     IFS="$save_ifs"
3890     eval cmd=\"$cmd\"
3891     $show "$cmd"
3892     $run eval "$cmd" || exit $?
3893     done
3894     IFS="$save_ifs"
3895    
3896     # Restore the uninstalled library and exit
3897     if test "$mode" = relink; then
3898     $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
3899     exit $EXIT_SUCCESS
3900     fi
3901    
3902     # Create links to the real library.
3903     for linkname in $linknames; do
3904     if test "$realname" != "$linkname"; then
3905     $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3906     $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
3907     fi
3908     done
3909    
3910     # If -module or -export-dynamic was specified, set the dlname.
3911     if test "$module" = yes || test "$export_dynamic" = yes; then
3912     # On all known operating systems, these are identical.
3913     dlname="$soname"
3914     fi
3915     fi
3916     ;;
3917    
3918     obj)
3919     if test -n "$deplibs"; then
3920     $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
3921     fi
3922    
3923     if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3924     $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
3925     fi
3926    
3927     if test -n "$rpath"; then
3928     $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
3929     fi
3930    
3931     if test -n "$xrpath"; then
3932     $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3933     fi
3934    
3935     if test -n "$vinfo"; then
3936     $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3937     fi
3938    
3939     if test -n "$release"; then
3940     $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3941     fi
3942    
3943     case $output in
3944     *.lo)
3945     if test -n "$objs$old_deplibs"; then
3946     $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3947     exit $EXIT_FAILURE
3948     fi
3949     libobj="$output"
3950     obj=`$echo "X$output" | $Xsed -e "$lo2o"`
3951     ;;
3952     *)
3953     libobj=
3954     obj="$output"
3955     ;;
3956     esac
3957    
3958     # Delete the old objects.
3959     $run $rm $obj $libobj
3960    
3961     # Objects from convenience libraries. This assumes
3962     # single-version convenience libraries. Whenever we create
3963     # different ones for PIC/non-PIC, this we'll have to duplicate
3964     # the extraction.
3965     reload_conv_objs=
3966     gentop=
3967     # reload_cmds runs $LD directly, so let us get rid of
3968     # -Wl from whole_archive_flag_spec
3969     wl=
3970    
3971     if test -n "$convenience"; then
3972     if test -n "$whole_archive_flag_spec"; then
3973     eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
3974     else
3975     gentop="$output_objdir/${obj}x"
3976     $show "${rm}r $gentop"
3977     $run ${rm}r "$gentop"
3978     $show "$mkdir $gentop"
3979     $run $mkdir "$gentop"
3980     status=$?
3981     if test "$status" -ne 0 && test ! -d "$gentop"; then
3982     exit $status
3983     fi
3984     generated="$generated $gentop"
3985    
3986     for xlib in $convenience; do
3987     # Extract the objects.
3988     case $xlib in
3989     [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3990     *) xabs=`pwd`"/$xlib" ;;
3991     esac
3992     xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3993     xdir="$gentop/$xlib"
3994    
3995     $show "${rm}r $xdir"
3996     $run ${rm}r "$xdir"
3997     $show "$mkdir $xdir"
3998     $run $mkdir "$xdir"
3999     status=$?
4000     if test "$status" -ne 0 && test ! -d "$xdir"; then
4001     exit $status
4002     fi
4003     # We will extract separately just the conflicting names and we will no
4004     # longer touch any unique names. It is faster to leave these extract
4005     # automatically by $AR in one run.
4006     $show "(cd $xdir && $AR x $xabs)"
4007     $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
4008     if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
4009     :
4010     else
4011     $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
4012     $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
4013     $AR t "$xabs" | sort | uniq -cd | while read -r count name
4014     do
4015     i=1
4016     while test "$i" -le "$count"
4017     do
4018     # Put our $i before any first dot (extension)
4019     # Never overwrite any file
4020     name_to="$name"
4021     while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
4022     do
4023     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
4024     done
4025     $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
4026     $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
4027     i=`expr $i + 1`
4028     done
4029     done
4030     fi
4031    
4032     reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
4033     done
4034     fi
4035     fi
4036    
4037     # Create the old-style object.
4038     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
4039    
4040     output="$obj"
4041     cmds=$reload_cmds
4042     save_ifs="$IFS"; IFS='~'
4043     for cmd in $cmds; do
4044     IFS="$save_ifs"
4045     eval cmd=\"$cmd\"
4046     $show "$cmd"
4047     $run eval "$cmd" || exit $?
4048     done
4049     IFS="$save_ifs"
4050    
4051     # Exit if we aren't doing a library object file.
4052     if test -z "$libobj"; then
4053     if test -n "$gentop"; then
4054     $show "${rm}r $gentop"
4055     $run ${rm}r $gentop
4056     fi
4057    
4058     exit $EXIT_SUCCESS
4059     fi
4060    
4061     if test "$build_libtool_libs" != yes; then
4062     if test -n "$gentop"; then
4063     $show "${rm}r $gentop"
4064     $run ${rm}r $gentop
4065     fi
4066    
4067     # Create an invalid libtool object if no PIC, so that we don't
4068     # accidentally link it into a program.
4069     # $show "echo timestamp > $libobj"
4070     # $run eval "echo timestamp > $libobj" || exit $?
4071     exit $EXIT_SUCCESS
4072     fi
4073    
4074     if test -n "$pic_flag" || test "$pic_mode" != default; then
4075     # Only do commands if we really have different PIC objects.
4076     reload_objs="$libobjs $reload_conv_objs"
4077     output="$libobj"
4078     cmds=$reload_cmds
4079     save_ifs="$IFS"; IFS='~'
4080     for cmd in $cmds; do
4081     IFS="$save_ifs"
4082     eval cmd=\"$cmd\"
4083     $show "$cmd"
4084     $run eval "$cmd" || exit $?
4085     done
4086     IFS="$save_ifs"
4087     fi
4088    
4089     if test -n "$gentop"; then
4090     $show "${rm}r $gentop"
4091     $run ${rm}r $gentop
4092     fi
4093    
4094     exit $EXIT_SUCCESS
4095     ;;
4096    
4097     prog)
4098     case $host in
4099     *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4100     esac
4101     if test -n "$vinfo"; then
4102     $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4103     fi
4104    
4105     if test -n "$release"; then
4106     $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4107     fi
4108    
4109     if test "$preload" = yes; then
4110     if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4111     test "$dlopen_self_static" = unknown; then
4112     $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4113     fi
4114     fi
4115    
4116     case $host in
4117     *-*-rhapsody* | *-*-darwin1.[012])
4118     # On Rhapsody replace the C library is the System framework
4119     compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4120     finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4121     ;;
4122     esac
4123    
4124     case $host in
4125     *darwin*)
4126     # Don't allow lazy linking, it breaks C++ global constructors
4127     if test "$tagname" = CXX ; then
4128     compile_command="$compile_command ${wl}-bind_at_load"
4129     finalize_command="$finalize_command ${wl}-bind_at_load"
4130     fi
4131     ;;
4132     esac
4133    
4134     compile_command="$compile_command $compile_deplibs"
4135     finalize_command="$finalize_command $finalize_deplibs"
4136    
4137     if test -n "$rpath$xrpath"; then
4138     # If the user specified any rpath flags, then add them.
4139     for libdir in $rpath $xrpath; do
4140     # This is the magic to use -rpath.
4141     case "$finalize_rpath " in
4142     *" $libdir "*) ;;
4143     *) finalize_rpath="$finalize_rpath $libdir" ;;
4144     esac
4145     done
4146     fi
4147    
4148     # Now hardcode the library paths
4149     rpath=
4150     hardcode_libdirs=
4151     for libdir in $compile_rpath $finalize_rpath; do
4152     if test -n "$hardcode_libdir_flag_spec"; then
4153     if test -n "$hardcode_libdir_separator"; then
4154     if test -z "$hardcode_libdirs"; then
4155     hardcode_libdirs="$libdir"
4156     else
4157     # Just accumulate the unique libdirs.
4158     case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4159     *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4160     ;;
4161     *)
4162     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4163     ;;
4164     esac
4165     fi
4166     else
4167     eval flag=\"$hardcode_libdir_flag_spec\"
4168     rpath="$rpath $flag"
4169     fi
4170     elif test -n "$runpath_var"; then
4171     case "$perm_rpath " in
4172     *" $libdir "*) ;;
4173     *) perm_rpath="$perm_rpath $libdir" ;;
4174     esac
4175     fi
4176     case $host in
4177     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4178     case :$dllsearchpath: in
4179     *":$libdir:"*) ;;
4180     *) dllsearchpath="$dllsearchpath:$libdir";;
4181     esac
4182     ;;
4183     esac
4184     done
4185     # Substitute the hardcoded libdirs into the rpath.
4186     if test -n "$hardcode_libdir_separator" &&
4187     test -n "$hardcode_libdirs"; then
4188     libdir="$hardcode_libdirs"
4189     eval rpath=\" $hardcode_libdir_flag_spec\"
4190     fi
4191     compile_rpath="$rpath"
4192    
4193     rpath=
4194     hardcode_libdirs=
4195     for libdir in $finalize_rpath; do
4196     if test -n "$hardcode_libdir_flag_spec"; then
4197     if test -n "$hardcode_libdir_separator"; then
4198     if test -z "$hardcode_libdirs"; then
4199     hardcode_libdirs="$libdir"
4200     else
4201     # Just accumulate the unique libdirs.
4202     case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4203     *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4204     ;;
4205     *)
4206     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4207     ;;
4208     esac
4209     fi
4210     else
4211     eval flag=\"$hardcode_libdir_flag_spec\"
4212     rpath="$rpath $flag"
4213     fi
4214     elif test -n "$runpath_var"; then
4215     case "$finalize_perm_rpath " in
4216     *" $libdir "*) ;;
4217     *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4218     esac
4219     fi
4220     done
4221     # Substitute the hardcoded libdirs into the rpath.
4222     if test -n "$hardcode_libdir_separator" &&
4223     test -n "$hardcode_libdirs"; then
4224     libdir="$hardcode_libdirs"
4225     eval rpath=\" $hardcode_libdir_flag_spec\"
4226     fi
4227     finalize_rpath="$rpath"
4228    
4229     if test -n "$libobjs" && test "$build_old_libs" = yes; then
4230     # Transform all the library objects into standard objects.
4231     compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4232     finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4233     fi
4234    
4235     dlsyms=
4236     if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4237     if test -n "$NM" && test -n "$global_symbol_pipe"; then
4238     dlsyms="${outputname}S.c"
4239     else
4240     $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4241     fi
4242     fi
4243    
4244     if test -n "$dlsyms"; then
4245     case $dlsyms in
4246     "") ;;
4247     *.c)
4248     # Discover the nlist of each of the dlfiles.
4249     nlist="$output_objdir/${outputname}.nm"
4250    
4251     $show "$rm $nlist ${nlist}S ${nlist}T"
4252     $run $rm "$nlist" "${nlist}S" "${nlist}T"
4253    
4254     # Parse the name list into a source file.
4255     $show "creating $output_objdir/$dlsyms"
4256    
4257     test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4258     /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4259     /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4260    
4261     #ifdef __cplusplus
4262     extern \"C\" {
4263     #endif
4264    
4265     /* Prevent the only kind of declaration conflicts we can make. */
4266     #define lt_preloaded_symbols some_other_symbol
4267    
4268     /* External symbol declarations for the compiler. */\
4269     "
4270    
4271     if test "$dlself" = yes; then
4272     $show "generating symbol list for \`$output'"
4273    
4274     test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4275    
4276     # Add our own program objects to the symbol list.
4277     progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4278     for arg in $progfiles; do
4279     $show "extracting global C symbols from \`$arg'"
4280     $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4281     done
4282    
4283     if test -n "$exclude_expsyms"; then
4284     $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4285     $run eval '$mv "$nlist"T "$nlist"'
4286     fi
4287    
4288     if test -n "$export_symbols_regex"; then
4289     $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4290     $run eval '$mv "$nlist"T "$nlist"'
4291     fi
4292    
4293     # Prepare the list of exported symbols
4294     if test -z "$export_symbols"; then
4295     export_symbols="$output_objdir/$output.exp"
4296     $run $rm $export_symbols
4297     $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4298     else
4299     $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
4300     $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
4301     $run eval 'mv "$nlist"T "$nlist"'
4302     fi
4303     fi
4304    
4305     for arg in $dlprefiles; do
4306     $show "extracting global C symbols from \`$arg'"
4307     name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4308     $run eval '$echo ": $name " >> "$nlist"'
4309     $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4310     done
4311    
4312     if test -z "$run"; then
4313     # Make sure we have at least an empty file.
4314     test -f "$nlist" || : > "$nlist"
4315    
4316     if test -n "$exclude_expsyms"; then
4317     $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4318     $mv "$nlist"T "$nlist"
4319     fi
4320    
4321     # Try sorting and uniquifying the output.
4322     if grep -v "^: " < "$nlist" |
4323     if sort -k 3 </dev/null >/dev/null 2>&1; then
4324     sort -k 3
4325     else
4326     sort +2
4327     fi |
4328     uniq > "$nlist"S; then
4329     :
4330     else
4331     grep -v "^: " < "$nlist" > "$nlist"S
4332     fi
4333    
4334     if test -f "$nlist"S; then
4335     eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4336     else
4337     $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4338     fi
4339    
4340     $echo >> "$output_objdir/$dlsyms" "\
4341    
4342     #undef lt_preloaded_symbols
4343    
4344     #if defined (__STDC__) && __STDC__
4345     # define lt_ptr void *
4346     #else
4347     # define lt_ptr char *
4348     # define const
4349     #endif
4350    
4351     /* The mapping between symbol names and symbols. */
4352     const struct {
4353     const char *name;
4354     lt_ptr address;
4355     }
4356     lt_preloaded_symbols[] =
4357     {\
4358     "
4359    
4360     eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4361    
4362     $echo >> "$output_objdir/$dlsyms" "\
4363     {0, (lt_ptr) 0}
4364     };
4365    
4366     /* This works around a problem in FreeBSD linker */
4367     #ifdef FREEBSD_WORKAROUND
4368     static const void *lt_preloaded_setup() {
4369     return lt_preloaded_symbols;
4370     }
4371     #endif
4372    
4373     #ifdef __cplusplus
4374     }
4375     #endif\
4376     "
4377     fi
4378    
4379     pic_flag_for_symtable=
4380     case $host in
4381     # compiling the symbol table file with pic_flag works around
4382     # a FreeBSD bug that causes programs to crash when -lm is
4383     # linked before any other PIC object. But we must not use
4384     # pic_flag when linking with -static. The problem exists in
4385     # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4386     *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4387     case "$compile_command " in
4388     *" -static "*) ;;
4389     *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4390     esac;;
4391     *-*-hpux*)
4392     case "$compile_command " in
4393     *" -static "*) ;;
4394     *) pic_flag_for_symtable=" $pic_flag";;
4395     esac
4396     esac
4397    
4398     # Now compile the dynamic symbol file.
4399     $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4400     $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4401    
4402     # Clean up the generated files.
4403     $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4404     $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4405    
4406     # Transform the symbol file into the correct name.
4407     compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4408     finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4409     ;;
4410     *)
4411     $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4412     exit $EXIT_FAILURE
4413     ;;
4414     esac
4415     else
4416     # We keep going just in case the user didn't refer to
4417     # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
4418     # really was required.
4419    
4420     # Nullify the symbol file.
4421     compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4422     finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4423     fi
4424    
4425     if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4426     # Replace the output file specification.
4427     compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4428     link_command="$compile_command$compile_rpath"
4429    
4430     # We have no uninstalled library dependencies, so finalize right now.
4431     $show "$link_command"
4432     $run eval "$link_command"
4433     status=$?
4434    
4435     # Delete the generated files.
4436     if test -n "$dlsyms"; then
4437     $show "$rm $output_objdir/${outputname}S.${objext}"
4438     $run $rm "$output_objdir/${outputname}S.${objext}"
4439     fi
4440    
4441     exit $status
4442     fi
4443    
4444     if test -n "$shlibpath_var"; then
4445     # We should set the shlibpath_var
4446     rpath=
4447     for dir in $temp_rpath; do
4448     case $dir in
4449     [\\/]* | [A-Za-z]:[\\/]*)
4450     # Absolute path.
4451     rpath="$rpath$dir:"
4452     ;;
4453     *)
4454     # Relative path: add a thisdir entry.
4455     rpath="$rpath\$thisdir/$dir:"
4456     ;;
4457     esac
4458     done
4459     temp_rpath="$rpath"
4460     fi
4461    
4462     if test -n "$compile_shlibpath$finalize_shlibpath"; then
4463     compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4464     fi
4465     if test -n "$finalize_shlibpath"; then
4466     finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4467     fi
4468    
4469     compile_var=
4470     finalize_var=
4471     if test -n "$runpath_var"; then
4472     if test -n "$perm_rpath"; then
4473     # We should set the runpath_var.
4474     rpath=
4475     for dir in $perm_rpath; do
4476     rpath="$rpath$dir:"
4477     done
4478     compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4479     fi
4480     if test -n "$finalize_perm_rpath"; then
4481     # We should set the runpath_var.
4482     rpath=
4483     for dir in $finalize_perm_rpath; do
4484     rpath="$rpath$dir:"
4485     done
4486     finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4487     fi
4488     fi
4489    
4490     if test "$no_install" = yes; then
4491     # We don't need to create a wrapper script.
4492     link_command="$compile_var$compile_command$compile_rpath"
4493     # Replace the output file specification.
4494     link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4495     # Delete the old output file.
4496     $run $rm $output
4497     # Link the executable and exit
4498     $show "$link_command"
4499     $run eval "$link_command" || exit $?
4500     exit $EXIT_SUCCESS
4501     fi
4502    
4503     if test "$hardcode_action" = relink; then
4504     # Fast installation is not supported
4505     link_command="$compile_var$compile_command$compile_rpath"
4506     relink_command="$finalize_var$finalize_command$finalize_rpath"
4507    
4508     $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4509     $echo "$modename: \`$output' will be relinked during installation" 1>&2
4510     else
4511     if test "$fast_install" != no; then
4512     link_command="$finalize_var$compile_command$finalize_rpath"
4513     if test "$fast_install" = yes; then
4514     relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4515     else
4516     # fast_install is set to needless
4517     relink_command=
4518     fi
4519     else
4520     link_command="$compile_var$compile_command$compile_rpath"
4521     relink_command="$finalize_var$finalize_command$finalize_rpath"
4522     fi
4523     fi
4524    
4525     # Replace the output file specification.
4526     link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4527    
4528     # Delete the old output files.
4529     $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4530    
4531     $show "$link_command"
4532     $run eval "$link_command" || exit $?
4533    
4534     # Now create the wrapper script.
4535     $show "creating $output"
4536    
4537     # Quote the relink command for shipping.
4538     if test -n "$relink_command"; then
4539     # Preserve any variables that may affect compiler behavior
4540     for var in $variables_saved_for_relink; do
4541     if eval test -z \"\${$var+set}\"; then
4542     relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4543     elif eval var_value=\$$var; test -z "$var_value"; then
4544     relink_command="$var=; export $var; $relink_command"
4545     else
4546     var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4547     relink_command="$var=\"$var_value\"; export $var; $relink_command"
4548     fi
4549     done
4550     relink_command="(cd `pwd`; $relink_command)"
4551     relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4552     fi
4553    
4554     # Quote $echo for shipping.
4555     if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4556     case $progpath in
4557     [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4558     *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4559     esac
4560     qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4561     else
4562     qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4563     fi
4564    
4565     # Only actually do things if our run command is non-null.
4566     if test -z "$run"; then
4567     # win32 will think the script is a binary if it has
4568     # a .exe suffix, so we strip it off here.
4569     case $output in
4570     *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4571     esac
4572     # test for cygwin because mv fails w/o .exe extensions
4573     case $host in
4574     *cygwin*)
4575     exeext=.exe
4576     outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4577     *) exeext= ;;
4578     esac
4579     case $host in
4580     *cygwin* | *mingw* )
4581     cwrappersource=`$echo ${objdir}/lt-${output}.c`
4582     cwrapper=`$echo ${output}.exe`
4583     $rm $cwrappersource $cwrapper
4584     trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4585    
4586     cat > $cwrappersource <<EOF
4587    
4588     /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4589     Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4590    
4591     The $output program cannot be directly executed until all the libtool
4592     libraries that it depends on are installed.
4593    
4594     This wrapper executable should never be moved out of the build directory.
4595     If it is, it will not operate correctly.
4596    
4597     Currently, it simply execs the wrapper *script* "/bin/sh $output",
4598     but could eventually absorb all of the scripts functionality and
4599     exec $objdir/$outputname directly.
4600     */
4601     EOF
4602     cat >> $cwrappersource<<"EOF"
4603     #include <stdio.h>
4604     #include <stdlib.h>
4605     #include <unistd.h>
4606     #include <malloc.h>
4607     #include <stdarg.h>
4608     #include <assert.h>
4609    
4610     #if defined(PATH_MAX)
4611     # define LT_PATHMAX PATH_MAX
4612     #elif defined(MAXPATHLEN)
4613     # define LT_PATHMAX MAXPATHLEN
4614     #else
4615     # define LT_PATHMAX 1024
4616     #endif
4617    
4618     #ifndef DIR_SEPARATOR
4619     #define DIR_SEPARATOR '/'
4620     #endif
4621    
4622     #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4623     defined (__OS2__)
4624     #define HAVE_DOS_BASED_FILE_SYSTEM
4625     #ifndef DIR_SEPARATOR_2
4626     #define DIR_SEPARATOR_2 '\\'
4627     #endif
4628     #endif
4629    
4630     #ifndef DIR_SEPARATOR_2
4631     # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4632     #else /* DIR_SEPARATOR_2 */
4633     # define IS_DIR_SEPARATOR(ch) \
4634     (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4635     #endif /* DIR_SEPARATOR_2 */
4636    
4637     #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4638     #define XFREE(stale) do { \
4639     if (stale) { free ((void *) stale); stale = 0; } \
4640     } while (0)
4641    
4642     const char *program_name = NULL;
4643    
4644     void * xmalloc (size_t num);
4645     char * xstrdup (const char *string);
4646     char * basename (const char *name);
4647     char * fnqualify(const char *path);
4648     char * strendzap(char *str, const char *pat);
4649     void lt_fatal (const char *message, ...);
4650    
4651     int
4652     main (int argc, char *argv[])
4653     {
4654     char **newargz;
4655     int i;
4656    
4657     program_name = (char *) xstrdup ((char *) basename (argv[0]));
4658     newargz = XMALLOC(char *, argc+2);
4659     EOF
4660    
4661     cat >> $cwrappersource <<EOF
4662     newargz[0] = "$SHELL";
4663     EOF
4664    
4665     cat >> $cwrappersource <<"EOF"
4666     newargz[1] = fnqualify(argv[0]);
4667     /* we know the script has the same name, without the .exe */
4668     /* so make sure newargz[1] doesn't end in .exe */
4669     strendzap(newargz[1],".exe");
4670     for (i = 1; i < argc; i++)
4671     newargz[i+1] = xstrdup(argv[i]);
4672     newargz[argc+1] = NULL;
4673     EOF
4674    
4675     cat >> $cwrappersource <<EOF
4676     execv("$SHELL",newargz);
4677     EOF
4678    
4679     cat >> $cwrappersource <<"EOF"
4680     }
4681    
4682     void *
4683     xmalloc (size_t num)
4684     {
4685     void * p = (void *) malloc (num);
4686     if (!p)
4687     lt_fatal ("Memory exhausted");
4688    
4689     return p;
4690     }
4691    
4692     char *
4693     xstrdup (const char *string)
4694     {
4695     return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
4696     ;
4697     }
4698    
4699     char *
4700     basename (const char *name)
4701     {
4702     const char *base;
4703    
4704     #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4705     /* Skip over the disk name in MSDOS pathnames. */
4706     if (isalpha (name[0]) && name[1] == ':')
4707     name += 2;
4708     #endif
4709    
4710     for (base = name; *name; name++)
4711     if (IS_DIR_SEPARATOR (*name))
4712     base = name + 1;
4713     return (char *) base;
4714     }
4715    
4716     char *
4717     fnqualify(const char *path)
4718     {
4719     size_t size;
4720     char *p;
4721     char tmp[LT_PATHMAX + 1];
4722    
4723     assert(path != NULL);
4724    
4725     /* Is it qualified already? */
4726     #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4727     if (isalpha (path[0]) && path[1] == ':')
4728     return xstrdup (path);
4729     #endif
4730     if (IS_DIR_SEPARATOR (path[0]))
4731     return xstrdup (path);
4732    
4733     /* prepend the current directory */
4734     /* doesn't handle '~' */
4735     if (getcwd (tmp, LT_PATHMAX) == NULL)
4736     lt_fatal ("getcwd failed");
4737     size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
4738     p = XMALLOC(char, size);
4739     sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
4740     return p;
4741     }
4742    
4743     char *
4744     strendzap(char *str, const char *pat)
4745     {
4746     size_t len, patlen;
4747    
4748     assert(str != NULL);
4749     assert(pat != NULL);
4750    
4751     len = strlen(str);
4752     patlen = strlen(pat);
4753    
4754     if (patlen <= len)
4755     {
4756     str += len - patlen;
4757     if (strcmp(str, pat) == 0)
4758     *str = '\0';
4759     }
4760     return str;
4761     }
4762    
4763     static void
4764     lt_error_core (int exit_status, const char * mode,
4765     const char * message, va_list ap)
4766     {
4767     fprintf (stderr, "%s: %s: ", program_name, mode);
4768     vfprintf (stderr, message, ap);
4769     fprintf (stderr, ".\n");
4770    
4771     if (exit_status >= 0)
4772     exit (exit_status);
4773     }
4774    
4775     void
4776     lt_fatal (const char *message, ...)
4777     {
4778     va_list ap;
4779     va_start (ap, message);
4780     lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
4781     va_end (ap);
4782     }
4783     EOF
4784     # we should really use a build-platform specific compiler
4785     # here, but OTOH, the wrappers (shell script and this C one)
4786     # are only useful if you want to execute the "real" binary.
4787     # Since the "real" binary is built for $host, then this
4788     # wrapper might as well be built for $host, too.
4789     $run $LTCC -s -o $cwrapper $cwrappersource
4790     ;;
4791     esac
4792     $rm $output
4793     trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
4794    
4795     $echo > $output "\
4796     #! $SHELL
4797    
4798     # $output - temporary wrapper script for $objdir/$outputname
4799     # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4800     #
4801     # The $output program cannot be directly executed until all the libtool
4802     # libraries that it depends on are installed.
4803     #
4804     # This wrapper script should never be moved out of the build directory.
4805     # If it is, it will not operate correctly.
4806    
4807     # Sed substitution that helps us do robust quoting. It backslashifies
4808     # metacharacters that are still active within double-quoted strings.
4809     Xsed='${SED} -e 1s/^X//'
4810     sed_quote_subst='$sed_quote_subst'
4811    
4812     # The HP-UX ksh and POSIX shell print the target directory to stdout
4813     # if CDPATH is set.
4814     if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
4815    
4816     relink_command=\"$relink_command\"
4817    
4818     # This environment variable determines our operation mode.
4819     if test \"\$libtool_install_magic\" = \"$magic\"; then
4820     # install mode needs the following variable:
4821     notinst_deplibs='$notinst_deplibs'
4822     else
4823     # When we are sourced in execute mode, \$file and \$echo are already set.
4824     if test \"\$libtool_execute_magic\" != \"$magic\"; then
4825     echo=\"$qecho\"
4826     file=\"\$0\"
4827     # Make sure echo works.
4828     if test \"X\$1\" = X--no-reexec; then
4829     # Discard the --no-reexec flag, and continue.
4830     shift
4831     elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
4832     # Yippee, \$echo works!
4833     :
4834     else
4835     # Restart under the correct shell, and then maybe \$echo will work.
4836     exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
4837     fi
4838     fi\
4839     "
4840     $echo >> $output "\
4841    
4842     # Find the directory that this script lives in.
4843     thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
4844     test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4845    
4846     # Follow symbolic links until we get to the real thisdir.
4847     file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
4848     while test -n \"\$file\"; do
4849     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
4850    
4851     # If there was a directory component, then change thisdir.
4852     if test \"x\$destdir\" != \"x\$file\"; then
4853     case \"\$destdir\" in
4854     [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4855     *) thisdir=\"\$thisdir/\$destdir\" ;;
4856     esac
4857     fi
4858    
4859     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
4860     file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
4861     done
4862    
4863     # Try to get the absolute directory name.
4864     absdir=\`cd \"\$thisdir\" && pwd\`
4865     test -n \"\$absdir\" && thisdir=\"\$absdir\"
4866     "
4867    
4868     if test "$fast_install" = yes; then
4869     $echo >> $output "\
4870     program=lt-'$outputname'$exeext
4871     progdir=\"\$thisdir/$objdir\"
4872    
4873     if test ! -f \"\$progdir/\$program\" || \\
4874     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4875     test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4876    
4877     file=\"\$\$-\$program\"
4878    
4879     if test ! -d \"\$progdir\"; then
4880     $mkdir \"\$progdir\"
4881     else
4882     $rm \"\$progdir/\$file\"
4883     fi"
4884    
4885     $echo >> $output "\
4886    
4887     # relink executable if necessary
4888     if test -n \"\$relink_command\"; then
4889     if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4890     else
4891     $echo \"\$relink_command_output\" >&2
4892     $rm \"\$progdir/\$file\"
4893     exit $EXIT_FAILURE
4894     fi
4895     fi
4896    
4897     $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4898     { $rm \"\$progdir/\$program\";
4899     $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4900     $rm \"\$progdir/\$file\"
4901     fi"
4902     else
4903     $echo >> $output "\
4904     program='$outputname'
4905     progdir=\"\$thisdir/$objdir\"
4906     "
4907     fi
4908    
4909     $echo >> $output "\
4910    
4911     if test -f \"\$progdir/\$program\"; then"
4912    
4913     # Export our shlibpath_var if we have one.
4914     if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4915     $echo >> $output "\
4916     # Add our own library path to $shlibpath_var
4917     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4918    
4919     # Some systems cannot cope with colon-terminated $shlibpath_var
4920     # The second colon is a workaround for a bug in BeOS R4 sed
4921     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
4922    
4923     export $shlibpath_var
4924     "
4925     fi
4926    
4927     # fixup the dll searchpath if we need to.
4928     if test -n "$dllsearchpath"; then
4929     $echo >> $output "\
4930     # Add the dll search path components to the executable PATH
4931     PATH=$dllsearchpath:\$PATH
4932     "
4933     fi
4934    
4935     $echo >> $output "\
4936     if test \"\$libtool_execute_magic\" != \"$magic\"; then
4937     # Run the actual program with our arguments.
4938     "
4939     case $host in
4940     # Backslashes separate directories on plain windows
4941     *-*-mingw | *-*-os2*)
4942     $echo >> $output "\
4943     exec \$progdir\\\\\$program \${1+\"\$@\"}
4944     "
4945     ;;
4946    
4947     *)
4948     $echo >> $output "\
4949     exec \$progdir/\$program \${1+\"\$@\"}
4950     "
4951     ;;
4952     esac
4953     $echo >> $output "\
4954     \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
4955     exit $EXIT_FAILURE
4956     fi
4957     else
4958     # The program doesn't exist.
4959     \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
4960     \$echo \"This script is just a wrapper for \$program.\" 1>&2
4961     $echo \"See the $PACKAGE documentation for more information.\" 1>&2
4962     exit $EXIT_FAILURE
4963     fi
4964     fi\
4965     "
4966     chmod +x $output
4967     fi
4968     exit $EXIT_SUCCESS
4969     ;;
4970     esac
4971    
4972     # See if we need to build an old-fashioned archive.
4973     for oldlib in $oldlibs; do
4974    
4975     if test "$build_libtool_libs" = convenience; then
4976     oldobjs="$libobjs_save"
4977     addlibs="$convenience"
4978     build_libtool_libs=no
4979     else
4980     if test "$build_libtool_libs" = module; then
4981     oldobjs="$libobjs_save"
4982     build_libtool_libs=no
4983     else
4984     oldobjs="$old_deplibs $non_pic_objects"
4985     fi
4986     addlibs="$old_convenience"
4987     fi
4988    
4989     if test -n "$addlibs"; then
4990     gentop="$output_objdir/${outputname}x"
4991     $show "${rm}r $gentop"
4992     $run ${rm}r "$gentop"
4993     $show "$mkdir $gentop"
4994     $run $mkdir "$gentop"
4995     status=$?
4996     if test "$status" -ne 0 && test ! -d "$gentop"; then
4997     exit $status
4998     fi
4999     generated="$generated $gentop"
5000    
5001     # Add in members from convenience archives.
5002     for xlib in $addlibs; do
5003     # Extract the objects.
5004     case $xlib in
5005     [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
5006     *) xabs=`pwd`"/$xlib" ;;
5007     esac
5008     xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
5009     xdir="$gentop/$xlib"
5010    
5011     $show "${rm}r $xdir"
5012     $run ${rm}r "$xdir"
5013     $show "$mkdir $xdir"
5014     $run $mkdir "$xdir"
5015     status=$?
5016     if test "$status" -ne 0 && test ! -d "$xdir"; then
5017     exit $status
5018     fi
5019     # We will extract separately just the conflicting names and we will no
5020     # longer touch any unique names. It is faster to leave these extract
5021     # automatically by $AR in one run.
5022     $show "(cd $xdir && $AR x $xabs)"
5023     $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
5024     if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
5025     :
5026     else
5027     $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
5028     $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
5029     $AR t "$xabs" | sort | uniq -cd | while read -r count name
5030     do
5031     i=1
5032     while test "$i" -le "$count"
5033     do
5034     # Put our $i before any first dot (extension)
5035     # Never overwrite any file
5036     name_to="$name"
5037     while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
5038     do
5039     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
5040     done
5041     $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
5042     $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
5043     i=`expr $i + 1`
5044     done
5045     done
5046     fi
5047    
5048     oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
5049     done
5050     fi
5051    
5052     # Do each command in the archive commands.
5053     if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5054     cmds=$old_archive_from_new_cmds
5055     else
5056     eval cmds=\"$old_archive_cmds\"
5057    
5058     if len=`expr "X$cmds" : ".*"` &&
5059     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5060     cmds=$old_archive_cmds
5061     else
5062     # the command line is too long to link in one step, link in parts
5063     $echo "using piecewise archive linking..."
5064     save_RANLIB=$RANLIB
5065     RANLIB=:
5066     objlist=
5067     concat_cmds=
5068     save_oldobjs=$oldobjs
5069     # GNU ar 2.10+ was changed to match POSIX; thus no paths are
5070     # encoded into archives. This makes 'ar r' malfunction in
5071     # this piecewise linking case whenever conflicting object
5072     # names appear in distinct ar calls; check, warn and compensate.
5073     if (for obj in $save_oldobjs
5074     do
5075     $echo "X$obj" | $Xsed -e 's%^.*/%%'
5076     done | sort | sort -uc >/dev/null 2>&1); then
5077     :
5078     else
5079     $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
5080     $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
5081     AR_FLAGS=cq
5082     fi
5083     # Is there a better way of finding the last object in the list?
5084     for obj in $save_oldobjs
5085     do
5086     last_oldobj=$obj
5087     done
5088     for obj in $save_oldobjs
5089     do
5090     oldobjs="$objlist $obj"
5091     objlist="$objlist $obj"
5092     eval test_cmds=\"$old_archive_cmds\"
5093     if len=`expr "X$test_cmds" : ".*"` &&
5094     test "$len" -le "$max_cmd_len"; then
5095     :
5096     else
5097     # the above command should be used before it gets too long
5098     oldobjs=$objlist
5099     if test "$obj" = "$last_oldobj" ; then
5100     RANLIB=$save_RANLIB
5101     fi
5102     test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5103     eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5104     objlist=
5105     fi
5106     done
5107     RANLIB=$save_RANLIB
5108     oldobjs=$objlist
5109     if test "X$oldobjs" = "X" ; then
5110     eval cmds=\"\$concat_cmds\"
5111     else
5112     eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5113     fi
5114     fi
5115     fi
5116     save_ifs="$IFS"; IFS='~'
5117     for cmd in $cmds; do
5118     eval cmd=\"$cmd\"
5119     IFS="$save_ifs"
5120     $show "$cmd"
5121     $run eval "$cmd" || exit $?
5122     done
5123     IFS="$save_ifs"
5124     done
5125    
5126     if test -n "$generated"; then
5127     $show "${rm}r$generated"
5128     $run ${rm}r$generated
5129     fi
5130    
5131     # Now create the libtool archive.
5132     case $output in
5133     *.la)
5134     old_library=
5135     test "$build_old_libs" = yes && old_library="$libname.$libext"
5136     $show "creating $output"
5137    
5138     # Preserve any variables that may affect compiler behavior
5139     for var in $variables_saved_for_relink; do
5140     if eval test -z \"\${$var+set}\"; then
5141     relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5142     elif eval var_value=\$$var; test -z "$var_value"; then
5143     relink_command="$var=; export $var; $relink_command"
5144     else
5145     var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5146     relink_command="$var=\"$var_value\"; export $var; $relink_command"
5147     fi
5148     done
5149     # Quote the link command for shipping.
5150     relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5151     relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5152     if test "$hardcode_automatic" = yes ; then
5153     relink_command=
5154     fi
5155    
5156    
5157     # Only create the output if not a dry run.
5158     if test -z "$run"; then
5159     for installed in no yes; do
5160     if test "$installed" = yes; then
5161     if test -z "$install_libdir"; then
5162     break
5163     fi
5164     output="$output_objdir/$outputname"i
5165     # Replace all uninstalled libtool libraries with the installed ones
5166     newdependency_libs=
5167     for deplib in $dependency_libs; do
5168     case $deplib in
5169     *.la)
5170     name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5171     eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5172     if test -z "$libdir"; then
5173     $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5174     exit $EXIT_FAILURE
5175     fi
5176     newdependency_libs="$newdependency_libs $libdir/$name"
5177     ;;
5178     *) newdependency_libs="$newdependency_libs $deplib" ;;
5179     esac
5180     done
5181     dependency_libs="$newdependency_libs"
5182     newdlfiles=
5183     for lib in $dlfiles; do
5184     name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5185     eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5186     if test -z "$libdir"; then
5187     $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5188     exit $EXIT_FAILURE
5189     fi
5190     newdlfiles="$newdlfiles $libdir/$name"
5191     done
5192     dlfiles="$newdlfiles"
5193     newdlprefiles=
5194     for lib in $dlprefiles; do
5195     name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5196     eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5197     if test -z "$libdir"; then
5198     $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5199     exit $EXIT_FAILURE
5200     fi
5201     newdlprefiles="$newdlprefiles $libdir/$name"
5202     done
5203     dlprefiles="$newdlprefiles"
5204     else
5205     newdlfiles=
5206     for lib in $dlfiles; do
5207     case $lib in
5208     [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5209     *) abs=`pwd`"/$lib" ;;
5210     esac
5211     newdlfiles="$newdlfiles $abs"
5212     done
5213     dlfiles="$newdlfiles"
5214     newdlprefiles=
5215     for lib in $dlprefiles; do
5216     case $lib in
5217     [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5218     *) abs=`pwd`"/$lib" ;;
5219     esac
5220     newdlprefiles="$newdlprefiles $abs"
5221     done
5222     dlprefiles="$newdlprefiles"
5223     fi
5224     $rm $output
5225     # place dlname in correct position for cygwin
5226     tdlname=$dlname
5227     case $host,$output,$installed,$module,$dlname in
5228     *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5229     esac
5230     $echo > $output "\
5231     # $outputname - a libtool library file
5232     # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5233     #
5234     # Please DO NOT delete this file!
5235     # It is necessary for linking the library.
5236    
5237     # The name that we can dlopen(3).
5238     dlname='$tdlname'
5239    
5240     # Names of this library.
5241     library_names='$library_names'
5242    
5243     # The name of the static archive.
5244     old_library='$old_library'
5245    
5246     # Libraries that this one depends upon.
5247     dependency_libs='$dependency_libs'
5248    
5249     # Version information for $libname.
5250     current=$current
5251     age=$age
5252     revision=$revision
5253    
5254     # Is this an already installed library?
5255     installed=$installed
5256    
5257     # Should we warn about portability when linking against -modules?
5258     shouldnotlink=$module
5259    
5260     # Files to dlopen/dlpreopen
5261     dlopen='$dlfiles'
5262     dlpreopen='$dlprefiles'
5263    
5264     # Directory that this library needs to be installed in:
5265     libdir='$install_libdir'"
5266     if test "$installed" = no && test "$need_relink" = yes; then
5267     $echo >> $output "\
5268     relink_command=\"$relink_command\""
5269     fi
5270     done
5271     fi
5272    
5273     # Do a symbolic link so that the libtool archive can be found in
5274     # LD_LIBRARY_PATH before the program is installed.
5275     $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5276     $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5277     ;;
5278     esac
5279     exit $EXIT_SUCCESS
5280     ;;
5281    
5282     # libtool install mode
5283     install)
5284     modename="$modename: install"
5285    
5286     # There may be an optional sh(1) argument at the beginning of
5287     # install_prog (especially on Windows NT).
5288     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5289     # Allow the use of GNU shtool's install command.
5290     $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
5291     # Aesthetically quote it.
5292     arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5293     case $arg in
5294     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5295     arg="\"$arg\""
5296     ;;
5297     esac
5298     install_prog="$arg "
5299     arg="$1"
5300     shift
5301     else
5302     install_prog=
5303     arg="$nonopt"
5304     fi
5305    
5306     # The real first argument should be the name of the installation program.
5307     # Aesthetically quote it.
5308     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5309     case $arg in
5310     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5311     arg="\"$arg\""
5312     ;;
5313     esac
5314     install_prog="$install_prog$arg"
5315    
5316     # We need to accept at least all the BSD install flags.
5317     dest=
5318     files=
5319     opts=
5320     prev=
5321     install_type=
5322     isdir=no
5323     stripme=
5324     for arg
5325     do
5326     if test -n "$dest"; then
5327     files="$files $dest"
5328     dest="$arg"
5329     continue
5330     fi
5331    
5332     case $arg in
5333     -d) isdir=yes ;;
5334     -f) prev="-f" ;;
5335     -g) prev="-g" ;;
5336     -m) prev="-m" ;;
5337     -o) prev="-o" ;;
5338     -s)
5339     stripme=" -s"
5340     continue
5341     ;;
5342     -*) ;;
5343    
5344     *)
5345     # If the previous option needed an argument, then skip it.
5346     if test -n "$prev"; then
5347     prev=
5348     else
5349     dest="$arg"
5350     continue
5351     fi
5352     ;;
5353     esac
5354    
5355     # Aesthetically quote the argument.
5356     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5357     case $arg in
5358     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
5359     arg="\"$arg\""
5360     ;;
5361     esac
5362     install_prog="$install_prog $arg"
5363     done
5364    
5365     if test -z "$install_prog"; then
5366     $echo "$modename: you must specify an install program" 1>&2
5367     $echo "$help" 1>&2
5368     exit $EXIT_FAILURE
5369     fi
5370    
5371     if test -n "$prev"; then
5372     $echo "$modename: the \`$prev' option requires an argument" 1>&2
5373     $echo "$help" 1>&2
5374     exit $EXIT_FAILURE
5375     fi
5376    
5377     if test -z "$files"; then
5378     if test -z "$dest"; then
5379     $echo "$modename: no file or destination specified" 1>&2
5380     else
5381     $echo "$modename: you must specify a destination" 1>&2
5382     fi
5383     $echo "$help" 1>&2
5384     exit $EXIT_FAILURE
5385     fi
5386    
5387     # Strip any trailing slash from the destination.
5388     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5389    
5390     # Check to see that the destination is a directory.
5391     test -d "$dest" && isdir=yes
5392     if test "$isdir" = yes; then
5393     destdir="$dest"
5394     destname=
5395     else
5396     destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5397     test "X$destdir" = "X$dest" && destdir=.
5398     destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5399    
5400     # Not a directory, so check to see that there is only one file specified.
5401     set dummy $files
5402     if test "$#" -gt 2; then
5403     $echo "$modename: \`$dest' is not a directory" 1>&2
5404     $echo "$help" 1>&2
5405     exit $EXIT_FAILURE
5406     fi
5407     fi
5408     case $destdir in
5409     [\\/]* | [A-Za-z]:[\\/]*) ;;
5410     *)
5411     for file in $files; do
5412     case $file in
5413     *.lo) ;;
5414     *)
5415     $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5416     $echo "$help" 1>&2
5417     exit $EXIT_FAILURE
5418     ;;
5419     esac
5420     done
5421     ;;
5422     esac
5423    
5424     # This variable tells wrapper scripts just to set variables rather
5425     # than running their programs.
5426     libtool_install_magic="$magic"
5427    
5428     staticlibs=
5429     future_libdirs=
5430     current_libdirs=
5431     for file in $files; do
5432    
5433     # Do each installation.
5434     case $file in
5435     *.$libext)
5436     # Do the static libraries later.
5437     staticlibs="$staticlibs $file"
5438     ;;
5439    
5440     *.la)
5441     # Check to see that this really is a libtool archive.
5442     if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5443     else
5444     $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5445     $echo "$help" 1>&2
5446     exit $EXIT_FAILURE
5447     fi
5448    
5449     library_names=
5450     old_library=
5451     relink_command=
5452     # If there is no directory component, then add one.
5453     case $file in
5454     */* | *\\*) . $file ;;
5455     *) . ./$file ;;
5456     esac
5457    
5458     # Add the libdir to current_libdirs if it is the destination.
5459     if test "X$destdir" = "X$libdir"; then
5460     case "$current_libdirs " in
5461     *" $libdir "*) ;;
5462     *) current_libdirs="$current_libdirs $libdir" ;;
5463     esac
5464     else
5465     # Note the libdir as a future libdir.
5466     case "$future_libdirs " in
5467     *" $libdir "*) ;;
5468     *) future_libdirs="$future_libdirs $libdir" ;;
5469     esac
5470     fi
5471    
5472     dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5473     test "X$dir" = "X$file/" && dir=
5474     dir="$dir$objdir"
5475    
5476     if test -n "$relink_command"; then
5477     # Determine the prefix the user has applied to our future dir.
5478     inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5479    
5480     # Don't allow the user to place us outside of our expected
5481     # location b/c this prevents finding dependent libraries that
5482     # are installed to the same prefix.
5483     # At present, this check doesn't affect windows .dll's that
5484     # are installed into $libdir/../bin (currently, that works fine)
5485     # but it's something to keep an eye on.
5486     if test "$inst_prefix_dir" = "$destdir"; then
5487     $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5488     exit $EXIT_FAILURE
5489     fi
5490    
5491     if test -n "$inst_prefix_dir"; then
5492     # Stick the inst_prefix_dir data into the link command.
5493     relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5494     else
5495     relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5496     fi
5497    
5498     $echo "$modename: warning: relinking \`$file'" 1>&2
5499     $show "$relink_command"
5500     if $run eval "$relink_command"; then :
5501     else
5502     $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5503     exit $EXIT_FAILURE
5504     fi
5505     fi
5506    
5507     # See the names of the shared library.
5508     set dummy $library_names
5509     if test -n "$2"; then
5510     realname="$2"
5511     shift
5512     shift
5513    
5514     srcname="$realname"
5515     test -n "$relink_command" && srcname="$realname"T
5516    
5517     # Install the shared library and build the symlinks.
5518     $show "$install_prog $dir/$srcname $destdir/$realname"
5519     $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5520     if test -n "$stripme" && test -n "$striplib"; then
5521     $show "$striplib $destdir/$realname"
5522     $run eval "$striplib $destdir/$realname" || exit $?
5523     fi
5524    
5525     if test "$#" -gt 0; then
5526     # Delete the old symlinks, and create new ones.
5527     for linkname
5528     do
5529     if test "$linkname" != "$realname"; then
5530     $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5531     $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5532     fi
5533     done
5534     fi
5535    
5536     # Do each command in the postinstall commands.
5537     lib="$destdir/$realname"
5538     cmds=$postinstall_cmds
5539     save_ifs="$IFS"; IFS='~'
5540     for cmd in $cmds; do
5541     IFS="$save_ifs"
5542     eval cmd=\"$cmd\"
5543     $show "$cmd"
5544     $run eval "$cmd" || exit $?
5545     done
5546     IFS="$save_ifs"
5547     fi
5548    
5549     # Install the pseudo-library for information purposes.
5550     name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5551     instname="$dir/$name"i
5552     $show "$install_prog $instname $destdir/$name"
5553     $run eval "$install_prog $instname $destdir/$name" || exit $?
5554    
5555     # Maybe install the static library, too.
5556     test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
5557     ;;
5558    
5559     *.lo)
5560     # Install (i.e. copy) a libtool object.
5561    
5562     # Figure out destination file name, if it wasn't already specified.
5563     if test -n "$destname"; then
5564     destfile="$destdir/$destname"
5565     else
5566     destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5567     destfile="$destdir/$destfile"
5568     fi
5569    
5570     # Deduce the name of the destination old-style object file.
5571     case $destfile in
5572     *.lo)
5573     staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
5574     ;;
5575     *.$objext)
5576     staticdest="$destfile"
5577     destfile=
5578     ;;
5579     *)
5580     $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
5581     $echo "$help" 1>&2
5582     exit $EXIT_FAILURE
5583     ;;
5584     esac
5585    
5586     # Install the libtool object if requested.
5587     if test -n "$destfile"; then
5588     $show "$install_prog $file $destfile"
5589     $run eval "$install_prog $file $destfile" || exit $?
5590     fi
5591    
5592     # Install the old object if enabled.
5593     if test "$build_old_libs" = yes; then
5594     # Deduce the name of the old-style object file.
5595     staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
5596    
5597     $show "$install_prog $staticobj $staticdest"
5598     $run eval "$install_prog \$staticobj \$staticdest" || exit $?
5599     fi
5600     exit $EXIT_SUCCESS
5601     ;;
5602    
5603     *)
5604     # Figure out destination file name, if it wasn't already specified.
5605     if test -n "$destname"; then
5606     destfile="$destdir/$destname"
5607     else
5608     destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5609     destfile="$destdir/$destfile"
5610     fi
5611    
5612     # If the file is missing, and there is a .exe on the end, strip it
5613     # because it is most likely a libtool script we actually want to
5614     # install
5615     stripped_ext=""
5616     case $file in
5617     *.exe)
5618     if test ! -f "$file"; then
5619     file=`$echo $file|${SED} 's,.exe$,,'`
5620     stripped_ext=".exe"
5621     fi
5622     ;;
5623     esac
5624    
5625     # Do a test to see if this is really a libtool program.
5626     case $host in
5627     *cygwin*|*mingw*)
5628     wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
5629     ;;
5630     *)
5631     wrapper=$file
5632     ;;
5633     esac
5634     if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
5635     notinst_deplibs=
5636     relink_command=
5637    
5638     # To insure that "foo" is sourced, and not "foo.exe",
5639     # finese the cygwin/MSYS system by explicitly sourcing "foo."
5640     # which disallows the automatic-append-.exe behavior.
5641     case $build in
5642     *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
5643     *) wrapperdot=${wrapper} ;;
5644     esac
5645     # If there is no directory component, then add one.
5646     case $file in
5647     */* | *\\*) . ${wrapperdot} ;;
5648     *) . ./${wrapperdot} ;;
5649     esac
5650    
5651     # Check the variables that should have been set.
5652     if test -z "$notinst_deplibs"; then
5653     $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
5654     exit $EXIT_FAILURE
5655     fi
5656    
5657     finalize=yes
5658     for lib in $notinst_deplibs; do
5659     # Check to see that each library is installed.
5660     libdir=
5661     if test -f "$lib"; then
5662     # If there is no directory component, then add one.
5663     case $lib in
5664     */* | *\\*) . $lib ;;
5665     *) . ./$lib ;;
5666     esac
5667     fi
5668     libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
5669     if test -n "$libdir" && test ! -f "$libfile"; then
5670     $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
5671     finalize=no
5672     fi
5673     done
5674    
5675     relink_command=
5676     # To insure that "foo" is sourced, and not "foo.exe",
5677     # finese the cygwin/MSYS system by explicitly sourcing "foo."
5678     # which disallows the automatic-append-.exe behavior.
5679     case $build in
5680     *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
5681     *) wrapperdot=${wrapper} ;;
5682     esac
5683     # If there is no directory component, then add one.
5684     case $file in
5685     */* | *\\*) . ${wrapperdot} ;;
5686     *) . ./${wrapperdot} ;;
5687     esac
5688    
5689     outputname=
5690     if test "$fast_install" = no && test -n "$relink_command"; then
5691     if test "$finalize" = yes && test -z "$run"; then
5692     tmpdir="/tmp"
5693     test -n "$TMPDIR" && tmpdir="$TMPDIR"
5694     tmpdir="$tmpdir/libtool-$$"
5695     save_umask=`umask`
5696     umask 0077
5697     if $mkdir "$tmpdir"; then
5698     umask $save_umask
5699     else
5700     umask $save_umask
5701     $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
5702     continue
5703     fi
5704     file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
5705     outputname="$tmpdir/$file"
5706     # Replace the output file specification.
5707     relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
5708    
5709     $show "$relink_command"
5710     if $run eval "$relink_command"; then :
5711     else
5712     $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5713     ${rm}r "$tmpdir"
5714     continue
5715     fi
5716     file="$outputname"
5717     else
5718     $echo "$modename: warning: cannot relink \`$file'" 1>&2
5719     fi
5720     else
5721     # Install the binary that we compiled earlier.
5722     file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
5723     fi
5724     fi
5725    
5726     # remove .exe since cygwin /usr/bin/install will append another
5727     # one anyways
5728     case $install_prog,$host in
5729     */usr/bin/install*,*cygwin*)
5730     case $file:$destfile in
5731     *.exe:*.exe)
5732     # this is ok
5733     ;;
5734     *.exe:*)
5735     destfile=$destfile.exe
5736     ;;
5737     *:*.exe)
5738     destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
5739     ;;
5740     esac
5741     ;;
5742     esac
5743     $show "$install_prog$stripme $file $destfile"
5744     $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
5745     test -n "$outputname" && ${rm}r "$tmpdir"
5746     ;;
5747     esac
5748     done
5749    
5750     for file in $staticlibs; do
5751     name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5752    
5753     # Set up the ranlib parameters.
5754     oldlib="$destdir/$name"
5755    
5756     $show "$install_prog $file $oldlib"
5757     $run eval "$install_prog \$file \$oldlib" || exit $?
5758    
5759     if test -n "$stripme" && test -n "$old_striplib"; then
5760     $show "$old_striplib $oldlib"
5761     $run eval "$old_striplib $oldlib" || exit $?
5762     fi
5763    
5764     # Do each command in the postinstall commands.
5765     cmds=$old_postinstall_cmds
5766     save_ifs="$IFS"; IFS='~'
5767     for cmd in $cmds; do
5768     IFS="$save_ifs"
5769     eval cmd=\"$cmd\"
5770     $show "$cmd"
5771     $run eval "$cmd" || exit $?
5772     done
5773     IFS="$save_ifs"
5774     done
5775    
5776     if test -n "$future_libdirs"; then
5777     $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
5778     fi
5779    
5780     if test -n "$current_libdirs"; then
5781     # Maybe just do a dry run.
5782     test -n "$run" && current_libdirs=" -n$current_libdirs"
5783     exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
5784     else
5785     exit $EXIT_SUCCESS
5786     fi
5787     ;;
5788    
5789     # libtool finish mode
5790     finish)
5791     modename="$modename: finish"
5792     libdirs="$nonopt"
5793     admincmds=
5794    
5795     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
5796     for dir
5797     do
5798     libdirs="$libdirs $dir"
5799     done
5800    
5801     for libdir in $libdirs; do
5802     if test -n "$finish_cmds"; then
5803     # Do each command in the finish commands.
5804     cmds=$finish_cmds
5805     save_ifs="$IFS"; IFS='~'
5806     for cmd in $cmds; do
5807     IFS="$save_ifs"
5808     eval cmd=\"$cmd\"
5809     $show "$cmd"
5810     $run eval "$cmd" || admincmds="$admincmds
5811     $cmd"
5812     done
5813     IFS="$save_ifs"
5814     fi
5815     if test -n "$finish_eval"; then
5816     # Do the single finish_eval.
5817     eval cmds=\"$finish_eval\"
5818     $run eval "$cmds" || admincmds="$admincmds
5819     $cmds"
5820     fi
5821     done
5822     fi
5823    
5824     # Exit here if they wanted silent mode.
5825     test "$show" = : && exit $EXIT_SUCCESS
5826    
5827     $echo "----------------------------------------------------------------------"
5828     $echo "Libraries have been installed in:"
5829     for libdir in $libdirs; do
5830     $echo " $libdir"
5831     done
5832     $echo
5833     $echo "If you ever happen to want to link against installed libraries"
5834     $echo "in a given directory, LIBDIR, you must either use libtool, and"
5835     $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
5836     $echo "flag during linking and do at least one of the following:"
5837     if test -n "$shlibpath_var"; then
5838     $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
5839     $echo " during execution"
5840     fi
5841     if test -n "$runpath_var"; then
5842     $echo " - add LIBDIR to the \`$runpath_var' environment variable"
5843     $echo " during linking"
5844     fi
5845     if test -n "$hardcode_libdir_flag_spec"; then
5846     libdir=LIBDIR
5847     eval flag=\"$hardcode_libdir_flag_spec\"
5848    
5849     $echo " - use the \`$flag' linker flag"
5850     fi
5851     if test -n "$admincmds"; then
5852     $echo " - have your system administrator run these commands:$admincmds"
5853     fi
5854     if test -f /etc/ld.so.conf; then
5855     $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
5856     fi
5857     $echo
5858     $echo "See any operating system documentation about shared libraries for"
5859     $echo "more information, such as the ld(1) and ld.so(8) manual pages."
5860     $echo "----------------------------------------------------------------------"
5861     exit $EXIT_SUCCESS
5862     ;;
5863    
5864     # libtool execute mode
5865     execute)
5866     modename="$modename: execute"
5867    
5868     # The first argument is the command name.
5869     cmd="$nonopt"
5870     if test -z "$cmd"; then
5871     $echo "$modename: you must specify a COMMAND" 1>&2
5872     $echo "$help"
5873     exit $EXIT_FAILURE
5874     fi
5875    
5876     # Handle -dlopen flags immediately.
5877     for file in $execute_dlfiles; do
5878     if test ! -f "$file"; then
5879     $echo "$modename: \`$file' is not a file" 1>&2
5880     $echo "$help" 1>&2
5881     exit $EXIT_FAILURE
5882     fi
5883    
5884     dir=
5885     case $file in
5886     *.la)
5887     # Check to see that this really is a libtool archive.
5888     if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5889     else
5890     $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5891     $echo "$help" 1>&2
5892     exit $EXIT_FAILURE
5893     fi
5894    
5895     # Read the libtool library.
5896     dlname=
5897     library_names=
5898    
5899     # If there is no directory component, then add one.
5900     case $file in
5901     */* | *\\*) . $file ;;
5902     *) . ./$file ;;
5903     esac
5904    
5905     # Skip this library if it cannot be dlopened.
5906     if test -z "$dlname"; then
5907     # Warn if it was a shared library.
5908     test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
5909     continue
5910     fi
5911    
5912     dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5913     test "X$dir" = "X$file" && dir=.
5914    
5915     if test -f "$dir/$objdir/$dlname"; then
5916     dir="$dir/$objdir"
5917     else
5918     $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
5919     exit $EXIT_FAILURE
5920     fi
5921     ;;
5922    
5923     *.lo)
5924     # Just add the directory containing the .lo file.
5925     dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
5926     test "X$dir" = "X$file" && dir=.
5927     ;;
5928    
5929     *)
5930     $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
5931     continue
5932     ;;
5933     esac
5934    
5935     # Get the absolute pathname.
5936     absdir=`cd "$dir" && pwd`
5937     test -n "$absdir" && dir="$absdir"
5938    
5939     # Now add the directory to shlibpath_var.
5940     if eval "test -z \"\$$shlibpath_var\""; then
5941     eval "$shlibpath_var=\"\$dir\""
5942     else
5943     eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
5944     fi
5945     done
5946    
5947     # This variable tells wrapper scripts just to set shlibpath_var
5948     # rather than running their programs.
5949     libtool_execute_magic="$magic"
5950    
5951     # Check if any of the arguments is a wrapper script.
5952     args=
5953     for file
5954     do
5955     case $file in
5956     -*) ;;
5957     *)
5958     # Do a test to see if this is really a libtool program.
5959     if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5960     # If there is no directory component, then add one.
5961     case $file in
5962     */* | *\\*) . $file ;;
5963     *) . ./$file ;;
5964     esac
5965    
5966     # Transform arg to wrapped name.
5967     file="$progdir/$program"
5968     fi
5969     ;;
5970     esac
5971     # Quote arguments (to preserve shell metacharacters).
5972     file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
5973     args="$args \"$file\""
5974     done
5975    
5976     if test -z "$run"; then
5977     if test -n "$shlibpath_var"; then
5978     # Export the shlibpath_var.
5979     eval "export $shlibpath_var"
5980     fi
5981    
5982     # Restore saved environment variables
5983     if test "${save_LC_ALL+set}" = set; then
5984     LC_ALL="$save_LC_ALL"; export LC_ALL
5985     fi
5986     if test "${save_LANG+set}" = set; then
5987     LANG="$save_LANG"; export LANG
5988     fi
5989    
5990     # Now prepare to actually exec the command.
5991     exec_cmd="\$cmd$args"
5992     else
5993     # Display what would be done.
5994     if test -n "$shlibpath_var"; then
5995     eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
5996     $echo "export $shlibpath_var"
5997     fi
5998     $echo "$cmd$args"
5999     exit $EXIT_SUCCESS
6000     fi
6001     ;;
6002    
6003     # libtool clean and uninstall mode
6004     clean | uninstall)
6005     modename="$modename: $mode"
6006     rm="$nonopt"
6007     files=
6008     rmforce=
6009     exit_status=0
6010    
6011     # This variable tells wrapper scripts just to set variables rather
6012     # than running their programs.
6013     libtool_install_magic="$magic"
6014    
6015     for arg
6016     do
6017     case $arg in
6018     -f) rm="$rm $arg"; rmforce=yes ;;
6019     -*) rm="$rm $arg" ;;
6020     *) files="$files $arg" ;;
6021     esac
6022     done
6023    
6024     if test -z "$rm"; then
6025     $echo "$modename: you must specify an RM program" 1>&2
6026     $echo "$help" 1>&2
6027     exit $EXIT_FAILURE
6028     fi
6029    
6030     rmdirs=
6031    
6032     origobjdir="$objdir"
6033     for file in $files; do
6034     dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6035     if test "X$dir" = "X$file"; then
6036     dir=.
6037     objdir="$origobjdir"
6038     else
6039     objdir="$dir/$origobjdir"
6040     fi
6041     name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6042     test "$mode" = uninstall && objdir="$dir"
6043    
6044     # Remember objdir for removal later, being careful to avoid duplicates
6045     if test "$mode" = clean; then
6046     case " $rmdirs " in
6047     *" $objdir "*) ;;
6048     *) rmdirs="$rmdirs $objdir" ;;
6049     esac
6050     fi
6051    
6052     # Don't error if the file doesn't exist and rm -f was used.
6053     if (test -L "$file") >/dev/null 2>&1 \
6054     || (test -h "$file") >/dev/null 2>&1 \
6055     || test -f "$file"; then
6056     :
6057     elif test -d "$file"; then
6058     exit_status=1
6059     continue
6060     elif test "$rmforce" = yes; then
6061     continue
6062     fi
6063    
6064     rmfiles="$file"
6065    
6066     case $name in
6067     *.la)
6068     # Possibly a libtool archive, so verify it.
6069     if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6070     . $dir/$name
6071    
6072     # Delete the libtool libraries and symlinks.
6073     for n in $library_names; do
6074     rmfiles="$rmfiles $objdir/$n"
6075     done
6076     test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6077     test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6078    
6079     if test "$mode" = uninstall; then
6080     if test -n "$library_names"; then
6081     # Do each command in the postuninstall commands.
6082     cmds=$postuninstall_cmds
6083     save_ifs="$IFS"; IFS='~'
6084     for cmd in $cmds; do
6085     IFS="$save_ifs"
6086     eval cmd=\"$cmd\"
6087     $show "$cmd"
6088     $run eval "$cmd"
6089     if test "$?" -ne 0 && test "$rmforce" != yes; then
6090     exit_status=1
6091     fi
6092     done
6093     IFS="$save_ifs"
6094     fi
6095    
6096     if test -n "$old_library"; then
6097     # Do each command in the old_postuninstall commands.
6098     cmds=$old_postuninstall_cmds
6099     save_ifs="$IFS"; IFS='~'
6100     for cmd in $cmds; do
6101     IFS="$save_ifs"
6102     eval cmd=\"$cmd\"
6103     $show "$cmd"
6104     $run eval "$cmd"
6105     if test "$?" -ne 0 && test "$rmforce" != yes; then
6106     exit_status=1
6107     fi
6108     done
6109     IFS="$save_ifs"
6110     fi
6111     # FIXME: should reinstall the best remaining shared library.
6112     fi
6113     fi
6114     ;;
6115    
6116     *.lo)
6117     # Possibly a libtool object, so verify it.
6118     if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6119    
6120     # Read the .lo file
6121     . $dir/$name
6122    
6123     # Add PIC object to the list of files to remove.
6124     if test -n "$pic_object" \
6125     && test "$pic_object" != none; then
6126     rmfiles="$rmfiles $dir/$pic_object"
6127     fi
6128    
6129     # Add non-PIC object to the list of files to remove.
6130     if test -n "$non_pic_object" \
6131     && test "$non_pic_object" != none; then
6132     rmfiles="$rmfiles $dir/$non_pic_object"
6133     fi
6134     fi
6135     ;;
6136    
6137     *)
6138     if test "$mode" = clean ; then
6139     noexename=$name
6140     case $file in
6141     *.exe)
6142     file=`$echo $file|${SED} 's,.exe$,,'`
6143     noexename=`$echo $name|${SED} 's,.exe$,,'`
6144     # $file with .exe has already been added to rmfiles,
6145     # add $file without .exe
6146     rmfiles="$rmfiles $file"
6147     ;;
6148     esac
6149     # Do a test to see if this is a libtool program.
6150     if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6151     relink_command=
6152     . $dir/$noexename
6153    
6154     # note $name still contains .exe if it was in $file originally
6155     # as does the version of $file that was added into $rmfiles
6156     rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6157     if test "$fast_install" = yes && test -n "$relink_command"; then
6158     rmfiles="$rmfiles $objdir/lt-$name"
6159     fi
6160     if test "X$noexename" != "X$name" ; then
6161     rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6162     fi
6163     fi
6164     fi
6165     ;;
6166     esac
6167     $show "$rm $rmfiles"
6168     $run $rm $rmfiles || exit_status=1
6169     done
6170     objdir="$origobjdir"
6171    
6172     # Try to remove the ${objdir}s in the directories where we deleted files
6173     for dir in $rmdirs; do
6174     if test -d "$dir"; then
6175     $show "rmdir $dir"
6176     $run rmdir $dir >/dev/null 2>&1
6177     fi
6178     done
6179    
6180     exit $exit_status
6181     ;;
6182    
6183     "")
6184     $echo "$modename: you must specify a MODE" 1>&2
6185     $echo "$generic_help" 1>&2
6186     exit $EXIT_FAILURE
6187     ;;
6188     esac
6189    
6190     if test -z "$exec_cmd"; then
6191     $echo "$modename: invalid operation mode \`$mode'" 1>&2
6192     $echo "$generic_help" 1>&2
6193     exit $EXIT_FAILURE
6194     fi
6195     fi # test -z "$show_help"
6196    
6197     if test -n "$exec_cmd"; then
6198     eval exec $exec_cmd
6199     exit $EXIT_FAILURE
6200     fi
6201    
6202     # We need to display help for each of the modes.
6203     case $mode in
6204     "") $echo \
6205     "Usage: $modename [OPTION]... [MODE-ARG]...
6206    
6207     Provide generalized library-building support services.
6208    
6209     --config show all configuration variables
6210     --debug enable verbose shell tracing
6211     -n, --dry-run display commands without modifying any files
6212     --features display basic configuration information and exit
6213     --finish same as \`--mode=finish'
6214     --help display this help message and exit
6215     --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
6216     --quiet same as \`--silent'
6217     --silent don't print informational messages
6218     --tag=TAG use configuration variables from tag TAG
6219     --version print version information
6220    
6221     MODE must be one of the following:
6222    
6223     clean remove files from the build directory
6224     compile compile a source file into a libtool object
6225     execute automatically set library path, then run a program
6226     finish complete the installation of libtool libraries
6227     install install libraries or executables
6228     link create a library or an executable
6229     uninstall remove libraries from an installed directory
6230    
6231     MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
6232     a more detailed description of MODE.
6233    
6234     Report bugs to <bug-libtool@gnu.org>."
6235     exit $EXIT_SUCCESS
6236     ;;
6237    
6238     clean)
6239     $echo \
6240     "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6241    
6242     Remove files from the build directory.
6243    
6244     RM is the name of the program to use to delete files associated with each FILE
6245     (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6246     to RM.
6247    
6248     If FILE is a libtool library, object or program, all the files associated
6249     with it are deleted. Otherwise, only FILE itself is deleted using RM."
6250     ;;
6251    
6252     compile)
6253     $echo \
6254     "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6255    
6256     Compile a source file into a libtool library object.
6257    
6258     This mode accepts the following additional options:
6259    
6260     -o OUTPUT-FILE set the output file name to OUTPUT-FILE
6261     -prefer-pic try to building PIC objects only
6262     -prefer-non-pic try to building non-PIC objects only
6263     -static always build a \`.o' file suitable for static linking
6264    
6265     COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6266     from the given SOURCEFILE.
6267    
6268     The output file name is determined by removing the directory component from
6269     SOURCEFILE, then substituting the C source code suffix \`.c' with the
6270     library object suffix, \`.lo'."
6271     ;;
6272    
6273     execute)
6274     $echo \
6275     "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6276    
6277     Automatically set library path, then run a program.
6278    
6279     This mode accepts the following additional options:
6280    
6281     -dlopen FILE add the directory containing FILE to the library path
6282    
6283     This mode sets the library path environment variable according to \`-dlopen'
6284     flags.
6285    
6286     If any of the ARGS are libtool executable wrappers, then they are translated
6287     into their corresponding uninstalled binary, and any of their required library
6288     directories are added to the library path.
6289    
6290     Then, COMMAND is executed, with ARGS as arguments."
6291     ;;
6292    
6293     finish)
6294     $echo \
6295     "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6296    
6297     Complete the installation of libtool libraries.
6298    
6299     Each LIBDIR is a directory that contains libtool libraries.
6300    
6301     The commands that this mode executes may require superuser privileges. Use
6302     the \`--dry-run' option if you just want to see what would be executed."
6303     ;;
6304    
6305     install)
6306     $echo \
6307     "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6308    
6309     Install executables or libraries.
6310    
6311     INSTALL-COMMAND is the installation command. The first component should be
6312     either the \`install' or \`cp' program.
6313    
6314     The rest of the components are interpreted as arguments to that command (only
6315     BSD-compatible install options are recognized)."
6316     ;;
6317    
6318     link)
6319     $echo \
6320     "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6321    
6322     Link object files or libraries together to form another library, or to
6323     create an executable program.
6324    
6325     LINK-COMMAND is a command using the C compiler that you would use to create
6326     a program from several object files.
6327    
6328     The following components of LINK-COMMAND are treated specially:
6329    
6330     -all-static do not do any dynamic linking at all
6331     -avoid-version do not add a version suffix if possible
6332     -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
6333     -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
6334     -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6335     -export-symbols SYMFILE
6336     try to export only the symbols listed in SYMFILE
6337     -export-symbols-regex REGEX
6338     try to export only the symbols matching REGEX
6339     -LLIBDIR search LIBDIR for required installed libraries
6340     -lNAME OUTPUT-FILE requires the installed library libNAME
6341     -module build a library that can dlopened
6342     -no-fast-install disable the fast-install mode
6343     -no-install link a not-installable executable
6344     -no-undefined declare that a library does not refer to external symbols
6345     -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
6346     -objectlist FILE Use a list of object files found in FILE to specify objects
6347     -precious-files-regex REGEX
6348     don't remove output files matching REGEX
6349     -release RELEASE specify package release information
6350     -rpath LIBDIR the created library will eventually be installed in LIBDIR
6351     -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
6352     -static do not do any dynamic linking of libtool libraries
6353     -version-info CURRENT[:REVISION[:AGE]]
6354     specify library version info [each variable defaults to 0]
6355    
6356     All other options (arguments beginning with \`-') are ignored.
6357    
6358     Every other argument is treated as a filename. Files ending in \`.la' are
6359     treated as uninstalled libtool libraries, other files are standard or library
6360     object files.
6361    
6362     If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6363     only library objects (\`.lo' files) may be specified, and \`-rpath' is
6364     required, except when creating a convenience library.
6365    
6366     If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6367     using \`ar' and \`ranlib', or on Windows using \`lib'.
6368    
6369     If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6370     is created, otherwise an executable program is created."
6371     ;;
6372    
6373     uninstall)
6374     $echo \
6375     "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6376    
6377     Remove libraries from an installation directory.
6378    
6379     RM is the name of the program to use to delete files associated with each FILE
6380     (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6381     to RM.
6382    
6383     If FILE is a libtool library, all the files associated with it are deleted.
6384     Otherwise, only FILE itself is deleted using RM."
6385     ;;
6386    
6387     *)
6388     $echo "$modename: invalid operation mode \`$mode'" 1>&2
6389     $echo "$help" 1>&2
6390     exit $EXIT_FAILURE
6391     ;;
6392     esac
6393    
6394     $echo
6395     $echo "Try \`$modename --help' for more information about other modes."
6396    
6397     exit $EXIT_SUCCESS
6398    
6399     # The TAGs below are defined such that we never get into a situation
6400     # in which we disable both kinds of libraries. Given conflicting
6401     # choices, we go for a static library, that is the most portable,
6402     # since we can't tell whether shared libraries were disabled because
6403     # the user asked for that or because the platform doesn't support
6404     # them. This is particularly important on AIX, because we don't
6405     # support having both static and shared libraries enabled at the same
6406     # time on that platform, so we default to a shared-only configuration.
6407     # If a disable-shared tag is given, we'll fallback to a static-only
6408     # configuration. But we'll never go from static-only to shared-only.
6409    
6410     # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6411     build_libtool_libs=no
6412     build_old_libs=yes
6413     # ### END LIBTOOL TAG CONFIG: disable-shared
6414    
6415     # ### BEGIN LIBTOOL TAG CONFIG: disable-static
6416     build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
6417     # ### END LIBTOOL TAG CONFIG: disable-static
6418    
6419     # Local Variables:
6420     # mode:shell-script
6421     # sh-indentation:2
6422     # End: