Next: , Previous: Changed Quotation, Up: Autoconf 2.13


15.6.2 新しいマクロ

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
     $