📄 libtool
字号:
# shell: $SHELL# compiler: $LTCC# compiler flags: $LTCFLAGS# linker: $LD (gnu? $with_gnu_ld)# $progname: (GNU libtool) 2.2.6# automake: $automake_version# autoconf: $autoconf_version## Report bugs to <bug-libtool@gnu.org>.PROGRAM=ltmain.shPACKAGE=libtoolVERSION=2.2.6TIMESTAMP=""package_revision=1.3012# Be Bourne compatibleif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBSTelse case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esacfiBIN_SH=xpg4; export BIN_SH # for Tru64DUALCASE=1; export DUALCASE # for MKS sh# NLS nuisances: We save the old values to restore during execute mode.# Only set LANG and LC_ALL to C if already set.# These must not be set unconditionally because not all systems understand# e.g. LANG=C (notably SCO).lt_user_locale=lt_safe_locale=for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGESdo eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi"done$lt_unset CDPATH: ${CP="cp -f"}: ${ECHO="echo"}: ${EGREP="/usr/bin/grep -E"}: ${FGREP="/usr/bin/grep -F"}: ${GREP="/usr/bin/grep"}: ${LN_S="ln -s"}: ${MAKE="make"}: ${MKDIR="mkdir"}: ${MV="mv -f"}: ${RM="rm -f"}: ${SED="/opt/local/bin/gsed"}: ${SHELL="${CONFIG_SHELL-/bin/sh}"}: ${Xsed="$SED -e 1s/^X//"}# Global variables:EXIT_SUCCESS=0EXIT_FAILURE=1EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.exit_status=$EXIT_SUCCESS# Make sure IFS has a sensible defaultlt_nl=''IFS=" $lt_nl"dirname="s,/[^/]*$,,"basename="s,^.*/,,"# func_dirname_and_basename file append nondir_replacement# perform func_basename and func_dirname in a single function# call:# dirname: Compute the dirname of FILE. If nonempty,# add APPEND to the result, otherwise set result# to NONDIR_REPLACEMENT.# value returned in "$func_dirname_result"# basename: Compute filename of FILE.# value retuned in "$func_basename_result"# Implementation must be kept synchronized with func_dirname# and func_basename. For efficiency, we do not delegate to# those functions but instead duplicate the functionality here.func_dirname_and_basename (){ # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`}# Generated shell functions inserted here.# func_dirname file append nondir_replacement# Compute the dirname of FILE. If nonempty, add APPEND to the result,# otherwise set result to NONDIR_REPLACEMENT.func_dirname (){ case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac}# func_basename filefunc_basename (){ func_basename_result="${1##*/}"}# func_dirname_and_basename file append nondir_replacement# perform func_basename and func_dirname in a single function# call:# dirname: Compute the dirname of FILE. If nonempty,# add APPEND to the result, otherwise set result# to NONDIR_REPLACEMENT.# value returned in "$func_dirname_result"# basename: Compute filename of FILE.# value retuned in "$func_basename_result"# Implementation must be kept synchronized with func_dirname# and func_basename. For efficiency, we do not delegate to# those functions but instead duplicate the functionality here.func_dirname_and_basename (){ case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"}# func_stripname prefix suffix name# strip PREFIX and SUFFIX off of NAME.# PREFIX and SUFFIX must not contain globbing or regex special# characters, hashes, percent signs, but SUFFIX may contain a leading# dot (in which case that matches only a dot).func_stripname (){ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}}# func_opt_splitfunc_opt_split (){ func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=}}# func_lo2o objectfunc_lo2o (){ case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac}# func_xform libobj-or-sourcefunc_xform (){ func_xform_result=${1%.*}.lo}# func_arith arithmetic-term...func_arith (){ func_arith_result=$(( $* ))}# func_len string# STRING may not start with a hyphen.func_len (){ func_len_result=${#1}}# func_append var value# Append VALUE to the end of shell variable VAR.func_append (){ eval "$1+=\$2"}# Generated shell functions inserted here.# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh# is ksh but when the shell is invoked as "sh" and the current value of# the _XPG environment variable is not equal to 1 (one), the special# positional parameter $0, within a function call, is the name of the# function.progpath="$0"# The name of this program:# In the unlikely event $progname began with a '-', it would play havoc with# func_echo (imagine progname=-n), so we prepend ./ in that case:func_dirname_and_basename "$progpath"progname=$func_basename_resultcase $progname in -*) progname=./$progname ;;esac# Make sure we have an absolute path for reexecution:case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;;esac# Sed substitution that helps us do robust quoting. It backslashifies# metacharacters that are still active within double-quoted strings.Xsed="${SED}"' -e 1s/^X//'sed_quote_subst='s/\([`"$\\]\)/\\\1/g'# Same as above, but do not quote variable references.double_quote_subst='s/\(["`\\]\)/\\\1/g'# Re-`\' parameter expansions in output of double_quote_subst that were# `\'-ed in input to the same. If an odd number of `\' preceded a '$'# in input to double_quote_subst, that '$' was protected from expansion.# Since each input `\' is now two `\'s, look for any number of runs of# four `\'s followed by two `\'s and then a '$'. `\' that '$'.bs='\\'bs2='\\\\'bs4='\\\\\\\\'dollar='\$'sed_double_backslash="\ s/$bs4/&\\/g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g"# Standard options:opt_dry_run=falseopt_help=falseopt_quiet=falseopt_verbose=falseopt_warning=:# func_echo arg...# Echo program name prefixed message, along with the current mode# name if it has been set yet.func_echo (){ $ECHO "$progname${mode+: }$mode: $*"}# func_verbose arg...# Echo program name prefixed message in verbose mode only.func_verbose (){ $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: :}# func_error arg...# Echo program name prefixed message to standard error.func_error (){ $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2}# func_warning arg...# Echo program name prefixed warning message to standard error.func_warning (){ $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: :}# func_fatal_error arg...# Echo program name prefixed message to standard error, and exit.func_fatal_error (){ func_error ${1+"$@"} exit $EXIT_FAILURE}# func_fatal_help arg...# Echo program name prefixed message to standard error, followed by# a help hint, and exit.func_fatal_help (){ func_error ${1+"$@"} func_fatal_error "$help"}help="Try \`$progname --help' for more information." ## default# func_grep expression filename# Check whether EXPRESSION matches any line of FILENAME, without output.func_grep (){ $GREP "$1" "$2" >/dev/null 2>&1}# func_mkdir_p directory-path# Make sure the entire path to DIRECTORY-PATH is available.func_mkdir_p (){ my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi}# func_mktempdir [string]# Make a temporary directory that won't clash with other running# libtool processes, and avoids race conditions if possible. If# given, STRING is the basename for that directory.func_mktempdir (){ my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed}# func_quote_for_eval arg# Aesthetically quote ARG to be evaled later.# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT# is double-quoted, suitable for a subsequent eval, whereas# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters# which are still active within double quotes backslashified.func_quote_for_eval (){ case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac}# func_quote_for_expand arg# Aesthetically quote ARG to be evaled later; same as above,# but do not quote variable references.func_quote_for_expand (){ case $1 in *[\\\`\"]*)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -