⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ltmain.sh

📁 这是一款VC++编写的软件
💻 SH
📖 第 1 页 / 共 5 页
字号:

    # Only build a PIC object if we are building libtool libraries.
    if test "$build_libtool_libs" = yes; then
      # Without this assignment, base_compile gets emptied.
      fbsd_hideous_sh_bug=$base_compile

      # All platforms use -DPIC, to notify preprocessed assembler code.
      command="$base_compile$pic_flag -DPIC $srcfile"
      if test "$compiler_o_lo" = yes; then
        command="$command -o $libobj"
        output_obj="$libobj"
      elif test "$compiler_c_o" = yes; then
        command="$command -o $obj"
        output_obj="$obj"
      fi

      $show "$command"
      if $run eval "$command"; then :
      else
        test -n "$output_obj" && $run $rm $removelist
        exit 1
      fi

      if test "$need_locks" = warn &&
	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
	echo "\
*** ERROR, $lockfile contains:
`cat $lockfile 2>/dev/null`

but it should contain:
$srcfile

This indicates that another process is trying to use the same
temporary object file, and libtool could not work around it because
your compiler does not support \`-c' and \`-o' together.  If you
repeat this compilation, it may succeed, by chance, but you had better
avoid parallel builds (make -j) in this platform, or get a better
compiler."

	$run $rm $removelist
	exit 1
      fi

      # Just move the object if needed, then go on to compile the next one
      if test "$compiler_o_lo" = no && test x"$output_obj" != x"$libobj"; then
        $show "$mv $output_obj $libobj"
        if $run $mv $output_obj $libobj; then :
	else
	  error=$?
	  $run $rm $removelist
	  exit $error
	fi
      fi

      # If we have no pic_flag and do not have -force-static, 
      # then copy the object into place and finish.
      if test -z "$pic_flag" && test "$force_static" = no; then
        $show "$LN_S $libobj $obj"
        if $run $LN_S $libobj $obj; then
	  exit 0
	else
          error=$?
	  $run $rm $removelist
	  exit $error
	fi
      fi

      # Allow error messages only from the first compilation.
      suppress_output=' >/dev/null 2>&1'
    fi

    # Only build a position-dependent object if we build old libraries.
    if test "$build_old_libs" = yes; then
      command="$base_compile $srcfile"
      if test "$force_static" = yes; then
        command="$command -DLIBTOOL_STATIC"
      fi
      if test "$compiler_c_o" = yes; then
        command="$command -o $obj"
        output_obj="$obj"
      fi

      # Suppress compiler output if we already did a PIC compilation.
      command="$command$suppress_output"
      $show "$command"
      if $run eval "$command"; then :
      else
        $run $rm $removelist
        exit 1
      fi

      if test "$need_locks" = warn &&
	 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
	echo "\
*** ERROR, $lockfile contains:
`cat $lockfile 2>/dev/null`

but it should contain:
$srcfile

This indicates that another process is trying to use the same
temporary object file, and libtool could not work around it because
your compiler does not support \`-c' and \`-o' together.  If you
repeat this compilation, it may succeed, by chance, but you had better
avoid parallel builds (make -j) in this platform, or get a better
compiler."

	$run $rm $removelist
	exit 1
      fi

      # Just move the object if needed
      if test "$compiler_c_o" = no && test x"$output_obj" != x"$obj"; then
        $show "$mv $output_obj $obj"
        if $run $mv $output_obj $obj; then :
	else
	  error=$?
	  $run $rm $removelist
	  exit $error
	fi
      fi
    fi

    # Unlock the critical section if it was locked
    if test "$need_locks" != no; then
      $rm "$lockfile"
    fi

    # Create an invalid libtool object if no PIC, so that we do not
    # accidentally link it into a program.
    if test "$build_libtool_libs" != yes; then
      $show "echo timestamp > $libobj"
      $run eval "echo timestamp > \$libobj" || exit $?
    fi

    exit 0
    ;;

  # libtool link mode
  link)
    modename="$modename: link"
    C_compiler="$CC" # save it, to compile generated C sources
    CC="$nonopt"
    allow_undefined=yes
    compile_command="$CC"
    finalize_command="$CC"

    compile_shlibpath=
    finalize_shlibpath=
    convenience=
    old_convenience=
    deplibs=
    eval lib_search_path=\"$sys_lib_search_path\"
    
    dlfiles=
    dlprefiles=
    export_dynamic=no
    export_symbols=
    generated=
    hardcode_libdirs=
    libobjs=
    link_against_libtool_libs=
    ltlibs=
    module=no
    objs=
    prev=
    prevarg=
    release=
    rpath=
    perm_rpath=
    temp_rpath=
    vinfo=

    # We need to know -static, to get the right output filenames.
    for arg
    do
      case "$arg" in
      -all-static | -static)
        if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
        fi
        build_libtool_libs=no
	build_old_libs=yes
        break
        ;;
      esac
    done

    # See if our shared archives depend on static archives.
    test -n "$old_archive_from_new_cmds" && build_old_libs=yes

    # Go through the arguments, transforming them on the way.
    while test $# -gt 0; do
      arg="$1"
      shift

      # If the previous option needs an argument, assign it.
      if test -n "$prev"; then
        case "$prev" in
        output)
          compile_command="$compile_command @OUTPUT@"
          finalize_command="$finalize_command @OUTPUT@"
          ;;
        esac

        case "$prev" in
        dlfiles|dlprefiles)
          case "$arg" in
          *.la | *.lo) ;;  # We handle these cases below.
          *)
            dlprefiles="$dlprefiles $arg"
            test "$prev" = dlfiles && dlfiles="$dlfiles $arg"
            prev=
            ;;
          esac
          ;;
	exportsyms)
	  export_symbols="$arg"
          if test ! -f "$arg"; then
            $echo "$modename: symbol file \`$arg' does not exist"
            exit 1
          fi
	  prev=
	  ;;
	release)
	  release="-$arg"
	  prev=
	  continue
	  ;;
        rpath)
          rpath="$rpath $arg"
	  prev=
	  continue
	  ;;
        *)
          eval "$prev=\"\$arg\""
          prev=
          continue
          ;;
        esac
      fi

      prevarg="$arg"

      case "$arg" in
      -all-static)
	if test -n "$link_static_flag"; then
          compile_command="$compile_command $link_static_flag"
	  finalize_command="$finalize_command $link_static_flag"
        fi
        continue
	;;

      -allow-undefined)
	# FIXME: remove this flag sometime in the future.
	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
	continue
	;;

      -dlopen)
        prev=dlfiles
        continue
        ;;

      -dlpreopen)
        prev=dlprefiles
        continue
        ;;

      -export-dynamic)
        if test "$export_dynamic" != yes; then
          export_dynamic=yes
	  if test -n "$export_dynamic_flag_spec"; then
	    eval arg=\"$export_dynamic_flag_spec\"
	  else
	    arg=
	  fi

          # Add the symbol object into the linking commands.
	  compile_command="$compile_command @SYMFILE@"
	  finalize_command="$finalize_command @SYMFILE@"
        fi
        ;;

      -export-symbols)
        if test -n "$export_symbols"; then
          $echo "$modename: cannot have more than one -exported-symbols"
          exit 1
        fi
	prev=exportsyms
	continue
        ;;

      -L*)
        dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
        case "$dir" in
        /* | [A-Za-z]:[/\\]*)
	  # Add the corresponding hardcode_libdir_flag, if it is not identical.
          ;;
        *)
          $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
          exit 1
          ;;
        esac
        deplibs="$deplibs $arg"
        lib_search_path="$lib_search_path `expr $arg : '-L\(.*\)'`"
        ;;

      -l*) deplibs="$deplibs $arg" ;;

      -module)
        if test "$module" != yes; then
          module=yes
	  if test -n "$export_dynamic_flag_spec"; then
	    eval arg=\"$export_dynamic_flag_spec\"
	  else
	    arg=
	  fi
	fi
        ;;
	
      -no-undefined)
	allow_undefined=no
	continue
	;;

      -o) prev=output ;;

      -release)
	prev=release
	continue
	;;

      -rpath)
        prev=rpath
        continue
        ;;

      -static)
	# If we have no pic_flag, then this is the same as -all-static.
	if test -z "$pic_flag" && test -n "$link_static_flag"; then
          compile_command="$compile_command $link_static_flag"
	  finalize_command="$finalize_command $link_static_flag"
        fi
	continue
	;;

      -version-info)
        prev=vinfo
        continue
        ;;

      # Some other compiler flag.
      -* | +*)
	# Unknown arguments in both finalize_command and compile_command need
	# to be aesthetically quoted because they are evaled later.
	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
	case "$arg" in
	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
	  arg="\"$arg\""
	  ;;
	esac
        ;;

      *.o | *.obj | *.a | *.lib)
        # A standard object.
        objs="$objs $arg"
        ;;

      *.lo)
        # A library object.
	if test "$prev" = dlfiles; then
	  dlfiles="$dlfiles $arg"
	  if test "$build_libtool_libs" = yes; then
	    prev=
	    continue
	  else
	    # If libtool objects are unsupported, then we need to preload.
	    prev=dlprefiles
	  fi
	fi

	if test "$prev" = dlprefiles; then
	  # Preload the old-style object.
	  dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
	  prev=
	fi
	libobjs="$libobjs $arg"
        ;;

      *.la)
        # A libtool-controlled library.

        dlname=
        libdir=
        library_names=
        old_library=

        # Check to see that this really is a libtool archive.
        if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
        else
          $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
          exit 1
        fi

	# If the library was installed with an old release of libtool,
	# it will not redefine variable installed.
	installed=yes

        # If there is no directory component, then add one.
        case "$arg" in
        */* | *\\*) . $arg ;;
        *) . ./$arg ;;
        esac

        # Get the name of the library we link against.
        linklib=
        for l in $old_library $library_names; do
          linklib="$l"
        done

        if test -z "$linklib"; then
          $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
          exit 1
        fi

        # Find the relevant object directory and library name.
        name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -