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