ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/utils/ltmain.sh
Revision: 1.3
Committed: Wed Mar 15 15:35:53 2006 UTC (18 years, 2 months ago) by elmex
Content type: application/x-sh
Branch: MAIN
Changes since 1.2: +317 -362 lines
Log Message:
UPSTREAM merge from 15.03.2006

File Contents

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