skf README
----------

1. skf とはなんでしょうか
   skf は国際化された漢字フィルタです。特に、様々な言語のテキスト (特にフ
   ォーマッテッドテキスト) を漢字または Unicode 表示可能なディスプレイで読
   むことを想定して作成されています。他の漢字フィルタ同様、JIS/EUC/UTF-8/
   Shift-JIS 等の日本語漢字コード変換機能は持っていますが、それだけではな
   く韓国語や主要な中国語伝統字/簡体字の変換も可能です。
   nkf とはことなり、変換外の機能は最小限しか提供していませんが、ISO-8859
   や各国の標準コードセット、ベンダコードセット等を扱うことが可能で、追加
   も困難なく行えるようになっています。
   
   skf は glibc の漢字サポートや、iconv などの OS の m17n サポート機能に依
   存しません。中に必要な機能をすべて内蔵しています。
   
2. skf のインストール
  常に以下の最新の skf パッケージを http://osdn.jp/projects/skf から取得し
  て使ってください。
  
  skf は標準的なファイル I/O のみを用いており、configure スクリプトも提供
  しているので、ロカール関係の機能の設定以外についてはあまり迷わないでしょ
  う。以下は現在サポートされている configure オプションです。skf-1.96 以降
  では、コンパイル時に perl が必要です。実行時には必要ありません。

  --enable[disable]-getenv
	gettext フレームワークを用いて、ユーザ設定を環境変数から読み取る機
	能を有効化する/無効化する。man ページ参照。既定は有効で、gettext 
	が使えない環境下では無効化される。

  --enable[disable]-oldnec
	昔の NEC の PC 漢字シフトシーケンス (即 ESC-K, H) を有効化する/無
	効化する。既定値は有効である。

  --enable[disable]-debug
	デバッグ機能を有効化する/無効化する。既定値は無効である。デバッグ
	情報を集めるには、-% オプションを用いる。man ページ参照。

  --enable[disable]-dynamic
	コードテーブルの外部ファイルからの読み込みを有効化する/無効化する。
	既定は有効である。無効にするとコードテーブルをバイナリ中に取り込む
	のでバイナリサイズが大きくなることに注意。

  --enable[disable]-nls
	メッセージをロカールに従って国際化する機能をを有効化する/無効化す
	る。既定は有効であるが、gettext ベースの NLS サポートがない環境で
	は無効化される。現在の skf には英語と日本語のメッセージのみ添付さ
	れている。

  標準の autoconf オプション、例えば --prefix や --exec-prefix も動作します。
  上記の通り、skf は国際化機能を GNU gettext フレームワークで実装しているが
  gettext は国際化メッセージにのみ関係する。skf は X11 の catget 機能はサポ
  ートしていない。また、システムロカールも漢字変換の際には明示的に指示され
  ないかぎり使用しない。

2.1 Linux, M*cOS X 及び Un*x-系のシステム
   比較的最近の un*x 系システムを用いている場合は、単に ./configure 及び
   make としてください。以下の環境は 2.1 でテストされています。
   
   Debian 8.0(jessie)/7.0(wheezy) amd64/ppc/armhf
   NetBSD 6.5.1
   MacOS X 10.10/10.11
   
   それ以外の Un*x 系の環境で動かない場合は報告ください。またはロカール機
   能を切る (--disable-nls)、Makefile 中の CFLAG を編集するなども有効かと
   思います。
   
2.1.1  RPM パッケージの作成
   "make srpm" で rpm/SRPMS に RPM ソースパッケージと make rpms を実行する
   のに必要なファイルが用意されるので、make rpms を実行してください。但し、
   これにより ${HOME}/.rpmmacro を勝手に上書きするので注意のこと。
   実行後には rpm/RPMS/${arch} に RPM パッケージが作成されます。

2.1.2. DEB パッケージの作成
   Debian パッケージ作成は比較的よくテストされており、動くはずです。但し、
   debhelper パッケージは必要です。単に dpkg-buildpackage を起動するだけで
   ひとつ上の階層にパッケージが作成されます。

2.2 Wind*ws
   cygwin 環境はよくテストされています。最新の cygwin 環境と、gettext 及び
  gettext-dev パッケージを準備してください。後は通常の Un*x と同様にコンパ
  イル、インストールすれば動くはずです。
   2.1 以降では、msys 環境もテストされ、動くはずです。
   他の環境では、テストされていません。特に MS-DOS 環境で動かすことは想定
  していません。Makefile.in の説明を参照ください。
  
  これ以外の特殊な設定の変更は config.h.in に集中してあります。また、共通設
  定は Makefile.in にだいたいあるので、必要な場合は見てください。

2.3. コンパイルとインストール
  un*x 系のシステムでは、make install でバイナリと英文 man ページを、
  make locale_install で国際化機能に関するファイル (翻訳済 メッセージ/man
  ページ) をインストールします。Msys/Cygwin も同様です。

3. SKF プラグインの作成
   前提条件: SWIG, および対象 LWL の開発用パッケージ。
  perl 機能拡張の場合、"make perlext" および "make perlext_install" として
  ください。ruby の場合は、s/perl/ruby/ です。これによりシステムの major/
  minor 番号が最大の ruby に関してプラグインを作成します。
   作成されるプラグイン名は skf.so です。関数名は perl 以外では skf で、
  perl では skfc になります。

Happy Hacking!

Seiji Kaneko <efialtes@osdn.jp>, 28 Sep 2015 23:55 +0900

