Autoconfは何年も休止中だったので,その間AutomakeがAutoconfのようなマクロ
を提供していました.現在は,Autoconf 2.50がこれらのマクロのより良いバー
ジョンを提供していて,AM_ではなくAC_の名前空間で統合されて
います.しかし,autoupdateで容易に更新できるように,そのような
AM_マクロも結合されて提供されています.
残念ながら,Automakeはこれらのマクロ名を引用符で囲んでいませんでした.そ
のため,m4が`AC_DEFUN(AM_TYPE_PTRDIFF_T, ...)'のよう
なマクロをaclocal.m4で見つけたとき,AM_TYPE_PTRDIFF_Tは展
開され,そのAutoconfの定義で置換されていました.
幸い,Autoconfは前置されるAC_INITの展開を受けて,それが所有する単
語で文句をいいます.
$ 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
$
将来のAutomakeのバージョンは,単純にこれらのマクロをこれ以上定義せず,お そらく残りのマクロ名を引用符で囲むでしょう.しかし,全てがうまくいくまで じっと待っている必要はありません.(単独で要求されるものもありますが)マク ロを提供するための仕事は単純ではないので,Automakeのマクロに依存しないで ください.
$ 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
$