Hello automakers. Here I repropose and extend a patch series aimed at improving the requirements' declaration in Automake test scripts, and to make it easier to run the Automake testsuite using different C/C++/Fortran compilers (without leaning too much towards GNU compilers).
This patch series stemmed from a discussion in this thread: <http://lists.gnu.org/archive/html/automake-patches/2010-06/msg00077.html> and especially from this message: <http://lists.gnu.org/archive/html/automake-patches/2010-06/msg00110.html> There I proposed a first, tentative patch series, but things have rapidly become tangled and confused, and the original thread has become a complete mess (I managed to create that mess all by myself, sorry about that). I'll try hard not to derail this new thread too. As a consequnce, patches might be posted a bit slowly, so that I can have time to double-check and retest them if I deem it appropriate. Regards, Stefano -*-*-*- Stefano Lattarini (14): New requirement "cc" for tests using a C compiler. Drop useless "cc" requirement from a test script. Do not SKIP a test on a command failing with `77' exit status. Make sure all tests needing C compiler require it explicitly. New requirement "c++" for tests using a C++ compiler. Fix `silent*.test' for C++ compilers with "weird" names. Make sure silent*.test work with non-GNU C compilers. Fixes/renamings for "synced tests" among `silent*.test'. Refactor code requiring compilers in testsuite. Tests: new requirements "fortran" and "fortran77" Fix code for requiring gfortran in tests. Refactor code requiring compilers in testsuite. Clobber global CFLAGS etc. when requiring GNU compilers. Make sure all tests needing gzip require it explicitly. ChangeLog | 349 +++++++++++++++++++++++++++++++++ tests/Makefile.am | 17 ++- tests/Makefile.in | 17 ++- tests/acloca13.test | 3 +- tests/aclocal4.test | 4 +- tests/ansi.test | 1 + tests/ansi10.test | 4 +- tests/ansi3.test | 4 - tests/ansi3b.test | 4 - tests/ansi5.test | 10 +- tests/ansi6.test | 4 +- tests/ansi7.test | 4 +- tests/ansi9.test | 4 +- tests/autohdr3.test | 4 +- tests/autohdr4.test | 7 +- tests/autohdr5.test | 70 +++++++ tests/ccnoco.test | 7 +- tests/ccnoco3.test | 7 +- tests/check5.test | 1 + tests/check6.test | 3 +- tests/check7.test | 3 +- tests/check8.test | 1 + tests/check9.test | 1 + tests/cond11.test | 3 +- tests/cond16.test | 11 +- tests/cond18.test | 8 +- tests/cond19.test | 8 +- tests/cond21.test | 3 +- tests/cond22.test | 3 +- tests/cond30.test | 5 +- tests/cond31.test | 5 +- tests/cond32.test | 5 +- tests/cond34.test | 5 +- tests/cond35.test | 6 +- tests/cond36.test | 6 +- tests/cond39.test | 3 +- tests/cond4.test | 6 +- tests/cond5.test | 3 +- tests/condd.test | 3 +- tests/conff.test | 4 +- tests/confh5.test | 1 + tests/config.test | 5 +- tests/defs.in | 135 +++++++++++-- tests/depcomp2.test | 8 +- tests/depcomp3.test | 4 +- tests/depcomp4.test | 4 +- tests/depcomp6.test | 3 +- tests/depcomp7.test | 4 +- tests/depend2.test | 6 +- tests/depend5.test | 3 +- tests/distcleancheck.test | 3 +- tests/distdir.test | 5 +- tests/distname.test | 3 +- tests/exeext.test | 1 + tests/exeext4.test | 1 + tests/fn99.test | 3 +- tests/fn99subdir.test | 3 +- tests/fort4.test | 8 +- tests/fort5.test | 8 +- tests/gnits2.test | 5 +- tests/gnits3.test | 4 +- tests/gnumake.test | 4 +- tests/hfs.test | 21 ++- tests/instdir-ltlib.test | 4 +- tests/instdir-prog.test | 3 +- tests/instfail-libtool.test | 4 +- tests/instfail.test | 3 +- tests/insthook.test | 3 +- tests/java.test | 4 +- tests/java3.test | 3 +- tests/lex3.test | 6 +- tests/lex5.test | 2 +- tests/lflags.test | 1 + tests/lflags2.test | 2 +- tests/libobj14.test | 7 +- tests/libtoo10.test | 4 +- tests/libtoo11.test | 4 +- tests/libtool3.test | 4 +- tests/libtool7.test | 2 +- tests/lisp7.test | 3 +- tests/ltcond.test | 2 +- tests/ltcond2.test | 2 +- tests/ltconv.test | 2 +- tests/ltlibsrc.test | 4 +- tests/ltorder.test | 4 +- tests/makej2.test | 3 +- tests/man3.test | 3 +- tests/man4.test | 3 +- tests/mmodely.test | 7 +- tests/multlib.test | 12 +- tests/nobase.test | 6 +- tests/nostdinc.test | 1 + tests/output10.test | 3 +- tests/output11.test | 3 +- tests/output12.test | 3 +- tests/output7.test | 3 +- tests/output9.test | 3 +- tests/parallel-tests4.test | 1 + tests/parallel-tests5.test | 2 +- tests/parallel-tests7.test | 1 + tests/parallel-tests8.test | 1 + tests/pr204.test | 4 +- tests/pr220.test | 5 +- tests/pr224.test | 6 +- tests/pr287.test | 3 +- tests/pr300-lib.test | 4 +- tests/pr300-prog.test | 4 +- tests/pr401.test | 4 +- tests/pr401b.test | 4 +- tests/pr401c.test | 4 +- tests/pr87.test | 8 +- tests/primary3.test | 4 +- tests/regex.test | 3 +- tests/{silent.test => silent1a.test} | 6 +- tests/{silent.test => silent1b.test} | 10 +- tests/{silent2.test => silent1c.test} | 11 +- tests/{silent.test => silent1d.test} | 12 +- tests/{silent3.test => silent2a.test} | 5 +- tests/{silent9.test => silent2b.test} | 9 +- tests/{silent4.test => silent2c.test} | 7 +- tests/{silent9.test => silent2d.test} | 5 +- tests/silent5.test | 13 +- tests/silent5b.test | 223 +++++++++++++++++++++ tests/silentcxx.test | 12 +- tests/silentcxx2.test | 109 ++++++++++ tests/silentf77.test | 2 +- tests/silentf90.test | 2 +- tests/silentlex.test | 4 +- tests/silentyacc.test | 4 +- tests/specflg10.test | 4 +- tests/specflg7.test | 4 +- tests/specflg8.test | 4 +- tests/stdinc.test | 3 +- tests/strip.test | 1 + tests/subcond2.test | 3 +- tests/subcond3.test | 3 +- tests/subdir5.test | 6 +- tests/subdir8.test | 4 +- tests/subdirbuiltsources.test | 3 +- tests/subobj10.test | 2 +- tests/subobj3.test | 12 +- tests/subobj5.test | 3 +- tests/subobj6.test | 5 +- tests/subobj9.test | 5 +- tests/subpkg.test | 5 +- tests/subpkg2.test | 3 +- tests/subpkg3.test | 3 +- tests/subst2.test | 3 +- tests/substre2.test | 2 +- tests/substref.test | 6 +- tests/suffix10.test | 2 +- tests/suffix11.test | 1 + tests/suffix12.test | 1 + tests/suffix13.test | 1 + tests/suffix8.test | 2 +- tests/tar.test | 3 +- tests/tar2.test | 3 +- tests/target-cflags.test | 2 +- tests/targetclash.test | 3 +- tests/transform.test | 6 +- tests/transform2.test | 4 +- tests/txinfo13.test | 5 +- tests/txinfo16.test | 4 +- tests/txinfo18.test | 4 +- tests/txinfo22.test | 5 +- tests/txinfo23.test | 4 +- tests/txinfo24.test | 4 +- tests/txinfo25.test | 4 +- tests/txinfo28.test | 4 +- tests/txinfo3.test | 6 +- tests/txinfo33.test | 4 +- tests/upc.test | 7 +- tests/upc3.test | 7 +- tests/vala4.test | 4 +- tests/version7.test | 4 +- tests/yacc4.test | 4 +- tests/yacc6.test | 3 +- tests/yacc7.test | 5 +- tests/yacc8.test | 5 +- tests/yacc9.test | 109 ++++++++++ tests/yaccvpath.test | 4 +- tests/yflags.test | 1 + tests/yflags2.test | 2 +- 183 files changed, 1396 insertions(+), 388 deletions(-) create mode 100755 tests/autohdr5.test copy tests/{silent.test => silent1a.test} (94%) copy tests/{silent.test => silent1b.test} (88%) rename tests/{silent2.test => silent1c.test} (88%) rename tests/{silent.test => silent1d.test} (85%) rename tests/{silent3.test => silent2a.test} (95%) copy tests/{silent9.test => silent2b.test} (90%) rename tests/{silent4.test => silent2c.test} (91%) rename tests/{silent9.test => silent2d.test} (95%) create mode 100755 tests/silent5b.test create mode 100755 tests/silentcxx2.test create mode 100755 tests/yacc9.test