Kawai Shiro
pract****@yahoo*****
2004年 7月 4日 (日) 16:30:46 JST
--- shelarcy <shela****@capel*****> からのメッセージ: > > ただ、出力系がだめとなると、portの実装部分で変更を迫られる可能性 > > があります。前述のように、Gaucheはファイルディスクリプタを用いる > > unixの低レベルI/Oの上に自前でbuffered IOを実装してるんで、 > > fdをHANDLEに変えるだけで動くというのは楽観的すぎるかもしれません。 > > > > ここまでの印象なんですが、小手先の変更ではなく、かなり根本的な > > 対策が必要なようですね。 > > 大改修になりそうですか。 見てみないとなんともわかりません。 > automake を使わない関係で直接弄っていた gauche/config.h や make で生成 > されるはずの gauche/arch.h はどうしましょうか? > 後者ははじめにあるファイルを削除してという方法が使えると思いますが……。 ;; Gaucheはautomakeは使わず、autoconfのみを使っています。両者は一緒に ;; 語られることも多いですが、別物です。 MinGWってcygwinほどではないにせよ、多分make時にシェルコマンドが使えると 思うんですが、どうでしょう? そしたらconfigureくらいは走らないかなあ。 最悪でもmake時にarch.hを生成するくらいはできそうですが… configuration情報が複数のファイルに分散するとメンテが大変なので、MinGWだけ 別ファイルを使うといったことはなるべく避けたいです。 まあ、こちらでもMinGWを調べてみますんで、とりあえず現状あるファイルで patch作ってもらって大丈夫だと思います。 > あと、syslib.c というか syslib.stub ってどうしましょうか? > これも ./configure を使わないなということで直接弄っていたのですが、 > WIN32_NATIVE で ifndef 出来る方法があれば知っておきたいと思います。 > stub の定義を消してやるのしかできませんか? まず、文字列で埋め込んであるCコードはそのまま.cファイルに出力されるので、 その中で #ifdefを使うことは通常のCと全く同じようにできます。 (そのような例が既にsyslib.stub中にもあると思います)。 ただ、stubの定義そのものを無かったことにすることできませんので、 その場合は (if "!defined(WIN32_NATIVE)" (define-cproc ...)) のようにします。 -- shiro __________________________________________________ Do You Yahoo!? http://bb.yahoo.co.jp/