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