Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| ebc92e19 | 2012-06-26 20:16:21 | Merge branch 'missing-not-touch-just-warn' * missing-not-touch-just-warn: missing: --run is supported again (as a no-op) for use by older automake | ||
| 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> | ||
| 78c4ba0d | 2012-06-25 10:40:39 | Merge branch 'missing-not-touch-just-warn' * missing-not-touch-just-warn: missing: don't cater to 'configure.in' in our advice missing: better tips about missing tools | ||
| 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> | ||
| 9465eb26 | 2012-06-23 00:32:30 | Merge branch 'missing-not-touch-just-warn' * missing-not-touch-just-warn: missing: do not touch timestamps; only warn for out-of-date files Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 488de31e | 2012-06-21 13:15:05 | Merge branch 'maint' * maint: docs: avoid failures with development version of Texinfo (4.13.90) typofix: s/test derivers/test drivers/ in check.am comments typofix: s/env/even/ in comments in GNUmakefile | ||
| 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> | ||
| 9c6ee0cd | 2012-06-21 11:43:54 | typofix: s/test derivers/test drivers/ in check.am comments Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 205c7572 | 2012-06-17 12:23:18 | texi: require Texinfo >= 4.9, related enhancements We start passing the '--build-dir' option to the texi2dvi and texi2pdf invocations done in our Texinfo-related rules. The argument for this option will be specific for each info_TEXINFOS entry, to work around a texi2dvi bug that could otherwise cause racy failures in parallel make builds: <http://lists.gnu.org/archive/html/automake-patches/2012-06/msg00073.html> That bug seems already fixed in the development version of texi2dvi, though: <http://lists.gnu.org/archive/html/automake-patches/2012-06/msg00074.html> so the details of our '--build-dir' usage can be revisited once we can assume Texinfo 5.0 or later. Since the '--build-dir' options has been only supported since Texinfo 4.9, we lose compatibility with all older Texinfo versions. But we also get some real improvements. First, the '--build-dir' option implies the '--tidy' option; this, like the '--clean' option that we were formerly using, prevents cluttering of the build directory with all the TeX and Texinfo auxiliary files and build by-products, but, differently from '--clean', keeps them around for later re-runs to use; this shortens the rebuild times considerably. Second, the use of '--build-dir' also allows us to specify different build directories for the PDF and DVI output, preventing the rules building them from stomping on each other's feet when run in parallel. This is demonstrated by the test cases 'txinfo-no-clutter.sh' and 'txinfo33.sh', which before this change used to fail when run with MAKE="make -j4", but now succeed even in that case. * NEWS: Update. * lib/am/texibuilds.am: Do not try to avoid texi2dvi/texi2pdf option '-o'; it has been supported since Texinfo 4.1, and we now require Texinfo >= 4.9. Remove an obsolete comment. Modify calls to texi2dvi and texi2pdf to use the '--build-dir' option, so that TeX auxiliary files and build by-products for a 'foo.texi' input will be placed in a 'foo.t2d' directory (for texi2dvi) or in a 'foo.t2p' directory (for texi2pdf). * automake.in (scan_texinfo_file): Greatly simplify the implementation, since we don't need anymore to keep track of the TeX auxiliary files and build by-products to clean. Drop the '@CLEAN_FILES' part of the return value. (handle_texinfo_helper): Adjust the 'scan_texinfo_file()' call to its new signature. Append the "work directories" now created by texi2dvi and texi2pdf invocation to the list of files/directories removed upon "make mostlyclean". * lib/am/texinfos.am: Update the cleaning rules (and comments) accordingly. * t/txinfo-no-clutter.sh: Minimal adjustment to avoid spurious failures. * .gitignore: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 6d7399c9 | 2012-06-15 15:07:05 | Merge branch 'am-preprocess-drop-tricky-transform' * am-preprocess-drop-tricky-transform: automake: stop supporting "%KEY?iftrue:iffalse%" transforms am: stop using "%KEY:iffalse?iftrue%" transforms | ||
| 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> | ||
| ed1dc9dd | 2012-06-14 23:41:58 | am: stop using "%KEY:iffalse?iftrue%" transforms And the similar "reduced forms" "%KEY:iffalse%" and "%KEY?iftrue%" as well. They are harder to grasp, can be easily reformulated in function of other "plainer" transforms ("?KEY?" and "?!KEY?"), and we'll remove support for them anyway in a later change. * lib/am/data.am, lib/am/libs.am, lib/am/lisp.am, lib/am/ltlib.am, lib/am/progs.am, lib/am/python.am, lib/am/scripts.am: Adjusted not to rely on those kinds of transforms. 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> | ||
| 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> | ||
| 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> | ||
| 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/' | ||
| 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> | ||
| 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> | ||
| 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> | ||
| 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> | ||
| 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 | ||
| 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> | ||
| 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> | ||
| 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 | ||
| a16b838b | 2012-05-05 16:39:10 | Merge branch 'parallel-tests-performance' into maint * parallel-tests-performance: parallel-tests: separate different logs with an empty line | ||
| 952d91c0 | 2012-05-05 16:33:36 | parallel-tests: separate different logs with an empty line After commit v1.12-21-g5eeb366 "parallel-tests: optimize global log creation", the log files copied in the global log are not anymore separated by a blank line, causing unclear output like this: FAIL: test1 =========== output from test 1 FAIL: test2 =========== output from test 2 where we would want something like this: FAIL: test1 =========== output from test 1 FAIL: test2 =========== output from test 2 Fix this regression. * lib/am/check.am (am__create_global_log): Print an extra empty line after having displayed the content of a '.log' file. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 1e852648 | 2012-05-04 17:46:51 | Merge branch 'maint' * maint: tests: avoid spurious failure on missing Obj C/C++ compiler objc, objc++: test support for compilation flags objc, objc++: add stress test objc, objc++: test automatic dependency tracking objc: reorganize basic tests objc++, objc: add first semantic tests objc++: add first basic test news: announce initial support for Objective C++ objc++: test support for '.mm' suffix in _SOURCES entries objc++: add documentation objc++: initial support for Objective C++ | ||
| 75b91149 | 2012-05-04 13:24:23 | Merge branch 'objc++' into maint * objc++: objc, objc++: test support for compilation flags objc, objc++: add stress test objc, objc++: test automatic dependency tracking objc: reorganize basic tests objc++, objc: add first semantic tests objc++: add first basic test news: announce initial support for Objective C++ objc++: test support for '.mm' suffix in _SOURCES entries objc++: add documentation objc++: initial support for Objective C++ Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| a1241883 | 2012-05-03 17:30:56 | dist: don't bother putting README first in $(DIST_COMMON) Comments on some of our automake-time pre-processing of $(DIST_COMMON) said that it was done in order to "put README first because it then becomes easier to make a Usenet-compliant shar file". But such a format is hardly relevant anymore, and not worth the (albeit small) added complexity. * automake.in (handle_dist): Don't sort @dist_common. (for_dist_common): Delete this function, is not used anymore. * lib/am/distdir.am (DISTFILES): Remove obsolete comment. * t/distcom4.sh: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 0fec8df4 | 2012-05-02 18:15:41 | Merge branch 'always-support-silent-rules' * always-support-silent-rules: silent rules: support for them is always active now Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| cd4dab35 | 2012-05-02 18:14:55 | Merge branch 'maint' * maint: news: document improvement in parallel-tests performance tests: fix spurious failure due to autom4te caching news: fix typos aclocal: error out again on unrecognized arguments parallel-tests: save few forks when possible parallel-tests: optimize global log creation parallel-tests: optimize 'recheck' target for speed coverage: add performance tests on some parallel-tests aspects | ||
| f9dbb0a6 | 2012-05-02 12:51:09 | Merge branch 'parallel-tests-performance' into maint * parallel-tests-performance: parallel-tests: save few forks when possible parallel-tests: optimize global log creation parallel-tests: optimize 'recheck' target for speed coverage: add performance tests on some parallel-tests aspects | ||
| 1ad72bca | 2012-05-02 10:52:18 | Merge branch 'cygnus-remove' * cygnus-remove: cygnus: remove support for Cygnus-style trees Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 14141f25 | 2012-05-01 14:23:04 | silent rules: support for them is always active now Before this change, support for silent rules was optional and activated only if the 'silent-rules' option was specified. The rationale behind that behaviour was that the silent-rules machinery originally only worked with make implementations supporting nested variables expansions, which isn't (or wasn't) a POSIX-specified features; so that packages wanting to be "extra-portable" couldn't use the silent-rules machinery at all. But after Paul Eggert's commit 'v1.11-598-g8493499' of 25-12-2011, "silent-rules: fallback for makes without nested vars" (motivated by automake bugs #9928 and #10237), Makefiles generated when the 'silent-rules' option is enabled can work also with those make implementations that don't support nested variables expansion (albeit the configure-time selected verbosity cannot be overridden at make runtime in such case). In light of that, and since silent rules are disabled by default even when the 'silent-rules' option is given (unless the developer explicitly makes them enabled by default be calling "AM_SILENT_RULES([yes])" in configure.ac), we can now have the support for silent rules always enabled. The 'silent-rules' option will thus become a no-op, but will reaming a valid option for the time being, for better backward-compatibility. A collateral effect of this change is that the use of the 'silent-rules' option will not anymore automatically disable the warnings in the 'portability-recursive' category. The present change is basically a backport of the Automake-NG commit 'v1.11d-75-g61ca923' of 19-04-2012, "[ng] silent rules: support for them is always active now". Stemmed by this thread on the Automake-NG list: <http://lists.gnu.org/archive/html/automake-ng/2012-04/msg00027.html> * automake.in: Enable silent-rules machinery unconditionally. Reword some comments. Do not switch off warnings in the category 'portability-recursive' anymore if the 'silent-rules' option is given. * m4/init.m4: Call 'AC_REQUIRE' on 'AM_SILENT_RULES' unconditionally. * lib/Automake/Options.pm: Recognize 'silent-rules' as a dummy option. Do not bother anymore checking that it is set in 'configure.ac'. * t/silent.sh: Remove now-redundant calls to AM_SILENT_RULES. * t/silent2.sh: Likewise. * t/silent3.sh: Likewise. * t/silent4.sh: Likewise. * t/silent8.sh: Likewise. * t/silent9.sh: Likewise. * t/silent-lex.sh: Likewise. * t/silent-many-gcc.sh: Likewise. * t/silent-many-generic.sh: Likewise. * t/silent-yacc-headers.sh: Likewise. * t/silent-yacc.sh: Likewise. * t/silentcxx-gcc.sh: Likewise. * t/silentcxx.sh: Likewise. * t/silentf77.sh: Likewise. * t/silentf90.sh: Likewise. * t/help-silent.sh: Likewise. * t/silent-configsite.sh: Likewise, and other minor adjustments. * t/silent7.sh: Likewise. Also, extend to check that silent rules are disabled by default, and remove obsoleted checks about the 'silent-rules' option being rejected in 'AUTOMAKE_OPTIONS'. * t/silent6.sh: Remove now-redundant calls to 'AM_SILENT_RULES'. Call automake with '-Wno-portability-recursive'. Remove other obsoleted checks. * t/dollarvar.sh: Don't expect the use of 'AM_SILENT_RULES' in 'configure.ac' to disable warning in the 'portability-recursive' category anymore. * t/compile_f_c_cxx.sh: Adjust to avoid a spurious failure. * t/silent-amopts.sh: Remove as obsolete. * t/silent-nowarn.sh: Likewise. * t/list-of-tests.mk: Adjust. * NEWS: Update. * doc/automake.texi: Update and simplify accordingly. * configure.ac (AM_INIT_AUTOMAKE): Remove 'silent-rules' option. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 4c2dd6e0 | 2012-04-30 22:18:24 | parallel-tests: save few forks when possible * lib/am/check.am (am__check_pre): Save some forks, by analyzing more carefully the value of '$@' to decide how to extract its dirname part, and whether that should be created as a directory. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 06ed2f31 | 2012-04-30 21:18:36 | sync: some auxiliary files synced from upstream * lib/config.sub: Synced from upstream, by "make fetch". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| b105d40d | 2012-04-30 20:44:50 | color-tests: coloring can be forced on non-ANSI terminals as well Before this change, colorization of testsuite output was suppressed whenever the terminal was recognized to be a "dumb" one, incapable of handling ANSI coloring (i.e., when the environment variable TERM had a value of "dumb"). This happened even when the AM_COLOR_TESTS variable was set to a value of "always". Such a behaviour was suboptimal and slightly confusing; in fact, if a user wants to force coloring of testsuite output that is being redirected to a regular file, he should be able to do so even if his terminal is not capable of handling ANSI colors -- in fact, such terminal wouldn't be involved with the testsuite output in any way, so why should it be allowed to influence it? Thus, we now enable coloring of test output whenever AM_COLOR_TESTS is set to "always", irrespective of the value of the TERM environment variable. * NEWS: Update. * lib/am/check.am [%?COLOR%] (am__tty_colors): Activate colorization of testsuite output whenever AM_COLOR_TESTS has the value of "always". * t/ax/tap-summary-aux.sh: Export the TERM environment variable to "dumb" when forcing colorization of the testsuite output; this should *not* prevent such colorization from taking place, and we want to check that this expectation really holds. * t/ax/testsuite-summary-checks.sh: Likewise. * t/color.sh: Likewise, and adjust some grepping checks. * t/tap-color.sh: Likewise. Also, remove redundant "make check" invocation since we are at it. * t/color2.sh: Likewise, and check that exporting TERM=dumb actually prevents testsuite output colorization when AM_COLOR_TESTS is unset. * t/parallel-tests-reset-term.sh: Relax, to prevent it from failing spuriously due to the new semantic. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 5b0cc395 | 2012-04-06 11:18:38 | cygnus: remove support for Cygnus-style trees Support for "Cygnus-style" tree as enabled by the 'cygnus' option has been deprecated in the documentation and with runtime warning since Automake 1.12.1. It's now time to remove it. Closes automake bug#11034. * lib/Automake/Options.pm (_process_option_list): Issue a proper error when the 'cygnus' option is seen. * automake.in: Don't handle the 'cygnus' option anymore. * docs/automake.texi: Remove references to cygnus option and Cygnus-style trees. * lib/am/dejagnu.am, lib/am/texinfos.am: Drop special setups for cygnus mode. * NEWS: Update. * t/cygnus-no-more.sh: New test. * t/flavor.sh: Adjust. * t/cygnus-deprecation.sh: Remove. * t/cygnus-check-without-all.sh: Likewise. * t/cygnus-requires-maintainer-mode.sh: Likewise. * t/cygnus-dependency-tracking.sh: Likewise. * t/cygnus-imply-foreign.sh: Likewise. * t/cygnus-no-installinfo.sh: Likewise. * t/cygnus-no-dist.sh: Likewise. * t/clean2.sh: Likewise. * t/txinfo5.sh: Likewise. * t/txinfo5b.sh: Likewise. * t/list-of-tests.mk: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 5eeb3660 | 2012-02-26 00:30:18 | parallel-tests: optimize global log creation With this change, the time required to execute the test case 'testsuite-summary-speed.sh' has dropped as follows: + Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM, GNU make 3.81: - 1 run: 4 minutes => 30/40 seconds + Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM, Solaris CCS make: - 2 runs: 6 minutes => 30 seconds + Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM, GNU make 3.82: - 5 runs: 7 minutes => 1 minute and 10 seconds * lib/am/check.am ($(TEST_SUITE_LOG)): Optimize for speed, by avoiding lots of forks with the help of ... (am__create_global_log): ... this new internal variable, basically defining a smart awk program, and ... (am__global_test_result_rx, am__copy_in_global_log_rx): ... these new internal variables, used by the one above. (am__rst_section): Remove as obsolete * t/rst-formatting.trs: Remove. * t/list-of-tests.mk: Update. * t/testsuite-summary-count-many.sh: Improve its stress testing by using 1 million tests rather than just 5 thousands: we can afford this with our new optimization, and still have the test completed in a reasonable time. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| f5733aab | 2012-04-26 22:25:35 | parallel-tests: optimize 'recheck' target for speed With this change, the time required to execute the test case 'testsuite-recheck-speed.sh' has dropped as follows: + Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM, GNU make 3.81: - 1 run: 6 minutes => 40 seconds + Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM, Solaris CCS make: - 4 runs: 3 minutes => 1 minute + Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM, GNU make 3.82: - 5 runs: 4 minutes => 1 minute 30 seconds * lib/am/check.am (recheck): Optimize for speed, by avoiding lots of forks with the help of ... (am__list_recheck_tests): ... this new internal variable, basically defining a proper awk program, and ... (am__recheck_rx): ... this other new internal variable, used by the one above. * t/test-trs-recover2.sh: Relax by not checking for a very corner case ('.log' and '.trs' files both unreadable) that we don't handle anymore. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| df306b52 | 2012-04-26 15:01:23 | objc++: initial support for Objective C++ Original thread (dating back to almost three years ago): <http://lists.gnu.org/archive/html/automake-patches/2009-07/msg00016.html> * automake.in: Register new language 'objcxx'. (lang_objcxx_rewrite): New subroutine. (resolve_linker): Add OBJCXXLINK. (%_am_macro_for_cond): Add am__fastdepOBJCXX and AC_PROG_OBJCXX. (%_ac_macro_for_var): Add OBJCXX and OBJCXXFLAGS. * m4/depend.m4 (_AM_DEPENDENCIES): Add OBJCXX. * m4/init.m4 (AM_INIT_AUTOMAKE): Add AC_PROG_OBJCXX hook. Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 8ea72c74 | 2012-04-27 16:27:08 | build: ensure release year in copyright notice is up-to-date From a suggestion by Eric Blake. See automake bug#11356. This is a follow-up to previous patch 'v1.12-12-gb99b5be'. * configure.ac (RELEASE_YEAR): New AC_SUBST'd variable, should hold the value of the current year. * Makefile.am (update-copyright): Be sure to also update the definition of 'RELEASE_YEAR' in configure.ac. * lib/Automake/Config.in ($RELEASE_YEAR): New exported variable, initialized from the value substituted for '@RELEASE_YEAR@'. (@EXPORT): Add it. * automake.in, aclocal.in: Use '$RELEASE_YEAR' (which will be substituted at make time) instead of hard-coding the release year. This should ensure the copyright range in the version message and in the generated files (Makefile.in and aclocal.m4) are automatically kept up-to-date. * bootstrap (dosubst): Update, also substitute '@RELEASE_YEAR@'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 64b18e07 | 2012-04-20 10:05:51 | refactor: processing of input makefile rules This is a pure refactoring, with no intended functional or semantic changes. It breaks up an overly-long function in three smaller sub-functions. This change will very especially useful for the work on Automake-NG. * lib/Automake/Rule.pm (define): Move quite a lot of code out, into ... (_rule_defn_with_exeext_awareness, _maybe_warn_about_duplicated_target, _conditionals_for_rule): ... these new subroutines. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| f46359b4 | 2012-04-18 11:40:15 | parallel-tests: 'recheck' must depend on 'all' Fixes automake bug#11252. When a developer experience one or more failures in the testsuite, a good workflow is for him to modify its program's sources to fix the bug thus revealed, run "make recheck" to verify that the change has indeed solved the testsuite failures previously experienced, and then run "make check" to verify that the change has not introduced any new failure or regression. Unfortunately, this apparently natural workflow couldn't have worked until now, since the Automake-provided 'recheck' target (which didn't depend on 'all') wouldn't have causes the program to be recompiled, and the failed tests would have thus been run with the older, buggy version of the program, failing the same way as before. * lib/am/check.am (recheck): Depend on 'all'. * t/parallel-tests-recheck-depends-on-all.sh: New test. * t/list-of-tests.mk: Add it. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 944ec778 | 2012-04-14 09:55:41 | parallel-tests: print error messages on stderr, not stdout * lib/am/check.am ($(TEST_SUITE_LOG)): Be sure to print error messages on stderr, not on stdout. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| f4b8c585 | 2012-04-13 14:36:31 | Merge branch 'maint' * maint: install: shell parameter expansions can be used in directory names | ||
| e9c2b9e9 | 2012-04-13 14:16:29 | Merge branch 'fix-pr11232' into maint * fix-pr11232: install: shell parameter expansions can be used in directory names | ||
| 0bb60761 | 2012-04-12 16:24:23 | install: shell parameter expansions can be used in directory names Fixes automake bug#11232. GNU automake used to support shell parameter expansion and command substitutions in installation directories, but that was inadvertently broken by commit v1.11-759-g368f1c4 "install: don't create empty dirs when an empty 'foo_PRIMARY' is used" of 18-03-2012, where shell quoting of generated MKDIR_P command was changed from double to single quotes in 3 places, while some 21 other places still use double quotes for generated MKDIR_P commands. * lib/am/data.am: Use double quotes for generated "mkdir -p" commands. * lib/am/libs.am: Likewise. * lib/am/ltlib.am: Likewise. Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| faffcc87 | 2012-04-11 17:51:59 | sync: some auxiliary files synced from upstream * lib/texinfo.tex: Synced from upstream, by "make fetch". * lib/INSTALL: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| a4b0f4b5 | 2012-04-01 11:48:47 | maint: remove most recursion in automake's own build system Recursive make-based build systems tend to be slower, more fragile and less faithful than "flat" ones. See Peter Miller's article "Recursive Make Considered Harmful" for more a more in-depth discussion: <http://miller.emu.id.au/pmiller/books/rmch/> While in the case of automake this isn't a big problem (given the small size of its build systems), it still creates occasional glitches and annoyances. With this change, the use of recursion in Automake's own build system is eliminated *but for the testsuite*. Converting that is a little more tricky, and better left for a later change (or series of changes). See also commit v1.11-769-gfeeb7f6 of 28-03-2012. * contrib/Makefile.am, lib/Makefile.am, m4/Makefile.am, doc/Makefile.am: Removed, their content merged ... * Makefile.am: ... here, with required adjustments and few other "opportunistic" changes. (SUBDIRS): Update. * configure.ac (AC_CONFIG_FILES): Likewise. * .gitignore: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 9fe2ba38 | 2012-04-01 21:55:09 | texinfo: don't clutter the builddir when using modern texi2dvi In modern versions of texi2dvi (at least since version 1.135, which comes with Texinfo 4.13) the '-o' option does not imply anymore the '--clean' option. As a consequence, lots of TeX-generated auxiliary files are now left in the build directory by the 'pdf', 'ps' and 'dvi' rules. This is especially annoying with non-recursive setups having the '.texi' files in a subdirectory, as in: info_TEXINFOS = doc/foo.texi In this case, the stray auxiliary files are left in the top build directory (since TeX is run from there). See for example: <http://lists.gnu.org/archive/html/bug-bison/2012-04/msg00002.html> See also automake bug#11146. * lib/am/texibuild.am: Call 'texi2dvi' and 'texi2pdf' with the '--clean' option. Update comments accordingly. * tests/txinfo-noclutter.test: New test. * tests/txinfo18.test: Remove as obsolete, the still relevant parts of it moved into the new test. * tests/list-of-tests.mk: Adjust. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 2d671e11 | 2012-03-29 00:31:47 | perl refactor: use modern semantics of 'open' * lib/Automake/XFile.pm: Update comments and POD documentation to suggest a more idiomatic/modern usage. (open): Be more robust in detecting whether the created file handle is being opened for writing. * lib/Automake/FileUtils.pm (update_file, contents): Call the 'Automake::XFile' and 'File::IO' constructors with two arguments rather than one; this change obsoletes ... (open_quote): ... this subroutine, which has thus been removed. (@EXPORT): Drop '&open_quote'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 84bf694b | 2012-03-28 22:50:27 | Merge branch 'maint' * maint: cosmetics: don't make the generated Config.pm executable maint: reduce use of recursion in automake build system + Extra non-trivial extra edits follows. * lib/Makefile.am (amdir): Deleted this definition, it is already provided by a proper AC_SUBST in configure.ac. (dist_am_DATA): Remove 'am/ansi2knr.am', 'am/check-html.am' and 'am/multilib.am'. (dist_perllib_DATA): Remove 'Automake/Struct.pm'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 26a63b3b | 2012-03-28 17:12:36 | cosmetics: don't make the generated Config.pm executable * lib/Makefile.am (Automake/Config.pm): Don't make this executable, there's not need for it to be (it's a perl module, not a script). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| feeb7f6a | 2012-03-28 17:03:25 | maint: reduce use of recursion in automake build system Recursive make-based build systems tend to be slower, more fragile and less faithful than "flat" ones. See Peter Miller's article "Recursive Make Considered Harmful" for more a more in-depth discussion: <http://miller.emu.id.au/pmiller/books/rmch/> While in the case of automake this isn't a big problem (given the small size of its build systems), it still creates occasional glitches and annoyances. So, with this change, we start making less use of make recursion in the Automake's own build system (future changes will reduce it even more). * lib/am/Makefile.am, lib/Automake/Makefile.am: Removed, their content merged ... * lib/Makefile.am: ... here, with required adjustments. * configure.ac (AC_CONFIG_FILES): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 3856a940 | 2012-03-28 14:31:36 | acinstall: remove, it has never been really used Accordingly to the git history (see for example the 'README-alpha' in commit 'Release-1-1e-39-g9beb4ec' of 06-10-1996), the 'acinstall' script should have been used to install m4 files for aclocal. The comments in this script report that "... A script is needed to do this because we want to do serial-number checking; newer versions of macro files should always be preferred". But the 'acinstall' script has never been really used: for example, the entry "actually use acinstall program" was removed (unfixed) from the TODO file in commit 'Release-1-1k-12-g1201405' of 08-12-1996, and the only citation of 'acinstall' in the manual was removed in commit 'Release-1-1l-37-g128c3d7' of 19-03-1997, and never added back. In addition, the last non-trivial edit to the script (that is, besides updates to the copyright notice) dates back to 1996. More importantly, now that aclocal supports the ACLOCAL_PATH environment variable, installing m4 files directly in the system-wide acdir is discouraged, and better left only to distros' package managers (which already have their own way to do so, with which third-party build systems should not directly meddle). So we just remove the 'acinstall' script. * lib/acinstall: Remove. * lib/Makefile.am (dist_script_DATA): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 7a56bed0 | 2012-03-27 22:40:20 | Merge branch 'maint' * maint: depcomp: support tcc (Tiny C Compiler) tests: workaround for automatic linker determination and conditionals info: allow user to inhibit pruning of '${infodir}/dir' vala tests: fix spurious failures with older valac (<= 0.7.2) tests: fix a timestamp issue, and other minor buglets tests: fix spurious failure with older autoconf build: remove duplicated entries in $(TESTS) + Extra non-trivia edits: * tests/link_cond.test: Use 'configure.ac', not 'configure.in'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| b96263e1 | 2012-03-27 17:55:07 | depcomp: support tcc (Tiny C Compiler) This change fixes automake bug#11007. Since git commit 0c928da9 of 21-06-2010, "tcc: Draft suppoprt for -MD/-MF options" (sic, with typo in summary line), tcc has supported automatic dependency generation with a command-line interface similar to what old (pre-8.0) Intel compilers did. This caused Automake-generated code for automatic dependency tracking to recognize tcc dependency style as "icc". However, the format of the dependency files generated by tcc is apparently different enough from that of icc to cause spurious failures in the post-processing operated by our 'depcomp' script on such files. The failure was exposed with the development version of tcc 0.9.26 (as installed with debian package "tcc 0.9.26~git20120104.83d") by test case 'depcomp-auto.tap' (available only in the master branch). * lib/depcomp (icc): Cater to tcc as well. Update comments accordingly. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 619c1b26 | 2012-03-27 13:10:16 | info: allow user to inhibit pruning of '${infodir}/dir' This should have ideally been part of commit 'v1.11-519-g1ec1668' of 23-11-2011 "info: allow user to inhibit creation/update of '${infodir}/dir'". Well, better late than never. * lib/am/texinfos.am (uninstall-info-am): Don't look anymore at the output of "install-info --version" to decide whether to use it to update the '${infodir}/dir' or not; instead, honour the environment variable 'AM_UPDATE_INFO_DIR'. To avoid code duplication with ... (install-info-am): ... the recipe of this target, move common code out to ... (am__can_run_installinfo): ... this new internal variable. * tests/install-info-dir.test: Enhance. * doc/automake.texi (Texinfo): Update. * NEWS: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| db1138c5 | 2012-03-18 22:31:45 | Merge branch 'maint' * maint: install-mans: avoid spurious failure with NetBSD make install: don't create empty dirs when an empty 'foo_PRIMARY' is used aclocal: remove a couple of useless imports aclocal: create local directory where to install m4 files Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 45ffbe9f | 2012-03-18 22:19:45 | install-mans: avoid spurious failure with NetBSD make * lib/am/mans.am: After the changes introduced by previous commit v1.11-759-g368f1c4, some manpage installation recipes started to fail spuriously on NetBSD 5.1 make. Apparently, the system make there eats backslashes used to escape whitespace characters in the relevant recipes. Revert to slightly slower but safer idioms that avoid the need of such escaping. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 368f1c4c | 2012-03-16 23:48:53 | install: don't create empty dirs when an empty 'foo_PRIMARY' is used Fixes automake bug#11030 and bug#10997. An empty declaration of "foo_PRIMARY" in a Makefile.am used to cause the generated install rules to create the directory $(foodir) anyway, even if nothing was to be installed there. While this could be seen as a convenient way to create a $(foodir) directory upon "make install" (respecting $(DESTDIR) settings and such), it also caused problems with conditionals; for example, an input of: if FALSE pgkdata_DATA = something endif caused the generated install rules to unconditionally create the $(pkgdatadir) directory (see automake bug#10997). Also, a user wanting to create an empty directory upon installation can easily do so with a custom install hook, as in: installdirs-local: $(MKDIR_P) $(DESTDIR)$(foodir) install-data-hook: installdirs-local On the other hand, the old behavior of "always create $(foodir), even if 'foo_PRIMARY' is empty" was harder and more tricky to override. Thus, from now on, an empty declaration of "foo_PRIMARY" will not cause the directory $(foodir) to be created upon "make install" anymore. * lib/am/data.am, lib/am/java.am, lib/am/libs.am, lib/am/lisp.am, lib/am/ltlib.am, lib/am/mans.am, lib/am/progs.am, lib/am/python.am, lib/am/scripts.am, lib/am/texinfos.am: Adjust install rules to avoid creating an installation directory if no files are actually to be installed there. * tests/instdir-empty.test: Remove, it was testing a semantic opposite to the one we now want and implement. * tests/instdir-no-empty.test: New test, check the new semantic. * tests/instdir-cond.test: Enhance. Move the still-failing part of the test ... * tests/instdir-cond2.test: ... here. * tests/list-of-tests.mk, tests/Makefile.am (XFAIL_TESTS): Update. * tests/java3.test: Adjust to avoid spurious failures. * HACKING, NEWS, THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 295c5f26 | 2012-03-15 09:16:46 | Merge branch 'maint' * maint: python: avoid failures due to $(am__py_compile) being undefined python: expose automake bug#10995 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 819005ae | 2012-03-15 09:12:00 | python: avoid failures due to $(am__py_compile) being undefined Fixes automake bug#10995, introduced in commit v1.11-372-gb46debf. * lib/am/python.am: Move the definition of 'am__py_compile' to ensure it is always emitted in the output Makefile.in. Previously, this wouldn't have happened if the input Makefile.am contained a 'noinst_PYTHON' declaration before a 'python_PYTHON' one. * tests/Makefile.am (XFAIL_TESTS): Remove 'python-pr10995.test' and 'python.test'. * NEWS: Update. Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 6a6bc51e | 2012-03-14 22:29:59 | Merge branch 'maint' * maint: tests: avoid spurious failures in get-sysconf.test scripts: bump the depcomp scriptversion sync: some auxiliary files synced from upstream coverage: an empty foo_PRIMARY should create directory $(foodir) coverage: make sure am__py_compile is defined when needed coverage: expose automake bug#10997 coverage: expose automake bug#10975 getopt: relax version requirement for perl + Extra non-trivial edits: * tests/dist-pr109765.test: Use 'configure.ac', not 'configure.in'. * tests/instdir-cond.test: Likewise. * tests/instdir-empty.test: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| fdde53d3 | 2012-03-12 16:58:55 | scripts: bump the depcomp scriptversion * lib/depcomp (scriptversion): Bump, to account for recent changes. | ||
| 327358d8 | 2012-03-12 15:10:39 | sync: some auxiliary files synced from upstream * lib/texinfo.tex: Synced from upstream, by "make fetch". * lib/config.guess: Likewise. * lib/config.sub: Likewise. * lib/gnupload: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| ddac0505 | 2012-03-07 23:26:24 | getopt: relax version requirement for perl * lib/Automake/Getopt.pm: Require perl 5.6.0, not 5.6.2: the former is enough. See also commit 'v1.11-2054-g7df05a0' on master (dated 04-03-2012). | ||
| 3a814608 | 2012-03-07 21:08:06 | Merge branch 'msvc' into maint This merge remedies the confusing situation that some changes destined for both the master branch and the release branch (a.k.a. branch-1.11) currently needs to be made on the non-obvious msvc branch and not on the more natural maint branch. This has caused a seemingly endless string of less than optimal commits. The reason for the confusion stems from the fact that the changes made on the msvc branch became too radical and was considered only suitable for the master branch, and was thus written in a form suitable for master and then merged there. Later, the msvc branch was merged directly into branch-1.11, in order to rush the new features to the market and to keep the released scripts (lib/ar-lib, lib/compile and lib/depcomp) consistent with those on the master branch. However, some changes had to be made to the features added by the msvc branch in order for them to fit the requirements of branch-1.11, notably that the warnings issued in the extra-portability class cannot be enabled by -Wall in the 1.11.x maintenance releases. In retrospect, it would have been better to not merge msvc directly into branch-1.11, but instead do it via the maint branch (followed up with a dummy merge from maint into master) the moment it was decided that the msvc changes should make it into branch-1.11. All in all, this merge is going to affect neither the master branch nor branch-1.11, since it is followed up with dummy merges masking all changes. The merge is made to maintain the sanity of the poor developers, who wishes to once again have a working maint branch. Discussion about merging the msvc branch into branch-1.11: http://lists.gnu.org/archive/html/automake/2011-10/msg00030.html Discussion about why this merge hasn't happened before: http://lists.gnu.org/archive/html/automake/2011-12/msg00051.html Extra edits below. * lib/Automake/ChannelDefs.pm: Use the version from branch-1.11. * tests/ar-lib3.test: Likewise. * tests/ar-lib4.test: Likewise. * tests/extra-portability.test: Likewise. * tests/extra-portability2.test: Likewise. * tests/extradep.test: Likewise. * tests/extradep2.test: Likewise. * tests/list-of-tests.mk: Likewise. * HACKING: Backport the version from branch-1.11 while at it (as the change on branch-1.11 is also present on master via an unrelated commit), even though this change has nothing to do with the changes on the msvc branch. | ||
| 24ab9845 | 2012-03-07 08:20:26 | Merge branch 'maint' into msvc * maint: news: describe recently-fixed bug in vala support depcomp: add support for IBM xlc/xlC compilers | ||
| 45fbc8b4 | 2012-03-06 22:03:22 | Merge branch 'maint' * maint: news: describe recently-fixed bug in vala support depcomp: add support for IBM xlc/xlC compilers | ||
| b0887067 | 2012-03-05 20:05:37 | depcomp: add support for IBM xlc/xlC compilers * lib/depcomp (xlc): New depmode. * NEWS, THANKS: Update. Copyright-paperwork-exempt: yes | ||
| 5f624a6a | 2012-03-06 09:31:43 | Merge branch 'msvc' * msvc: scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile | ||
| 8902f83d | 2012-03-06 09:14:50 | scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile POSIX mandates that the compiler accepts a space between the -I, -l and -L options and their respective arguments. See http://pubs.opengroup.org/onlinepubs/000095399/utilities/c99.html * lib/compile (func_cl_dashl): New function with factored out code for implementing the -l option for the cl wrapper. (func_cl_dashL): New function with factored out code implementing the -L option for the cl wrapper. (func_cl_wrapper): Use func_cl_dashl to implement both -l <lib> and -l<lib>, and func_cl_dashL to implement both -L <dir> and -L<dir>. Also add support for -I <dir>. (scriptversion): Update. * tests/compile3.test: Test both with and without a space between -I, -l and -L and their respective arguments. * tests/compile5.test: Likewise. * tests/compile6.test: Likewise. * tests/compile3.test: Likewise. * NEWS: Update. | ||
| 74a7f492 | 2012-03-04 16:00:58 | maint: drop 'Automake::Struct' module Now that we require Perl 5.6, we can drop the 'Automake::Struct' module, which was basically just a backport of Perl 5.6's 'Class::Struct' to Perl 5.5. * automake.in: Use 'Class::Struct', not 'Automake::Struct'. * lib/Automake/Struct.pm: Delete. * lib/Automake/Makefile.am (dist_perllib_DATA): Remove it. | ||
| 7df05a0b | 2012-03-04 15:44:46 | maint: require perl 5.6 throughout That version of perl is quite old already, so it should be OK to require it. More importantly, it is the older perl versions the developers can currently use for testing, thus it's safer and more honest to just require it throughout. And anyway, we were already requiring it in Automake::Getopt, which implied that both automake and aclocal wouldn't have worked in practice with an older perl version. See also the discussion related to automake bug#10925. * lib/Automake/ChannelDefs.pm: Adjusted to require perl 5.6. * lib/Automake/Channels.pm: Likewise. * lib/Automake/Condition.pm: Likewise. * lib/Automake/Configure_ac.pm: Likewise. * lib/Automake/DisjConditions.pm: Likewise. * lib/Automake/FileUtils.pm: Likewise. * lib/Automake/General.pm: Likewise. * lib/Automake/Item.pm: Likewise. * lib/Automake/ItemDef.pm: Likewise. * lib/Automake/Location.pm: Likewise. * lib/Automake/Options.pm: Likewise. * lib/Automake/Rule.pm: Likewise. * lib/Automake/RuleDef.pm: Likewise. * lib/Automake/Struct.pm: Likewise. * lib/Automake/VarDef.pm: Likewise. * lib/Automake/Variable.pm: Likewise. * lib/Automake/Version.pm: Likewise. * lib/Automake/Wrap.pm: Likewise. * lib/Automake/XFile.pm: Likewise. | ||
| 8be5d254 | 2012-03-01 09:30:45 | scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib * lib/ar-lib: Implement the "q" (quick) action as a synonym for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol index) when used as modifiers and "s" when used as a command, there is simply no way for Microsoft lib to not update the symbol table index in the archive. (scriptversion): Update. * tests/ar-lib.test: Check the added behavior. Also add checks for the recently added "u" (update) and "v" (verbose) modifiers. | ||
| aadd78e9 | 2012-03-02 11:04:05 | Merge branch 'maint' into msvc | ||
| 8d0391c5 | 2012-03-01 09:30:45 | scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib * lib/ar-lib: Implement the "q" (quick) action as a synonym for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol index) when used as modifiers and "s" when used as a command, there is simply no way for Microsoft lib to not update the symbol table index in the archive. (scriptversion): Update. * tests/ar-lib.test: Check the added behavior. Also add checks for the recently added "u" (update) and "v" (verbose) modifiers. | ||
| 00eb4ac9 | 2012-02-24 14:35:06 | refactor: in Automake::Options (no semantic change) * lib/Automake/Options.pm: Prefer leading spaces to leading tabs throughout. Minor whitespace and comment changes. (_process_option_list): Simple refactoring to make the code more pleasant to read and easier to modify in the future. This refactoring also reduces code duplication, with the help of ... (_option_must_be_from_configure, _is_valid_easy_option): ... these new internal subroutines. * tests/tar3.test: Enhance. * tests/silent-amopts.test: New, checks that automake complains if the 'silent-rules' option is used in AUTOMAKE_OPTIONS. * tests/list-of-tests.mk: Add it. | ||
| 4a38f180 | 2012-02-23 22:47:42 | maint: assume 'test -x' is portable * lib/Makefile.am (installcheck-local): To verify that the installed scripts are actually executable, simply use 'test -x', instead of resorting to perl and its '-x' file operator. Today, 'test -x' should today be portable to any non-museum system. Since we are at it, improve diagnostic in case of failure. | ||
| 3e887a13 | 2012-02-23 20:25:26 | pm: do not quote `like this', as per GCS recommendation This patch converts the internal perl modules used by automake and aclocal to the use of new quoting format 'like this' or "like this" rather than `like this'. * lib/Automake/ChannelDefs.pm, lib/Automake/Channels.pm, lib/Automake/Condition.pm, lib/Automake/Configure_ac.pm, lib/Automake/DisjConditions.pm, lib/Automake/FileUtils.pm, lib/Automake/General.pm, lib/Automake/Item.pm, lib/Automake/Rule.pm, lib/Automake/Getopt.pm, lib/Automake/Options.pm, lib/Automake/Struct.pm, lib/Automake/VarDef.pm, lib/Automake/Variable.pm, lib/Automake/Version.pm, lib/Automake/XFile.pm: Update and adjust quoting format throughout, in comments and diagnostic. Some minor related rewordings and reformatting since we are at it. | ||
| 2d951983 | 2012-02-23 19:21:00 | build: do not quote `like this', as per GCS recommendation This patch converts the files implementing the automake's own build system to the use of new quoting format 'like this' or "like this" rather than `like this'. * bootstrap, configure.ac, syntax-checks.mk, Makefile.am, lib/Makefile.am, m4/Makefile.am, syntax-checks.mk: Update quoting format throughout, in comments and diagnostic. Some minor related rewordings and reformatting since we are at it. | ||
| de58d25e | 2012-02-23 15:15:26 | am: do not quote `like this', as per GCS recommendation This patch converts the automake-provided '*.am' fragments, and related files, to the use of new quoting format 'like this' or "like this" rather than `like this'. * lib/am/check.am: Update quoting format throughout, in comments and diagnostic. Some related rewordings, reformatting, and removal of redundant commands since we are at it. * lib/am/configure.am: Likewise. * lib/am/dejagnu.am: Likewise. * lib/am/depend2.am: Likewise. * lib/am/distdir.am: Likewise. * lib/am/inst-vars.am: Likewise. * lib/am/install.am: Likewise. * lib/am/lang-compile.am: Likewise. * lib/am/lisp.am: Likewise. * lib/am/ltlib.am: Likewise. * lib/am/mans.am: Likewise. * lib/am/progs.am: Likewise. * lib/am/remake-hdr.am: Likewise. * lib/am/subdirs.am: Likewise. * lib/am/tags.am: Likewise. * lib/am/texi-vers.am: Likewise. * lib/am/texibuild.am: Likewise. * lib/am/texinfos.am: Likewise. * lib/am/yacc.am: Likewise. | ||
| deb77738 | 2012-02-20 18:33:50 | automake: new option 'serial-tests' Currently, automake offers a 'parallel-tests' option to enable the use of the parallel testsuite harness in the generated Makefiles, but no option to explicitly state the intention of using the older serial testsuite driver (which is currently the default). This makes the parallel test harness seems like a second-class citizen (while actually it should be the other way around); more importantly, it will prevent us from making the parallel harness be the default one in future automake versions, since the users of the serial harness would then have no way to instruct automake to continue using it. We solve all of this by introducing a new 'serial-tests' option. * lib/Automake/Options.pm (_process_option_list): Recognize the new option, and related minor refactoring. * tests/serial-tests.test: New test. * tests/list-of-tests.mk: Add it. * doc/automake.texi: Update. * NEWS: Likewise. | ||
| e1606b32 | 2012-02-18 13:59:26 | parallel-tests: fix another BSD parallel make issue When BSD make is run in parallel mode, it apparently strips any leading directory component from the automatic variable '$*' (of course, against what POSIX mandates). This was causing FreeBSD 9.0 make and NetBSD 5.1 make to spuriously fail with automake-generated test harnesses if subdir tests were present *and* make was being run in parallel mode. This issue affected also the Automake own testsuite. * lib/am/check2.am (am__set_b): New internal variable. (%OBJ%, %EXT%.log, %EXT%$(EXEEXT).log): Use it to work around the described BSD make issue. * tests/parallel-tests3.test: Enhanced to expose the bug. * tests/parallel-tests-subdir.test: Enhance a little, since we are at it. * NEWS: Update. | ||
| b5788178 | 2012-02-17 13:29:19 | Merge branch 'maint' * maint: dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS) | ||
| 4df475a2 | 2012-02-17 11:52:13 | dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS) * lib/am/header-vars.am (am__make_dryrun): Be smarter and more correct in handling shell metacharacters in $(MAKEFLAGS). | ||
| acde2706 | 2012-02-16 10:51:23 | maint: sync auxiliary files from upstream * lib/texinfo.tex: Synced from upstream, by "make fetch". * lib/config.guess: Likewise. * lib/config.sub: Likewise. | ||
| 641a5a4b | 2012-02-16 10:46:23 | maint: run "make update-copyright" | ||
| e05e1bed | 2012-02-15 19:32:07 | Merge branch 'maint' * maint: fixup: distribute 'lib/update-copyright' |