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