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