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