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

📄 general.m4

📁 autoconf是一个产生可以自动配置源代码包
💻 M4
📖 第 1 页 / 共 4 页
字号:
# This file is part of Autoconf.                          -*- Autoconf -*-# M4 macros used in building test suites.# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA# 02110-1301, 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.# _m4_divert(DIVERSION-NAME)# --------------------------# Convert a diversion name into its number.  Otherwise, return# DIVERSION-NAME which is supposed to be an actual diversion number.# Of course it would be nicer to use m4_case here, instead of zillions# of little macros, but it then takes twice longer to run `autoconf'!## From M4sugar:#    -1. KILL# 10000. GROW## From M4sh:#    0. BINSH#    1. HEADER-REVISION#    2. HEADER-COMMENT#    3. HEADER-COPYRIGHT#    4. M4SH-SANITIZE#    5. M4SH-INIT# 1000. BODY## Defined below:#  - DEFAULTS#    Overall initialization, value of $at_groups_all.#  - PARSE_ARGS_BEGIN#    Setup defaults required for option processing.#  - PARSE_ARGS#    Option processing.  After AT_INIT, user options can be entered here as#    cases of a case statement.#  - PARSE_ARGS_END#    Finish up the option processing.##  - HELP#    Start printing the help message.#  - HELP_MODES#    Modes help text.  Additional modes can be appended as self-contained#    cat'd here-docs as generated by AS_HELP_STRING.#  - HELP_TUNING#    Tuning help text.  Additional tuning options can be appended as#    self-contained cat'd here-docs as generated by AS_HELP_STRING.#  - HELP_OTHER#    User help can be appended to this as self-contained cat'd here-docs.#  - HELP_END#    Finish up the help texts.##  - VERSION#    Head of the handling of --version.#  - VERSION_NOTICES#    Copyright notices for --version.#  - VERSION_END#    Tail of the handling of --version.##  - PREPARE_TESTS#    Like DEFAULTS but run after argument processing for purposes of#    optimization.  Do anything else that needs to be done to prepare for#    tests.  Sets up verbose and log file descriptors.  Sets and logs PATH.#  - TESTS#    The core of the test suite.#  - TESTS_END#    tail of the core for;case, overall wrap up, generation of debugging#    scripts and statistics.#  - TEST_SCRIPT#    The code for each test, the ``normal'' diversionm4_define([_m4_divert(DEFAULTS)],           100)m4_define([_m4_divert(PARSE_ARGS_BEGIN)],   200)m4_define([_m4_divert(PARSE_ARGS)],         201)m4_define([_m4_divert(PARSE_ARGS_END)],     202)m4_define([_m4_divert(HELP)],               300)m4_define([_m4_divert(HELP_MODES)],         301)m4_define([_m4_divert(HELP_TUNING)],        302)m4_define([_m4_divert(HELP_OTHER)],         303)m4_define([_m4_divert(HELP_END)],           304)m4_define([_m4_divert(VERSION)],            350)m4_define([_m4_divert(VERSION_NOTICES)],    351)m4_define([_m4_divert(VERSION_END)],        352)m4_define([_m4_divert(PREPARE_TESTS)],      400)m4_define([_m4_divert(TESTS)],              401)m4_define([_m4_divert(TESTS_END)],          402)m4_define([_m4_divert(TEST_SCRIPT)],        403)# AT_LINE# -------# Return the current file sans directory, a colon, and the current# line.  Be sure to return a _quoted_ file name, 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_NORMALIZE_TEST_GROUP_NUMBER(SHELL-VAR)# ------------------------------------------# Normalize SHELL-VAR so that its value has the same number of digits as# all the other test group numbers.m4_define([_AT_NORMALIZE_TEST_GROUP_NUMBER],[  while :; do    case $$1 in #(    $at_format*) break;;    esac    $1=0$$1  done])# _AT_CREATE_DEBUGGING_SCRIPT# ---------------------------# Create the debugging script $at_group_dir/run which will reproduce the# current test group.m4_define([_AT_CREATE_DEBUGGING_SCRIPT],[	  {	    echo "#! /bin/sh"	    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$[@]"}'\''='\''"$[@]"'\'''	    echo "cd '$at_dir'"	    echo 'exec ${CONFIG_SHELL-'"$SHELL"'}' "$[0]" \	         '-v -d' "$at_debug_args" "$at_group" '${1+"$[@]"}'	    echo 'exit 1'	  } >$at_group_dir/run	  chmod +x $at_group_dir/run])# _AT_CREATE_DEBUGGING_SCRIPT# 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)m4_define([AT_groups_all], [])m4_define([AT_help_all], [])AS_INITAT_COPYRIGHT([Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free SoftwareFoundation, Inc.This test suite is free software; the Free Software Foundation givesunlimited permission to copy, distribute and modify it.])AS_PREPAREm4_divert_push([DEFAULTS])dnlSHELL=${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# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:: ${at_top_build_prefix=$at_top_builddir}# atconfig delivers names 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_build_prefix  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_p=false(times) >/dev/null 2>&1 && at_times_p=:# 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# Display the version message?at_version_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 suite.at_suite_log=$at_dir/$as_me.log# The file containing the location of the last AT_CHECK.at_check_line_file=$at_suite_dir/at-check-line# The file containing the exit status of the last command.at_status_file=$at_suite_dir/at-status# 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_divert_pop([DEFAULTS])dnlm4_wrap([m4_divert_text([DEFAULTS],[# 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 question marks 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_all'])])dnlm4_divert_push([PARSE_ARGS])dnlat_prev=for at_optiondo  # If the previous option needs an argument, assign it.  if test -n "$at_prev"; then    at_option=$at_prev=$at_option    at_prev=  fi  case $at_option in  *=*) at_optarg=`expr "x$at_option" : 'x[[^=]]*=\(.*\)'` ;;  *)   at_optarg= ;;  esac  # Accept the important Cygnus configure options, so we can diagnose typos.  case $at_option in    --help | -h )	at_help_p=:	;;    --list | -l )	at_list_p=:	;;    --version | -V )	at_version_p=:	;;    --clean | -c )	test -d "$at_suite_dir" &&	  find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;	rm -f -r "$at_suite_dir" "$at_suite_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 -x'; at_traceoff='set +x'	;;    [[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]])	at_groups="$at_groups$at_option "	;;    # 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 $at_option |tr -d X-`	at_range=`echo " $at_groups_all " | \	  sed -e 's/^.* \('$at_range_start' \)/\1/'`	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 $at_option |tr -d X-`	at_range=`echo " $at_groups_all " | \	  sed -e 's/\( '$at_range_end'\) .*$/\1/'`	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=`expr $at_option : '\(.*\)-'`	at_range_end=`expr $at_option : '.*-\(.*\)'`	if test $at_range_start -gt $at_range_end; then	  at_tmp=$at_range_end	  at_range_end=$at_range_start	  at_range_start=$at_tmp	fi	at_range=`echo " $at_groups_all " | \	  sed -e 's/^.*\( '$at_range_start' \)/\1/' \	      -e 's/\( '$at_range_end'\) .*$/\1/'`	at_groups="$at_groups$at_range "	;;    # Keywords.    --keywords | -k )	at_prev=--keywords	;;    --keywords=* )	at_groups_selected=$at_help_all

⌨️ 快捷键说明

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