]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
Merge branch 'maint'
authorStefano Lattarini <stefano.lattarini@gmail.com>
Mon, 21 Jan 2013 14:48:48 +0000 (15:48 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Mon, 21 Jan 2013 14:48:48 +0000 (15:48 +0100)
* 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 <stefano.lattarini@gmail.com>
1  2 
Makefile.am
NEWS
PLANS/obsolete-removed/am-prog-mkdir-p.txt
doc/automake.texi
m4/init.m4
m4/obsolete.m4
maintainer/syntax-checks.mk
t/backcompat6.sh
t/list-of-tests.mk

diff --cc Makefile.am
index 21d21c0a6819a7fc7e02c04fbd719adfced66649,fa3dd3f3d87a321398dfd013be3c4ce509b658fc..8990648d2ace5a2c50db3203d07e2abb2e82c72c
@@@ -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 NEWS
Simple merge
index 4143fac85c4f6bf7ac5cd3ab6311ddf2e9cfaabf,d5b7695539dd7925dfb385bf89dcde828f631f8b..40bc69f0061cdb52c986a5ba97267881590be176
@@@ -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:
+   <http://lists.gnu.org/archive/html/automake/2012-09/msg00010.html>
+ 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:
+   <http://lists.gnu.org/archive/html/bug-gettext/2012-04/msg00018.html>
+   <http://lists.gnu.org/archive/html/bug-gettext/2012-06/msg00012.html>
+   <http://lists.gnu.org/archive/html/bug-gettext/2012-10/msg00001.html>
+ 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:
+     <http://lists.gnu.org/archive/html/bug-grep/2013-01/msg00003.html>
+ 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)'.
Simple merge
diff --cc m4/init.m4
Simple merge
diff --cc m4/obsolete.m4
index 1ba6df35430e276f61a96e3716b3d067285e87ef,f7ec1dbcd927c902f5592c3d53f7415d9ba27df3..28151d8d1a50bd154e3eca9fcb0fbab7ca8d2d17
@@@ -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.
  
- dnl TODO: Remove in Automake 1.15.
 +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.])])
 +
  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])
Simple merge
Simple merge
index 70f1535397408bd9f91a1b7b34afc68612e3f200,0acbdcfae2a943af2baf2ad7646ae501527d547d..af78211b0ba556b0e3c404f6fb7efa23e3db8ffc
@@@ -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 \