Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gettext/autoconf/automake/libtool バージョン
反応が遅くなってしまいましたが、
On Tue, 14 Oct 2003 19:09:12 +0900
knok@xxxxxxxxxxxxx wrote:
> 警告をいくつか発しながらも動作するようにはなったのですが、やはりそろ
> そろ新しいツール群を標準にした方がいいのかなあ、と感じました。
>
> しかしながら一般的に利用されているバージョンがいまいちよくわからない
> のですが、どのあたりを標準にするのが良いでしょうか。このツール類はバー
> ジョン毎に微妙に互換性があったりなかったりするようで、なかなか落としど
> ころが難しいです...
autoconfはもう2.13はステでもいいんじゃないですかね。
automakeは1.6以降のリリースにAPI versionという概念が入って、
1.4系(というか1.4-p6)、1.6系、1.7系が共存可能になっているの
で無理にversionを引き上げなくてもいいと思います。その代わり、
サポートするAPI versionはどれか一つに絞るべきでしょう。
libtoolは1.5はまだよく見ていません。(汗
gettextはちょっと話が長くなるな...
例えば非互換に関しては、これも0.11.5以前しか見ていませんが、
* gettextizeの--intlオプションが0.11以降入っていて、これを
付けないとlibintlがコピーされない。一方、0.10.40以前で
--intlを指定するとエラーになる。
* 0.10.36以降のgettextizeはpo/ChangeLogを書き換える(個人的
にはあまり好きな挙動ではない)。しかも、0.11以降ではさら
に書き換えられるファイルが増えた。
* 0.11.3以降ではautopointというスクリプトが入ってgettextize
はobsoleteになった。これはCVSレポジトリが収められたtarball
を展開し、configure.{ac,in}のAM_GNU_GETTEXT_VERSIONマクロ
を見て、該当するバージョンのlibintlをcheck outするという
もの。古いバージョンのlibintl(0.10.35まで)も取り出せるが、
AM_GNU_GETTEXT_VERSIONマクロは0.11以降にしか用意されてない。
という具合です(他にもなんかあったかも)。
で、他のプロジェクトでは非互換にどう対処しているのか、いくつか
調べてみると、
* GNOME2 - GLib2にglib-gettextという0.10.35の頃のgettextize
の独自修正版が入っていて、それを使えというお約束
になっている。
* gaim - GNOME2にportされているがglib-gettextは使用せず、
代わりにsetup-gettextというwrapper scriptを使用。
Qtopia版があるせいか?
* GnuPG - GNU gettext 0.10.40のlibintlをまるごとcvs addして、
gettextizeは使っていない。
となっていました。
ここで、もう一つNamazu固有の事情として、
* libnmzのリンク時にlibintlが必要になるので、GNU gettextは
あらかじめインストールすべきである。
* しかしながら、SolarisではSun版のgettextを使いたくないので
configureに--with-included-gettextをつけて同梱のlibintlを
使うようにしなければならない。
を挙げなければなりません。ただ、考えてみたら後者の場合でも
--with-libintl-prefixのようなconfigureオプションがあれば、
libintlを同梱する必要はなくなりますね(実際に0.11の時点でm4
マクロが修正されて、--with-libintl-prefixが使えるようになっ
ています)。ならば、libintlをコピーする必要性も最早ないので、
gettextizeの使用そのものをやめてもいいんじゃないかなという
気がしますが、どうでしょうか? そうすれば非互換で悩むことも
ないですし。
A A
= . . =
V
end
Ryuji Abe