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