From: Stefano Lattarini Date: Mon, 21 Jan 2013 14:48:48 +0000 (+0100) Subject: Merge branch 'maint' X-Git-Tag: v1.16~124 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c72b157e7c37964f6854d7b5c29c97957b02e36;p=thirdparty%2Fautomake.git Merge branch 'maint' * maint: tests: more information about Lex and Yacc programs lint: fix spurious failure for 'sc_rm_minus_f' syntax check maint: bump version 1.13.1a -> 1.13.2a 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 plans: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 init.m4: add probe to check "rm -f" without args work Signed-off-by: Stefano Lattarini --- 2c72b157e7c37964f6854d7b5c29c97957b02e36 diff --cc Makefile.am index 21d21c0a6,fa3dd3f3d..8990648d2 --- a/Makefile.am +++ b/Makefile.am @@@ -279,7 -281,8 +279,7 @@@ dist_automake_ac_DATA = m4/make.m4 \ m4/minuso.m4 \ m4/missing.m4 \ - m4/obsolete-err.m4 \ - m4/mkdirp.m4 \ + m4/obsolete.m4 \ m4/options.m4 \ m4/python.m4 \ m4/runlog.m4 \ diff --cc PLANS/obsolete-removed/am-prog-mkdir-p.txt index 4143fac85,d5b769553..40bc69f00 --- a/PLANS/obsolete-removed/am-prog-mkdir-p.txt +++ b/PLANS/obsolete-removed/am-prog-mkdir-p.txt @@@ -1,9 -1,64 +1,72 @@@ -The macro AM_PROG_MKDIR_P is no longer going to be removed in Automake 1.14 -(and in fact, any plan to remove it "evenatually" has been dropped as well). +We have dropped any plan to remove the obsolescent macro AM_PROG_MKDIR_P, +(today just an alias for the Autoconf-provided macro AC_PROG_MKDIR_P), as +well as the related $(mkdir_p) make variable and the @mkdir_p@ configure +substitution. -Let's see a bit of history to understand why. +That planned removal has already proven source of countless headaches and +backward-compatibility issues, which vastly outweigh any "clean-up benefit" +we would get from the removal of that obsolescent but unobtrusive cruft. + ++-*-*-*- ++ ++Let's see a bit of history. + + I had already scheduled the removal of the long-deprecated AM_PROG_MKDR_P + macro (superseded by the Autoconf-provided one AC_PROG_MKDIR_P) for + Automake 1.13 -- see commit 'v1.12-20-g8a1c64f'. + + Alas, it turned out the latest Gettext version at the time (0.18.1.1) was + still using that macro: + + + + And since the maintenance of Gettext was stalled, I couldn't get a fix + committed and released in time for the appearance of Automake 1.13: + + + + + + So, on strong advice by Jim Meyering, in commit 'v1.12.4-158-gdf23daf' + I re-introduced AM_PROG_MKDIR_P in Automake (thanks to Jim for having + convinced me to do so in time!) + + But then, Gettext (as said, the greatest "offender" in the use of + AM_PROG_MKDIR_P), in its latest release 0.18.2, finally removed all the + uses of that macro still present in its code base. Yay. So I thought + we could finally and quite safely remove AM_PROG_MKDIR_P in Automake 1.14; + and I proceeded to do so, see commit 'v1.13-30-gd01834b' and the merge + commit 'v1.13-5-gb373ad9'. Well, it turned out I was wrong, again, and + in a trickier and sublter way this time. Let's see the details. + + If a package's 'configure.ac' contains a call like: + + AM_GNU_GETTEXT_VERSION([0.18]) + + then the 'autopoint' script will bring the data files from the Gettext + release *1.18* into the package's tree -- yes, even even if the developer + has installed *and is using* Gettext 1.18.2! Now, these data files + comprise m4 files (that will be seen by subsequent aclocal and autoconf + calls), and of course, the pre-0.18.2 version of some of these files + still contains occurrences of AM_PROG_MKDIR_P -- so Automake 1.13 errors + out, and we lose. That already happened in practice: + + + + Moreover, while I might see it as not unreasonable to ask a developer + using Automake 1.14 to also update Gettext to 1.18.2, that would not + be enough; in order for gettext to use the correct data files, that + developer would have to update his configure.ac to read: + + AM_GNU_GETTEXT_VERSION([0.18.2]) + + thus requiring *all* of his co-developers to install Gettext 1.18.2, + even if they are still using, say, Automake 1.13. Bad. + + So I decided to re-instate this macro as a simple alias for AC_PROG_MKDIR_P + (plus a non-fatal runtime warning in the 'obsolete' category), and drop + any plan to remove it (see how much good those plans have done us so far). + See commit v1.13.1-109-g030ecb4. + + Similarly, the obsolete '@mkdir_p@' substitution and '$(mkdir_p)' make + variable are still supported, as simple aliases to '$(MKDIR_P)'. diff --cc m4/obsolete.m4 index 1ba6df354,f7ec1dbcd..28151d8d1 --- a/m4/obsolete.m4 +++ b/m4/obsolete.m4 @@@ -7,27 -8,21 +7,29 @@@ # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_REQUIRE([AC_PROG_MKDIR_P])dnl +AC_SUBST([mkdir_p], ['$(MKDIR_P)'])dnl +AC_DIAGNOSE([obsolete], +[macro '$0' is deprecated. +You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead, +and use '$(MKDIR_P)' instead of '$(mkdir_p)' in your Makefile.am files.])]) + - dnl TODO: Remove in Automake 1.15. AC_DEFUN([AM_CONFIG_HEADER], - [AC_FATAL(['$0': this macro is obsolete. - You should use the 'AC][_CONFIG_HEADERS' macro instead.])]) + [AC_DIAGNOSE([obsolete], + ['$0': this macro is obsolete. + You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl + AC_CONFIG_HEADERS($@)]) - dnl TODO: Remove in Automake 1.15. AC_DEFUN([AM_PROG_CC_STDC], - [AC_FATAL(['$0': this macro is obsolete. - You should simply use the 'AC][_PROG_CC' macro instead. - Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', - but upon 'ac_cv_prog_cc_stdc'.])]) + [AC_PROG_CC + am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc + AC_DIAGNOSE([obsolete], + ['$0': this macro is obsolete. + You should simply use the 'AC][_PROG_CC' macro instead. + Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', + but upon 'ac_cv_prog_cc_stdc'.])]) - dnl TODO: Remove in Automake 1.14. AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) diff --cc t/list-of-tests.mk index 70f153539,0acbdcfae..af78211b0 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@@ -130,10 -130,9 +130,10 @@@ t/amhello-cross-compile.sh t/amhello-binpkg.sh \ t/aminit-moreargs-deprecation.sh \ t/amassign.sh \ - t/am-config-header-no-more.sh \ + t/am-config-header.sh \ + t/am-prog-cc-stdc.sh \ t/am-prog-cc-c-o.sh \ - t/am-prog-cc-stdc-no-more.sh \ +t/am-prog-mkdir-p.sh \ t/am-macro-not-found.sh \ t/amopt.sh \ t/amopts-location.sh \