* tests/atgeneral.m4 (AT_INIT): Include a default case for non

existing tests.
* tests/atspecific.m4 (AT_CONFIGURE_AC, AT_CHECK_ENV)
(AT_CHECK_AUTOUPDATE, AT_CHECK_AU_MACRO): New.
Spread their use.
(AT_CHECK_MACRO): Pass `-W obsolete' to autoconf.
* tests/semantics.at (AC_HAVE_FUNCS): Obsolete, don't check.
* tests/mktest.sh: Create one test file per Autoconf source
file instead of separating syntax/update.
This commit is contained in:
Akim Demaille 2001-01-22 09:03:38 +00:00
parent abad4f0576
commit 1304fbbe0b
15 changed files with 409 additions and 325 deletions

View File

@ -218,6 +218,11 @@ do
case $at_test in
dnl Tests inserted here (TESTS).
m4_divert([TAIL])[]dnl
* )
echo $as_me: no such test: $at_test
continue
;;
esac
case $at_test in
banner-*) ;;

View File

@ -22,8 +22,9 @@ AUTOMAKE_OPTIONS = gnits
SUITE = suite.at \
m4sugar.at m4sh.at \
base.at tools.at torture.at compile.at semantics.at syntax.at \
update.at foreign.at
base.at tools.at torture.at compile.at semantics.at \
acgeneral.at acspecific.at acfunctions.at aclang.at acheaders.at
foreign.at
# We don't actually distribute the testsuite, since one only
# needs m4 to build it, m4 being required anyway to install Autoconf.
@ -45,13 +46,25 @@ testsuite: $(top_srcdir)/m4sugar.m4 $(top_srcdir)/m4sh.m4 \
# The files which contains macro we check for syntax.
MACRO_FILES = ../acgeneral.m4 ../acspecific.m4 \
../acfunctions.m4 ../aclang.m4 ../acheaders.m4
MACRO_FILES = $(top_srcdir)/acgeneral.m4 \
$(top_srcdir)/acspecific.m4 \
$(top_srcdir)/acfunctions.m4 \
$(top_srcdir)/aclang.m4 \
$(top_srcdir)/acheaders.m4
syntax.at: mktests.sh $(MACRO_FILES)
acgeneral.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
update.at: mktests.sh $(MACRO_FILES)
acspecific.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
acfunctions.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
aclang.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
acheaders.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
CLEANFILES = debug-*.sh macro configure configure.in configure.ac \

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Makefile.in generated automatically by automake 1.4c from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,7 +11,6 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
@ -32,8 +32,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
@ -46,9 +44,10 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_FLAG =
transform = @program_transform_name@
NORMAL_INSTALL = :
@ -57,6 +56,8 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
@SET_MAKE@
AWK = @AWK@
EXPR = @EXPR@
HELP2MAN = @HELP2MAN@
@ -65,41 +66,54 @@ PERL = @PERL@
PERLSCRIPTS = @PERLSCRIPTS@
standards_texi = @standards_texi@
AUTOMAKE_OPTIONS = gnits
SUITE = suite.at m4sugar.at m4sh.at base.at tools.at torture.at compile.at semantics.at syntax.at update.at foreign.at
SUITE = suite.at \
m4sugar.at m4sh.at \
base.at tools.at torture.at compile.at semantics.at \
acgeneral.at acspecific.at acfunctions.at aclang.at acheaders.at
# We don't actually distribute the testsuite, since one only
# needs m4 to build it, m4 being required anyway to install Autoconf.
EXTRA_DIST = README atgeneral.m4 atspecific.m4 aclocal.m4 $(SUITE) mktests.sh
EXTRA_DIST = README \
atgeneral.m4 atspecific.m4 aclocal.m4 \
$(SUITE) mktests.sh
# The files which contains macro we check for syntax.
MACRO_FILES = ../acgeneral.m4 ../acspecific.m4 ../acfunctions.m4 ../aclang.m4 ../acheaders.m4
MACRO_FILES = $(top_srcdir)/acgeneral.m4 \
$(top_srcdir)/acspecific.m4 \
$(top_srcdir)/acfunctions.m4 \
$(top_srcdir)/aclang.m4 \
$(top_srcdir)/acheaders.m4
CLEANFILES = debug-*.sh macro configure configure.in configure.ac config.status config.cache config.log config.h.in config.h stderr stdout empty
CLEANFILES = debug-*.sh macro configure configure.in configure.ac \
config.status config.cache config.log config.h.in config.h \
stderr stdout empty
DISTCLEANFILES = atconfig testsuite
subdir = tests
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES = atconfig
DIST_SOURCES =
DIST_COMMON = README Makefile.am Makefile.in atconfig.in
PACKAGE = @PACKAGE@
VERSION = @VERSION@
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
@ -111,22 +125,16 @@ TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = tests
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits tests/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
info-am:
@ -152,7 +160,7 @@ uninstall: uninstall-am
all-am: Makefile
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
installdirs:
@ -167,6 +175,7 @@ distclean-generic:
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
-rm -f Makefile.in
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
@ -188,10 +197,11 @@ maintainer-clean: maintainer-clean-am
.PHONY: tags distdir info-am info dvi-am dvi check-local check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
all-redirect all-am all install-strip installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
foreign.at
check-local: atconfig testsuite
$(SHELL) testsuite
@ -205,10 +215,19 @@ testsuite: $(top_srcdir)/m4sugar.m4 $(top_srcdir)/m4sh.m4 \
chmod +x $@-tmp
mv $@-tmp $@
syntax.at: mktests.sh $(MACRO_FILES)
acgeneral.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
update.at: mktests.sh $(MACRO_FILES)
acspecific.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
acfunctions.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
aclang.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
acheaders.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
maintainer-check: maintainer-check-posix maintainer-check-c++

34
tests/acfunctions.at Normal file
View File

@ -0,0 +1,34 @@
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Testing acfunctions macros.])
# Modern macros.
AT_CHECK_MACRO([AC_FUNC_ALLOCA])
AT_CHECK_MACRO([AC_FUNC_CHOWN])
AT_CHECK_MACRO([AC_FUNC_CLOSEDIR_VOID])
AT_CHECK_MACRO([AC_FUNC_ERROR_AT_LINE])
AT_CHECK_MACRO([AC_FUNC_FNMATCH])
AT_CHECK_MACRO([AC_FUNC_FSEEKO])
AT_CHECK_MACRO([AC_FUNC_GETGROUPS])
AT_CHECK_MACRO([AC_FUNC_GETLOADAVG])
AT_CHECK_MACRO([AC_FUNC_GETMNTENT])
AT_CHECK_MACRO([AC_FUNC_GETPGRP])
AT_CHECK_MACRO([AC_FUNC_MALLOC])
AT_CHECK_MACRO([AC_FUNC_MEMCMP])
AT_CHECK_MACRO([AC_FUNC_MKTIME])
AT_CHECK_MACRO([AC_FUNC_MMAP])
AT_CHECK_MACRO([AC_FUNC_OBSTACK])
AT_CHECK_MACRO([AC_FUNC_SELECT_ARGTYPES])
AT_CHECK_MACRO([AC_FUNC_SETPGRP])
AT_CHECK_MACRO([AC_FUNC_SETVBUF_REVERSED])
AT_CHECK_MACRO([AC_FUNC_STAT])
AT_CHECK_MACRO([AC_FUNC_STRCOLL])
AT_CHECK_MACRO([AC_FUNC_STRERROR_R])
AT_CHECK_MACRO([AC_FUNC_STRFTIME])
AT_CHECK_MACRO([AC_FUNC_STRTOD])
AT_CHECK_MACRO([AC_FUNC_UTIME_NULL])
AT_CHECK_MACRO([AC_FUNC_VFORK])
AT_CHECK_MACRO([AC_FUNC_VPRINTF])
AT_CHECK_MACRO([AC_FUNC_WAIT3])
# Obsolete macros.

22
tests/acgeneral.at Normal file
View File

@ -0,0 +1,22 @@
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Testing acgeneral macros.])
# Modern macros.
AT_CHECK_MACRO([AC_ARG_ENABLE])
AT_CHECK_MACRO([AC_ARG_PROGRAM])
AT_CHECK_MACRO([AC_ARG_WITH])
AT_CHECK_MACRO([AC_CANONICAL_TARGET])
AT_CHECK_MACRO([AC_EGREP_CPP])
AT_CHECK_MACRO([AC_EGREP_HEADER])
AT_CHECK_MACRO([AC_PREFIX_DEFAULT])
# Obsolete macros.
AT_CHECK_AU_MACRO([AC_CHECKING])
AT_CHECK_AU_MACRO([AC_CHECK_TOOL_PREFIX])
AT_CHECK_AU_MACRO([AC_COMPILE_CHECK])
AT_CHECK_AU_MACRO([AC_ENABLE])
AT_CHECK_AU_MACRO([AC_HAVE_LIBRARY])
AT_CHECK_AU_MACRO([AC_OUTPUT_COMMANDS])
AT_CHECK_AU_MACRO([AC_VALIDATE_CACHED_SYSTEM_TUPLE])
AT_CHECK_AU_MACRO([AC_WITH])

14
tests/acheaders.at Normal file
View File

@ -0,0 +1,14 @@
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Testing acheaders macros.])
# Modern macros.
AT_CHECK_MACRO([AC_HEADER_MAJOR])
AT_CHECK_MACRO([AC_HEADER_STAT])
AT_CHECK_MACRO([AC_HEADER_TIOCGWINSZ])
# Obsolete macros.
AT_CHECK_AU_MACRO([AC_DIR_HEADER])
AT_CHECK_AU_MACRO([AC_MEMORY_H])
AT_CHECK_AU_MACRO([AC_UNISTD_H])
AT_CHECK_AU_MACRO([AC_USG])

23
tests/aclang.at Normal file
View File

@ -0,0 +1,23 @@
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Testing aclang macros.])
# Modern macros.
AT_CHECK_MACRO([AC_C_BIGENDIAN])
AT_CHECK_MACRO([AC_C_CHAR_UNSIGNED])
AT_CHECK_MACRO([AC_C_LONG_DOUBLE])
AT_CHECK_MACRO([AC_C_PROTOTYPES])
AT_CHECK_MACRO([AC_C_STRINGIZE])
AT_CHECK_MACRO([AC_F77_WRAPPERS])
AT_CHECK_MACRO([AC_NO_EXECUTABLES])
AT_CHECK_MACRO([AC_PROG_CC_C_O])
AT_CHECK_MACRO([AC_PROG_F77_C_O])
AT_CHECK_MACRO([AC_PROG_GCC_TRADITIONAL])
AT_CHECK_MACRO([AC_REQUIRE_CPP])
# Obsolete macros.
AT_CHECK_AU_MACRO([AC_C_CROSS])
AT_CHECK_AU_MACRO([AC_LANG_C])
AT_CHECK_AU_MACRO([AC_LANG_CPLUSPLUS])
AT_CHECK_AU_MACRO([AC_LANG_FORTRAN77])
AT_CHECK_AU_MACRO([AC_LANG_SAVE])

40
tests/acspecific.at Normal file
View File

@ -0,0 +1,40 @@
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Testing acspecific macros.])
# Modern macros.
AT_CHECK_MACRO([AC_AIX])
AT_CHECK_MACRO([AC_DECL_SYS_SIGLIST])
AT_CHECK_MACRO([AC_ISC_POSIX])
AT_CHECK_MACRO([AC_MINIX])
AT_CHECK_MACRO([AC_PROG_AWK])
AT_CHECK_MACRO([AC_PROG_INSTALL])
AT_CHECK_MACRO([AC_PROG_LEX])
AT_CHECK_MACRO([AC_PROG_LN_S])
AT_CHECK_MACRO([AC_PROG_MAKE_SET])
AT_CHECK_MACRO([AC_PROG_RANLIB])
AT_CHECK_MACRO([AC_PROG_YACC])
AT_CHECK_MACRO([AC_STRUCT_ST_BLOCKS])
AT_CHECK_MACRO([AC_STRUCT_TIMEZONE])
AT_CHECK_MACRO([AC_SYS_INTERPRETER])
AT_CHECK_MACRO([AC_SYS_LARGEFILE])
AT_CHECK_MACRO([AC_SYS_LONG_FILE_NAMES])
AT_CHECK_MACRO([AC_SYS_RESTARTABLE_SYSCALLS])
AT_CHECK_MACRO([AC_TYPE_MODE_T])
AT_CHECK_MACRO([AC_TYPE_OFF_T])
AT_CHECK_MACRO([AC_TYPE_SIGNAL])
# Obsolete macros.
AT_CHECK_AU_MACRO([AC_ARG_ARRAY])
AT_CHECK_AU_MACRO([AC_DECL_YYTEXT])
AT_CHECK_AU_MACRO([AC_DYNIX_SEQ])
AT_CHECK_AU_MACRO([AC_HAVE_POUNDBANG])
AT_CHECK_AU_MACRO([AC_INT_16_BITS])
AT_CHECK_AU_MACRO([AC_IRIX_SUN])
AT_CHECK_AU_MACRO([AC_LONG_64_BITS])
AT_CHECK_AU_MACRO([AC_RSH])
AT_CHECK_AU_MACRO([AC_SCO_INTL])
AT_CHECK_AU_MACRO([AC_STRUCT_ST_BLKSIZE])
AT_CHECK_AU_MACRO([AC_STRUCT_ST_RDEV])
AT_CHECK_AU_MACRO([AC_XENIX_DIR])
AT_CHECK_AU_MACRO([AM_TYPE_PTRDIFF_T])

View File

@ -218,6 +218,11 @@ do
case $at_test in
dnl Tests inserted here (TESTS).
m4_divert([TAIL])[]dnl
* )
echo $as_me: no such test: $at_test
continue
;;
esac
case $at_test in
banner-*) ;;

View File

@ -22,6 +22,23 @@ include(atgeneral.m4) -*- Autoconf -*-
## ---------------------------------------- ##
# AT_CONFIGURE_AC(BODY)
# ---------------------
# Create a full configure.ac running BODY, with a config header set up,
# AC_OUTPUT, and environement checking hooks.
m4_define([AT_CONFIGURE_AC],
[AT_CLEANUP_FILES(env-after state*)dnl
AT_DATA([configure.ac],
[AC_INIT
AC_CONFIG_AUX_DIR($top_srcdir)
AC_CONFIG_HEADER(config.h:config.hin)
AC_STATE_SAVE(before)
$1
AC_STATE_SAVE(after)
AC_OUTPUT
])])
# AT_CHECK_AUTOCONF(FLAGS, [EXIT-STATUS = 0], STDOUT, STDERR)
# -----------------------------------------------------------
# Also remove `configure.in', just in case one remained from a previous
@ -55,33 +72,14 @@ AT_CHECK([top_srcdir=$top_srcdir ./configure $1],
[test $at_verbose = echo && echo "$srcdir/AT_LINE: config.log" && cat config.log])])
# _AT_CHECK_AC_MACRO(AC-BODY, PRE-TESTS)
# --------------------------------------
# Create a minimalist configure.ac running the macro named
# NAME-OF-THE-MACRO, check that autoconf runs on that script,
# and that the shell runs correctly the configure.
# TOP_SRCDIR is needed to set the auxdir (some macros need `install-sh',
# `config.guess' etc.).
m4_define([_AT_CHECK_AC_MACRO],
[dnl Produce the configure.ac
AT_CLEANUP_FILES(env-after state*)dnl
AT_DATA([configure.ac],
[AC_INIT
AC_CONFIG_AUX_DIR($top_srcdir)
AC_CONFIG_HEADER(config.h:config.hin)
AC_STATE_SAVE(before)
$1
AC_STATE_SAVE(after)
AC_OUTPUT
])
$2
AT_CHECK_AUTOCONF
AT_CHECK_AUTOHEADER
AT_CHECK_CONFIGURE
dnl Some tests might exit prematurely when they find a problem, in
dnl which case `env-after' is probably missing. Don't check it then.
if test -f state-env.before -a -f state-env.after; then
# AT_CHECK_ENV
# ------------
# Check that the full configure run remained in its variable name space,
# and cleaned up tmp files.
# me tests might exit prematurely when they find a problem, in
# which case `env-after' is probably missing. Don't check it then.
m4_define([AT_CHECK_ENV],
[if test -f state-env.before -a -f state-env.after; then
mv -f state-env.before expout
AT_CHECK([cat state-env.after], 0, expout)
fi
@ -89,42 +87,7 @@ if test -f state-ls.before -a -f state-ls.after; then
mv -f state-ls.before expout
AT_CHECK([cat state-ls.after], 0, expout)
fi
])# _AT_CHECK_AC_MACRO
# AT_CHECK_MACRO(NAME-OF-THE-MACRO, [MACRO-USE], [ADDITIONAL-CMDS])
# -----------------------------------------------------------------
# Create a minimalist configure.ac running the macro named
# NAME-OF-THE-MACRO, check that autoconf runs on that script,
# and that the shell runs correctly the configure.
# TOP_SRCDIR is needed to set the auxdir (some macros need `install-sh',
# `config.guess' etc.).
m4_define([AT_CHECK_MACRO],
[AT_SETUP([$1])
_AT_CHECK_AC_MACRO([m4_default([$2], [$1])])
$3
AT_CLEANUP()dnl
])# AT_CHECK_MACRO
# AT_CHECK_UPDATE(NAME-OF-THE-MACRO)
# ----------------------------------
# Create a minimalist configure.ac running the macro named
# NAME-OF-THE-MACRO, autoupdate this script, check that autoconf runs
# on that script, and that the shell runs correctly the configure.
# TOP_SRCDIR is needed to set the auxdir (some macros need
# `install-sh', `config.guess' etc.).
m4_define([AT_CHECK_UPDATE],
[AT_SETUP([autoupdating $1])
_AT_CHECK_AC_MACRO([$1],
[AT_CHECK([autoupdate --autoconf-dir $at_top_srcdir], 0,
[], [autoupdate: `configure.ac' is updated
])])
AT_CLEANUP()dnl
])# AT_CHECK_UPDATE
])
# AT_CHECK_DEFINES(CONTENT)
@ -136,3 +99,84 @@ AT_CLEANUP()dnl
m4_define([AT_CHECK_DEFINES],
[AT_CHECK([[fgrep '#' config.h |
egrep -v 'STDC_HEADERS|STDLIB|INTTYPES|MEMORY|STRING|UNISTD']],, [$1])])
# AT_CHECK_AUTOUPDATE
# -------------------
m4_define([AT_CHECK_AUTOUPDATE],
[AT_CHECK([autoupdate --autoconf-dir $at_top_srcdir], 0,
[], [autoupdate: `configure.ac' is updated
])])
# _AT_CHECK_AC_MACRO(AC-BODY, PRE-TESTS)
# --------------------------------------
# Create a minimalist configure.ac running the macro named
# NAME-OF-THE-MACRO, check that autoconf runs on that script,
# and that the shell runs correctly the configure.
# TOP_SRCDIR is needed to set the auxdir (some macros need `install-sh',
# `config.guess' etc.).
m4_define([_AT_CHECK_AC_MACRO],
[AT_CONFIGURE_AC([$1])
$2
AT_CHECK_AUTOCONF
AT_CHECK_AUTOHEADER
AT_CHECK_CONFIGURE
AT_CHECK_ENV
])# _AT_CHECK_AC_MACRO
# AT_CHECK_MACRO(MACRO, [MACRO-USE], [ADDITIONAL-CMDS])
# -----------------------------------------------------
# Create a minimalist configure.ac running the macro named
# NAME-OF-THE-MACRO, check that autoconf runs on that script,
# and that the shell runs correctly the configure.
# TOP_SRCDIR is needed to set the auxdir (some macros need `install-sh',
# `config.guess' etc.).
#
# New macros are not expected to depend upon obsolete macros.
m4_define([AT_CHECK_MACRO],
[AT_SETUP([$1])
AT_CONFIGURE_AC([m4_default([$2], [$1])])
AT_CHECK_AUTOCONF([-W obsolete])
AT_CHECK_AUTOHEADER
AT_CHECK_CONFIGURE
AT_CHECK_ENV
$3
AT_CLEANUP()dnl
])# AT_CHECK_MACRO
# AT_CHECK_AU_MACRO(MACRO)
# ------------------------
# Create a minimalist configure.ac running the macro named
# NAME-OF-THE-MACRO, autoupdate this script, check that autoconf runs
# on that script, and that the shell runs correctly the configure.
# TOP_SRCDIR is needed to set the auxdir (some macros need
# `install-sh', `config.guess' etc.).
#
# Updated configure.ac shall not depend upon obsolete macros, which votes
# in favor of `-W obsolete', but since many of these macros leave a message
# to be removed by the user once her code ajusted, let's not check.
#
# Remove config.hin to avoid `autoheader: config.hin is unchanged'.
m4_define([AT_CHECK_AU_MACRO],
[AT_SETUP([$1])
AT_CONFIGURE_AC([$1])
AT_CHECK_AUTOCONF
AT_CHECK_AUTOHEADER
AT_CHECK_CONFIGURE
AT_CHECK_ENV
rm config.hin
AT_CHECK_AUTOUPDATE
AT_CHECK_AUTOCONF
AT_CHECK_AUTOHEADER
AT_CHECK_CONFIGURE
AT_CHECK_ENV
AT_CLEANUP()dnl
])# AT_CHECK_UPDATE

View File

@ -21,10 +21,15 @@
# If we fail, clean up, but touch the output files. We probably failed
# because we used some non portable tool, but we just don't care: this
# shell script is a maintainer tool, and we do expect good tools.
trap 'echo "'$0': failed. To proceed run make check." >&2
rm -f acdefuns audefuns requires syntax.tat update.tat
touch syntax.at
touch update.at
as_me=`echo "$0" | sed 's,.*/,,'`
trap 'echo "'"$as_me"': failed. To proceed run make check." >&2
rm -f acdefuns audefuns requires $as_me.tat
for file in "$@"
do
touch `echo "$file" | sed "s,.*/,,;s/\..*/.at/"`
done
trap 0
exit 1' \
0 1 2 15
@ -44,9 +49,21 @@ export LANG; LANG=C
export LC_ALL; LC_ALL=C
# requires
# --------
# Get the list of macros that are required: there is little interest
# in testing them since they will be run but the guy who requires
# them.
cat $src |
sed -n 's/dnl.*//;s/.*AC_REQUIRE(\[*\([a-zA-Z0-9_]*\).*$/\1/p' |
sort |
uniq >requires
# exclude_list
# ------------
# Macros which must not be checked at all (not by syntax.at, not udpate.at).
# Macros which must not be checked at all (not by ac-macros.at, nor
# au-macros.at).
# The trailing new line is meant.
#
# - ac_cv_prog_gcc, gxx, g77
@ -54,18 +71,12 @@ export LC_ALL; LC_ALL=C
exclude_list='^ac_cv_prog_(gcc|gxx|g77)$
'
## ----------- ##
## syntax.at. ##
## ----------- ##
# syntax_exclude_list
# -------------------
# The test `syntax.at' tries to run all the macros of Autoconf to check
# ac_exclude_list
# ---------------
# The test `ac-macros.at' tries to run all the macros of Autoconf to check
# for syntax problems, etc. Not all the macros can be run without argument,
# and some are already tested elsewhere. EGREP_EXCLUDE must filter out
# the macros we don't want to test in syntax.at.
# the macros we don't want to test in ac-macros.at.
#
# - AC_CANONICALIZE, AC_PREFIX_PROGRAM, AC_PREREQ
# Need an argument.
@ -96,7 +107,7 @@ exclude_list='^ac_cv_prog_(gcc|gxx|g77)$
# - AC_PATH_XTRA
# Checked in semantics.
#
syntax_exclude_list='^AC_ARG_VAR$
ac_exclude_list='^AC_ARG_VAR$
^AC_CANONICALIZE|AC_PREFIX_PROGRAM|AC_PREREQ$
^AC_CHECK_(DECL|FILE|FUNC|HEADER|LIB|MEMBER|PROG|SIZEOF|TOOL|TYPE)S?$
^AC_CONFIG
@ -118,53 +129,18 @@ syntax_exclude_list='^AC_ARG_VAR$
^AC_PATH_XTRA$
_AC_'
# syntax_exclude_egrep --
# ac_exclude_egrep
# ----------------
# Build a single egrep pattern out of filter_macros_list.
# Sed is used to get rid of the trailing `|' coming from the trailing
# `\n' from `echo'.
syntax_exclude_egrep=`echo "$exclude_list$syntax_exclude_list" | tr '
ac_exclude_egrep=`echo "$exclude_list$ac_exclude_list" | tr '
' '|' | sed 's/.$//'`
sed 's/^ *//' >syntax.tat <<MK_EOF
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Syntax of macros and completeness of header templates.])
MK_EOF
# Get the list of macros which are defined in Autoconf level.
# Get rid of the macros we are not interested in.
cat $src |
sed -n -e 's/^A[CU]_DEFUN(\[*\([a-zA-Z0-9_]*\).*$/\1/p' \
-e 's/^AC_DEFUN_ONCE(\[*\([a-zA-Z0-9_]*\).*$/\1/p' |
sort |
uniq |
egrep -v "$syntax_exclude_egrep" >acdefuns
# Get the list of macros that are required: there is little interest
# in testing them since they will be run but the guy who requires
# them.
cat $src |
sed -ne 's/dnl.*//;s/.*AC_REQUIRE(\[*\([a-zA-Z0-9_]*\).*$/\1/p' |
sort |
uniq >requires
# Filter out.
for macro in `cat acdefuns`; do
if fgrep "$macro" requires >/dev/null 2>&1; then :; else
echo "AT_CHECK_MACRO([$macro])" >>syntax.tat
fi
done
mv syntax.tat syntax.at
## ----------- ##
## update.at. ##
## ----------- ##
# update_exclude_list
# -------------------
# au_exclude_list
# ---------------
# AC_LANG_RESTORE
# cannot be used alone.
# AC_LINK_FILES, AC_PREREQ
@ -173,38 +149,76 @@ mv syntax.tat syntax.at
# are already in `configure.ac'.
# AC_CYGWIN, AC_MINGW32, AC_EMXOS2
# are using AC_REQUIRE.
update_exclude_list='^AC_LANG_RESTORE$
au_exclude_list='^AC_LANG_RESTORE$
^AC_LINK_FILES|AC_PREREQ$
^AC_(INIT|OUTPUT)$
^AC_(CYGWIN|MINGW32|EMXOS2)$'
# syntax_exclude_egrep --
# au_exclude_egrep
# ----------------
# Build a single egrep pattern out of filter_macros_list.
# Sed is used to get rid of the trailing `|' coming from the trailing
# `\n' from `echo'.
update_exclude_egrep=`echo "$exclude_list$update_exclude_list" | tr '
au_exclude_egrep=`echo "$exclude_list$au_exclude_list" | tr '
' '|' | sed 's/.$//'`
sed 's/^ *//' >update.tat <<MK_EOF
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Syntax of autoupdated scripts.])
## ------------------------- ##
## Creating the test files. ##
## ------------------------- ##
for file in $src
do
base=`echo "$file" | sed 's,.*/,,;s/\..*//'`
# Get the list of macros which are defined in Autoconf level.
# Get rid of the macros we are not interested in.
cat $file |
sed -n -e 's/^AC_DEFUN(\[*\([a-zA-Z0-9_]*\).*$/\1/p' \
-e 's/^AC_DEFUN_ONCE(\[*\([a-zA-Z0-9_]*\).*$/\1/p' |
sort |
uniq |
# Watch out we are `set -e': don't fail.
( egrep -v "$ac_exclude_egrep";: ) >acdefuns
# Get the list of macros which are defined in Autoupdate level.
cat $file |
sed -n 's/^AU_DEFUN(\[*\([a-zA-Z][a-zA-Z0-9_]*\).*$/\1/p' |
sort |
uniq |
( egrep -v "$au_exclude_egrep";: ) > audefuns
# Filter out required macros.
{
sed 's/^ *//' <<MK_EOF
# Generated by $as_me, do not edit by hand. -*- autoconf -*-
AT_BANNER([Testing $base macros.])
MK_EOF
# Get the list of macros which are defined in Autoupdate level.
cat $src |
sed -ne 's/^AU_DEFUN(\[*\([a-zA-Z][a-zA-Z0-9_]*\).*$/\1/p' |
sort |
uniq |
egrep -v "$update_exclude_egrep" |
sed 's/.*/AT_CHECK_UPDATE([&])/' >>update.tat
echo "# Modern macros."
for macro in `cat acdefuns`; do
if fgrep "$macro" requires >/dev/null 2>&1; then :; else
echo "AT_CHECK_MACRO([$macro])"
fi
done
echo
echo "# Obsolete macros."
for macro in `cat audefuns`; do
if fgrep "$macro" requires >/dev/null 2>&1; then :; else
echo "AT_CHECK_AU_MACRO([$macro])"
fi
done
} >$as_me.tat
mv update.tat update.at
# In one atomic step so that if something above fails, the trap
# preserves the old version of the file.
mv $as_me.tat $base.at
done
rm -f acdefuns audefuns requires
trap 0
exit 0

View File

@ -47,19 +47,6 @@ AT_CHECK_MACRO([AC_CHECK_FUNCS],
])])
# AC_HAVE_FUNCS
# -------------
# This macro is an obsolete version of AC_CHECK_FUNCS. Running this
# test allows to check that AU_ALIAS'ed macros work properly.
AT_CHECK_MACRO([AC_HAVE_FUNCS],
[AC_HAVE_FUNCS(printf autoconf_ftnirp)],
[AT_CHECK_DEFINES(
[/* #undef HAVE_AUTOCONF_FTNIRP */
#define HAVE_PRINTF 1
])])
# AC_CHECK_HEADERS
# ----------------
# Check that it performs the correct actions:
@ -72,7 +59,6 @@ AT_CHECK_MACRO([AC_CHECK_HEADERS],
])])
# AC_CHECK_MEMBERS
# ----------------
# Check that it performs the correct actions.
@ -128,7 +114,6 @@ AT_CHECK_MACRO([AC_CHECK_TYPES],
])])
# AC_CHECK_TYPES
# --------------
# Check that we properly dispatch properly to the old implementation
@ -167,7 +152,6 @@ NEW
AT_CLEANUP
# AC_CHECK_FILES
# --------------
# FIXME: To really test HAVE_AC_EXISTS2 and HAVE_AC_MISSING2 we need to

View File

@ -9,8 +9,8 @@
AT_INIT([autoconf])
AT_BANNER(
[Some tests might be ignored if you don't have the software which the
macros are supposed to test (e.g., a Fortran compiler).])
[Some tests might be skipped if you don't have the software which the
macros check (e.g., a Fortran compiler).])
# Run the tests from the lowest level to the highest level, and from
# the most selective to the easiest.
@ -41,11 +41,12 @@ m4_include([compile.at])
# Checking that AC_CHECK_FOO macros work properly.
m4_include([semantics.at])
# Checking all the AC_DEFUN'd macros.
m4_include([syntax.at])
# Checking that updating an obsolete macro produces a valid configure.ac
m4_include([update.at])
# Blind testing the macros.
m4_include([acgeneral.at])
m4_include([acspecific.at])
m4_include([acfunctions.at])
m4_include([aclang.at])
m4_include([acheaders.at])
# Compatibility with foreign tools.
m4_include([foreign.at])

View File

@ -1,99 +0,0 @@
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Syntax of macros and completeness of header templates.])
AT_CHECK_MACRO([AC_AIX])
AT_CHECK_MACRO([AC_ARG_ARRAY])
AT_CHECK_MACRO([AC_ARG_ENABLE])
AT_CHECK_MACRO([AC_ARG_PROGRAM])
AT_CHECK_MACRO([AC_ARG_WITH])
AT_CHECK_MACRO([AC_CANONICAL_TARGET])
AT_CHECK_MACRO([AC_CHECKING])
AT_CHECK_MACRO([AC_CHECK_TOOL_PREFIX])
AT_CHECK_MACRO([AC_COMPILE_CHECK])
AT_CHECK_MACRO([AC_C_BIGENDIAN])
AT_CHECK_MACRO([AC_C_CHAR_UNSIGNED])
AT_CHECK_MACRO([AC_C_CROSS])
AT_CHECK_MACRO([AC_C_LONG_DOUBLE])
AT_CHECK_MACRO([AC_C_PROTOTYPES])
AT_CHECK_MACRO([AC_C_STRINGIZE])
AT_CHECK_MACRO([AC_DECL_SYS_SIGLIST])
AT_CHECK_MACRO([AC_DECL_YYTEXT])
AT_CHECK_MACRO([AC_DIR_HEADER])
AT_CHECK_MACRO([AC_DYNIX_SEQ])
AT_CHECK_MACRO([AC_EGREP_CPP])
AT_CHECK_MACRO([AC_EGREP_HEADER])
AT_CHECK_MACRO([AC_ENABLE])
AT_CHECK_MACRO([AC_F77_WRAPPERS])
AT_CHECK_MACRO([AC_FUNC_ALLOCA])
AT_CHECK_MACRO([AC_FUNC_CHOWN])
AT_CHECK_MACRO([AC_FUNC_CLOSEDIR_VOID])
AT_CHECK_MACRO([AC_FUNC_ERROR_AT_LINE])
AT_CHECK_MACRO([AC_FUNC_FNMATCH])
AT_CHECK_MACRO([AC_FUNC_FSEEKO])
AT_CHECK_MACRO([AC_FUNC_GETGROUPS])
AT_CHECK_MACRO([AC_FUNC_GETLOADAVG])
AT_CHECK_MACRO([AC_FUNC_GETMNTENT])
AT_CHECK_MACRO([AC_FUNC_GETPGRP])
AT_CHECK_MACRO([AC_FUNC_MALLOC])
AT_CHECK_MACRO([AC_FUNC_MEMCMP])
AT_CHECK_MACRO([AC_FUNC_MKTIME])
AT_CHECK_MACRO([AC_FUNC_MMAP])
AT_CHECK_MACRO([AC_FUNC_OBSTACK])
AT_CHECK_MACRO([AC_FUNC_SELECT_ARGTYPES])
AT_CHECK_MACRO([AC_FUNC_SETPGRP])
AT_CHECK_MACRO([AC_FUNC_SETVBUF_REVERSED])
AT_CHECK_MACRO([AC_FUNC_STAT])
AT_CHECK_MACRO([AC_FUNC_STRCOLL])
AT_CHECK_MACRO([AC_FUNC_STRERROR_R])
AT_CHECK_MACRO([AC_FUNC_STRFTIME])
AT_CHECK_MACRO([AC_FUNC_STRTOD])
AT_CHECK_MACRO([AC_FUNC_UTIME_NULL])
AT_CHECK_MACRO([AC_FUNC_VFORK])
AT_CHECK_MACRO([AC_FUNC_VPRINTF])
AT_CHECK_MACRO([AC_FUNC_WAIT3])
AT_CHECK_MACRO([AC_HAVE_LIBRARY])
AT_CHECK_MACRO([AC_HAVE_POUNDBANG])
AT_CHECK_MACRO([AC_HEADER_MAJOR])
AT_CHECK_MACRO([AC_HEADER_STAT])
AT_CHECK_MACRO([AC_HEADER_TIOCGWINSZ])
AT_CHECK_MACRO([AC_INT_16_BITS])
AT_CHECK_MACRO([AC_IRIX_SUN])
AT_CHECK_MACRO([AC_ISC_POSIX])
AT_CHECK_MACRO([AC_LONG_64_BITS])
AT_CHECK_MACRO([AC_MEMORY_H])
AT_CHECK_MACRO([AC_MINGW32])
AT_CHECK_MACRO([AC_MINIX])
AT_CHECK_MACRO([AC_NO_EXECUTABLES])
AT_CHECK_MACRO([AC_OUTPUT_COMMANDS])
AT_CHECK_MACRO([AC_PREFIX_DEFAULT])
AT_CHECK_MACRO([AC_PROG_AWK])
AT_CHECK_MACRO([AC_PROG_CC_C_O])
AT_CHECK_MACRO([AC_PROG_F77_C_O])
AT_CHECK_MACRO([AC_PROG_GCC_TRADITIONAL])
AT_CHECK_MACRO([AC_PROG_INSTALL])
AT_CHECK_MACRO([AC_PROG_LEX])
AT_CHECK_MACRO([AC_PROG_LN_S])
AT_CHECK_MACRO([AC_PROG_MAKE_SET])
AT_CHECK_MACRO([AC_PROG_RANLIB])
AT_CHECK_MACRO([AC_PROG_YACC])
AT_CHECK_MACRO([AC_REQUIRE_CPP])
AT_CHECK_MACRO([AC_RSH])
AT_CHECK_MACRO([AC_SCO_INTL])
AT_CHECK_MACRO([AC_STRUCT_ST_BLKSIZE])
AT_CHECK_MACRO([AC_STRUCT_ST_BLOCKS])
AT_CHECK_MACRO([AC_STRUCT_ST_RDEV])
AT_CHECK_MACRO([AC_STRUCT_TIMEZONE])
AT_CHECK_MACRO([AC_SYS_INTERPRETER])
AT_CHECK_MACRO([AC_SYS_LARGEFILE])
AT_CHECK_MACRO([AC_SYS_LONG_FILE_NAMES])
AT_CHECK_MACRO([AC_SYS_RESTARTABLE_SYSCALLS])
AT_CHECK_MACRO([AC_TYPE_MODE_T])
AT_CHECK_MACRO([AC_TYPE_OFF_T])
AT_CHECK_MACRO([AC_TYPE_SIGNAL])
AT_CHECK_MACRO([AC_UNISTD_H])
AT_CHECK_MACRO([AC_USG])
AT_CHECK_MACRO([AC_VALIDATE_CACHED_SYSTEM_TUPLE])
AT_CHECK_MACRO([AC_WITH])
AT_CHECK_MACRO([AC_XENIX_DIR])
AT_CHECK_MACRO([AM_TYPE_PTRDIFF_T])

View File

@ -1,35 +0,0 @@
# Generated by mktests.sh, do not edit by hand. -*- autoconf -*-
AT_BANNER([Syntax of autoupdated scripts.])
AT_CHECK_UPDATE([AC_ARG_ARRAY])
AT_CHECK_UPDATE([AC_CHECKING])
AT_CHECK_UPDATE([AC_CHECK_TOOL_PREFIX])
AT_CHECK_UPDATE([AC_COMPILE_CHECK])
AT_CHECK_UPDATE([AC_C_CROSS])
AT_CHECK_UPDATE([AC_DECL_YYTEXT])
AT_CHECK_UPDATE([AC_DIR_HEADER])
AT_CHECK_UPDATE([AC_DYNIX_SEQ])
AT_CHECK_UPDATE([AC_ENABLE])
AT_CHECK_UPDATE([AC_F77_NAME_MANGLING])
AT_CHECK_UPDATE([AC_HAVE_LIBRARY])
AT_CHECK_UPDATE([AC_HAVE_POUNDBANG])
AT_CHECK_UPDATE([AC_INT_16_BITS])
AT_CHECK_UPDATE([AC_IRIX_SUN])
AT_CHECK_UPDATE([AC_LANG_C])
AT_CHECK_UPDATE([AC_LANG_CPLUSPLUS])
AT_CHECK_UPDATE([AC_LANG_FORTRAN77])
AT_CHECK_UPDATE([AC_LANG_SAVE])
AT_CHECK_UPDATE([AC_LONG_64_BITS])
AT_CHECK_UPDATE([AC_MEMORY_H])
AT_CHECK_UPDATE([AC_OUTPUT_COMMANDS])
AT_CHECK_UPDATE([AC_RSH])
AT_CHECK_UPDATE([AC_SCO_INTL])
AT_CHECK_UPDATE([AC_STRUCT_ST_BLKSIZE])
AT_CHECK_UPDATE([AC_STRUCT_ST_RDEV])
AT_CHECK_UPDATE([AC_UNISTD_H])
AT_CHECK_UPDATE([AC_USG])
AT_CHECK_UPDATE([AC_VALIDATE_CACHED_SYSTEM_TUPLE])
AT_CHECK_UPDATE([AC_WITH])
AT_CHECK_UPDATE([AC_XENIX_DIR])
AT_CHECK_UPDATE([AM_TYPE_PTRDIFF_T])