]> git.ipfire.org Git - thirdparty/automake.git/commit
compat: restore AM_PROG_MKDIR, again
authorStefano Lattarini <stefano.lattarini@gmail.com>
Mon, 14 Jan 2013 19:43:24 +0000 (20:43 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Wed, 16 Jan 2013 12:19:11 +0000 (13:19 +0100)
commit030ecb45f60d9504155cf0778f9a93c746a5088b
treef4989998dfc78bcc82f7a99f0e066d3a0bdf9aee
parent2aa49391fe2918db3e5d59f4f96ca3612c955d78
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>
PLANS/obsolete-removed/am-prog-mkdir-p.txt
doc/automake.texi
m4/init.m4
m4/obsolete-err.m4
t/am-prog-mkdir-p-no-more.sh [deleted file]
t/am-prog-mkdir-p.sh [moved from t/mkdir_p.sh with 56% similarity]
t/gettext-macros.sh
t/list-of-tests.mk