diff options
-rw-r--r-- | configure.ac | 9 | ||||
-rw-r--r-- | tests/local.mk | 44 | ||||
-rwxr-xr-x | tests/mktests.sh | 29 |
3 files changed, 41 insertions, 41 deletions
diff --git a/configure.ac b/configure.ac index e9f0da92..38a8ff95 100644 --- a/configure.ac +++ b/configure.ac @@ -201,12 +201,15 @@ AC_SUBST([EMACS], [$TEST_EMACS]) AM_PATH_LISPDIR -## ------------ ## -## Grep & sed. ## -## ------------ ## +## ---------------- ## +## Grep, sed, awk. ## +## ---------------- ## AC_PROG_GREP AC_PROG_EGREP AC_PROG_SED +# AC_PROG_AWK should have already been performed by AM_INIT_AUTOMAKE. +# AC_REQUIRE([AC_PROG_AWK]) doesn't work outside of an AC_DEFUN. +m4_provide_if([AC_PROG_AWK], [], [AC_PROG_AWK]) ## ----- ## diff --git a/tests/local.mk b/tests/local.mk index ea072613..f55e8c6d 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -20,7 +20,6 @@ # But if you are borrowing from this file for setting up autotest in your # project, remember to distribute both testsuite and package.m4. EXTRA_DIST += \ - $(TESTSUITE_AT) \ tests/local.at \ tests/mktests.sh \ tests/atlocal.in \ @@ -88,20 +87,21 @@ $(wrappers): tests/wrapper.in ## ------------ ## TESTSUITE_GENERATED_AT = \ - $(srcdir)/tests/aclang.at \ - $(srcdir)/tests/acc.at \ - $(srcdir)/tests/acfortran.at \ - $(srcdir)/tests/acgo.at \ - $(srcdir)/tests/acgeneral.at \ - $(srcdir)/tests/acstatus.at \ - $(srcdir)/tests/acautoheader.at \ - $(srcdir)/tests/acautoupdate.at \ - $(srcdir)/tests/acspecific.at \ - $(srcdir)/tests/acfunctions.at \ - $(srcdir)/tests/acheaders.at \ - $(srcdir)/tests/actypes.at \ - $(srcdir)/tests/aclibs.at \ - $(srcdir)/tests/acprograms.at + tests/aclang.at \ + tests/acc.at \ + tests/acerlang.at \ + tests/acfortran.at \ + tests/acgo.at \ + tests/acgeneral.at \ + tests/acstatus.at \ + tests/acautoheader.at \ + tests/acautoupdate.at \ + tests/acspecific.at \ + tests/acfunctions.at \ + tests/acheaders.at \ + tests/actypes.at \ + tests/aclibs.at \ + tests/acprograms.at TESTSUITE_HAND_AT = \ tests/suite.at \ @@ -120,6 +120,9 @@ TESTSUITE_HAND_AT = \ tests/autoscan.at \ tests/foreign.at +CLEANFILES += $(TESTSUITE_GENERATED_AT) +EXTRA_DIST += $(TESTSUITE_HAND_AT) + TESTSUITE_AT = $(TESTSUITE_GENERATED_AT) $(TESTSUITE_HAND_AT) TESTSUITE = tests/testsuite @@ -172,8 +175,7 @@ MAINTAINERCLEANFILES += $(TESTSUITE_GENERATED_AT) ## Producing the test files. # The files which contain macros we check for syntax. Use $(srcdir) -# for the benefit of non-GNU make. Fix the names in the rule below -# where we 'cd' to $srcdir. +# for the benefit of non-GNU make. autoconfdir = $(srcdir)/lib/autoconf AUTOCONF_FILES = $(autoconfdir)/general.m4 \ $(autoconfdir)/status.m4 \ @@ -201,14 +203,10 @@ $(TESTSUITE_GENERATED_AT): tests/mktests.stamp tests/mktests.stamp : tests/mktests.sh $(AUTOCONF_FILES) @rm -f tests/mktests.tmp @touch tests/mktests.tmp - cd $(srcdir) && $(SHELL) tests/mktests.sh \ - `echo " "$(AUTOCONF_FILES) | sed 's, [^ ]*/, lib/autoconf/,g'` + $(SHELL) $(srcdir)/tests/mktests.sh $(AUTOCONF_FILES) @mv -f tests/mktests.tmp $@ -## Distribute the stamp file, since we distribute the generated files. -EXTRA_DIST += tests/mktests.stamp -CLEANFILES += tests/mktests.tmp -MAINTAINERCLEANFILES += tests/mktests.stamp +CLEANFILES += tests/mktests.tmp tests/mktests.stamp ## maintainer-check ## diff --git a/tests/mktests.sh b/tests/mktests.sh index de3d4540..37b97b2a 100755 --- a/tests/mktests.sh +++ b/tests/mktests.sh @@ -17,6 +17,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. +# Set locale to C so that `sort' behaves in a uniform way. +LANGUAGE=C; export LANGUAGE +LANG=C; export LANG +LC_ALL=C; export LC_ALL + +# Default AWK. +: ${AWK=awk} + # If we fail, clean up, but touch the output files. We probably failed # because we used some non-portable tool. @@ -36,23 +44,14 @@ trap 'echo "'"$as_me"': failed." >&2 # If ever something goes wrong, fail, so that the trap is launched. set -e -# We need arguments. -test $# != 0 - -# We need these arguments. -src="$@" - -# Set locale to C so that `sort' behaves in a uniform way. -LANGUAGE=C; export LANGUAGE -LANG=C; export LANG -LC_ALL=C export LC_ALL - +# We expect a list of autoconf source files as arguments. +test $# -gt 0 # requires # -------- # Get the list of macros that are required: there is little interest # in testing them since they will be run by the guy who requires them. -sed -n 's/dnl.*//;s/.*AC_REQUIRE(\[*\([a-zA-Z0-9_]*\).*$/\1/p' $src | +sed -n 's/dnl.*//;s/.*AC_REQUIRE(\[*\([a-zA-Z0-9_]*\).*$/\1/p' "$@" | sort -u >$requires @@ -182,7 +181,7 @@ au_exclude_script="$exclude_list $au_exclude_list {print}" ## Creating the test files. ## ## ------------------------- ## -for file in $src +for file in "$@" do base=`echo "$file" | sed 's|.*[\\/]||;s|\..*||'` acbase=$outdir/ac$base @@ -190,12 +189,12 @@ do # Get rid of the macros we are not interested in. sed -n -e 's/^AC_DEFUN(\[*\([a-zA-Z0-9_]*\).*$/\1/p' \ -e 's/^AC_DEFUN_ONCE(\[*\([a-zA-Z0-9_]*\).*$/\1/p' $file | - awk "$ac_exclude_script" | + $AWK "$ac_exclude_script" | sort -u >$acdefuns # Get the list of macros which are defined in Autoupdate level. sed -n 's/^AU_DEFUN(\[*\([a-zA-Z][a-zA-Z0-9_]*\).*$/\1/p' $file | - awk "$au_exclude_script" | + $AWK "$au_exclude_script" | sort -u >$audefuns # Filter out required macros. |