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.
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-*) ;;
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.
# 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 \
-# 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.
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-
SHELL = @SHELL@
srcdir = @srcdir@
includedir = @includedir@
oldincludedir = /usr/include
-DESTDIR =
-
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
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 = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+
+@SET_MAKE@
AWK = @AWK@
EXPR = @EXPR@
HELP2MAN = @HELP2MAN@
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
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:
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:
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
+ -rm -f Makefile.in
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-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
chmod +x $@-tmp
mv $@-tmp $@
-syntax.at: mktests.sh $(MACRO_FILES)
+acgeneral.at: mktests.sh $(MACRO_FILES)
+ cd $(srcdir) && ./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)
-update.at: mktests.sh $(MACRO_FILES)
+acheaders.at: mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
maintainer-check: maintainer-check-posix maintainer-check-c++
--- /dev/null
+# 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.
--- /dev/null
+# 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])
--- /dev/null
+# 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])
--- /dev/null
+# 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])
--- /dev/null
+# 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])
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-*) ;;
## ---------------------------------------- ##
+# 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
[test $at_verbose = echo && echo "$srcdir/AT_LINE: config.log" && cat config.log])])
+# 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
+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_DEFINES(CONTENT)
+# -------------------------
+# Verify that config.h, once stripped is CONTENT.
+# Stripping consists of keeping CPP lines (i.e. containing a hash),
+# but those of automatically checked features (STDC_HEADERS etc.).
+# AT_CHECK_HEADER is a better name, but too close from AC_CHECK_HEADER.
+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
# 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
-])
+[AT_CONFIGURE_AC([$1])
$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
- mv -f state-env.before expout
- AT_CHECK([cat state-env.after], 0, expout)
-fi
-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_ENV
])# _AT_CHECK_AC_MACRO
-# AT_CHECK_MACRO(NAME-OF-THE-MACRO, [MACRO-USE], [ADDITIONAL-CMDS])
-# -----------------------------------------------------------------
+# 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_AC_MACRO([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_UPDATE(NAME-OF-THE-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.).
-m4_define([AT_CHECK_UPDATE],
-[AT_SETUP([autoupdating $1])
+#
+# 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_AC_MACRO([$1],
-[AT_CHECK([autoupdate --autoconf-dir $at_top_srcdir], 0,
- [], [autoupdate: `configure.ac' is updated
-])])
+AT_CHECK_AUTOCONF
+AT_CHECK_AUTOHEADER
+AT_CHECK_CONFIGURE
+AT_CHECK_ENV
-AT_CLEANUP()dnl
-])# AT_CHECK_UPDATE
+rm config.hin
+AT_CHECK_AUTOUPDATE
+AT_CHECK_AUTOCONF
+AT_CHECK_AUTOHEADER
+AT_CHECK_CONFIGURE
+AT_CHECK_ENV
-# AT_CHECK_DEFINES(CONTENT)
-# -------------------------
-# Verify that config.h, once stripped is CONTENT.
-# Stripping consists of keeping CPP lines (i.e. containing a hash),
-# but those of automatically checked features (STDC_HEADERS etc.).
-# AT_CHECK_HEADER is a better name, but too close from AC_CHECK_HEADER.
-m4_define([AT_CHECK_DEFINES],
-[AT_CHECK([[fgrep '#' config.h |
- egrep -v 'STDC_HEADERS|STDLIB|INTTYPES|MEMORY|STRING|UNISTD']],, [$1])])
+AT_CLEANUP()dnl
+])# AT_CHECK_UPDATE
# 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
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
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.
# - 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
^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
# 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. ##
+## ------------------------- ##
-MK_EOF
+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 $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
+ # 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 -*-
-mv update.tat update.at
+ AT_BANNER([Testing $base macros.])
+
+MK_EOF
+
+ 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
+
+ # 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
])])
-# 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:
])])
-
# AC_CHECK_MEMBERS
# ----------------
# Check that it performs the correct actions.
])])
-
# AC_CHECK_TYPES
# --------------
# Check that we properly dispatch properly to the old implementation
AT_CLEANUP
-
# AC_CHECK_FILES
# --------------
# FIXME: To really test HAVE_AC_EXISTS2 and HAVE_AC_MISSING2 we need to
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.
# 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])
+++ /dev/null
-# 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])
+++ /dev/null
-# 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])