Node:New Macros, Next:Hosts and Cross-Compilation, Previous:Changed Quotation, Up:Autoconf 2.13
Because Autoconf has been dormant for years, Automake provided
Autoconf-like macros for a while. Autoconf 2.50 now provides better
versions of these macros, integrated in the AC_
namespace,
instead of AM_
. But in order to ease the upgrading via
autoupdate
, bindings to such AM_
macros are provided.
Unfortunately Automake did not quote the name of these macros!
Therefore, when m4
finds something like
AC_DEFUN(AM_TYPE_PTRDIFF_T, ...)
in aclocal.m4
,
AM_TYPE_PTRDIFF_T
is
expanded, replaced with its Autoconf definition.
Fortunately Autoconf catches pre-AC_INIT
expansions, and will
complain, in its own words:
$ cat configure.in AC_INIT AM_TYPE_PTRDIFF_T $ aclocal-1.4 $ autoconf ./aclocal.m4:17: error: m4_defn: undefined macro: _m4_divert_diversion actypes.m4:289: AM_TYPE_PTRDIFF_T is expanded from... ./aclocal.m4:17: the top level $
Future versions of Automake will simply no longer define most of these
macros, and will properly quote the names of the remaining macros.
But you don't have to wait for it to happen to do the right thing right
now: do not depend upon macros from Automake as it is simply not its job
to provide macros (but the one it requires by itself):
$ cat configure.in AC_INIT AM_TYPE_PTRDIFF_T $ rm aclocal.m4 $ autoupdate autoupdate: `configure.in' is updated $ cat configure.in AC_INIT AC_CHECK_TYPES([ptrdiff_t]) $ aclocal-1.4 $ autoconf $