kc3-lang/automake/lib

Branch :


Log

Author Commit Date CI Message
bd838a68 2014-12-23 21:15:18 Merge branch 'micro' into minor * micro: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files" include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation
6979c8e6 2014-12-23 20:24:46 Merge branch 'distcheck-pr18286' into micro * distcheck-pr18286: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files"
01a7a4a7 2014-12-23 18:39:32 dist: fix bug#18286 "distcheck fails to detect missing files" BTW, this issue had been already reported in the past: http://lists.gnu.org/archive/html/automake/2006-09/msg00008.html http://lists.gnu.org/archive/html/automake/2013-01/msg00049.html "make distcheck" could sometimes fail to detect missing files in the distribution tarball, especially in those cases where both the generated files and their dependencies are explicitly in $(srcdir). An important example of this are *generated* makefile fragments included at Automake time in Makefile.am. A basic example: # -*- Makefile.am -*- $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am include $(srcdir)/fragment.am ... If the use forgot to add data.txt and/or preproc.sh in the distribution tarball, "make distcheck" would have erroneously succeeded! The reason is that, while $(srcdir)/data.txt does not exist, make also looks in $(srcdir)/$(srcdir)/data.txt, and in the distcheck-issued VPATH build where $(srcdir) is '..', that file exists, as it is part of the original development directory. * t/distdir.am (distcheck): Adjust to have the build directory be '$(distdir)/_build/sub' rather than just '$(distdir)/_build'. Thanks Nicola Fontana for the suggestion. * t/distcheck-pr18286.sh: Enhance and tighten a little. * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/distcheck-pr18286.sh', as it's now passing. * t/subdir-am-cond.sh: Adjust to avoid a fully spurious failure due to the new distcheck semantics. * t/subdir-ac-subst.sh: Likewise. * t/dejagnu-relative-srcdir.sh: Likewise. * t/txinfo-builddir.sh: Likewise. * NEWS: Update. Helped-by: Nicola Fontana <ntd@entidi.it> Helped-by: Peter Johansson <trojkan@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a38fe86d 2014-12-23 17:27:30 Merge branch 'am-deps' into micro * am-deps: include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
55270ac3 2014-12-23 13:10:21 include: fix bug in handling of user-defined makefile fragments generation If a user defined one single Makefile fragment to be included (via Automake includes) in his main Makefile.am, and gave a rule to generate that file from other data, Automake used to spuriously complain about with something like "overrides Automake target '$(srcdir)/foo.am". This change remove that spurious error (via a simple hack rather than a systematic change, but oh well). * lib/am/configure.am (%MAKEFILE-IN-DEPS%) [?HAVE-MAKEFILE-IN-DEPS?]: Add a trailing "$(am__empty)" to the list of targets, which is enough to trick Automake into not complaining about "duplicated targets" in case the '%MAKEFILE-IN-DEPS%' list expands to a single target that is also declared in some user-defined rule. * t/list-of-tests.mk (XFAIL_TESTS): Remove now-passing test 't/am-include-only-one-generated-fragment.sh'. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
88ac92b2 2014-12-22 17:56:22 Merge branch 'micro' into minor * micro: cleanup: refactor code to initialize DIST_COMMON dist: ordering of files in DIST_COMMON is deterministic now tests: refactor some tests on DIST_COMMON maint: make output of 'gen-testsuite-part' deterministic When computing lispdir, don't load emacs site wide init file. PATH: quote $(PATH_SEPARATOR) as well Improve detection of GNU make, avoiding "Arg list too long" errors.
91238345 2014-12-22 13:39:30 cleanup: refactor code to initialize DIST_COMMON There is not need to make that an Automake variable early, only to later get and munge its contents, and use the new content to redefine the variable. * bin/automake.in (@dist_common): New global variable. (push_dist_common, handle_dist): Use it. (handle_dist): Define am__DIST_COMMON instead of DIST_COMMON directly. (initialize_per_input): Reset it to empty. ($configure_dist_common): Turn this scalar variable ... (@configure_dist_common): ... into this array variable. (handle_dist): Adjust. (required_file_check_or_copy): Update and wrap some comments. * lib/am/distdir.am (DIST_COMMON): Append $(am__DIST_COMMON). * t/distcom2.sh: Tighten a little. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e7c14d96 2014-12-19 15:10:09 Improve detection of GNU make, avoiding "Arg list too long" errors. Such errors could take place when the main makefile included too many sub-makefiles, making $(MAKEFILE_LIST) too long and causing the recipes $(am__is_gnu_make) to exceed the shell's command-line length limits. This is not a theoretical issue: it could happen for projects having lots of C/C++ sources and using automatic dependency tracking, which created an included .Po sub-makefile for each of such sources. Fixes http://debbugs.gnu.org/18744 * lib/am/header-vars.am (am__is_gnu_make): Fix the logic to avoid the use of $(MAKEFILE_LIST). * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
78964087 2014-12-19 13:09:39 Merge branch 'micro' into minor * micro: sync: update third-part files from upstream Make sure AM_INIT_AUTOMAKE has a trailing newline dist: adjust warning messages about shar and tarZ deprecation docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c7803af6 2014-12-19 12:43:47 sync: update third-part files from upstream * lib/config.guess: This. * lib/config.sub: And this. * lib/gitlog-to-changelog: And this. * lib/gnupload: And this. * lib/update-copyright: And this. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
4410ae7f 2014-12-19 11:08:15 dist: adjust warning messages about shar and tarZ deprecation They were swapped. Reported in http://debbugs.gnu.org/19108. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6465c530 2014-08-23 07:55:28 build: fix race in parallel builds Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301 * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the temporary file name. Use a similar temporary in the source dir.
74cdef78 2014-08-23 07:55:28 build: fix race in parallel builds Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301 * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the temporary file name. Use a similar temporary in the source dir.
a78f63c5 2014-04-21 15:10:54 maint: update copyright years We've been in 2014 already for few months now... Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9459625a 2014-04-21 15:08:34 maint: sync files from upstream ("make fetch") Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3a851d64 2014-04-21 10:22:29 Typofixes in warning messages and manual Fixes automake bug#16827 and bug#16997. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ad9804e1 2013-12-30 23:21:03 parallel-tests: avoid possible implicit "make all" in test-suite.log rule This change fixes automake bug#16302. * lib/am/check.am ($(TEST_SUITE_LOG)): Avoid running "make $redo_logs" when $redo_logs expands to empty, since in that case we are actually ending up invoking a full "make all". That shouldn't be required, and can cause slowdowns for people implementing their extra "laziness wrappers" around check-TESTS (automake bug#16302). * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f0a7083a 2013-12-26 19:31:15 Allow user to extend .PRECIOUS target References: <http://lists.freedesktop.org/archives/systemd-devel/2013-July/012155.html> <http://lists.gnu.org/archive/html/automake/2013-07/msg00011.html> * bin/automake.in: Adjust to ensure we handle '.PRECIOUS' the same way we do for '.PHONY' and '.MAKE'. * lib/Automake/Rule.pm: Likewise. * t/precious.sh: New test. * t/list-of-tests.mk: Add it. * t/phony.sh: Enhance a little while at it. * NEWS: Update. * THANKS: Likewise. Reported-by: Holger Hans Peter Freyther <holger@freyther.de> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3dd26cf0 2013-12-26 00:33:05 install-sh: a slightly better diagnostic, and tests enhancements * lib/install-sh: When called with no non-option arguments and the '-t' option with an argument that is not an existing directory, have the diagnostic output complain about the lack of required arguments rather than about the bad argument passed to '-t'. * t/install-sh-unittests.sh: Enhance to also check diagnostic printed in cases of expected failure. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
222337e6 2013-12-26 00:07:27 install-sh: be stricter in catching invalid usages Such usages (which are rejected by GNU install as well) are: - options -d and -t used together; - argument passed to option -t must be a directory; - if there are two or more SOURCEFILE arguments, the DESTINATION argument must be a directory. Note that we still allow the use of options -d and -T together, by making -d take the precedence; this is for compatibility with GNU install. This change fixes, among other things, automake bug#15376. * lib/install-sh: Adjust. * t/install-sh-unittests.sh: Enhance. * NEWS: Update. * THANKS: Add reporter of bug#15376. Helped-by: Tobias Hansen <thansen@debian.org> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b04ea3e9 2013-12-25 16:44:17 Merge branches 'fix-pr11814' and 'drop-perl-tap-driver' into minor * fix-pr11814: docs: drop a few obsolescent FIXME/TODO comments, and associated text testsuite harness: report test exit status in log file * drop-perl-tap-driver: TAP driver: remove perl implementation (move it into contrib/) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c7e2fb2e 2013-12-24 17:45:18 testsuite harness: report test exit status in log file The exit status of a test should be reported in the test logs, so that one can see at a glance whether the test has succeeded or failed, without having to look also into the corresponding .trs file. This fixes automake bug#11814. * lib/test-driver: Also report the test script exit status in the test log (as the last line). * t/check-exit-status-reported.sh: Test this new behaviour. * t/list-of-tests.mk: Add the new test. * t/ax/test-lib.sh( am_exit_trap): No longer log the test exit status; this has been made redundant by the change to 'test-driver'. While at it, fix an imperfect quoting. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a6d6734f 2013-12-24 16:27:28 TAP driver: remove perl implementation (move it into contrib/) That implementation was only meant as a standard against which the portable awk+shell implementation was to be measured. Now, since Automake 1.12, the latter implementation is fully functional and already used in the wild, and in fact feature-par with the perl implementation. So the perl implementation is now just slowing down and complicating our testsuite. Let's move it to 'contrib/' (we don't want to remove it, in case someone is actually using it in the wild). * lib/tap-driver.pl: Move it ... * contrib/tap-driver.pl: ... here. While at it, convert quoting `like this' to quoting 'like this', and remove an obsolescent FIXME comment. * lib/Makefile.inc (dist_script_DATA): Drop '%D%/tap-driver.pl'. * Makefile.am (EXTRA_DIST): Add 'contrib/tap-driver.pl'. * doc/automake.texi: Remove one stray reference to 'tap-driver.pl', and reference 'tap-driver.sh' instead, as intended. * t/ax/am-test-lib.sh ($am_tap_implementation): Delete definition and uses. (fetch_tap_driver): Simplify to unconditionally assume the shell+awk implementation of the TAP driver is used. (get_shell_script): Make more flexible so that it can cater to the needs of 'fetch_tap_driver()'. * t/tap-bad-prog.tap: Likewise. * t/tap-bailout-leading-space.sh: Likewise. * t/tap-signal.tap: Likewise. * t/tap-test-number-0.sh: Likewise. * t/test-driver-cond.sh: Use 'tap-driver.sh' instead of 'tap-driver.pl'. * gen-testsuite-part (%test_generators): Do not generate sister tests that use the perl TAP driver rather than the shell+awk one. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
39a0a5de 2013-12-24 15:26:17 Merge branch 'micro' into minor * micro: post-release: micro version bump to 1.14.1a devel version release: stable micro release 1.14.1 HACKING: minor clarification tests: make install-info-dir.sh print more debugging info tests: remove too-brittle test tap-realtime.sh maintainer: am-ft: add option to cater to clock skews sync: update INSTALL, config.guess and config.sub from upstream TAP driver: cosmetic fixes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2f248b0b 2013-12-23 18:03:01 sync: update INSTALL, config.guess and config.sub from upstream Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a5253365 2013-12-23 17:35:05 TAP driver: cosmetic fixes * lib/tap-driver.sh: Quote 'like this', not `like this'. Remove an obsolete FIXME. Correctly mark another comment as a TODO rather than as a FIXME. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
4527bb9a 2013-11-02 02:50:38 Merge branch 'modernize-install-sh' into minor * modernize-install-sh: cosmetics: untabify the install-sh script install-sh: assume that "set -f" and "set +f" work... install-sh: assume ${var:-value} works as expected install-sh: assume 'dirname' is available and working correctly
e5eb95ce 2013-11-01 22:41:23 Merge branches 'fix-pr14991' and 'fix-pr14891' into micro * fix-pr14991: distcheck: don't allow overriding of --prefix and --srcdir by the user tests: expose bug#14991 (relates to 'distcheck') * fix-pr14891: automake: account for perl hash order randomization tests: avoid use of intervals to capitalize letters
52e64045 2013-07-21 17:58:05 automake: account for perl hash order randomization Try to explicitly order the keys of some perl hashes when looping on them to do sanity/correctness checks and possibly display warning messages; this should ensure a more reproducible output. Not really a big deal, but I prefer to keep the order of such output reproducible if possible. Issue revealed by spurious testsuite failures with perl 5.18, as reported in automake bug#14891. See also: <http://search.cpan.org/dist/perl-5.18.0/pod/perldelta.pod#Hash_randomization> <http://onionstand.blogspot.ie/2012/12/are-you-relying-on-hash-keys-being.html> * lib/Automake/Variable.pm (variables): Explicitly order the values of the returned Automake::Variable instances. (variables_dump): Simplify, using the knowledge that 'variables()' now sorts its output. * t/preproc-errmsg.sh: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
7fc2672b 2013-10-30 23:22:42 cosmetics: untabify the install-sh script * lib/install-sh: Here, plus a couple of related formatting tweaks. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
006ca8d9 2013-10-30 23:17:55 install-sh: assume that "set -f" and "set +f" work... ... and disable/enable shell globbing, respectively. This is mandated by POSIX, and supported even by Solaris 9 /bin/sh (one of the most braindead shells we still support). * lib/install.sh: Adjust. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
bd44db1a 2013-10-30 22:58:16 install-sh: assume ${var:-value} works as expected The Autoconf manual says it is OK these days. * lib/install.sh: Adjust. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1b61da33 2013-10-30 22:44:34 install-sh: assume 'dirname' is available and working correctly Really, we no longer care about hosts so outdated/broken to miss fundamental utilities like basename or dirname. * lib/install.sh: Adjust. * NEWS, THANKS: Update. Suggested-by: Philipp A. Hartmann <philipp.hartmann@offis.de> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9b156829 2013-10-30 21:41:39 distcheck: don't allow overriding of --prefix and --srcdir by the user Not through AM_DISTCHECK_FLAGS, nor through DISTCHECK_FLAGS. Apparently, some packages got in the habit of relaying all the options passed to the original ./configure invocation through to the configure invocations in "make distcheck". This was causing problems, because it also passed through the original --srcdir and --prefix options. Fixes: expose bug#14991 (relates to 'distcheck') * lib/am/distdir.am (distcheck): Pass the hard-coded --srcdir and --prefix options *after* both the developer-defined options in $(AM_DISTCHECK_FLAGS) and the user-defined options in $(DISTCHECK_FLAGS). * t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test 'distcheck-no-destdist-or-srcdir-override.sh'. * doc/automake.texi (Checking the Distribution): Update. * NEWS: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2c063f33 2013-09-17 09:57:53 python: byte-compile nobase_*_PYTHON files only once * lib/am/python.am: Here. Byte-compiling was occurring inside of a loop, causing an O(n^2) number of byte-compilations instead of O(n). Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
8c554e1f 2013-10-28 21:28:05 cosmetics: typofix in the 'missing' script * lib/missing: Here, in a message printed to the user. * THANKS: Update. Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0ac06406 2013-07-13 23:50:15 test harness: improve catching of usage errors in script 'test-driver' Fixes automake bug#14840. * lib/test-driver: Catch and report usage errors where the caller has forgotten to specify one of the mandatory options (--test-name, --log-file, --trs-file) or has not passed any non-option argument. Also, be sure to work correctly even when no '--' special argument is passed to separate option from non-options arguments. * THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
325122ea 2013-06-14 19:59:39 Merge branch 'micro' into maint * micro: post-release: micro version bump (1.13.4a) release: stable micro release 1.13.4 sync: update config.guess Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
7fe602b9 2013-06-14 14:40:49 sync: update config.guess * lib/config.guess: This. Actually, only the timestamp has been updated (apparently, it was mistakenly not updated in the previous real change to the script). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6febcd41 2013-06-12 21:22:58 Merge branch 'micro' into maint * micro: THANKS: update e-mall address for Ralf Corsepius lang, suffix rules: don't require C stuff needlessly tests: expose automake bug#14560 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
4f7cc4fe 2013-06-11 21:20:18 lang, suffix rules: don't require C stuff needlessly This change fixes automake bug#14560: when two or more user-defined suffix rules were present in a single Makefile.am, automake would needlessly include definition of some make variables related to C compilation in the generated Makefile.in. * automake.in (handle_languages): Fix logic to decide whether or not to include definitions of C compilation related variables in the generated Makefile.in: instead of doing so when two or more user-defined suffix rules are seen (which is a completely bogus criterion), do so when two or more compiled languages are used. * lib/Automake/Rule.pm (suffix_rules_count): Remove as no longer used. (@EXPORT): Adjust. * t/list-of-tests.mk (XFAIL_TESTS): No longer list the test script 'suffix-extra-c-stuff-pr14560.sh', which now passes. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9892eb78 2013-06-09 11:37:01 Merge branch 'micro' into maint * micro: maint: add a missing copyright notice sync: update config.guess from upstream tests: expose automake bug#13928 comments: fix some out-of-sync refs to test scripts tests: expose automake bug#13940
843fc2e5 2013-06-09 10:35:25 sync: update config.guess from upstream * lib/config.guess: Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f7492285 2013-06-08 17:56:34 comments: fix some out-of-sync refs to test scripts Those script has been renamed since those comments where written. * lib/Automake/Rule.pm: Adjust. * lib/am/distdir.am: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
fb3fe261 2013-05-30 15:41:34 Merge branch 'micro' into maint * micro: maint: support new Automake versioning scheme in tagging/uploading rules announcement: can be generated from development snapshots as well announcement: can be generated from development snapshots as well announcement: be less strict in the paring of NEWS maint: version bump after beta release 1.13.2b release: beta release 1.13.2b (will become 1.13.3) sync: update config.guess from upstream Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f968f3c3 2013-05-30 13:19:43 sync: update config.guess from upstream Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0d9399f1 2013-05-30 11:55:48 Merge branch 'micro' into maint * micro: NEWS: document recent testsuite fixes (MinGW/MSYS related) depcomp: avoid trailing backslash in depfile for depmode=msvc7 tests: prune some weed in a non-POSIX test tests: avoid a spurious failure on MSYS
b4bfacb6 2013-05-30 10:49:42 depcomp: avoid trailing backslash in depfile for depmode=msvc7 When compiling a file without any dependencies (no #includes), the msvc7 depmode (and consequently msvc7msys) generates a depfile Makefile fragment with the last line ending with a backslash. This is less robust than needed. Fixes automake bug#14501. * lib/depcomp (msvc7): Finish off the depfile Makefile fragment with an empty line. (scriptversion): Update. Signed-off-by: Peter Rosin <peda@lysator.liu.se>
c98d5235 2013-05-29 10:39:58 Merge branch 'micro' into maint * micro: NEWS: fix typos and grammaros NEWS: document fix for bug#14441 Automake::Rule: consistently prepend underscore to private variables Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain() Automake::Rule: adjust comments and POD according to previous changes Automake::Rule: make private variables lexically scoped suffix rules: better distinction between builtin and user-derived Automake::Rule: expose suffix rules as a function, not a scalar tests: expose automake bug#14441
f98ca068 2013-05-28 10:56:30 Automake::Rule: consistently prepend underscore to private variables * lib/Automake/Rule.pm (%suffix_rules): Rename ... (%_suffix_rules): ... like this. (%suffix_rules_builtin): Rename ... (%_suffix_rules_builtin): ... like this. (reset, next_in_suffix_chain, register_suffix_rule, suffix_rules_count): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
986ca6c0 2013-05-27 12:55:27 Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain() * lib/Automake/Rule.pm (suffix_rule): Rename ... (next_in_suffix_chain): ... like this. (%suffix_rules): Adjust comments. (@EXPORT): Adjust. * automake.in (derive_suffix): Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1246ace6 2013-05-27 12:30:14 Automake::Rule: adjust comments and POD according to previous changes * lib/Automake/Rule.pm: Here, in several places. * automake.in (register_language): And a tiny adjustment here as well. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
71e0af47 2013-05-27 12:24:02 Automake::Rule: make private variables lexically scoped * lib/Automake/Rule.pm (@_known_extensions_list): This one. (@_suffixes): And this one. (%_rule_dict): And this one. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6d4ffd83 2013-05-27 11:14:22 suffix rules: better distinction between builtin and user-derived Fixes automake bug#14441. * lib/Automake/Rule.pm ($_suffix_rules_default): Remove, superseded by ... (%suffix_rules_builtin): ... this lexical variable. ($suffix_rules): Remove, superseded by ... (%suffix_rules): ... this lexical variable. (suffix_rules, suffix_rules_count): Adjust. (register_suffix_rule): Update '%suffix_rules_builtin' rather than '%suffix_rules' if the location (as passed by the '$where' argument) is an "internal" one (doesn't come from user-provided Makefile.am). (reset): Simplify resetting of '%suffix_rules' to the default ones accordingly. * t/list-of-tests.mk (XFAIL_TESTS): Drop test 'suffix-custom-pr14441.sh'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
55f82a80 2013-05-27 10:44:06 Automake::Rule: expose suffix rules as a function, not a scalar This is just a preparatory refactoring in view of future patches. No semantic change is intended. * lib/Automake/Rule.pm ($suffix_rules): Turn from a package-level variable to a lexical variable. (suffix_rule): New function, expose the details of $suffix_rules that are actually required by code outside thus modules --- and only those details, no more. (@EXPORT): Adjust. * automake.in (derive_suffix): Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
86e45fe1 2013-05-23 20:12:17 Merge branch 'micro' into maint * micro: tests: avoid '$MAKE' redirections, use 'run_make' instead tests: avoid use of redirected 'run_make' invocations lint: warn against redirected 'run_make' invocations comments: next GNU make release 4.0, not 3.83 tests: fix a potential spurious failure due to global config.site HACKING: it's OK to do testsuite refactoring in a micro version Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f2a1ef46 2013-05-22 23:42:09 comments: next GNU make release 4.0, not 3.83 See: <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00093.html> * lib/am/header-vars.am (am__make_running_with_option): Adjust comments. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0cca184f 2013-05-18 15:23:20 Merge branch 'micro' into maint * micro: lisp: fix a failure with Solaris /usr/xpg4/bin/sh tests: sanitize 'unset' usages tests: fix some botched/outdated comments tests: use perl, not find+rm, to remove temporary directories Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0256f1d6 2013-05-18 13:35:16 lisp: fix a failure with Solaris /usr/xpg4/bin/sh * lib/am/lisp.am (.el.elc): By initializing the 'am__dir' properly here. For most shells, the lacking initialization, while technically incorrect, didn't cause any issue in practice, because in those shells "test -d" returns an exit status of 0. But with /usr/xpg4/bin/sh, the shell complains like this: "test: argument expected", and returns a non-zero exit status. This caused testsuite failures in several lisp tests. Also, while we are at it, use more proper quoting in the recipe, to ensure a missing initialization to now be caught by more forgiving shells as well. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f233bf8f 2013-05-11 10:25:33 options: tiny simplification in dealing with incompatible versions * lib/Automake/Options.pm (_process_option_list): Here, when an incompatible version number option is detected, there's no need to call error() with the "uniq_scope => US_GLOBAL" switch. In fact, if the same incompatible version number is specified in AUTOMAKE_OPTIONS in both (say) 'Makefile.am' and 'sub/Makefile.am', we want each such erroneous usage reported separately, rather than just the first time it is encountered (as we'd expect to happen when "uniq_scope => US_GLOBAL" is used). Ideally, this change should have been folded into the similar commit 'v1.13.1d-129-gf7ef16f', but we noticed that too late. Oh well. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9f21b55d 2013-05-11 00:28:15 options: try to report as much errors as possible For example, if two invalid options are used in AUTOMAKE_OPTIONS, don't report just the first one, but both of them. * lib/Automake/Options.pm (_process_option_list): Do so by avoiding early returns in here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
90ec3fe5 2013-05-10 23:50:25 refactor: fix few "inverted boolean" usages In some subroutines, we used a return value of 0 to indicate success, and a return status of 1 to indicate failure. That was not very consistent with the perl interpretation of 0 as a false value and 1 as a true value. So we now invert the meaning of the exit statuses. * lib/Automake/Options.pm (_process_option_list): Here. (process_global_option_list, process_option_list): And by reflex, here as well. * bin/automake.in (handle_options): And here. (generate_makefile, scan_autoconf_traces): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9a0d4868 2013-05-10 23:29:04 options: better name for an internal function * lib/Automake/Options.pm (_option_must_be_from_configure): Rename ... (_option_is_from_configure): ... like this. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
117ddf8d 2013-05-10 23:08:28 options: more consistency in use of return statuses to report errors * lib/Automake/Options.pm (_option_must_be_from_configure): By giving a proper return status here. (_process_option_list): And using it here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f7ef16fe 2013-05-10 23:01:27 options: tiny simplification in dealing with erroneous opts * lib/Automake/Options.pm (_process_option_list): Here, when an invalid option is detected, there's no need to call &error with the "uniq_scope => US_GLOBAL" switch. In fact, if the same erroneous option is specified in AUTOMAKE_OPTIONS in both (say) 'Makefile.am' and 'sub/Makefile.am', we want each such erroneous usage reported separately, rather than just the first time it is encountered (as happens when "uniq_scope => US_GLOBAL" is used). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6e486c5d 2013-05-10 22:50:54 options: consistently use return statuses to report errors * lib/Automake/Options.pm (_process_option_list): Here. (process_option_list, process_global_option_list): Remove redundant use of 'return'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b636268a 2013-05-10 22:34:21 options: re-enable some sanity checks They had been unwittingly disabled by a slightly incorrect code ordering. * lib/Automake/Options.pm (process_option_list): Here. (process_global_option_list): And here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
780299d9 2013-05-10 19:22:06 dist: deprecated shar and tar+compress formats See also discussion about automake wishlist bug#13324. * lib/Automake/Options.pm: Give proper warnings in the 'obsolete' category if the 'dist-shar' or 'dist-tarZ' options are used. * lib/distdir.am: When the 'dist-tarZ' or 'dist-shar' targets are invoked, make them give a non-fatal warning. * doc/automake.texi: Report the new deprecations. * t/dist-shar.sh: New test. * t/dist-tarZ.sh: Likewise. * t/lzma.sh: While at it, rename ... * t/dist-lzma.sh: ... like this, and tweak it to keep more in sync with the new tests. * t/dist-formats.tap: Remove references to deprecated formats. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0736c67c 2013-05-10 13:31:59 Merge branch 'dog-feeding' into maint * dog-feeding: build: move automake and aclocal in 'bin' subdir build: break up monolithic Makefile.am in subdir-specific fragments
126cd524 2013-05-10 10:57:38 am: prefer a shorter idiom where possible That is, prefer: test -f FILE || do_action over: if test ! -f FILE; then do_action; else :; fi * lib/am/remake-hdr.am (%CONFIG_H%): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5a37b0e7 2013-05-10 10:53:15 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: cosmetics: fix few typos, grammaros and missing whitespace fixup: remove an obsolete comment docs: we still don't have the promised better Java interface
66ab18ae 2013-05-10 10:50:05 cosmetics: fix few typos, grammaros and missing whitespace * lib/am/*.am: In comments in some of these files. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
53201da1 2013-05-10 10:35:26 fixup: remove an obsolete comment * lib/am/header-vars.am (am__make_running_with_option): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ce70cf4b 2013-05-09 11:57:20 build: move automake and aclocal in 'bin' subdir * automake.in: Rename ... * bin/automake.in: ... like this. * aclocal.in: Rename ... * bin/aclocal.in: ... like this. * Makefile.am: Move parts that dealt with the building/distribution of aclocal and Automake .. * bin/Makefile.inc): ... in this new included fragment. Adjust as needed, and make deliberate use of the '%D%' substitution. * lib/gen-perl-protos: Move ... * bin/gen-perl-protos: ... here. * bootstrap.sh, configure.ac, maintainer/rename-tests, t/wrap/aclocal.in, t/wrap/automake.in, doc/Makefile.inc, t/ax/tap-setup.sh, .gitignore: Adjust. * maintainer/syntax-checks.mk: Likewise, and enhance a little. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c8f106c7 2013-05-09 11:17:47 build: break up monolithic Makefile.am in subdir-specific fragments This is convenient to do, now that we have improved "relative directory" support with the '%reladir%' (a.k.a. '%D%') and '%canon_reladir%' (a.k.a. '%C%') Automake-time substitutions for included makefile fragments. This move also satisfy our philosophy of using new Automake features in our own build system, as a way of facilitating early discovery of possible bugs or interface warts. * Makefile.am: Break up ... * doc/Makefile.inc, lib/Automake/Makefile.inc, lib/Makefile.inc, lib/am/Makefile.inc, m4/Makefile.inc, t/Makefile.inc): ... in this new included fragments. Adjust as needed, and make deliberate use of the '%D%' substitution. * contrib/t/local.am: Rename ... * contrib/t/Makefile.inc: ... like this. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2d3a2e36 2013-05-04 11:50:10 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: maint: targets and recipes to simplify testing on real-world packages build: preparatory refactoring build: tiny reduction in code duplication make flags analysis: handle more options with args make flags analysis: use simpler variable names make flags analysis: whitespace changes make flags analysis: embed in a subshell make flags analysis: be more robust make flags analysis: cater to GNU make 3.83 (still unreleased as of now) tests: expose weaknesses in make flags analysis tests: improve debugging output in checks on make flags analysis make flags analysis: refactor, to reduce code duplication tests: avoid one tricky use of "make -e" tests: avoid a spurious error with Solaris make subdirs: don't return false positives for the '-k' option's presence header-vars: recognize more make flags ('-k' in particular) header-vars: simplify how make flags are determined tests: remove dead code from t/make-dryrun.tap header-vars: new variable $(am__running_with_option) tests: expose bug#12554 (false positives for presence of '-k' make option)
57925b67 2013-05-03 14:06:25 make flags analysis: handle more options with args That is, not only -I, but also -O (for upcoming GNU make 3.83), -l (GNU make), -d, -E, -D, -m (BSD make), -J, -T (NetBSD make). * lib/am/header-vars.am (am__make_running_with_option): Extend and adjust, both code and comments. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1adb0570 2013-05-03 13:01:35 make flags analysis: use simpler variable names * lib/am/header-vars.am (am__make_running_with_option): Here. Now that we expect to be run in a subshell, we don't have to worry about being namespace-safe. And '$foo' is much more pleasant to read than '$am__foo' -- and pleasant code tends to be more correct. (am__make_dryrun, am__make_keepgoing): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6d643e93 2013-05-03 12:52:14 make flags analysis: whitespace changes * lib/am/header-vars.am (am__make_running_with_option): Here. No semantic change is intended. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5c4aaae2 2013-05-03 12:47:59 make flags analysis: embed in a subshell So that we won't have to worry about leaking temporary variables, and similar stuff. * lib/am/header-vars.am (am__make_dryrun, am__make_keepgoing): Here. (am__make_running_with_option): Minor adjustments. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b62616b3 2013-05-02 19:41:24 make flags analysis: be more robust In particular, catering to option-with-argument bundled together with options-without-arguments, as in: # With GNU make 3.82: $ make -f- <<<'all:; echo "$$MFLAGS"' -s -k -I none -skiI none # With development version of GNU make (Git commit b5ea49b): $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none -skiI none This fixes some lingering failures in the testsuite; precisely, in tests 'make-dryrun.tap' and 'make-keepgoing.tap'. * t/header-vars.am (am__make_running_with_option): Enhance. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c93bc3d4 2013-05-02 01:10:13 make flags analysis: cater to GNU make 3.83 (still unreleased as of now) The current development version of GNU make (that is planned to become GNU make 3.83, sooner or later) has changed the format its $(MFLAGS) variable slightly, removing the space between an option and its argument: # With GNU make 3.82, compiled from official tarball: $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none -I none # With development version of GNU make (Git commit b5ea49b): $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none -Inone This was done on purpose, in order to support more easily the new option '-O', which takes an optional argument; see: <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00001.html> So Just adapt to the new format as well. * t/header-vars.am (am__make_running_with_option): Adjust to cater to the new GNU make behaviour. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e242b44e 2013-05-01 23:26:42 make flags analysis: refactor, to reduce code duplication And make it a little more reliable. * t/header-vars.am (am__make_running_with_option): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
d432f067 2013-04-30 23:55:47 Merge branch 'fix-pr12554' into branch-1.13.2 * fix-pr12554: tests: avoid a spurious error with Solaris make subdirs: don't return false positives for the '-k' option's presence header-vars: recognize more make flags ('-k' in particular) header-vars: simplify how make flags are determined tests: remove dead code from t/make-dryrun.tap header-vars: new variable $(am__running_with_option) tests: expose bug#12554 (false positives for presence of '-k' make option)
96b1303d 2013-04-30 15:35:46 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: sync: update files from upstream with "make fetch" maintcheck: remove outdated whitelisting tar: format 'ustar' cannot support UID/GID longer than 21 bits Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
02ead48e 2013-04-29 16:12:34 subdirs: don't return false positives for the '-k' option's presence This change fixes automake bug#12554. The old implementation of the code descending into $(SUBDIRS) entries used the following snippet to decide whether make is running with the '-k' a.k.a. '--keep-going' option, and thus whether a failure in a subdirectory should prevent the descent in the following ones: fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done It's clear that the second pattern in the 'case' construct could possibly match false positives, for examples in these two cases: make check TESTS="x.test k.test" make -I /usr/local/kool-fragments which are somewhat unusual, but not invalid. So we need a more resilient implementation, as we did for the detection of the '-n' flag. This implementation is now provided by the new private macro '$(am__make_keepgoing)' (introduced in recent commits); so we can just us that to fix the bug. * lib/am/subdirs.am ($(am__recursive_targets)): Use '$(am__make_keepgoing)' instead of ad-hoc and more brittle checks. * t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test case 't/subdir-keep-going-pr12554.sh'. Reported-by: Michael Daniels <mdaniels@rim.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
69f77915 2013-04-29 15:22:10 header-vars: recognize more make flags ('-k' in particular) * lib/am/header-vars.am (am__running_with_option): Here. Few improvements to comments, while at it. (am__make_keepgoing): New, tell whther make is being runt with the '-k' option. * t/make-keepgoing.tap: New test. * t/list-of-tests.mk: Add it. * t/make-dryrun.tap: Minor edits to keep it more in sync with the new test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f6338e8c 2013-04-29 16:44:00 sync: update files from upstream with "make fetch" * lib/config.guess: Likewise. * lib/config.sub: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e432b0d3 2013-04-27 16:09:43 header-vars: simplify how make flags are determined Actually, son far only the '-n' option ("dry mode") was detected, but this change will allow us to soon detect more options. * lib/am/header-vars.am (am__running_with_option): Even when $MAKEFLAGS appears to contain definition of variables with embedded whitespace, use simple textual pre-processing over $MAKEFLAGS rather than tricky recursive invocations of make to determine whether the '-n' option was given. This is enough to correctly handle all the tricky usages covered in the testsuite. * t/nodep.sh: Adjust to avoid a spurious failure. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6eedee4c 2013-04-27 15:25:06 header-vars: new variable $(am__running_with_option) This is a preparatory refactoring, needed by later patches. No semantic change is intended. * lib/am/header-vars.am (am__running_with_option): New, contains shell code that determines whether the current make instance is running with a given one-letter option (e.g., -k, -n) that takes no argument. Actually, the only supported option at the moment is '-n' (support for '-k' will be added soon). (am__make_dryrun): Rewrite as a thin wrapper around '$(am__make_running_with_option)'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f0d1288f 2013-04-26 20:39:40 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: docs: issues with configure substitutions in TESTS tests: avoid possible autotools caching issues (automake bug#13832) docs: add myself and Ralf Wildenhues as authors authors: add myself dry-run: don't get confused by '-I' option tests: avoid a spurious failure with the Korn Shell dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS) header vars: can determine whether we are running under GNU make NEWS: improve wording for automake bug#13514 fix NEWS: document fix for automake bug#13514
cfe0abc7 2013-04-22 18:02:07 dry-run: don't get confused by '-I' option Fixes automake bug#13760 for non-GNU make implementations that still support the option '-I'. So far, the only such make implementation are FreeBSD (8.x) make and NetBSD (5.x) make. * lib/am/header-vars.am (am__make_dryrun): If a non-GNU make is being used, try to handle the '-I' option in $MAKEFLAGS correctly. For GNU make, that is already done by the proper use of the $MFLAGS variable. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
334a2e0b 2013-04-22 15:07:43 dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS) Fixes automake bug#13760 for GNU make. * lib/am/header-vars.am (am__make_dryrun): If GNU make is being used, rely on the contents of the $(MFLAGS) variable rather than of the $(MAKEFLAGS) to decide whther make is being executed in "dry run" mode. Not only this makes the code possibly faster and less brittle, but also fixes automake bug#13760 (at least when GNU make is in use). * t/make-dryrun.tap: Adjust: some tests that were xfailing now pass. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3de27839 2013-04-22 14:53:14 header vars: can determine whether we are running under GNU make This is mostly a preparatory patch in view of future changes. * lib/am/header-vars.am (am__is_gnu_make): New, contains shell code that determines whether we are running under GNU make. * t/make-is-gnu.sh: New test. * t/list-of-tests.mk: Add it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6d457d81 2013-04-20 21:54:40 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: INSTALL: regen sync: update files from upstream with "make fetch" tests: tweaks and minimal improvements to t/insthook.sh Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
8c333ed9 2013-04-20 18:10:28 sync: update files from upstream with "make fetch" * lib/INSTALL: Update. * lib/config.guess: Likewise. * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/gendocs_template: Likewise. * lib/gitlog-to-changelog: Likewise. * lib/gnupload: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ce98f22e 2013-04-19 15:46:36 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: Add missing '$' for variable expansion in depout.m4 fixup: one stray reference to older versioning scheme
98a0b71f 2013-02-21 19:25:55 fixup: one stray reference to older versioning scheme * lib/Automake/Options.pm: Here, in a FIXME comment: reference "Automake 3.0" rather than "Automake 1.15". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5daad702 2013-02-20 22:14:55 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: coverage: expose automake bug#13760 tests: refactor/enhance tests about make dry-run mode maint: describe new versioning and branching scheme, and adjust to it Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
97aaf121 2013-02-17 10:25:29 maint: describe new versioning and branching scheme, and adjust to it See discussion about automake bug#13578 for more details and background. Basically, for the versioning scheme: - micro versions only for bug and regression fixing; - minor versions for new backward-compatible features, and new non-fatal deprecations; - major versions for backward-incompatibilities, complex new features, and major refactoring. And for the git branching scheme: + branch 'next' is for the upcoming major version; + branch 'master' is now for the upcoming minor version; + branch 'maint' is for the upcoming micro (bug-fixing) version; + the merging hierarchy is: 'maint' -> 'master' -> 'next'. * HACKING (Automake versioning and compatibility scheme): New. (Working with git): Adjust. * NEWS: Update and fix. * aclocal.in: Adjust some "FIXME" messages. * automake.in: Likewise. * m4/mkdirp.m4: Likewise. * t/aclocal-acdir.sh: Likewise. * t/aclocal-macrodir.tap: Likewise. * t/aclocal-macrodirs.tap: Likewise. * lib/Automake/Options.pm: Likewise. * m4/internal/ac-config-macro-dirs.m4: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>