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