Namazu-devel-ja(旧)


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

sgmt refined!



知人 <http://www.aist-nara.ac.jp/~mitsu-o/> に libsgmt を見
せたところ、「まだまだ gmodule の使い方が甘い。この設計では
新しいモジュールを後から動的に追加することができない」と言わ
れました。

そこで、新しいモジュールを後から動的に追加できるようにしまし
た。モジュールは $(pkglibdir) に置きます。


  % ls /usr/local/lib/sgmt
  libchasen_mod.a    libkakasi_mod.a    libnormal_mod.a    libpipe_mod.a
  libchasen_mod.la*  libkakasi_mod.la*  libnormal_mod.la*  libpipe_mod.la*
  libchasen_mod.so*  libkakasi_mod.so*  libnormal_mod.so*  libpipe_mod.so*

モジュールの呼び出しの際に g_module_build_path を使うように
したので、UNIX/Windows 間の共有ライブラリ名の違いを吸収でき
るはずです。

ついでに、パッケージ名を sgmt に変更しました。

  % cvs -d cvs.namazu.org:/storage/cvsroot co sgmt

から入手できます。

使い方:

libkakasi でわかち書き

  % echo '日本語情報処理 a b c'  | sgmt -m kakasi -s/
  日本語/情報処理/a/b/c

パイプで kakasi を呼び出してわかち書き

  % echo '日本語情報処理 a b c'  | sgmt -m pipe -a "kakasi -w" -s/ 
  日本語/情報処理/a/b/c

モジュール (shared object) の置場所を指定する (srcdirで実行するとき)

  % echo '日本語情報処理' | ./sgmt -d .libs -m kakasi -s/
  日本語/情報処理/a/b/c

存在しないモジュールを指定したとき

  % echo '日本語情報処理 a b c'  | sgmt -m foobar -s/             

  ** ERROR **: /usr/local/lib/sgmt/libfoobar_mod.so: cannot open shared object file: No such file or directory
  aborting...


p.s.
茶筌の autoconf + automake + libtool 化はほぼ終了しました。

-- Satoru Takabayashi