kc3-lang/automake

Branch :


Log

Author Commit Date CI Message
0fcbd7c1 2012-06-26 10:40:39 missing: --run is supported again (as a no-op) for use by older automake Commit v1.12.1-87-ga22717d of 2012-06-21 ("missing: do not touch timestamps; only warn for out-of-date files") has removed the '--run' option, since our new preferred calling conventions now imply it; but if a newer 'missing' is mixed with an already built project that used an older Automake version (this happened in practice for GNU m4; see: <http://lists.gnu.org/archive/html/bug-m4/2012-06/msg00001.html>), then the 'Makefile' in that project will fail due to passing the '--run' option when trying to bring the project up-to-date. * lib/missing: Parse and ignore '--run'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9adbc8d7 2012-06-25 10:38:58 missing: don't cater to 'configure.in' in our advice The use of 'configure.in' as autoconf input now deprecated the development versions of both Automake and Autoconf, and we'd like to speed up its demise. * missing: In the advice displayed in case some autotools are detected to be missing, refer to 'configure.ac' unconditionally, instead of referring to 'configure.in' when that file exists in the current directory (and no 'configure.ac' does). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1ece804e 2012-06-23 09:04:46 missing: better tips about missing tools * lib/missing: Try to point the user to the home page of such tools where possible. Also, make clear that some tools (e.g., aclocal or autoheader) are distributed as part of bigger projects (resp. automake and autoconf, in those cases). While at it, refactor and re-format the existing code heavily, in particular introducing (give_advice): ... this new function in the process. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a22717df 2012-06-15 11:13:00 missing: do not touch timestamps; only warn for out-of-date files Before this change, the missing script had a twofold role: - it warned the user if some required maintainer tools was missing, or too old; - in such a case, it tried to "fix" the timestamp of the files that should have been rebuilt by that tool (without actually updating the file contents, of course), to allow the build to continue. The second capability used to be quite useful in the days when most projects committed files generated by maintainer-only tools in their VCS repository (today the trend is not to keep such generated files VCS-committed anymore). In such a setup, the "timestamp-fixing" capability of 'missing' was quite useful, in that it allowed users lacking some required maintainer tool to build from a VCS checkout in the face of skewed timestamps (as could have been caused by "cvs update" or "git checkout"). But then, when the automatic remake rules kicked in due to the generated files being *actually out-of-date* (e.g., because the user had modified 'configure.ac' but lacked a modern-enough autoconf to rebuild it), that behaviour of 'missing' caused the same problem that plagued AM_MAINTAINER_MODE; i.e., the user would get non-dependable builds and inconsistent statuses of the build tree -- changes to source files don't reflect on generated files, and this can be very confusing and cause hard-to-spot errors). So we now believe that the best approach to deal with timestamp-related issues is not to have 'missing' to "automagically" try to resolve them (with all the risk and brittleness entailed), but rather to suggest those projects still keeping generated files committed in their VCS to provide a proper (say) 'fix-timestamp.sh' script that touches the timestamp of the checked-out files, to ensure no spurious rebuild will be triggered. As a bonus, such a script can be more aware of the particularities, nooks and corner cases of a project, and thus more reliable than the old 'missing' script. An example of this approach is offered by GNU awk (release 4.0.1, Git tag 'gawk-4.0.1', commit b85b04e8). The GNU awk maintainers commit the Autotools-generated files (configure, Makefile.in, etc.) and other generated in the project's Git repository, but offer a useful script 'bootstrap.sh' that fixes the timestamps of those files, to ensure no useless remake is triggered in a freshly cloned repository: #! /bin/sh # bootstrap.sh --- touch relevant files to avoid out-of-date issues # in Git sandboxes touch aclocal.m4 find awklib -type f -print | xargs touch sleep 1 touch configure sleep 2 touch configh.in sleep 1 touch test/Maketests find . -name Makefile.in -print | xargs touch touch doc/*.info touch po/*.gmo touch po/stamp-po touch awkgram.c touch command.c touch version.c A similar, simplified script is also reported as an example in the manual. * NEWS: Update. * doc/automake.texi (Auxiliary Programs, maintainer-mod): Update. (CVS): Do not suggest that 'missing' can "automagically" fix botched timestamp due to a "cvs update"; this isn't true anymore. Give an example of a custom 'fix-timestamp.sh' script that can be used to obtain the same effect (in a slightly more laborious but also more explicit and less brittle way). Fix some minor typos and improper wordings while we are at it. * lib/missing: Basically rewritten to implement the new semantics. As a side effect (one of the several), the '--run' option is no more required nor recognized. * m4/missing.m4 (AM_MISSING_HAS_RUN): Enhance the test on '$MISSING' to ensure it actually provides the new semantics (by trying the new "witness" option '--is-lightweight'). * lib/am/distdir.am (distdir): No need anymore to check for "bad" distributed man pages that were actually dummy stubs generated by the 'missing' script. * t/missing4.sh: Rename ... * t/remake-aclocal-version-mismatch.sh: ... like this. * t/missing2.sh: Rename ... * t/missing-version-mismatch.sh: ... like this, and adjust to the new semantics. * t/missing3.sh: Adjust to the new semantics. * t/man4.sh: Remove as obsolete. * t/missing.sh: Likewise. * t/missing5.sh: Likewise. * t/txinfo30.sh: Likewise. * t/man6.sh: Adjust grepping checks. * t/remake6.sh: Likewise. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
7b1697bd 2012-06-15 10:27:27 Merge branch 'maint' * maint: tests: minor reorganization of few tests fixup: adjust t/list-of-tests.mk for renamed/added tests subdirs: enhance coverage, tweak and rename few tests sync: update files from upstream with "make fetch" py-compile: consistently quote 'like this', not `like this'. docs: recursive make considered harmful docs: clean rules are not run in reverse order of build rules anymore silent: new $(AM_V_P) variable, tell if we're running in silent mode refactor: silent rules handling (a little) refactor: &define_verbose_var: accept a third optional argument + Extra non-trivial edits: These are due to the fact that support for silent rules is enabled unconditionally these days (since commit 'v1.12-34-g14141f2' of 2012-05-01, "silent rules: support for them is always active now"). * automake.in: In the new silent related code, do not ever check whether the 'silent-rules' option is active; just assume support for silent rules is enabled. * t/silent-obsolescent-warns.sh: Remove as obsolete. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
db16f500 2012-06-15 10:09:19 Merge branch 'docs-recursion' into maint * docs-recursion: docs: recursive make considered harmful
401a2a82 2012-06-15 10:09:04 Merge branch 'silent-custom' into maint * silent-custom: silent: new $(AM_V_P) variable, tell if we're running in silent mode refactor: silent rules handling (a little) refactor: &define_verbose_var: accept a third optional argument Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9cb6dc88 2012-06-14 23:27:42 tests: minor reorganization of few tests * t/subdir3.sh: Rename ... * t/sourcefile-in-subdir.sh: ... like this. * t/subdir4.sh: Rename ... * t/depcomp-implicit-auxdir.sh: ... like this. * t/subdir6.sh: Rename ... * t/confh-subdir-clean.sh: ... like this. * t/subdir7.sh: Renamed ... * t/dir-named-obj-is-bad.sh: ... like this, and enhance. * t/srcsub.sh, t/srcsub2.sh: Unify ... * t/src-acsubst.sh: ... as this test. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
911a6e9f 2012-06-14 23:04:33 fixup: adjust t/list-of-tests.mk for renamed/added tests Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b72e9747 2012-06-14 22:47:28 subdirs: enhance coverage, tweak and rename few tests * t/subdir5.sh: Rename ... * t/subdir-add-pr46.sh: ... like this. * t/subdir8.sh: Rename ... * t/subdir-add2-pr46.sh: ... like this. * t/cond2.sh: Rename ... * t/subdir-cond-err.sh: ... like this. * t/subdir9.sh: Rename ... * t/subdir-with-slash.sh: ... like this; improve heading comments. * t/subcond.sh: Rename ... * t/subdir-cond-gettext.sh: ... like this; improve m4 quoting. * t/subcond2.sh: Rename ... * t/subdir-am-cond.sh: ... like this; adjust heading comments. * t/subcond3.sh: Rename ... * t/subdir-ac-subst.sh: ... like this; adjust heading comments. * t/subdir2.sh: Rename ... * t/subdir-subsub.sh: ... like this; enhance so that it also runs './configure' and 'make'. * t/subdir-order.sh: New test, check that the $(SUDBIRS) entries are processed in the order they are specified. * doc/automake.texi: Adjust references to tests. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6f01c1e0 2012-06-14 16:32:47 sync: update files from upstream with "make fetch" * lib/config.guess, lib/gitlog-to-changelog, lib/texinfo.tex: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c5f70e79 2012-06-14 16:30:16 py-compile: consistently quote 'like this', not `like this'. * lib/py-compile (usage_error): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
61dfb470 2012-06-12 17:24:21 docs: recursive make considered harmful In the documentation, we shouldn't confuse "packages using subdirectories" with "packages using recursive make invocations". A package can have a careful organization in subdirectories, make no (or almost no) use of make recursion (examples of such packages are GNU bison, GNU cppi, and Automake itself). In fact, make recursion should be used as seldom as possible, because it makes the build system more brittle and dependency declarations less faithful. See Peter Miller's article "Recursive Make Considered Harmful" for more a more in-depth discussion: http://miller.emu.id.au/pmiller/books/rmch/ * doc/automake.texi (Directories): Clarify how a build system based on make recursion does. Observe that such a system, albeit being very widespread, has its own issues and drawbacks, and that one can have a non-recursive setup also for projects using complex directory layout. (Recursing subdirectories): Speak of "packages that use make recursion" rather than of "packages with subdirectories". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a9bd0856 2012-06-12 16:12:45 Merge branch 'subdirs-simplify' into maint * subdirs-simplify: docs: clean rules are not run in reverse order of build rules anymore
aca096de 2012-06-12 16:10:19 docs: clean rules are not run in reverse order of build rules anymore At least since commit 'v1.12.1-12-gec6a135' of 2012-06-10, "subdirs: unify rules for "cleaning" and "normal" recursive targets" * doc/automake.texi (Recursing subdirectories): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2ef0a2d3 2012-06-11 21:39:46 Merge branch 'maint' * maint: maintcheck: fix failures, both real and spurious subdir tests: avoid an use of "make -j4", for portability tests: avoid failure due to libtool quirks in C++ demo test tests: fix spurious failures due to missing '$sleep' subdirs: unify rules for "cleaning" and "normal" recursive targets tests: add a "demo" test on C support tests: look for '.lo' rather than '.o' object when using Libtool with C++ cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" maint: grammar fixes: s/all these/all of these/ subdir-objects: improve "make mostlyclean" efficiency and flexibility Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c8ec1527 2012-06-11 21:27:12 Merge branch 'subdir-objects-pr10697' into maint * subdir-objects-pr10697: maintcheck: fix failures, both real and spurious
511b6896 2012-06-11 21:21:32 maintcheck: fix failures, both real and spurious * syntax-checks.mk (sc_rm_minus_f): Whitelist the 't/subobj-clean*-pr10697.sh' tests. * t/subobj-clean-pr10697.sh: When redefining PATH, use '$PATH_SEPARATOR', not hard-coded ':'. * t/subobj-clean-lt-pr10697.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c45604a7 2012-06-11 19:48:08 tests: merged some testsuite fixlets * fix-cxx-libtool-demo: tests: avoid failure due to libtool quirks in C++ demo test * subdir-objects-pr10697: tests: fix spurious failures due to missing '$sleep' * subdirs-simplify: subdir tests: avoid an use of "make -j4", for portability Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2f67c25f 2012-06-11 19:46:46 subdir tests: avoid an use of "make -j4", for portability Otherwise, a spurious failure with Solaris CCS make can be triggered. The coverage is not actually reduced, since the code path is still covered when one runs the testsuite with AM_TESTSUITE_MAKE="make -jN" (as should be done periodically). * t/subdir-distclean.sh : Call simply "make maintainer-check", not "make -j4 maintainer-check". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c5e9dac8 2012-06-11 19:38:54 tests: avoid failure due to libtool quirks in C++ demo test Revealed by failures on NetBSD 5.1. * t/cxx-lt-demo.sh: In "make distcheck" invocation, don't define 'CC' to "false", as that value would be exported and passed to the child ./configure invocation, and some configure checks generated by libtool autoconf macros can still require a C preprocessor even for packages using only C++, and bail out if it's not found. The problem was not apparent on Solaris and GNU/Linux because those systems have a '/lib/cpp' program, and configure detected and used that as a fallback C preprocessor. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c39549d0 2012-06-11 18:52:38 tests: fix spurious failures due to missing '$sleep' Revealed by failures on NetBSD 5.1. * t/subobj-clean-pr10697.sh: Call '$sleep' before modifying the files that should trigger an automatic remake. * t/subobj-clean-lt-pr10697.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
620362cd 2012-06-11 17:35:35 Merge branches 'subdirs-simplify' and 'subdir-objects-pr10697' into maint * subdirs-simplify: subdirs: unify rules for "cleaning" and "normal" recursive targets tests: add a "demo" test on C support * subdir-objects-pr10697: subdir-objects: improve "make mostlyclean" efficiency and flexibility tests: look for '.lo' rather than '.o' object when using Libtool with C++ cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ec6a1357 2012-06-10 23:08:07 subdirs: unify rules for "cleaning" and "normal" recursive targets Before this change, the recursive invocation of cleaning targets in the $(SUBDIRS) where done in inverse order, i.e., starting from the last $(SUBDIRS) entry and proceeding towards the first. According to the code comments, this was done ... ... in an attempt to alleviate a problem that can happen when dependencies are enabled. In this case, the .P file in one directory can depend on some automatically generated header in an earlier directory. Since the dependencies are required before any target is examined, make bombs. But this comment does not apply anymore to the current implementation of automatic dependency tracking: the '.Po' and '.Plo' files does not depend on any C header or source file, ever! So it seems that the distinction between "normal" and "cleaning" recursive targets is a stale leftover of an older implementation of the automatic dependency tracking. In fact, the Automake History manual seems to confirm this suspect; the section "First Take on Dependency Tracking" reads: Because each .P file was a dependency of Makefile, this meant that dependency tracking was done eagerly by make. For instance, "make clean" would cause all the dependency files to be updated, and then immediately removed. This eagerness also caused problems with some configurations; if a certain source file could not be compiled on a given architecture for some reason, dependency tracking would fail, aborting the entire build. and the following section "Dependencies As Side Effects" reads: In this approach, the .P files were included using the -include command, which let us create these files lazily. This avoided the "make clean" problem. So the distinction between "normal" and "cleaning" recursive targets has likely been obsolete since by then already. We can thus remove such distinction, thus reducing some complications and duplication in our rules. Doing so, the whole testsuite still passes (both with GCC and Sun C 5.9), even the test 'c-demo.sh', which, among the other things, exercise the setup described in the obsolete code comment referenced above. Finally, note that we still keep '$(RECURSIVE_CLEAN_TARGETS)' and '$(RECURSIVE_TARGETS)' as two distinct variables, to ensure a better backward-compatibility for any user-defined rules that happen to use those variables. * NEWS: Update. * lib/am/subdirs.am ($(RECURSIVE_CLEAN_TARGETS), $(CLEAN_TARGETS)): Merge their recipes. * t/subdir-distclean.sh: New test, check that "./configure && make && make distclean" is actually a no-op, even when conditional SUBDIRS are involved. * t/list-of-tests.mk: Add it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
af5d52b7 2012-06-11 00:49:18 tests: add a "demo" test on C support Showing and testing non-trivial use of C support, and its interaction with other features. * t/c-demo.sh: New test. * t/list-of-tests.mk: Add it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
066c8cad 2012-06-09 20:13:43 tests: look for '.lo' rather than '.o' object when using Libtool with C++ * t/cxx-lt-demo.sh: ... in this test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
dbbcd360 2012-06-09 20:04:24 cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" The typofixes offered by this patch have been suggested by the "codespell.py" script. Reference: <http://git.profusion.mobi/cgit.cgi/lucas/codespell/> * old/ChangeLog.01, old/ChangeLog.02, old/ChangeLog.03: Fix few typos. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
825722a1 2012-06-11 16:12:01 silent: new $(AM_V_P) variable, tell if we're running in silent mode Addresses part of automake bug#8665. * automake.in (handle_silent): Define a new make variable '$(AM_V_P)', that expands to a shell conditional that can be used in make recipes to determine whether they are being run in silent mode or not. The choice of the name derives from the LISP convention of appending the letter 'P' to denote a predicate (see also "the '-P' convention" in the Jargon File); we do so for lack of a better convention. * t/automake.texi, NEWS: Document the new variable. * t/silent6.sh: Adjust and extend. Move out the checks that didn't actually deal with user extension of silent rules ... * t/silent-obsolescent-warns.sh: ... into this test (bound to be removed once 'maint' is merged into the 'master' branch). * t/list-of-tests.mk: Add the new test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5f6e8015 2012-06-11 13:00:23 refactor: silent rules handling (a little) * automake.in (handle_languages): Move definition of $(AM_V_GEN) variable ... (define_verbose_tagvar): ... and of '$(AM_V_at)' variable ... (handle_silent): ... in this new subroutine. (generate_makefile): Call it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1f009dac 2012-06-11 12:48:29 refactor: &define_verbose_var: accept a third optional argument This is only required by future changes. * automake.in (define_verbose_var): Accept a third optional argument, specifying the value to assign to the given make variable when silent rules are disabled. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
fa0cd34b 2012-06-10 22:03:49 maint: grammar fixes: s/all these/all of these/ Run this command: git grep -li '\<all.these\>' \ |xargs perl -pi -e 's/\b([Aa])ll these\b/${1}ll of these/'
06dfdbe3 2012-06-10 13:38:58 subdir-objects: improve "make mostlyclean" efficiency and flexibility Fixes automake bug#10697. Before this change, the generated Makefile issued one 'rm' invocation for each subdir object file. Not only was this very inefficient when there were several such files, but it also caused stale object files to be left behind when a source file was renamed or removed. * automake.in (handle_single_transform): When a subdir object is seen, update '%compile_clean_files' to clean all the compiled objects in its same subdirectory, and all the libtool compiled objects ('.lo') there as well is that subdir object is a libtool one. * t/subobj-clean-pr10697.sh: New test. * t/subobj-clean-lt-pr10697.sh: Likewise. * t/list-of-tests.mk: Add them. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c8d13b61 2012-06-09 20:15:18 Merge branch 'maint' * maint: tests: look for '.lo' rather than '.o' object when using Libtool with C++ cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" tests: add basic semantic tests on C++ support tests: minor tweak to 't/objc-megademo.sh'
98b96fcc 2012-06-09 20:13:43 tests: look for '.lo' rather than '.o' object when using Libtool with C++ * t/cxx-lt-demo.sh: ... in this test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0e489645 2012-06-09 20:04:24 cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" The typofixes offered by this patch have been suggested by the "codespell.py" script. Reference: <http://git.profusion.mobi/cgit.cgi/lucas/codespell/> * old/ChangeLog.01, old/ChangeLog.02, old/ChangeLog.03: Fix few typos. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f3710b5b 2012-06-09 15:11:10 tests: add basic semantic tests on C++ support Strange as it might seem, we were still missing them (yikes). * t/cxx-demo.sh: New test. * t/cxx-lt-demo.sh: Likewise (using libtool). * t/list-of-tests.mk: Add them. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3cd1a2d0 2012-06-09 13:50:12 tests: minor tweak to 't/objc-megademo.sh' * t/objc-megademo.sh (am_create_testdir): Define to "empty" before including ./defs, because this test doesn't rely on the files usually pre-set by the setup in there. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
995e5ff0 2012-06-07 19:14:30 cleanup: simplify subroutine '&saw_extension' * automake.in (saw_extension): Now that we use the '%extension_seen' hash only as a set (it's keys being its elements), we can simplify the implementation of this function accordingly. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5f54e9ec 2012-06-07 19:14:12 cleanup: remove subroutine '&saw_sources_p' * automake.in (saw_sources_p): Remove, its implementation is now so trivial that it's easier to inline it into ... (handle_languages): ... it's only caller. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2fbd43d6 2012-06-07 19:13:39 cleanup: remove unused '&count_files_for_language' subroutine * automake.in (count_files_for_language): Remove. Its only remaining caller (saw_sources_p) has stopped calling it in the previous commit. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
be7cd4fa 2012-06-07 19:12:43 automake: simplify '&saw_sources_p' This is just a minor cleanup. No semantic change is intended. * automake.in (saw_sources_p): Since its now-only caller calls it with the '0' argument, remove the code paths that assumed the argument could be '1', and assume no arguments. (handle_languages): Drop the arguments '0' in the '&saw_sources_p' invocation. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11a645aa 2012-06-07 19:12:11 tags: look at $(am__tagged_files) to decide whether to activate This is just a preparatory refactoring in view of future changes. * automake.in (handle_tags): To decide whether to include the tags rules, rely on whether the automake-defined variable $(SOURCES) is non-empty, rather than on the fact that '&saw_sources(1)' returns true. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
712c083e 2012-06-07 20:13:37 tags: new var $(am__tagged_files) to list all files to run taggers on This change reduce code duplication a little, and will be needed by future simplifications. * automake.in (handle_tags): Define a new 'am__tagged_files' private make variable that lists all files to run taggers (mkid, cscope, ctags, etc) on. Drop the now-useless transform '%CONFIG%' when including 'tags.am'. * lib/am/tags.am: Use it in several recipes and dependencies list to reduce code duplication. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cb497781 2012-06-07 19:41:37 tags (cscope): also process $(TAGS_FILES) * lib/am/tags.am (cscopelist): Also scan the files (if any) listed in the '$(TAGS_FILES) variable, for consistency by what is done by the 'ID', 'TAGS' and 'CTAGS' rules. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
32fab273 2012-06-07 19:19:15 tags (ID, cscope): also process config header (if any) * lib/am/tags.am (cscopelist, ID): Also scan the file given by the '%CONFIG%' transform, for consistency by what is done by the 'TAGS' and 'CTAGS' rules. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e92bd2e7 2012-06-02 09:54:17 Merge branch 'maint' * maint: news: document deprecation of configure.in news: put planned backward compatibilities early sync: update files from upstream with "make fetch" maint: deprecate 'configure.in' as autoconf input maint: post-release minor version bump release: stable release 1.12.1 copyright: update copyright years in a couple of files tests: avoid spurious failures with Solaris 9 cscope program maintcheck: fix a spurious failure perf: beginning of a performance testsuite aclocal: declare function prototypes, do not use '&' in function calls news: support for configure.in will be dropped in future automake versions tests: fix botched heading comments in 'lex-clean-cxx.sh' [ng] maintcheck: some tweaks and fixlets help: fix a typo in the list of warning categories maint: version bump after beta release release: beta release 1.12.0b (will become 1.12.1) release: remove overly picky check Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
64766637 2012-06-02 09:34:29 news: document deprecation of configure.in * NEWS (Warnings and deprecations): We now warn if 'configure.in' is used instead of 'configure.ac' as autoconf input. (Future backward-incompatibilities): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cdf93deb 2012-06-02 09:24:29 news: put planned backward compatibilities early * NEWS (Future backward-incompatibilities): Put them in the news entries for the future 1.12.2 release. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
94dc4ba0 2012-06-01 20:24:20 sync: update files from upstream with "make fetch" * lib/config.sub, lib/gitlog-to-changelog, lib/texinfo.tex: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
96497293 2012-06-01 19:15:29 maint: deprecate 'configure.in' as autoconf input It has been years since that has been deprecated in the documentation, in favour of 'configure.ac': Previous versions of Autoconf promoted the name configure.in, which is somewhat ambiguous (the tool needed to process this file is not described by its extension), and introduces a slight confusion with config.h.in and so on (for which '.in' means "to be processed by configure"). Using configure.ac is now preferred. It's now time to start giving runtime warning about the use of 'configure.in', so that support for it can be removed in future versions of autoconf/automake. See also, in the Autoconf repository, commit 'v2.69-4-g560f16b' of 2012-05-23, "general: deprecate 'configure.in' as autoconf input". * lib/Automake/Configure_ac.pm: Issue a warning in the 'obsolete' category if 'configure.in' is detected. Since this module is synced from Automake, this change is to be backported there (and will be soon). * t/help.sh: Adjust. * t/configure.sh: Adjust and enhance. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12bef166 2012-06-01 18:55:14 maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.1a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
58cad831 2012-06-01 15:50:03 release: stable release 1.12.1 * configure.ac (AC_INIT): Bump version number to 1.12.1. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
192d699a 2012-06-01 15:47:17 copyright: update copyright years in a couple of files * doc/help2man, t/aclocal-verbose-install.sh: Update copyright, thanks to "make update-copyright". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
423105aa 2012-06-01 12:37:41 tests: avoid spurious failures with Solaris 9 cscope program * t/cscope.tap: Also check that the cscope program in use supports the '-q' option; if this is not the case, some cscope usages in the generated Makefiles would fail, so we must skip the checks involving those usages. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9a7a83ba 2012-06-01 11:49:16 maintcheck: fix a spurious failure * Makefile.am (test_subdirs): Add 't/perf'. Fix spurious failure of the 'maintainer-check-list-of-tests' target. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ff022f46 2012-05-29 11:58:02 perf: beginning of a performance testsuite Some tests in the Automake testsuite already aims only at verifying the performance, rather than the correctness, of some operations. Still, they are somewhat shoehorned and forced into the PASS/FAIL framework (say, with the 'ulimit' shell builtin used to verify some operation doesn't take up too much time or memory), but that is conceptually a stretch, and has already caused problems in practice (see automake bug#11512 for an example). So we start moving the "performance tests" out of the testsuite proper, and make them run only "on demand" (when the user exports the variable 'AM_TESTSUITE_PERF' to "yes"). Ideally, we should provide those tests with a custom runner/driver that measures and displays the relevant performance information, but doing that correctly and with the right APIs is definitely more difficult, so we leave it for a later step (an hope we'll take such a step eventually). * t/cond29.sh: Move ... * t/perf/cond.sh: ... here, and adjust. * t/testsuite-recheck-speed.sh: Move ... * t/perf/testsuite-recheck.sh: ... here. * t/testsuite-summary-speed.sh: Move ... * t/perf/testsuite-summary.sh: ... here. * t/list-of-tests.mk (perf_TESTS): New variable, listing the tests in the 't/perf' directory. (handwritten_TESTS): Adjust. * defs: Skip any tests in the 't/perf/' subdirectory unless the 'AM_TESTSUITE_PERF' variable is set to "yes" or "y". * .gitignore: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e6184b2c 2012-05-29 09:36:26 Merge branch 'fix-pr11543' into maint * fix-pr11543: aclocal: declare function prototypes, do not use '&' in function calls
6bf58a59 2012-05-28 13:32:03 aclocal: declare function prototypes, do not use '&' in function calls This change will also fix automake bug#11543 (from a report by Matt Burgess). * aclocal.in: Declare prototypes for almost all functions early, before any actual function definition (but omit the prototype for the dynamically generated '&search' function). Add prototypes to any function definition. Remove '&' from function invocations (i.e., simply use "func(ARGS..)" instead of "&func(ARGS...)"). * THANKS, NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
abc3d3d1 2012-05-28 13:52:34 news: support for configure.in will be dropped in future automake versions The use of configure.in as Autoconf input has been deprecated for a very long time in the Autoconf documentation, and the next version of Autoconf (2.70) will start warning about it ar runtime as well (see commit 'v2.69-4-g560f16b' or 2012-05-23, "general: deprecate 'configure.in' as autoconf input", in the Autoconf's git repository). * NEWS (Future backward-incompatibilities): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
21da52c2 2012-05-27 19:33:26 missing: support AC_CONFIG_HEADERS in addition to obsolete AC_CONFIG_HEADER * missing (autoheader*): Do not look only for AC_CONFIG_HEADER when grepping configure.ac, but also for AC_CONFIG_HEADERS: the latter has been preferred to the former by several years now in Autoconf. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
8ad470b6 2012-05-27 19:05:14 missing: don't bother checking for AM_CONFIG_HEADER: it is gone now * missing (autoheader*): Do not look for AM_CONFIG_HEADER when grepping configure.ac: it is not supported anymore (has been in fact deleted in commit v1.12-15-gd2ca168 of 2012-04-27, "m4: delete several obsolete macros"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a12d9e9c 2012-05-27 18:47:46 docs: remove mention of AM_CONFIG_HEADER: it is obsolete and removed now * doc/automake.texi (Variables used when building a program): Remove obsolete mention of AM_CONFIG_HEADER as an alias to AC_CONFIG_HEADERS. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
8ef057e4 2012-05-26 18:01:23 tests: fix botched heading comments in 'lex-clean-cxx.sh' * t/lex-clean-cxx.sh: This file tests lex, not yacc. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6bd70f6a 2012-05-25 18:49:07 [ng] maintcheck: some tweaks and fixlets * syntax-checks.mk (sc_no_brace_variable_expansions): Do not complain about ${MAKEVAR} usages in comments: they might be legitimate. This change is not strictly required for mainline automake, but will help in the Automake-NG branch. * sc_tests_here_document_format: Relax a bit, so that usages like "cout << "string" << endl;" in the test scripts (usages which can be used in here documents defining C++ sources) are not flagged as uses of bad delimiters for here documents. This change is not strictly required for mainline automake, but will help in the Automake-NG branch, and will anyway be more future proof w.r.t. possible future testsuite additions. (sc_tests_Exit_not_exit): Do not whitelist lines containing $PERL explicitly (that was only required for one test); instead ... * t/ext2.sh: ... use "exit (1)" instead of "exit 1" in the perl invocation of the guilty script. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
52062eb2 2012-05-25 14:50:05 Merge branch 'am-init-automake' * am-init-automake: init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e186355f 2012-05-19 11:47:26 init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore This is a follow-up on commit v1.12-66-g27136df of 2012-05-06, "init: warn against obsolete usage of AM_INIT_AUTOMAKE". With this change, we drop support for the two-arguments and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro, as in either of: AM_INIT_AUTOMAKE($PACKAGE, $VERSION) AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE) * NEWS, doc/automake.texi: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments invocation form as a hard error. * t/aminit-moreargs-deprecation.sh: Renamed ... * t/aminit-moreargs-deprecation.sh: ... to this, and updated to check the new semantics. * t/ac-output-old.tap: Adjust by avoiding old-style uses of AC_INIT and AM_INIT_AUTOMAKE. * t/acsilent.sh: Likewise. * t/dirlist.sh: Likewise. * t/dirlist2.sh: Likewise. * t/req.sh: Likewise. * t/nodef.sh: Remove as obsolete. * t/version.sh: Likewise. * t/version2.sh: Likewise. * t/backcompat.sh: Likewise. * t/backcompat2.sh: Likewise. * t/backcompat3.sh: Likewise. * t/backcompat5.sh: Likewise. * t/backcompat4.sh: Renamed ... * t/backcompat-acout.sh: ... to this. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0d1e28a8 2012-05-21 15:44:14 help: fix a typo in the list of warning categories * lib/Automake/ChannelDefs.pm (usage): s/none'/none/. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
16bf8ebc 2012-05-19 15:27:21 maint: version bump after beta release * configure.ac (AC_INIT): Bump version number to 1.12.0c. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0bec8b53 2012-05-19 15:18:43 release: beta release 1.12.0b (will become 1.12.1) * configure.ac (AC_INIT): Bump version number to 1.12.0b. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a36a8f6e 2012-05-19 15:11:36 release: remove overly picky check * Makefile.am (git-tag-release): Do not check that the version number NEWS is updated w.r.t. $(VERSION); given the new way we manage NEWS, that would cause gratuitous spurious failures. * HACKING: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cb702406 2012-05-19 14:13:39 Merge branch 'parallel-tests-default' * parallel-tests-default: check: the parallel-tests driver is now the default
f67dfa6e 2012-05-19 14:09:55 Merge branch 'maint' * maint: ylwrap: preserve subdirectories in "#line" munging ylwrap: preparatory refactoring
91ac5d2c 2012-05-19 13:22:12 Merge branch 'ylwrap-line-filename' into maint * ylwrap-line-filename: ylwrap: preserve subdirectories in "#line" munging ylwrap: preparatory refactoring
5e771b27 2012-05-18 18:00:51 check: the parallel-tests driver is now the default The old serial testsuite driver is still supported, and can be activated by the 'serial-tests' option (introduced by commit 'v1.11-1989-gdeb7773' of 2012-02-20, "automake: new option 'serial-tests'"). * lib/Automake/Options.pm: Now, the 'parallel-tests' option is a no-op (but still explicitly recognized, for backward compatibility), while the 'serial-tests' option is recognized and registered. * automake.in: Adjust to ensure that the parallel test harness is used by default; mostly, this amounts at using "! option('serial-tests')" where "option('parallel-tests')" was used before. * NEWS, doc/automake.texi: Update. * configure.ac (AM_INIT_AUTOMAKE): Drop 'parallel-tests' option, is redundant now. * defs: In the generated AM_INIT_AUTOMAKE call, use the 'serial-tests' when the serial testsuite harness is to be used, and no option otherwise. * lib/am/check.am: Use (static) conditional '%SERIAL_TESTS%' instead of conditional '%PARALLEL_TESTS%'. * lib/test-driver: Adjust heading comments. * t/ax/extract-testsuite-summary.pl: Likewise. * t/check-exported-srcdir.sh: Likewise. * t/check-subst.sh: Likewise. * t/java-compile-run-nested.sh: Likewise. * t/parallel-tests-dry-run-1.sh: Likewise. * t/parallel-tests-dry-run-2.sh: Likewise. * t/parallel-tests-interrupt.sh: Likewise. * t/parallel-tests-many.sh: Likewise. * t/test-metadata-global-log.sh: Likewise. * t/tests-environment-backcompat.sh: Likewise. * m4/init.m4 (AM_INIT_AUTOMAKE): Adjust a comment. * t/check8.sh: Likewise. * t/check-tests-in-builddir.sh: Likewise. * t/java-compile-run-flat.sh: Adjust a botched comment. * t/ax/tap-summary-aux.sh: Remove explicit use of the 'parallel-tests' option. * t/ax/testsuite-summary-checks.sh: Likewise. * t/aclocal-path-precedence.sh: Likewise. * t/dist-aux-many-subdirs.sh: Likewise. * t/parallel-tests-no-color-in-log.sh: Likewise. * t/parallel-tests-reset-term.sh: Likewise. * t/parallel-tests-subdir.sh: Likewise. * t/check-no-test-driver.sh: Fix setup to adjust to the changed semantics. Update heading comments. * t/parallel-tests-driver-install.sh: Adjust to the new semantic. * t/test-driver-is-distributed.sh: Simplified according to the new semantics. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
7b6129b9 2012-05-18 14:31:36 Merge branch 'maint' * maint: tests: use 'parallel-tests' Automake option by default doc: fix location of Automake's own test-suite.log file yacc tests: avoid a spurious failure with Sun C++ 5.9 self tests: cater for /bin/ksh symlinked to Zsh tests: fix spurious failures due to dpkg install-info Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
7b142a7b 2012-05-15 16:12:09 tests: use 'parallel-tests' Automake option by default This will help our transition from 'serial-tests' to 'parallel-tests' as the default test suite driver enabled by a TESTS assignment in the input Makefile.am. Note that that change of default will only take place in master, though. * defs: Pass the 'parallel-tests' option to the AM_INIT_AUTOMAKE invocation in the created 'configure.ac' stub, unless the variable 'am_serial_tests' is set to "yes". Don't pay attention anymore to the 'am_parallel_tests' variable, that's obsolete now. * defs-static.in: Warn if the 'am_serial_tests' variable is set in the environment; conversely, don't warn anymore about 'am_parallel_tests' being set in the environment. * Makefile.am (AM_TESTS_ENVIRONMENT): Nullify the 'am_serial_tests' variable instead of the now-obsolete 'am_parallel_tests' one. * syntax-checks.mk (sc_tests_obsolete_variables): Also warn against uses of 'am_parallel_tests', which is now deprecated in favor of 'am_serial_tests'. Similarly, if a use of 'parallel_tests' is seen, suggest using 'am_serial_tests' instead, not 'am_parallel_tests'. * gen-testsuite-part: Now that we use the 'parallel-tests' by default in our tests, we need to completely change the logic and semantics of generation of sibling tests for those tests that check the Automake generated testsuite harness itself. Do that, and give a complete explanation of the new logic and semantics in the relevant comments. * t/README: Update. * Lots of test cases: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
8084ae1b 2012-05-17 12:36:23 doc: fix location of Automake's own test-suite.log file * doc/automake.texi (Reporting Bugs): The global testsuite log of Automake is now (basically since we have removed make recursion from the Automake's build system) saved in the file 'test-suite.log', not in the file 'tests/test-suite.log'. Adjust accordingly. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b6359a5f 2012-05-16 18:16:41 ylwrap: preserve subdirectories in "#line" munging If Automake is used in non-recursive mode and one of the inputs is a yacc file, for example, "src/grammar.y", ylwrap will remove too many directories from the output file when it adjusts the paths in it. This results in #line directives referring to "grammar.y" instead of "src/grammar.y". This is a result of $input_rx simply taking all the directory components of the absolute input path and removing them. One solution is to store the path passed to ylwrap and replace $input_rx with it. This is what we do. Suggestion and initial patch (without tests) by Nikolai Weibull: <http://lists.gnu.org/archive/html/automake/2012-05/msg00013.html> Final patch by Stefano Lattarini. * lib/ylwrap ($input_sub_rx): New. When munging the #line directives, substitute '$input_rx' with it, instead of stripping it altogether. Adjust comments. * t/yacc-line.sh, t/lex-line: Adjust and extend. * NEWS, THANKS: Update. Copyright-paperwork-exempt: yes Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0ce63a38 2012-05-16 17:35:05 ylwrap: preparatory refactoring This commit should cause no semantic change in the ylwrap behaviour. It will only be needed in light of a future change. See: <http://lists.gnu.org/archive/html/automake/2012-05/msg00013.html> * lib/ylwrap (get_dirname, quote_for_sed): New functions, factoring out some non-trivial code. Use them where appropriate. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0592e126 2012-05-16 16:26:39 yacc tests: avoid a spurious failure with Sun C++ 5.9 * t/yacc-cxx.sh (parse1.yy): When calling the 'getchar' function declared in the #included <cstdio>, fully qualify it as std::getchar', to avoid Sun C++ 5.9 erroring out with: "parse1.yy", line 5: Error: The function "getc" must have a prototype. * t/yacc-clean-cxx.sh (sub1/parsefoo.yxx): Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f9006f81 2012-05-16 16:10:06 self tests: cater for /bin/ksh symlinked to Zsh * t/self-check-reexec.tap: When searching for a suitable non-Bash shells, be sure to reject any shell that is Zsh "in disguise" (as can be found on some Debian systems, where /bin/ksh can be symlinked to /bin/zsh4). This is required because our testsuite does not support older versions of Zsh, and that was causing the test to fail in the setup just described. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
911204a1 2012-05-16 15:50:14 tests: fix spurious failures due to dpkg install-info * t/install-info-dir.sh: Skip some checks if 'install-info' is the one from dpkg, not the one from GNU info; the former might try to create files in '/var/backups/', causing spurious failures like this for any non-root user: install-info(.../install-info-dir.dir/_inst/info/foo.info): \ creating new section `Dummy utilities' cp: cannot create regular file `/var/backups/infodir.bak': \ Permission denied install-info(.../install-info-dir.dir/_inst/info/foo.info): \ could not backup .../install-info-dir.dir/_inst/info/dir in \ /var/backups/infodir.bak: No such file or directory Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e2516738 2012-05-13 14:10:25 Merge branch 'maint' * maint: tests: fix spurious failure due to i18n issue tests: add few missing 'cc' and 'c++' requirements
d89da9c2 2012-05-12 08:42:37 tests: fix spurious failure due to i18n issue Fixes automake bug#11452. * t/parallel-tests-fork-bomb.sh: Export LANG, LANGUAGE and LC_ALL to 'C', to ensure error messages will be in English, and thus avoiding possible false negatives in our grepping of them. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9c86ba6b 2012-05-10 14:32:27 tests: add few missing 'cc' and 'c++' requirements Without that requirements, the configure-time overrides of CC and CXX wouldn't be honored in the affected tests. * t/silent-yacc.sh ($required): Require 'cc'. * t/silent-yacc-headers.sh: Likewise. * t/silent-lex.sh: Likewise. * t/lex-clean.sh: Likewise. * t/lex-depend.sh: Likewise. * t/lex-line.sh: Likewise. * t/lex-depend.sh: Likewise. * t/lex-pr204.sh: Likewise. * t/yacc-deleted-headers.sh: Likewise. * t/yacc-line.sh: Likewise. * t/yacc-depend.sh: Likewise. * t/yacc-depend2.sh: Likewise. * t/yacc-dist-nobuild-subdir.sh: Likewise. * t/yacc-bison-skeleton.sh: Likewise. * t/yacc-bison-skeleton-cxx.sh ($required): Require 'c++'. * t/yacc-clean-cxx.sh: Likewise. * t/yacc-d-cxx.sh: Likewise. * t/yacc-cxx.sh: Likewise. * t/yacc-mix-c-cxx.sh ($required): Require 'cc' and 'c++'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
069d7880 2012-05-08 13:22:59 fixup: s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/ in 't/confsub.sh' Issue introduced in the recent merge 'v1.12-101-g12405c9'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12405c9f 2012-05-08 12:49:36 Merge branch 'maint' * maint: tests: fix a spurious failure with dash test defs: fix indentation (cosmetic change) tests: remove obsolete uses of $sh_errexit_works configure: search a sturdy POSIX shell to be used in the testsuite tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL fixup: distribute t/README init: warn against obsolete usage of AM_INIT_AUTOMAKE Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
33c59ec5 2012-05-07 22:11:28 Merge branch 'testsuite-saner-shell' into maint * testsuite-saner-shell: tests: fix a spurious failure with dash test defs: fix indentation (cosmetic change) tests: remove obsolete uses of $sh_errexit_works configure: search a sturdy POSIX shell to be used in the testsuite tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL
f974da70 2012-04-23 19:03:33 tests: fix a spurious failure with dash The dash shell, at least version 0.5.5.1, doesn't always bail out with a syntax error when a stray "fi" in encountered: $ dash -c ":; fi"; echo stat = $? stat = 0 See also the relevant bug report: <http://permalink.gmane.org/gmane.comp.shells.dash/717> This behaviour was causing a spurious error in our testsuite. Fix it. * t/self-check-exit.tap: Use a stray parentheses rather than a stray 'fi' to trigger a syntax error. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1cf7d188 2011-12-28 13:23:31 test defs: fix indentation (cosmetic change) * defs (exit trap): Fix indentation left botched by previous patch 'v1.11b-51-g626bf65'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6b641de5 2011-12-28 13:23:31 tests: remove obsolete uses of $sh_errexit_works After the last changes, configure will ensure that the shell selected to run the test scripts can correctly propagate exit status to the exit trap when 'set -e' is in effect. * configure.ac (sh_errexit_works): Do not AC_SUBST it anymore. * defs-static.in (sh_errexit_works): Do not initialize from the AC_SUBST value anymore. * defs (trap): Trap the EXIT signal unconditionally. * t/self-check-explicit-skips.sh: Do not skip the test if '$sh_errexit_works' is != "yes", this check doesn't make sense anymore. * t/self-check-cleanup.tap: Likewise. * t/self-check-exit.tap: Assume the exit trap is always installed by ./defs. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2d68fd9b 2011-12-28 13:23:31 configure: search a sturdy POSIX shell to be used in the testsuite * configure.ac: Add code (partially inspired to checks in gnulib's 'tests/init.sh') to search for a good-enough, not-buggy POSIX/XSI shell to be used in our testsuite. Accordingly AC_SUBSTitute the variable 'AM_TEST_RUNNER_SHELL'. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
21d1b934 2011-12-28 13:23:31 tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL This is just a preparatory refactoring for future changes. * configure.ac (AM_TEST_RUNNER_SHELL): New variable, defined to $SHELL', and AC_SUBST'd. * Makefile.am (LOG_COMPILER): Redefine from $(SHELL) to $(AM_TEST_RUNNER_SHELL). * defs: Adjust to use $AM_TEST_RUNNER_SHELL instead of $CONFIG_SHELL and/or $SHELL, where appropriate. Minor opportunistic changes. * t/self-check-explicit-skips.sh: Likewise. * t/self-check-sanity.sh: Likewise. * t/self-check-tap.sh: Likewise. * t/self-check-cleanup.tap: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-env-sanitize.tap: Likewise. * t/self-check-exit.tap: Likewise. * t/self-check-me.tap: Likewise. * t/self-check-reexec.tap: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1cab373b 2012-05-06 13:33:09 fixup: distribute t/README Since commit v1.11-2128-g8e02441 of 2012-04-06, "maint: no more make recursion in Automake's build system" we haven't been distributing the testsuite README file in our release tarballs. Oops. * Makefile.am (EXTRA_DIST): Add 't/README'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
27136dfe 2012-03-31 16:39:32 init: warn against obsolete usage of AM_INIT_AUTOMAKE Support for the two- and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro, as in: AM_INIT_AUTOMAKE($PACKAGE, $VERSION) or: AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE) will be removed in the next major Automake release (1.13). Such usages have already been deprecated in the documentation starting from commit v1.11-2015-ge99690a of 23-02-2012 "docs, news: document planned removal of obsolete macros and features". We now start giving runtime warnings as well (in the 'obsolete' category). * NEWS: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments form invocation. * automake.in (scan_autoconf_traces): Likewise. * doc/automake.texi: Minor adjustments. Add an @anchor to the location where it's described how to modernize outdated invocation of AM_INIT_AUTOMAKE, so that it can be referenced from automake warning/error messages. * t/aminit-moreargs-deprecation.sh: New test. * tests/list-of-tests.mk: Add it. * tests/ac-output-old.tap: Adjust by calling automake with the warnings in the 'obsolete' category disabled. * t/backcompat.test: Likewise. * t/backcompat3.test: Likewise. * t/backcompat5.test: Likewise. * t/backcompat6.test: Likewise. * t/version.test: Likewise. * t/version2.test: Likewise. * t/pr2.test: Modernize style of AC_INIT and AM_INIT_AUTOMAKE invocations, and use proper m4 quoting. * t/pr87.test: Likewise. * t/confsub.test: Likewise. * t/install2.test: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
adb834eb 2012-05-06 11:04:45 Merge branch 'maint' * maint: m4: prepend m4 builtins with "m4_" docs: fix clumsy grammar in the scripts-based testsuite chapter Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
37267407 2012-05-06 10:15:59 m4: prepend m4 builtins with "m4_" The comments in 'lib/autoconf/autoconf.m4' from Autoconf 2.69 read: We discourage the use of the non prefixed macro names: M4sugar maps all the builtins into 'm4_'. Autoconf has been converted to these names too. But users may still depend upon these, so reestablish them. Alas, in our init.m4 files, we were still using m4 builtins without prefixing them with "m4_". Not nice for a package that is one of the major clients of Autoconf, and an integral part of the GNU Autotools! Fix the issue. * m4/init.m4 (AM_INIT_AUTOMAKE): Use 'm4_define' and 'm4_defn' instead of 'define' and 'defn'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
68075ce0 2012-05-05 21:48:49 require: autoconf >= 2.65; related simplifications The new support for Objective C++ (to be added in Automake 1.12.1) can be simplified if we assume Autoconf version 2.65 or later (2.65 being the version that introduced support for Objective C++). Since such an Autoconf version is two and half years old now (and will likely be almost three years old when Automake 1.13 gets released), requiring it is acceptable. This will also simplify testing and maintenance of Automake, because we'll need to test with fewer Autoconf version, and possibly rely on new Autoconf features. * NEWS (Version requirements): Automake 1.13 will require Autoconf 2.65 or later. * configure.ac ($required_autoconf_version): Bump to 2.65. * m4/init.m4 (AM_INIT_AUTOMAKE): Require Autoconf >= 2.65. Assume AC_PROG_OBJCXX is unconditionally defined. * m4/depout.m4: Adjust a comment about a nugget of defensive programming. * t/ext.sh: Assume that AC_PROG_OBJCXX is unconditionally defined, and that we are using Autoconf >= 2.65. Related simplifications. * t/objc-megademo.sh: Likewise. * t/objcxx-basic.sh: Likewise. * t/objcxx-deps.sh: Likewise. * t/objcxx-flags.sh: Likewise. * t/objcxx-minidemo.sh: Likewise. * t/nodep2.sh: Likewise. * t/backcompat3.sh: Assume AC_INIT accepts an URL argument. * t/depend5.sh: Adjust a comment. * syntax-checks.mk (sc_test_names): Delete this check as now useless: autoconf >= 2.65 (>= 2.63, actually) can handle arguments to AC_INIT that contain or are m4 builtins or predefined macros. (m4_builtin): Delete this now-useless variable as well, was used only by the check above. (syntax_check_rules): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
bd75e7a8 2012-05-04 15:14:43 docs: fix clumsy grammar in the scripts-based testsuite chapter * doc/automake.texi (Scripts-based Testsuites): "We'll have later" is a rare example of English in the Automake manual clearly not written by a native English-speaker: while comprehensible, it can be better formulated. Copyright-paperwork-exempt: yes Signed-off-by: Nick Alcock <nick.alcock@oracle.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
4094eb3e 2012-05-05 19:28:35 Merge branch 'maint' * maint: tests: use append mode to capture parallel make output parallel-tests: separate different logs with an empty line