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