automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] AM_PROG_MKDIR_P: remove as obsolete, this time for good


From: Stefano Lattarini
Subject: [PATCH] AM_PROG_MKDIR_P: remove as obsolete, this time for good
Date: Sat, 27 Oct 2012 14:30:10 +0200

This commit basically reverts v1.12.4-158-gdf23daf, re-instating
commit v1.12-20-g8a1c64f.

Support for the obsolescent 'AM_PROG_MKDIR_P' m4 macro has been
deprecated in the documentation and with runtime warnings since
Automake 1.12.1.  Still, when we released Automake 1.13, we had
to delay that macro's removal, since at the time the last released
version of GNU gettext still AC_REQUIRE's AM_PROG_MKDIR_P via its
'intl.m4' and 'po.m4' files, which are pulled into *many* projects.

But it's now time to remove AM_PROG_MKDIR_P once and for all.
Projects still needing to work with older gettext releases will
be able to do so by adding a definition like

   AC_DEFUN([AM_PROG_MKDIR_P], [AC_PROG_MKDIR_P(address@hidden)])

to their 'acinclude.m4' file or to another local '*.m4' file.

* m4/mkdirp.m4: Delete.
* Makefile.am (dist_automake_ac_DATA): Remove it.
* automake.in (scan_autoconf_traces): Don't handle, nor warn about,
AM_PROG_MKDIR_P.
* doc/automake.texi (Obsolete Macros): Delete (it only spoke about
AM_PROG_MKDIR_P).
* t/gettext-macros.sh: Adjust.
* t/mkdirp-deprecation.sh: Delete.
* t/list-of-tests.mk: Don't list it.

Signed-off-by: Stefano Lattarini <address@hidden>
---

 I've pushed this patch in the temporary branch 'am-prog-mkdir-p-remove',
 based off master, so that I can merge it in the 'ng/master' branch
 (where AM_PROG_MKDIR_P has already been removed) to avoid spurious
 merge conflicts with master.  Once 1.13 is out and master becomes the
 starting point of Automake 1.14, I'll merge the 'am-prog-mkdir-p-remove'
 branch in master as well (since I plan to remove AM_PROG_MKDIR_P once
 and for all in 1.14), and then I'll remove such temporary branch.

 To stress an important point: this patch is *not* to be applied to the
 upcoming 1.13.x release series; and will not be.

 Regards,
   Stefano

 Makefile.am             |  1 -
 automake.in             |  9 ---------
 doc/automake.texi       | 40 ----------------------------------------
 m4/mkdirp.m4            | 31 -------------------------------
 t/gettext-macros.sh     | 13 +++++--------
 t/list-of-tests.mk      |  1 -
 t/mkdirp-deprecation.sh | 48 ------------------------------------------------
 7 files changed, 5 insertions(+), 138 deletions(-)
 delete mode 100644 m4/mkdirp.m4
 delete mode 100755 t/mkdirp-deprecation.sh

diff --git a/Makefile.am b/Makefile.am
index 0e959da..e629787 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -276,7 +276,6 @@ dist_automake_ac_DATA = \
   m4/make.m4 \
   m4/minuso.m4 \
   m4/missing.m4 \
-  m4/mkdirp.m4 \
   m4/options.m4 \
   m4/protos.m4 \
   m4/python.m4 \
diff --git a/automake.in b/automake.in
index ba66d9a..8b9c775 100644
--- a/automake.in
+++ b/automake.in
@@ -5128,7 +5128,6 @@ sub scan_autoconf_traces ($)
                AC_REQUIRE_AUX_FILE => 1,
                AC_SUBST_TRACE => 1,
                AM_AUTOMAKE_VERSION => 1,
-                AM_PROG_MKDIR_P => 0, # FIXME: to be removed in 1.14
                AM_CONDITIONAL => 2,
                _AM_EXTRA_RECURSIVE_TARGETS => 1,
                AM_GNU_GETTEXT => 0,
@@ -5284,14 +5283,6 @@ sub scan_autoconf_traces ($)
 
          $seen_automake_version = 1;
        }
-      elsif ($macro eq 'AM_PROG_MKDIR_P') # FIXME: to be removed in 1.14
-       {
-         msg 'obsolete', $where, <<'EOF';
-The 'AM_PROG_MKDIR_P' macro is deprecated, and will soon be removed.
-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.
-EOF
-       }
       elsif ($macro eq 'AM_CONDITIONAL')
        {
          $configure_cond{$args[1]} = $where;
diff --git a/doc/automake.texi b/doc/automake.texi
index 92c3851..05fea5e 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -3880,7 +3880,6 @@ Automake ships with several Autoconf macros that you can 
use from your
 
 @menu
 * Public Macros::               Macros that you can use.
-* Obsolete Macros::             Macros that will soon be removed.
 * Private Macros::              Macros that you should not use.
 @end menu
 
@@ -4047,45 +4046,6 @@ define @code{WITH_DMALLOC} and add @option{-ldmalloc} to 
@code{LIBS}.
 @end table
 
 
address@hidden Obsolete Macros
address@hidden Obsolete Macros
address@hidden obsolete macros
address@hidden autoupdate
-
-Although using some of the following macros was required in past
-releases, you should not use any of them in new code.  @emph{All
-these macros will be removed in the next major Automake version};
-if you are still using them, running @command{autoupdate} should
-adjust your @file{configure.ac} automatically (@pxref{autoupdate
-Invocation, , Using @command{autoupdate} to Modernize
address@hidden, autoconf, The Autoconf Manual}).
address@hidden it NOW!}
-
address@hidden @code
-
address@hidden AM_PROG_MKDIR_P
address@hidden AM_PROG_MKDIR_P
address@hidden @code{mkdir -p}, macro check
address@hidden MKDIR_P
address@hidden mkdir_p
-
-From Automake 1.8 to 1.9.6 this macro used to define the output
-variable @code{mkdir_p} to one of @code{mkdir -p}, @code{install-sh
--d}, or @code{mkinstalldirs}.
-
-Nowadays Autoconf provides a similar functionality with
address@hidden (@pxref{Particular Programs, , Particular
-Program Checks, autoconf, The Autoconf Manual}), however this defines
-the output variable @code{MKDIR_P} instead.  In case you are still
-using the @code{AM_PROG_MKDIR_P} macro in your @file{configure.ac},
-or its provided variable @code{$(mkdir_p)} in your @file{Makefile.am},
-you are advised to switch ASAP to the more modern Autoconf-provided
-interface instead; both the macro and the variable @emph{will be
-removed} in the next major Automake release.
-
address@hidden table
-
-
 @node Private Macros
 @subsection Private Macros
 
diff --git a/m4/mkdirp.m4 b/m4/mkdirp.m4
deleted file mode 100644
index 93c12b0..0000000
--- a/m4/mkdirp.m4
+++ /dev/null
@@ -1,31 +0,0 @@
-##                                                          -*- Autoconf -*-
-# Copyright (C) 2003-2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for 'mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl FIXME to be removed in Automake 1.14.
-AC_DIAGNOSE([obsolete],
-[$0: this macro is deprecated, and will soon be removed.
-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.])
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
-  [[\\/$]]* | ?:[[\\/]]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
diff --git a/t/gettext-macros.sh b/t/gettext-macros.sh
index c563a78..cb2b790 100755
--- a/t/gettext-macros.sh
+++ b/t/gettext-macros.sh
@@ -62,10 +62,7 @@ AM_GNU_GETTEXT
 AM_GNU_GETTEXT_VERSION([$autopoint_version])
 END
 
-if $am_gettextize_command --force && test -f m4/gettext.m4; then
-  echo "ACLOCAL_PATH='$(pwd)/m4':\$ACLOCAL_PATH" >> get.sh
-  echo "export ACLOCAL_PATH" >> get.sh
-else
+if ! ($am_gettextize_command --force && test -f m4/gettext.m4); then
   # Older versions of gettext might not have a gettextize program
   # available, but this doesn't mean the user hasn't made the gettext
   # macros available, e.g., by properly setting ACLOCAL_PATH.
@@ -79,12 +76,12 @@ else
   fi
 fi
 
-cat >> get.sh <<'END'
+echo "ACLOCAL_PATH='$(pwd)/m4':\$ACLOCAL_PATH" >> get.sh
+echo "export ACLOCAL_PATH" >> get.sh
+
 # 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
+echo 'AC_DEFUN([AM_PROG_MKDIR_P], [AC_PROG_MKDIR_P(address@hidden)])' >> 
m4/mk-dirp.m4
 
 . ./get.sh
 
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index a76f718..cf2ca86 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -684,7 +684,6 @@ t/missing3.sh \
 t/am-missing-prog.sh \
 t/missing-auxfile-stops-makefiles-creation.sh \
 t/mkdir_p.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
deleted file mode 100755
index 8482dea..0000000
--- a/t/mkdirp-deprecation.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#! /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
-
-:
-- 
1.8.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]