kc3-lang/automake/lib

Branch :


Log

Author Commit Date CI Message
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>
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>
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>
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.
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>
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>
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>
e7b9d315 2013-02-04 23:37:23 maint: use more perl subroutines prototypes in the automake script * automake.in: Throughout this file. Note that these new prototypes are not much useful, since many subroutine calls still use the old '&foo' form; but we'll take care of that in later patches. * lib/Automake/Language.pm (target_hook): Call the '_target_hook' of the given language in a more modern form, avoiding '&'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
283ded7f 2013-02-04 23:04:18 build: auto-generate perl subroutines prototypes for automake and aclocal This will allow us to avoid either using the '&foo' invocation form when invoking a subroutine before its definition, or having to maintain the list of prototypes by hand (with the risk of having it become incomplete or fall out-of-sync when future edits to the automake and aclocal scripts are done). * Makefile.am (automake, aclocal): Automatically generate a list of prototypes by looking at the subroutines definitions. * bootstrap.sh: Likewise, when generating the temporary automake and aclocal scripts used for bootstrapping. * automake.in: Add a placeholder that will be tracked by the new recipes and substituted with the computed prototypes. Remove existing prototypes, that are now superfluous. Some adjustments required by the new, more comprehensive prototypes declarations. * aclocal.in: Likewise. * maintainer/syntax-checks.mk (sc_diff_automake, sc_diff_aclocal): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6d9e9dd4 2013-02-04 19:34:03 refactor: rip module Automake::Language out of automake script This is just a preparatory patch in view of future changes. * lib/Automake/Language.pm: New module, ripped out from ... * automake.in: ... here. Related adjustments. * Makefile.am (dist_perllib_DATA): List the new module. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0dee02df 2013-01-12 17:53:17 ywrap: remove an obsolete FIXME comment If it were still relevant, somebody would have complained by now. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
52b2af5d 2013-01-12 17:52:44 ywrap: style fixes (no semantic change intended) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
18262668 2013-01-12 00:19:40 ithreads: use runtime (not configure time) detection of perl threads I can't imagine the runtime checks being a big runtime penalty, so there shouldn't be a need to do the checks at configure check and hardcode the result in the generated automake. With the current system, it means if you change your perl config (build perl w/threads, build automake, build perl w/out threads), or deploy a compiled automake package on a different system (build had threads, but deployed system does not), you get errors when trying to run automake. So take the logic from configure.ac and move it to the one place where PERL_THREADS is used (lib/Automake/Config.in) and do the version/config checking at runtime. * bootstrap.sh (PERL_THREADS): Delete assignment and use in sed. * configure.ac (am_cv_prog_PERL_ithreads, PERL_THREADS): Delete all code related to these two variables. * lib/Automake/Config.in (perl_threads): Initialize to 0, and only set to 1 if the perl version is at least 5.007_002, and useithreads is in Config. Copyright-paperwork-exempt: yes Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
10790d08 2013-01-11 17:38:58 sync: update files from upstream with "make fetch" * lib/INSTALL: Update. * lib/config.guess: Likewise. * lib/config.sub: 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>
8f06bfba 2013-01-09 22:17:53 depend2.am: fix comments on verbosity of compilation rules The situation and decisions described on those comments have become quite outdated since the introduction of the silent-rules support. Today, the general idea is to have nice, terse output if silent rules are enabled, and complete, faithful, very verbose output if they are not -- without trying to "massage" this verbose output in a more pleasant form if that would cause complication in the affected code. So it's better to just drop the obsolescent comments. Note that we don't start simplifying the existing rules according to this new philosophy; that will only be done when touching some existing code (for the 'depend2.am' code, that will probably happen on the master branch). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a52e9de0 2013-01-09 22:01:45 depend2.am: improve comments a little * lib/am/depend2.am: The "fastdep" mode is supported not only for gcc 3.x, but for gcc 3.x or later, in particular, for all gcc in the 4.x series (at the time of writing, the latest release is 4.72). Adjust the comments to match, and re-wrap them while at it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
285d7b14 2013-01-05 12:12:56 texi: remove extra verbosity in creation of dirstamp directory * lib/am/texi-vers.am (%STAMPVTI%): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6a67b297 2013-01-03 23:10:42 texi: remove workaround for older Texinfo (4.1) * lib/am/texibuild.am: Here, in the rules generating HTML output. We can do so because, since Automake 1.13, we require Texinfo >= 4.9 anyway. Basically a backport of Automake-NG commit '1.12.2-879-ge6caf5e'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
36ee783a 2012-04-03 22:02:55 texi: info files can be generated in the builddir User can now ask info files to be built in the $(builddir), rather than the $(srcdir), by specifying the Automake option 'info-in-builddir'. This feature was requested by the developers of GCC, GDB, GNU binutils and the GNU bfd library. See the extensive discussion about automake bug#11034 for more details. OK, to be honest, having '.info' files built in the builddir was *already* possible, but only using ugly and undocumented hacks involving definition of the CLEANFILES and/or DISTCLEANFILES. For example, the binutils project did something like this in the relevant 'Makefile.am': # Automake 1.9 will only build info files in the objdir if they are # mentioned in DISTCLEANFILES. It doesn't have to be unconditional, # though, so we use a bogus condition. if GENINSRC_NEVER DISTCLEANFILES = binutils.info endif See also the extensive discussion about automake bug#11034; in particular, the following messages: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#65> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#80> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#86> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#101> * lib/Automake/Options.pm (_is_valid_easy_option): Recognize the new 'info-in-builddir' option. * automake.in (handle_texinfo_helper): If that option is set, initialize '$insrc' to '0', so that info files will be generated in the builddir. Adjust comments to match. * t/txinfo-builddir.sh: New test. * t/list-of-tests.mk: Add it. * NEWS: Update. * doc/automake.texi: Document the new options. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
7df8b28c 2012-12-31 18:18:37 maint: update copyright year for 2013 (in branch maint) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ac5c1d77 2012-08-11 19:36:08 cleanup: drop a redundant %?FIRST% transform * lib/am/texinfos.am: Here: this file is only included one time per Makefile by Automake. Cherry picked from Automake-NG commit 'v1.12.2-864-g5c580b0'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b6602b33 2012-12-31 09:53:43 maint: state when compatibility cruft should be removed or warned about * automake.in: Here. * lib/Automake/Options.pm: And here. * m4/obsolete-err.m4: And here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2e269cff 2012-12-29 15:28:41 sync: update files from upstream with "make fetch" * lib/config.sub: Update. * lib/config.guess: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
27eb4254 2012-12-19 14:51:58 ylwrap: various fixes Rename properly header guards in generated header files, instead of leaving Y_TAB_H. Convert header guards in implementation files. Because ylwrap failed to rename properly #include in the implementation files, current versions of Bison (e.g., 2.7) duplicate the generated header file in the implementation file. The header guard then protects the implementation file from duplicate definitions from the header file. Generate header guards with a single '_' for series of non alphabetic characters, instead of several. This is what Bison does. Makes the test t/yacc-d-basic.sh pass again. * lib/ylwrap (guard): Properly honor $1 to rename properly the header guards. Keep a single _ instead of several. (rename_sed): Rename as... (sed_fix_filenames): this. Suggested by Stefano Lattarini. (sed_fix_header_guards): New. Use it.
b8c7e3f7 2012-12-14 15:43:27 Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" gitignore: align with recent changes fixup: add dummy rule for ChangeLog generation in Makefile.am maint: no longer use AM_MAKEFLAGS in maintainer rules maint: use more GNU make features in maintainer rules maint: move maintainer make rules in maint.mk
454a1acd 2012-12-14 15:10:00 sync: update files from upstream with "make fetch" * lib/gnupload: Update. See: <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00050.html> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
d7a59576 2012-12-09 21:55:32 Merge branch 'maint' * maint: docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc maintcheck: prefer '$(am__cd)' over plain 'cd' fetch: improve, and reduce code duplication docs: add rule to generate manuals for www.gnu.org docs: copy the 'gendocs.sh' script from Texinfo CVS repository sync: update files from upstream with "make fetch" release: generate a stub for the release announcement release: distinguish major and minor releases tests: avoid two spurious failures on FreeBSD