/contrib/ntp/sntp/ltmain.sh
Shell | 6863 lines | 5830 code | 441 blank | 592 comment | 684 complexity | 70cf70a682442a6f827513ae73c18622 MD5 | raw file
Large files files are truncated, but you can click here to view the full file
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, 2005 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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.22 47TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" 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 X|tr X '\101'` in 92 A) # ASCII based system 93 # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 94 SP2NL='tr \040 \012' 95 NL2SP='tr \015\012 \040\040' 96 ;; 97 *) # EBCDIC based system 98 SP2NL='tr \100 \n' 99 NL2SP='tr \r\n \100\100' 100 ;; 101esac 102 103# NLS nuisances. 104# Only set LANG and LC_ALL to C if already set. 105# These must not be set unconditionally because not all systems understand 106# e.g. LANG=C (notably SCO). 107# We save the old values to restore during execute mode. 108if test "${LC_ALL+set}" = set; then 109 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL 110fi 111if test "${LANG+set}" = set; then 112 save_LANG="$LANG"; LANG=C; export LANG 113fi 114 115# Make sure IFS has a sensible default 116lt_nl=' 117' 118IFS=" $lt_nl" 119 120if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 121 $echo "$modename: not configured to build any kind of library" 1>&2 122 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 123 exit $EXIT_FAILURE 124fi 125 126# Global variables. 127mode=$default_mode 128nonopt= 129prev= 130prevopt= 131run= 132show="$echo" 133show_help= 134execute_dlfiles= 135duplicate_deps=no 136preserve_args= 137lo2o="s/\\.lo\$/.${objext}/" 138o2lo="s/\\.${objext}\$/.lo/" 139 140##################################### 141# Shell function definitions: 142# This seems to be the best place for them 143 144# func_mktempdir [string] 145# Make a temporary directory that won't clash with other running 146# libtool processes, and avoids race conditions if possible. If 147# given, STRING is the basename for that directory. 148func_mktempdir () 149{ 150 my_template="${TMPDIR-/tmp}/${1-$progname}" 151 152 if test "$run" = ":"; then 153 # Return a directory name, but don't create it in dry-run mode 154 my_tmpdir="${my_template}-$$" 155 else 156 157 # If mktemp works, use that first and foremost 158 my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 159 160 if test ! -d "$my_tmpdir"; then 161 # Failing that, at least try and use $RANDOM to avoid a race 162 my_tmpdir="${my_template}-${RANDOM-0}$$" 163 164 save_mktempdir_umask=`umask` 165 umask 0077 166 $mkdir "$my_tmpdir" 167 umask $save_mktempdir_umask 168 fi 169 170 # If we're not in dry-run mode, bomb out on failure 171 test -d "$my_tmpdir" || { 172 $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 173 exit $EXIT_FAILURE 174 } 175 fi 176 177 $echo "X$my_tmpdir" | $Xsed 178} 179 180 181# func_win32_libid arg 182# return the library type of file 'arg' 183# 184# Need a lot of goo to handle *both* DLLs and import libs 185# Has to be a shell function in order to 'eat' the argument 186# that is supplied when $file_magic_command is called. 187func_win32_libid () 188{ 189 win32_libid_type="unknown" 190 win32_fileres=`file -L $1 2>/dev/null` 191 case $win32_fileres in 192 *ar\ archive\ import\ library*) # definitely import 193 win32_libid_type="x86 archive import" 194 ;; 195 *ar\ archive*) # could be an import, or static 196 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 197 $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 198 win32_nmres=`eval $NM -f posix -A $1 | \ 199 $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` 200 case $win32_nmres in 201 import*) win32_libid_type="x86 archive import";; 202 *) win32_libid_type="x86 archive static";; 203 esac 204 fi 205 ;; 206 *DLL*) 207 win32_libid_type="x86 DLL" 208 ;; 209 *executable*) # but shell scripts are "executable" too... 210 case $win32_fileres in 211 *MS\ Windows\ PE\ Intel*) 212 win32_libid_type="x86 DLL" 213 ;; 214 esac 215 ;; 216 esac 217 $echo $win32_libid_type 218} 219 220 221# func_infer_tag arg 222# Infer tagged configuration to use if any are available and 223# if one wasn't chosen via the "--tag" command line option. 224# Only attempt this if the compiler in the base compile 225# command doesn't match the default compiler. 226# arg is usually of the form 'gcc ...' 227func_infer_tag () 228{ 229 if test -n "$available_tags" && test -z "$tagname"; then 230 CC_quoted= 231 for arg in $CC; do 232 case $arg in 233 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 234 arg="\"$arg\"" 235 ;; 236 esac 237 CC_quoted="$CC_quoted $arg" 238 done 239 case $@ in 240 # Blanks in the command may have been stripped by the calling shell, 241 # but not from the CC environment variable when configure was run. 242 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 243 # Blanks at the start of $base_compile will cause this to fail 244 # if we don't check for them as well. 245 *) 246 for z in $available_tags; do 247 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 248 # Evaluate the configuration. 249 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 250 CC_quoted= 251 for arg in $CC; do 252 # Double-quote args containing other shell metacharacters. 253 case $arg in 254 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 255 arg="\"$arg\"" 256 ;; 257 esac 258 CC_quoted="$CC_quoted $arg" 259 done 260 case "$@ " in 261 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 262 # The compiler in the base compile command matches 263 # the one in the tagged configuration. 264 # Assume this is the tagged configuration we want. 265 tagname=$z 266 break 267 ;; 268 esac 269 fi 270 done 271 # If $tagname still isn't set, then no tagged configuration 272 # was found and let the user know that the "--tag" command 273 # line option must be used. 274 if test -z "$tagname"; then 275 $echo "$modename: unable to infer tagged configuration" 276 $echo "$modename: specify a tag with \`--tag'" 1>&2 277 exit $EXIT_FAILURE 278# else 279# $echo "$modename: using $tagname tagged configuration" 280 fi 281 ;; 282 esac 283 fi 284} 285 286 287# func_extract_an_archive dir oldlib 288func_extract_an_archive () 289{ 290 f_ex_an_ar_dir="$1"; shift 291 f_ex_an_ar_oldlib="$1" 292 293 $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" 294 $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? 295 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 296 : 297 else 298 $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 299 exit $EXIT_FAILURE 300 fi 301} 302 303# func_extract_archives gentop oldlib ... 304func_extract_archives () 305{ 306 my_gentop="$1"; shift 307 my_oldlibs=${1+"$@"} 308 my_oldobjs="" 309 my_xlib="" 310 my_xabs="" 311 my_xdir="" 312 my_status="" 313 314 $show "${rm}r $my_gentop" 315 $run ${rm}r "$my_gentop" 316 $show "$mkdir $my_gentop" 317 $run $mkdir "$my_gentop" 318 my_status=$? 319 if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 320 exit $my_status 321 fi 322 323 for my_xlib in $my_oldlibs; do 324 # Extract the objects. 325 case $my_xlib in 326 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 327 *) my_xabs=`pwd`"/$my_xlib" ;; 328 esac 329 my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 330 my_xdir="$my_gentop/$my_xlib" 331 332 $show "${rm}r $my_xdir" 333 $run ${rm}r "$my_xdir" 334 $show "$mkdir $my_xdir" 335 $run $mkdir "$my_xdir" 336 exit_status=$? 337 if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then 338 exit $exit_status 339 fi 340 case $host in 341 *-darwin*) 342 $show "Extracting $my_xabs" 343 # Do not bother doing anything if just a dry run 344 if test -z "$run"; then 345 darwin_orig_dir=`pwd` 346 cd $my_xdir || exit $? 347 darwin_archive=$my_xabs 348 darwin_curdir=`pwd` 349 darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` 350 darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 351 if test -n "$darwin_arches"; then 352 darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 353 darwin_arch= 354 $show "$darwin_base_archive has multiple architectures $darwin_arches" 355 for darwin_arch in $darwin_arches ; do 356 mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 357 lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 358 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 359 func_extract_an_archive "`pwd`" "${darwin_base_archive}" 360 cd "$darwin_curdir" 361 $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 362 done # $darwin_arches 363 ## Okay now we have a bunch of thin objects, gotta fatten them up :) 364 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` 365 darwin_file= 366 darwin_files= 367 for darwin_file in $darwin_filelist; do 368 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 369 lipo -create -output "$darwin_file" $darwin_files 370 done # $darwin_filelist 371 ${rm}r unfat-$$ 372 cd "$darwin_orig_dir" 373 else 374 cd "$darwin_orig_dir" 375 func_extract_an_archive "$my_xdir" "$my_xabs" 376 fi # $darwin_arches 377 fi # $run 378 ;; 379 *) 380 func_extract_an_archive "$my_xdir" "$my_xabs" 381 ;; 382 esac 383 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 384 done 385 func_extract_archives_result="$my_oldobjs" 386} 387# End of Shell function definitions 388##################################### 389 390# Darwin sucks 391eval std_shrext=\"$shrext_cmds\" 392 393disable_libs=no 394 395# Parse our command line options once, thoroughly. 396while test "$#" -gt 0 397do 398 arg="$1" 399 shift 400 401 case $arg in 402 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 403 *) optarg= ;; 404 esac 405 406 # If the previous option needs an argument, assign it. 407 if test -n "$prev"; then 408 case $prev in 409 execute_dlfiles) 410 execute_dlfiles="$execute_dlfiles $arg" 411 ;; 412 tag) 413 tagname="$arg" 414 preserve_args="${preserve_args}=$arg" 415 416 # Check whether tagname contains only valid characters 417 case $tagname in 418 *[!-_A-Za-z0-9,/]*) 419 $echo "$progname: invalid tag name: $tagname" 1>&2 420 exit $EXIT_FAILURE 421 ;; 422 esac 423 424 case $tagname in 425 CC) 426 # Don't test for the "default" C tag, as we know, it's there, but 427 # not specially marked. 428 ;; 429 *) 430 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then 431 taglist="$taglist $tagname" 432 # Evaluate the configuration. 433 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" 434 else 435 $echo "$progname: ignoring unknown tag $tagname" 1>&2 436 fi 437 ;; 438 esac 439 ;; 440 *) 441 eval "$prev=\$arg" 442 ;; 443 esac 444 445 prev= 446 prevopt= 447 continue 448 fi 449 450 # Have we seen a non-optional argument yet? 451 case $arg in 452 --help) 453 show_help=yes 454 ;; 455 456 --version) 457 $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" 458 $echo 459 $echo "Copyright (C) 2005 Free Software Foundation, Inc." 460 $echo "This is free software; see the source for copying conditions. There is NO" 461 $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 462 exit $? 463 ;; 464 465 --config) 466 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath 467 # Now print the configurations for the tags. 468 for tagname in $taglist; do 469 ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" 470 done 471 exit $? 472 ;; 473 474 --debug) 475 $echo "$progname: enabling shell trace mode" 476 set -x 477 preserve_args="$preserve_args $arg" 478 ;; 479 480 --dry-run | -n) 481 run=: 482 ;; 483 484 --features) 485 $echo "host: $host" 486 if test "$build_libtool_libs" = yes; then 487 $echo "enable shared libraries" 488 else 489 $echo "disable shared libraries" 490 fi 491 if test "$build_old_libs" = yes; then 492 $echo "enable static libraries" 493 else 494 $echo "disable static libraries" 495 fi 496 exit $? 497 ;; 498 499 --finish) mode="finish" ;; 500 501 --mode) prevopt="--mode" prev=mode ;; 502 --mode=*) mode="$optarg" ;; 503 504 --preserve-dup-deps) duplicate_deps="yes" ;; 505 506 --quiet | --silent) 507 show=: 508 preserve_args="$preserve_args $arg" 509 ;; 510 511 --tag) 512 prevopt="--tag" 513 prev=tag 514 preserve_args="$preserve_args --tag" 515 ;; 516 --tag=*) 517 set tag "$optarg" ${1+"$@"} 518 shift 519 prev=tag 520 preserve_args="$preserve_args --tag" 521 ;; 522 523 -dlopen) 524 prevopt="-dlopen" 525 prev=execute_dlfiles 526 ;; 527 528 -*) 529 $echo "$modename: unrecognized option \`$arg'" 1>&2 530 $echo "$help" 1>&2 531 exit $EXIT_FAILURE 532 ;; 533 534 *) 535 nonopt="$arg" 536 break 537 ;; 538 esac 539done 540 541if test -n "$prevopt"; then 542 $echo "$modename: option \`$prevopt' requires an argument" 1>&2 543 $echo "$help" 1>&2 544 exit $EXIT_FAILURE 545fi 546 547case $disable_libs in 548no) 549 ;; 550shared) 551 build_libtool_libs=no 552 build_old_libs=yes 553 ;; 554static) 555 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 556 ;; 557esac 558 559# If this variable is set in any of the actions, the command in it 560# will be execed at the end. This prevents here-documents from being 561# left over by shells. 562exec_cmd= 563 564if test -z "$show_help"; then 565 566 # Infer the operation mode. 567 if test -z "$mode"; then 568 $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 569 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 570 case $nonopt in 571 *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) 572 mode=link 573 for arg 574 do 575 case $arg in 576 -c) 577 mode=compile 578 break 579 ;; 580 esac 581 done 582 ;; 583 *db | *dbx | *strace | *truss) 584 mode=execute 585 ;; 586 *install*|cp|mv) 587 mode=install 588 ;; 589 *rm) 590 mode=uninstall 591 ;; 592 *) 593 # If we have no mode, but dlfiles were specified, then do execute mode. 594 test -n "$execute_dlfiles" && mode=execute 595 596 # Just use the default operation mode. 597 if test -z "$mode"; then 598 if test -n "$nonopt"; then 599 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 600 else 601 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 602 fi 603 fi 604 ;; 605 esac 606 fi 607 608 # Only execute mode is allowed to have -dlopen flags. 609 if test -n "$execute_dlfiles" && test "$mode" != execute; then 610 $echo "$modename: unrecognized option \`-dlopen'" 1>&2 611 $echo "$help" 1>&2 612 exit $EXIT_FAILURE 613 fi 614 615 # Change the help message to a mode-specific one. 616 generic_help="$help" 617 help="Try \`$modename --help --mode=$mode' for more information." 618 619 # These modes are in order of execution frequency so that they run quickly. 620 case $mode in 621 # libtool compile mode 622 compile) 623 modename="$modename: compile" 624 # Get the compilation command and the source file. 625 base_compile= 626 srcfile="$nonopt" # always keep a non-empty value in "srcfile" 627 suppress_opt=yes 628 suppress_output= 629 arg_mode=normal 630 libobj= 631 later= 632 633 for arg 634 do 635 case $arg_mode in 636 arg ) 637 # do not "continue". Instead, add this to base_compile 638 lastarg="$arg" 639 arg_mode=normal 640 ;; 641 642 target ) 643 libobj="$arg" 644 arg_mode=normal 645 continue 646 ;; 647 648 normal ) 649 # Accept any command-line options. 650 case $arg in 651 -o) 652 if test -n "$libobj" ; then 653 $echo "$modename: you cannot specify \`-o' more than once" 1>&2 654 exit $EXIT_FAILURE 655 fi 656 arg_mode=target 657 continue 658 ;; 659 660 -static | -prefer-pic | -prefer-non-pic) 661 later="$later $arg" 662 continue 663 ;; 664 665 -no-suppress) 666 suppress_opt=no 667 continue 668 ;; 669 670 -Xcompiler) 671 arg_mode=arg # the next one goes into the "base_compile" arg list 672 continue # The current "srcfile" will either be retained or 673 ;; # replaced later. I would guess that would be a bug. 674 675 -Wc,*) 676 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 677 lastarg= 678 save_ifs="$IFS"; IFS=',' 679 for arg in $args; do 680 IFS="$save_ifs" 681 682 # Double-quote args containing other shell metacharacters. 683 # Many Bourne shells cannot handle close brackets correctly 684 # in scan sets, so we specify it separately. 685 case $arg in 686 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 687 arg="\"$arg\"" 688 ;; 689 esac 690 lastarg="$lastarg $arg" 691 done 692 IFS="$save_ifs" 693 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 694 695 # Add the arguments to base_compile. 696 base_compile="$base_compile $lastarg" 697 continue 698 ;; 699 700 * ) 701 # Accept the current argument as the source file. 702 # The previous "srcfile" becomes the current argument. 703 # 704 lastarg="$srcfile" 705 srcfile="$arg" 706 ;; 707 esac # case $arg 708 ;; 709 esac # case $arg_mode 710 711 # Aesthetically quote the previous argument. 712 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 713 714 case $lastarg in 715 # Double-quote args containing other shell metacharacters. 716 # Many Bourne shells cannot handle close brackets correctly 717 # in scan sets, and some SunOS ksh mistreat backslash-escaping 718 # in scan sets (worked around with variable expansion), 719 # and furthermore cannot handle '|' '&' '(' ')' in scan sets 720 # at all, so we specify them separately. 721 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 722 lastarg="\"$lastarg\"" 723 ;; 724 esac 725 726 base_compile="$base_compile $lastarg" 727 done # for arg 728 729 case $arg_mode in 730 arg) 731 $echo "$modename: you must specify an argument for -Xcompile" 732 exit $EXIT_FAILURE 733 ;; 734 target) 735 $echo "$modename: you must specify a target with \`-o'" 1>&2 736 exit $EXIT_FAILURE 737 ;; 738 *) 739 # Get the name of the library object. 740 [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 741 ;; 742 esac 743 744 # Recognize several different file suffixes. 745 # If the user specifies -o file.o, it is replaced with file.lo 746 xform='[cCFSifmso]' 747 case $libobj in 748 *.ada) xform=ada ;; 749 *.adb) xform=adb ;; 750 *.ads) xform=ads ;; 751 *.asm) xform=asm ;; 752 *.c++) xform=c++ ;; 753 *.cc) xform=cc ;; 754 *.ii) xform=ii ;; 755 *.class) xform=class ;; 756 *.cpp) xform=cpp ;; 757 *.cxx) xform=cxx ;; 758 *.f90) xform=f90 ;; 759 *.for) xform=for ;; 760 *.java) xform=java ;; 761 esac 762 763 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 764 765 case $libobj in 766 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 767 *) 768 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 769 exit $EXIT_FAILURE 770 ;; 771 esac 772 773 func_infer_tag $base_compile 774 775 for arg in $later; do 776 case $arg in 777 -static) 778 build_old_libs=yes 779 continue 780 ;; 781 782 -prefer-pic) 783 pic_mode=yes 784 continue 785 ;; 786 787 -prefer-non-pic) 788 pic_mode=no 789 continue 790 ;; 791 esac 792 done 793 794 qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 795 case $qlibobj in 796 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 797 qlibobj="\"$qlibobj\"" ;; 798 esac 799 test "X$libobj" != "X$qlibobj" \ 800 && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 801 && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." 802 objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 803 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` 804 if test "X$xdir" = "X$obj"; then 805 xdir= 806 else 807 xdir=$xdir/ 808 fi 809 lobj=${xdir}$objdir/$objname 810 811 if test -z "$base_compile"; then 812 $echo "$modename: you must specify a compilation command" 1>&2 813 $echo "$help" 1>&2 814 exit $EXIT_FAILURE 815 fi 816 817 # Delete any leftover library objects. 818 if test "$build_old_libs" = yes; then 819 removelist="$obj $lobj $libobj ${libobj}T" 820 else 821 removelist="$lobj $libobj ${libobj}T" 822 fi 823 824 $run $rm $removelist 825 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 826 827 # On Cygwin there's no "real" PIC flag so we must build both object types 828 case $host_os in 829 cygwin* | mingw* | pw32* | os2*) 830 pic_mode=default 831 ;; 832 esac 833 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 834 # non-PIC code in shared libraries is not supported 835 pic_mode=default 836 fi 837 838 # Calculate the filename of the output object if compiler does 839 # not support -o with -c 840 if test "$compiler_c_o" = no; then 841 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 842 lockfile="$output_obj.lock" 843 removelist="$removelist $output_obj $lockfile" 844 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 845 else 846 output_obj= 847 need_locks=no 848 lockfile= 849 fi 850 851 # Lock this critical section if it is needed 852 # We use this script file to make the link, it avoids creating a new file 853 if test "$need_locks" = yes; then 854 until $run ln "$progpath" "$lockfile" 2>/dev/null; do 855 $show "Waiting for $lockfile to be removed" 856 sleep 2 857 done 858 elif test "$need_locks" = warn; then 859 if test -f "$lockfile"; then 860 $echo "\ 861*** ERROR, $lockfile exists and contains: 862`cat $lockfile 2>/dev/null` 863 864This indicates that another process is trying to use the same 865temporary object file, and libtool could not work around it because 866your compiler does not support \`-c' and \`-o' together. If you 867repeat this compilation, it may succeed, by chance, but you had better 868avoid parallel builds (make -j) in this platform, or get a better 869compiler." 870 871 $run $rm $removelist 872 exit $EXIT_FAILURE 873 fi 874 $echo "$srcfile" > "$lockfile" 875 fi 876 877 if test -n "$fix_srcfile_path"; then 878 eval srcfile=\"$fix_srcfile_path\" 879 fi 880 qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 881 case $qsrcfile in 882 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 883 qsrcfile="\"$qsrcfile\"" ;; 884 esac 885 886 $run $rm "$libobj" "${libobj}T" 887 888 # Create a libtool object file (analogous to a ".la" file), 889 # but don't create it if we're doing a dry run. 890 test -z "$run" && cat > ${libobj}T <<EOF 891# $libobj - a libtool object file 892# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 893# 894# Please DO NOT delete this file! 895# It is necessary for linking the library. 896 897# Name of the PIC object. 898EOF 899 900 # Only build a PIC object if we are building libtool libraries. 901 if test "$build_libtool_libs" = yes; then 902 # Without this assignment, base_compile gets emptied. 903 fbsd_hideous_sh_bug=$base_compile 904 905 if test "$pic_mode" != no; then 906 command="$base_compile $qsrcfile $pic_flag" 907 else 908 # Don't build PIC code 909 command="$base_compile $qsrcfile" 910 fi 911 912 if test ! -d "${xdir}$objdir"; then 913 $show "$mkdir ${xdir}$objdir" 914 $run $mkdir ${xdir}$objdir 915 exit_status=$? 916 if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then 917 exit $exit_status 918 fi 919 fi 920 921 if test -z "$output_obj"; then 922 # Place PIC objects in $objdir 923 command="$command -o $lobj" 924 fi 925 926 $run $rm "$lobj" "$output_obj" 927 928 $show "$command" 929 if $run eval "$command"; then : 930 else 931 test -n "$output_obj" && $run $rm $removelist 932 exit $EXIT_FAILURE 933 fi 934 935 if test "$need_locks" = warn && 936 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 937 $echo "\ 938*** ERROR, $lockfile contains: 939`cat $lockfile 2>/dev/null` 940 941but it should contain: 942$srcfile 943 944This indicates that another process is trying to use the same 945temporary object file, and libtool could not work around it because 946your compiler does not support \`-c' and \`-o' together. If you 947repeat this compilation, it may succeed, by chance, but you had better 948avoid parallel builds (make -j) in this platform, or get a better 949compiler." 950 951 $run $rm $removelist 952 exit $EXIT_FAILURE 953 fi 954 955 # Just move the object if needed, then go on to compile the next one 956 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 957 $show "$mv $output_obj $lobj" 958 if $run $mv $output_obj $lobj; then : 959 else 960 error=$? 961 $run $rm $removelist 962 exit $error 963 fi 964 fi 965 966 # Append the name of the PIC object to the libtool object file. 967 test -z "$run" && cat >> ${libobj}T <<EOF 968pic_object='$objdir/$objname' 969 970EOF 971 972 # Allow error messages only from the first compilation. 973 if test "$suppress_opt" = yes; then 974 suppress_output=' >/dev/null 2>&1' 975 fi 976 else 977 # No PIC object so indicate it doesn't exist in the libtool 978 # object file. 979 test -z "$run" && cat >> ${libobj}T <<EOF 980pic_object=none 981 982EOF 983 fi 984 985 # Only build a position-dependent object if we build old libraries. 986 if test "$build_old_libs" = yes; then 987 if test "$pic_mode" != yes; then 988 # Don't build PIC code 989 command="$base_compile $qsrcfile" 990 else 991 command="$base_compile $qsrcfile $pic_flag" 992 fi 993 if test "$compiler_c_o" = yes; then 994 command="$command -o $obj" 995 fi 996 997 # Suppress compiler output if we already did a PIC compilation. 998 command="$command$suppress_output" 999 $run $rm "$obj" "$output_obj" 1000 $show "$command" 1001 if $run eval "$command"; then : 1002 else 1003 $run $rm $removelist 1004 exit $EXIT_FAILURE 1005 fi 1006 1007 if test "$need_locks" = warn && 1008 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1009 $echo "\ 1010*** ERROR, $lockfile contains: 1011`cat $lockfile 2>/dev/null` 1012 1013but it should contain: 1014$srcfile 1015 1016This indicates that another process is trying to use the same 1017temporary object file, and libtool could not work around it because 1018your compiler does not support \`-c' and \`-o' together. If you 1019repeat this compilation, it may succeed, by chance, but you had better 1020avoid parallel builds (make -j) in this platform, or get a better 1021compiler." 1022 1023 $run $rm $removelist 1024 exit $EXIT_FAILURE 1025 fi 1026 1027 # Just move the object if needed 1028 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 1029 $show "$mv $output_obj $obj" 1030 if $run $mv $output_obj $obj; then : 1031 else 1032 error=$? 1033 $run $rm $removelist 1034 exit $error 1035 fi 1036 fi 1037 1038 # Append the name of the non-PIC object the libtool object file. 1039 # Only append if the libtool object file exists. 1040 test -z "$run" && cat >> ${libobj}T <<EOF 1041# Name of the non-PIC object. 1042non_pic_object='$objname' 1043 1044EOF 1045 else 1046 # Append the name of the non-PIC object the libtool object file. 1047 # Only append if the libtool object file exists. 1048 test -z "$run" && cat >> ${libobj}T <<EOF 1049# Name of the non-PIC object. 1050non_pic_object=none 1051 1052EOF 1053 fi 1054 1055 $run $mv "${libobj}T" "${libobj}" 1056 1057 # Unlock the critical section if it was locked 1058 if test "$need_locks" != no; then 1059 $run $rm "$lockfile" 1060 fi 1061 1062 exit $EXIT_SUCCESS 1063 ;; 1064 1065 # libtool link mode 1066 link | relink) 1067 modename="$modename: link" 1068 case $host in 1069 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1070 # It is impossible to link a dll without this setting, and 1071 # we shouldn't force the makefile maintainer to figure out 1072 # which system we are compiling for in order to pass an extra 1073 # flag for every libtool invocation. 1074 # allow_undefined=no 1075 1076 # FIXME: Unfortunately, there are problems with the above when trying 1077 # to make a dll which has undefined symbols, in which case not 1078 # even a static library is built. For now, we need to specify 1079 # -no-undefined on the libtool link line when we can be certain 1080 # that all symbols are satisfied, otherwise we get a static library. 1081 allow_undefined=yes 1082 ;; 1083 *) 1084 allow_undefined=yes 1085 ;; 1086 esac 1087 libtool_args="$nonopt" 1088 base_compile="$nonopt $@" 1089 compile_command="$nonopt" 1090 finalize_command="$nonopt" 1091 1092 compile_rpath= 1093 finalize_rpath= 1094 compile_shlibpath= 1095 finalize_shlibpath= 1096 convenience= 1097 old_convenience= 1098 deplibs= 1099 old_deplibs= 1100 compiler_flags= 1101 linker_flags= 1102 dllsearchpath= 1103 lib_search_path=`pwd` 1104 inst_prefix_dir= 1105 1106 avoid_version=no 1107 dlfiles= 1108 dlprefiles= 1109 dlself=no 1110 export_dynamic=no 1111 export_symbols= 1112 export_symbols_regex= 1113 generated= 1114 libobjs= 1115 ltlibs= 1116 module=no 1117 no_install=no 1118 objs= 1119 non_pic_objects= 1120 notinst_path= # paths that contain not-installed libtool libraries 1121 precious_files_regex= 1122 prefer_static_libs=no 1123 preload=no 1124 prev= 1125 prevarg= 1126 release= 1127 rpath= 1128 xrpath= 1129 perm_rpath= 1130 temp_rpath= 1131 thread_safe=no 1132 vinfo= 1133 vinfo_number=no 1134 1135 func_infer_tag $base_compile 1136 1137 # We need to know -static, to get the right output filenames. 1138 for arg 1139 do 1140 case $arg in 1141 -all-static | -static) 1142 if test "X$arg" = "X-all-static"; then 1143 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 1144 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 1145 fi 1146 if test -n "$link_static_flag"; then 1147 dlopen_self=$dlopen_self_static 1148 fi 1149 prefer_static_libs=yes 1150 else 1151 if test -z "$pic_flag" && test -n "$link_static_flag"; then 1152 dlopen_self=$dlopen_self_static 1153 fi 1154 prefer_static_libs=built 1155 fi 1156 build_libtool_libs=no 1157 build_old_libs=yes 1158 break 1159 ;; 1160 esac 1161 done 1162 1163 # See if our shared archives depend on static archives. 1164 test -n "$old_archive_from_new_cmds" && build_old_libs=yes 1165 1166 # Go through the arguments, transforming them on the way. 1167 while test "$#" -gt 0; do 1168 arg="$1" 1169 shift 1170 case $arg in 1171 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1172 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 1173 ;; 1174 *) qarg=$arg ;; 1175 esac 1176 libtool_args="$libtool_args $qarg" 1177 1178 # If the previous option needs an argument, assign it. 1179 if test -n "$prev"; then 1180 case $prev in 1181 output) 1182 compile_command="$compile_command @OUTPUT@" 1183 finalize_command="$finalize_command @OUTPUT@" 1184 ;; 1185 esac 1186 1187 case $prev in 1188 dlfiles|dlprefiles) 1189 if test "$preload" = no; then 1190 # Add the symbol object into the linking commands. 1191 compile_command="$compile_command @SYMFILE@" 1192 finalize_command="$finalize_command @SYMFILE@" 1193 preload=yes 1194 fi 1195 case $arg in 1196 *.la | *.lo) ;; # We handle these cases below. 1197 force) 1198 if test "$dlself" = no; then 1199 dlself=needless 1200 export_dynamic=yes 1201 fi 1202 prev= 1203 continue 1204 ;; 1205 self) 1206 if test "$prev" = dlprefiles; then 1207 dlself=yes 1208 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 1209 dlself=yes 1210 else 1211 dlself=needless 1212 export_dynamic=yes 1213 fi 1214 prev= 1215 continue 1216 ;; 1217 *) 1218 if test "$prev" = dlfiles; then 1219 dlfiles="$dlfiles $arg" 1220 else 1221 dlprefiles="$dlprefiles $arg" 1222 fi 1223 prev= 1224 continue 1225 ;; 1226 esac 1227 ;; 1228 expsyms) 1229 export_symbols="$arg" 1230 if test ! -f "$arg"; then 1231 $echo "$modename: symbol file \`$arg' does not exist" 1232 exit $EXIT_FAILURE 1233 fi 1234 prev= 1235 continue 1236 ;; 1237 expsyms_regex) 1238 export_symbols_regex="$arg" 1239 prev= 1240 continue 1241 ;; 1242 inst_prefix) 1243 inst_prefix_dir="$arg" 1244 prev= 1245 continue 1246 ;; 1247 precious_regex) 1248 precious_files_regex="$arg" 1249 prev= 1250 continue 1251 ;; 1252 release) 1253 release="-$arg" 1254 prev= 1255 continue 1256 ;; 1257 objectlist) 1258 if test -f "$arg"; then 1259 save_arg=$arg 1260 moreargs= 1261 for fil in `cat $save_arg` 1262 do 1263# moreargs="$moreargs $fil" 1264 arg=$fil 1265 # A libtool-controlled object. 1266 1267 # Check to see that this really is a libtool object. 1268 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1269 pic_object= 1270 non_pic_object= 1271 1272 # Read the .lo file 1273 # If there is no directory component, then add one. 1274 case $arg in 1275 */* | *\\*) . $arg ;; 1276 *) . ./$arg ;; 1277 esac 1278 1279 if test -z "$pic_object" || \ 1280 test -z "$non_pic_object" || 1281 test "$pic_object" = none && \ 1282 test "$non_pic_object" = none; then 1283 $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1284 exit $EXIT_FAILURE 1285 fi 1286 1287 # Extract subdirectory from the argument. 1288 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1289 if test "X$xdir" = "X$arg"; then 1290 xdir= 1291 else 1292 xdir="$xdir/" 1293 fi 1294 1295 if test "$pic_object" != none; then 1296 # Prepend the subdirectory the object is found in. 1297 pic_object="$xdir$pic_object" 1298 1299 if test "$prev" = dlfiles; then 1300 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1301 dlfiles="$dlfiles $pic_object" 1302 prev= 1303 continue 1304 else 1305 # If libtool objects are unsupported, then we need to preload. 1306 prev=dlprefiles 1307 fi 1308 fi 1309 1310 # CHECK ME: I think I busted this. -Ossama 1311 if test "$prev" = dlprefiles; then 1312 # Preload the old-style object. 1313 dlprefiles="$dlprefiles $pic_object" 1314 prev= 1315 fi 1316 1317 # A PIC object. 1318 libobjs="$libobjs $pic_object" 1319 arg="$pic_object" 1320 fi 1321 1322 # Non-PIC object. 1323 if test "$non_pic_object" != none; then 1324 # Prepend the subdirectory the object is found in. 1325 non_pic_object="$xdir$non_pic_object" 1326 1327 # A standard non-PIC object 1328 non_pic_objects="$non_pic_objects $non_pic_object" 1329 if test -z "$pic_object" || test "$pic_object" = none ; then 1330 arg="$non_pic_object" 1331 fi 1332 else 1333 # If the PIC object exists, use it instead. 1334 # $xdir was prepended to $pic_object above. 1335 non_pic_object="$pic_object" 1336 non_pic_objects="$non_pic_objects $non_pic_object" 1337 fi 1338 else 1339 # Only an error if not doing a dry-run. 1340 if test -z "$run"; then 1341 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1342 exit $EXIT_FAILURE 1343 else 1344 # Dry-run case. 1345 1346 # Extract subdirectory from the argument. 1347 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1348 if test "X$xdir" = "X$arg"; then 1349 xdir= 1350 else 1351 xdir="$xdir/" 1352 fi 1353 1354 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1355 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1356 libobjs="$libobjs $pic_object" 1357 non_pic_objects="$non_pic_objects $non_pic_object" 1358 fi 1359 fi 1360 done 1361 else 1362 $echo "$modename: link input file \`$save_arg' does not exist" 1363 exit $EXIT_FAILURE 1364 fi 1365 arg=$save_arg 1366 prev= 1367 continue 1368 ;; 1369 rpath | xrpath) 1370 # We need an absolute path. 1371 case $arg in 1372 [\\/]* | [A-Za-z]:[\\/]*) ;; 1373 *) 1374 $echo "$modename: only absolute run-paths are allowed" 1>&2 1375 exit $EXIT_FAILURE 1376 ;; 1377 esac 1378 if test "$prev" = rpath; then 1379 case "$rpath " in 1380 *" $arg "*) ;; 1381 *) rpath="$rpath $arg" ;; 1382 esac 1383 else 1384 case "$xrpath " in 1385 *" $arg "*) ;; 1386 *) xrpath="$xrpath $arg" ;; 1387 esac 1388 fi 1389 prev= 1390 continue 1391 ;; 1392 xcompiler) 1393 compiler_flags="$compiler_flags $qarg" 1394 prev= 1395 compile_command="$compile_command $qarg" 1396 finalize_command="$finalize_command $qarg" 1397 continue 1398 ;; 1399 xlinker) 1400 linker_flags="$linker_flags $qarg" 1401 compiler_flags="$compiler_flags $wl$qarg" 1402 prev= 1403 compile_command="$compile_command $wl$qarg" 1404 finalize_command="$finalize_command $wl$qarg" 1405 continue 1406 ;; 1407 xcclinker) 1408 linker_flags="$linker_flags $qarg" 1409 compiler_flags="$compiler_flags $qarg" 1410 prev= 1411 compile_command="$compile_command $qarg" 1412 finalize_command="$finalize_command $qarg" 1413 continue 1414 ;; 1415 shrext) 1416 shrext_cmds="$arg" 1417 prev= 1418 continue 1419 ;; 1420 darwin_framework|darwin_framework_skip) 1421 test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 1422 compile_command="$compile_command $arg" 1423 finalize_command="$finalize_command $arg" 1424 prev= 1425 continue 1426 ;; 1427 *) 1428 eval "$prev=\"\$arg\"" 1429 prev= 1430 continue 1431 ;; 1432 esac 1433 fi # test -n "$prev" 1434 1435 prevarg="$arg" 1436 1437 case $arg in 1438 -all-static) 1439 if test -n "$link_static_flag"; then 1440 compile_command="$compile_command $link_static_flag" 1441 finalize_command="$finalize_command $link_static_flag" 1442 fi 1443 continue 1444 ;; 1445 1446 -allow-undefined) 1447 # FIXME: remove this flag sometime in the future. 1448 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 1449 continue 1450 ;; 1451 1452 -avoid-version) 1453 avoid_version=yes 1454 continue 1455 ;; 1456 1457 -dlopen) 1458 prev=dlfiles 1459 continue 1460 ;; 1461 1462 -dlpreopen) 1463 prev=dlprefiles 1464 continue 1465 ;; 1466 1467 -export-dynamic) 1468 export_dynamic=yes 1469 continue 1470 ;; 1471 1472 -export-symbols | -export-symbols-regex) 1473 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 1474 $echo "$modename: more than one -exported-symbols argument is not allowed" 1475 exit $EXIT_FAILURE 1476 fi 1477 if test "X$arg" = "X-export-symbols"; then 1478 prev=expsyms 1479 else 1480 prev=expsyms_regex 1481 fi 1482 continue 1483 ;; 1484 1485 -framework|-arch|-isysroot) 1486 case " $CC " in 1487 *" ${arg} ${1} "* | *" ${arg} ${1} "*) 1488 prev=darwin_framework_skip ;; 1489 *) compiler_flags="$compiler_flags $arg" 1490 prev=darwin_framework ;; 1491 esac 1492 compile_command="$compile_command $arg" 1493 finalize_command="$finalize_command $arg" 1494 continue 1495 ;; 1496 1497 -inst-prefix-dir) 1498 prev=inst_prefix 1499 continue 1500 ;; 1501 1502 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 1503 # so, if we see these flags be careful not to treat them like -L 1504 -L[A-Z][A-Z]*:*) 1505 case $with_gcc/$host in 1506 no/*-*-irix* | /*-*-irix*) 1507 compile_command="$compile_command $arg" 1508 finalize_command="$finalize_command $arg" 1509 ;; 1510 esac 1511 continue 1512 ;; 1513 1514 -L*) 1515 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 1516 # We need an absolute path. 1517 case $dir in 1518 [\\/]* | [A-Za-z]:[\\/]*) ;; 1519 *) 1520 absdir=`cd "$dir" && pwd` 1521 if test -z "$absdir"; then 1522 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 1523 absdir="$dir" 1524 notinst_path="$notinst_path $dir" 1525 fi 1526 dir="$absdir" 1527 ;; 1528 esac 1529 case "$deplibs " in 1530 *" -L$dir "*) ;; 1531 *) 1532 deplibs="$deplibs -L$dir" 1533 lib_search_path="$lib_search_path $dir" 1534 ;; 1535 esac 1536 case $host in 1537 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1538 testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 1539 case :$dllsearchpath: in 1540 *":$dir:"*) ;; 1541 *) dllsearchpath="$dllsearchpath:$dir";; 1542 esac 1543 case :$dllsearchpath: in 1544 *":$testbindir:"*) ;; 1545 *) dllsearchpath="$dllsearchpath:$testbindir";; 1546 esac 1547 ;; 1548 esac 1549 continue 1550 ;; 1551 1552 -l*) 1553 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 1554 case $host in 1555 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 1556 # These systems don't actually have a C or math library (as such) 1557 continue 1558 ;; 1559 *-*-os2*) 1560 # These systems don't actually have a C library (as such) 1561 test "X$arg" = "X-lc" && continue 1562 ;; 1563 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1564 # Do not include libc due to us having libc/libc_r. 1565 test "X$arg" = "X-lc" && continue 1566 ;; 1567 *-*-rhapsody* | *-*-darwin1.[012]) 1568 # Rhapsody C and math libraries are in the System framework 1569 deplibs="$deplibs -framework System" 1570 continue 1571 ;; 1572 *-*-sco3.2v5* | *-*-sco5v6*) 1573 # Causes problems with __ctype 1574 test "X$arg" = "X-lc" && continue 1575 ;; 1576 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 1577 # Compiler inserts libc in the correct place for threads to work 1578 test "X$arg" = "X-lc" && continue 1579 ;; 1580 esac 1581 elif test "X$arg" = "X-lc_r"; then 1582 case $host in 1583 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1584 # Do not include libc_r directly, use -pthread flag. 1585 continue 1586 ;; 1587 esac 1588 fi 1589 deplibs="$deplibs $arg" 1590 continue 1591 ;; 1592 1593 # Tru64 UNIX uses -model [arg] to determine the layout of C++ 1594 # classes, name mangling, and exception handling. 1595 -model) 1596 compile_command="$compile_command $arg" 1597 compiler_flags="$compiler_flags $arg" 1598 finalize_command="$finalize_command $arg" 1599 prev=xcompiler 1600 continue 1601 ;; 1602 1603 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 1604 compiler_flags="$compiler_flags $arg" 1605 compile_command="$compile_command $arg" 1606 finalize_command="$finalize_command $arg" 1607 continue 1608 ;; 1609 1610 -module) 1611 module=yes 1612 continue 1613 ;; 1614 1615 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 1616 # -r[0-9][0-9]* specifies the processor on the SGI compiler 1617 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 1618 # +DA*, +DD* enable 64-bit mode on the HP compiler 1619 # -q* pass through compiler args for the IBM compiler 1620 # -m* pass through architecture-specific compiler args for GCC 1621 # -m*, -t[45]*, -txscale* pass through architecture-specific 1622 # compiler args for GCC 1623 # -pg pass through profiling flag for GCC 1624 # @file GCC response files 1625 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ 1626 -t[45]*|-txscale*|@*) 1627 1628 # Unknown arguments in both finalize_command and compile_command need 1629 # to be aesthetically quoted because they are evaled later. 1630 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1631 case $arg in 1632 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1633 arg="\"$arg\"" 1634 ;; 1635 esac 1636 compile_command="$compile_command $arg" 1637 finalize_command="$finalize_command $arg" 1638 compiler_flags="$compiler_flags $arg" 1639 continue 1640 ;; 1641 1642 -shrext) 1643 prev=shrext 1644 continue 1645 ;; 1646 1647 -no-fast-install) 1648 fast_install=no 1649 continue 1650 ;; 1651 1652 -no-install) 1653 case $host in 1654 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1655 # The PATH hackery in wrapper scripts is required on Windows 1656 # in order for the loader to find any dlls it needs. 1657 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 1658 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 1659 fast_install=no 1660 ;; 1661 *) no_install=yes ;; 1662 esac 1663 continue 1664 ;; 1665 1666 -no-undefined) 1667 allow_undefined=no 1668 continue 1669 ;; 1670 1671 -objectlist) 1672 prev=objectlist 1673 continue 1674 ;; 1675 1676 -o) prev=output ;; 1677 1678 -precious-files-regex) 1679 prev=precious_regex 1680 continue 1681 ;; 1682 1683 -release) 1684 prev=release 1685 continue 1686 ;; 1687 1688 -rpath) 1689 prev=rpath 1690 continue 1691 ;; 1692 1693 -R) 1694 prev=xrpath 1695 continue 1696 ;; 1697 1698 -R*) 1699 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 1700 # We need an absolute path. 1701 case $dir in 1702 [\\/]* | [A-Za-z]:[\\/]*) ;; 1703 *) 1704 $echo "$modename: only absolute run-paths are allowed" 1>&2 1705 exit $EXIT_FAILURE 1706 ;; 1707 esac 1708 case "$xrpath " in 1709 *" $dir "*) ;; 1710 *) xrpath="$xrpath $dir" ;; 1711 esac 1712 continue 1713 ;; 1714 1715 -static) 1716 # The effects of -static are defined in a previous loop. 1717 # We used to do the same as -all-static on platforms that 1718 # didn't have a PIC flag, but the assumption that the effects 1719 # would be equivalent was wrong. It would break on at least 1720 # Digital Unix and AIX. 1721 continue 1722 ;; 1723 1724 -thread-safe) 1725 thread_safe=yes 1726 continue 1727 ;; 1728 1729 -version-info) 1730 prev=vinfo 1731 continue 1732 ;; 1733 -version-number) 1734 prev=vinfo 1735 vinfo_number=yes 1736 continue 1737 ;; 1738 1739 -Wc,*) 1740 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 1741 arg= 1742 save_ifs="$IFS"; IFS=',' 1743 for flag in $args; do 1744 IFS="$save_ifs" 1745 case $flag in 1746 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1747 flag="\"$flag\"" 1748 ;; 1749 esac 1750 arg="$arg $wl$flag" 1751 compiler_flags="$compiler_flags $flag" 1752 done 1753 IFS="$save_ifs" 1754 arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1755 ;; 1756 1757 -Wl,*) 1758 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 1759 arg= 1760 save_ifs="$IFS"; IFS=',' 1761 for flag in $args; do 1762 IFS="$save_ifs" 1763 case $flag in 1764 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1765 flag="\"$flag\"" 1766 ;; 1767 esac 1768 arg="$arg $wl$flag" 1769 compiler_flags="$compiler_flags $wl$flag" 1770 linker_flags="$linker_flags $flag" 1771 done 1772 IFS="$save_ifs" 1773 arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1774 ;; 1775 1776 -Xcompiler) 1777 prev=xcompiler 1778 continue 1779 ;; 1780 1781 -Xlinker) 1782 prev=xlinker 1783 continue 1784 ;; 1785 1786 -XCClinker) 1787 prev=xcclinker 1788 continue 1789 ;; 1790 1791 # Some other compiler flag. 1792 -* | +*) 1793 # Unknown arguments in both finalize_command and compile_command need 1794 # to be aesthetically quoted because they are evaled later. 1795 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1796 case $arg in 1797 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1798 arg="\"$arg\"" 1799 ;; 1800 esac 1801 ;; 1802 1803 *.$objext) 1804 # A standard object. 1805 objs="$objs $arg" 1806 ;; 1807 1808 *.lo) 1809 # A libtool-controlled object. 1810 1811 # Check to see that this really is a libtool object. 1812 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1813 pic_object= 1814 non_pic_object= 1815 1816 # Read the .lo file 1817 # If there is no directory component, then add one. 1818 case $arg in 1819 */* | *\\*) . $arg ;; 1820 *) . ./$arg ;; 1821 esac 1822 1823 if test -z "$pic_object" || \ 1824 test -z "$non_pic_object" || 1825 test "$pic_object" = none && \ 1826 test "$non_pic_object" = none; then 1827 $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1828 exit $EXIT_FAILURE 1829 fi 1830 1831 # Extract subdirectory from the argument. 1832 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1833 if test "X$xdir" = "X$arg"; then 1834 xdir= 1835 else 1836 xdir="$xdir/" 1837 fi 1838 1839 if test "$pic_object" != none; then 1840 # Prepend the subdirectory the object is found in. 1841 pic_object="$xdir$pic_object" 1842 1843 if test "$prev" = dlfiles; then 1844 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1845 dlfiles="$dlfiles $pic_object" 1846 prev= 1847 continue 1848 else 1849 # If libtool objects are unsupported, then we need to preload. 1850 prev=dlprefiles 1851 fi 1852 fi 1853 1854 # CHECK ME: I think I busted this. -Ossama 1855 if test "$prev" = dlprefiles; then 1856 # Preload the old-style object. 1857 dlprefiles="$dlprefiles $pic_object" 1858 prev= 1859 fi 1860 1861 # A PIC object. 1862 libobjs="$libobjs $pic_object" 1863 arg="$pic_object" 1864 fi 1865 1866 # Non-PIC object. 1867 if test "$non_pic_object" != none; then 1868 # Prepend the subdirectory the object is found in. 1869 non_pic_object="$xdir$non_pic_object" 1870 1871 # A standard non-PIC object 1872 non_pic_objects="$non_pic_objects $non_pic_object" 1873 if test -z "$pic_object" || test "$pic_object" = none ; then 1874 arg="$non_pic_object" 1875 fi 1876 else 1877 # If the PIC object exists, use it instead. 1878 # $xdir was prepended to $pic_object above. 1879 non_pic_object="$pic_object" 1880 non_pic_objects="$non_pic_objects $non_pic_object" 1881 fi 1882 else 1883 # Only an error if not doing a dry-run. 1884 if test -z "$run"; then 1885 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1886 exit $EXIT_FAILURE 1887 else 1888 # Dry-run case. 1889 1890 # Extract subdirectory from the argument. 1891 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1892 if test "X$xdir" = "X$arg"; then 1893 xdir= 1894 else 1895 xdir="$xdir/" 1896 fi 1897 1898 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1899 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1900 libobjs="$libobjs $pic_object" 1901 non_pic_objects="$non_pic_objects $non_pic_object" 1902 fi 1903 fi 1904 ;; 1905 1906 *.$libext) 1907 # An archive. 1908 deplibs="$deplibs $arg" 1909 old_deplibs="$old_deplibs $arg" 1910 continue 1911 ;; 1912 1913 *.la) 1914 # A libtool-controlled library. 1915 1916 if test "$prev" = dlfiles; then 1917 # This library was specified with -dlopen. 1918 dlfiles="$dlfiles $arg" 1919 prev= 1920 elif test "$prev" = dlprefiles; then 1921 # The library was specified with -dlpreopen. 1922 dlprefiles="$dlprefiles $arg" 1923 prev= 1924 else 1925 deplibs="$deplibs $arg" 1926 fi 1927 continue 1928 ;; 1929 1930 # Some other compiler argument. 1931 *) 1932 # Unknown arguments in both finalize_command and compile_command need 1933 # to be aesthetically quoted because they are evaled later. 1934 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1935 case $arg in 1936 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1937 arg="\"$arg\"" 1938 ;; 1939 e…
Large files files are truncated, but you can click here to view the full file