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