PageRenderTime 906ms CodeModel.GetById 324ms app.highlight 449ms RepoModel.GetById 113ms app.codeStats 1ms

/tags/S3_4_COMPILE_IN_LINUX_VC_CYGWIN/sphinx3/ltmain.sh

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

Large files files are truncated, but you can click here to view the full file