やつ@自宅はFreeBSD です.

In message "[ruby-list:12777] FreeBSD port kit and tcltklib"
    on 99/03/12, Yasuhiro Fukuma <yasuf / big.or.jp> writes:

 |  a. ext/tcltklib 以下を絶対にbuildしない。
 |     いちばん簡単な方法ですが、あんまり嬉しくないですよねぇ…。
 |
 |  b. rubyのbuildにはTkが必要ですよ、ということにしてしまう。
 |     これも、Ruby/Tkに用が無いひとにとっては嬉しくない。
 |     おまけに rubyのbuildにはX11が必要 になってしまうし…(汗
 |
 |  c. 通常は a. の挙動にしておいて、make WITH_TCLTKLIB=yes とかやった
 |     ときだけ b. の挙動にする。あるいは WITHOUT_TCLTKLIB=yes でもいい。
 |
 |  d. lib{tcl,tk} の存在をチェックして a. と b. を自動的に選択する。
 |     portの枠組みにはそういう便利な機能はなさそうなので、自前で処理して
 |     やる必要がある。けっこう面倒くさそう(^^;
 |
 |  e. その他。

1. tcl/tkがインストールされていない状態
     => a. の挙動
2. tcl/tkがインストールされていない状態 or WITH_TCL_TKLIB=no
     => a. の挙動
3. tcl/tkがインストールされている状態 or WITH_TCL_TKLIB=yes
     => ext/tcltklib以下をbuild
   BUILD_DEPENDSとRUN_DEPENDSに tcl-ほげ と ja-tk-ほげ を定義
   (これでbsd.ports.mkにおまかせにできるので,X11まで考える
    必要はないですよね.)

で,defaultでは 2. の状態にしておいて,
make confiugre時に(ghostscriptのportsのように)メッセージを表
示する(もしくは,tcl/tkの選択をできるようにしちゃう)ようにす
ればいいと思います.
ついでに,DESCRにでも書いておけば十分ではないでしょうか?

まあ,今時のユーザはXまでサクッとインストールしちゃうでしょ
うし,わざとXをインストールしないで,console onlyで利用する
人は,自分でportsからmake buildできる人であると仮定しても問
題ないと思います.

 |# Tkに依存するにしても、ports collectionには
 |# tk{{41,42,80,81},{42,80}jp} とやたらたくさんのバージョンがあるので、
 |# どれに依存することにするのかこれまた厄介だったりするわけですが…:(

rubyでtcltklibを使ったことがないのですが,tcltklibはtcl/tkの
どのversionでも動作するのですか? もし,tcl/tkのversionによる
問題がなければ,最新版のtcl/tkに依存しちゃっていいと思います.



世界征服を狙うRubyとしては,
  ruby-{1.2.3,dev}
  ruby-tk80-{1.2.3,dev}
  ja-ruby-{1.2.3,dev}
  ja-ruby-tk80-{1.2.3,dev}
とかpackageで用意しちゃうのもいいかも:-)

-- 
谷津昌樹
yatsu / ele.kimmon.co.jp