/[projet1]/public/pc/emulators/caloric/libs_windows/SDL/build-scripts/ltmain.sh
Defence Force logotype

Contents of /public/pc/emulators/caloric/libs_windows/SDL/build-scripts/ltmain.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 81 - (show annotations)
Wed May 27 20:33:03 2009 UTC (10 years, 3 months ago) by Jede
File MIME type: application/x-sh
File size: 196472 byte(s)
Ajouts des libs windows
1 # Based on libtool-1.5.22
2 # ltmain.sh - Provide generalized library-building support services.
3 # NOTE: Changing this file will not affect anything until you rerun configure.
4 #
5 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
6 # Free Software Foundation, Inc.
7 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8 #
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
13 #
14 # This program is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 #
23 # As a special exception to the GNU General Public License, if you
24 # distribute this file as part of a program that contains a
25 # configuration script generated by Autoconf, you may include it under
26 # the same distribution terms that you use for the rest of that program.
27
28 basename="s,^.*/,,g"
29
30 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
31 # is ksh but when the shell is invoked as "sh" and the current value of
32 # the _XPG environment variable is not equal to 1 (one), the special
33 # positional parameter $0, within a function call, is the name of the
34 # function.
35 progpath="$0"
36
37 # The name of this program:
38 progname=`echo "$progpath" | $SED $basename`
39 modename="$progname"
40
41 # Global variables:
42 EXIT_SUCCESS=0
43 EXIT_FAILURE=1
44
45 PROGRAM=ltmain.sh
46 PACKAGE=libtool
47 VERSION=1.5.22
48 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
49
50 # See if we are running on zsh, and set the options which allow our
51 # commands through without removal of \ escapes.
52 if test -n "${ZSH_VERSION+set}" ; then
53 setopt NO_GLOB_SUBST
54 fi
55
56 # Check that we have a working $echo.
57 if test "X$1" = X--no-reexec; then
58 # Discard the --no-reexec flag, and continue.
59 shift
60 elif test "X$1" = X--fallback-echo; then
61 # Avoid inline document here, it may be left over
62 :
63 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
64 # Yippee, $echo works!
65 :
66 else
67 # Restart under the correct shell, and then maybe $echo will work.
68 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
69 fi
70
71 if test "X$1" = X--fallback-echo; then
72 # used as fallback echo
73 shift
74 cat <<EOF
75 $*
76 EOF
77 exit $EXIT_SUCCESS
78 fi
79
80 default_mode=
81 help="Try \`$progname --help' for more information."
82 magic="%%%MAGIC variable%%%"
83 mkdir="mkdir"
84 mv="mv -f"
85 rm="rm -f"
86
87 # Sed substitution that helps us do robust quoting. It backslashifies
88 # metacharacters that are still active within double-quoted strings.
89 Xsed="${SED}"' -e 1s/^X//'
90 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
91 # test EBCDIC or ASCII
92 case `echo X|tr X '\101'` in
93 A) # ASCII based system
94 # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
95 SP2NL='tr \040 \012'
96 NL2SP='tr \015\012 \040\040'
97 ;;
98 *) # EBCDIC based system
99 SP2NL='tr \100 \n'
100 NL2SP='tr \r\n \100\100'
101 ;;
102 esac
103
104 # NLS nuisances.
105 # Only set LANG and LC_ALL to C if already set.
106 # These must not be set unconditionally because not all systems understand
107 # e.g. LANG=C (notably SCO).
108 # We save the old values to restore during execute mode.
109 if test "${LC_ALL+set}" = set; then
110 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
111 fi
112 if test "${LANG+set}" = set; then
113 save_LANG="$LANG"; LANG=C; export LANG
114 fi
115
116 # Make sure IFS has a sensible default
117 lt_nl='
118 '
119 IFS=" $lt_nl"
120
121 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
122 $echo "$modename: not configured to build any kind of library" 1>&2
123 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
124 exit $EXIT_FAILURE
125 fi
126
127 # Global variables.
128 mode=$default_mode
129 nonopt=
130 prev=
131 prevopt=
132 run=
133 show="$echo"
134 show_help=
135 execute_dlfiles=
136 duplicate_deps=no
137 preserve_args=
138 lo2o="s/\\.lo\$/.${objext}/"
139 o2lo="s/\\.${objext}\$/.lo/"
140
141 #####################################
142 # Shell function definitions:
143 # This seems to be the best place for them
144
145 # func_mktempdir [string]
146 # Make a temporary directory that won't clash with other running
147 # libtool processes, and avoids race conditions if possible. If
148 # given, STRING is the basename for that directory.
149 func_mktempdir ()
150 {
151 my_template="${TMPDIR-/tmp}/${1-$progname}"
152
153 if test "$run" = ":"; then
154 # Return a directory name, but don't create it in dry-run mode
155 my_tmpdir="${my_template}-$$"
156 else
157
158 # If mktemp works, use that first and foremost
159 my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
160
161 if test ! -d "$my_tmpdir"; then
162 # Failing that, at least try and use $RANDOM to avoid a race
163 my_tmpdir="${my_template}-${RANDOM-0}$$"
164
165 save_mktempdir_umask=`umask`
166 umask 0077
167 $mkdir "$my_tmpdir"
168 umask $save_mktempdir_umask
169 fi
170
171 # If we're not in dry-run mode, bomb out on failure
172 test -d "$my_tmpdir" || {
173 $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
174 exit $EXIT_FAILURE
175 }
176 fi
177
178 $echo "X$my_tmpdir" | $Xsed
179 }
180
181
182 # func_win32_libid arg
183 # return the library type of file 'arg'
184 #
185 # Need a lot of goo to handle *both* DLLs and import libs
186 # Has to be a shell function in order to 'eat' the argument
187 # that is supplied when $file_magic_command is called.
188 func_win32_libid ()
189 {
190 win32_libid_type="unknown"
191 win32_fileres=`file -L $1 2>/dev/null`
192 case $win32_fileres in
193 *ar\ archive\ import\ library*) # definitely import
194 win32_libid_type="x86 archive import"
195 ;;
196 *ar\ archive*) # could be an import, or static
197 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
198 $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
199 win32_nmres=`eval $NM -f posix -A $1 | \
200 $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
201 case $win32_nmres in
202 import*) win32_libid_type="x86 archive import";;
203 *) win32_libid_type="x86 archive static";;
204 esac
205 fi
206 ;;
207 *DLL*)
208 win32_libid_type="x86 DLL"
209 ;;
210 *executable*) # but shell scripts are "executable" too...
211 case $win32_fileres in
212 *MS\ Windows\ PE\ Intel*)
213 win32_libid_type="x86 DLL"
214 ;;
215 esac
216 ;;
217 esac
218 $echo $win32_libid_type
219 }
220
221
222 # func_infer_tag arg
223 # Infer tagged configuration to use if any are available and
224 # if one wasn't chosen via the "--tag" command line option.
225 # Only attempt this if the compiler in the base compile
226 # command doesn't match the default compiler.
227 # arg is usually of the form 'gcc ...'
228 func_infer_tag ()
229 {
230 if test -n "$available_tags" && test -z "$tagname"; then
231 CC_quoted=
232 for arg in $CC; do
233 case $arg in
234 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
235 arg="\"$arg\""
236 ;;
237 esac
238 CC_quoted="$CC_quoted $arg"
239 done
240 case $@ in
241 # Blanks in the command may have been stripped by the calling shell,
242 # but not from the CC environment variable when configure was run.
243 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
244 # Blanks at the start of $base_compile will cause this to fail
245 # if we don't check for them as well.
246 *)
247 for z in $available_tags; do
248 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
249 # Evaluate the configuration.
250 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
251 CC_quoted=
252 for arg in $CC; do
253 # Double-quote args containing other shell metacharacters.
254 case $arg in
255 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
256 arg="\"$arg\""
257 ;;
258 esac
259 CC_quoted="$CC_quoted $arg"
260 done
261 case "$@ " in
262 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
263 # The compiler in the base compile command matches
264 # the one in the tagged configuration.
265 # Assume this is the tagged configuration we want.
266 tagname=$z
267 break
268 ;;
269 esac
270 fi
271 done
272 # If $tagname still isn't set, then no tagged configuration
273 # was found and let the user know that the "--tag" command
274 # line option must be used.
275 if test -z "$tagname"; then
276 $echo "$modename: unable to infer tagged configuration"
277 $echo "$modename: specify a tag with \`--tag'" 1>&2
278 exit $EXIT_FAILURE
279 # else
280 # $echo "$modename: using $tagname tagged configuration"
281 fi
282 ;;
283 esac
284 fi
285 }
286
287
288 # func_extract_an_archive dir oldlib
289 func_extract_an_archive ()
290 {
291 f_ex_an_ar_dir="$1"; shift
292 f_ex_an_ar_oldlib="$1"
293
294 $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
295 $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
296 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
297 :
298 else
299 $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
300 exit $EXIT_FAILURE
301 fi
302 }
303
304 # func_extract_archives gentop oldlib ...
305 func_extract_archives ()
306 {
307 my_gentop="$1"; shift
308 my_oldlibs=${1+"$@"}
309 my_oldobjs=""
310 my_xlib=""
311 my_xabs=""
312 my_xdir=""
313 my_status=""
314
315 $show "${rm}r $my_gentop"
316 $run ${rm}r "$my_gentop"
317 $show "$mkdir $my_gentop"
318 $run $mkdir "$my_gentop"
319 my_status=$?
320 if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
321 exit $my_status
322 fi
323
324 for my_xlib in $my_oldlibs; do
325 # Extract the objects.
326 case $my_xlib in
327 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
328 *) my_xabs=`pwd`"/$my_xlib" ;;
329 esac
330 my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
331 my_xdir="$my_gentop/$my_xlib"
332
333 $show "${rm}r $my_xdir"
334 $run ${rm}r "$my_xdir"
335 $show "$mkdir $my_xdir"
336 $run $mkdir "$my_xdir"
337 exit_status=$?
338 if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
339 exit $exit_status
340 fi
341 case $host in
342 *-darwin*)
343 $show "Extracting $my_xabs"
344 # Do not bother doing anything if just a dry run
345 if test -z "$run"; then
346 darwin_orig_dir=`pwd`
347 cd $my_xdir || exit $?
348 darwin_archive=$my_xabs
349 darwin_curdir=`pwd`
350 darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
351 darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
352 if test -n "$darwin_arches"; then
353 darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
354 darwin_arch=
355 $show "$darwin_base_archive has multiple architectures $darwin_arches"
356 for darwin_arch in $darwin_arches ; do
357 mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
358 lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
359 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
360 func_extract_an_archive "`pwd`" "${darwin_base_archive}"
361 cd "$darwin_curdir"
362 $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
363 done # $darwin_arches
364 ## Okay now we have a bunch of thin objects, gotta fatten them up :)
365 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
366 darwin_file=
367 darwin_files=
368 for darwin_file in $darwin_filelist; do
369 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
370 lipo -create -output "$darwin_file" $darwin_files
371 done # $darwin_filelist
372 ${rm}r unfat-$$
373 cd "$darwin_orig_dir"
374 else
375 cd "$darwin_orig_dir"
376 func_extract_an_archive "$my_xdir" "$my_xabs"
377 fi # $darwin_arches
378 fi # $run
379 ;;
380 *)
381 func_extract_an_archive "$my_xdir" "$my_xabs"
382 ;;
383 esac
384 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
385 done
386 func_extract_archives_result="$my_oldobjs"
387 }
388 # End of Shell function definitions
389 #####################################
390
391 # Darwin sucks
392 eval std_shrext=\"$shrext_cmds\"
393
394 disable_libs=no
395
396 # Parse our command line options once, thoroughly.
397 while test "$#" -gt 0
398 do
399 arg="$1"
400 shift
401
402 case $arg in
403 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
404 *) optarg= ;;
405 esac
406
407 # If the previous option needs an argument, assign it.
408 if test -n "$prev"; then
409 case $prev in
410 execute_dlfiles)
411 execute_dlfiles="$execute_dlfiles $arg"
412 ;;
413 tag)
414 tagname="$arg"
415 preserve_args="${preserve_args}=$arg"
416
417 # Check whether tagname contains only valid characters
418 case $tagname in
419 *[!-_A-Za-z0-9,/]*)
420 $echo "$progname: invalid tag name: $tagname" 1>&2
421 exit $EXIT_FAILURE
422 ;;
423 esac
424
425 case $tagname in
426 CC)
427 # Don't test for the "default" C tag, as we know, it's there, but
428 # not specially marked.
429 ;;
430 *)
431 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
432 taglist="$taglist $tagname"
433 # Evaluate the configuration.
434 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
435 else
436 $echo "$progname: ignoring unknown tag $tagname" 1>&2
437 fi
438 ;;
439 esac
440 ;;
441 *)
442 eval "$prev=\$arg"
443 ;;
444 esac
445
446 prev=
447 prevopt=
448 continue
449 fi
450
451 # Have we seen a non-optional argument yet?
452 case $arg in
453 --help)
454 show_help=yes
455 ;;
456
457 --version)
458 $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
459 $echo
460 $echo "Copyright (C) 2005 Free Software Foundation, Inc."
461 $echo "This is free software; see the source for copying conditions. There is NO"
462 $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
463 exit $?
464 ;;
465
466 --config)
467 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
468 # Now print the configurations for the tags.
469 for tagname in $taglist; do
470 ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
471 done
472 exit $?
473 ;;
474
475 --debug)
476 $echo "$progname: enabling shell trace mode"
477 set -x
478 preserve_args="$preserve_args $arg"
479 ;;
480
481 --dry-run | -n)
482 run=:
483 ;;
484
485 --features)
486 $echo "host: $host"
487 if test "$build_libtool_libs" = yes; then
488 $echo "enable shared libraries"
489 else
490 $echo "disable shared libraries"
491 fi
492 if test "$build_old_libs" = yes; then
493 $echo "enable static libraries"
494 else
495 $echo "disable static libraries"
496 fi
497 exit $?
498 ;;
499
500 --finish) mode="finish" ;;
501
502 --mode) prevopt="--mode" prev=mode ;;
503 --mode=*) mode="$optarg" ;;
504
505 --preserve-dup-deps) duplicate_deps="yes" ;;
506
507 --quiet | --silent)
508 show=:
509 preserve_args="$preserve_args $arg"
510 ;;
511
512 --tag)
513 prevopt="--tag"
514 prev=tag
515 preserve_args="$preserve_args --tag"
516 ;;
517 --tag=*)
518 set tag "$optarg" ${1+"$@"}
519 shift
520 prev=tag
521 preserve_args="$preserve_args --tag"
522 ;;
523
524 -dlopen)
525 prevopt="-dlopen"
526 prev=execute_dlfiles
527 ;;
528
529 -*)
530 $echo "$modename: unrecognized option \`$arg'" 1>&2
531 $echo "$help" 1>&2
532 exit $EXIT_FAILURE
533 ;;
534
535 *)
536 nonopt="$arg"
537 break
538 ;;
539 esac
540 done
541
542 if test -n "$prevopt"; then
543 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
544 $echo "$help" 1>&2
545 exit $EXIT_FAILURE
546 fi
547
548 case $disable_libs in
549 no)
550 ;;
551 shared)
552 build_libtool_libs=no
553 build_old_libs=yes
554 ;;
555 static)
556 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
557 ;;
558 esac
559
560 # If this variable is set in any of the actions, the command in it
561 # will be execed at the end. This prevents here-documents from being
562 # left over by shells.
563 exec_cmd=
564
565 if test -z "$show_help"; then
566
567 # Infer the operation mode.
568 if test -z "$mode"; then
569 $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
570 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
571 case $nonopt in
572 *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
573 mode=link
574 for arg
575 do
576 case $arg in
577 -c)
578 mode=compile
579 break
580 ;;
581 esac
582 done
583 ;;
584 *db | *dbx | *strace | *truss)
585 mode=execute
586 ;;
587 *install*|cp|mv)
588 mode=install
589 ;;
590 *rm)
591 mode=uninstall
592 ;;
593 *)
594 # If we have no mode, but dlfiles were specified, then do execute mode.
595 test -n "$execute_dlfiles" && mode=execute
596
597 # Just use the default operation mode.
598 if test -z "$mode"; then
599 if test -n "$nonopt"; then
600 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
601 else
602 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
603 fi
604 fi
605 ;;
606 esac
607 fi
608
609 # Only execute mode is allowed to have -dlopen flags.
610 if test -n "$execute_dlfiles" && test "$mode" != execute; then
611 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
612 $echo "$help" 1>&2
613 exit $EXIT_FAILURE
614 fi
615
616 # Change the help message to a mode-specific one.
617 generic_help="$help"
618 help="Try \`$modename --help --mode=$mode' for more information."
619
620 # These modes are in order of execution frequency so that they run quickly.
621 case $mode in
622 # libtool compile mode
623 compile)
624 modename="$modename: compile"
625 # Get the compilation command and the source file.
626 base_compile=
627 srcfile="$nonopt" # always keep a non-empty value in "srcfile"
628 suppress_opt=yes
629 suppress_output=
630 arg_mode=normal
631 libobj=
632 later=
633
634 for arg
635 do
636 case $arg_mode in
637 arg )
638 # do not "continue". Instead, add this to base_compile
639 lastarg="$arg"
640 arg_mode=normal
641 ;;
642
643 target )
644 libobj="$arg"
645 arg_mode=normal
646 continue
647 ;;
648
649 normal )
650 # Accept any command-line options.
651 case $arg in
652 -o)
653 if test -n "$libobj" ; then
654 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
655 exit $EXIT_FAILURE
656 fi
657 arg_mode=target
658 continue
659 ;;
660
661 -static | -prefer-pic | -prefer-non-pic)
662 later="$later $arg"
663 continue
664 ;;
665
666 -no-suppress)
667 suppress_opt=no
668 continue
669 ;;
670
671 -Xcompiler)
672 arg_mode=arg # the next one goes into the "base_compile" arg list
673 continue # The current "srcfile" will either be retained or
674 ;; # replaced later. I would guess that would be a bug.
675
676 -Wc,*)
677 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
678 lastarg=
679 save_ifs="$IFS"; IFS=','
680 for arg in $args; do
681 IFS="$save_ifs"
682
683 # Double-quote args containing other shell metacharacters.
684 # Many Bourne shells cannot handle close brackets correctly
685 # in scan sets, so we specify it separately.
686 case $arg in
687 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
688 arg="\"$arg\""
689 ;;
690 esac
691 lastarg="$lastarg $arg"
692 done
693 IFS="$save_ifs"
694 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
695
696 # Add the arguments to base_compile.
697 base_compile="$base_compile $lastarg"
698 continue
699 ;;
700
701 * )
702 # Accept the current argument as the source file.
703 # The previous "srcfile" becomes the current argument.
704 #
705 lastarg="$srcfile"
706 srcfile="$arg"
707 ;;
708 esac # case $arg
709 ;;
710 esac # case $arg_mode
711
712 # Aesthetically quote the previous argument.
713 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
714
715 case $lastarg in
716 # Double-quote args containing other shell metacharacters.
717 # Many Bourne shells cannot handle close brackets correctly
718 # in scan sets, and some SunOS ksh mistreat backslash-escaping
719 # in scan sets (worked around with variable expansion),
720 # and furthermore cannot handle '|' '&' '(' ')' in scan sets
721 # at all, so we specify them separately.
722 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
723 lastarg="\"$lastarg\""
724 ;;
725 esac
726
727 base_compile="$base_compile $lastarg"
728 done # for arg
729
730 case $arg_mode in
731 arg)
732 $echo "$modename: you must specify an argument for -Xcompile"
733 exit $EXIT_FAILURE
734 ;;
735 target)
736 $echo "$modename: you must specify a target with \`-o'" 1>&2
737 exit $EXIT_FAILURE
738 ;;
739 *)
740 # Get the name of the library object.
741 [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
742 ;;
743 esac
744
745 # Recognize several different file suffixes.
746 # If the user specifies -o file.o, it is replaced with file.lo
747 xform='[cCFSifmso]'
748 case $libobj in
749 *.ada) xform=ada ;;
750 *.adb) xform=adb ;;
751 *.ads) xform=ads ;;
752 *.asm) xform=asm ;;
753 *.c++) xform=c++ ;;
754 *.cc) xform=cc ;;
755 *.ii) xform=ii ;;
756 *.class) xform=class ;;
757 *.cpp) xform=cpp ;;
758 *.cxx) xform=cxx ;;
759 *.f90) xform=f90 ;;
760 *.for) xform=for ;;
761 *.java) xform=java ;;
762 esac
763
764 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
765
766 case $libobj in
767 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
768 *)
769 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
770 exit $EXIT_FAILURE
771 ;;
772 esac
773
774 func_infer_tag $base_compile
775
776 for arg in $later; do
777 case $arg in
778 -static)
779 build_old_libs=yes
780 continue
781 ;;
782
783 -prefer-pic)
784 pic_mode=yes
785 continue
786 ;;
787
788 -prefer-non-pic)
789 pic_mode=no
790 continue
791 ;;
792 esac
793 done
794
795 qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
796 case $qlibobj in
797 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
798 qlibobj="\"$qlibobj\"" ;;
799 esac
800 test "X$libobj" != "X$qlibobj" \
801 && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \
802 && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
803 objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
804 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
805 if test "X$xdir" = "X$obj"; then
806 xdir=
807 else
808 xdir=$xdir/
809 fi
810 lobj=${xdir}$objdir/$objname
811
812 if test -z "$base_compile"; then
813 $echo "$modename: you must specify a compilation command" 1>&2
814 $echo "$help" 1>&2
815 exit $EXIT_FAILURE
816 fi
817
818 # Delete any leftover library objects.
819 if test "$build_old_libs" = yes; then
820 removelist="$obj $lobj $libobj ${libobj}T"
821 else
822 removelist="$lobj $libobj ${libobj}T"
823 fi
824
825 $run $rm $removelist
826 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
827
828 # On Cygwin there's no "real" PIC flag so we must build both object types
829 case $host_os in
830 cygwin* | mingw* | pw32* | os2*)
831 pic_mode=default
832 ;;
833 esac
834 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
835 # non-PIC code in shared libraries is not supported
836 pic_mode=default
837 fi
838
839 # Calculate the filename of the output object if compiler does
840 # not support -o with -c
841 if test "$compiler_c_o" = no; then
842 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
843 lockfile="$output_obj.lock"
844 removelist="$removelist $output_obj $lockfile"
845 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
846 else
847 output_obj=
848 need_locks=no
849 lockfile=
850 fi
851
852 # Lock this critical section if it is needed
853 # We use this script file to make the link, it avoids creating a new file
854 if test "$need_locks" = yes; then
855 until $run ln "$progpath" "$lockfile" 2>/dev/null; do
856 $show "Waiting for $lockfile to be removed"
857 sleep 2
858 done
859 elif test "$need_locks" = warn; then
860 if test -f "$lockfile"; then
861 $echo "\
862 *** ERROR, $lockfile exists and contains:
863 `cat $lockfile 2>/dev/null`
864
865 This indicates that another process is trying to use the same
866 temporary object file, and libtool could not work around it because
867 your compiler does not support \`-c' and \`-o' together. If you
868 repeat this compilation, it may succeed, by chance, but you had better
869 avoid parallel builds (make -j) in this platform, or get a better
870 compiler."
871
872 $run $rm $removelist
873 exit $EXIT_FAILURE
874 fi
875 $echo "$srcfile" > "$lockfile"
876 fi
877
878 if test -n "$fix_srcfile_path"; then
879 eval srcfile=\"$fix_srcfile_path\"
880 fi
881 qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
882 case $qsrcfile in
883 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
884 qsrcfile="\"$qsrcfile\"" ;;
885 esac
886
887 $run $rm "$libobj" "${libobj}T"
888
889 # Create a libtool object file (analogous to a ".la" file),
890 # but don't create it if we're doing a dry run.
891 test -z "$run" && cat > ${libobj}T <<EOF
892 # $libobj - a libtool object file
893 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
894 #
895 # Please DO NOT delete this file!
896 # It is necessary for linking the library.
897
898 # Name of the PIC object.
899 EOF
900
901 # Only build a PIC object if we are building libtool libraries.
902 if test "$build_libtool_libs" = yes; then
903 # Without this assignment, base_compile gets emptied.
904 fbsd_hideous_sh_bug=$base_compile
905
906 if test "$pic_mode" != no; then
907 command="$base_compile $qsrcfile $pic_flag"
908 else
909 # Don't build PIC code
910 command="$base_compile $qsrcfile"
911 fi
912
913 if test ! -d "${xdir}$objdir"; then
914 $show "$mkdir ${xdir}$objdir"
915 $run $mkdir ${xdir}$objdir
916 exit_status=$?
917 if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
918 exit $exit_status
919 fi
920 fi
921
922 if test -z "$output_obj"; then
923 # Place PIC objects in $objdir
924 command="$command -o $lobj"
925 fi
926
927 $run $rm "$lobj" "$output_obj"
928
929 $show "$command"
930 if $run eval "$command"; then :
931 else
932 test -n "$output_obj" && $run $rm $removelist
933 exit $EXIT_FAILURE
934 fi
935
936 if test "$need_locks" = warn &&
937 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
938 $echo "\
939 *** ERROR, $lockfile contains:
940 `cat $lockfile 2>/dev/null`
941
942 but it should contain:
943 $srcfile
944
945 This indicates that another process is trying to use the same
946 temporary object file, and libtool could not work around it because
947 your compiler does not support \`-c' and \`-o' together. If you
948 repeat this compilation, it may succeed, by chance, but you had better
949 avoid parallel builds (make -j) in this platform, or get a better
950 compiler."
951
952 $run $rm $removelist
953 exit $EXIT_FAILURE
954 fi
955
956 # Just move the object if needed, then go on to compile the next one
957 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
958 $show "$mv $output_obj $lobj"
959 if $run $mv $output_obj $lobj; then :
960 else
961 error=$?
962 $run $rm $removelist
963 exit $error
964 fi
965 fi
966
967 # Append the name of the PIC object to the libtool object file.
968 test -z "$run" && cat >> ${libobj}T <<EOF
969 pic_object='$objdir/$objname'
970
971 EOF
972
973 # Allow error messages only from the first compilation.
974 if test "$suppress_opt" = yes; then
975 suppress_output=' >/dev/null 2>&1'
976 fi
977 else
978 # No PIC object so indicate it doesn't exist in the libtool
979 # object file.
980 test -z "$run" && cat >> ${libobj}T <<EOF
981 pic_object=none
982
983 EOF
984 fi
985
986 # Only build a position-dependent object if we build old libraries.
987 if test "$build_old_libs" = yes; then
988 if test "$pic_mode" != yes; then
989 # Don't build PIC code
990 command="$base_compile $qsrcfile"
991 else
992 command="$base_compile $qsrcfile $pic_flag"
993 fi
994 if test "$compiler_c_o" = yes; then
995 command="$command -o $obj"
996 fi
997
998 # Suppress compiler output if we already did a PIC compilation.
999 command="$command$suppress_output"
1000 $run $rm "$obj" "$output_obj"
1001 $show "$command"
1002 if $run eval "$command"; then :
1003 else
1004 $run $rm $removelist
1005 exit $EXIT_FAILURE
1006 fi
1007
1008 if test "$need_locks" = warn &&
1009 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1010 $echo "\
1011 *** ERROR, $lockfile contains:
1012 `cat $lockfile 2>/dev/null`
1013
1014 but it should contain:
1015 $srcfile
1016
1017 This indicates that another process is trying to use the same
1018 temporary object file, and libtool could not work around it because
1019 your compiler does not support \`-c' and \`-o' together. If you
1020 repeat this compilation, it may succeed, by chance, but you had better
1021 avoid parallel builds (make -j) in this platform, or get a better
1022 compiler."
1023
1024 $run $rm $removelist
1025 exit $EXIT_FAILURE
1026 fi
1027
1028 # Just move the object if needed
1029 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1030 $show "$mv $output_obj $obj"
1031 if $run $mv $output_obj $obj; then :
1032 else
1033 error=$?
1034 $run $rm $removelist
1035 exit $error
1036 fi
1037 fi
1038
1039 # Append the name of the non-PIC object the libtool object file.
1040 # Only append if the libtool object file exists.
1041 test -z "$run" && cat >> ${libobj}T <<EOF
1042 # Name of the non-PIC object.
1043 non_pic_object='$objname'
1044
1045 EOF
1046 else
1047 # Append the name of the non-PIC object the libtool object file.
1048 # Only append if the libtool object file exists.
1049 test -z "$run" && cat >> ${libobj}T <<EOF
1050 # Name of the non-PIC object.
1051 non_pic_object=none
1052
1053 EOF
1054 fi
1055
1056 $run $mv "${libobj}T" "${libobj}"
1057
1058 # Unlock the critical section if it was locked
1059 if test "$need_locks" != no; then
1060 $run $rm "$lockfile"
1061 fi
1062
1063 exit $EXIT_SUCCESS
1064 ;;
1065
1066 # libtool link mode
1067 link | relink)
1068 modename="$modename: link"
1069 case $host in
1070 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1071 # It is impossible to link a dll without this setting, and
1072 # we shouldn't force the makefile maintainer to figure out
1073 # which system we are compiling for in order to pass an extra
1074 # flag for every libtool invocation.
1075 # allow_undefined=no
1076
1077 # FIXME: Unfortunately, there are problems with the above when trying
1078 # to make a dll which has undefined symbols, in which case not
1079 # even a static library is built. For now, we need to specify
1080 # -no-undefined on the libtool link line when we can be certain
1081 # that all symbols are satisfied, otherwise we get a static library.
1082 allow_undefined=yes
1083 ;;
1084 *)
1085 allow_undefined=yes
1086 ;;
1087 esac
1088 libtool_args="$nonopt"
1089 base_compile="$nonopt $@"
1090 compile_command="$nonopt"
1091 finalize_command="$nonopt"
1092
1093 compile_rpath=
1094 finalize_rpath=
1095 compile_shlibpath=
1096 finalize_shlibpath=
1097 convenience=
1098 old_convenience=
1099 deplibs=
1100 old_deplibs=
1101 compiler_flags=
1102 linker_flags=
1103 dllsearchpath=
1104 lib_search_path=`pwd`
1105 inst_prefix_dir=
1106
1107 avoid_version=no
1108 dlfiles=
1109 dlprefiles=
1110 dlself=no
1111 export_dynamic=no
1112 export_symbols=
1113 export_symbols_regex=
1114 generated=
1115 libobjs=
1116 ltlibs=
1117 module=no
1118 no_install=no
1119 objs=
1120 non_pic_objects=
1121 notinst_path= # paths that contain not-installed libtool libraries
1122 precious_files_regex=
1123 prefer_static_libs=no
1124 preload=no
1125 prev=
1126 prevarg=
1127 release=
1128 rpath=
1129 xrpath=
1130 perm_rpath=
1131 temp_rpath=
1132 thread_safe=no
1133 vinfo=
1134 vinfo_number=no
1135
1136 func_infer_tag $base_compile
1137
1138 # We need to know -static, to get the right output filenames.
1139 for arg
1140 do
1141 case $arg in
1142 -all-static | -static)
1143 if test "X$arg" = "X-all-static"; then
1144 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1145 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1146 fi
1147 if test -n "$link_static_flag"; then
1148 dlopen_self=$dlopen_self_static
1149 fi
1150 prefer_static_libs=yes
1151 else
1152 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1153 dlopen_self=$dlopen_self_static
1154 fi
1155 prefer_static_libs=built
1156 fi
1157 build_libtool_libs=no
1158 build_old_libs=yes
1159 break
1160 ;;
1161 esac
1162 done
1163
1164 # See if our shared archives depend on static archives.
1165 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1166
1167 # Go through the arguments, transforming them on the way.
1168 while test "$#" -gt 0; do
1169 arg="$1"
1170 shift
1171 case $arg in
1172 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1173 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1174 ;;
1175 *) qarg=$arg ;;
1176 esac
1177 libtool_args="$libtool_args $qarg"
1178
1179 # If the previous option needs an argument, assign it.
1180 if test -n "$prev"; then
1181 case $prev in
1182 output)
1183 compile_command="$compile_command @OUTPUT@"
1184 finalize_command="$finalize_command @OUTPUT@"
1185 ;;
1186 esac
1187
1188 case $prev in
1189 dlfiles|dlprefiles)
1190 if test "$preload" = no; then
1191 # Add the symbol object into the linking commands.
1192 compile_command="$compile_command @SYMFILE@"
1193 finalize_command="$finalize_command @SYMFILE@"
1194 preload=yes
1195 fi
1196 case $arg in
1197 *.la | *.lo) ;; # We handle these cases below.
1198 force)
1199 if test "$dlself" = no; then
1200 dlself=needless
1201 export_dynamic=yes
1202 fi
1203 prev=
1204 continue
1205 ;;
1206 self)
1207 if test "$prev" = dlprefiles; then
1208 dlself=yes
1209 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1210 dlself=yes
1211 else
1212 dlself=needless
1213 export_dynamic=yes
1214 fi
1215 prev=
1216 continue
1217 ;;
1218 *)
1219 if test "$prev" = dlfiles; then
1220 dlfiles="$dlfiles $arg"
1221 else
1222 dlprefiles="$dlprefiles $arg"
1223 fi
1224 prev=
1225 continue
1226 ;;
1227 esac
1228 ;;
1229 expsyms)
1230 export_symbols="$arg"
1231 if test ! -f "$arg"; then
1232 $echo "$modename: symbol file \`$arg' does not exist"
1233 exit $EXIT_FAILURE
1234 fi
1235 prev=
1236 continue
1237 ;;
1238 expsyms_regex)
1239 export_symbols_regex="$arg"
1240 prev=
1241 continue
1242 ;;
1243 inst_prefix)
1244 inst_prefix_dir="$arg"
1245 prev=
1246 continue
1247 ;;
1248 precious_regex)
1249 precious_files_regex="$arg"
1250 prev=
1251 continue
1252 ;;
1253 release)
1254 release="-$arg"
1255 prev=
1256 continue
1257 ;;
1258 objectlist)
1259 if test -f "$arg"; then
1260 save_arg=$arg
1261 moreargs=
1262 for fil in `cat $save_arg`
1263 do
1264 # moreargs="$moreargs $fil"
1265 arg=$fil
1266 # A libtool-controlled object.
1267
1268 # Check to see that this really is a libtool object.
1269 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1270 pic_object=
1271 non_pic_object=
1272
1273 # Read the .lo file
1274 # If there is no directory component, then add one.
1275 case $arg in
1276 */* | *\\*) . $arg ;;
1277 *) . ./$arg ;;
1278 esac
1279
1280 if test -z "$pic_object" || \
1281 test -z "$non_pic_object" ||
1282 test "$pic_object" = none && \
1283 test "$non_pic_object" = none; then
1284 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1285 exit $EXIT_FAILURE
1286 fi
1287
1288 # Extract subdirectory from the argument.
1289 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1290 if test "X$xdir" = "X$arg"; then
1291 xdir=
1292 else
1293 xdir="$xdir/"
1294 fi
1295
1296 if test "$pic_object" != none; then
1297 # Prepend the subdirectory the object is found in.
1298 pic_object="$xdir$pic_object"
1299
1300 if test "$prev" = dlfiles; then
1301 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1302 dlfiles="$dlfiles $pic_object"
1303 prev=
1304 continue
1305 else
1306 # If libtool objects are unsupported, then we need to preload.
1307 prev=dlprefiles
1308 fi
1309 fi
1310
1311 # CHECK ME: I think I busted this. -Ossama
1312 if test "$prev" = dlprefiles; then
1313 # Preload the old-style object.
1314 dlprefiles="$dlprefiles $pic_object"
1315 prev=
1316 fi
1317
1318 # A PIC object.
1319 libobjs="$libobjs $pic_object"
1320 arg="$pic_object"
1321 fi
1322
1323 # Non-PIC object.
1324 if test "$non_pic_object" != none; then
1325 # Prepend the subdirectory the object is found in.
1326 non_pic_object="$xdir$non_pic_object"
1327
1328 # A standard non-PIC object
1329 non_pic_objects="$non_pic_objects $non_pic_object"
1330 if test -z "$pic_object" || test "$pic_object" = none ; then
1331 arg="$non_pic_object"
1332 fi
1333 else
1334 # If the PIC object exists, use it instead.
1335 # $xdir was prepended to $pic_object above.
1336 non_pic_object="$pic_object"
1337 non_pic_objects="$non_pic_objects $non_pic_object"
1338 fi
1339 else
1340 # Only an error if not doing a dry-run.
1341 if test -z "$run"; then
1342 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1343 exit $EXIT_FAILURE
1344 else
1345 # Dry-run case.
1346
1347 # Extract subdirectory from the argument.
1348 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1349 if test "X$xdir" = "X$arg"; then
1350 xdir=
1351 else
1352 xdir="$xdir/"
1353 fi
1354
1355 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1356 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1357 libobjs="$libobjs $pic_object"
1358 non_pic_objects="$non_pic_objects $non_pic_object"
1359 fi
1360 fi
1361 done
1362 else
1363 $echo "$modename: link input file \`$save_arg' does not exist"
1364 exit $EXIT_FAILURE
1365 fi
1366 arg=$save_arg
1367 prev=
1368 continue
1369 ;;
1370 rpath | xrpath)
1371 # We need an absolute path.
1372 case $arg in
1373 [\\/]* | [A-Za-z]:[\\/]*) ;;
1374 *)
1375 $echo "$modename: only absolute run-paths are allowed" 1>&2
1376 exit $EXIT_FAILURE
1377 ;;
1378 esac
1379 if test "$prev" = rpath; then
1380 case "$rpath " in
1381 *" $arg "*) ;;
1382 *) rpath="$rpath $arg" ;;
1383 esac
1384 else
1385 case "$xrpath " in
1386 *" $arg "*) ;;
1387 *) xrpath="$xrpath $arg" ;;
1388 esac
1389 fi
1390 prev=
1391 continue
1392 ;;
1393 xcompiler)
1394 compiler_flags="$compiler_flags $qarg"
1395 prev=
1396 compile_command="$compile_command $qarg"
1397 finalize_command="$finalize_command $qarg"
1398 continue
1399 ;;
1400 xlinker)
1401 linker_flags="$linker_flags $qarg"
1402 compiler_flags="$compiler_flags $wl$qarg"
1403 prev=
1404 compile_command="$compile_command $wl$qarg"
1405 finalize_command="$finalize_command $wl$qarg"
1406 continue
1407 ;;
1408 xcclinker)
1409 linker_flags="$linker_flags $qarg"
1410 compiler_flags="$compiler_flags $qarg"
1411 prev=
1412 compile_command="$compile_command $qarg"
1413 finalize_command="$finalize_command $qarg"
1414 continue
1415 ;;
1416 shrext)
1417 shrext_cmds="$arg"
1418 prev=
1419 continue
1420 ;;
1421 darwin_framework|darwin_framework_skip)
1422 test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1423 compile_command="$compile_command $arg"
1424 finalize_command="$finalize_command $arg"
1425 prev=
1426 continue
1427 ;;
1428 *)
1429 eval "$prev=\"\$arg\""
1430 prev=
1431 continue
1432 ;;
1433 esac
1434 fi # test -n "$prev"
1435
1436 prevarg="$arg"
1437
1438 case $arg in
1439 -all-static)
1440 if test -n "$link_static_flag"; then
1441 compile_command="$compile_command $link_static_flag"
1442 finalize_command="$finalize_command $link_static_flag"
1443 fi
1444 continue
1445 ;;
1446
1447 -allow-undefined)
1448 # FIXME: remove this flag sometime in the future.
1449 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1450 continue
1451 ;;
1452
1453 -avoid-version)
1454 avoid_version=yes
1455 continue
1456 ;;
1457
1458 -dlopen)
1459 prev=dlfiles
1460 continue
1461 ;;
1462
1463 -dlpreopen)
1464 prev=dlprefiles
1465 continue
1466 ;;
1467
1468 -export-dynamic)
1469 export_dynamic=yes
1470 continue
1471 ;;
1472
1473 -export-symbols | -export-symbols-regex)
1474 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1475 $echo "$modename: more than one -exported-symbols argument is not allowed"
1476 exit $EXIT_FAILURE
1477 fi
1478 if test "X$arg" = "X-export-symbols"; then
1479 prev=expsyms
1480 else
1481 prev=expsyms_regex
1482 fi
1483 continue
1484 ;;
1485
1486 -framework|-arch|-isysroot)
1487 case " $CC " in
1488 *" ${arg} ${1} "* | *" ${arg} ${1} "*)
1489 prev=darwin_framework_skip ;;
1490 *) compiler_flags="$compiler_flags $arg"
1491 prev=darwin_framework ;;
1492 esac
1493 compile_command="$compile_command $arg"
1494 finalize_command="$finalize_command $arg"
1495 continue
1496 ;;
1497
1498 -inst-prefix-dir)
1499 prev=inst_prefix
1500 continue
1501 ;;
1502
1503 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1504 # so, if we see these flags be careful not to treat them like -L
1505 -L[A-Z][A-Z]*:*)
1506 case $with_gcc/$host in
1507 no/*-*-irix* | /*-*-irix*)
1508 compile_command="$compile_command $arg"
1509 finalize_command="$finalize_command $arg"
1510 ;;
1511 esac
1512 continue
1513 ;;
1514
1515 -L*)
1516 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1517 # We need an absolute path.
1518 case $dir in
1519 [\\/]* | [A-Za-z]:[\\/]*) ;;
1520 *)
1521 absdir=`cd "$dir" && pwd`
1522 if test -z "$absdir"; then
1523 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1524 absdir="$dir"
1525 notinst_path="$notinst_path $dir"
1526 fi
1527 dir="$absdir"
1528 ;;
1529 esac
1530 case "$deplibs " in
1531 *" -L$dir "*) ;;
1532 *)
1533 deplibs="$deplibs -L$dir"
1534 lib_search_path="$lib_search_path $dir"
1535 ;;
1536 esac
1537 case $host in
1538 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1539 testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1540 case :$dllsearchpath: in
1541 *":$dir:"*) ;;
1542 *) dllsearchpath="$dllsearchpath:$dir";;
1543 esac
1544 case :$dllsearchpath: in
1545 *":$testbindir:"*) ;;
1546 *) dllsearchpath="$dllsearchpath:$testbindir";;
1547 esac
1548 ;;
1549 esac
1550 continue
1551 ;;
1552
1553 -l*)
1554 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1555 case $host in
1556 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1557 # These systems don't actually have a C or math library (as such)
1558 continue
1559 ;;
1560 *-*-os2*)
1561 # These systems don't actually have a C library (as such)
1562 test "X$arg" = "X-lc" && continue
1563 ;;
1564 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1565 # Do not include libc due to us having libc/libc_r.
1566 test "X$arg" = "X-lc" && continue
1567 ;;
1568 *-*-rhapsody* | *-*-darwin1.[012])
1569 # Rhapsody C and math libraries are in the System framework
1570 deplibs="$deplibs -framework System"
1571 continue
1572 ;;
1573 *-*-sco3.2v5* | *-*-sco5v6*)
1574 # Causes problems with __ctype
1575 test "X$arg" = "X-lc" && continue
1576 ;;
1577 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1578 # Compiler inserts libc in the correct place for threads to work
1579 test "X$arg" = "X-lc" && continue
1580 ;;
1581 esac
1582 elif test "X$arg" = "X-lc_r"; then
1583 case $host in
1584 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1585 # Do not include libc_r directly, use -pthread flag.
1586 continue
1587 ;;
1588 esac
1589 fi
1590 deplibs="$deplibs $arg"
1591 continue
1592 ;;
1593
1594 # Tru64 UNIX uses -model [arg] to determine the layout of C++
1595 # classes, name mangling, and exception handling.
1596 -model)
1597 compile_command="$compile_command $arg"
1598 compiler_flags="$compiler_flags $arg"
1599 finalize_command="$finalize_command $arg"
1600 prev=xcompiler
1601 continue
1602 ;;
1603
1604 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1605 compiler_flags="$compiler_flags $arg"
1606 compile_command="$compile_command $arg"
1607 finalize_command="$finalize_command $arg"
1608 continue
1609 ;;
1610
1611 -module)
1612 module=yes
1613 continue
1614 ;;
1615
1616 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1617 # -r[0-9][0-9]* specifies the processor on the SGI compiler
1618 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1619 # +DA*, +DD* enable 64-bit mode on the HP compiler
1620 # -q* pass through compiler args for the IBM compiler
1621 # -m* pass through architecture-specific compiler args for GCC
1622 # -m*, -t[45]*, -txscale* pass through architecture-specific
1623 # compiler args for GCC
1624 # -pg pass through profiling flag for GCC
1625 # @file GCC response files
1626 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1627 -t[45]*|-txscale*|@*)
1628
1629 # Unknown arguments in both finalize_command and compile_command need
1630 # to be aesthetically quoted because they are evaled later.
1631 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1632 case $arg in
1633 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1634 arg="\"$arg\""
1635 ;;
1636 esac
1637 compile_command="$compile_command $arg"
1638 finalize_command="$finalize_command $arg"
1639 compiler_flags="$compiler_flags $arg"
1640 continue
1641 ;;
1642
1643 -shrext)
1644 prev=shrext
1645 continue
1646 ;;
1647
1648 -no-fast-install)
1649 fast_install=no
1650 continue
1651 ;;
1652
1653 -no-install)
1654 case $host in
1655 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1656 # The PATH hackery in wrapper scripts is required on Windows
1657 # in order for the loader to find any dlls it needs.
1658 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1659 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1660 fast_install=no
1661 ;;
1662 *) no_install=yes ;;
1663 esac
1664 continue
1665 ;;
1666
1667 -no-undefined)
1668 allow_undefined=no
1669 continue
1670 ;;
1671
1672 -objectlist)
1673 prev=objectlist
1674 continue
1675 ;;
1676
1677 -o) prev=output ;;
1678
1679 -precious-files-regex)
1680 prev=precious_regex
1681 continue
1682 ;;
1683
1684 -release)
1685 prev=release
1686 continue
1687 ;;
1688
1689 -rpath)
1690 prev=rpath
1691 continue
1692 ;;
1693
1694 -R)
1695 prev=xrpath
1696 continue
1697 ;;
1698
1699 -R*)
1700 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1701 # We need an absolute path.
1702 case $dir in
1703 [\\/]* | [A-Za-z]:[\\/]*) ;;
1704 *)
1705 $echo "$modename: only absolute run-paths are allowed" 1>&2
1706 exit $EXIT_FAILURE
1707 ;;
1708 esac
1709 case "$xrpath " in
1710 *" $dir "*) ;;
1711 *) xrpath="$xrpath $dir" ;;
1712 esac
1713 continue
1714 ;;
1715
1716 -static)
1717 # The effects of -static are defined in a previous loop.
1718 # We used to do the same as -all-static on platforms that
1719 # didn't have a PIC flag, but the assumption that the effects
1720 # would be equivalent was wrong. It would break on at least
1721 # Digital Unix and AIX.
1722 continue
1723 ;;
1724
1725 -thread-safe)
1726 thread_safe=yes
1727 continue
1728 ;;
1729
1730 -version-info)
1731 prev=vinfo
1732 continue
1733 ;;
1734 -version-number)
1735 prev=vinfo
1736 vinfo_number=yes
1737 continue
1738 ;;
1739
1740 -Wc,*)
1741 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1742 arg=
1743 save_ifs="$IFS"; IFS=','
1744 for flag in $args; do
1745 IFS="$save_ifs"
1746 case $flag in
1747 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1748 flag="\"$flag\""
1749 ;;
1750 esac
1751 arg="$arg $wl$flag"
1752 compiler_flags="$compiler_flags $flag"
1753 done
1754 IFS="$save_ifs"
1755 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1756 ;;
1757
1758 -Wl,*)
1759 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1760 arg=
1761 save_ifs="$IFS"; IFS=','
1762 for flag in $args; do
1763 IFS="$save_ifs"
1764 case $flag in
1765 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1766 flag="\"$flag\""
1767 ;;
1768 esac
1769 arg="$arg $wl$flag"
1770 compiler_flags="$compiler_flags $wl$flag"
1771 linker_flags="$linker_flags $flag"
1772 done
1773 IFS="$save_ifs"
1774 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1775 ;;
1776
1777 -Xcompiler)
1778 prev=xcompiler
1779 continue
1780 ;;
1781
1782 -Xlinker)
1783 prev=xlinker
1784 continue
1785 ;;
1786
1787 -XCClinker)
1788 prev=xcclinker
1789 continue
1790 ;;
1791
1792 # Some other compiler flag.
1793 -* | +*)
1794 # Unknown arguments in both finalize_command and compile_command need
1795 # to be aesthetically quoted because they are evaled later.
1796 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1797 case $arg in
1798 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1799 arg="\"$arg\""
1800 ;;
1801 esac
1802 ;;
1803
1804 *.$objext)
1805 # A standard object.
1806 objs="$objs $arg"
1807 ;;
1808
1809 *.lo)
1810 # A libtool-controlled object.
1811
1812 # Check to see that this really is a libtool object.
1813 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1814 pic_object=
1815 non_pic_object=
1816
1817 # Read the .lo file
1818 # If there is no directory component, then add one.
1819 case $arg in
1820 */* | *\\*) . $arg ;;
1821 *) . ./$arg ;;
1822 esac
1823
1824 if test -z "$pic_object" || \
1825 test -z "$non_pic_object" ||
1826 test "$pic_object" = none && \
1827 test "$non_pic_object" = none; then
1828 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1829 exit $EXIT_FAILURE
1830 fi
1831
1832 # Extract subdirectory from the argument.
1833 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1834 if test "X$xdir" = "X$arg"; then
1835 xdir=
1836 else
1837 xdir="$xdir/"
1838 fi
1839
1840 if test "$pic_object" != none; then
1841 # Prepend the subdirectory the object is found in.
1842 pic_object="$xdir$pic_object"
1843
1844 if test "$prev" = dlfiles; then
1845 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1846 dlfiles="$dlfiles $pic_object"
1847 prev=
1848 continue
1849 else
1850 # If libtool objects are unsupported, then we need to preload.
1851 prev=dlprefiles
1852 fi
1853 fi
1854
1855 # CHECK ME: I think I busted this. -Ossama
1856 if test "$prev" = dlprefiles; then
1857 # Preload the old-style object.
1858 dlprefiles="$dlprefiles $pic_object"
1859 prev=
1860 fi
1861
1862 # A PIC object.
1863 libobjs="$libobjs $pic_object"
1864 arg="$pic_object"
1865 fi
1866
1867 # Non-PIC object.
1868 if test "$non_pic_object" != none; then
1869 # Prepend the subdirectory the object is found in.
1870 non_pic_object="$xdir$non_pic_object"
1871
1872 # A standard non-PIC object
1873 non_pic_objects="$non_pic_objects $non_pic_object"
1874 if test -z "$pic_object" || test "$pic_object" = none ; then
1875 arg="$non_pic_object"
1876 fi
1877 else
1878 # If the PIC object exists, use it instead.
1879 # $xdir was prepended to $pic_object above.
1880 non_pic_object="$pic_object"
1881 non_pic_objects="$non_pic_objects $non_pic_object"
1882 fi
1883 else
1884 # Only an error if not doing a dry-run.
1885 if test -z "$run"; then
1886 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1887 exit $EXIT_FAILURE
1888 else
1889 # Dry-run case.
1890
1891 # Extract subdirectory from the argument.
1892 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1893 if test "X$xdir" = "X$arg"; then
1894 xdir=
1895 else
1896 xdir="$xdir/"
1897 fi
1898
1899 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1900 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1901 libobjs="$libobjs $pic_object"
1902 non_pic_objects="$non_pic_objects $non_pic_object"
1903 fi
1904 fi
1905 ;;
1906
1907 *.$libext)
1908 # An archive.
1909 deplibs="$deplibs $arg"
1910 old_deplibs="$old_deplibs $arg"
1911 continue
1912 ;;
1913
1914 *.la)
1915 # A libtool-controlled library.
1916
1917 if test "$prev" = dlfiles; then
1918 # This library was specified with -dlopen.
1919 dlfiles="$dlfiles $arg"
1920 prev=
1921 elif test "$prev" = dlprefiles; then
1922 # The library was specified with -dlpreopen.
1923 dlprefiles="$dlprefiles $arg"
1924 prev=
1925 else
1926 deplibs="$deplibs $arg"
1927 fi
1928 continue
1929 ;;
1930
1931 # Some other compiler argument.
1932 *)
1933 # Unknown arguments in both finalize_command and compile_command need
1934 # to be aesthetically quoted because they are evaled later.
1935 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1936 case $arg in
1937 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1938 arg="\"$arg\""
1939 ;;
1940 esac
1941 ;;
1942 esac # arg
1943
1944 # Now actually substitute the argument into the commands.
1945 if test -n "$arg"; then
1946 compile_command="$compile_command $arg"
1947 finalize_command="$finalize_command $arg"
1948 fi
1949 done # argument parsing loop
1950
1951 if test -n "$prev"; then
1952 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1953 $echo "$help" 1>&2
1954 exit $EXIT_FAILURE
1955 fi
1956
1957 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1958 eval arg=\"$export_dynamic_flag_spec\"
1959 compile_command="$compile_command $arg"
1960 finalize_command="$finalize_command $arg"
1961 fi
1962
1963 oldlibs=
1964 # calculate the name of the file, without its directory
1965 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1966 libobjs_save="$libobjs"
1967
1968 if test -n "$shlibpath_var"; then
1969 # get the directories listed in $shlibpath_var
1970 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1971 else
1972 shlib_search_path=
1973 fi
1974 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1975 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1976
1977 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1978 if test "X$output_objdir" = "X$output"; then
1979 output_objdir="$objdir"
1980 else
1981 output_objdir="$output_objdir/$objdir"
1982 fi
1983 # Create the object directory.
1984 if test ! -d "$output_objdir"; then
1985 $show "$mkdir $output_objdir"
1986 $run $mkdir $output_objdir
1987 exit_status=$?
1988 if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1989 exit $exit_status
1990 fi
1991 fi
1992
1993 # Determine the type of output
1994 case $output in
1995 "")
1996 $echo "$modename: you must specify an output file" 1>&2
1997 $echo "$help" 1>&2
1998 exit $EXIT_FAILURE
1999 ;;
2000 *.$libext) linkmode=oldlib ;;
2001 *.lo | *.$objext) linkmode=obj ;;
2002 *.la) linkmode=lib ;;
2003 *) linkmode=prog ;; # Anything else should be a program.
2004 esac
2005
2006 case $host in
2007 *cygwin* | *mingw* | *pw32*)
2008 # don't eliminate duplications in $postdeps and $predeps
2009 duplicate_compiler_generated_deps=yes
2010 ;;
2011 *)
2012 duplicate_compiler_generated_deps=$duplicate_deps
2013 ;;
2014 esac
2015 specialdeplibs=
2016
2017 libs=
2018 # Find all interdependent deplibs by searching for libraries
2019 # that are linked more than once (e.g. -la -lb -la)
2020 for deplib in $deplibs; do
2021 if test "X$duplicate_deps" = "Xyes" ; then
2022 case "$libs " in
2023 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2024 esac
2025 fi
2026 libs="$libs $deplib"
2027 done
2028
2029 if test "$linkmode" = lib; then
2030 libs="$predeps $libs $compiler_lib_search_path $postdeps"
2031
2032 # Compute libraries that are listed more than once in $predeps
2033 # $postdeps and mark them as special (i.e., whose duplicates are
2034 # not to be eliminated).
2035 pre_post_deps=
2036 if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2037 for pre_post_dep in $predeps $postdeps; do
2038 case "$pre_post_deps " in
2039 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2040 esac
2041 pre_post_deps="$pre_post_deps $pre_post_dep"
2042 done
2043 fi
2044 pre_post_deps=
2045 fi
2046
2047 deplibs=
2048 newdependency_libs=
2049 newlib_search_path=
2050 need_relink=no # whether we're linking any uninstalled libtool libraries
2051 notinst_deplibs= # not-installed libtool libraries
2052 case $linkmode in
2053 lib)
2054 passes="conv link"
2055 for file in $dlfiles $dlprefiles; do
2056 case $file in
2057 *.la) ;;
2058 *)
2059 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2060 exit $EXIT_FAILURE
2061 ;;
2062 esac
2063 done
2064 ;;
2065 prog)
2066 compile_deplibs=
2067 finalize_deplibs=
2068 alldeplibs=no
2069 newdlfiles=
2070 newdlprefiles=
2071 passes="conv scan dlopen dlpreopen link"
2072 ;;
2073 *) passes="conv"
2074 ;;
2075 esac
2076 for pass in $passes; do
2077 if test "$linkmode,$pass" = "lib,link" ||
2078 test "$linkmode,$pass" = "prog,scan"; then
2079 libs="$deplibs"
2080 deplibs=
2081 fi
2082 if test "$linkmode" = prog; then
2083 case $pass in
2084 dlopen) libs="$dlfiles" ;;
2085 dlpreopen) libs="$dlprefiles" ;;
2086 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
2087 esac
2088 fi
2089 if test "$pass" = dlopen; then
2090 # Collect dlpreopened libraries
2091 save_deplibs="$deplibs"
2092 deplibs=
2093 fi
2094 for deplib in $libs; do
2095 lib=
2096 found=no
2097 case $deplib in
2098 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2099 if test "$linkmode,$pass" = "prog,link"; then
2100 compile_deplibs="$deplib $compile_deplibs"
2101 finalize_deplibs="$deplib $finalize_deplibs"
2102 else
2103 compiler_flags="$compiler_flags $deplib"
2104 fi
2105 continue
2106 ;;
2107 -l*)
2108 if test "$linkmode" != lib && test "$linkmode" != prog; then
2109 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2110 continue
2111 fi
2112 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2113 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2114 for search_ext in .la $std_shrext .so .a; do
2115 # Search the libtool library
2116 lib="$searchdir/lib${name}${search_ext}"
2117 if test -f "$lib"; then
2118 if test "$search_ext" = ".la"; then
2119 found=yes
2120 else
2121 found=no
2122 fi
2123 break 2
2124 fi
2125 done
2126 done
2127 if test "$found" != yes; then
2128 # deplib doesn't seem to be a libtool library
2129 if test "$linkmode,$pass" = "prog,link"; then
2130 compile_deplibs="$deplib $compile_deplibs"
2131 finalize_deplibs="$deplib $finalize_deplibs"
2132 else
2133 deplibs="$deplib $deplibs"
2134 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2135 fi
2136 continue
2137 else # deplib is a libtool library
2138 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2139 # We need to do some special things here, and not later.
2140 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2141 case " $predeps $postdeps " in
2142 *" $deplib "*)
2143 if (${SED} -e '2q' $lib |
2144 grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2145 library_names=
2146 old_library=
2147 case $lib in
2148 */* | *\\*) . $lib ;;
2149 *) . ./$lib ;;
2150 esac
2151 for l in $old_library $library_names; do
2152 ll="$l"
2153 done
2154 if test "X$ll" = "X$old_library" ; then # only static version available
2155 found=no
2156 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2157 test "X$ladir" = "X$lib" && ladir="."
2158 lib=$ladir/$old_library
2159 if test "$linkmode,$pass" = "prog,link"; then
2160 compile_deplibs="$deplib $compile_deplibs"
2161 finalize_deplibs="$deplib $finalize_deplibs"
2162 else
2163 deplibs="$deplib $deplibs"
2164 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2165 fi
2166 continue
2167 fi
2168 fi
2169 ;;
2170 *) ;;
2171 esac
2172 fi
2173 fi
2174 ;; # -l
2175 -L*)
2176 case $linkmode in
2177 lib)
2178 deplibs="$deplib $deplibs"
2179 test "$pass" = conv && continue
2180 newdependency_libs="$deplib $newdependency_libs"
2181 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2182 ;;
2183 prog)
2184 if test "$pass" = conv; then
2185 deplibs="$deplib $deplibs"
2186 continue
2187 fi
2188 if test "$pass" = scan; then
2189 deplibs="$deplib $deplibs"
2190 else
2191 compile_deplibs="$deplib $compile_deplibs"
2192 finalize_deplibs="$deplib $finalize_deplibs"
2193 fi
2194 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2195 ;;
2196 *)
2197 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2198 ;;
2199 esac # linkmode
2200 continue
2201 ;; # -L
2202 -R*)
2203 if test "$pass" = link; then
2204 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2205 # Make sure the xrpath contains only unique directories.
2206 case "$xrpath " in
2207 *" $dir "*) ;;
2208 *) xrpath="$xrpath $dir" ;;
2209 esac
2210 fi
2211 deplibs="$deplib $deplibs"
2212 continue
2213 ;;
2214 *.la) lib="$deplib" ;;
2215 *.$libext)
2216 if test "$pass" = conv; then
2217 deplibs="$deplib $deplibs"
2218 continue
2219 fi
2220 case $linkmode in
2221 lib)
2222 valid_a_lib=no
2223 case $deplibs_check_method in
2224 match_pattern*)
2225 set dummy $deplibs_check_method
2226 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2227 if eval $echo \"$deplib\" 2>/dev/null \
2228 | $SED 10q \
2229 | $EGREP "$match_pattern_regex" > /dev/null; then
2230 valid_a_lib=yes
2231 fi
2232 ;;
2233 pass_all)
2234 valid_a_lib=yes
2235 ;;
2236 esac
2237 if test "$valid_a_lib" != yes; then
2238 $echo
2239 $echo "*** Warning: Trying to link with static lib archive $deplib."
2240 $echo "*** I have the capability to make that library automatically link in when"
2241 $echo "*** you link to this library. But I can only do this if you have a"
2242 $echo "*** shared version of the library, which you do not appear to have"
2243 $echo "*** because the file extensions .$libext of this argument makes me believe"
2244 $echo "*** that it is just a static archive that I should not used here."
2245 else
2246 $echo
2247 $echo "*** Warning: Linking the shared library $output against the"
2248 $echo "*** static library $deplib is not portable!"
2249 deplibs="$deplib $deplibs"
2250 fi
2251 continue
2252 ;;
2253 prog)
2254 if test "$pass" != link; then
2255 deplibs="$deplib $deplibs"
2256 else
2257 compile_deplibs="$deplib $compile_deplibs"
2258 finalize_deplibs="$deplib $finalize_deplibs"
2259 fi
2260 continue
2261 ;;
2262 esac # linkmode
2263 ;; # *.$libext
2264 *.lo | *.$objext)
2265 if test "$pass" = conv; then
2266 deplibs="$deplib $deplibs"
2267 elif test "$linkmode" = prog; then
2268 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2269 # If there is no dlopen support or we're linking statically,
2270 # we need to preload.
2271 newdlprefiles="$newdlprefiles $deplib"
2272 compile_deplibs="$deplib $compile_deplibs"
2273 finalize_deplibs="$deplib $finalize_deplibs"
2274 else
2275 newdlfiles="$newdlfiles $deplib"
2276 fi
2277 fi
2278 continue
2279 ;;
2280 %DEPLIBS%)
2281 alldeplibs=yes
2282 continue
2283 ;;
2284 esac # case $deplib
2285 if test "$found" = yes || test -f "$lib"; then :
2286 else
2287 $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2288 exit $EXIT_FAILURE
2289 fi
2290
2291 # Check to see that this really is a libtool archive.
2292 if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2293 else
2294 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2295 exit $EXIT_FAILURE
2296 fi
2297
2298 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2299 test "X$ladir" = "X$lib" && ladir="."
2300
2301 dlname=
2302 dlopen=
2303 dlpreopen=
2304 libdir=
2305 library_names=
2306 old_library=
2307 # If the library was installed with an old release of libtool,
2308 # it will not redefine variables installed, or shouldnotlink
2309 installed=yes
2310 shouldnotlink=no
2311 avoidtemprpath=
2312
2313
2314 # Read the .la file
2315 case $lib in
2316 */* | *\\*) . $lib ;;
2317 *) . ./$lib ;;
2318 esac
2319
2320 if test "$linkmode,$pass" = "lib,link" ||
2321 test "$linkmode,$pass" = "prog,scan" ||
2322 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2323 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2324 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2325 fi
2326
2327 if test "$pass" = conv; then
2328 # Only check for convenience libraries
2329 deplibs="$lib $deplibs"
2330 if test -z "$libdir"; then
2331 if test -z "$old_library"; then
2332 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2333 exit $EXIT_FAILURE
2334 fi
2335 # It is a libtool convenience library, so add in its objects.
2336 convenience="$convenience $ladir/$objdir/$old_library"
2337 old_convenience="$old_convenience $ladir/$objdir/$old_library"
2338 tmp_libs=
2339 for deplib in $dependency_libs; do
2340 deplibs="$deplib $deplibs"
2341 if test "X$duplicate_deps" = "Xyes" ; then
2342 case "$tmp_libs " in
2343 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2344 esac
2345 fi
2346 tmp_libs="$tmp_libs $deplib"
2347 done
2348 elif test "$linkmode" != prog && test "$linkmode" != lib; then
2349 $echo "$modename: \`$lib' is not a convenience library" 1>&2
2350 exit $EXIT_FAILURE
2351 fi
2352 continue
2353 fi # $pass = conv
2354
2355
2356 # Get the name of the library we link against.
2357 linklib=
2358 for l in $old_library $library_names; do
2359 linklib="$l"
2360 done
2361 if test -z "$linklib"; then
2362 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2363 exit $EXIT_FAILURE
2364 fi
2365
2366 # This library was specified with -dlopen.
2367 if test "$pass" = dlopen; then
2368 if test -z "$libdir"; then
2369 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2370 exit $EXIT_FAILURE
2371 fi
2372 if test -z "$dlname" ||
2373 test "$dlopen_support" != yes ||
2374 test "$build_libtool_libs" = no; then
2375 # If there is no dlname, no dlopen support or we're linking
2376 # statically, we need to preload. We also need to preload any
2377 # dependent libraries so libltdl's deplib preloader doesn't
2378 # bomb out in the load deplibs phase.
2379 dlprefiles="$dlprefiles $lib $dependency_libs"
2380 else
2381 newdlfiles="$newdlfiles $lib"
2382 fi
2383 continue
2384 fi # $pass = dlopen
2385
2386 # We need an absolute path.
2387 case $ladir in
2388 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2389 *)
2390 abs_ladir=`cd "$ladir" && pwd`
2391 if test -z "$abs_ladir"; then
2392 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2393 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2394 abs_ladir="$ladir"
2395 fi
2396 ;;
2397 esac
2398 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2399
2400 # Find the relevant object directory and library name.
2401 if test "X$installed" = Xyes; then
2402 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2403 $echo "$modename: warning: library \`$lib' was moved." 1>&2
2404 dir="$ladir"
2405 absdir="$abs_ladir"
2406 libdir="$abs_ladir"
2407 else
2408 dir="$libdir"
2409 absdir="$libdir"
2410 fi
2411 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2412 else
2413 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2414 dir="$ladir"
2415 absdir="$abs_ladir"
2416 # Remove this search path later
2417 notinst_path="$notinst_path $abs_ladir"
2418 else
2419 dir="$ladir/$objdir"
2420 absdir="$abs_ladir/$objdir"
2421 # Remove this search path later
2422 notinst_path="$notinst_path $abs_ladir"
2423 fi
2424 fi # $installed = yes
2425 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2426
2427 # This library was specified with -dlpreopen.
2428 if test "$pass" = dlpreopen; then
2429 if test -z "$libdir"; then
2430 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2431 exit $EXIT_FAILURE
2432 fi
2433 # Prefer using a static library (so that no silly _DYNAMIC symbols
2434 # are required to link).
2435 if test -n "$old_library"; then
2436 newdlprefiles="$newdlprefiles $dir/$old_library"
2437 # Otherwise, use the dlname, so that lt_dlopen finds it.
2438 elif test -n "$dlname"; then
2439 newdlprefiles="$newdlprefiles $dir/$dlname"
2440 else
2441 newdlprefiles="$newdlprefiles $dir/$linklib"
2442 fi
2443 fi # $pass = dlpreopen
2444
2445 if test -z "$libdir"; then
2446 # Link the convenience library
2447 if test "$linkmode" = lib; then
2448 deplibs="$dir/$old_library $deplibs"
2449 elif test "$linkmode,$pass" = "prog,link"; then
2450 compile_deplibs="$dir/$old_library $compile_deplibs"
2451 finalize_deplibs="$dir/$old_library $finalize_deplibs"
2452 else
2453 deplibs="$lib $deplibs" # used for prog,scan pass
2454 fi
2455 continue
2456 fi
2457
2458
2459 if test "$linkmode" = prog && test "$pass" != link; then
2460 newlib_search_path="$newlib_search_path $ladir"
2461 deplibs="$lib $deplibs"
2462
2463 linkalldeplibs=no
2464 if test "$link_all_deplibs" != no || test -z "$library_names" ||
2465 test "$build_libtool_libs" = no; then
2466 linkalldeplibs=yes
2467 fi
2468
2469 tmp_libs=
2470 for deplib in $dependency_libs; do
2471 case $deplib in
2472 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2473 esac
2474 # Need to link against all dependency_libs?
2475 if test "$linkalldeplibs" = yes; then
2476 deplibs="$deplib $deplibs"
2477 else
2478 # Need to hardcode shared library paths
2479 # or/and link against static libraries
2480 newdependency_libs="$deplib $newdependency_libs"
2481 fi
2482 if test "X$duplicate_deps" = "Xyes" ; then
2483 case "$tmp_libs " in
2484 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2485 esac
2486 fi
2487 tmp_libs="$tmp_libs $deplib"
2488 done # for deplib
2489 continue
2490 fi # $linkmode = prog...
2491
2492 if test "$linkmode,$pass" = "prog,link"; then
2493 if test -n "$library_names" &&
2494 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2495 # We need to hardcode the library path
2496 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2497 # Make sure the rpath contains only unique directories.
2498 case "$temp_rpath " in
2499 *" $dir "*) ;;
2500 *" $absdir "*) ;;
2501 *) temp_rpath="$temp_rpath $absdir" ;;
2502 esac
2503 fi
2504
2505 # Hardcode the library path.
2506 # Skip directories that are in the system default run-time
2507 # search path.
2508 case " $sys_lib_dlsearch_path " in
2509 *" $absdir "*) ;;
2510 *)
2511 case "$compile_rpath " in
2512 *" $absdir "*) ;;
2513 *) compile_rpath="$compile_rpath $absdir"
2514 esac
2515 ;;
2516 esac
2517 case " $sys_lib_dlsearch_path " in
2518 *" $libdir "*) ;;
2519 *)
2520 case "$finalize_rpath " in
2521 *" $libdir "*) ;;
2522 *) finalize_rpath="$finalize_rpath $libdir"
2523 esac
2524 ;;
2525 esac
2526 fi # $linkmode,$pass = prog,link...
2527
2528 if test "$alldeplibs" = yes &&
2529 { test "$deplibs_check_method" = pass_all ||
2530 { test "$build_libtool_libs" = yes &&
2531 test -n "$library_names"; }; }; then
2532 # We only need to search for static libraries
2533 continue
2534 fi
2535 fi
2536
2537 link_static=no # Whether the deplib will be linked statically
2538 use_static_libs=$prefer_static_libs
2539 if test "$use_static_libs" = built && test "$installed" = yes ; then
2540 use_static_libs=no
2541 fi
2542 if test -n "$library_names" &&
2543 { test "$use_static_libs" = no || test -z "$old_library"; }; then
2544 if test "$installed" = no; then
2545 notinst_deplibs="$notinst_deplibs $lib"
2546 need_relink=yes
2547 fi
2548 # This is a shared library
2549
2550 # Warn about portability, can't link against -module's on
2551 # some systems (darwin)
2552 if test "$shouldnotlink" = yes && test "$pass" = link ; then
2553 $echo
2554 if test "$linkmode" = prog; then
2555 $echo "*** Warning: Linking the executable $output against the loadable module"
2556 else
2557 $echo "*** Warning: Linking the shared library $output against the loadable module"
2558 fi
2559 $echo "*** $linklib is not portable!"
2560 fi
2561 if test "$linkmode" = lib &&
2562 test "$hardcode_into_libs" = yes; then
2563 # Hardcode the library path.
2564 # Skip directories that are in the system default run-time
2565 # search path.
2566 case " $sys_lib_dlsearch_path " in
2567 *" $absdir "*) ;;
2568 *)
2569 case "$compile_rpath " in
2570 *" $absdir "*) ;;
2571 *) compile_rpath="$compile_rpath $absdir"
2572 esac
2573 ;;
2574 esac
2575 case " $sys_lib_dlsearch_path " in
2576 *" $libdir "*) ;;
2577 *)
2578 case "$finalize_rpath " in
2579 *" $libdir "*) ;;
2580 *) finalize_rpath="$finalize_rpath $libdir"
2581 esac
2582 ;;
2583 esac
2584 fi
2585
2586 if test -n "$old_archive_from_expsyms_cmds"; then
2587 # figure out the soname
2588 set dummy $library_names
2589 realname="$2"
2590 shift; shift
2591 libname=`eval \\$echo \"$libname_spec\"`
2592 # use dlname if we got it. it's perfectly good, no?
2593 if test -n "$dlname"; then
2594 soname="$dlname"
2595 elif test -n "$soname_spec"; then
2596 # bleh windows
2597 case $host in
2598 *cygwin* | mingw*)
2599 major=`expr $current - $age`
2600 versuffix="-$major"
2601 ;;
2602 esac
2603 eval soname=\"$soname_spec\"
2604 else
2605 soname="$realname"
2606 fi
2607
2608 # Make a new name for the extract_expsyms_cmds to use
2609 soroot="$soname"
2610 soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2611 newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2612
2613 # If the library has no export list, then create one now
2614 if test -f "$output_objdir/$soname-def"; then :
2615 else
2616 $show "extracting exported symbol list from \`$soname'"
2617 save_ifs="$IFS"; IFS='~'
2618 cmds=$extract_expsyms_cmds
2619 for cmd in $cmds; do
2620 IFS="$save_ifs"
2621 eval cmd=\"$cmd\"
2622 $show "$cmd"
2623 $run eval "$cmd" || exit $?
2624 done
2625 IFS="$save_ifs"
2626 fi
2627
2628 # Create $newlib
2629 if test -f "$output_objdir/$newlib"; then :; else
2630 $show "generating import library for \`$soname'"
2631 save_ifs="$IFS"; IFS='~'
2632 cmds=$old_archive_from_expsyms_cmds
2633 for cmd in $cmds; do
2634 IFS="$save_ifs"
2635 eval cmd=\"$cmd\"
2636 $show "$cmd"
2637 $run eval "$cmd" || exit $?
2638 done
2639 IFS="$save_ifs"
2640 fi
2641 # make sure the library variables are pointing to the new library
2642 dir=$output_objdir
2643 linklib=$newlib
2644 fi # test -n "$old_archive_from_expsyms_cmds"
2645
2646 if test "$linkmode" = prog || test "$mode" != relink; then
2647 add_shlibpath=
2648 add_dir=
2649 add=
2650 lib_linked=yes
2651 case $hardcode_action in
2652 immediate | unsupported)
2653 if test "$hardcode_direct" = no; then
2654 add="$dir/$linklib"
2655 case $host in
2656 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2657 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2658 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2659 *-*-unixware7*) add_dir="-L$dir" ;;
2660 *-*-darwin* )
2661 # if the lib is a module then we can not link against
2662 # it, someone is ignoring the new warnings I added
2663 if /usr/bin/file -L $add 2> /dev/null |
2664 $EGREP ": [^:]* bundle" >/dev/null ; then
2665 $echo "** Warning, lib $linklib is a module, not a shared library"
2666 if test -z "$old_library" ; then
2667 $echo
2668 $echo "** And there doesn't seem to be a static archive available"
2669 $echo "** The link will probably fail, sorry"
2670 else
2671 add="$dir/$old_library"
2672 fi
2673 fi
2674 esac
2675 elif test "$hardcode_minus_L" = no; then
2676 case $host in
2677 *-*-sunos*) add_shlibpath="$dir" ;;
2678 esac
2679 add_dir="-L$dir"
2680 add="-l$name"
2681 elif test "$hardcode_shlibpath_var" = no; then
2682 add_shlibpath="$dir"
2683 add="-l$name"
2684 else
2685 lib_linked=no
2686 fi
2687 ;;
2688 relink)
2689 if test "$hardcode_direct" = yes; then
2690 add="$dir/$linklib"
2691 elif test "$hardcode_minus_L" = yes; then
2692 add_dir="-L$dir"
2693 # Try looking first in the location we're being installed to.
2694 if test -n "$inst_prefix_dir"; then
2695 case $libdir in
2696 [\\/]*)
2697 add_dir="$add_dir -L$inst_prefix_dir$libdir"
2698 ;;
2699 esac
2700 fi
2701 add="-l$name"
2702 elif test "$hardcode_shlibpath_var" = yes; then
2703 add_shlibpath="$dir"
2704 add="-l$name"
2705 else
2706 lib_linked=no
2707 fi
2708 ;;
2709 *) lib_linked=no ;;
2710 esac
2711
2712 if test "$lib_linked" != yes; then
2713 $echo "$modename: configuration error: unsupported hardcode properties"
2714 exit $EXIT_FAILURE
2715 fi
2716
2717 if test -n "$add_shlibpath"; then
2718 case :$compile_shlibpath: in
2719 *":$add_shlibpath:"*) ;;
2720 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2721 esac
2722 fi
2723 if test "$linkmode" = prog; then
2724 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2725 test -n "$add" && compile_deplibs="$add $compile_deplibs"
2726 else
2727 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2728 test -n "$add" && deplibs="$add $deplibs"
2729 if test "$hardcode_direct" != yes && \
2730 test "$hardcode_minus_L" != yes && \
2731 test "$hardcode_shlibpath_var" = yes; then
2732 case :$finalize_shlibpath: in
2733 *":$libdir:"*) ;;
2734 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2735 esac
2736 fi
2737 fi
2738 fi
2739
2740 if test "$linkmode" = prog || test "$mode" = relink; then
2741 add_shlibpath=
2742 add_dir=
2743 add=
2744 # Finalize command for both is simple: just hardcode it.
2745 if test "$hardcode_direct" = yes; then
2746 add="$libdir/$linklib"
2747 elif test "$hardcode_minus_L" = yes; then
2748 add_dir="-L$libdir"
2749 add="-l$name"
2750 elif test "$hardcode_shlibpath_var" = yes; then
2751 case :$finalize_shlibpath: in
2752 *":$libdir:"*) ;;
2753 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2754 esac
2755 add="-l$name"
2756 elif test "$hardcode_automatic" = yes; then
2757 if test -n "$inst_prefix_dir" &&
2758 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2759 add="$inst_prefix_dir$libdir/$linklib"
2760 else
2761 add="$libdir/$linklib"
2762 fi
2763 else
2764 # We cannot seem to hardcode it, guess we'll fake it.
2765 add_dir="-L$libdir"
2766 # Try looking first in the location we're being installed to.
2767 if test -n "$inst_prefix_dir"; then
2768 case $libdir in
2769 [\\/]*)
2770 add_dir="$add_dir -L$inst_prefix_dir$libdir"
2771 ;;
2772 esac
2773 fi
2774 add="-l$name"
2775 fi
2776
2777 if test "$linkmode" = prog; then
2778 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2779 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2780 else
2781 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2782 test -n "$add" && deplibs="$add $deplibs"
2783 fi
2784 fi
2785 elif test "$linkmode" = prog; then
2786 # Here we assume that one of hardcode_direct or hardcode_minus_L
2787 # is not unsupported. This is valid on all known static and
2788 # shared platforms.
2789 if test "$hardcode_direct" != unsupported; then
2790 test -n "$old_library" && linklib="$old_library"
2791 compile_deplibs="$dir/$linklib $compile_deplibs"
2792 finalize_deplibs="$dir/$linklib $finalize_deplibs"
2793 else
2794 compile_deplibs="-l$name -L$dir $compile_deplibs"
2795 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2796 fi
2797 elif test "$build_libtool_libs" = yes; then
2798 # Not a shared library
2799 if test "$deplibs_check_method" != pass_all; then
2800 # We're trying link a shared library against a static one
2801 # but the system doesn't support it.
2802
2803 # Just print a warning and add the library to dependency_libs so
2804 # that the program can be linked against the static library.
2805 $echo
2806 $echo "*** Warning: This system can not link to static lib archive $lib."
2807 $echo "*** I have the capability to make that library automatically link in when"
2808 $echo "*** you link to this library. But I can only do this if you have a"
2809 $echo "*** shared version of the library, which you do not appear to have."
2810 if test "$module" = yes; then
2811 $echo "*** But as you try to build a module library, libtool will still create "
2812 $echo "*** a static module, that should work as long as the dlopening application"
2813 $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2814 if test -z "$global_symbol_pipe"; then
2815 $echo
2816 $echo "*** However, this would only work if libtool was able to extract symbol"
2817 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2818 $echo "*** not find such a program. So, this module is probably useless."
2819 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
2820 fi
2821 if test "$build_old_libs" = no; then
2822 build_libtool_libs=module
2823 build_old_libs=yes
2824 else
2825 build_libtool_libs=no
2826 fi
2827 fi
2828 else
2829 deplibs="$dir/$old_library $deplibs"
2830 link_static=yes
2831 fi
2832 fi # link shared/static library?
2833
2834 if test "$linkmode" = lib; then
2835 if test -n "$dependency_libs" &&
2836 { test "$hardcode_into_libs" != yes ||
2837 test "$build_old_libs" = yes ||
2838 test "$link_static" = yes; }; then
2839 # Extract -R from dependency_libs
2840 temp_deplibs=
2841 for libdir in $dependency_libs; do
2842 case $libdir in
2843 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2844 case " $xrpath " in
2845 *" $temp_xrpath "*) ;;
2846 *) xrpath="$xrpath $temp_xrpath";;
2847 esac;;
2848 *) temp_deplibs="$temp_deplibs $libdir";;
2849 esac
2850 done
2851 dependency_libs="$temp_deplibs"
2852 fi
2853
2854 newlib_search_path="$newlib_search_path $absdir"
2855 # Link against this library
2856 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2857 # ... and its dependency_libs
2858 tmp_libs=
2859 for deplib in $dependency_libs; do
2860 newdependency_libs="$deplib $newdependency_libs"
2861 if test "X$duplicate_deps" = "Xyes" ; then
2862 case "$tmp_libs " in
2863 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2864 esac
2865 fi
2866 tmp_libs="$tmp_libs $deplib"
2867 done
2868
2869 if test "$link_all_deplibs" != no; then
2870 # Add the search paths of all dependency libraries
2871 for deplib in $dependency_libs; do
2872 case $deplib in
2873 -L*) path="$deplib" ;;
2874 *.la)
2875 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2876 test "X$dir" = "X$deplib" && dir="."
2877 # We need an absolute path.
2878 case $dir in
2879 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2880 *)
2881 absdir=`cd "$dir" && pwd`
2882 if test -z "$absdir"; then
2883 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2884 absdir="$dir"
2885 fi
2886 ;;
2887 esac
2888 if grep "^installed=no" $deplib > /dev/null; then
2889 path="$absdir/$objdir"
2890 else
2891 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2892 if test -z "$libdir"; then
2893 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2894 exit $EXIT_FAILURE
2895 fi
2896 if test "$absdir" != "$libdir"; then
2897 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2898 fi
2899 path="$absdir"
2900 fi
2901 depdepl=
2902 case $host in
2903 *-*-darwin*)
2904 # we do not want to link against static libs,
2905 # but need to link against shared
2906 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2907 if test -n "$deplibrary_names" ; then
2908 for tmp in $deplibrary_names ; do
2909 depdepl=$tmp
2910 done
2911 if test -f "$path/$depdepl" ; then
2912 depdepl="$path/$depdepl"
2913 fi
2914 # do not add paths which are already there
2915 case " $newlib_search_path " in
2916 *" $path "*) ;;
2917 *) newlib_search_path="$newlib_search_path $path";;
2918 esac
2919 fi
2920 path=""
2921 ;;
2922 *)
2923 path="-L$path"
2924 ;;
2925 esac
2926 ;;
2927 -l*)
2928 case $host in
2929 *-*-darwin*)
2930 # Again, we only want to link against shared libraries
2931 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2932 for tmp in $newlib_search_path ; do
2933 if test -f "$tmp/lib$tmp_libs.dylib" ; then
2934 eval depdepl="$tmp/lib$tmp_libs.dylib"
2935 break
2936 fi
2937 done
2938 path=""
2939 ;;
2940 *) continue ;;
2941 esac
2942 ;;
2943 *) continue ;;
2944 esac
2945 case " $deplibs " in
2946 *" $path "*) ;;
2947 *) deplibs="$path $deplibs" ;;
2948 esac
2949 case " $deplibs " in
2950 *" $depdepl "*) ;;
2951 *) deplibs="$depdepl $deplibs" ;;
2952 esac
2953 done
2954 fi # link_all_deplibs != no
2955 fi # linkmode = lib
2956 done # for deplib in $libs
2957 dependency_libs="$newdependency_libs"
2958 if test "$pass" = dlpreopen; then
2959 # Link the dlpreopened libraries before other libraries
2960 for deplib in $save_deplibs; do
2961 deplibs="$deplib $deplibs"
2962 done
2963 fi
2964 if test "$pass" != dlopen; then
2965 if test "$pass" != conv; then
2966 # Make sure lib_search_path contains only unique directories.
2967 lib_search_path=
2968 for dir in $newlib_search_path; do
2969 case "$lib_search_path " in
2970 *" $dir "*) ;;
2971 *) lib_search_path="$lib_search_path $dir" ;;
2972 esac
2973 done
2974 newlib_search_path=
2975 fi
2976
2977 if test "$linkmode,$pass" != "prog,link"; then
2978 vars="deplibs"
2979 else
2980 vars="compile_deplibs finalize_deplibs"
2981 fi
2982 for var in $vars dependency_libs; do
2983 # Add libraries to $var in reverse order
2984 eval tmp_libs=\"\$$var\"
2985 new_libs=
2986 for deplib in $tmp_libs; do
2987 # FIXME: Pedantically, this is the right thing to do, so
2988 # that some nasty dependency loop isn't accidentally
2989 # broken:
2990 #new_libs="$deplib $new_libs"
2991 # Pragmatically, this seems to cause very few problems in
2992 # practice:
2993 case $deplib in
2994 -L*) new_libs="$deplib $new_libs" ;;
2995 -R*) ;;
2996 *)
2997 # And here is the reason: when a library appears more
2998 # than once as an explicit dependence of a library, or
2999 # is implicitly linked in more than once by the
3000 # compiler, it is considered special, and multiple
3001 # occurrences thereof are not removed. Compare this
3002 # with having the same library being listed as a
3003 # dependency of multiple other libraries: in this case,
3004 # we know (pedantically, we assume) the library does not
3005 # need to be listed more than once, so we keep only the
3006 # last copy. This is not always right, but it is rare
3007 # enough that we require users that really mean to play
3008 # such unportable linking tricks to link the library
3009 # using -Wl,-lname, so that libtool does not consider it
3010 # for duplicate removal.
3011 case " $specialdeplibs " in
3012 *" $deplib "*) new_libs="$deplib $new_libs" ;;
3013 *)
3014 case " $new_libs " in
3015 *" $deplib "*) ;;
3016 *) new_libs="$deplib $new_libs" ;;
3017 esac
3018 ;;
3019 esac
3020 ;;
3021 esac
3022 done
3023 tmp_libs=
3024 for deplib in $new_libs; do
3025 case $deplib in
3026 -L*)
3027 case " $tmp_libs " in
3028 *" $deplib "*) ;;
3029 *) tmp_libs="$tmp_libs $deplib" ;;
3030 esac
3031 ;;
3032 *) tmp_libs="$tmp_libs $deplib" ;;
3033 esac
3034 done
3035 eval $var=\"$tmp_libs\"
3036 done # for var
3037 fi
3038 # Last step: remove runtime libs from dependency_libs
3039 # (they stay in deplibs)
3040 tmp_libs=
3041 for i in $dependency_libs ; do
3042 case " $predeps $postdeps $compiler_lib_search_path " in
3043 *" $i "*)
3044 i=""
3045 ;;
3046 esac
3047 if test -n "$i" ; then
3048 tmp_libs="$tmp_libs $i"
3049 fi
3050 done
3051 dependency_libs=$tmp_libs
3052 done # for pass
3053 if test "$linkmode" = prog; then
3054 dlfiles="$newdlfiles"
3055 dlprefiles="$newdlprefiles"
3056 fi
3057
3058 case $linkmode in
3059 oldlib)
3060 if test -n "$deplibs"; then
3061 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3062 fi
3063
3064 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3065 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3066 fi
3067
3068 if test -n "$rpath"; then
3069 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3070 fi
3071
3072 if test -n "$xrpath"; then
3073 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3074 fi
3075
3076 if test -n "$vinfo"; then
3077 $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3078 fi
3079
3080 if test -n "$release"; then
3081 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3082 fi
3083
3084 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3085 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3086 fi
3087
3088 # Now set the variables for building old libraries.
3089 build_libtool_libs=no
3090 oldlibs="$output"
3091 objs="$objs$old_deplibs"
3092 ;;
3093
3094 lib)
3095 # Make sure we only generate libraries of the form `libNAME.la'.
3096 case $outputname in
3097 lib*)
3098 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3099 eval shared_ext=\"$shrext_cmds\"
3100 eval libname=\"$libname_spec\"
3101 ;;
3102 *)
3103 if test "$module" = no; then
3104 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3105 $echo "$help" 1>&2
3106 exit $EXIT_FAILURE
3107 fi
3108 if test "$need_lib_prefix" != no; then
3109 # Add the "lib" prefix for modules if required
3110 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3111 eval shared_ext=\"$shrext_cmds\"
3112 eval libname=\"$libname_spec\"
3113 else
3114 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3115 fi
3116 ;;
3117 esac
3118
3119 if test -n "$objs"; then
3120 if test "$deplibs_check_method" != pass_all; then
3121 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3122 exit $EXIT_FAILURE
3123 else
3124 $echo
3125 $echo "*** Warning: Linking the shared library $output against the non-libtool"
3126 $echo "*** objects $objs is not portable!"
3127 libobjs="$libobjs $objs"
3128 fi
3129 fi
3130
3131 if test "$dlself" != no; then
3132 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3133 fi
3134
3135 set dummy $rpath
3136 if test "$#" -gt 2; then
3137 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3138 fi
3139 install_libdir="$2"
3140
3141 oldlibs=
3142 if test -z "$rpath"; then
3143 if test "$build_libtool_libs" = yes; then
3144 # Building a libtool convenience library.
3145 # Some compilers have problems with a `.al' extension so
3146 # convenience libraries should have the same extension an
3147 # archive normally would.
3148 oldlibs="$output_objdir/$libname.$libext $oldlibs"
3149 build_libtool_libs=convenience
3150 build_old_libs=yes
3151 fi
3152
3153 if test -n "$vinfo"; then
3154 $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3155 fi
3156
3157 if test -n "$release"; then
3158 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3159 fi
3160 else
3161
3162 # Parse the version information argument.
3163 save_ifs="$IFS"; IFS=':'
3164 set dummy $vinfo 0 0 0
3165 IFS="$save_ifs"
3166
3167 if test -n "$8"; then
3168 $echo "$modename: too many parameters to \`-version-info'" 1>&2
3169 $echo "$help" 1>&2
3170 exit $EXIT_FAILURE
3171 fi
3172
3173 # convert absolute version numbers to libtool ages
3174 # this retains compatibility with .la files and attempts
3175 # to make the code below a bit more comprehensible
3176
3177 case $vinfo_number in
3178 yes)
3179 number_major="$2"
3180 number_minor="$3"
3181 number_revision="$4"
3182 #
3183 # There are really only two kinds -- those that
3184 # use the current revision as the major version
3185 # and those that subtract age and use age as
3186 # a minor version. But, then there is irix
3187 # which has an extra 1 added just for fun
3188 #
3189 case $version_type in
3190 darwin|linux|osf|windows)
3191 current=`expr $number_major + $number_minor`
3192 age="$number_minor"
3193 revision="$number_revision"
3194 ;;
3195 freebsd-aout|freebsd-elf|sunos)
3196 current="$number_major"
3197 revision="$number_minor"
3198 age="0"
3199 ;;
3200 irix|nonstopux)
3201 current=`expr $number_major + $number_minor - 1`
3202 age="$number_minor"
3203 revision="$number_minor"
3204 ;;
3205 esac
3206 ;;
3207 no)
3208 current="$2"
3209 revision="$3"
3210 age="$4"
3211 ;;
3212 esac
3213
3214 # Check that each of the things are valid numbers.
3215 case $current in
3216 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3217 *)
3218 $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3219 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3220 exit $EXIT_FAILURE
3221 ;;
3222 esac
3223
3224 case $revision in
3225 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3226 *)
3227 $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3228 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3229 exit $EXIT_FAILURE
3230 ;;
3231 esac
3232
3233 case $age in
3234 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3235 *)
3236 $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3237 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3238 exit $EXIT_FAILURE
3239 ;;
3240 esac
3241
3242 if test "$age" -gt "$current"; then
3243 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3244 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3245 exit $EXIT_FAILURE
3246 fi
3247
3248 # Calculate the version variables.
3249 major=
3250 versuffix=
3251 verstring=
3252 case $version_type in
3253 none) ;;
3254
3255 darwin)
3256 # Like Linux, but with the current version available in
3257 # verstring for coding it into the library header
3258 major=.`expr $current - $age`
3259 versuffix="$major.$age.$revision"
3260 # Darwin ld doesn't like 0 for these options...
3261 minor_current=`expr $current + 1`
3262 verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3263 ;;
3264
3265 freebsd-aout)
3266 major=".$current"
3267 versuffix=".$current.$revision";
3268 ;;
3269
3270 freebsd-elf)
3271 major=".$current"
3272 versuffix=".$current";
3273 ;;
3274
3275 irix | nonstopux)
3276 major=`expr $current - $age + 1`
3277
3278 case $version_type in
3279 nonstopux) verstring_prefix=nonstopux ;;
3280 *) verstring_prefix=sgi ;;
3281 esac
3282 verstring="$verstring_prefix$major.$revision"
3283
3284 # Add in all the interfaces that we are compatible with.
3285 loop=$revision
3286 while test "$loop" -ne 0; do
3287 iface=`expr $revision - $loop`
3288 loop=`expr $loop - 1`
3289 verstring="$verstring_prefix$major.$iface:$verstring"
3290 done
3291
3292 # Before this point, $major must not contain `.'.
3293 major=.$major
3294 versuffix="$major.$revision"
3295 ;;
3296
3297 linux)
3298 major=.`expr $current - $age`
3299 versuffix="$major.$age.$revision"
3300 ;;
3301
3302 osf)
3303 major=.`expr $current - $age`
3304 versuffix=".$current.$age.$revision"
3305 verstring="$current.$age.$revision"
3306
3307 # Add in all the interfaces that we are compatible with.
3308 loop=$age
3309 while test "$loop" -ne 0; do
3310 iface=`expr $current - $loop`
3311 loop=`expr $loop - 1`
3312 verstring="$verstring:${iface}.0"
3313 done
3314
3315 # Make executables depend on our current version.
3316 verstring="$verstring:${current}.0"
3317 ;;
3318
3319 sunos)
3320 major=".$current"
3321 versuffix=".$current.$revision"
3322 ;;
3323
3324 windows)
3325 # Use '-' rather than '.', since we only want one
3326 # extension on DOS 8.3 filesystems.
3327 major=`expr $current - $age`
3328 versuffix="-$major"
3329 ;;
3330
3331 *)
3332 $echo "$modename: unknown library version type \`$version_type'" 1>&2
3333 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3334 exit $EXIT_FAILURE
3335 ;;
3336 esac
3337
3338 # Clear the version info if we defaulted, and they specified a release.
3339 if test -z "$vinfo" && test -n "$release"; then
3340 major=
3341 case $version_type in
3342 darwin)
3343 # we can't check for "0.0" in archive_cmds due to quoting
3344 # problems, so we reset it completely
3345 verstring=
3346 ;;
3347 *)
3348 verstring="0.0"
3349 ;;
3350 esac
3351 if test "$need_version" = no; then
3352 versuffix=
3353 else
3354 versuffix=".0.0"
3355 fi
3356 fi
3357
3358 # Remove version info from name if versioning should be avoided
3359 if test "$avoid_version" = yes && test "$need_version" = no; then
3360 major=
3361 versuffix=
3362 verstring=""
3363 fi
3364
3365 # Check to see if the archive will have undefined symbols.
3366 if test "$allow_undefined" = yes; then
3367 if test "$allow_undefined_flag" = unsupported; then
3368 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3369 build_libtool_libs=no
3370 build_old_libs=yes
3371 fi
3372 else
3373 # Don't allow undefined symbols.
3374 allow_undefined_flag="$no_undefined_flag"
3375 fi
3376 fi
3377
3378 if test "$mode" != relink; then
3379 # Remove our outputs, but don't remove object files since they
3380 # may have been created when compiling PIC objects.
3381 removelist=
3382 tempremovelist=`$echo "$output_objdir/*"`
3383 for p in $tempremovelist; do
3384 case $p in
3385 *.$objext)
3386 ;;
3387 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3388 if test "X$precious_files_regex" != "X"; then
3389 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3390 then
3391 continue
3392 fi
3393 fi
3394 removelist="$removelist $p"
3395 ;;
3396 *) ;;
3397 esac
3398 done
3399 if test -n "$removelist"; then
3400 $show "${rm}r $removelist"
3401 $run ${rm}r $removelist
3402 fi
3403 fi
3404
3405 # Now set the variables for building old libraries.
3406 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3407 oldlibs="$oldlibs $output_objdir/$libname.$libext"
3408
3409 # Transform .lo files to .o files.
3410 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3411 fi
3412
3413 # Eliminate all temporary directories.
3414 for path in $notinst_path; do
3415 lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3416 deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3417 dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3418 done
3419
3420 if test -n "$xrpath"; then
3421 # If the user specified any rpath flags, then add them.
3422 temp_xrpath=
3423 for libdir in $xrpath; do
3424 temp_xrpath="$temp_xrpath -R$libdir"
3425 case "$finalize_rpath " in
3426 *" $libdir "*) ;;
3427 *) finalize_rpath="$finalize_rpath $libdir" ;;
3428 esac
3429 done
3430 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3431 dependency_libs="$temp_xrpath $dependency_libs"
3432 fi
3433 fi
3434
3435 # Make sure dlfiles contains only unique files that won't be dlpreopened
3436 old_dlfiles="$dlfiles"
3437 dlfiles=
3438 for lib in $old_dlfiles; do
3439 case " $dlprefiles $dlfiles " in
3440 *" $lib "*) ;;
3441 *) dlfiles="$dlfiles $lib" ;;
3442 esac
3443 done
3444
3445 # Make sure dlprefiles contains only unique files
3446 old_dlprefiles="$dlprefiles"
3447 dlprefiles=
3448 for lib in $old_dlprefiles; do
3449 case "$dlprefiles " in
3450 *" $lib "*) ;;
3451 *) dlprefiles="$dlprefiles $lib" ;;
3452 esac
3453 done
3454
3455 if test "$build_libtool_libs" = yes; then
3456 if test -n "$rpath"; then
3457 case $host in
3458 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3459 # these systems don't actually have a c library (as such)!
3460 ;;
3461 *-*-rhapsody* | *-*-darwin1.[012])
3462 # Rhapsody C library is in the System framework
3463 deplibs="$deplibs -framework System"
3464 ;;
3465 *-*-netbsd*)
3466 # Don't link with libc until the a.out ld.so is fixed.
3467 ;;
3468 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3469 # Do not include libc due to us having libc/libc_r.
3470 ;;
3471 *-*-sco3.2v5* | *-*-sco5v6*)
3472 # Causes problems with __ctype
3473 ;;
3474 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3475 # Compiler inserts libc in the correct place for threads to work
3476 ;;
3477 *)
3478 # Add libc to deplibs on all other systems if necessary.
3479 if test "$build_libtool_need_lc" = "yes"; then
3480 deplibs="$deplibs -lc"
3481 fi
3482 ;;
3483 esac
3484 fi
3485
3486 # Transform deplibs into only deplibs that can be linked in shared.
3487 name_save=$name
3488 libname_save=$libname
3489 release_save=$release
3490 versuffix_save=$versuffix
3491 major_save=$major
3492 # I'm not sure if I'm treating the release correctly. I think
3493 # release should show up in the -l (ie -lgmp5) so we don't want to
3494 # add it in twice. Is that correct?
3495 release=""
3496 versuffix=""
3497 major=""
3498 newdeplibs=
3499 droppeddeps=no
3500 case $deplibs_check_method in
3501 pass_all)
3502 # Don't check for shared/static. Everything works.
3503 # This might be a little naive. We might want to check
3504 # whether the library exists or not. But this is on
3505 # osf3 & osf4 and I'm not really sure... Just
3506 # implementing what was already the behavior.
3507 newdeplibs=$deplibs
3508 ;;
3509 test_compile)
3510 # This code stresses the "libraries are programs" paradigm to its
3511 # limits. Maybe even breaks it. We compile a program, linking it
3512 # against the deplibs as a proxy for the library. Then we can check
3513 # whether they linked in statically or dynamically with ldd.
3514 $rm conftest.c
3515 cat > conftest.c <<EOF
3516 int main() { return 0; }
3517 EOF
3518 $rm conftest
3519 $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3520 if test "$?" -eq 0 ; then
3521 ldd_output=`ldd conftest`
3522 for i in $deplibs; do
3523 name=`expr $i : '-l\(.*\)'`
3524 # If $name is empty we are operating on a -L argument.
3525 if test "$name" != "" && test "$name" -ne "0"; then
3526 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3527 case " $predeps $postdeps " in
3528 *" $i "*)
3529 newdeplibs="$newdeplibs $i"
3530 i=""
3531 ;;
3532 esac
3533 fi
3534 if test -n "$i" ; then
3535 libname=`eval \\$echo \"$libname_spec\"`
3536 deplib_matches=`eval \\$echo \"$library_names_spec\"`
3537 set dummy $deplib_matches
3538 deplib_match=$2
3539 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3540 newdeplibs="$newdeplibs $i"
3541 else
3542 droppeddeps=yes
3543 $echo
3544 $echo "*** Warning: dynamic linker does not accept needed library $i."
3545 $echo "*** I have the capability to make that library automatically link in when"
3546 $echo "*** you link to this library. But I can only do this if you have a"
3547 $echo "*** shared version of the library, which I believe you do not have"
3548 $echo "*** because a test_compile did reveal that the linker did not use it for"
3549 $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3550 fi
3551 fi
3552 else
3553 newdeplibs="$newdeplibs $i"
3554 fi
3555 done
3556 else
3557 # Error occurred in the first compile. Let's try to salvage
3558 # the situation: Compile a separate program for each library.
3559 for i in $deplibs; do
3560 name=`expr $i : '-l\(.*\)'`
3561 # If $name is empty we are operating on a -L argument.
3562 if test "$name" != "" && test "$name" != "0"; then
3563 $rm conftest
3564 $LTCC $LTCFLAGS -o conftest conftest.c $i
3565 # Did it work?
3566 if test "$?" -eq 0 ; then
3567 ldd_output=`ldd conftest`
3568 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3569 case " $predeps $postdeps " in
3570 *" $i "*)
3571 newdeplibs="$newdeplibs $i"
3572 i=""
3573 ;;
3574 esac
3575 fi
3576 if test -n "$i" ; then
3577 libname=`eval \\$echo \"$libname_spec\"`
3578 deplib_matches=`eval \\$echo \"$library_names_spec\"`
3579 set dummy $deplib_matches
3580 deplib_match=$2
3581 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3582 newdeplibs="$newdeplibs $i"
3583 else
3584 droppeddeps=yes
3585 $echo
3586 $echo "*** Warning: dynamic linker does not accept needed library $i."
3587 $echo "*** I have the capability to make that library automatically link in when"
3588 $echo "*** you link to this library. But I can only do this if you have a"
3589 $echo "*** shared version of the library, which you do not appear to have"
3590 $echo "*** because a test_compile did reveal that the linker did not use this one"
3591 $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3592 fi
3593 fi
3594 else
3595 droppeddeps=yes
3596 $echo
3597 $echo "*** Warning! Library $i is needed by this library but I was not able to"