namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: i18n (Re: gettext)
Ryuji Abe <raeva@xxxxxxxxxxxx> wrote:
>少し前のコードを取ってきて、手元でconfigure.inとMakefile.amを修正
>してmakeしたのですが、以下のようにエラーが出ましたので確認をお願い
>します。
デバッグ用の printf ということで、 dprintf という関数を作っ
たのですが、これの名前が衝突しているようですね。
>In file included from cgi.c:34:
>util.h:68: conflicting types for `dprintf'
>/usr/include/stdio.h:159: previous declaration of `dprintf'
とりあえず dprintf -> debug_printf に名前を変えて commit し
ておきました。
>あとconfigureとMakefile.amの変更は先程commitしました。
./configure で既存の libintl.a を検出しても LIBS に -lintl
が設定されないという問題はどうすればいんでしょうね。 LIBS に
-lintl が設定されない割には config.h に
#define ENABLE_NLS 1
#define HAVE_GETTEXT 1
#define HAVE_LC_MESSAGES 1
と設定してくれるので、 make すると undefined reference to
`gettext' ででこけてしまいます。
...
一方、sh-utils-2.0 の configure は次のように賢く設定していま
す。Namazuの configureも同じ挙動にしたいのだけど、どうすれば
いいのだろう。
# 私は configure の挙動をちょっと追いかけてみたけど、途中で
# 嫌になってあきらめました。ここはautoconf/automake の達人、
# 安部さんに望みを託すしかないのでは? という気分です。:-)
1. ./configure
a. /usr/local/lib/libintl.a が存在するとき
- LIBS に -lintl が設定される
LDADD の @INTLLIBS@ は空になる
b. /usr/local/lib/libintl.a が存在しないとき
- LIBS に -lintl は設定されない
LDADD の @INTLLIBS@ が $(top_builddir)/intl/libintl.a
に置き換わる。 make 時には intl/libintl.a が作られる
2. ./configure --with-included-gettext
- LIBS に -lintl は設定されない
LDADD の @INTLLIBS@ が $(top_builddir)/intl/libintl.a
に置き換わる。make 時には intl/libintl.a が作られる
3. ./configure --disable-nls
- LIBS に -lintl は設定されない
LDADD の @INTLLIBS@ は空になる
=> 要するに、 gettext化されない。
p.s.
UNIX MAGAZINE 10月号に Namazu が紹介されているようです。:-)
-- Satoru Takabayashi