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

[freewnn:00074] Re: autoconf? automake?



 元木@ITLです。

In article <19990814044816P.nagae@tk.airnet.ne.jp>
    nagae@tk.airnet.ne.jp (Nagae Hidetake) writes:

| 永江です。info は読み終りました。

 ご苦労さまです。

| >  A-1. autoconf 上でのディレクトリ構造とその決定(指定)方法

| インストール先の構造ということですよね?
| 
| 大まかに言って bin と include と lib に分かれているわけですが
| 私がとりあえず考えつくのは以下の点くらいです。
| 
| ・bin から sbin に移すべきものはあるか
| ・辞書は lib とは別に指定できるようにすべきか
|
| >  A-2. 現在の imake から引き継いでいる定数の再定義とその決定
| >      (指定)方法
| >      (WNNOWNER, WNNWNNDIR, WNNBINDIR, WNNINCDIR, WNNLIBDIR 等)
| 
| 指定方法は configure 時のオプションということになるでしょうが
| 言語によって変わってくる部分をどうしましょうか。
| 例えば WNNBINDIR だけ指定させて JWNNBINDIR や KWNNBINDIR は
| 強制的に $(WNNBINDIR)/Wnn4 や $(WNNBINDIR)/kWnn4 と決めちゃって
| 良いものでしょうか。
| あるいは、--bindir=/usr/local/bin/%L とかすると
| %L が言語によって変わるとか。
| 
| # わかりにくいか。

# 多分穴ばっかりです。つっこみよろしくお願いします。

 インストールする要素としては大雑把に以下のような分類になる
 と思います。
 
 さて、ディレクトリを、どのレベルまで分割するかの話ですが、
 元木的インストールディレクトリとしては素直な方法では、

 bindir         辞書ツール                      ($(prefix)/bin)
 sbindir        サーバ、サーバツール            ($(prefix)/sbin)
 libdir         libwnn, バイナリーデータ        ($(prefix)/lib)
 includedir     インクルードファイル            ($(prefix)/include)
 datadir        テキストデータ                  ($(prefix)/share)

 なのかなと思うのですが、さすがにこれでやると libdir,
 datadir 以下がすごいことになるので、

 wnn_bindir     (j)Wnn辞書ツール                ($(prefix)/bin)
 cwnn_bindir    cWnn辞書ツール                  ($(prefix)/bin)
 twnn_bindir    tWnn辞書ツール                  ($(prefix)/bin)
 kwnn_bindir    kWnn辞書ツール                  ($(prefix)/bin)
 wnn_sbindir    (j)Wnnサーバ、サーバツール      ($(prefix)/sbin)
 cwnn_sbindir   cWnnサーバ、サーバツール        ($(prefix)/sbin)
 twnn_sbindir   tWnnサーバ、サーバツール        ($(prefix)/sbin)
 kwnn_sbindir   kWnnサーバ、サーバツール        ($(prefix)/sbin)
 libdir         libwnn                          ($(prefix)/lib)
 wnn_libdir     バイナリーデータ                ($(prefix)/lib/wnn)
 wnn_dicdir     辞書                            ($(prefix)/lib/wnn/dic)
 wnn_userdicdir ユーザ辞書                      ($(prefix)/lib/wnn/dic/usr)
 wnn_includedir インクルードファイル            ($(prefix)/include/wnn)
 wnn_datadir    テキストデータ                  ($(prefix)/share/wnn)

 あたりが妥当ではないのかと思います。

 これなら、従来のディレクトリ構成も以下のように表現できます
 し、とりあえず これを デフォルトとして採用しておけば Wnn4.2 
 からの移行もしやすいのではないかと思います。

# 作る方地獄ってのは置いといて。

 wnn_bindir     (j)Wnn辞書ツール                ($(prefix)/bin/Wnn4)
 cwnn_bindir    cWnn辞書ツール                  ($(prefix)/bin/cWnn4)
 twnn_bindir    tWnn辞書ツール                  ($(prefix)/bin/cWnn4)
 kwnn_bindir    kWnn辞書ツール                  ($(prefix)/bin/kWnn4)
 wnn_sbindir    (j)Wnnサーバ、サーバツール      ($(prefix)/bin/Wnn4)
 cwnn_sbindir   cWnnサーバ、サーバツール        ($(prefix)/bin/cWnn4)
 twnn_sbindir   tWnnサーバ、サーバツール        ($(prefix)/bin/cWnn4)
 kwnn_sbindir   kWnnサーバ、サーバツール        ($(prefix)/bin/kWnn4)
 libdir         libwnn                          ($(prefix)/lib)
 wnn_libdir     バイナリーデータ                ($(prefix)/lib/wnn)
 wnn_dicdir     辞書                            ($(prefix)/lib/wnn/dic)
 wnn_userdicdir ユーザ辞書                      ($(prefix)/lib/wnn/dic/usr)
 wnn_includedir インクルードファイル            ($(prefix)/include/wnn)
 wnn_datadir    テキストデータ                  ($(prefix)/lib/wnn)

# 指定するのが面倒だなぁ。--enable-oldstyle とか 
# --enable-newstyle だろうか :-)

--------------------------
 o プログラム

  (j)Wnn用辞書ツール
  (j)Wnn用サーバツール  
  (j)Wnn用サーバ

  cWnn用辞書ツール    
  cWnn用サーバツール
  cWnn用サーバ
 
  tWnn用サーバ
 
  kWnn用辞書ツール
  kWnn用サーバツール
  kWnn用サーバ

 o ライブラリ

  インクルードファイル
  libwnn

 o テキストデータ

  - 共通

   Wnnライブラリのサーバとの接続環境設定ファイル(serverdefs)
   uum用キーコード変換表ファイル(cvt_key_tbl*)

  - 各言語毎

   かな漢字変換環境初期化ファイル(wnnenvrc*)
   uumの立上りの設定ファイル(uumrc*)
   uumキーバインド定義ファイル(uumkey*)
   uumメッセージ定義ファイル(uum.msg)
   モード定義表(rk*/*)
   wnnstatメッセージ定義ファイル(wnnstat.msg)
   libwnnメッセージ定義ファイル(libwnn.msg)
   品詞定義ファイル(hinsi.dat/cixing.data) 
   サーバの初期化ファイル

 o バイナリーデータ

  辞書
--------------------------

| >  A-4. cWnn や kWnn などの Wnn/ 以下のソースファイルを読み込
| >       みビルドするような場合の方針を決定。

| とりあえずの選択肢としては以下のような感じですか?
| 
| ・symbolic link で Wnn/ 以下のソースを参照する(現状)
| ・$(CC) -c directory/file.c のように
|   コンパイラに Wnn/ 以下を直接参照させる

 なるべく(可能ならば)、$(CC) -c directory/file.c の方がいい
 と思います。

 symbolic link なんぞにしてしまうと別ディレクトリでのビルド
 をしているときにマスターディレクトリに symbolic link しなけ
 ればならないので、ちと美しくないと思います。

| 個人的には libtool を使った
| libwnn の shared library 化も魅力的です。
| A-4 あたりが確定すれば、割と簡単にできそうですね。

 きっと libwnn が shared library にならないかと思っている人
 は、全国に100万人ぐらいいるはずです。:-)

sin.