]> git.saurik.com Git - bison.git/blobdiff - tests/local.mk
doc: help Doxygen find our files.
[bison.git] / tests / local.mk
index 596918bad08b84f288fb82b37932884a5859662d..2cb1f3c1862e5fa2fbd5d96cd8ffdcc302c963fa 100644 (file)
@@ -1,22 +1,21 @@
 ## Makefile for Bison testsuite.
 
-## Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
-
-EXTRA_DIST += $(TESTSUITE_AT) tests/testsuite tests/package.m4
+# Copyright (C) 2000-2012 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
+
+EXTRA_DIST += $(TESTSUITE_AT) tests/testsuite
 
 DISTCLEANFILES       += tests/atconfig $(check_SCRIPTS)
 MAINTAINERCLEANFILES += $(TESTSUITE)
@@ -26,8 +25,8 @@ MAINTAINERCLEANFILES += $(TESTSUITE)
 ## ------------ ##
 
 $(top_srcdir)/tests/package.m4: $(top_srcdir)/configure
-       rm -f $@ $@.tmp
-       { \
+       $(AM_V_GEN)rm -f $@ $@.tmp
+       $(AM_V_at){ \
          echo '# Signature of the current package.'; \
          echo 'm4_define([AT_PACKAGE_NAME],      [$(PACKAGE_NAME)])'; \
          echo 'm4_define([AT_PACKAGE_TARNAME],   [$(PACKAGE_TARNAME)])'; \
@@ -35,82 +34,92 @@ $(top_srcdir)/tests/package.m4: $(top_srcdir)/configure
          echo 'm4_define([AT_PACKAGE_STRING],    [$(PACKAGE_STRING)])'; \
          echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \
        } >$@.tmp
-       mv $@.tmp $@
-
-## ------------ ##
-## Test suite.  ##
-## ------------ ##
-
-TESTSUITE_AT =                                 \
-  tests/actions.at                             \
-  tests/c++.at                                 \
-  tests/calc.at                                        \
-  tests/conflicts.at                           \
-  tests/cxx-type.at                            \
-  tests/existing.at                            \
-  tests/glr-regression.at                      \
-  tests/headers.at                             \
-  tests/input.at                               \
-  tests/java.at                                        \
-  tests/local.at                               \
-  tests/output.at                              \
-  tests/push.at                                        \
-  tests/reduce.at                              \
-  tests/regression.at                          \
-  tests/sets.at                                        \
-  tests/skeletons.at                           \
-  tests/synclines.at                           \
-  tests/testsuite.at                           \
+       $(AM_V_at)mv $@.tmp $@
+
+## ------------------------- ##
+## Generate the test suite.  ##
+## ------------------------- ##
+
+## Leave testsuite.at first for the "testsuite" rule's $<.
+TESTSUITE_AT =                                  \
+  tests/testsuite.at                            \
+                                                \
+  tests/actions.at                              \
+  tests/c++.at                                  \
+  tests/calc.at                                 \
+  tests/conflicts.at                            \
+  tests/cxx-type.at                             \
+  tests/existing.at                             \
+  tests/glr-regression.at                       \
+  tests/headers.at                              \
+  tests/input.at                                \
+  tests/java.at                                 \
+  tests/local.at                                \
+  tests/named-refs.at                           \
+  tests/output.at                               \
+  tests/package.m4                              \
+  tests/push.at                                 \
+  tests/reduce.at                               \
+  tests/regression.at                           \
+  tests/sets.at                                 \
+  tests/skeletons.at                            \
+  tests/synclines.at                            \
   tests/torture.at
 
 TESTSUITE = $(top_srcdir)/tests/testsuite
 
 AUTOTEST = $(AUTOM4TE) --language=autotest
 AUTOTESTFLAGS = -I $(top_srcdir)/tests
-$(TESTSUITE): tests/package.m4 $(TESTSUITE_AT)
-       $(AUTOTEST) $(AUTOTESTFLAGS) $(top_srcdir)/tests/testsuite.at -o $@.tmp
-       mv $@.tmp $@
+$(TESTSUITE): $(TESTSUITE_AT)
+       $(AM_V_GEN)$(AUTOTEST) $(AUTOTESTFLAGS) $< -o $@.tmp
+       $(AM_V_at)mv $@.tmp $@
 
-tests/atconfig: $(top_builddir)/config.status
-       ./config.status tests/$@
 
-clean-local: clean-local-tests
-clean-local-tests:
-       test ! -f $(TESTSUITE) || cd tests && ../$(TESTSUITE) --clean
+## -------------------- ##
+## Run the test suite.  ##
+## -------------------- ##
 
-check-local: tests/atconfig tests/atlocal $(TESTSUITE)
 # Move into tests/ so that testsuite.dir etc. be created there.
-       cd tests && ../$(TESTSUITE) $(TESTSUITEFLAGS)
+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_SCRIPTS = tests/bison
+check-local: $(RUN_TESTSUITE_deps)
+       $(RUN_TESTSUITE)
 
 # Run the test suite on the *installed* tree.
-installcheck-local:
-       cd tests && ../$(TESTSUITE) AUTOTEST_PATH="$(bindir)" $(TESTSUITEFLAGS)
+installcheck-local: $(RUN_TESTSUITE_deps)
+       $(RUN_TESTSUITE) AUTOTEST_PATH='$(bindir)'
 
 # Be real mean with it.
 .PHONY: maintainer-check-g++
-maintainer-check-g++: $(TESTSUITE)
-       cd tests && ../$(TESTSUITE) CC='$(CXX)'
+maintainer-check-g++: $(RUN_TESTSUITE_deps)
+       $(RUN_TESTSUITE) --compile-c-with-cxx
 
 .PHONY: maintainer-check-posix
-maintainer-check-posix: $(TESTSUITE)
-       cd tests && ../$(TESTSUITE) POSIXLY_CORRECT=1 _POSIX2_VERSION=200112
+maintainer-check-posix: $(RUN_TESTSUITE_deps)
+       $(RUN_TESTSUITE) POSIXLY_CORRECT=1 _POSIX2_VERSION=200112
 
 .PHONY: maintainer-check-valgrind
-maintainer-check-valgrind: $(TESTSUITE)
-       test -z '$(VALGRIND)' || \
-          VALGRIND_OPTS='--leak-check=full --show-reachable=yes' \
-          cd tests && \
-          ../$(TESTSUITE) PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q'
+maintainer-check-valgrind: $(RUN_TESTSUITE_deps)
+       test -z '$(VALGRIND)' ||                                        \
+         $(RUN_TESTSUITE)                                              \
+           PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q'        \
+           VALGRIND_OPTS='--leak-check=full --show-reachable=yes'
 
 .PHONY: maintainer-check
 maintainer-check: maintainer-check-posix maintainer-check-valgrind maintainer-check-g++
 
 .PHONY: maintainer-push-check
 maintainer-push-check:
-       BISON_USE_PUSH_FOR_PULL=1 $(MAKE) $(AM_MAKEFLAGS) maintainer-check
+       $(MAKE) $(AM_MAKEFLAGS) maintainer-check                        \
+         TESTSUITEFLAGS='BISON_USE_PUSH_FOR_PULL=1 $(TESTSUITEFLAGS)'
 
 .PHONY: maintainer-xml-check
 maintainer-xml-check:
-       BISON_TEST_XML=1 $(MAKE) $(AM_MAKEFLAGS) maintainer-check
+       $(MAKE) $(AM_MAKEFLAGS) maintainer-check                \
+         TESTSUITEFLAGS='BISON_TEST_XML=1 $(TESTSUITEFLAGS)'