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

📄 general.m4

📁 MSYS在windows下模拟了一个类unix的终端
💻 M4
📖 第 1 页 / 共 2 页
字号:
# This file is part of Autoconf.                          -*- Autoconf -*-# M4 macros used in building test suites.# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.# This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA# 02111-1307, USA.# As a special exception, the Free Software Foundation gives unlimited# permission to copy, distribute and modify the configure scripts that# are the output of Autoconf.  You need not follow the terms of the GNU# General Public License when using or distributing such scripts, even# though portions of the text of Autoconf appear in them.  The GNU# General Public License (GPL) does govern all other use of the material# that constitutes the Autoconf program.## Certain portions of the Autoconf source text are designed to be copied# (in certain cases, depending on the input) into the output of# Autoconf.  We call these the "data" portions.  The rest of the Autoconf# source text consists of comments plus executable code that decides which# of the data portions to output in any given case.  We call these# comments and executable code the "non-data" portions.  Autoconf never# copies any of the non-data portions into its output.## This special exception to the GPL applies to versions of Autoconf# released by the Free Software Foundation.  When you make and# distribute a modified version of Autoconf, you may extend this special# exception to the GPL to apply to your modified version as well, *unless*# your modified version has the potential to copy into its output some# of the text that was the non-data portion of the version that you started# with.  (In other words, unless your change moves or copies text from# the non-data portions to the data portions.)  If your modification has# such potential, you must delete any notice of this special exception# to the GPL from your modified version.# Use of diversions:##  - DEFAULT#    Overall initialization, value of $at_groups_all.#  - OPTIONS#    Option processing#    Be ready to run the tests.#  - TESTS#    The core of the test suite, the ``normal'' diversion.#  - TAIL#    tail of the core for;case, overall wrap up, generation of debugging#    scripts and statistics.m4_define([_m4_divert(DEFAULT)],       5)m4_define([_m4_divert(OPTIONS)],      10)m4_define([_m4_divert(TESTS)],        50)m4_define([_m4_divert(TAIL)],         60)# AT_LINE# -------# Return the current file sans directory, a colon, and the current# line.  Be sure to return a _quoted_ filename, so if, for instance,# the user is lunatic enough to have a file named `dnl' (and I, for# one, love to be brainless and stubborn sometimes), then we return a# quoted name.## Gee, we can't use simply##  m4_bpatsubst(__file__, [^.*/\(.*\)], [[\1]])## since then, since `dnl' doesn't match the pattern, it is returned# with once quotation level less, so you lose!  And since GNU M4# is one of the biggest junk in the whole universe wrt regexp, don't# even think about using `?' or `\?'.  Bah, `*' will do.# Pleeeeeeeease, Gary, provide us with dirname and ERE!m4_define([AT_LINE],[m4_bpatsubst(__file__, [^\(.*/\)*\(.*\)], [[\2]]):__line__])# AT_INIT([TESTSUITE-NAME])# -------------------------# Begin test suite.m4_define([AT_INIT],[m4_pattern_forbid([^_?AT_])m4_define([AT_TESTSUITE_NAME],          m4_defn([AT_PACKAGE_STRING])[ test suite]m4_ifval([$1], [: $1]))m4_define([AT_ordinal], 0)m4_define([AT_banner_ordinal], 0)AS_INITAS_PREPAREm4_divert_push([DEFAULT])dnlAS_PREPARESHELL=${CONFIG_SHELL-/bin/sh}# How were we run?at_cli_args="$[@]"# Load the config file.for at_file in atconfig atlocaldo  test -r $at_file || continue  . ./$at_file || AS_ERROR([invalid content: $at_file])done# atconfig delivers paths relative to the directory the test suite is# in, but the groups themselves are run in testsuite-dir/group-dir.if test -n "$at_top_srcdir"; then  builddir=../..  for at_dir in srcdir top_srcdir top_builddir  do    at_val=AS_VAR_GET(at_$at_dir)    AS_VAR_SET($at_dir, $at_val/../..)  donefi# Not all shells have the 'times' builtin; the subshell is needed to make# sure we discard the 'times: not found' message from the shell.at_times_skip=:(times) >/dev/null 2>&1 && at_times_skip=false# CLI Arguments to pass to the debugging scripts.at_debug_args=# -e sets to trueat_errexit_p=false# Shall we be verbose?at_verbose=:at_quiet=echo# Shall we keep the debug scripts?  Must be `:' when the suite is# run by a debug script, so that the script doesn't remove itself.at_debug_p=false# Display help message?at_help_p=false# List test groups?at_list_p=false# Test groups to runat_groups=# The directory we are in.at_dir=`pwd`# The directory the whole suite works in.# Should be absolutely to let the user `cd' at will.at_suite_dir=$at_dir/$as_me.dir# The file containing the location of the last AT_CHECK.at_check_line_file=$at_suite_dir/at-check-line# The files containing the output of the tested commands.at_stdout=$at_suite_dir/at-stdoutat_stder1=$at_suite_dir/at-stder1at_stderr=$at_suite_dir/at-stderr# The file containing dates.at_times_file=$at_suite_dir/at-timesm4_wrap([m4_divert_text([DEFAULT],[# List of the tested programs.at_tested='m4_ifdef([AT_tested], [AT_tested])'# List of the all the test groups.at_groups_all='AT_groups_all'# As many dots as there are digits in the last test group number.# Used to normalize the test group numbers so that `ls' lists them in# numerical order.at_format='m4_bpatsubst(m4_defn([AT_ordinal]), [.], [.])'# Description of all the test groups.at_help_all=AT_help])])dnlm4_divert([OPTIONS])while test $[@%:@] -gt 0; do  case $[1] in    --help | -h )        at_help_p=:        ;;    --list | -l )        at_list_p=:        ;;    --version | -V )        echo "$as_me (AT_PACKAGE_STRING)"        exit 0        ;;    --clean | -c )        rm -rf $at_suite_dir $as_me.log        exit 0        ;;    --debug | -d )        at_debug_p=:        ;;    --errexit | -e )        at_debug_p=:        at_errexit_p=:        ;;    --verbose | -v )        at_verbose=echo; at_quiet=:        ;;    --trace | -x )        at_traceon='set -vx'; at_traceoff='set +vx'        ;;    [[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]])        at_groups="$at_groups$[1] "        ;;    # Ranges    [[0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-])        at_range_start=`echo $[1] |tr -d '-'`        at_range=`echo " $at_groups_all " | \          sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,'`        at_groups="$at_groups$at_range "        ;;    [-[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]])        at_range_end=`echo $[1] |tr -d '-'`        at_range=`echo " $at_groups_all " | \          sed -e 's, '$at_range_end' .*$, '$at_range_end','`        at_groups="$at_groups$at_range "        ;;    [[0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9]] | \    [[0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9]] | \    [[0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9]] | \    [[0-9][0-9][0-9]-[0-9][0-9][0-9]] | \    [[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]] | \    [[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]] )        at_range_start=`echo $[1] |sed 's,-.*,,'`        at_range_end=`echo $[1] |sed 's,.*-,,'`        # FIXME: Maybe test to make sure start <= end?        at_range=`echo " $at_groups_all " | \          sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,' \              -e 's, '$at_range_end' .*$, '$at_range_end','`        at_groups="$at_groups$at_range "        ;;    # Keywords.    --keywords | -k )        shift        at_groups_selected=$at_help_all        for at_keyword in `IFS=,; set X $[1]; shift; echo ${1+$[@]}`        do          # It is on purpose that we match the test group titles too.          at_groups_selected=`echo "$at_groups_selected" |			      grep -i "^[[^;]]*;[[^;]]*;.*$at_keyword"`        done        at_groups_selected=`echo "$at_groups_selected" | sed 's/;.*//'`	# Smash the end of lines.	at_groups_selected=`echo $at_groups_selected`        at_groups="$at_groups$at_groups_selected "        ;;    *=*)  	at_envvar=`expr "x$[1]" : 'x\([[^=]]*\)='`  	# Reject names that are not valid shell variable names.  	expr "x$at_envvar" : "[.*[^_$as_cr_alnum]]" >/dev/null &&  	  AS_ERROR([invalid variable name: $at_envvar])  	at_value=`expr "x$[1]" : 'x[[^=]]*=\(.*\)'`  	at_value=`echo "$at_value" | sed "s/'/'\\\\\\\\''/g"`  	eval "$at_envvar='$at_value'"  	export $at_envvar	# Propagate to debug scripts.  	at_debug_args="$at_debug_args $[1]"  	;;     *) echo "$as_me: invalid option: $[1]" >&2        echo "Try \`$[0] --help' for more information." >&2        exit 1        ;;  esac  shiftdone# Selected test groups.test -z "$at_groups" && at_groups=$at_groups_all# Help message.if $at_help_p; then  cat <<_ATEOFUsage: $[0] [[OPTION]... [VARIABLE=VALUE]... [TESTS]]Run all the tests, or the selected TESTS, and save a detailed log file.Upon failure, create debugging scripts.You should not change environment variables unless explicitly passedas command line arguments.  Set \`AUTOTEST_PATH' to select the executablesto exercise.  Each relative directory is expanded as build and sourcedirectories relatively to the top level of this distribution.  E.g.,  $ $[0] AUTOTEST_PATH=binpossibly amounts into  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATHOperation modes:  -h, --help     print the help message, then exit  -V, --version  print version number, then exit  -c, --clean    remove all the files this test suite might create and exit  -l, --list     describes all the tests, or the selected TESTSExecution tuning:  -k, --keywords=KEYWORDS                 select the tests matching all the comma separated KEYWORDS                 accumulates  -e, --errexit  abort as soon as a test fails; implies --debug  -v, --verbose  force more detailed output                 default for debugging scripts  -d, --debug    inhibit clean up and debug script creation                 default for debugging scripts  -x, --trace    enable tests shell tracingReport bugs to <AT_PACKAGE_BUGREPORT>._ATEOF  exit 0fi# List of tests.if $at_list_p; then  cat <<_ATEOFAT_TESTSUITE_NAME test groups: NUM: FILENAME:LINE      TEST-GROUP-NAME      KEYWORDS_ATEOF  # "  1 42  45 " => "^(1|42|45);".  at_groups_pattern=`echo "$at_groups" | sed 's/^  *//;s/  *$//;s/  */|/g'`  echo "$at_help_all" |    awk 'BEGIN { FS = ";" }         { if ($[1] !~ /^('"$at_groups_pattern"')$/) next }         { if ($[1]) printf " %3d: %-18s %s\n", $[1], $[2], $[3]           if ($[4]) printf "      %s\n", $[4] } '  exit 0fi# Don't take risks: use only absolute directories in PATH.## For stand-alone test suites, AUTOTEST_PATH is relative to `.'.## For embedded test suites, AUTOTEST_PATH is relative to the top level# of the package.  Then expand it into build/src parts, since users# may create executables in both places.## There might be directories that don't exist, but don't redirect# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.AUTOTEST_PATH=`echo $AUTOTEST_PATH | tr ':' $PATH_SEPARATOR`at_path=_AS_PATH_WALK([$AUTOTEST_PATH $PATH],[case $as_dir in  [[\\/]]* | ?:[[\\/]]* )    at_path=$at_path$PATH_SEPARATOR$as_dir    ;;  * )    if test -z "$at_top_builddir"; then      # Stand-alone test suite.      at_path=$at_path$PATH_SEPARATOR$as_dir    else      # Embedded test suite.      at_path=$at_path$PATH_SEPARATOR$at_top_builddir/$as_dir      at_path=$at_path$PATH_SEPARATOR$at_top_srcdir/$as_dir    fi    ;;esac])# Now build and simplify PATH.PATH=_AS_PATH_WALK([$at_path],[as_dir=`(cd "$as_dir" && pwd) 2>/dev/null`test -d "$as_dir" || continuecase $PATH in                  $as_dir                 | \                  $as_dir$PATH_SEPARATOR* | \  *$PATH_SEPARATOR$as_dir                 | \  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR* ) ;;  '') PATH=$as_dir ;;   *) PATH=$PATH$PATH_SEPARATOR$as_dir ;;esac])export PATH# Setting up the FDs.# 5 is stdout conditioned by verbosity.if test $at_verbose = echo; then  exec 5>&1else  exec 5>/dev/nullfi# 6 is the log file.  To be preserved if `-d'.m4_define([AS_MESSAGE_LOG_FD], [6])if $at_debug_p; then  exec AS_MESSAGE_LOG_FD>/dev/nullelse  exec AS_MESSAGE_LOG_FD>$as_me.logfi# Banners and logs.AS_BOX(m4_defn([AT_TESTSUITE_NAME])[.]){  AS_BOX(m4_defn([AT_TESTSUITE_NAME])[.])  echo  echo "$as_me: command line was:"  echo "  $ $[0] $at_cli_args"  echo  # Try to find a few ChangeLogs in case it might help determining the  # exact version.  Use the relative dir: if the top dir is a symlink,  # find will not follow it (and options to follow the links are not  # portable), which would result in no output here.  if test -n "$at_top_srcdir"; then    AS_BOX([ChangeLogs.])    echo    for at_file in `find "$at_top_srcdir" -name ChangeLog -print`    do      echo "$as_me: $at_file:"      sed 's/^/| /;10q' $at_file      echo    done    AS_UNAME    echo  fi  # Contents of the config files.  for at_file in atconfig atlocal  do    test -r $at_file || continue    echo "$as_me: $at_file:"    sed 's/^/| /' $at_file    echo  done

⌨️ 快捷键说明

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