From ff9684b7201fa000a73fb5aa9bd586db7c76f07f Mon Sep 17 00:00:00 2001
From: Akim Demaille <akim@lrde.epita.fr>
Date: Fri, 23 Mar 2012 16:00:42 +0100
Subject: [PATCH 1/4] tests: fix dependencies.

* tests/local.mk (check_SCRIPTS): Add atlocal and atconfig so
that they are properly updated before running tests.
(RUN_TESTSUITE_deps): New.
Use it to factor the dependencies of "*-check" targets,
especially those that don't bounce to the regular
"check-local" target, since then they don't benefit from the
proper dependencies (such as atlocal).
---
 tests/local.mk |   30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/tests/local.mk b/tests/local.mk
index 2c2d423..183c371 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -36,9 +36,9 @@ $(top_srcdir)/tests/package.m4: $(top_srcdir)/configure
 	} >$@.tmp
 	$(AM_V_at)mv $@.tmp $@
 
-## ------------ ##
-## Test suite.  ##
-## ------------ ##
+## ------------------------- ##
+## Generate the test suite.  ##
+## ------------------------- ##
 
 ## Leave testsuite.at first for the "testsuite" rule's $<.
 TESTSUITE_AT =                                  \
@@ -67,7 +67,6 @@ TESTSUITE_AT =                                  \
   tests/torture.at
 
 TESTSUITE = $(top_srcdir)/tests/testsuite
-RUN_TESTSUITE = $(TESTSUITE) -C tests $(TESTSUITEFLAGS)
 
 AUTOTEST = $(AUTOM4TE) --language=autotest
 AUTOTESTFLAGS = -I $(top_srcdir)/tests
@@ -75,31 +74,38 @@ $(TESTSUITE): $(TESTSUITE_AT)
 	$(AM_V_GEN)$(AUTOTEST) $(AUTOTESTFLAGS) $< -o $@.tmp
 	$(AM_V_at)mv $@.tmp $@
 
+
+## -------------------- ##
+## Run the test suite.  ##
+## -------------------- ##
+
+# Move into tests/ so that testsuite.dir etc. be created there.
+RUN_TESTSUITE = $(TESTSUITE) -C tests $(TESTSUITEFLAGS)
+check_SCRIPTS = $(BISON) tests/atconfig tests/atlocal
+RUN_TESTSUITE_deps = $(TESTSUITE) $(check_SCRIPTS)
+
 clean-local: clean-local-tests
 clean-local-tests:
 	test ! -f $(TESTSUITE) || $(TESTSUITE) -C tests --clean
 
-check-local: tests/atconfig tests/atlocal $(TESTSUITE)
-# Move into tests/ so that testsuite.dir etc. be created there.
+check-local: $(RUN_TESTSUITE_deps)
 	$(RUN_TESTSUITE)
 
-check_SCRIPTS = $(BISON)
-
 # Run the test suite on the *installed* tree.
-installcheck-local:
+installcheck-local: $(RUN_TESTSUITE_deps)
 	$(RUN_TESTSUITE) AUTOTEST_PATH="$(bindir)"
 
 # Be real mean with it.
 .PHONY: maintainer-check-g++
-maintainer-check-g++: $(TESTSUITE)
 	$(RUN_TESTSUITE) CC='$(CXX)'
+maintainer-check-g++: $(RUN_TESTSUITE_deps)
 
 .PHONY: maintainer-check-posix
-maintainer-check-posix: $(TESTSUITE)
+maintainer-check-posix: $(RUN_TESTSUITE_deps)
 	$(RUN_TESTSUITE) POSIXLY_CORRECT=1 _POSIX2_VERSION=200112
 
 .PHONY: maintainer-check-valgrind
-maintainer-check-valgrind: $(TESTSUITE)
+maintainer-check-valgrind: $(RUN_TESTSUITE_deps)
 	test -z '$(VALGRIND)' || \
 	   VALGRIND_OPTS='--leak-check=full --show-reachable=yes' \
 	   $(RUN_TESTSUITE) PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q'
-- 
1.7.9.4

