Next: , Previous: , Up: autoconf macros   [Contents][Index]


13.5.1 gettext.m4内のAM_GNU_GETTEXT

AM_GNU_GETTEXTマクロは、Cライブラリーおよびlibintlライブラリー(どちらも共有または静的なライブラリーをサポートしています)に分割されたGNU gettextの関数ファミリー、またはパッケージのintl/ディレクトリーをテストします。このマクロは、ビルド用にパッケージのpo/ディレクトリーを準備するのに、AM_PO_SUBDIRSも呼び出します。

AM_GNU_GETTEXTは、オプションの引数を3つ指定でき、一般的な書式は以下のようになります

AM_GNU_GETTEXT([intlsymbol], [needsymbol], [intldir])

intlsymbolには、‘external’または‘no-libtool’が指定できます。デフォルト(指定されなかったとき、または空のとき)は、‘no-libtool’です。intl/ディレクトリーのないパッケージでは、intlsymbol に ‘external’ を指定する必要があります。intl/ ディレクトリーのあるパッケージでは、intlsymbolに‘no-libtool’を指定することもできるし、‘external’を指定して、他の場所でマクロAM_GNU_GETTEXT_INTL_SUBDIRを使用することにより、それをオーバーライドすることもできます。このintl/の実体を指定する2つの方法は、同じことを行います。どちらもビルド時には、静的なライブラリー$(top_builddir)/intl/libintl.aを作成します。

needsymbolに‘need-ngettext’が指定されると、ngettext()をもたない(libcまたはlibintlの)GNU gettext実装は無視されます。needsymbolに‘need-formatstring-macros’が指定されると、ISO C 99 <inttypes.h>書式文字列マクロをサポートしないGNU gettext実装は無視されます。needsymbolだけを指定することもできます。他の場所でAM_GNU_GETTEXT_NEEDを指定することでも、これらの指定を満たすことはできます。1つ以上指定したときは、もっとも強い指定が使用されるか、AM_GNU_GETTEXT_NEEDマクロを複数回呼び出します。これらの指定は、‘need-formatstring-macros’が‘need-ngettext’を含むような階層になっています。

intldirは、intlを探すのに使用されます。空の場合は、‘$(top_builddir)/intl/’という値が使用されます。

AM_GNU_GETTEXTマクロは、GNU gettextが利用可能で、使用できるかどうかを決定するマクロです。利用できる場合は、変数USE_NLSに‘yes’をセットし、これはautoconfが生成する設定ファイル(通常はconfig.hというファイル)のENABLE_NLSに1を定義し、Makefileで使用される変数LIBINTLLTLIBINTLにリンカーオプションをセットし(LIBINTLはlibtoolなしのときで、LTLIBINTLはlibtoolを使用するとき)、必要なときはCPPFLAGSのオプションに‘-I’を追加し、利用できない場合はUSE_NLSに‘no’をセットし、LIBINTLLTLIBINTLを空にセットして、CPPFLAGSを変更しません。

AM_GNU_GETTEXTが対処する複雑さは、以下のようなものです: