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

📄 ltmain.sh

📁 常好且全面的jpeg图像压缩算法
💻 SH
📖 第 1 页 / 共 5 页
字号:

      # Parse the version information argument.
      IFS="${IFS= 	}"; save_ifs="$IFS"; IFS=':'
      set dummy $vinfo
      IFS="$save_ifs"

      if test -n "$5"; then
        $echo "$modename: too many parameters to \`-version-info'" 1>&2
        $echo "$help" 1>&2
        exit 1
      fi

      test -n "$2" && current="$2"
      test -n "$3" && revision="$3"
      test -n "$4" && age="$4"

      # Check that each of the things are valid numbers.
      case "$current" in
      0 | [1-9] | [1-9][0-9]*) ;;
      *)
        $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
        exit 1
        ;;
      esac

      case "$revision" in
      0 | [1-9] | [1-9][0-9]*) ;;
      *)
        $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
        exit 1
        ;;
      esac

      case "$age" in
      0 | [1-9] | [1-9][0-9]*) ;;
      *)
        $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
        exit 1
        ;;
      esac

      if test $age -gt $current; then
        $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
        $echo "$modename: \`$vinfo' is not valid version information" 1>&2
        exit 1
      fi

      # Calculate the version variables.
      version_vars="version_type current age revision"
      case "$version_type" in
      none) ;;

      linux)
        version_vars="$version_vars major versuffix"
        major=`expr $current - $age`
        versuffix="$major.$age.$revision"
        ;;

      osf)
        version_vars="$version_vars versuffix verstring"
        major=`expr $current - $age`
        versuffix="$current.$age.$revision"
        verstring="$versuffix"

        # Add in all the interfaces that we are compatible with.
        loop=$age
        while test $loop != 0; do
          iface=`expr $current - $loop`
          loop=`expr $loop - 1`
          verstring="$verstring:${iface}.0"
        done

        # Make executables depend on our current version.
        verstring="$verstring:${current}.0"
        ;;

      sunos)
        version_vars="$version_vars major versuffix"
        major="$current"
        versuffix="$current.$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

      # Create the output directory, or remove our outputs if we need to.
      if test -d $objdir; then
        $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
        $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
      else
        $show "$mkdir $objdir"
        $run $mkdir $objdir
	status=$?
	if test $status -eq 0 || test -d $objdir; then :
	else
	  exit $status
	fi
      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"

      if test "$build_libtool_libs" = yes; then
        # 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="$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 's/\.lo /.o /g' -e 's/ $//g'`

        # Do each of the archive commands.
        eval cmds=\"$archive_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"

        # Create links to the real library.
        for linkname in $linknames; do
          $show "(cd $objdir && $LN_S $realname $linkname)"
          $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
        done

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

      # Now set the variables for building old libraries.
      oldlib="$objdir/$libname.a"
      ;;

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

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

      if test -n "$dlfiles$dlprefiles"; then
        $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2
        # Nullify the symbol file.
        compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
      fi

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

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

      if test -n "$release"; then
        $echo "$modename: warning: \`-release' is ignored while creating 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 's/\.lo$/.o/'`
        ;;
      *)
        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/[^       ]*\.a //g' -e 's/\.lo /.o /g' -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 1
      fi

      exit 0
      ;;

    *)
      if test -n "$vinfo"; then
        $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
      fi

      if test -n "$release"; then
        $echo "$modename: warning: \`-release' is ignored while creating objects" 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
          elif test -n "$runpath_var"; then
            case "$perm_rpath " in
            *" $libdir "*) ;;
            *) perm_rpath="$perm_rpath $libdir" ;;
            esac
          fi
	done
      fi

      # Substitute the hardcoded libdirs into the compile commands.
      if test -n "$hardcode_libdir_separator"; then
	compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
      fi

      if test -n "$libobjs" && test "$build_old_libs" = yes; then
        # Transform all the library objects into standard objects.
        compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
        finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
      fi

      if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
        dlsyms="${output}S.c"
      else
        dlsyms=
      fi

      if test -n "$dlsyms"; then
        # Add our own program objects to the preloaded list.
        dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`

	# Discover the nlist of each of the dlfiles.
        nlist="$objdir/${output}.nm"

	if test -d $objdir; then
	  $show "$rm $nlist ${nlist}T"
	  $run $rm "$nlist" "${nlist}T"
	else
	  $show "$mkdir $objdir"
	  $run $mkdir $objdir
	  status=$?
	  if test $status -eq 0 || test -d $objdir; then :
	  else
	    exit $status
	  fi
	fi

        for arg in $dlprefiles; do
	  $show "extracting global C symbols from \`$arg'"
	  $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
        done

        # Parse the name list into a source file.
        $show "creating $objdir/$dlsyms"
        if test -z "$run"; then
	  # Make sure we at least have an empty file.
	  test -f "$nlist" || : > "$nlist"

	  # Try sorting and uniquifying the output.
	  if sort "$nlist" | uniq > "$nlist"T; then
	    mv -f "$nlist"T "$nlist"
	    wcout=`wc "$nlist" 2>/dev/null`
	    count=`echo "X$wcout" | $Xsed -e 's/^[ 	]*\([0-9][0-9]*\).*$/\1/'`
	    (test "$count" -ge 0) 2>/dev/null || count=-1
	  else
	    $rm "$nlist"T
	    count=-1
	  fi

	  case "$dlsyms" in
	  "") ;;
	  *.c)
	    $echo > "$objdir/$dlsyms" "\
/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */

#ifdef __cplusplus
extern \"C\" {
#endif

/* Prevent the only kind of declaration conflicts we can make. */
#define dld_preloaded_symbol_count some_other_symbol
#define dld_preloaded_symbols some_other_symbol

/* External symbol declarations for the compiler. */\
"

	    if test -f "$nlist"; then
	      sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
	    else
	      echo '/* NONE */' >> "$objdir/$dlsyms"
	    fi

	    $echo >> "$objdir/$dlsyms" "\

#undef dld_preloaded_symbol_count
#undef dld_preloaded_symbols

#if defined (__STDC__) && __STDC__
# define __ptr_t void *
#else
# define __ptr_t char *
#endif

/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
int dld_preloaded_symbol_count = $count;

/* The mapping between symbol names and symbols. */
struct {
  char *name;
  __ptr_t address;
}
dld_preloaded_symbols[] =
{\
"

	    if test -f "$nlist"; then
	      sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
	    fi

	    $echo >> "$objdir/$dlsyms" "\
  {0, (__ptr_t) 0}
};

#ifdef __cplusplus
}
#endif\
"
	    ;;

	  *)
	    $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
	    exit 1
	    ;;
	  esac
        fi

        # Now compile the dynamic symbol file.
        $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")"
        $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?

        # Transform the symbol file into the correct name.

⌨️ 快捷键说明

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