永井@知能.九工大です.

From: Yutaka Hara <yutaka.hara / gmail.com>
Subject: [ruby-dev:41883] failed to build ext/tk of ruby-1.9.2-rc2 on Mac OS X
Date: Wed, 28 Jul 2010 11:11:39 +0900
Message-ID: <AANLkTikp=K2DjcpoPH-V5+ARYcg5UTD2fUND_COOA_F0 / mail.gmail.com>
> 手元のMacBookでruby-1.9.2-rc2をコンパイルしようとしたところ、
> ext/tkのところで止まってしまいました。
> 知人のMacBookではコンパイルできるそうなので、僕の環境がおかしいの
> かも知れませんが、相談させてください。
> 
> = 環境
> Mac OS X 10.5.8です。以下のフォルダがあります。
>  /System/Library/Frameworks/Tcl.framework/Versions/8.4/
>  /System/Library/Frameworks/Tk.framework/Versions/8.4/
> 
> これらとは別に、MacPortsで以下のパッケージを入れています。
>  tcl @8.5.8_0 (active)
>  tk @8.5.8_0 (active)
> 
> = make結果
>  % ./configure --enable-shared=true --with-opt-dir=/opt/local
>  % make
> としたところ、以下のようなエラーになりました。
> 
> 実行コマンドを見ると、/SystemのTclと、MacPortsのTkを組み合わせようとして
> エラーになっているようです。
> 
> 両方ともMacPortsのものを使わせたいのですが、configureで何かオプションを
> 追加する必要があるでしょうか。

ごめんなさい.
まだ extconf.rb でのチェックに甘い部分があるのでしょうね.
ext/tk/README.tcltklib を見ていただくと,
利用するヘッダファイルやライブラリを明示するための
configure オプションについての説明がありますので,参考にしてください.

本件の場合は,

% ./configure --enable-shared=true --with-opt-dir=/opt/local --with-tcl-dir=/opt/local --with-tk-dir=/opt/local --disable-tcltk-framework

という指定で大丈夫なのではないかと思います.
# 最後の --disable-tcltk-framework は無くても良い気がします.

それでもダメであれば,お手数ですが make 時に出力されるメッセージの内
(「 make 2>&1 | tee make.log 」とでもして保存してください),
tk 関連の部分を送ってください.
どこを捜してどれを利用することにしたかの情報があるはずですので.

念のための確認ですが,MacPorts で入れた中に tclConfig.sh/tkConfig.sh は
含まれていますよね?
X 版か Aqua 版かを正しく判定して make できるように
(require "tk" 時にも正しく判別できるように),
必要な情報を tclConfig.sh/tkConfig.sh から得るようになりました.
正常に Tcl/Tk がインストールされていれば,
それらのファイルがライブラリと一緒に存在しているはずです.
もしそれらのファイルの内容がインストールされているライブラリの実態と
異なるものであれば,正常に make できない可能性があります.
-- 
永井 秀利  (nagai / ai.kyutech.ac.jp)
九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教