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