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

[freewnn:00884] manpage installation



小野寛生です。

At Mon, 24 Jun 2002 01:35:21 +0900,
Hiroo Ono wrote:
> これを直して、あとは (まだ手をつけていませんが) man のインストールを言
> 語別にする変更を加えたら、次の snapshot を出したいと思っています。

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

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

makerule.mk.in
           MANDIR = @mandir@/man$(MANSUFFIX)
        LIBMANDIR = @mandir@/man$(LIBMANSUFFIX)

        MANSUFFIX = 1
     LIBMANSUFFIX = 3

   COMPRESSMANCMD = :

Wnn/man/6.jutil/Makefile.in
include @top_srcdir@/makerule.mk
top_builddir = ../../..

INSTALL         = @INSTALL@ $(INSTALLFLAGS)

MANSUFFIX = 1

install.man:: atod.man
        @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \
        else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi
        $(RM) $(DESTDIR)$(MANDIR)/atod.$(MANSUFFIX)*
        $(INSTALL) $(INSTMANFLAGS) atod.man \
 $(DESTDIR)$(MANDIR)/atod.$(MANSUFFIX)
        -$(COMPRESSMANCMD) $(DESTDIR)$(MANDIR)/atod.$(MANSUFFIX)

以下、atof.man, dtoa.man, etc... と同じ定義が続いています。

で、こいつをどう変えようとしているかというと、
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

としようかなと考えています。いかがでしょうか。

迷っているのは、
・ このように、for loop を回してしまうか、copy & paste で各ファイルについて
  ルールを書くか。
  ほかにうまいやり方があれば教えて下さい。
・ 現在の *.man を *.1, *.3, etc... とファイル名を変えてしまいました。
  今のようにインストールの際に変えるよりはよいと思っていますが、どうでしょう。

こういう感じでよいようなら、ほかのディレクトリについても変更していって、
各国語の manpage をインストール出来るようにしたいです。

本当にこんな感じでよいかとか、COMPRESSMANCMD の default どうしようとか
もありますが。
Install 時に変更する場合は、青野さんのおっしゃる通り、当面 configure
してから makerule.mk (または configure する前に makerule.mk.in) を
編集して下さいで済ませましょう。