From: Hidetoshi NAGAI Date: 2009-07-21T23:27:56+09:00 Subject: [ruby-dev:38838] Re: ext/tk/extconf.rb creates a file in $srcdir 永井@知能.九工大です. From: "U.Nakamura" Subject: [ruby-dev:38836] ext/tk/extconf.rb creates a file in $srcdir Date: Tue, 21 Jul 2009 19:51:26 +0900 Message-ID: <20090721194857.F27D.C613B076@garbagecollect.jp> > ふと気づいたのですが、ext/tk/extconf.rbが$srcdirにconfig_list > を作っていますね。 > $srcdirにはよほどのことがない限り書き込んで欲しくないわけです > が、何か深い理由があるのでしょうか? すみません. tcltklib 関連の configure オプションを変更した場合のためです. tcltklib 関連の configure オプションは Ruby 自体の configure からすると未知の存在であるためか, tcltklib 関連のオプションだけを変更して configure; make とすると tcltklib.o が消去されず (すなわち,作りなおされず) に configure の変更が適切に反映されないことがありました. 先に make clean でもきちんとかけておけばいいのですが, それを忘れると???な状態になったりしたわけです. かといって,毎回作りなおすようにするのは明らかに無駄です. で,どうしようかと考えた挙げ句, 最後に extconf.rb を実行したときの情報を config_list に残しておき, 新たに extconf.rb が実行されたときには config_list に記録した値と現在の値とを比較して, 不一致の場合には tcltklib.o などを消去して 強制的に再コンパイルするというようにしたという状態です. 私にはより良い方法が思い付かなかったというだけのことですので, 「こうすればいいよ」というのがありましたら,ぜひ教えてください. よろしくお願いします. -- 永井 秀利 (nagai@ai.kyutech.ac.jp) 九州工業大学 大学院情報工学研究院 知能情報工学研究系 知能情報メディア部門