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