diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-04-02 17:05:42 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-04-28 13:55:33 +0200 |
commit | 7a1eb9ff9027929687f12905e131f6fda3fa6d0c (patch) | |
tree | 287e91c323e43da83cd26ae1fd9ccd9cbb64732d /t | |
parent | b4653256c2210d721e603023220e6fe05277286b (diff) | |
download | automake-7a1eb9ff9027929687f12905e131f6fda3fa6d0c.tar.gz |
AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13
Support for the obsolescent 'AM_PROG_MKDIR_P' macro (and its
output variable '$(mkdir_p)') has already been deprecated in
the documentation. It's now time to make its use actively
emit warnings in the 'obsolete' category as well.
* automake.in (scan_autoconf_traces): Warn about 'AM_PROG_MKDIR_P'
obsolescent if that macro is seen.
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): Warn about its own obsolescence.
* m4/init.m4: Require 'AC_PROG_MKDIR_P', not 'AM_PROG_MKDIR_P'.
* t/mkdirp-deprecation.sh: New test.
* t/list-of-tests.mk: Add it.
* syntax-check.mk (sc_mkdir_p): Delete this check as obsolete.
(syntax_check_rules): Remove it.
* t/gettext-macros.sh: Ensure the gettext-requiring tests will
call aclocal and automake with the 'obsolete' warnings disabled,
since even recent versions of gettext used the now-deprecated
'AM_PROG_MKDIR_P' m4 macro.
* NEWS: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/gettext-macros.sh | 7 | ||||
-rw-r--r-- | t/list-of-tests.mk | 1 | ||||
-rwxr-xr-x | t/mkdirp-deprecation.sh | 48 |
3 files changed, 56 insertions, 0 deletions
diff --git a/t/gettext-macros.sh b/t/gettext-macros.sh index 8adcb0d72..416a8e50f 100755 --- a/t/gettext-macros.sh +++ b/t/gettext-macros.sh @@ -80,6 +80,13 @@ fi . ./get.sh +cat >> get.sh <<'END' +# Even recent versions of gettext used the now-obsolete 'AM_PROG_MKDIR_P' +# m4 macro. So we need the following to avoid spurious errors. +ACLOCAL="$ACLOCAL -Wno-obsolete" +AUTOMAKE="$AUTOMAKE -Wno-obsolete" +END + $ACLOCAL --force -I m4 || cat >> get.sh <<'END' # We need to use '-Wno-syntax', since we do not want our test suite # to fail merely because some third-party '.m4' file is underquoted. diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index fef716517..d69256113 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -675,6 +675,7 @@ t/missing4.sh \ t/missing5.sh \ t/missing6.sh \ t/missing-auxfile-stops-makefiles-creation.sh \ +t/mkdirp-deprecation.sh \ t/mkinstall.sh \ t/mkinst2.sh \ t/mkinst3.sh \ diff --git a/t/mkdirp-deprecation.sh b/t/mkdirp-deprecation.sh new file mode 100755 index 000000000..7b8f67f0f --- /dev/null +++ b/t/mkdirp-deprecation.sh @@ -0,0 +1,48 @@ +#! /bin/sh +# Copyright (C) 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 the AM_PROG_MKDIR_P macro is deprecated. It will be +# be removed in the next major Automake release. + +. ./defs || Exit 1 + +echo AM_PROG_MKDIR_P >> configure.ac +: > Makefile.am + +grep_err () +{ + loc='^configure.ac:4:' + grep "$loc.*AM_PROG_MKDIR_P.*deprecated" stderr + grep "$loc.* use .*AC_PROG_MKDIR_P" stderr + grep "$loc.* use '\$(MKDIR_P)' instead of '\$(mkdir_p)'.*Makefile" stderr +} + +$ACLOCAL + +$AUTOCONF -Werror -Wobsolete 2>stderr && { cat stderr >&2; Exit 1; } +cat stderr >&2 +grep_err + +$AUTOCONF -Werror -Wno-obsolete + +#AUTOMAKE_fails +#grep_err +AUTOMAKE_fails --verbose -Wnone -Wobsolete +grep_err + +$AUTOMAKE -Wno-obsolete + +: |