kc3-lang/automake/m4

Branch :


Log

Author Commit Date CI Message
203d0775 2013-12-24 22:02:15 TAP driver: no need to invoke AC_PROG_AWK directly It is already required by AM_INIT_AUTOMAKE anyway. * doc/automake.texi: Adjust examples. * t/tap-doc2.sh: Adjust documentation-tracking test. * m4/init.m4 (AM_INIT_AUTOMAKE): Explicitly tell that the AC_PROG_AWK requirement is also needed whenever the TAP driver is used. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5a29051f 2013-12-24 15:07:40 post-release: micro version bump to 1.14.1a devel version * configure.ac (AC_INIT): Bump version number to 1.14.1a. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ba4b42fa 2013-12-24 14:13:58 release: stable micro release 1.14.1 * configure.ac (AC_INIT): Bump version number to 1.14.1. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
73abd6cb 2013-06-21 14:02:41 post-release: micro version bump (1.14a) * configure.ac: Bump version: 1.14 -> 1.14a * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
69a3cf89 2013-06-21 14:01:53 post-release: micro version bump (1.14.0a) * configure.ac: Bump version: 1.14 -> 1.14.0a * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
177d0392 2013-06-20 13:38:29 release: stable minor release 1.14 * configure.ac (AC_INIT): Bump version number to 1.14. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6f301b5c 2013-06-14 18:38:27 post-release: micro version bump (1.13.4a) * configure.ac: Bump version: 1.13.4 -> 1.13.4a * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5f4fc1d6 2013-06-14 17:42:46 release: stable micro release 1.13.4 * configure.ac (AC_INIT): Bump version number to 1.13.4. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0ebaea2d 2013-06-03 21:13:34 post-release: micro version bump (1.13.3a) * configure.ac: Bump version: 1.13.3 -> 1.13.3a * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e166a135 2013-06-03 18:03:24 release: stable micro release 1.13.3 * configure.ac (AC_INIT): Bump version number to 1.13.3. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b3bf07f7 2013-05-31 11:42:38 maint: version bump after beta release 1.13b * configure.ac (AC_INIT): Bump version number to 1.13c. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
4d7136ed 2013-05-31 10:51:38 release: beta release 1.13b (will become 1.14) * configure.ac (AC_INIT): Bump version number to 1.13b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a24bfc3e 2013-05-30 14:58:01 maint: version bump after beta release 1.13.2b * configure.ac (AC_INIT): Bump version number to 1.13.2c. * m4/amversion.m4: Likewise (autoupdated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a1e97a9f 2013-05-30 14:01:49 release: beta release 1.13.2b (will become 1.13.3) * configure.ac (AC_INIT): Bump version number to 1.13.2b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e5b40a3e 2013-05-26 13:30:52 Merge branch 'prog-cc-c-o-work' into maint * prog-cc-c-o-work: tests: some tests make no sense if "$CC -c -o" doesn't work AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents
6f109602 2013-05-26 12:52:07 m4: rename minuso.m4 -> prog-cc-c-o.m4 The new name is much clearer. * m4/minuso.m4: Rename ... * m4/prog-cc-c-o.m4: ... like this. * m4/Makefile.in (dist_automake_DATA): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e90126cf 2013-05-15 10:14:46 AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic ** Theoretical problems of AC_PROG_CC_C_O: Both cc and $CC are checked to see if they support the '-c' and '-o' options together. This behaviour is highly inconsistent with that of the other macros related to C compiler checks -- which test only $CC. It can also cause unwarranted uses of the 'compile' script on systems where the default 'cc' is inferior, but the user is compiling with a proper, different compiler (e.g., gcc). ** Practical problems with our previous implementation of C support m4 macros in Automake: - AM_PROG_AR must now be called *before* AC_PROG_CC; this wasn't the case before, and it turns out there are packages in the wild that relied on the old behaviour. - The cross-referenced requirements and macro rewrites juggled among AC_PROG_CC, AC_PROG_CC_C_O and AM_PROG_CC_C_O caused warnings in autoconf; for example, in our test 't/libobj3.sh', we could see warnings like these (here slightly tweaked for legibility): configure.ac:5: AC_REQUIRE: `AC_PROG_CC' expanded before required autoconf/c.m4:567: AC_PROG_CC_C_O is expanded from... autoconf/c.m4:429: AC_LANG_COMPILER(C) is expanded from... autoconf/lang.m4:329: AC_LANG_COMPILER_REQUIRE is expanded from... autoconf/general.m4:2606: AC_COMPILE_IFELSE is expanded from... m4sugar/m4sh.m4:639: AS_IF is expanded from... autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... aclocal.m4:70: AM_PROG_AR is expanded from... configure.ac:5: the top level ** Fix all of that: We fix all of the described issues with a new internal m4 macro _AM_PROG_CC_C_O (inspired to, but not based on, AC_PROG_CC_C_O) that gets tacked on to AC_PROG_CC automatically (this is done in the Automake-generated aclocal.m4) and that takes care of checking and adjusting '$CC' for "-c -o" support. The macro AM_PROG_CC_C_O is still present, but is now just a thin wrapper around such Automake-enhanced AC_PROG_CC. It is worth noting that the present patch causes three slight *backward-incompatibilities*: 1. The name cache variable used by AM_PROG_CC_C_O is no longer computed (at configure runtime!) from the content of '$CC', but is statically defined as 'am_cv_prog_cc_c_o'. 2. 'cc' is no longer checked by AM_PROG_CC_C_O, only '$CC' is. 3. AM_PROG_CC_C_O no longer AC_DEFINE the C preprocessor symbol 'NO_MINUS_C_MINUS_O'. Given however that the third change can easily be worked around, that the first two changes can be legitimately seen as bug fixes, and that the new semantics introduced by such changes will simplify the transition to Automake 2.0 (when the 'subdir-objects' will always be enabled unconditionally), we believe they are acceptable to be shipped with Automake 1.14. With this patch, we also revert some of the testsuite adjustments done in previous commit v1.13.2-178-g9877109 of 2013-05-24 (compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents). Such adjustments are no longer needed. * m4/minuso.m4 (_AM_PROG_CC_C_O): New internal macro, basically and adjusted version of a merge between Autoconf-provided AC_PROG_CC_C_O and our old implementation of AM_PROG_CC_C_O. (AM_PROG_CC_C_O): Redefine as a simple wrapper around AC_PROG_CC. * m4/init.m4 (AC_PROG_CC): Append _AM_PROG_CC_C_O, not AM_PROG_CC_C_O, to the pre-existing expansion of this macro. * m4/ar-lib.m4 (AM_PROG_AR): No longer require it to be expanded after AC_PROG_CC. * t/aclocal-deps.sh: Move AC_PROG_CC invocation after AC_PROG_RANLIB and AM_PROG_AR invocations. Things should work this way too (as they used to). * t/subobj-clean-lt-pr10697.sh: Likewise. * t/alloca.sh: Move AC_PROG_CC invocation after AM_PROG_AR invocation. * t/condlib.sh: Likewise. * t/aclocal-deps.sh: Move AC_PROG_CC invocation after LT_INIT and AM_PROG_AR invocations. Make autoconf and autoheader warnings fatal. * t/am-prog-cc-c-o.sh: Adjust to the new semantics, enhance a little, and reduce code duplication. * t/ccnoco.sh: Make autoconf warnings fatal. * t/subpkg.sh: Likewise. * t/ccnoco-lib.sh: Likewise, and fix a comment. * t/link_cond.sh: Enhance a couple of error messages. * configure.ac: Drop "nullification" of AM_PROG_CC_C_O. * NEWS: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9877109c 2013-05-14 16:08:32 compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents This is a much simpler rewrite than the one we attempted in the past, and that was later removed by commit 'v1.13.1d-137-g32eb770' of 2013-05-11 (compile: avoid AC_PROG_CC messy rewrite). Not only this change simplifies the code a little, but has the welcome collateral effect of making automatic dependency tracking work better with compilers that doesn't grasp the '-c' and '-o' options together. Issues in that setup have been caught by several failures in the target 'check-no-cc-c-o'. Unfortunately, this change has less welcome collateral effects: 1. AM_PROG_AR must now be called *after* AC_PROG_CC; 2. Autoconf emits extra warnings when used with Automake-generated aclocal.m4. These are unacceptable regressions for a release, but since we are going to fix them soon enough in a follow-up patch (surely to be applied before Automake 1.14 is released) we don't worry too much. * m4/init.m4: Redefine AC_PROG_CC early, to automatically invoke AM_PROG_CC_C_O as well. Accordingly, drop now-unneeded "automagical" AM_PROG_CC_C_O expansion at later time (which took place thanks to a AC_CONFIG_COMMANDS_PRE call). * m4/minuso.m4 (AM_PROG_CC_C_O): Ensure the expansion of the body of this macro takes place with C as "current Autoconf language" (use AC_LANG_PUSH/AC_LANG_POP). * m4/ar-lib.m4 (AM_PROG_AR): Likewise. Also, require this macro to be expanded *after* AC_PROG_CC (so that any rewrite of $CC, if required, has already taken place). * t/add-missing.tap: Adjust to avoid spurious failures. * t/aclocal-deps.sh: Likewise, by having AM_PROG_AR called *after* AC_PROG_CC. * t/subobj-clean-lt-pr10697.sh: Likewise. * t/alloca.sh: Likewise. * t/condlib.sh: Likewise. * t/discover.sh: Likewise. * t/objc-megademo.sh: Likewise. * t/ccnoco.sh: Extend a little. * t/ccnoco-deps.sh: New test. * t/ccnoco-lib.sh: Likewise. * t/ccnoco-lt.sh: Likewise. * t/list-of-tests.mk: Add them. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e89b9083 2013-05-15 22:44:43 post-release: micro version bump (1.13.2a) * configure.ac, m4/amversion.m4: Bump version: 1.13.2 -> 1.13.2a Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
21824fbc 2013-05-15 19:43:39 release: stable micro release 1.13.2 * configure.ac (AC_INIT): Bump version number to 1.13.2. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c148dc73 2013-05-11 11:45:16 Use AC_DEFUN_ONCE to define AM_PROG_CC_C_O If AM_PROG_CC_C_O is expanded multiple times, and the compiler does not support -c and -o together, each expansion of the macro will prepend the compile script to CC. This can result in the compile script invoking the compile script, which at best pointless and silly. Fortunately, there does not appear to be any serious problems as the first compile invocation strips out -o options, causing subsequent invocations of the script to merely exec their arguments. Other than fixing the above, this should not normally cause any changes to the resulting configure script, except in the (hopefully rare) case where AM_PROG_CC_C_O is directly expanded (i.e., *not* using AC_REQUIRE) in the body of a macro defined with AC_DEFUN. In that case, the use of AC_DEFUN_ONCE may cause the expansion of AM_PROG_CC_C_O to appear earlier in the configure script. * m4/minuso.m4: Change the definition of AM_PROG_CC_C_O to use AC_DEFUN_ONCE, avoiding problems caused by multiple expansions. Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
32eb770b 2013-05-11 11:03:41 compile: avoid AC_PROG_CC messy rewrite Instead, add an hook to AC_OUTPUT to have AM_PROG_CC_C_O invoked automatically. See also the long-winded discussion about automake bug#13378. * m4/minuso.m4 (AM_PROG_CC_C_O): Bring back the old implementation, from commit v1.13.1-55-g1ab8fb6. * m4/init.m4 (AC_PROG_CC): Remove this horrible, hacky re-write. * (AM_INIT_AUTOMAKE): Arrange for AM_PROG_CC_C_O to be called if necessary. * t/am-prog-cc-c-o.sh: Adjust to avoid spurious failure. * t/subobj.sh: Likewise. Suggested-by: Nick Bowler <nbowler@elliptictech.com> 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>
1667d369 2013-05-05 00:53:27 maint branch: we are going to become Automake 1.14 * configure.ac (AC_INIT): So adjust beta version in here, from 1.13.2a to 1.13a. * m4/amversion.m4: Regenerate. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
799fa256 2013-05-05 00:46:54 maint: version bump after beta release 1.13.1d * configure.ac (AC_INIT): Bump version number to 1.13.1e. * m4/amversion.m4: Likewise (autoupdated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3e6cad96 2013-05-04 23:19:36 release: beta release 1.13.1d (will become 1.13.2) * configure.ac (AC_INIT): Bump version number to 1.13.1d. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e5e3a629 2013-04-30 23:03:50 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: cosmetics: remove few trailing whitespace occurrences typofix: in NEWS (extra whitespace)
6d3ffeb9 2013-04-30 23:00:53 cosmetics: remove few trailing whitespace occurrences Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
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>
2a40fa71 2013-04-30 14:48:45 Merge branch 'fix-pr13588-pax-hangs' into branch-1.13.2 * fix-pr13588-pax-hangs: tar: format 'ustar' cannot support UID/GID longer than 21 bits
edfd3bc4 2013-02-17 16:42:46 tar: format 'ustar' cannot support UID/GID longer than 21 bits See automake bug#8343 and bug#13588. POSIX 1988 'ustar' format is defined with *fixed-size* fields. There is notably a 21 bits limit (2097151) for the UID and the GID. Tom Rini tom_rini@mentor.com says (in bug#8343): When the user has a UID or GID that is larger than the ustar format supports, pax does not error out gracefully in some cases (FC13). Marc Herbert <marc.herbert@intel.com> adds (in bug#8343): When "configure" is run by a user with an UID bigger than 21 bits, BSD pax 3.4 aborts when trying to create the 'conftest.tar' test archive and leaves an empty or corrupted conftest.tar file behind. In the next step, pax tries to extract this incomplete or corrupted archive and this *** hangs the whole ./configure script ***. Note: GNU cpio 2.9 pretends to pass the test but it is a LIE: it silently truncates any big UID to its lower 21 bits. I don't know what can be the consequences of this lie. I think there is currently a design issue in automake/m4/tar.m4 considering that a ustar archive should should *never* succeed when ./configure is run from a big user ID. Months later, Petr Hracek <phracek@redhat.com> reports a similar issue (in bug#13588) for Fedora 17: I am trying to solve problem in case a user is created with big UID and during configuration pax hangs with message ATTENTION! pax archive volume change required. Ready for archive volume: 1 Input archive name or "." to quit pax. Archive name > and needs user interaction. Reference: <https://bugzilla.redhat.com/show_bug.cgi?id=843376> Time to fix this issue, on the line of a preliminary patch provided by Petr Hracek in bug#13588. The final patch ended up being remarkably different from that original proposition, though. * m4/tar.m4 (_AM_PROG_TAR): If the UID or GID of the current user is too high (> 2097151), the 'ustar' format cannot work. Adjust checks accordingly. Some related code reordering and clean-up. * t/tar-ustar-id-too-high.sh: New test. * t/list-of-tests.mk: Add it. * t/tar.sh: While at it, tweak and enhance a little. * t/tar2.sh: Likewise. * t/tar3.sh: Likewise. * t/tar-override.sh: Likewise. * NEWS: Update. * THANKS: Likewise. Helped-by: Pavel Raiskup <praiskup@redhat.com> Helped-by: Petr Hracek <phracek@redhat.com> Helped-by: Marc Herbert <marc.herbert@intel.com> Helped-by: Tom Rini <tom_rini@mentor.com> 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
82628de3 2013-04-19 15:16:26 Add missing '$' for variable expansion in depout.m4 * m4/depout.m4: "am__include" appeared where "$am__include" was meant. Reference: <http://lists.gnu.org/archive/html/automake-patches/2013-04/msg00000.html> Copyright-paperwork-exempt: yes 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>
7bb400fc 2013-01-23 11:38:33 maint: version bump after beta release 1.13.1b * configure.ac (AC_INIT): Bump version number to 1.13.1c. * m4/amversion.m4: Likewise (autoupdated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
fbd3d872 2013-01-23 11:05:01 release: beta release 1.13.1b (will become 1.13.2) * configure.ac (AC_INIT): Bump version number to 1.13.1b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f479a4a3 2013-01-21 15:24:03 maint: bump version 1.13.1a -> 1.13.2a The 1.13.2 bug-fixing release will ship from the 'branch-1.13.2' git branch, not from the 'maint' one, since the latter contains changes that are non-trivial and hasn't cooked enough yet. The 'maint' branch will give rise to the 1.13.3 release instead, eventually. Adjust the version number to match. * configure.ac (AC_INIT): Bump version number to 1.13.2b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
63fe125a 2013-01-21 14:52:37 Merge branch 'branch-1.13.2' into maint That branch is for the "emergency" bug-fixing release 1.13.2. * branch-1.13.2: maint: update copyright in files generated by automake and aclocal tests: avoid a spurious failure when running inside Emacs tests: make two new test executable m4: rename an m4 file to a more appropriate name NEWS: update w.r.t. recent documentation fixes compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC docs: parallel-tests is no longer experimental docs: serial-tests are not deprecated, just discouraged NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
18cb8eb2 2013-01-18 13:39:38 m4: rename an m4 file to a more appropriate name * m4/obsolete-err.m4: Rename ... * m4/obsolete.m4: ... like this. * Makefile.am (dist_automake_ac_DATA): Adjust. * t/ansi2knr-no-more.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
eada7ef7 2013-01-18 13:13:30 compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC Make them give runtime warnings in the obsolete category, but apart from that, make them behave as they did in Automake 1.12.x and earlier. While removing those macros seemed quite harmless, because it didn't put a real burden on the developers (requiring them just to do a quick edit to configure.ac), it turned out to place an unsustainable burden (or at least, a burden perceived as such) on distro packagers who use the latest Automake to bootstrap existing packages. Many of those packages, while having likely updated to AC_CONFIG_HEADERS in their development version, still used AM_CONFIG_HEADER in their existing released versions, and the removal of this macro would have thus forced the Fedora packagers to patch all of them. References: <http://www.mail-archive.com/devel@lists.fedoraproject.org/msg52840.html> <http://www.spinics.net/lists/fedora-devel/msg175922.html> <http://blog.flameeyes.eu/2013/01/autotools-mythbuster-automake-pains> In addition, the Fedora packagers have already decided to patch their Automake 1.13.1 to reinstate the AM_CONFIG_HEADER and AM_PROG_CC_STDC macros (plus other macros that I don't believe it's worth worrying about): <http://www.spinics.net/lists/fedora-devel/msg176098.html> <http://www.mail-archive.com/devel@lists.fedoraproject.org/msg53030.html> <http://pkgs.fedoraproject.org/cgit/automake.git/commit/?id=ffe6bc39> So, rather than having one more incompatibility floating around, we better mirror that change (or, actually, its relevant parts) in the upstream. * m4/obsolete-err.m4 (AM_CONFIG_HEADER, AM_PROG_CC_STDC): Revert to the older semantics, plus a runtime warning in the 'obsolete' category. * t/backcompat6.sh: Use AM_CONFIG_HEADER once again. * t/am-config-header-no-more.sh: Rename ... * t/am-config-header.sh: ... like this, and adjust. * t/am-prog-cc-stdc-no-more.sh: Rename ... * t/am-prog-cc-stdc.sh: ... like this, and adjust. * t/list-of-tests.mk: Adjust. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f78b0f0b 2013-01-12 19:20:54 init.m4: add probe to check "rm -f" without args work See automake bug#10828. POSIX will say in a future version that running "rm -f" with no argument is OK: <http://austingroupbugs.net/view.php?id=542>). We want to be able to make that assumption in our Makefile recipes. So we introduce an aggressive probe to check that the usage we want is actually supported "in the wild" to an acceptable degree. * m4/init.m4 (AM_INIT_AUTOMAKE): Implement the probe. To make any issue more visible, cause the running configure to be aborted by default if the 'rm' program in use doesn't match our expectations; the user can still override this though, by setting the ACCEPT_INFERIOR_RM_PROGRAM environment variable to "yes". * t/spy-rm.tap: Update heading comments. * t/rm-f-probe.sh: New test. * t/list-of-tests.mk: Add it. * PLANS/rm-f-without-args.txt: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
34001a98 2013-01-09 23:16:53 compile: use 'compile' script when "-c -o" is used with losing compilers Do so seen when only source files in the "current" directory are present. This commit is part of a series of related changes addressing automake bug#13378 (see also the plan 'PLANS/subdir-objects.txt'). Before this change, Automake-generated C compilation rules mistakenly passed the "-c -o" options combination unconditionally (even to losing compiler) when the 'subdir-objects' was used but sources were only present in the top-level directory. Issue spotted by Nick Bowler: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44> We fix this by having Automake redefine AC_PROG_CC to take over the role of AM_PROG_CC_C_O and to require the 'compile' script unconditionally (albeit that will continue to be invoked only when inferior compilers are detected). Among other things, this means AM_PROG_CC_C_O explicitly is no longer required; that macro is still supported for backward-compatibility, but calling it is basically a no-op now. This change has some pros and some cons (obviously, we believe the former outweighs the latter). Here are the most relevant ones: + Pros 1: Some logic in the Automake script has been simplified. + Pros 2: That simplification has automatically fixed an actual bug (see Nick's mails referenced above; admittedly, that was present only in corner-case situations, but still); the test 't/ccnoco4.sh', which demonstrated the bug and has been failing so far, now passes. + Pros 3: Things works more "automagically" now (no need to manually add the AM_PROG_CC_C_O macro to configure.ac anymore). * Cons 1: The 'compile' script will be required in all projects using C compilation; this will only be a problem for packages not using '--add-missing'. However, such packages are definitely more rare than the ones using '--add-missing', and adjusting them will be trivial -- just copy the compile script over from the new Automake installation. * Cons 2: The copy & paste of autoconf internals hack this change has introduced in our "rewrite" of AC_PROG_CC is really an egregious abomination. It can only be justified with the fact that we expect future versions of autoconf to implement the semantics we need directly in AC_PROG_CC, so that we'll be able to leverage that (since Automake 1.14 will require the latest Autoconf version released). Now, the detailed list of file-by-file changes ... * automake.in ($seen_cc_c_o): Remove this global variable. (scan_autoconf_traces): Don't set it, and do not trace the 'AM_PROG_CC_C_O' m4 macro. (lang_c_rewrite): Remove, no longer needed. * doc/automake.texi: Adjust expected "autoreconf --install" output in the amhello example. Remove statements about the need for the AM_PROG_CC_C_O macro. Report it is obsolete now. * m4/init.m4: Re-write AC_PROG_CC to append checks about whether the C compiler supports "-c -o" together. These checks have basically been ripped out (with adaptations) from the 'AC_PROG_CC_C_O' macro of Autoconf and ... * m4/minuso.m4 (AM_PROG_CC_C_O): ... this macro of ours, which has thus basically become a no-op. * t/ax/am-test-lib.sh (am_setup_testdir): Also copy the 'compile' script in the test directory; if we don't do so, every test using AC_PROG_CC should call automake with the "--add-missing" option, or copy the 'compile' script itself. * t/cond11.sh: No need to create a dummy 'compile' script: that is already brought in by 'am_setup_testdir()', that is automatically invoked when 'test-lib.sh' is sourced. * t/add-missing.tap: Adjust: we expect the 'compile' script to be required by a mere AC_PROG_CC call now. * t/dist-auxdir-many-subdirs.sh: Likewise. * t/specflg6.sh: Likewise. * t/subobj4.sh: Likewise. * t/cxx-lt-demo.sh: Likewise, and update comments to match. * t/distcom2.sh: Enhance a little. * t/dollarvar2.sh: Adjust. * t/extra-portability.sh: Likewise. * t/libobj19.sh: Likewise. * t/per-target-flags.sh: Likewise. * t/repeated-options.sh: Likewise. * t/subobj.sh: Likewise, and enhance a little. * t/ccnoco2.sh: Remove as obsolete. * t/list-of-tests.mk (handwritten_TESTS): Adjust. (XFAIL_TESTS): Remove 't/ccnoco4.sh'. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
854be48f 2013-01-01 13:33:27 post-release: minor version bump (1.13.1a) * configure.ac, m4/amversion.m4: Bump version to 1.13.1a. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3200088b 2013-01-01 12:57:10 release: stable minor release 1.13.1 * configure.ac (AC_INIT): Bump version number to 1.13.1. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 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>
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>
c5fe4fdf 2012-12-30 11:58:52 obsolete: fixup: don't use AU_DEFUN where AC_DEFUN is required * m4/obsolete-err.m4: Here, for the definition of 'AM_PROG_CC_STDC' Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9c07d892 2012-12-30 11:04:39 obsolete: better error message if AM_PROG_CC_STDC is used In Automake 1.13, the long-deprecated (since 2002) macro AM_PROG_CC_STDC has been removed. Such a removal, albeit sensible and justified, was probably done in a too-abrupt way, since it didn't turn the pre-existing warning messages into fatal error messages, but simply dropped the macro definition, so that remaining usages of it would cause unclear error messages, e.g.: configure.ac:4: warning: macro 'AM_PROG_CC_STDC' not found in library from aclocal, and: configure.ac:4: error: possibly undefined macro: AM_PROG_CC_STDC If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. from autoconf. In an attempt to mitigate this issue, we re-add an AM_PROG_CC_STDC definition that simply raises a *clear* error message when the macro is used. * t/am-prog-cc-stdc-no-more.sh: New test. * t/list-of-tests.mk: Add it. * m4/obsolete-err.m4: Add the new "error-raising" definition for AM_PROG_CC_STDC; the error message is a variation of the one already present in the older version of this macro, before it got removed in commit 'v1.12-15-gd2ca168'. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
8e921bf8 2012-12-30 10:33:23 obsolete: better error message if AM_CONFIG_HEADER is used In Automake 1.13, the long-deprecated macro AM_CONFIG_HEADER (deprecated since 2002) has been removed in favour of AC_CONFIG_HEADERS. However, the removal was done without a proper deprecation period, and that caused packages upgrading to Automake 1.13 to fail with very unclear error messages, e.g.: configure.ac:4: warning: macro 'AM_CONFIG_HEADER' not found in library from aclocal, and: configure.ac:4: error: possibly undefined macro: AM_CONFIG_HEADER If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. from autoconf. In an attempt to mitigate this issue, we re-add an AM_CONFIG_HEADER definition that simply raises a *clear* error message when the macro is used. Report by Paolo Bonzini: <http://lists.gnu.org/archive/html/automake/2012-12/msg00039.html> * t/am-config-header-no-more.sh: New test. * t/list-of-tests.mk: Add it. * m4/obsolete-err.m4: New file, contain the new AM_CONFIG_HEADER "error-raising" definition, as well as the definition of the similarly obsolete macros 'AM_C_PROTOTYPES' and 'fp_C_PROTOTYPES', moved in from ... * m4/protos.m4: ... this file, which has thus been removed. * Makefile.am (dist_automake_ac_DATA): Adjust. * t/ansi2knr-no-more.sh: Likewise. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a31c991e 2012-12-28 18:41:38 post-release: minor version bump This is for the maint branch. * configure.ac, m4/amversion.m4: Bump version to 1.13.0a. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2f552a97 2012-12-28 18:12:33 release: stable major release 1.13 * configure.ac (AC_INIT): Bump version number to 1.13. * m4/amversion.m4 (AM_AUTOMAKE_VERSION): Likewise (regenerated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
72f22d49 2012-12-19 12:02:21 maint: version bump after beta release * configure.ac (AC_INIT): Bump version number to 1.12c, as per HACKING suggestion. * m4/amversion.m4: Likewise (autoupdated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9ebccd05 2012-12-19 11:18:53 release: beta release 1.12b (will become 1.13) * configure.ac (AC_INIT): Bump version number to 1.12b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c54fada1 2012-12-15 18:04:58 maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.6a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
28fcb35d 2012-12-15 10:37:49 release: stable release 1.12.5 * configure.ac (AC_INIT): Bump version number to 1.12.5. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
10ebd158 2012-11-27 20:46:32 Merge branch 'maint' * maint: news: we'll remove AM_PROG_MKDIR in 1.14, not 1.13 tests: give few vala tests more significant names vala tests: don't use the 'posix' profile, it's no longer supported news: fixup: bug#8847 is fixed in 1.12.6, not in 1.12.5 news: document the fix for automake bug#10227 tests: fix a spurious testsuite failure on Solaris python: make installed modules find by default on Debian and Ubuntu
1f113f6b 2012-11-22 12:03:07 python: make installed modules find by default on Debian and Ubuntu This change fixes automake bug#10227. The code used to get the python package directory was wrong for Python 3, at least on Debian and Ubuntu distributions. In the case the installation was using the default prefix "/usr/local", python modules were incorrectly installed in the directory /usr/local/lib/python3/dist-packages (which is *not* searched by default), rather than in a directory like /usr/local/lib/python3.x/dist-packages which is searched by default. * m4/python.m4 (AM_PATH_PYTHON): Try to use the 'sysconfig' module if possible, for better interactions with python 3.x. Helped-by: Reuben Thomas <rrt@sc3d.org> Helped-by: Roumen Petrov <bugtrack@roumenpetrov.info> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
cb6a19d9 2012-11-21 14:13:02 Merge branch 'maint' * maint: tests: fix a spurious failure when $PYTHON is in the environment python tests: support PEP-3147 installation layout python: uninstall cater to PEP-3147 tests: improve a comment tests: honour $PYTHON override tests: typofix in message news: document fix for bug#8847 (PEP-3147, __pycache__) python: improve support for modern python (CPython 3.2 and PyPy) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
8d1a5422 2012-11-21 10:28:41 Merge branch 'python-pep-3147' into maint * python-pep-3147: tests: fix a spurious failure when $PYTHON is in the environment python tests: support PEP-3147 installation layout python: uninstall cater to PEP-3147 tests: improve a comment tests: honour $PYTHON override tests: typofix in message news: document fix for bug#8847 (PEP-3147, __pycache__) python: improve support for modern python (CPython 3.2 and PyPy)
2383b2c9 2012-11-17 19:30:03 maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.5a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
228258cc 2012-11-17 16:43:39 release: stable release 1.12.5 * configure.ac (AC_INIT): Bump version number to 1.12.5. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
60fe7d3d 2012-11-15 15:44:55 Merge branch 'ac-config-macro-dirs' * ac-config-macro-dirs: tests: AC_CONFIG_MACRO_DIRS: ignore inevitable failures with old autoconf aclocal: AC_CONFIG_MACRO_DIRS: work around autom4te option parsing bugs aclocal: tracing AC_CONFIG_MACRO_DIRS can work with older autoconf as well
33c836b2 2012-11-15 14:49:14 recursion: remove _AM_EXTRA_RECURSIVE_TARGETS indirection Since automake automatically smashes extra whitespace and newlines in the arguments of the macros it traces, we can remove the extra indirection with the _AM_EXTRA_RECURSIVE_TARGETS. This doesn't truly simplify the existing code, but make it slightly easier to understand anyway, since leave it with one less indirection. * automake.in: Trace AM_EXTRA_RECURSIVE_TARGETS directly, rather than tracing _AM_EXTRA_RECURSIVE_TARGETS. Remove trailing and leading empty fields in the extracted arguments. * m4/extra-recurs.m4 (_AM_EXTRA_RECURSIVE_TARGETS): Remove, no longer needed. (AM_EXTRA_RECURSIVE_TARGETS): Adjust by making it a simple no-op. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
f0dd2dee 2012-11-15 12:24:27 aclocal: AC_CONFIG_MACRO_DIRS: work around autom4te option parsing bugs The autom4te program coming with autoconf 2.68 and earlier had a bug which caused the "-" command line argument (with which we tell it to read some input from from standard input) to aways be pushed at the *end* of the command line, regardless of where the user specified it (that bug was fixed by autoconf commit 'v2.68-120-gf4be358', "getopt: new Autom4te::Getopt module"). This broken semantics conflict with our usage in aclocal, where we need to pass some input to the invoked autom4te program early, and have so far been using the stdin to do so. Now we start using an external file instead. * m4/internal/ac-config-macro-dirs.m4: New file, contain a fallback definition of the AC_CONFIG_MACRO_DIRS macro for older autoconf releases. * aclocal.in (trace_used_macros): When invoking autom4te, use that file instead of "abusing" standard input. * Makefile.am (dist_automake_ac_DATA): Rename ... (nobase_dist_automake_ac_DATA): ... like this. Add 'm4/internal/ac-config-macro-dirs.m4' to it. * t/aclocal-acdir.sh: Adjust to avoid spurious failures. Helped-by: Eric Blake <eblake@redhat.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e0e99eda 2012-11-05 11:45:15 python: improve support for modern python (CPython 3.2 and PyPy) This fixes automake bug#8847. * m4/python.m4 (AM_PATH_PYTHON): Add python3.3 to _AM_PYTHON_INTERPRETER_LIST. * lib/py-compile: Fix compiled filenames for PEP-3147, currently implemented in CPython 3.2 and newer. Do not create '.pyo' files for PyPy. Copyright-paperwork-exempt: yes Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
153f861b 2012-10-31 12:41:13 Merge branch 'maint' * maint: vala tests: source test-init.sh, not ./defs tests: fix a spurious typo-related failure tests: remove spurious leftover use of 'Exit' tests: can check our recipes avoid trailing backslashes vala: improve comments to AM_PROG_VALAC news: update w.r.t. recent vala changes vala: if no proper compiler found, set $(VALAC) to 'valac' vala: AM_PROG_VALAC should not produce an error for tool-old valac docs: document recent changes to AM_PROG_VALAC tests: enhance tests on AM_PROG_VALAC vala: style fixes in vala.m4 vala: add action arguments, for when no proper vala compiler is found Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3f20803c 2012-10-26 20:22:40 vala: improve comments to AM_PROG_VALAC * m4/vala.m4 (AM_PROG_VALAC): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1b187099 2012-10-26 18:01:17 vala: if no proper compiler found, set $(VALAC) to 'valac' This is better than setting it to ':' (as is currently done), because a triggered makefile rule invoking a vala compilation will then clearly fail with an informative error message like "valac: command not found", rather than silently, with the error possibly going unnoticed, or triggering harder-to-diagnose fallout failures in later steps. For a precedent of a similar behaviour, see the AC_PROG_YACC macro. * m4/valac.m4: Implement the new semantic. * doc/automake.texi (Vala Support): Document it. * t/vala4.sh: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
9fe696bc 2012-10-26 17:08:09 vala: AM_PROG_VALAC should not produce an error for tool-old valac This change fixes automake bug#12688. In the AM_PROG_VALAC macro, when the optional parameter specifying the minimum release number is not provided, and/or if the Vala compiler is not found, then there is a _warning_ message. On the other hand, when the version number is specified and if the Vala compiler is too old, there is an _error_ message. This error message is problematic, because for a tarball, the Vala compiler is not required: the generated C code is included in the tarball. So if a user wants to compile the software, he shouldn't need the valac program with the right version. * m4/vala.m4 (AM_PROG_VALAC): Modify to use AC_MSG_WARN instead of AC_MSG_ERROR. * t/vala4.sh: Adjust and enhance. * doc/automake.texi (Vala Support): Likewise. * THANKS: Update. Co-authored-by: Matthieu Baerts <matttbe@glx-dock.org> Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com> Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
df6303ec 2012-10-26 15:18:44 vala: style fixes in vala.m4 * m4/vala.m4 (AM_PROG_VALAC): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
df202a3e 2012-09-11 17:55:37 vala: add action arguments, for when no proper vala compiler is found * m4/vala.m4 (AM_PROG_VALAC): Add optional action arguments to control the behavior if specified version of valac is not found. This emulates the behaviour of AM_PATH_PYTHON. * t/vala4.sh: Enhance. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> Copyright-paperwork-exempt: yes
df23dafc 2012-10-22 16:14:49 compat: reinstate AM_PROG_MKDIR_P, for gettext Do not remove AM_PROG_MKDIR_P just yet. gettext (latest from git) still AC_REQUIRE's AM_PROG_MKDIR_P via its intl.m4 and po.m4 files, which are pulled into *many* projects. When I try to build one of those projects (coreutils) using the latest from automake.git/master, I see this failure: $ aclocal -I m4 configure.ac:477: warning: AM_PROG_MKDIR_P is m4_require'd \ but not m4_defun'd m4/po.m4:23: AM_PO_SUBDIRS is expanded from... m4/gettext.m4:57: AM_GNU_GETTEXT is expanded from... configure.ac:477: the top level That is because AM_PROG_MKDIR_P was removed (via commit v1.12-20-g8a1c64f) in preparation for the next release of automake. * NEWS: Remove the paragraph that announced the removal of AM_PROG_MKDIR_P. * Makefile.am (dist_automake_ac_DATA): Add m4/mkdirp.m4. * m4/mkdirp.m4: Re-add file. * t/mkdirp-deprecation.sh: Likewise. * t/list-of-tests.mk: Add it. * automake.in: Restore removed code, and adjust comments, s/1.13/1.14/ to reflect new plan for removal. * doc/automake.texi (Obsolete Macros): Restore the section, but now with only one entry: the one for AM_PROG_MKDIR_P.
d6008c51 2012-09-18 13:55:55 maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.4a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
58b4936f 2012-09-17 20:14:07 release: stable release 1.12.4 * configure.ac (AC_INIT): Bump version number to 1.12.4. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2abe1833 2012-08-24 10:47:17 AM_INIT_AUTOMAKE: allow obsolescent two-args invocation once again This partially reverts commit 'v1.12-67-ge186355' of 2012-05-25, "init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore" Some users still need to be able to define the version number for their package dynamically, at configure runtime. Their user case is that, for development snapshots, they want to be able to base the complete version of the package on the VCS revision ID (mostly Git or Mercurial). They could of course do so by specifying such version dynamically in their call to AC_INIT, as is done by several GNU packages. But then they would need to regenerate and re-run the configure script before each snapshot, which might be very time-consuming for complex packages, to the point of slowing down and even somewhat impeding development. The situation should truly be solved in Autoconf, by allowing a way to specify the version dynamically in a way that doesn't force the configure script to be regenerated and re-run every time the package version changes. But until Autoconf has been improved to allow this, Automake will have to support the obsolescent two-arguments invocation for AM_INIT_AUTOMAKE, to avoid regressing the suboptimal but working solution for the use case described above. See also: <http://lists.gnu.org/archive/html/automake/2012-08/msg00025.html> * NEWS: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Support once again invocation with two or three arguments. * t/aminit-moreargs-no-more.sh: Renamed ... * t/aminit-moreargs-deprecated.sh: ... like this, and updated. * t/nodef.sh: Recovered test, with minor adjustments. * t/backcompat.sh: Likewise. * t/backcompat2.sh: Likewise. * t/backcompat3.sh: Likewise. * t/backcompat6.sh: Likewise. * t/list-of-tests.mk: Adjust. Suggested-by: Bob Friesenhahn n<bfriesen@simple.dallas.tx.us> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c4d20d83 2012-08-14 13:09:41 maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.3a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e49762d8 2012-08-13 18:43:37 release: stable release 1.12.3 * configure.ac (AC_INIT): Bump version number to 1.12.3. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
094b83a6 2012-07-16 11:16:15 Merge branch 'maint' * maint: fixup: delete "# serial" line in m4/amversion.in news: update about recent ylwrap changes and fixes m4: get rid of "# serial" lines configure: ${#param} must be supported by the shell for the testsuite yacc tests: fix a spurious failure with parallel make ylwrap: use proper quoting inside a `...` substitution ylwrap: don't uselessly reset the exit status in case of failure ylwrap: fix C++ support for Bison ylwrap: refactor: move loop invariant ylwrap: refactoring: don't rely on the file order tests: upgrade and fix Bison test case tests: fix bison input file ylwrap: comment changes ylwrap: modernize idioms ylwrap: rename header inclusion in generated parsers ylwrap: simplify the list of renamings ylwrap: refactor: less duplication Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
455437e8 2012-07-16 11:11:34 fixup: delete "# serial" line in m4/amversion.in Otherwise, when m4/amversion.m4 is regenerated, it will contain a serial line as well. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6e3c0b92 2012-07-14 18:49:25 m4: get rid of "# serial" lines The "#serial" lines are only considered by aclocal for the system-wide third-party '.m4' files, not for the Automake-provided ones. So they serve no real purpose in the Automake '.m4' files. In addition, now that we use git and topic branches, and that we are also writing the Automake-NG fork, the "#serial" lines are becoming more and more unreliable (e.g., different version of the same file in different branches can easily end up having the same serial numbers). So let's just nuke all the "#serial" lines. See also automake bug#11932. * m4/*.m4: All "# serial" lines removed. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
bdb984ba 2012-07-09 19:33:03 Merge branch 'maint' (with fix for CVE-2012-3386) This makes the fix for a locally-exploitable security vulnerability (CVE-2012-3386) available to the Automake master branch. * maint: sync: update files from upstream with "make fetch" news: improve wording in entry about CVE-2012-3386 maint: post-release minor version bump release: stable release 1.12.2 distcheck: never make part of $(distdir) world-writable compat: automake should substitute @mkdir_p@, for backward compatibility fixup: t/README: it's ./runtest, not ./t/ax/runtest Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
44521c1e 2012-07-09 18:19:55 maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.2a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6a49a1b7 2012-07-09 17:26:14 release: stable release 1.12.2 * configure.ac (AC_INIT): Bump version number to 1.12.2. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
25510217 2012-07-09 10:33:49 compat: automake should substitute @mkdir_p@, for backward compatibility That has been unwittingly broken by commit v1.12-19-g7a1eb9f of 2012-04-28, "AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13". We thought it wasn't a big deal, but Jim Meyering reported that @mkdir_p@ is used in gettext's Makefile.in.in template: <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> * lib/am/header-vars.am (mkdir_p): Don't define. * m4/init.m4 (AM_INIT_AUTOMAKE): AC_SUBST 'mkdir_p' with $(MKDIR_P). * t/mkdir_p.sh, t/mkdirp-deprecation.sh: Enhance. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
3da1457d 2012-06-12 14:48:12 recursion: support user-defined recursive targets The user can now define his own recursive targets that recurse in the directories specified in $(SUBDIRS). That can be done by specifying the name of such targets in invocations of the new 'AM_EXTRA_RECURSIVE_TARGETS' m4 macro. The API goes like this: $ cat configure.ac AC_INIT([pkg-name], [1.0] AM_INIT_AUTOMAKE AM_EXTRA_RECURSIVE_TARGETS([foo]) AC_CONFIG_FILES([Makefile sub/Makefile]) AC_OUTPUT $ cat Makefile.am SUBDIRS = sub foo-local: @echo This will be run by "make foo". $ cat sub/Makefile.am foo-local: @echo This too will be run by a "make foo" issued either in @echo the 'sub/' directory or in the top-level directory. Like for the "default" recursive targets (e.g., 'all' and 'check'), the user-defined recursive targets descend in the $(SUBDIRS) in a depth-first fashion, and process '.' last (unless that is explicitly specified in $(SUBDIRS)). * NEWS, doc/automake.texi: Document the new feature. * automake.in (@extra_recursive_targets): New global variable. (scan_autoconf_traces): Trace macro '_AM_EXTRA_RECURSIVE_TARGETS'. (handle_user_recursion): New subroutine; among other things, it defines the new internal '$(am__extra_recursive_targets)' make variable, and the '*-am', '*-local' and '*-recursive' targets associated with the user-specified user recursive targets. (generate_makefile): Call the new subroutine. * lib/am/subdirs.am (am__recursive_targets): New internal make variable, listing all of '$(RECURSIVE_TARGETS)', '$(RECURSIVE_CLEAN_TARGETS)' and '$(am__extra_recursive_targets)' together. (AM_RECURSIVE_TARGETS): Adjust the definition of this variable ... (.PHONY, .MAKE): ... and the list of dependencies of these special targets to take advantage of the new '$(am__recursive_targets)' variable. ($(am__recursive_targets)): New targets, superseding ... ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)): ... these, and inheriting their rules. This way, the rules to handle recursion for built-in recursive targets (e.g., 'all', 'dvi', 'clean') and for user defined recursive targets are the same. * m4/extra-recurs.m4: New file, contain definition of new macro 'AM_EXTRA_RECURSIVE_TARGETS' and '_AM_EXTRA_RECURSIVE_TARGETS'. These macros are basically dummy, only used for tracing by automake. * m4/Makefile.am (dist_automake_ac_DATA): Update. * t/recurs-user.sh: New test. * t/recurs-user2.sh: Likewise. * t/recurs-user-deeply-nested.sh: Likewise. * t/recurs-user-indir.sh: Likewise. * t/recurs-user-keep-going.sh: Likewise. * t/recurs-user-many.sh: Likewise. * t/recurs-user-no-subdirs.sh: Likewise. * t/recurs-user-no-top-level.sh: Likewise. * t/recurs-user-override.sh: Likewise. * t/recurs-user-phony.sh: Likewise. * t/recurs-user-wrap.sh: Likewise. * t/remake-recurs-user.sh: Likewise. * t/list-of-tests.mk: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
a22717df 2012-06-15 11:13:00 missing: do not touch timestamps; only warn for out-of-date files Before this change, the missing script had a twofold role: - it warned the user if some required maintainer tools was missing, or too old; - in such a case, it tried to "fix" the timestamp of the files that should have been rebuilt by that tool (without actually updating the file contents, of course), to allow the build to continue. The second capability used to be quite useful in the days when most projects committed files generated by maintainer-only tools in their VCS repository (today the trend is not to keep such generated files VCS-committed anymore). In such a setup, the "timestamp-fixing" capability of 'missing' was quite useful, in that it allowed users lacking some required maintainer tool to build from a VCS checkout in the face of skewed timestamps (as could have been caused by "cvs update" or "git checkout"). But then, when the automatic remake rules kicked in due to the generated files being *actually out-of-date* (e.g., because the user had modified 'configure.ac' but lacked a modern-enough autoconf to rebuild it), that behaviour of 'missing' caused the same problem that plagued AM_MAINTAINER_MODE; i.e., the user would get non-dependable builds and inconsistent statuses of the build tree -- changes to source files don't reflect on generated files, and this can be very confusing and cause hard-to-spot errors). So we now believe that the best approach to deal with timestamp-related issues is not to have 'missing' to "automagically" try to resolve them (with all the risk and brittleness entailed), but rather to suggest those projects still keeping generated files committed in their VCS to provide a proper (say) 'fix-timestamp.sh' script that touches the timestamp of the checked-out files, to ensure no spurious rebuild will be triggered. As a bonus, such a script can be more aware of the particularities, nooks and corner cases of a project, and thus more reliable than the old 'missing' script. An example of this approach is offered by GNU awk (release 4.0.1, Git tag 'gawk-4.0.1', commit b85b04e8). The GNU awk maintainers commit the Autotools-generated files (configure, Makefile.in, etc.) and other generated in the project's Git repository, but offer a useful script 'bootstrap.sh' that fixes the timestamps of those files, to ensure no useless remake is triggered in a freshly cloned repository: #! /bin/sh # bootstrap.sh --- touch relevant files to avoid out-of-date issues # in Git sandboxes touch aclocal.m4 find awklib -type f -print | xargs touch sleep 1 touch configure sleep 2 touch configh.in sleep 1 touch test/Maketests find . -name Makefile.in -print | xargs touch touch doc/*.info touch po/*.gmo touch po/stamp-po touch awkgram.c touch command.c touch version.c A similar, simplified script is also reported as an example in the manual. * NEWS: Update. * doc/automake.texi (Auxiliary Programs, maintainer-mod): Update. (CVS): Do not suggest that 'missing' can "automagically" fix botched timestamp due to a "cvs update"; this isn't true anymore. Give an example of a custom 'fix-timestamp.sh' script that can be used to obtain the same effect (in a slightly more laborious but also more explicit and less brittle way). Fix some minor typos and improper wordings while we are at it. * lib/missing: Basically rewritten to implement the new semantics. As a side effect (one of the several), the '--run' option is no more required nor recognized. * m4/missing.m4 (AM_MISSING_HAS_RUN): Enhance the test on '$MISSING' to ensure it actually provides the new semantics (by trying the new "witness" option '--is-lightweight'). * lib/am/distdir.am (distdir): No need anymore to check for "bad" distributed man pages that were actually dummy stubs generated by the 'missing' script. * t/missing4.sh: Rename ... * t/remake-aclocal-version-mismatch.sh: ... like this. * t/missing2.sh: Rename ... * t/missing-version-mismatch.sh: ... like this, and adjust to the new semantics. * t/missing3.sh: Adjust to the new semantics. * t/man4.sh: Remove as obsolete. * t/missing.sh: Likewise. * t/missing5.sh: Likewise. * t/txinfo30.sh: Likewise. * t/man6.sh: Adjust grepping checks. * t/remake6.sh: Likewise. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12bef166 2012-06-01 18:55:14 maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.1a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
58cad831 2012-06-01 15:50:03 release: stable release 1.12.1 * configure.ac (AC_INIT): Bump version number to 1.12.1. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
52062eb2 2012-05-25 14:50:05 Merge branch 'am-init-automake' * am-init-automake: init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
e186355f 2012-05-19 11:47:26 init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore This is a follow-up on commit v1.12-66-g27136df of 2012-05-06, "init: warn against obsolete usage of AM_INIT_AUTOMAKE". With this change, we drop support for the two-arguments and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro, as in either of: AM_INIT_AUTOMAKE($PACKAGE, $VERSION) AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE) * NEWS, doc/automake.texi: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments invocation form as a hard error. * t/aminit-moreargs-deprecation.sh: Renamed ... * t/aminit-moreargs-deprecation.sh: ... to this, and updated to check the new semantics. * t/ac-output-old.tap: Adjust by avoiding old-style uses of AC_INIT and AM_INIT_AUTOMAKE. * t/acsilent.sh: Likewise. * t/dirlist.sh: Likewise. * t/dirlist2.sh: Likewise. * t/req.sh: Likewise. * t/nodef.sh: Remove as obsolete. * t/version.sh: Likewise. * t/version2.sh: Likewise. * t/backcompat.sh: Likewise. * t/backcompat2.sh: Likewise. * t/backcompat3.sh: Likewise. * t/backcompat5.sh: Likewise. * t/backcompat4.sh: Renamed ... * t/backcompat-acout.sh: ... to this. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
16bf8ebc 2012-05-19 15:27:21 maint: version bump after beta release * configure.ac (AC_INIT): Bump version number to 1.12.0c. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
0bec8b53 2012-05-19 15:18:43 release: beta release 1.12.0b (will become 1.12.1) * configure.ac (AC_INIT): Bump version number to 1.12.0b. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5e771b27 2012-05-18 18:00:51 check: the parallel-tests driver is now the default The old serial testsuite driver is still supported, and can be activated by the 'serial-tests' option (introduced by commit 'v1.11-1989-gdeb7773' of 2012-02-20, "automake: new option 'serial-tests'"). * lib/Automake/Options.pm: Now, the 'parallel-tests' option is a no-op (but still explicitly recognized, for backward compatibility), while the 'serial-tests' option is recognized and registered. * automake.in: Adjust to ensure that the parallel test harness is used by default; mostly, this amounts at using "! option('serial-tests')" where "option('parallel-tests')" was used before. * NEWS, doc/automake.texi: Update. * configure.ac (AM_INIT_AUTOMAKE): Drop 'parallel-tests' option, is redundant now. * defs: In the generated AM_INIT_AUTOMAKE call, use the 'serial-tests' when the serial testsuite harness is to be used, and no option otherwise. * lib/am/check.am: Use (static) conditional '%SERIAL_TESTS%' instead of conditional '%PARALLEL_TESTS%'. * lib/test-driver: Adjust heading comments. * t/ax/extract-testsuite-summary.pl: Likewise. * t/check-exported-srcdir.sh: Likewise. * t/check-subst.sh: Likewise. * t/java-compile-run-nested.sh: Likewise. * t/parallel-tests-dry-run-1.sh: Likewise. * t/parallel-tests-dry-run-2.sh: Likewise. * t/parallel-tests-interrupt.sh: Likewise. * t/parallel-tests-many.sh: Likewise. * t/test-metadata-global-log.sh: Likewise. * t/tests-environment-backcompat.sh: Likewise. * m4/init.m4 (AM_INIT_AUTOMAKE): Adjust a comment. * t/check8.sh: Likewise. * t/check-tests-in-builddir.sh: Likewise. * t/java-compile-run-flat.sh: Adjust a botched comment. * t/ax/tap-summary-aux.sh: Remove explicit use of the 'parallel-tests' option. * t/ax/testsuite-summary-checks.sh: Likewise. * t/aclocal-path-precedence.sh: Likewise. * t/dist-aux-many-subdirs.sh: Likewise. * t/parallel-tests-no-color-in-log.sh: Likewise. * t/parallel-tests-reset-term.sh: Likewise. * t/parallel-tests-subdir.sh: Likewise. * t/check-no-test-driver.sh: Fix setup to adjust to the changed semantics. Update heading comments. * t/parallel-tests-driver-install.sh: Adjust to the new semantic. * t/test-driver-is-distributed.sh: Simplified according to the new semantics. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12405c9f 2012-05-08 12:49:36 Merge branch 'maint' * maint: tests: fix a spurious failure with dash test defs: fix indentation (cosmetic change) tests: remove obsolete uses of $sh_errexit_works configure: search a sturdy POSIX shell to be used in the testsuite tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL fixup: distribute t/README init: warn against obsolete usage of AM_INIT_AUTOMAKE Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
27136dfe 2012-03-31 16:39:32 init: warn against obsolete usage of AM_INIT_AUTOMAKE Support for the two- and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro, as in: AM_INIT_AUTOMAKE($PACKAGE, $VERSION) or: AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE) will be removed in the next major Automake release (1.13). Such usages have already been deprecated in the documentation starting from commit v1.11-2015-ge99690a of 23-02-2012 "docs, news: document planned removal of obsolete macros and features". We now start giving runtime warnings as well (in the 'obsolete' category). * NEWS: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments form invocation. * automake.in (scan_autoconf_traces): Likewise. * doc/automake.texi: Minor adjustments. Add an @anchor to the location where it's described how to modernize outdated invocation of AM_INIT_AUTOMAKE, so that it can be referenced from automake warning/error messages. * t/aminit-moreargs-deprecation.sh: New test. * tests/list-of-tests.mk: Add it. * tests/ac-output-old.tap: Adjust by calling automake with the warnings in the 'obsolete' category disabled. * t/backcompat.test: Likewise. * t/backcompat3.test: Likewise. * t/backcompat5.test: Likewise. * t/backcompat6.test: Likewise. * t/version.test: Likewise. * t/version2.test: Likewise. * t/pr2.test: Modernize style of AC_INIT and AM_INIT_AUTOMAKE invocations, and use proper m4 quoting. * t/pr87.test: Likewise. * t/confsub.test: Likewise. * t/install2.test: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
adb834eb 2012-05-06 11:04:45 Merge branch 'maint' * maint: m4: prepend m4 builtins with "m4_" docs: fix clumsy grammar in the scripts-based testsuite chapter Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
37267407 2012-05-06 10:15:59 m4: prepend m4 builtins with "m4_" The comments in 'lib/autoconf/autoconf.m4' from Autoconf 2.69 read: We discourage the use of the non prefixed macro names: M4sugar maps all the builtins into 'm4_'. Autoconf has been converted to these names too. But users may still depend upon these, so reestablish them. Alas, in our init.m4 files, we were still using m4 builtins without prefixing them with "m4_". Not nice for a package that is one of the major clients of Autoconf, and an integral part of the GNU Autotools! Fix the issue. * m4/init.m4 (AM_INIT_AUTOMAKE): Use 'm4_define' and 'm4_defn' instead of 'define' and 'defn'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
68075ce0 2012-05-05 21:48:49 require: autoconf >= 2.65; related simplifications The new support for Objective C++ (to be added in Automake 1.12.1) can be simplified if we assume Autoconf version 2.65 or later (2.65 being the version that introduced support for Objective C++). Since such an Autoconf version is two and half years old now (and will likely be almost three years old when Automake 1.13 gets released), requiring it is acceptable. This will also simplify testing and maintenance of Automake, because we'll need to test with fewer Autoconf version, and possibly rely on new Autoconf features. * NEWS (Version requirements): Automake 1.13 will require Autoconf 2.65 or later. * configure.ac ($required_autoconf_version): Bump to 2.65. * m4/init.m4 (AM_INIT_AUTOMAKE): Require Autoconf >= 2.65. Assume AC_PROG_OBJCXX is unconditionally defined. * m4/depout.m4: Adjust a comment about a nugget of defensive programming. * t/ext.sh: Assume that AC_PROG_OBJCXX is unconditionally defined, and that we are using Autoconf >= 2.65. Related simplifications. * t/objc-megademo.sh: Likewise. * t/objcxx-basic.sh: Likewise. * t/objcxx-deps.sh: Likewise. * t/objcxx-flags.sh: Likewise. * t/objcxx-minidemo.sh: Likewise. * t/nodep2.sh: Likewise. * t/backcompat3.sh: Assume AC_INIT accepts an URL argument. * t/depend5.sh: Adjust a comment. * syntax-checks.mk (sc_test_names): Delete this check as now useless: autoconf >= 2.65 (>= 2.63, actually) can handle arguments to AC_INIT that contain or are m4 builtins or predefined macros. (m4_builtin): Delete this now-useless variable as well, was used only by the check above. (syntax_check_rules): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1e852648 2012-05-04 17:46:51 Merge branch 'maint' * maint: tests: avoid spurious failure on missing Obj C/C++ compiler objc, objc++: test support for compilation flags objc, objc++: add stress test objc, objc++: test automatic dependency tracking objc: reorganize basic tests objc++, objc: add first semantic tests objc++: add first basic test news: announce initial support for Objective C++ objc++: test support for '.mm' suffix in _SOURCES entries objc++: add documentation objc++: initial support for Objective C++