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