kc3-lang/automake/lib

Branch :


Log

Author Commit Date CI Message
26b78559 2012-10-27 11:57:43 Merge branch 'maint' * maint: depcomp: avoid potential interferences from the environment depcomp: improve comments about the 'gcc' depmode sync: update files from upstream with "make fetch" maintcheck: remove an obsolescent check tests: rename some tests to more expressive names, again tests: remove an obsolescent grepping check tests: merge two tests on automatic remake functionality tests: rename some test to more expressive names news: 'compile' supports libfoo.a naming when wrapping Microsoft tools tests: ensure generation of wrapper tests matching multiple conditions tests: simplify a loop in gen-testsuite-part compile: support libfoo.a naming when wrapping Microsoft tools NEWS: fix wording and grammaros, re-wrap text accordingly cosmetics: fix typo in 'lib/depcomp' comments Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
d8f47b19 2012-10-27 11:19:22 depcomp: avoid potential interferences from the environment * lib/depcomp (gccflag, dashmflag): By explicitly initializing these variables to the empty string by default. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
078ff407 2012-10-27 11:12:59 depcomp: improve comments about the 'gcc' depmode It is not only needed by obsolescent gcc compilers (pre-3.x), but also by modern compiler like IBM C/C++. State that ... * lib/depcomp: ... here... * gen-testsuite-part: ... and here, where we generate the 'depcomp*.tap' tests. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
24bf687e 2012-10-26 15:05:53 sync: update files from upstream with "make fetch" * lib/config.guess, lib/config.sub: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3c5c9394 2012-10-04 00:08:26 compile: support libfoo.a naming when wrapping Microsoft tools There is a future plan to provide some means to have Automake create static libraries that are named differently depending on the system [1]. The background is that everyone has always named static libraries libfoo.a, except the Redmond crowd who names them foo.lib, and you have to jump through hoops to have Automake create libraries named foo.lib in the land of non-GNU Windows while still creating libfoo.a everywhere else. However, there is probably no sane way to accomplish that system dependent naming discussed in [1] without user intervention, which makes it necessary to support the classic libfoo.a naming when using Microsoft tools in the best possible way, for the benefit of all projects today and for future projects not opting in to whatever scheme is selected for the problem at hand. [1] http://lists.gnu.org/archive/html/automake/2012-09/msg00028.html * lib/compile (func_cl_dashl): As a last resort, match -lfoo with libfoo.a, if that file exist on the library search path. * t/compile4.sh: Remove obsolescent workaround for the above. * t/compile6.sh: Extend to check that libbaz.a is indeed found when baz.lib and baz.dll.lib does not exist and that bar.lib and bar.dll.lib are preferred over libbar.a. Signed-off-by: Peter Rosin <peda@lysator.liu.se> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6a0460c4 2012-10-14 11:43:26 cosmetics: fix typo in 'lib/depcomp' comments Fixes automake bug#12578. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
7411adcd 2012-10-02 20:34:47 Merge branch 'maint' * maint: config headers: remove stale comment in makefile fragment NEWS: wording and quoting fixlets in few older entries config headers: don't emit rules for headers not generated by autoheader docs: fix minor typo: s/expending/expanding/ sync: update files from upstream with "make fetch" maint: post-release minor version bump maint: typo fixes s/lies into/lies in/ release: stable release 1.12.4 NEWS: minor fix Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b8651afd 2012-10-02 16:45:37 config headers: remove stale comment in makefile fragment * lib/am/remake-hdr.am: Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
25ffe7d5 2012-09-28 21:27:41 config headers: don't emit rules for headers not generated by autoheader This change fixed automake bug#12495. Even if an AC_CONFIG_HEADERS invocation is passed a list of several files as the first argument, only the first one of those file is considered by autoheader for automatic generation of the corresponding '.in' template. This is done on purpose, and is clearly documented in the Autoconf manual, which (as of the 2.69 version) reads something like this: The autoheader program searches for the first invocation of AC_CONFIG_HEADERS in configure sources to determine the name of the template. If the first call of AC_CONFIG_HEADERS specifies more than one input file name, autoheader uses the first one. That is, an invocation like: AC_CONFIG_HEADERS([config.h config2.h]) should cause autoheader to generate only a 'config.h.in' template, and not also a 'config2.h.in' one. Accordingly, automake, when tracing AC_CONFIG_HEADERS, should generate remake rules only for the template associated to the first input file name passed to that macro. In some situations, however, automake failed to properly limit itself in this way; for example, with an input like: AC_CONFIG_HEADERS([config.h sub/foo.h]) in configure.ac, and with the 'sub' directory listed in the SUBDIRS variable of the top-level Makefile, automake would erroneously generate in 'sub/Makefile.in' a rule to remake the 'foo.h.in' template by invoking autoheader. This issue was likely introduced in commit 'Release-1-8-23-g262bb92' of 2004-01-05. * NEWS: Update. * doc/automake.texi (Optional): Improve wording in the description of hat rules automake generates in response to an 'AC_CONFIG_HEADERS' invocation. * lib/am/remake-hdr.am: Only emit autoheader-invoking remake rules for the %CONFIG_HIN% template if that corresponds to the first argument of AC_CONFIG_HEADERS, as explaned above. Do so using the automake-time conditional %?FIRST-HDR%, that is properly passed ... * automake.in (handle_configure): ... from a 'file_contents' invocation in here. * t/autohdr-subdir-pr12495.sh: New test. * t/list-of-tests.mk: Add it. * THANKS: Update. Helped-by: Hib Eris <hib@hiberis.nl> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9f2442d7 2012-09-18 13:57:51 sync: update files from upstream with "make fetch" * lib/texinfo.tex: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
076e8fa2 2012-09-05 14:40:52 Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" news: cygnus will be removed in automake 1.13 news: some changes for 1.13 has been "de-planned" news: report that the have seen fixlets after 1.12.3 warns: enable category 'obsolete' by default Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
db543731 2012-09-05 14:33:31 sync: update files from upstream with "make fetch" * lib/texinfo.tex: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cf41f5af 2012-09-04 14:50:49 warns: enable category 'obsolete' by default No surprise that our users were bitten by backward-incompatible changes especially hard: the warnings in the 'obsolete' category, that might have informed them of the upcoming incompatibilities, and help them to prepare for the transition, where not enabled by default! * NEWS, doc/automake.texi: Update. * lib/Automake/ChannelDefs.pm: Enable warnings in the category 'obsolete' by default. * t/warnings-obsolete-default.sh: New test. * t/list-of-tests.mk: Add it. * t/backcompat.sh: Use 'configure.ac' rather than 'configure.in' as autoconf input file, to avoid spurious aclocal errors. * t/backcompat2.sh: Likewise. * t/backcompat3.sh: Likewise. * t/backcompat5.sh: Add '-Wno-obsolete' when invoking aclocal. Adjust heading comments. * t/backcompat6.sh: Likewise. * t/cygnus-imply-foreign.sh: Add '-Wno-obsolete' when invoking automake. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cb60ae36 2012-08-28 10:00:45 Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" automake: don't define many identical 'lang_*_rewrite' subroutines coverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap)
d343f7af 2012-08-28 09:59:22 sync: update files from upstream with "make fetch" * lib/config.guess, lib/config.sub: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
97998210 2012-08-26 12:55:38 Merge branch 'maint' * maint: docs: don't suggest to use recursive makefile setup tests: fix a timestamp race in python tests tests: fixup: make distcheck-override-infodir pass again sync: update files from upstream with "make fetch" maint: post-release minor version bump release: stable release 1.12.3 maintcheck: fix spurious warnings docs: fix typo: s/make install-info/make uninstall-info/ tests: fixup: make a couple of tests executable Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0166876d 2012-08-14 13:17:57 sync: update files from upstream with "make fetch" * lib/config.guess, lib/config.sub, lib/gitlog-to-changelog, lib/texinfo.tex: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c6cc3802 2012-08-13 14:05:40 Merge branch 'maint' * maint: tests: rework tests on AM_PATH_PYTHON cosmetics: fix typos and references in comments typofix: in a test diagnostic readme: fixlets to HACKING Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cbc0fc85 2012-08-13 12:10:46 cosmetics: fix typos and references in comments * lib/am/check.am: Here. * doc/automake.texi: And here. * t/*.sh: And in several of these tests. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ae1f40f5 2012-08-10 16:51:55 Merge branch 'maint' * maint: automake: remove an unused local variable distcheck: more resilient against possible failures cleanup: remove almost-unused global var 'am_relative_dir'
c1dd6cce 2012-08-10 16:11:04 distcheck: more resilient against possible failures * lib/am/distdir.am (distcheck): Ensure that a failure in the commands making the just-extracted source tree read-only cause the recipe to fail. While at it, save a fork by creating the '_build' and '_inst' subdir with a single mkdir invocation. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3e472de1 2012-08-05 11:06:16 Merge branch 'elisp-work' * elisp-work: news: document all the recent elisp-related changes and improvements coverage: byte-compiling elisp files in different subdirectories elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation elisp: --batch implies -q, remove -q elisp: support elisp files in subdirectories properly elisp: simplify suffix rules using emacs '-L' option elisp: no need to "absolutize" $(srcdir) and $(builddir) ... elisp: prefer $(builddir) files over $(srcdir) ones elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite) coverage: elisp path contains $(srcdir) and $(builddir) coverage: emacs lisp files in subdirectories
12f0caf6 2012-08-04 23:45:39 Merge branch 'maint' * maint: tests: fix a spurious XPASS on OpenIndiana tests: avoid spurious failure of 't/vala-vapi.sh' on OpenIndiana tests: avoid spurious failure of 't/uninstall-fail.sh' on OpenIndiana tests: reimplement wrappers for automake and aclocal in perl tests: work around a ksh bug w.r.t. ${1+"$@"} depcomp: style changes to Portland Group Compilers support depcomp: initial support for Portland Group Compilers
56cd2dda 2012-08-04 14:56:27 elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation * lib/am/lisp.am (.el.elc): Add "$(AM_ELCFLAFS) $(ELCFLAGS)" to the emacs command line. * t/lisp-flags.sh: New test. * t/list-of-tests.mk: Add it. * doc/automake.texi (Emacs Lisp): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6d6c831d 2012-08-02 11:41:28 Merge branch 'depcomp-pgcc' into maint * depcomp-pgcc: depcomp: style changes to Portland Group Compilers support depcomp: initial support for Portland Group Compilers
e3e58b6c 2012-07-24 19:58:45 tags: refactor to reduce code duplication (2) No semantic change is intended. * lib/am/tags.am (am__define_uniq_tagged_files): New variable, factor out some code common to ... (ctags-am, tags-am, ID): ... the recipes of these targets. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3c774c5e 2012-07-24 19:25:02 tags: refactor to reduce code duplication (1) No semantic change is intended. * lib/am/tags.am (am__uniquify_input): New variable, factor out some code common to ... (ctags-am, tags-am, ID): ... the recipes of these targets. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f3af1eb0 2012-07-24 18:43:50 Merge branches 'tags-simplify-recursion' and 'color-tests-always' * tags-simplify-recursion: tags: unify recursion for tags targets with that of "usual" targets * color-tests-always: tests: better name for a couple of tests check: support colorized testsuite output by default
2d5571e7 2012-07-22 16:38:47 check: support colorized testsuite output by default Fixes automake bug#11855. With this change, we make the 'color-tests' option enabled by default. That option remains still silently accepted as a no-op, for backward compatibility. The developer of a package is still free to disable testsuite coloring on a per-makefile basis (by adding "AM_COLOR_TESTS = no" to the Makefile.am) or on a whole-project basis (by AC_SUBST'ing AM_COLOR_TESTS to "no" in configure.ac). But now the user will be able to request the testsuite output to be colorized, if he really wants to: # With GNU make: make AM_COLOR_TESTS=yes check # With non-GNU make: make AM_COLOR_TESTS=yes AM_MAKEFLAGS=AM_COLOR_TESTS=yes check * NEWS: Update. * doc/automake.texi: Updated, and some related minor reformatting and rewording. * automake.in (handle_tests): No need to pass the transform '%COLOR%' when processing "check.am". * lib/am/parallel-tests.am: Remove use of the '%?COLOR%' transform; just act as if it were unconditionally TRUE. * t/color.sh: No need to specify 'color-tests' in 'AUTOMAKE_OPTIONS' nor in 'AM_INIT_AUTOMAKE'. * t/ax/testsuite-summary-checks.sh: Likewise. * t/ax/tap-summary-aux.sh: Likewise. * t/color2.sh: Likewise. Also, ensure that colorized testsuite output can be disabled by default by calling "AC_SUBST([AM_COLOR_TESTS], [no])". * t/tap-realtime.sh: Define 'AM_COLOR_TESTS' to "no" in Makefile.am, to avoid spurious colorization of the output due to the use of the 'expect' program. * t/color-tests-opt.sh: New test, check that the 'color-tests' option is still recognized as a no-op. * t/list-of-tests.mk: Add the new test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
158b46f2 2012-07-22 11:07:22 tags: unify recursion for tags targets with that of "usual" targets This change has a side effect: now any failure of the 'tags', 'ctags', 'cscope' and 'cscopelist' targets in a subdirectory will cause the recursive command issued from the top directory to fail. We believe that this behavioural change is not only justified by the simplification this patch entails, but actually offers better semantics: ignoring failures by default is never a good idea, and with make, the user can anyway order the completion of commands in the face of possible failures with the '-k' option. * NEWS: Update. * automake.in (%required_targets): Add keys 'cscopelist-am', 'tags-am' and 'ctags-am'. (handle_tags): Greatly simplified, the major part of the handling of recursion for the 'tags', 'ctags' and 'cscopelist' now moved out to ... * lib/am/tags.am: ... this file, that has been adjusted and extended accordingly. * t/maken3.sh: Remove testing of the 'TAGS' target, that is now just an alias to 'tags'. Without this change, this test would spuriously fail. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1ee9c78b 2012-07-16 10:31:27 elisp: --batch implies -q, remove -q According to the emacs manual[1], --batch implies -q, so there's no need to pass -q when compiling elisp. * lib/am/lisp.am: Remove -q from $(EMACS) call. [1]: http://gnu.org/s/emacs/manual/html_node/emacs/Initial-Options.html Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
094b83a6 2012-07-16 11:16:15 Merge branch 'maint' * maint: fixup: delete "# serial" line in m4/amversion.in news: update about recent ylwrap changes and fixes m4: get rid of "# serial" lines configure: ${#param} must be supported by the shell for the testsuite yacc tests: fix a spurious failure with parallel make ylwrap: use proper quoting inside a `...` substitution ylwrap: don't uselessly reset the exit status in case of failure ylwrap: fix C++ support for Bison ylwrap: refactor: move loop invariant ylwrap: refactoring: don't rely on the file order tests: upgrade and fix Bison test case tests: fix bison input file ylwrap: comment changes ylwrap: modernize idioms ylwrap: rename header inclusion in generated parsers ylwrap: simplify the list of renamings ylwrap: refactor: less duplication Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3645d0ff 2012-07-14 23:14:45 elisp: support elisp files in subdirectories properly For more reference, see: <http://lists.gnu.org/archive/html/automake/2009-10/msg00013.html> <http://thread.gmane.org/gmane.comp.sysutils.automake.bugs/4772> * lib/am/lisp.am (.el.elc): If the file being byte-compiled is in a subdirectory, add that (both as a subdirectory of the builddir and the srcdir) to the emacs load path. While we are at it (and for consistency), drop quoting of $(srcdir) and $(builddir), since those variables are ensured (by configure-time checks) not to contain white space nor shell metacharacters. * t/list-of-tests.mk (XFAIL_TESTS): Add 't/lisp-subdir.sh' and 't/lisp-subdir2.sh', since they now passes. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6fc5c9ac 2012-07-14 22:46:20 elisp: simplify suffix rules using emacs '-L' option * lib/am/lisp.am (.el.elc): Use '-L dir' instead of calling '--eval' to explicitly append to the 'load-path' variable. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
fec53184 2012-07-14 22:42:48 elisp: no need to "absolutize" $(srcdir) and $(builddir) ... * lib/am/lisp.am (.el.elc): ... here: we don't chdir around anyway, nor move or copy around our source '.el' files. Update comments, and re-wrap them while we are at it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
7cd72e5d 2012-07-14 22:33:40 elisp: prefer $(builddir) files over $(srcdir) ones * lib/am/lisp.am (.el.elc): Here. This better respects VPATH spirit. Adjust and extends comments. * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/lisp-loadpath.sh', which now passes. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
226be35f 2012-07-14 21:52:43 elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite) Motivated by automake bug#11806. Traditionally, automake byte-compiled emacs-lisp '.el' files by invoking 'elisp-comp' on all of them in a bulk; this involved complex timestamping and file-locking logic. It was also brittle in any slightly-unusual setup, because 'elisp-comp' operated by copying all of the elisp files to be compiled into a temporary sub-directory and compiling them in there, the copying the resulting byte-compile files back in the build directory. This patch removes all of that juggling and chicanery in favour of defining a much simpler '.el.elc' suffix rule. Not only this is simpler, but it also interacts better with "make -jN" calls, which are becoming more and more common and useful on today's increasingly multicore systems. * Makefile.am (dist_script_DATA): Remove 'elisp-comp'. * automake.in (@common_files): Likewise. (handle_emacs_lisp): Do not require 'elisp-comp'. * doc/automake.texi: Remove references to 'elisp-comp'. * lib/am/lisp.am: Define elisp compilation via a suffix rule; this basically amounts to a complete re-write of the lisp byte-compilation rules. * lib/elisp-comp: Remove. * t/add-missing.tap: Remove elisp-comp test. * t/dist-auxdir-many-subdirs.sh: Remove reference to elisp-comp. * t/primary-prefix-invalid-couples.tap: Likewise. * t/primary-prefix-valid-couples.sh: Likewise. * t/lisp4.sh: Remove reference to elc-stamp. * t/lisp5.sh: Likewise. * t/lisp6.sh: Likewise. * t/lisp3.sh: Likewise. Also remove the recompilation check that involves a (message) call. * t/lisp7.sh: Remove check for "Warnings can be ignored". Remove reference to elc-stamp. * t/lisp8.sh: Likewise. * t/lispdry.sh: Remove references to elc-stamp. Acked-by: Stefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
aad12dcc 2012-07-14 11:07:34 ylwrap: use proper quoting inside a `...` substitution * lib/ylwrap ($target): Here, when redefining this to a temporary file. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ae387d32 2012-07-14 11:04:42 ylwrap: don't uselessly reset the exit status in case of failure * lib/ylwrap: Here. In case of a failure in the wrapped yacc/lex invocation, '$ret' (holding the final exit status of ylwrap) was being uselessly reset to '1' in the later if/else. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
fa104579 2012-07-14 16:57:02 ylwrap: fix C++ support for Bison Fixes automake bug#7648. The current logic of ylwrap is to call yacc in a sub directory, and pull out of it all the files that were requested on its command line. Reverse this approach: export *all* the files created in the subdirectory, but rename them according to what the command says. This way, extra files, such as position.hh, location.hh and stack.hh for C++ parsers, but also parser.xml or parser.dot if XML or Dot output is enabled, will be preserved. * lib/ylwrap (pairlist): Remove. (main loop): Don't loop over pairlist, but over the files in the temporary directory. * t/list-of-tests.mk (XFAIL_TESTS): Fixes t/yacc-bison-skeleton-cxx.sh. * THANKS (James Bostock): Add, he reported bug#7648. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
4ce3d131 2012-07-14 10:09:15 ylwrap: refactor: move loop invariant * lib/ylwrap (input_rx): Move its definition next to its sibling's, outside of the main loop.
cfda11fb 2012-07-14 10:08:52 ylwrap: refactoring: don't rely on the file order Forthcoming changes will make us iterate over the files in a different order. lib/ylwrap (first): Remove, replaced by... (parser): this.
7e31ff5c 2012-07-13 13:14:44 ylwrap: comment changes * lib/ylwrap: Improve some comments.
0a25f35b 2012-07-13 14:33:38 ylwrap: modernize idioms * lib/ylwrap: Prefer printf to echo when special characters may occur. Replace the historical ',' sed separator with '|'.
be2bb639 2012-07-13 14:32:22 ylwrap: rename header inclusion in generated parsers Some types of Bison parsers, such as the GLR ones, generate a header file that they include. ylwrap, which renames the generated files, does not rename the included file. Fix this shortcoming, reported for instance here: <http://lists.gnu.org/archive/html/bug-bison/2012-06/msg00033.html>. Fixes t/yacc-bison-skeleton.sh, see Automake bug#7648 and PR automake/491. * lib/ylwrap (quote_for_sed): Accept arguments. Catch more special characters. (rename_sed): New. Improve the previous renaming sed commands using quote_for_sed. Suggested by Stefano Lattarini here: <http://lists.gnu.org/archive/html/automake-patches/2012-07/msg00095.html>. (main loop): Use rename_sed to rename the dependencies to other files. * t/yacc-d-basic.sh: Exercise this case, even if bison/yacc was not issuing such an include. * t/list-of-tests.mk (XFAIL_TESTS): Adjust.
1a871ca0 2012-07-12 15:13:29 ylwrap: simplify the list of renamings * lib/ylwrap (pairwise): Instead of being a straightforward copy from the command line arguments, and having to deal with y.tab vs. y_tab later, let pairwise store the real file names to process, y_tab conversion included when needed. (main loop): Use $to instead of $2, for symmetry with $from.
4294cbb0 2012-07-12 14:52:44 ylwrap: refactor: less duplication * lib/ylwrap (guard): New function. Move functions before actual code.
4e922a42 2012-07-12 22:04:07 depcomp: style changes to Portland Group Compilers support * lib/depcomp (pgcc): Quote 'like this', not `like this'. Other minor quoting improvements. Remove a commented-out command. In comments, use proper capitalization and punctuation. Make a more consistent use of whitespace. Make fatal error messages more nicely formatted, and send them to standard error rather than to standard output. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
32eed29a 2012-07-12 21:25:46 depcomp: initial support for Portland Group Compilers * lib/depcomp: Here. See automake bug#8880. Co-authored-by: Jeff A. Daily <jeff.daily@pnnl.gov> Acked-by: Stefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
bdb984ba 2012-07-09 19:33:03 Merge branch 'maint' (with fix for CVE-2012-3386) This makes the fix for a locally-exploitable security vulnerability (CVE-2012-3386) available to the Automake master branch. * maint: sync: update files from upstream with "make fetch" news: improve wording in entry about CVE-2012-3386 maint: post-release minor version bump release: stable release 1.12.2 distcheck: never make part of $(distdir) world-writable compat: automake should substitute @mkdir_p@, for backward compatibility fixup: t/README: it's ./runtest, not ./t/ax/runtest Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1c8bf11b 2012-07-09 18:26:56 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>
bab7065f 2012-07-06 22:43:04 distcheck: never make part of $(distdir) world-writable This fixes a locally-exploitable security vulnerability (CVE-2012-3386). In the 'distcheck' rule, we used to make the just-extracted (from the distribution tarball) $(distdir) directory and all its files and subdirectories read-only; then, in order to create the '_inst' and '_build' subdirectories in there (used by the rest of the recipe) we made the top-level $(distdir) *world-writable* for an instant (the time to create those two directories) before making it read-only again. Making that directory world-writable (albeit only briefly) introduced a locally exploitable race condition for those who run "make distcheck" with a non-restrictive umask (e.g., 022) in a directory that is accessible by others. A successful exploit would result in arbitrary code execution with the privileges of the user running "make distcheck" -- game over. Jim Meyering wrote a proof-of-concept script showing that such exploit is easily implemented. This issue is similar to the CVE-2009-4029 vulnerability: <http://lists.gnu.org/archive/html/automake/2009-12/msg00012.html> * lib/am/distdir.am (distcheck): Don't make $(distdir) world-writable, not even for an instant; make it user-writable instead, which is enough. Helped-By: Jim Meyering <jim@meyering.net> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
25510217 2012-07-09 10:33:49 compat: automake should substitute @mkdir_p@, for backward compatibility That has been unwittingly broken by commit v1.12-19-g7a1eb9f of 2012-04-28, "AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13". We thought it wasn't a big deal, but Jim Meyering reported that @mkdir_p@ is used in gettext's Makefile.in.in template: <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> * lib/am/header-vars.am (mkdir_p): Don't define. * m4/init.m4 (AM_INIT_AUTOMAKE): AC_SUBST 'mkdir_p' with $(MKDIR_P). * t/mkdir_p.sh, t/mkdirp-deprecation.sh: Enhance. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cbd1a604 2012-07-07 11:54:28 Merge branch 'maint' * maint: cosmetics: rename t/ax/test-runner => t/ax/runtest fixup: another "make recheck" failure with BSD make test runner: work correctly in VPATH setups compat: automake should define $(mkdir_p), for backward compatibility coverage: test that AM_PROG_MKDIR_P and $(mkdir_p) still works tests init: don't automatically re-execute tests with a POSIX shell yacc tests: fix spurious failure with parallel make tests: ignore minor 'recheck' regression for BSD make tests: don't clutter the top-level dir with temporary test directories tests: avoid spurious failures when @MKDIR_P@ points to "install-sh -d" lisp: better support of VPATH builds news: fixlets and updates + Extra non-trivial edits: * NEWS: State that $(mkdir_p) is still provided as an alias to $(MKDIR_P), for (partial) backward-compatibility. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cca42634 2012-07-06 10:12:30 compat: automake should define $(mkdir_p), for backward compatibility That has been unwittingly broken by commit 'v1.12-19-g7a1eb9f' of 2012-04-28, "AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13". Report from Benoit Sigoure and Diego Elio Pattenò: <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> * lib/am/header-vars.am (mkdir_p): Define as an alias for $(MKDIR_P). * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/mkdir_p.sh'. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0451b0bc 2012-07-05 18:50:37 lisp: better support of VPATH builds Fixes automake bug#11806. * lib/am/lisp.am: Pass the value of '$(abs_srcdir)' to the elisp-compile script in the environment. * lib/elisp-comp: Add the vale of '$abs_srcdir' to the emacs load-path. * t/lisp-pr11806.sh: New test. * t/list-of-tests.mk: Add it. Copyright-paperwork-exempt: yes Co-authored-by: Stefano Lattarini <stefano.lattarini@gnu.org> Reported-by: Makoto Fujiwara <makoto@ki.nu> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5e0539a3 2012-07-03 21:15:33 Merge branch 'aclocal-trace-macrodir' * aclocal-trace-macrodir: aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cd1a9ccc 2010-10-05 17:14:00 aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead Maintaining ACLOCAL_AMFLAGS in the Makefile.am to pass extra flags to aclocal is (and have always been) quite of an hack. For example, autoreconf is forced to grep Makefile.am to honour those flags. But this is a bad obsolescent behaviour; in fact, the autotools have moved consistently in the past years from custom grepping of Makefile.am and configure.ac to tracing of m4 macro calls, which is more consistent, more reliable and more flexible. And when autoreconf is not used, the developer is forced to add *by hand* the flags specified by ACLOCAL_AMFLAGS to the aclocal calls not triggered by make rebuild rules; here lie again more duplication and more chances for errors. Moreover, ACLOCAL_AMFLAGS has only two typical use cases: - to instruct aclocal to look for extra macro definition in a local directory (as with "ACLOCAL_AMFLAGS = -I m4"); and - to further instruct aclocal to copy in that local directory the required third-party .m4 files found in the system-wide directory (as with "ACLOCAL_AMFLAGS = -I m4 --install"). The first use case can be better covered if aclocal can instead trace and honours call to the AC_CONFIG_MACRO_DIR autoconf macro; and the second use case shouldn't be considered really legitimate, as it is quite (and subtly) brittle (see automake bug#9037). Thus we now make aclocal trace AC_CONFIG_MACRO_DIR macro, and act accordingly. For backward compatibility, we continue to support the ACLOCAL_AMFLAGS special variable (although removing any mention of it from the documentation). Future Automake releases will likely start to warn about the use of that variable, and eventually remove support for it altogether. From a suggestion by Eric Blake. This is a much simplified (and IMHO saner) version of the patch series discussed in the threads: <http://lists.gnu.org/archive/html/automake-patches/2010-10/msg00045.html> <http://lists.gnu.org/archive/html/automake-patches/2010-12/msg00156.html> * aclocal.in ($ac_config_macro_dir): New global variable. (trace_used_macros): Also trace the macro 'AC_CONFIG_MACRO_DIR', and set the '$ac_config_macro_dir' variable accordingly. (parse_arguments): Code for diagnosis of '--install' used without any user-specified include directory moved ... (while (1)): .. into the main loop. Which now also updates the list of user-specified include directories to include the directory given as argument to the call (if any) of 'AC_CONFIG_MACRO_DIR'. * lib/am/configure.am: Update comments. * NEWS: Updated. * doc/automake.texi: Likewise. Also, stop advising the use of the '--install' in ACLOCAL_AMFLAGS (see automake bug#9037 for a rationale), and remove any reference to ACLOCAL_AMFLAGS (which is now considered obsolescent). * t/aclocal-path-install.sh: Adjust grepping check in the aclocal error messages. * t/subpkg.sh: Updated: add 'AC_CONFIG_MACRO_DIR' call to configure.ac, remove setting of 'ACLOCAL_AMFLAGS' in Makefile.am and use of aclocal command line arguments. * t/subpkg2.sh: Likewise. * t/subdir8.sh: Likewise. * t/remake10c.sh: Likewise. * t/remake8a.sh: Likewise. * t/remake8b.sh: Likewise. * t/aclocal4.sh: Likewise. * t/aclocal6.sh: Likewise. * t/acloca14.sh: Likewise. * t/acloca22.sh: Likewise. * t/aclocal5.sh: Likewise, and do not not invade the Automake namespace (this avoids spurious failures). * t/acloca14b.sh: New test, identical to the previous version of 'acloca14.test'; it is kept to verify backwards compatibility with the use of ACLOCAL_AMFLAGS. * t/acloca22b.sh: Likewise (but for 'acloca22.test'). * t/aclocal-amflags.sh: New test, check for backwards compatibility that ACLOCAL_AMFLAGS still works. * t/remake-macrodir.sh: New test, checking that aclocal's honoring of AC_CONFIG_MACRO_DIR interacts nicely with automatic rebuild rules. * t/list-of-tests.mk: Add the new tests. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
22786e46 2012-07-02 15:04:12 Merge branch 'user-recursive-targets' * user-recursive-targets: recursion: support user-defined recursive targets tests: rename 'recurs*.sh' to 'var-recurs*.sh' tests: minor improvements to 'recurs*.sh'
3da1457d 2012-06-12 14:48:12 recursion: support user-defined recursive targets The user can now define his own recursive targets that recurse in the directories specified in $(SUBDIRS). That can be done by specifying the name of such targets in invocations of the new 'AM_EXTRA_RECURSIVE_TARGETS' m4 macro. The API goes like this: $ cat configure.ac AC_INIT([pkg-name], [1.0] AM_INIT_AUTOMAKE AM_EXTRA_RECURSIVE_TARGETS([foo]) AC_CONFIG_FILES([Makefile sub/Makefile]) AC_OUTPUT $ cat Makefile.am SUBDIRS = sub foo-local: @echo This will be run by "make foo". $ cat sub/Makefile.am foo-local: @echo This too will be run by a "make foo" issued either in @echo the 'sub/' directory or in the top-level directory. Like for the "default" recursive targets (e.g., 'all' and 'check'), the user-defined recursive targets descend in the $(SUBDIRS) in a depth-first fashion, and process '.' last (unless that is explicitly specified in $(SUBDIRS)). * NEWS, doc/automake.texi: Document the new feature. * automake.in (@extra_recursive_targets): New global variable. (scan_autoconf_traces): Trace macro '_AM_EXTRA_RECURSIVE_TARGETS'. (handle_user_recursion): New subroutine; among other things, it defines the new internal '$(am__extra_recursive_targets)' make variable, and the '*-am', '*-local' and '*-recursive' targets associated with the user-specified user recursive targets. (generate_makefile): Call the new subroutine. * lib/am/subdirs.am (am__recursive_targets): New internal make variable, listing all of '$(RECURSIVE_TARGETS)', '$(RECURSIVE_CLEAN_TARGETS)' and '$(am__extra_recursive_targets)' together. (AM_RECURSIVE_TARGETS): Adjust the definition of this variable ... (.PHONY, .MAKE): ... and the list of dependencies of these special targets to take advantage of the new '$(am__recursive_targets)' variable. ($(am__recursive_targets)): New targets, superseding ... ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)): ... these, and inheriting their rules. This way, the rules to handle recursion for built-in recursive targets (e.g., 'all', 'dvi', 'clean') and for user defined recursive targets are the same. * m4/extra-recurs.m4: New file, contain definition of new macro 'AM_EXTRA_RECURSIVE_TARGETS' and '_AM_EXTRA_RECURSIVE_TARGETS'. These macros are basically dummy, only used for tracing by automake. * m4/Makefile.am (dist_automake_ac_DATA): Update. * t/recurs-user.sh: New test. * t/recurs-user2.sh: Likewise. * t/recurs-user-deeply-nested.sh: Likewise. * t/recurs-user-indir.sh: Likewise. * t/recurs-user-keep-going.sh: Likewise. * t/recurs-user-many.sh: Likewise. * t/recurs-user-no-subdirs.sh: Likewise. * t/recurs-user-no-top-level.sh: Likewise. * t/recurs-user-override.sh: Likewise. * t/recurs-user-phony.sh: Likewise. * t/recurs-user-wrap.sh: Likewise. * t/remake-recurs-user.sh: Likewise. * t/list-of-tests.mk: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f2436f5b 2012-07-01 18:01:35 Merge branch 'maint' * maint: tests: don't trust the exit status of "make -k" for non-GNU makes parallel-tests: reimplement fix for bug#11791 tests setup: unset CDPATH tests setup: more namespace safeness tests setup: remove an unused variable tests setup: less hard-coding of the test subdirectory
d5443e4c 2012-07-01 12:56:22 parallel-tests: reimplement fix for bug#11791 * lib/am/check.am: Here. The new implementation is shorter, slightly more efficient (requiring less forks), less brittle in the face of signals or unexpected interruptions in the make process, and should also be easier to merge in the 'ng/master' branch (as of now, due to the difficulties in merging our previous version of the fix in the 'ng/master' codebase, Automake-NG still lacks a fix for bug#11791). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ca9b4d33 2012-07-01 10:14:23 Merge branch 'maint' * maint: parallel-tests: silence an overly verbose recipe tests: fix some uses of 'Exit', where 'exit' should now be used instead maintcheck: test scripts should be executable, check for that
167f68f4 2012-06-30 23:37:57 parallel-tests: silence an overly verbose recipe * lib/am/check.am (check-TESTS): Here, the part of the recipe removing the stale '.log' and '.trs' files. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5fb73b05 2012-06-30 22:17:22 Merge branch 'maint' * maint: parallel-tests: recipes for "check" and "recheck" are separated again
e18ac4b8 2012-06-30 21:32:20 Merge branch 'maint' * maint: parallel-tests: "recheck" behaves better in case of compilation failures scripts: quote 'like this', not `like this' Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6c9b282b 2012-06-30 20:53:39 parallel-tests: recipes for "check" and "recheck" are separated again * lib/am/check.am: Here. They have distinctly diverged recently, and the reduction in code duplication obtained keeping their recipes united is not anymore worth the extra complications. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
da9ad6fa 2012-06-28 11:20:43 cosmetics: remove trailing whitespace in some files * lib/missing, t/comment7.sh, t/objc-flags.sh, t/objcxx-flags.sh, t/perf/testsuite-summary.sh, t/self-check-explicit-skips.sh: Here. Prompted by a report from Karl Berry. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2a3e45d6 2012-06-27 12:47:17 parallel-tests: "recheck" behaves better in case of compilation failures With this change, the "recheck" target behaves better in the face of build failures related to previously failed tests. For example, if a test is a compiled program that must be rerun by "make recheck", and its compilation fails, that test will still be rerun by further "make recheck" invocations. Previously, its '.log' and '.trs' would have both been lost, so that the test would have not been re-run. This change fixes automake bug#11791. * NEWS: Update. * lib/am/check.am (recheck, check-TESTS): Adjust to cater to scenario described above. * t/parallel-tests-recheck-pr11791.sh: New test. * t/list-of-tests.mk: Add it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f7132aee 2012-06-27 11:13:54 scripts: quote 'like this', not `like this' * lib/test-driver.sh: Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
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>