Previous: AM_XGETTEXT_OPTION, Up: autoconf macros [Contents][Index]
AM_ICONVマクロは、Cライブラリー(またはiconvライブラリーに分離された)POSIX/XSI
iconv関数が提供されているかテストするマクロです。もし見つかったときはam_cv_func_iconv変数に‘yes’をセットし、autoconfが生成する設定ファイル(通常はconfig.hというファイル)のHAVE_ICONVに1を定義し、iconv()の2番目の引数の型が‘const
char **’または‘char
**’で定義さされているかにより、ICONV_CONSTに‘const’または空を定義し、Makefileの中で使用されるリンカーオプションの変数LIBICONVおよびLTLIBICONVをセット(LIBICONVはlibtoolなしのとき、LTLIBICONVはlibtoolありのとき)、必要ならCPPFLAGSのオプションに‘-I’を追加します。見つからなかったときは、LIBICONVおよびLTLIBICONVに空をセットして、CPPFLAGSを変更しません。
AM_ICONVが対処する複雑さは、以下のようなものです:
iconvのあるオペレーティングシステムとしては、たとえばglibcがあり、ライブラリーlibiconvに分割されているシステムには、たとえばOSF/1、FreeBSDがあります。種類の如何にかかわらず、GNU
libiconvがインストールされたオペレーティングシステムの場合、オペレーティングシステムのネイティブのiconvのかわりに使用されます。
libiconvがインストールされていて、検索パス(インクルードファイルの検索パス
CPPFLAGS、ライブラリーの検索パスLDFLAGS)にあるが、必要ない場合。
libiconvは、いくつかのオペレーティングシステムのネイティブのiconvにたいしてバイナリーの非互換があります(例:
FreeBSD)。適合していないiconv.hおよびlibiconv.soの使用は、プログラムのクラッシュを招きます。
libiconvがインストールされていて、実行時ライブラリーの検索パスにあるが、必要ない場合。LD_LIBRARY_PATHのような環境変数による設定を無視するために、このマクロは適切なランタイムのサーチパスオプションを、変数LIBICONVに追加します。これはほとんどシステムで動作しますが、SCOのように共有ライブラリーに制限のあるいくつかのオペレーティングシステムではうまく動作しません。
gettext.m4が依存しているので、iconv.m4はGNU gettextの一部として配布されます。