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

📄 ltmain.sh

📁 这是一款VC++编写的软件
💻 SH
📖 第 1 页 / 共 5 页
字号:
	  versuffix="-$major-$age-$revision"
	  ;;

	*)
	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
	  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
	  exit 1
	  ;;
	esac

	# Clear the version info if we defaulted, and they specified a release.
	if test -z "$vinfo" && test -n "$release"; then
	  major=
	  versuffix=
	  verstring="0.0"
	  case "$host" in
	  *-*-sunos*)
	    versuffix=".0.0"
	    ;;
	  esac
	fi

	# Check to see if the archive will have undefined symbols.
	if test "$allow_undefined" = yes; then
	  if test "$allow_undefined_flag" = unsupported; then
	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
	    build_libtool_libs=no
	    build_old_libs=yes
	  fi
	else
	  # Don't allow undefined symbols.
	  allow_undefined_flag="$no_undefined_flag"
	fi

	# Add libc to deplibs on all systems.
	dependency_libs="$deplibs"
	deplibs="$deplibs -lc"
      fi

      # Create the output directory, or remove our outputs if we need to.
      if test -d $output_objdir; then
        $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
	$run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
      else
        $show "$mkdir $output_objdir"
        $run $mkdir $output_objdir
        status=$?
        if test $status -ne 0 && test ! -d $output_objdir; then
          exit $status
        fi
      fi

      # Now set the variables for building old libraries.
      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
	oldlibs="$oldlibs $output_objdir/$libname.$libext"

	# Transform .lo files to .o files.
	oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^   ]*\.'${libext}' //g' -e "$los2o" -e 's/ $//g'`
      fi

      if test "$build_libtool_libs" = yes; then
        # Transform deplibs into only deplibs that can be linked in shared.
        ## Gordon: Do you check for the existence of the libraries in deplibs
        ## on the system?  That should maybe be merged in here someplace....
        ## Actually: I think test_compile and file_magic do this... file_regex
        ## sorta does this. Only pas_all needs to be changed.  -Toshio
        name_save=$name
        libname_save=$libname
        release_save=$release
        versuffix_save=$versuffix
        major_save=$major
        # I'm not sure if I'm treating the release correctly.  I think
        # release should show up in the -l (ie -lgmp5) so we don't want to
        # add it in twice.  Is that correct?
        release=""
        versuffix=""
        major=""
        newdeplibs=
        case "$check_shared_deplibs_method" in
        pass_all)  
          newdeplibs=$deplibs 
                    ;; # Don't check for shared/static.  Everything works.
                       # This might be a little naive.  We might want to check
                       # whether the library exists or not.  But this is on
                       # osf3 & osf4 and I'm not really sure... Just
                       # implementing what was already the behaviour.
        test_compile)
          # This code stresses the "libraries are programs" paradigm to its
          # limits. Maybe even breaks it.  We compile a program, linking it
          # against the deplibs as a proxy for the library.  Then we can check
          # whether they linked in statically or dynamically with ldd.
          $rm conftest.c
          cat > conftest.c <<EOF
          int main() { return 0; }
EOF
          $rm a.out
          $C_compiler conftest.c $deplibs
          if test $? -eq 0 ; then
            ldd_output=`ldd a.out`
            for i in $deplibs; do
              name="`expr $i : '-l\(.*\)'`"
              # If $name is empty we are operating on a -L argument.
              if test "$name" != "" ; then
                libname=`eval \\$echo \"$libname_spec\"`
                deplib_matches=`eval \\$echo \"$library_names_spec\"`
                set dummy $deplib_matches
                deplib_match=$2
                if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
                  newdeplibs="$newdeplibs $i"
                else
                  echo
                  echo "*** Warning: This library needs some functionality provided by $i."
                  echo "*** I have the capability to make that library automatically link in when"
                  echo "*** you link to this library.  But I can only do this if you have a"
                  echo "*** shared version of the library, which you do not appear to have."
                fi
              else
                newdeplibs="$newdeplibs $i"
              fi
            done
          else
            # Error occured in the first compile.  Let's try to salvage the situation:
            # Compile a seperate program for each library.
            for i in $deplibs; do
              name="`expr $i : '-l\(.*\)'`"
             # If $name is empty we are operating on a -L argument.
              if test "$name" != "" ; then
                $rm a.out
                $C_compiler conftest.c $i
                # Did it work?
                if test $? -eq 0 ; then
                  ldd_output=`ldd a.out`
                    libname=`eval \\$echo \"$libname_spec\"`
                    deplib_matches=`eval \\$echo \"$library_names_spec\"`
                    set dummy $deplib_matches
                    deplib_match=$2
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
                      newdeplibs="$newdeplibs $i"
                    else
                      echo
                      echo "*** Warning: This library needs some functionality provided by $i."
                      echo "*** I have the capability to make that library automatically link in when"
                      echo "*** you link to this library.  But I can only do this if you have a"
                      echo "*** shared version of the library, which you do not appear to have."
                    fi
                else
                  echo
                  echo "*** Warning!  Library $i is needed by this library but I was not able to"
                  echo "***  make it link in!  You will probably need to install it or some"
                  echo "*** library that it depends on before this library will be fully"
                  echo "*** functional.  Installing it before continuing would be even better."
                fi
              else
                newdeplibs="$newdeplibs $i"
              fi
            done
          fi
          deplibs=$newdeplibs
          ;;
        file_magic* | file_regex)
          set dummy $check_shared_deplibs_method
          file_magic_regex="`expr \"$check_shared_deplibs_method\" : \"$2\(.*\)\"`"
          for a_deplib in $deplibs; do
            name="`expr $a_deplib : '-l\(.*\)'`"
            # If $name is empty we are operating on a -L argument.
            if test "$name" != "" ; then
              libname=`eval \\$echo \"$libname_spec\"`
              case "$check_shared_deplibs_method" in
                file_magic*)
                  for i in $lib_search_path; do
                   # This needs to be more general than file_regex in order to
                   # catch things like glibc on linux.  Maybe file_regex
                   # should be more general as well, but maybe not.  Since
                   # library names are supposed to conform to
                   # library_name_spec, I think file_regex should remain
                   # strict.  What do you think Gordon?
                    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
                    for potent_lib in $potential_libs; do
                      file_output=`file $potent_lib`
                      if test `expr "$file_output" : ".*$file_magic_regex"` -ne 0 ; then
                        newdeplibs="$newdeplibs $a_deplib"
                        a_deplib=""
                        break 2
                      fi
                    done
                  done
                  ;;
                file_regex)
                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
                  set dummy $deplib_matches
                  deplib_match=$2
                  for i in $lib_search_path; do
                    potential_libs=`ls $i/$deplib_match* 2>/dev/null`
                    if test "$potential_libs" != "" ; then
                      newdeplibs="$newdeplibs $a_deplib"
                      a_deplib=""
                      break
                    fi
                  done
                  ;;
              esac
              if test "$a_deplib" != "" ; then
                echo
                echo "*** Warning: This library needs some functionality provided by $a_deplib."
                echo "*** I have the capability to make that library automatically link in when"
                echo "*** you link to this library.  But I can only do this if you have a"
                echo "*** shared version of the library, which you do not appear to have."
              fi
            else
              # Add a -L argument.
              newdeplibs="$newdeplibs $a_deplib"
            fi
          done # Gone through all deplibs.
          ;;
        none | *)  deplibs="" ;;
        esac
        versuffix=$versuffix_save
        major=$major_save
        release=$release_save
        libname=$libname_save
        name=$name_save
        deplibs=$newdeplibs
        # Done checking deplibs!
 
	# Get the real and link names of the library.
	eval library_names=\"$library_names_spec\"
	set dummy $library_names
	realname="$2"
	shift; shift

	if test -n "$soname_spec"; then
	  eval soname=\"$soname_spec\"
	else
	  soname="$realname"
	fi

	lib="$output_objdir/$realname"
	for link
	do
	  linknames="$linknames $link"
	done

	# Use standard objects if they are PIC.
	test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e "$los2o" -e 's/ $//g'`

	if test -n "$whole_archive_flag_spec"; then
	  if test -n "$convenience"; then
	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
	  fi
	else
	  for xlib in $convenience; do
	    # Extract the objects.
	    xdir="$xlib"x
	    generated="$generated $xdir"
	    xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`

	    $show "${rm}r $xdir"
	    $run ${rm}r "$xdir"
	    $show "mkdir $xdir"
	    $run mkdir "$xdir"
	    status=$?
	    if test $status -ne 0 && test ! -d "$xdir"; then
	      exit $status
	    fi
	    $show "(cd $xdir && $AR x ../$xlib)"
	    $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?

	    libobjs="$libobjs `echo $xdir/*`"
	  done
	fi

	# Do each of the archive commands.
	if test -n "$export_symbols" && test -n "$archive_sym_cmds"; then
	  eval cmds=\"$archive_sym_cmds\"
	else
	  eval cmds=\"$archive_cmds\"
	fi
	IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
	for cmd in $cmds; do
	  IFS="$save_ifs"
	  $show "$cmd"
	  $run eval "$cmd" || exit $?
	done
	IFS="$save_ifs"

	# Create links to the real library.
	for linkname in $linknames; do
	  if test "$realname" != "$linkname"; then
	    $show "(cd $output_objdir && $LN_S $realname $linkname)"
	    $run eval '(cd $output_objdir && $LN_S $realname $linkname)' || exit $?
	  fi
	done

	# If -module or -export-dynamic was specified, set the dlname.
	if test "$module" = yes || test "$export_dynamic" = yes; then
	  # On all known operating systems, these are identical.
	  dlname="$soname"
	fi
      fi
      ;;

    *.lo | *.o | *.obj)
      if test -n "$link_against_libtool_libs"; then
        $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
        exit 1
      fi

      if test -n "$deplibs"; then
        $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
      fi

      if test -n "$dlfiles$dlprefiles"; then
        $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
      fi

      if test -n "$rpath"; then
        $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
      fi

      if test -n "$vinfo"; then
        $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
      fi

      if test -n "$release"; then
        $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
      fi

      case "$output" in
      *.lo)
        if test -n "$objs"; then
          $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
          exit 1
        fi
        libobj="$output"
        obj=`$echo "X$output" | $Xsed -e "$lo2o"`
        ;;
      *)
        libobj=
        obj="$output"
        ;;
      esac

      # Delete the old objects.
      $run $rm $obj $libobj

      # Create the old-style object.
      reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^       ]*\.'${libext}' //g' -e 's/[^       ]*\.lib //g' -e "$los2o" -e 's/ $//g'`

      output="$obj"
      eval cmds=\"$reload_cmds\"
      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
      for cmd in $cmds; do
        IFS="$save_ifs"
        $show "$cmd"
        $run eval "$cmd" || exit $?
      done
      IFS="$save_ifs"

      # Exit if we aren't doing a library object file.
      test -z "$libobj" && exit 0

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

      if test -n "$pic_flag"; then
        # Only do commands if we really have different PIC objects.
        reload_objs="$libobjs"
        output="$libobj"
        eval cmds=\"$reload_cmds\"
        IFS="${IFS= 	}"; save_ifs="$IFS"; IFS='~'
        for cmd in $cmds; do
          IFS="$save_ifs"
          $show "$cmd"
          $run eval "$cmd" || exit $?
        done
        IFS="$save_ifs"
      else
        # Just create a symlink.
        $show "$LN_S $obj $libobj"
        $run $LN_S $obj $libobj || exit $?
      fi

      exit 0
      ;;

    # Anything else should be a program.
    *)
      if test -n "$vinfo"; then
        $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
      fi

      if test -n "$release"; then
        $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
      fi

      if test -n "$rpath"; then
	# If the user specified any rpath flags, then add them.
	for libdir in $rpath; do
          if test -n "$hardcode_libdir_flag_spec"; then
            if test -n "$hardcode_libdir_separator"; then
              if test -z "$hardcode_libdirs"; then
                # Put the magic libdir with the hardcode flag.
                hardcode_libdirs="$libdir"
                libdir="@HARDCODE_LIBDIRS@"
              else
                # Just accumulate the unique libdirs.
		case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
		*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
		  ;;
		*)
		  hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
		  ;;
		esac
                libdir=
              fi
            fi

            if test -n "$libdir"; then
              eval flag=\"$hardcode_libdir_flag_spec\"

              compile_command="$compile_command $flag"
              finalize_command="$finalize_command $flag"
            fi

⌨️ 快捷键说明

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