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

📄 m4sh.m4

📁 MSYS在windows下模拟了一个类unix的终端
💻 M4
📖 第 1 页 / 共 3 页
字号:
    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## ------------------ #### 5. Common idioms.  #### ------------------ ### This section is lexicographically sorted.# AS_BOX(MESSAGE, [FRAME-CHARACTER = `-'])# ----------------------------------------# Output MESSAGE, a single line text, framed with FRAME-CHARACTER (which# must not be `/').m4_define([AS_BOX],[AS_LITERAL_IF([$1],               [_AS_BOX_LITERAL($@)],               [_AS_BOX_INDIR($@)])])# _AS_BOX_LITERAL(MESSAGE, [FRAME-CHARACTER = `-'])# -------------------------------------------------m4_define([_AS_BOX_LITERAL],[cat <<\_ASBOXm4_text_box($@)_ASBOX])# _AS_BOX_INDIR(MESSAGE, [FRAME-CHARACTER = `-'])# -----------------------------------------------m4_define([_AS_BOX_INDIR],[sed 'h;s/./m4_default([$2], [-])/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX@%:@@%:@ $1 @%:@@%:@_ASBOX])# AS_LITERAL_IF(EXPRESSION, IF-LITERAL, IF-NOT-LITERAL)# -----------------------------------------------------# If EXPRESSION has shell indirections ($var or `expr`), expand# IF-INDIR, else IF-NOT-INDIR.# This is an *approximation*: for instance EXPRESSION = `\$' is# definitely a literal, but will not be recognized as such.m4_define([AS_LITERAL_IF],[m4_bmatch([$1], [[`$]],           [$3], [$2])])# AS_TMPDIR(PREFIX, [DIRECTORY = $TMPDIR [= /tmp]])# -------------------------------------------------# Create as safely as possible a temporary directory in DIRECTORY# which name is inspired by PREFIX (should be 2-4 chars max), and set# trap mechanisms to remove it.m4_define([AS_TMPDIR],[# Create a temporary directory, and hook for its removal unless debugging.$debug ||{  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0  trap 'AS_EXIT([1])' 1 2 13 15}# Create a (secure) tmp directory for tmp files.m4_if([$2], [], [: ${TMPDIR=/tmp}]){  tmp=`(umask 077 && mktemp -d -q "m4_default([$2], [$TMPDIR])/$1XXXXXX") 2>/dev/null` &&  test -n "$tmp" && test -d "$tmp"}  ||{  tmp=m4_default([$2], [$TMPDIR])/$1$$-$RANDOM  (umask 077 && mkdir $tmp)} ||{   echo "$me: cannot create a temporary directory in m4_default([$2], [$TMPDIR])" >&2   AS_EXIT}dnl])# AS_TMPDIR# AS_UNAME# --------# Try to describe this machine.  Meant for logs.m4_define([AS_UNAME],[{cat <<_ASUNAMEm4_text_box([Platform.])hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`uname -m = `(uname -m) 2>/dev/null || echo unknown`uname -r = `(uname -r) 2>/dev/null || echo unknown`uname -s = `(uname -s) 2>/dev/null || echo unknown`uname -v = `(uname -v) 2>/dev/null || echo unknown`/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`_ASUNAME_AS_PATH_WALK([$PATH], [echo "PATH: $as_dir"])}])## ------------------------------------ #### Common m4/sh character translation.  #### ------------------------------------ ### The point of this section is to provide high level macros comparable# to m4's `translit' primitive, but m4/sh polymorphic.# Transliteration of literal strings should be handled by m4, while# shell variables' content will be translated at runtime (tr or sed).# _AS_CR_PREPARE# --------------# Output variables defining common character ranges.# See m4_cr_letters etc.m4_defun([_AS_CR_PREPARE],[# Avoid depending upon Character Ranges.as_cr_letters='abcdefghijklmnopqrstuvwxyz'as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'as_cr_Letters=$as_cr_letters$as_cr_LETTERSas_cr_digits='0123456789'as_cr_alnum=$as_cr_Letters$as_cr_digits])# _AS_TR_SH_PREPARE# -----------------m4_defun([_AS_TR_SH_PREPARE],[AS_REQUIRE([_AS_CR_PREPARE])dnl# Sed expression to map a string onto a valid variable name.as_tr_sh="sed y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g"])# AS_TR_SH(EXPRESSION)# --------------------# Transform EXPRESSION into a valid shell variable name.# sh/m4 polymorphic.# Be sure to update the definition of `$as_tr_sh' if you change this.m4_defun([AS_TR_SH],[AS_REQUIRE([_$0_PREPARE])dnlAS_LITERAL_IF([$1],              [m4_bpatsubst(m4_translit([[$1]], [*+], [pp]),                            [[^a-zA-Z0-9_]], [_])],              [`echo "$1" | $as_tr_sh`])])# _AS_TR_CPP_PREPARE# ------------------m4_defun([_AS_TR_CPP_PREPARE],[AS_REQUIRE([_AS_CR_PREPARE])dnl# Sed expression to map a string onto a valid CPP name.as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[[^_$as_cr_alnum]]%_%g"])# AS_TR_CPP(EXPRESSION)# ---------------------# Map EXPRESSION to an upper case string which is valid as rhs for a# `#define'.  sh/m4 polymorphic.  Be sure to update the definition# of `$as_tr_cpp' if you change this.m4_defun([AS_TR_CPP],[AS_REQUIRE([_$0_PREPARE])dnlAS_LITERAL_IF([$1],              [m4_bpatsubst(m4_translit([[$1]],                                        [*abcdefghijklmnopqrstuvwxyz],                                        [PABCDEFGHIJKLMNOPQRSTUVWXYZ]),                           [[^A-Z0-9_]], [_])],              [`echo "$1" | $as_tr_cpp`])])# _AS_TR_PREPARE# --------------m4_defun([_AS_TR_PREPARE],[AS_REQUIRE([_AS_TR_SH_PREPARE])dnlAS_REQUIRE([_AS_TR_CPP_PREPARE])dnl])## --------------------------------------------------- #### Common m4/sh handling of variables (indirections).  #### --------------------------------------------------- ### The purpose of this section is to provide a uniform API for# reading/setting sh variables with or without indirection.# Typically, one can write#   AS_VAR_SET(var, val)# or#   AS_VAR_SET(as_$var, val)# and expect the right thing to happen.# AS_VAR_SET(VARIABLE, VALUE)# ---------------------------# Set the VALUE of the shell VARIABLE.# If the variable contains indirections (e.g. `ac_cv_func_$ac_func')# perform whenever possible at m4 level, otherwise sh level.m4_define([AS_VAR_SET],[AS_LITERAL_IF([$1],               [$1=$2],               [eval "$1=$2"])])# AS_VAR_GET(VARIABLE)# --------------------# Get the value of the shell VARIABLE.# Evaluates to $VARIABLE if there are no indirection in VARIABLE,# else into the appropriate `eval' sequence.m4_define([AS_VAR_GET],[AS_LITERAL_IF([$1],               [$$1],               [`eval echo '${'m4_bpatsubst($1, [[\\`]], [\\\&])'}'`])])# AS_VAR_TEST_SET(VARIABLE)# -------------------------# Expands into the `test' expression which is true if VARIABLE# is set.  Polymorphic.  Should be dnl'ed.m4_define([AS_VAR_TEST_SET],[AS_LITERAL_IF([$1],               [test "${$1+set}" = set],               [eval "test \"\${$1+set}\" = set"])])# AS_VAR_SET_IF(VARIABLE, IF-TRUE, IF-FALSE)# ------------------------------------------# Implement a shell `if-then-else' depending whether VARIABLE is set# or not.  Polymorphic.m4_define([AS_VAR_SET_IF],[AS_IF([AS_VAR_TEST_SET([$1])], [$2], [$3])])# AS_VAR_PUSHDEF and AS_VAR_POPDEF# --------------------------------## Sometimes we may have to handle literals (e.g. `stdlib.h'), while at# other moments, the same code may have to get the value from a# variable (e.g., `ac_header').  To have a uniform handling of both# cases, when a new value is about to be processed, declare a local# variable, e.g.:##   AS_VAR_PUSHDEF([header], [ac_cv_header_$1])## and then in the body of the macro, use `header' as is.  It is of# first importance to use `AS_VAR_*' to access this variable.  Don't# quote its name: it must be used right away by m4.## If the value `$1' was a literal (e.g. `stdlib.h'), then `header' is# in fact the value `ac_cv_header_stdlib_h'.  If `$1' was indirect,# then `header's value in m4 is in fact `$ac_header', the shell# variable that holds all of the magic to get the expansion right.## At the end of the block, free the variable with##   AS_VAR_POPDEF([header])# AS_VAR_PUSHDEF(VARNAME, VALUE)# ------------------------------# Define the m4 macro VARNAME to an accessor to the shell variable# named VALUE.  VALUE does not need to be a valid shell variable name:# the transliteration is handled here.  To be dnl'ed.m4_define([AS_VAR_PUSHDEF],[AS_LITERAL_IF([$2],               [m4_pushdef([$1], [AS_TR_SH($2)])],               [as_$1=AS_TR_SH($2)m4_pushdef([$1], [$as_[$1]])])])# AS_VAR_POPDEF(VARNAME)# ----------------------# Free the shell variable accessor VARNAME.  To be dnl'ed.m4_define([AS_VAR_POPDEF],[m4_popdef([$1])])## ----------------- #### Setting M4sh up.  #### ----------------- ### AS_INIT# -------m4_define([AS_INIT],[m4_init# Forbidden tokens and exceptions.m4_pattern_forbid([^_?AS_])# Bangshe and minimal initialization.m4_divert_text([BINSH], [@%:@! /bin/sh])m4_divert_text([M4SH-INIT], [AS_SHELL_SANITIZE])# Let's go!m4_wrap([m4_divert_pop([BODY])[]])m4_divert_push([BODY])[]dnl])

⌨️ 快捷键说明

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