From: Stefano Lattarini Date: Fri, 15 Apr 2011 15:43:28 +0000 (+0200) Subject: Merge branch 'maint' into yacc-work X-Git-Tag: ylwrap-refactor-abandoned-branch~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92efa457efce86a1b9c4dfa928d6c9e37c0736ea;p=thirdparty%2Fautomake.git Merge branch 'maint' into yacc-work --- 92efa457efce86a1b9c4dfa928d6c9e37c0736ea diff --cc ChangeLog index 663f862a2,1c883ac0c..1a0363c10 --- a/ChangeLog +++ b/ChangeLog @@@ -1,413 -1,19 +1,423 @@@ -2011-04-12 Stefano Lattarini - - coverage: test for automake bug#8485 (known regression) - * tests/yacc-dist-nobuild-subdir.test: New test. - * tests/Makefile.am (TESTS, XFAIL_TESTS): Update. - + 2011-04-12 Stefano Lattarini + + test defs: define default $distdir (help reducing duplication) + * tests/defs.in ($distdir): New variable, might be used in + testcases checking distribution-related features. + * tests/pr9.test: Use it. + * tests/subdir9.test: Likewise. + * tests/vtexi3.test: Add comment explaining why we redefine + $distdir in this test. + +2011-04-14 Stefano Lattarini + + coverage: test lex-generated "#line" directives postprocessing + * tests/yacc-line.test: In heading comments, add reference to new + sister test `lex-line.test'. + * tests/lex-line.test: New test. + * tests/Makefile.am (TESTS): Update. + +2011-04-14 Stefano Lattarini + + tests: minor improvements to a couple of yacc tests + * tests/yacc-auxdir.test: Avoid running autoconf, it's not + needed. + * tests/yacc-line.test: Also check that the yacc-generated C + and header files do not contain "#line" directives referencing + `y.tab.c' or `y.tab.h'. Add a couple of explicative comments. + +2011-04-11 Stefano Lattarini + + tests: split yacc6.test, for better separation and coverage + * tests/yacc6.test: Test removed, its content extended and split + into ... + * tests/yacc-auxdir.test, tests/yacc-depend.test, + tests/yacc-line.test: ... these new tests. + * tests/yacc-depend2.test: New test, exposes the failure that + FreeBSD used to encounter in yacc6.test. + * tests/Makefile.am (TESTS): Update. + +2011-04-11 Stefano Lattarini + + tests: do not uselessly require GNU make or gcc in a few tests + * tests/lex3.test: Remove gcc from requirements, as any working C + compiler should be ok. Consequently, do not clobber user CFLAGS. + Also, remove GNUmake from requirements; it was added (see commit + `Release-1-8-103-g0d2f592') because this test fails with FreeBSD + make due to VPATH issues -- but so do many other yacc-related and + lex-related tests currently, and requiring GNU make in all of + them would unacceptably reduce coverage. + * tests/lexvpath.test: Remove gcc from requirements, as any + working C compiler should be ok. + * tests/yacc4.test: Likewise. + * tests/yacc8.test: Likewise. + * tests/lex5.test: Likewise. Also, do not require anymore GNU + make; to compensate, explicitly call "$MAKE Makefile" to update + the out-of-date Makefile if $MAKE is not GNU make. + +2011-04-12 Stefano Lattarini + + tests: fix spurious failure in test 'yacc-d-cxx.test' + * tests/yacc-d-cxx.test: Create ylwrap script before calling + automake for the first time, so that the script gets correctly + distributed. Add checks verifying it indeed is. + +2011-04-12 Stefano Lattarini + + tests cosmetics: remove redundant definitions of variable $tab + * tests/yacc-d-basic.test ($tab): Remove definition: it's already + defined in `tests/defs'. + * tests/yacc-d-cxx.test: Likewise. + +2011-04-12 Stefano Lattarini + + yacc: add some tests on bison support (still xfailing) + Related to automake bug#7648 and PR automake/491. + * tests/bison-skeleton-cxx.test: New test. + * tests/bison-skeleton.test: New test. + * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated. + +2011-04-12 Stefano Lattarini + + coverage: test for automake bug#8485 (known regression) + * tests/yacc-dist-nobuild-subdir.test: New test. + * tests/Makefile.am (TESTS, XFAIL_TESTS): Update. + +2011-04-10 Stefano Lattarini + + coverage: test mixed C/C++ yacc-generated parsers in the same dir + * tests/yacc-mix-c-cxx.test: New test. + * tests/Makefile.am (TESTS): Update. + +2011-04-10 Stefano Lattarini + + cosmetics: fix typos and wording in some yacc tests + * tests/yacc-cxx.test (foo.cc): Clarify comment about the content + of this file being valid C++ but invalid C. + (parse1.yy): Likewise. Also, remove redundant parentheses in a + `return' statement. + * tests/yacc-d-cxx.test (write_parse): Clarify comment about the + content of the generated files being valid C++ but invalid C. + (write_main): Likewise. + * tests/yacc-basic.test: Remove redundant parentheses in a + `return' statement. + * tests/yacc-d-vpath.test: Adjust spacing around curly brackets. + * tests/yaccvpath.test: Likewise. + * tests/yaccdry.test: Likewise. + * tests/yacc8.test: Likewise. + * tests/yacc4.test: Likewise. + Suggested by Ralf Wildenhues. + +2011-04-10 Stefano Lattarini + + yacc: update NEWS and docs about yacc-generated headers extensions + * doc/automake.texi (Yacc and Lex): Document explicitly that + extensions of yacc-generated headers are modelled after the + extension of the corresponding sources. + * NEWS: Update. + +2011-01-28 Stefano Lattarini + + yacc: extension of headers modelled after extension of sources + With this change, if '-d' is in *YFLAGS, a yacc input file named + foo.y++ will cause a foo.h++ header to be generated, instead of a + foo.h header. Similarly for foo.ypp, foo.yxx and foo.yy. + This way, the name of the files generated by an automake-created + `ylwrap' invocation should be consistent with those generated by + a `bison -o' call. + Related to automake bug#7648 and PR automake/491. + * lib/am/yacc.am (am__yacc_c2h): New internal variable. + (?GENERIC?%EXT%%DERIVED-EXT%, ?!GENERIC?%OBJ%): Get the name of + the header dynamically at make runtime, so that its extension is + modelled after the extension of the source. + * automake.in (lang_yacc_target_hook): Adjust the calculation of + `$header' accordingly. + * tests/yacc-cxx.test: New test. + * tests/yacc-d-cxx.test: Likewise. + * tests/yacc-weirdnames.test: Likewise. + * tests/yacc-basic.test: Update comments. + * tests/yacc-d-basic.test: Likewise. + * tests/yaccpp.test: Updated and extended. + * tests/Makefile.am (TESTS): Update. + +2011-01-29 Stefano Lattarini + + tests: don't define YACC and LEX in the Makefiles + We don't want YACC and LEX defined as make variables, otherwise + the values determined at configure time will override those from + the environment, even in the make-spawned testcases. For example, + before this change, with the following usage: + $ ./configure YACC=yacc + $ export YACC='bison -y' + $ make check + the testsuite would have ended up, very counterintuitively, with + YACC defined to 'yacc' in the testcases' environment. + * configure.ac: Call `AM_SUBST_NOTMAKE' on YACC and LEX. + +2011-01-29 Stefano Lattarini + + tests: fix spurious failures in lflags*.test + * tests/lflags.test: Remove 'LEX' from the environment, so + that it won't be erroneously picked up by `make -e'. + * tests/lflags2.test: Likewise. + +2011-01-29 Stefano Lattarini + + coverage: more on 'yacc -d' and recovery from deleted headers + * tests/yacc-deleted-headers.test: New test. + * tests/Makefile.am (TESTS): Update. + +2011-01-29 Stefano Lattarini + + tests: remove redundancy from silent lex/yacc tests + * tests/silent-yacc-gcc.test, tests/silent-yacc-generic.test: Merge + these two testcases into ... + * tests/silent-yacc.test: ... this new one, which doesn't fiddle + which dependency tracking, as that shouldn't impact on generation + of yacc-derived C source and header files (and, for what concerns + compilation of C files, is already tested in other testcases). + * tests/silent-lex-gcc.test, tests/silent-lex-generic.test: Merge + these two testcases into ... + * tests/silent-lex.test: ... this new test, for similar reasons. + * tests/Makefile.am (TESTS): Update. + +2011-01-29 Stefano Lattarini + Ralf Wildenhues + + tests init: better messages for 'yacc' and 'lex' requirements + * tests/defs.in: Give better diagnostic messages when a test must + be skipped to the unavailability of yacc or lex program. Also, + improve syncing between code for requiring yacc and lex. + +2011-01-28 Stefano Lattarini + + configure: look for a lex program to be used by the testsuite + This will allow the testcases requiring a 'lex' program to run also + with vendor/legacy lex implementations, not only with 'flex'. + * configure.ac: Look for a lex program, using AC_CHECK_PROGS. + * tests/defs.in: New required entry 'lex'. + ($LEX): Let the user override the lex program to be used by the + testsuite. + * tests/cond35.test ($required): Require 'lex', not 'flex'. + * tests/cond36.test: Likewise. + * tests/lexv3.test: Likewise. + * tests/lexv3.test: Likewise. + * tests/silent-lex-gcc.test: Likewise. + * tests/silent-lex-generic.test: Likewise. + * tests/silent-many-gcc.test: Likewise. + * tests/silent-many-generic.test:likewise. + * tests/lexvpath.test: Likewise, and fix typo in comments. + +2011-01-22 Stefano Lattarini + + configure: look for a yacc program to be used by the testsuite + Instead of forcing the user to manually export 'YACC' in the + testsuite to use a non-bison yacc, we now look for a yacc program + at configure time, and use that as the default in the testsuite. + * configure.ac: Look for a yacc program, using AC_CHECK_PROGS. + * tests/defs.in: Updated to use the value of $YACC precomputed by + configure, unless the user overrides that in the environment. + +2011-01-22 Stefano Lattarini + + tests: more coverage on yacc/lex silent-rules, plus minor cleanups + * tests/silent-yacc-gcc.test: Add sanity checks verifying that the + generated Makefile.in files really contains the non-generic rules + we expect. Do not redundantly manually remove files we know to be + already removed "make maintainer-clean". + (Makefile.am): Ensure we cover also non-generic yacc rules, by + setting target-specific YFLAGS. + (sub/Makefile.am): Likewise. + * tests/silent-yacc-generic.test: Likewise. + * tests/silent-lex-gcc.test: Likewise, but with LFLAGS instead of + YFLAGS. + * tests/silent-lex-generic.test: Likewise. + * tests/silent-many-gcc.test: Likewise, but with both LFLAGS and + YFLAGS. Also ... + (do_and_check_verbose_build): Remove redundant blank line. + * tests/silent-many-generic.test: Likewise. + * tests/silent-yacc-headers.test: New test. + * tests/Makefile.am (TESTS): Update. + +2011-01-22 Stefano Lattarini + + tests: fix spurious failures in yflags*.test + * tests/yflags.test: Remove 'YACC' from the environment, so + that it won't be erroneously picked up by `make -e'. + * tests/yflags2.test: Likewise. + +2011-01-22 Stefano Lattarini + + tests: cover yacc target-specific flags, and `-v' flag handling + * tests/yacc-basic.test: Also try to build a parser having `-v' + as target-specific flags. Add a couple of `ls -l' commands, for + debugging. Update and extend comments. Escape literal dots in + grep regular expressions. + +2011-01-12 Stefano Lattarini + + docs: clustered '-d' not recognized in YFLAGS + This change fixes automake bug#7828. + * doc/automake.texi (Yacc and Lex): Document that automake + recognizes '-d' in AM_YFLAGS only if it's not clustered with + other options. + From a report by Юрий Пухальский. + +2011-01-11 Stefano Lattarini + + tests: do not force yacc-requiring tests to use bison + * tests/defs.in: New required entry 'yacc'. Remove old + required entry 'bison'. + * tests/cond35.test ($required): Require yacc, not bison. + * tests/cond36.test: Likewise. + * tests/pr204.test: Likewise. + * tests/silent-many-gcc.test: Likewise. + * tests/silent-many-generic.test: Likewise. + * tests/silent-yacc-gcc.test: Likewise. + * tests/silent-yacc-generic.test: Likewise. + * tests/subpkg.test: Likewise. + * tests/suffix10.test: Likewise. + * tests/yacc-basic.test: Likewise. + * tests/yacc-clean.test: Likewise. + * tests/yacc-d-basic.test: Likewise. + * tests/yacc-d-vpath.test: Likewise. + * tests/yacc-dist-nobuild.test: Likewise. + * tests/yacc-nodist.test: Likewise. + * tests/yacc4.test: Likewise. + * tests/yacc6.test: Likewise. + * tests/yacc7.test: Likewise. + * tests/yacc8.test: Likewise. + * tests/yaccdry.test: Likewise. + * tests/yaccvpath.test: Likewise. + +2011-01-10 Stefano Lattarini + + yacc: warn about conditional content in *YFLAGS variables + This change fixes automake bug#7804. + * automake.in (lang_yacc_target_hook): Warn if any of the relevant + *YFLAGS variables has conditional contents (not only a conditional + definition). Related refactoring. + * NEWS: Updated. + * tests/yflags-conditional.test: Updated and extended. + * tests/yflags-conditional-force.test: New test. + * tests/Makefile.am (TESTS): Updated. + +2011-01-08 Stefano Lattarini + + yacc: support variable expansions in *YFLAGS definition. + This change fixes automake bug#7800. + * automake.in (lang_yacc_target_hook): Use 'value_as_list_recursive' + instead of 'variable_value' to get the value of *YFLAGS variables. + Related changes. + ($DASH_D_PATTERN): Removed. + * tests/Makefile.am (XFAIL_TESTS): Remove yflags-var-expand.test. + * tests/yacc-clean.test: Remove workaround for now-fixed bug. + * NEWS: Update. + +2011-01-08 Stefano Lattarini + + yacc: more tests on *YFLAGS support + * tests/yflags-var-expand.test: New test, still xfailing. It + exposes automake bug#7800 -- "automake fails to honor `-d' in + AM_YFLAGS when variable expansions are involved". + * tests/yflags-d-false-positive.test: New test, checking that + automake do not spuriously see `-d' in *YFLAGS when that isn't + really there. + * tests/yflags-force-override.test: New test, checking that + automake can cope with definition of the YFLAGS variable in + Makefile.am (even if that is an extremely bad practice, as that + variable is user-reserved). + * tests/yflags-cmdline-override.test: New test, checking that + automake can cope with user-redefinition of YFLAGS at configure + time and/or at make time. + * tests/yflags-conditional.test: New test, checks that automake + warns on conditionally-defined *YFLAGS variables. + * tests/Makefile.am (TESTS, XFAIL_TESTS): Update. + +2011-01-08 Stefano Lattarini + + yacc: extend and improve tests + * tests/yacc-basic.test: Also check that the intermediate C file + is mentioned in the generated Makefile.in, and that it is created + by the first make invocation. + * tests/yacc3.test: Test removed, superseded by ... + * tests/yacc-d-basic.test: ... this new test. + * tests/yacc2.test: Add reference to that new test in the heading + comments. + * tests/yacc-d-vpath.test: New test. + * tests/yaccvpath.test: Updated heading comments. Do not require + gcc anymore, as any working C compiler should be enough. Remove + redundant comments. + * tests/yacc-nodist.test: New test. + * tests/yacc-dist-nobuild.test: New test. + * tests/Makefile.am (TESTS): Update. + +2010-12-13 Stefano Lattarini + + Extend, fix and improve tests on Lex and Yacc support. + * tests/lexcpp.test: New test script, on support for Lex + C++. + * tests/lexvpath.test: New test script, test build and rebuild + rules for lexers in VPATH setup. + * tests/yacc-basic.test: New test script, run simple "semantic" + checks on basic Yacc support (similarly to what lex3.test does + for Lex support). + * tests/lex.test: Don't create useless dummy source file joe.l. + Remove extra blank lines. + * tests/lex4.test: Add trailing `:' command. Do not create dummy + useless lex source file. + * tests/lex2.test: Likewise. Call automake with the `-a' option, + so that it doesn't fail for the absence of `ylwrap' script. Make + grepping of automake stderr stricter. + * tests/yacc7.test: Add trailing `:' command. Enable `errexit' + shell flag earlier (just after having sourced ./defs). + * tests/yacc4.test: Likewise. Also ... + (configure.in): Use pre-populated skeleton set up by ./defs, + instead of writing one from scratch. + Other minor cosmetic changes. + * tests/yacc5.test: Likewise. + * tests/yaccvpath.test: Likewise. Also ... + ($distdir): New variable. + Use it throughout. + * tests/lex5.test: Likewise. + * tests/lex3.test: Likewise. Check the distdir, rather than + grepping the distribution tarball. Extend the test on the + created binary, and be sure to avoid hangs. Add some comments. + * tests/yacc.test: Use stricter grepping. Add trailing `:'. + * tests/yacc6.test: Likewise. + * tests/yacc3.test: Likewise. Do not create the unused file + `Makefile.sed'. Remove useless rules from Makefile.am. Other + minor cosmetic changes. + * tests/yacc2.test: Make grepping of generated `Makefile.in' and + of automake error messages stricter. Do not redirect output of + grep to /dev/null. Move call to aclocal earlier. Reduce the + number of empty blank lines. Fix a typo in comments. + * tests/yacc8.test: Fixed bugs that reduced the completeness of + the tests. Added trailing `:' command. + (configure.in): Use pre-populated skeleton set up by ./defs, + instead of writing one from scratch. + * tests/yaccpp.test: Test also extensions `.y++', `.ypp', and + `.yxx', rather than only `.yy'. + * tests/Makefile.am (TESTS): Update. + +2011-01-07 Stefano Lattarini + + yacc: "make clean" removes .c and .h files from non-distributed .y + Previously, while automake did *not* distribute C source and header + files derived from non-distributed Yacc sources, it still caused + them to be removed only by "make maintainer-clean" only, and not by + simply "make clean" or "make distclean". + This caused "make distcheck" to fail, unless the developer put + those generated .c and .h files in CLEANFILES or in DISTCLEANFILES + by hand. + This change fixes this issue, by making non-distributed `.c' and + `.h' files generated by non-distributed Yacc sources cleaned by + "make clean". + * tests/automake.in (lang_yacc_target_hook): Make C source and + header files derived from non-distributed Yacc files cleaned by + "make clean", not only by "make maintainer-clean". + * tests/yacc-clean.test: New test. + * tests/Makefile.am (TESTS): Update. + * NEWS: Update. + 2011-04-11 Stefano Lattarini depcomp: fix bugs in tests and in the depcomp script