[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00885] Re: manpage installation



青野です。こんばんは。

<86r8hljcml.wl@XXXX>の記事において
hiroo@XXXXさんは書きました。

>> やっぱりいつになるかわかんないので、現状で私の手元でインストールして 
>> (日本語の変換が) ちゃんと動いたら snapshot (-a20) を公開するつもりです。
>> 今週駄目だと 8月10日頃になってしまうかもしれません。

あまり変更されたところがないかもしれないですが、よろしくお願いします。
#Tag付けしませんか(と性懲りもなく言ってみる)。

>> それから、manpage のインストールからみで、ご意見を聞かせてください。
>> 現状、manpage は install.man target で
>>   $mandir/man1 または $mandir/man3
>> という path にインストールされます。
>> これの最大の問題は、言語の区別がないので日本語、英語といった各言語の 
>> man が install できないことです。

(中略)
>> Wnn/man/6.jutil/Makefile.in
>> include @top_srcdir@/makerule.mk
>> top_builddir = ../../..

話が違うのですが、このincludeで使っている「@top_srcdir@」
はsrcdir以外で構築する時に妨げになるので(時期未定ですが、
反対意見がなければ来週以降に)、top_builddir(をハードコード
したもの・ここでは「../../..」)に変えさせていただきたいの
でご意見ください。
#残念ながらここを変えただけでは、まだsrcdir以外での構築は
#できません…。

ちらっとautoconf-2.53のinfoを見ると、このバージョンでは
@top_builddir@での置換ができるらしいので2.13捨ててもいいか
なという気持ちに少し傾きました(^^;

>> で、こいつをどう変えようとしているかというと、
>> MANDIR は default /usr/local/man で
>> 英語の manpage は /usr/local/man/man[1358] にいれて、
>> 日本語の manpage は /usr/local/man/ja/man[1358] にいれる
>> MAN_SUBDIR_JA をいじると、ja のところを ja_JP とか ja_JP.eucJP とか変えられる。
>> なお、1: (ユーザーが使う) command、3: library function、5: (config.) file…
>> といったつもりです。

基本線としてはそれでよいと思いますが、この辺りのセクション
分けは大体同じものなのでしょうか > 識者の方々。

>> その為に makerule.mk.in を
>>            MANDIR = @mandir@
>>       MAN_LANGDIR = $(DESTDIR)/$(MANDIR)$(MAN_LANG_SUBDIR)
>>     MAN_SUBDIR_JA = /@man_subdir_ja@
>>     MAN_SUBDIR_EN = /@man_subdir_en@
>>             SECT1 = man1
>>             SECT3 = man3
>>             SECT5 = man5
>>             SECT8 = man8
>> 
>>    COMPRESSMANCMD = :
>> 
>> で、書く manpage (現在は *.man) をおいたディレクトリの Makefile.in は
>> 
>> include @top_srcdir@/makerule.mk
>> top_builddir = ../../..
>> 
>> INSTALL         = @INSTALL@ $(INSTALLFLAGS)
>> MAN_LANG_SUBDIR = $(MAN_SUBDIR_JA)
>> MANINSTALLDIR   = $(MAN_LANGDIR)/$(SECT1)
>> MANFILES        = atod.1 atof.1 dtoa.1 wddel.1 wdreg.1 wnntouch.1 oldtonew.1
>> 
>> Wnn/man/6.jutil/Makefile.in を
>> install.man:: $(MANFILES)
>>         @if [ ! -d $(MANINSTALLDIR) ]; then $(MKDIRHIER) $(MANINSTALLDIR)
>>         for f in $(MANFILES); do \
>>            $(RM) $(MANINSTALLDIR)/$$f; \
>>            $(INSTALL) $(INSTMANFLAGS) $$f $(MANINSTALLDIR); \
>>            $(COMPRESSMANCMD) $(MANINSTALLDIR)/$$f; \
>>         done
>> 
>> としようかなと考えています。いかがでしょうか。

とりあえず何か形ができるというのがよいと思うので基本線とし
てはよろしいのではないでしょうか。
#国際化manというのはよくありそうなのですが、前例ってない
#ものですかね…

configureで指定できたほうがいいので、ちょっと考えてみまし
た。

例えば--with-mandir-ja (--enable-mandir-jaでもいいです)と
したときはconfigure中で

install-man-target = "install-man-ja $install-man-target"

というAC_SUBSTすべき変数を定義して、

manがあるディレクトリのMakefileでは

install.man: @install-man-target@

という行と実際に日本語マニュアルをインストールする
install-man-ja ターゲットを作るというものでした。

--without-mandir-ja とした時にはinstall-man-targetを設定し
ないようにすればMakefile.inをいじる箇所が少なくなる、と見
込んでいるのですが…。

今後中国語・韓国語マニュアルができた場合でも同じ要領で
configureオプションを追加すれば制御ができる(かも)というの
がセールスポイントです。
#このオプションでディレクトリとかも指定できれば、と思って
#「mandir」にしました。--mandir-jaとかの方がきれいですが、
#マクロを書かないといけなさそうなので躊躇しています。

>> 迷っているのは、
>> ・ このように、for loop を回してしまうか、copy & paste で各ファイルについて
>>   ルールを書くか。

for loopの方がよいと思います。今のMakefile.inはimakeの出力
を元にしているので冗長なところが多いと思っていました。今後
もMakefile.inを手作業でメンテするのなら、ほかの部分もまと
められそうなところはまとめた方がすっきりすると思います。

>> ・ 現在の *.man を *.1, *.3, etc... とファイル名を変えてしまいました。
>>   今のようにインストールの際に変えるよりはよいと思っていますが、どうでしょう。

こちらはCVSの性格上ファイル名を変えると履歴が引き継げない
のが気になるところです。

>> 本当にこんな感じでよいかとか、COMPRESSMANCMD の default どうしようとか
>> もありますが。

makerule.mkを手動で書き直してください、ですむかもしれませ
んが、自動でやらせるのなら(例えば)/usr/man/man1/ls.1 に.Z,
.gz (, .bz2 ?)  が付いているか調べさせるとかでしょうか。
manpathがどこにあるかというのも考えなければならないのがちょっ
と…。configure 時にCOMPRESSMANCMD環境変数(かconfigureオプ
ション) をチェックして置き換える手もあります。
----
青野智樹	(aono@XXXX)
Personal opinion only..