[Top][All Lists]

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

AM_PROG_MKDIR_P: too soon to obsolete this macro?

From: Jim Meyering
Subject: AM_PROG_MKDIR_P: too soon to obsolete this macro?
Date: Wed, 12 Sep 2012 18:04:16 +0200

I see that gettext (latest from git) still AC_REQUIRE's
AM_PROG_MKDIR_P from its intl.m4 and po.m4 files, which
are pulled into *many* projects.

When I try to build one of those projects (coreutils) using the latest
from automake.git/master, I see this failure:

    $ aclocal -I m4 warning: AM_PROG_MKDIR_P is m4_require'd but not 
    m4/po.m4:23: AM_PO_SUBDIRS is expanded from...
    m4/gettext.m4:57: AM_GNU_GETTEXT is expanded from... the top level

That is because AM_PROG_MKDIR_P is marked to become obsolete
in the next release of automake.

I would have noticed sooner, but a few months ago, I worked
around this by installing a private fix in the --prefix=/p hierarchy
where I install personal copies of tools like this, then forgot to
report it.  Today I built using the latest automake on a new system
(without that manual patch) and re-diagnosed the problem.

$ cat /p/share/aclocal-1.12a/mkdirp.m4
##                                                          -*- 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.

# serial 2

# ---------------
# Check for 'mkdir -p'.
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" ;;

reply via email to

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