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>
* Bugs fixed:
- - Use of the obsolete macro AM_CONFIG_HEADER causes a clear and
- helpful error message, instead of obscure ones (issue introduced
- in Automake 1.13).
+ - Use of the obsolete macros AM_CONFIG_HEADER or AM_PROG_CC_STDC now
+ causes a clear and helpful error message, instead of obscure ones
+ (issue introduced in Automake 1.13).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[AC_FATAL(['$0': this macro is obsolete.
You should use the 'AC][_CONFIG_HEADERS' macro instead.])])
+AU_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_DEFUN([AM_C_PROTOTYPES],
[AC_FATAL([automatic de-ANSI-fication support has been removed])])
AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
--- /dev/null
+#! /bin/sh
+# Copyright (C) 2011-2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Check that any attempt to use the obsolete macro AM_CONFIG_HEADER
+# elicits clear and explicit fatal errors.
+
+. test-init.sh
+
+geterr ()
+{
+ "$@" -Wnone 2>stderr && { cat stderr >&2; exit 1; }
+ cat stderr >&2
+ grep "^configure\.ac:4:.*'AM_PROG_CC_STDC'.*obsolete" stderr
+ grep "'AC_PROG_CC'.* instead" stderr
+}
+
+$ACLOCAL
+mv aclocal.m4 aclocal.sav
+
+echo AM_PROG_CC_STDC >> configure.ac
+
+geterr $ACLOCAL
+test ! -f aclocal.m4
+
+cat aclocal.sav "$am_automake_acdir"/obsolete-err.m4 > aclocal.m4
+
+geterr $AUTOCONF
+geterr $AUTOMAKE
+
+:
t/aminit-moreargs-deprecation.sh \
t/amassign.sh \
t/am-config-header-no-more.sh \
+t/am-prog-cc-stdc-no-more.sh \
t/am-macro-not-found.sh \
t/amopt.sh \
t/amopts-location.sh \