Commit 030ecb45f60d9504155cf0778f9a93c746a5088b

Stefano Lattarini 2013-01-14T20:43:24

compat: restore AM_PROG_MKDIR, again OK, this is getting ridiculous, but we cannot remove this macro yet (and, yes, the fault for this mess lies entirely on me; let's not dwell on that, thank you very much). Gettext (so far the greatest "offender" in the use of AM_PROG_MKDIR), in its latest release 0.18.2, has removed all the uses of that macro still present in its code base. So I thought we could finally and safely remove it. Wrong. 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. This has already happened in practice: <http://lists.gnu.org/archive/html/bug-grep/2013-01/msg00003.html> Moreover, while we 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, our 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 we re-instate this macro as a simple alias for AC_PROG_MKDIR (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). Note that NEWS is not yet adjusted, since we'll have to adjust it in maint before (to minimize spurious merge conflicts). * doc/automake.texi: Update. * PLANS/obsolete-removed/am-prog-mkdir-p.txt: Likewise. * t/gettext-macros.sh: Adjust. * t/am-prog-mkdir-p.sh: New test. * t/mkdir_p.sh: Remove, folded into the new one. * t/am-prog-mkdir-p-no-more: Remove as superseded. * t/list-of-tests.mk: Adjust. * t/obsolete-err.m4: Re-instate AM_PROG_MKDIR_P as a working alias for AC_PROG_MKDIR_P (albeit giving runtime warnings, and calling AC_SUBST on 'mkdir_p' too). * m4/init.m4 (AM_INIT_AUTOMAKE): No longer call AC_SUBST for 'mkdir_p', as that is once again AM_PROG_MKDIR_P's business. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>