📄 m4sh.m4
字号:
*c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;;esac])# _AS_ECHO_N_PREPARE# _AS_ECHO_N(STRING, [FD = AS_MESSAGE_FD])# ----------------------------------------# Same as _AS_ECHO, but echo doesn't return to a new line.m4_define([_AS_ECHO_N],[AS_REQUIRE([_AS_ECHO_N_PREPARE])dnlecho $ECHO_N "_AS_QUOTE([$1])$ECHO_C" >&m4_default([$2], [AS_MESSAGE_FD])])# AS_MESSAGE(STRING, [FD = AS_MESSAGE_FD])# ----------------------------------------m4_define([AS_MESSAGE],[m4_ifset([AS_MESSAGE_LOG_FD], [{ _AS_ECHO([$as_me:$LINENO: $1], [AS_MESSAGE_LOG_FD])_AS_ECHO([$as_me: $1], [$2]);}], [_AS_ECHO([$as_me: $1], [$2])])[]dnl])# AS_WARN(PROBLEM)# ----------------m4_define([AS_WARN],[AS_MESSAGE([WARNING: $1], [2])])# AS_WARN# AS_ERROR(ERROR, [EXIT-STATUS = 1])# ----------------------------------m4_define([AS_ERROR],[{ AS_MESSAGE([error: $1], [2]) AS_EXIT([$2]); }[]dnl])# AS_ERROR## -------------------------------------- #### 4. Portable versions of common tools. #### -------------------------------------- ### This section is lexicographically sorted.# AS_DIRNAME(PATHNAME)# --------------------# Simulate running `dirname(1)' on PATHNAME, not all systems have it.# This macro must be usable from inside ` `.## Prefer expr to echo|sed, since expr is usually faster and it handles# backslashes and newlines correctly. However, older expr# implementations (e.g. SunOS 4 expr and Solaris 8 /usr/ucb/expr) have# a silly length limit that causes expr to fail if the matched# substring is longer than 120 bytes. So fall back on echo|sed if# expr fails.m4_defun([AS_DIRNAME_EXPR],[AS_REQUIRE([_AS_EXPR_PREPARE])dnl$as_expr X[]$1 : 'X\(.*[[^/]]\)//*[[^/][^/]]*/*$' \| \ X[]$1 : 'X\(//\)[[^/]]' \| \ X[]$1 : 'X\(//\)$' \| \ X[]$1 : 'X\(/\)' \| \ . : '\(.\)'])m4_defun([AS_DIRNAME_SED],[echo X[]$1 | sed ['/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q']])m4_defun([AS_DIRNAME],[(dirname $1) 2>/dev/null ||AS_DIRNAME_EXPR([$1]) 2>/dev/null ||AS_DIRNAME_SED([$1])])# AS_BASENAME(PATHNAME)# --------------------# Simulate running `basename(1)' on PATHNAME, not all systems have it.# Also see the comments for AS_DIRNAME.m4_defun([AS_BASENAME_EXPR],[AS_REQUIRE([_AS_EXPR_PREPARE])dnl$as_expr X/[]$1 : '.*/\([[^/][^/]*]\)/*$' \| \ X[]$1 : 'X\(//\)$' \| \ X[]$1 : 'X\(/\)$' \| \ . : '\(.\)'])m4_defun([AS_BASENAME_SED],[echo X/[]$1 | sed ['/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q']])m4_defun([AS_BASENAME],[AS_REQUIRE([_$0_PREPARE])dnl$as_basename $1 ||AS_BASENAME_EXPR([$1]) 2>/dev/null ||AS_BASENAME_SED([$1])])# AS_EXECUTABLE_P# ---------------# Check whether a file is executable.m4_defun([AS_EXECUTABLE_P],[AS_REQUIRE([_AS_TEST_PREPARE])dnl$as_executable_p $1[]dnl])# AS_EXECUTABLE_P# _AS_BASENAME_PREPARE# --------------------# Avoid Solaris 9 /usr/ucb/basename, as `basename /' outputs an empty line.m4_defun([_AS_BASENAME_PREPARE],[if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basenameelse as_basename=falsefi])# _AS_BASENAME_PREPARE# _AS_EXPR_PREPARE# ----------------# Some expr work properly (i.e. compute and issue the right result),# but exit with failure. When a fall back to expr (as in AS_DIRNAME)# is provided, you get twice the result. Prevent this.m4_defun([_AS_EXPR_PREPARE],[if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=exprelse as_expr=falsefi])# _AS_EXPR_PREPARE# _AS_LINENO_WORKS# ---------------# Succeed if the currently executing shell supports LINENO.# This macro does not expand to a single shell command, so be careful# when using it. Surrounding the body of this macro with {} would# cause "bash -c '_ASLINENO_WORKS'" to fail (with Bash 2.05, anyway),# but that bug is irrelevant to our use of LINENO.m4_define([_AS_LINENO_WORKS],[ as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" dnl])# _AS_LINENO_PREPARE# ------------------# If LINENO is not supported by the shell, produce a version of this# script where LINENO is hard coded.# Comparing LINENO against _oline_ is not a good solution, since in# the case of embedded executables (such as config.status within# configure) you'd compare LINENO wrt config.status vs. _oline_ vs# configure.m4_define([_AS_LINENO_PREPARE],[AS_REQUIRE([_AS_CR_PREPARE])dnl_AS_LINENO_WORKS || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $[0] in *[[\\/]]* ) as_myself=$[0] ;; *) _AS_PATH_WALK([], [test -r "$as_dir/$[0]" && as_myself=$as_dir/$[0] && break]) ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$[0] fi if test ! -f "$as_myself"; then AS_ERROR([cannot find myself; rerun with an absolute path]) fi case $CONFIG_SHELL in '') _AS_PATH_WALK([/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH], [for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c '_AS_LINENO_WORKS') 2>/dev/null; then AS_UNSET(BASH_ENV) AS_UNSET(ENV) CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$[0]" ${1+"$[@]"} fi;; esac done]);; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\([['$as_cr_digits']]*\)\(.*\)[[$]]LINENO\([[^'$as_cr_alnum'_]]\),\1\2\1\3, t loop s,-$,, s,^[['$as_cr_digits']]*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || AS_ERROR([cannot create $as_me.lineno; rerun with a POSIX shell]) # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit}])# _AS_LINENO_PREPARE# _AS_LN_S_PREPARE# ----------------# Don't use conftest.sym to avoid filename issues on DJGPP, where this# would yield conftest.sym.exe for DJGPP < 2.04. And don't use `conftest'# as base name to avoid prohibiting concurrency (e.g., concurrent# config.statuses).m4_defun([_AS_LN_S_PREPARE],[rm -f conf$$ conf$$.exe conf$$.fileecho >conf$$.fileif ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fielif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=lnelse as_ln_s='cp -p'firm -f conf$$ conf$$.exe conf$$.file])# _AS_LN_S_PREPARE# _AS_PATH_SEPARATOR_PREPARE# --------------------------# Compute the path separator.m4_defun([_AS_PATH_SEPARATOR_PREPARE],[# The user is always right.if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.shfi])# _AS_PATH_SEPARATOR_PREPARE# _AS_PATH_WALK([PATH = $PATH], BODY)# -----------------------------------# Walk through PATH running BODY for each `as_dir'.## Still very private as its interface looks quite bad.## `$as_dummy' forces splitting on constant user-supplied paths.# POSIX.2 field splitting is done only on the result of word# expansions, not on literal text. This closes a longstanding sh security# hole. Optimize it away when not needed, i.e., if there are no literal# path separators.m4_define([_AS_PATH_WALK],[AS_REQUIRE([_AS_PATH_SEPARATOR_PREPARE])dnlas_save_IFS=$IFS; IFS=$PATH_SEPARATORm4_bmatch([$1], [[:;]],[as_dummy="$1"for as_dir in $as_dummy],[for as_dir in m4_default([$1], [$PATH])])do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $2done])# AS_LN_S(FILE, LINK)# -------------------# FIXME: Should we add the glue code to handle properly relative symlinks# simulated with `ln' or `cp'?m4_defun([AS_LN_S],[AS_REQUIRE([_AS_LN_S_PREPARE])dnl$as_ln_s $1 $2])# _AS_MKDIR_P_PREPARE# -------------------m4_defun([_AS_MKDIR_P_PREPARE],[if mkdir -p . 2>/dev/null; then as_mkdir_p=:else test -d ./-p && rmdir ./-p as_mkdir_p=falsefi])# _AS_MKDIR_P_PREPARE# AS_MKDIR_P(PATH)# ----------------# Emulate `mkdir -p' with plain `mkdir'.m4_define([AS_MKDIR_P],[AS_REQUIRE([_$0_PREPARE])dnl{ if $as_mkdir_p; then mkdir -p $1 else as_dir=$1 as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`AS_DIRNAME("$as_dir")` done test ! -n "$as_dirs" || mkdir $as_dirs fi || AS_ERROR([cannot create directory $1]); }])# AS_MKDIR_P# _AS_BROKEN_TEST_PREPARE# -----------------------# FIXME: This does not work and breaks way too many things.## Find out ahead of time whether we want test -x (preferred) or test -f# to check whether a file is executable.m4_defun([_AS_BROKEN_TEST_PREPARE],[# Find out how to test for executable files. Don't use a zero-byte file,# as systems may use methods other than mode bits to determine executability.cat >conf$$.file <<_ASEOF@%:@! /bin/shexit 0_ASEOFchmod +x conf$$.fileif test -x conf$$.file >/dev/null 2>&1; then as_executable_p="test -x"elif test -f conf$$.file >/dev/null 2>&1; then as_executable_p="test -f"else AS_ERROR([cannot check whether a file is executable on this system])firm -f conf$$.file])# _AS_BROKEN_TEST_PREPARE# _AS_TEST_PREPARE# ----------------m4_defun([_AS_TEST_PREPARE],[as_executable_p="test -f"])# _AS_BROKEN_TEST_PREPARE# AS_SET_CATFILE(VAR, DIR-NAME, FILE-NAME)# ----------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -