(2012/11/26 00:42:55 UTC): 0.9.3.3の状況にアップデート
MinGW+MSYS環境でセルフビルドできるようになっています。Cygwinは必要ありません。 但し、git headからビルドする場合は、他のUnixプラットフォームと同様、 動作するGaucheが必要です。
ソースtarballからは、./configure; make; make installでOKです。 ソースのトップディレクトリで src/mingw-dist.sh を実行すれば、 configure, makeして../Gauche-mingw-dist/Gauche 以下にインストール するところまで一気に実行されます。
さらに、../Gauche-gl にGauche-glのソースがある場合、 src/mingw-dist.sh --with-gl とすれば、Gauche-glも一緒にコンパイルします。
なお、MinGW版は--prefixで指定したディレクトリはインストール先として 使われるだけで、バイナリそのものは--prefixとは独立しています (ライブラリのディレクトリ等は、実行時のlibgauche.dllの位置を基準にして探されます)。
実行時に最低限必要なのはmingwm10.dllだけです。MinGW版のlibz-1.dll、 libiconv-2.dll、libcharset-1.dllもあれば、rfc.zlib、gauche.charconv が使えます。mingw-dist.shを使うとこれらのdllも../Gauche-mingw-dist/Gauche 以下にコピーされます。
したがって、mingw-dist.shでできた ../Gauche-mingw-dist/ 以下を zipなどで固めて、適当なディレクトリに展開してパスを通せば使えます。
WiX Toolset ( http://wixtoolset.org/ ) を使ったインストーラを配布しています。 WiX Toolsetにパスが通って居れば、src/mingw-dist.sh --with-installer で winnt/wix の下にmsiファイルが作られます。
インストーラは以下の動作をします。
gosh-noconsole.exeについてはマニュアルの「プラットフォーム依存の機能」を 参照してください。
スレッドも使えるようになりました。pthreadではなくWindowsネイティブスレッドを 利用します。
システム系関数 (sys-*) の多くはPOSIXを前提にしているので、 Windowsでは使えなかったり機能に制限があったりします。可能な限りエミュレートするようには していますが。 関数ごとに、マニュアル中に「Windowsネイティブ環境では…」のように 表記してあるので参照してください。
高レベルファイルシステムライブラリ file.util を使うと、プラットフォームの差異は かなり吸収できるでしょう。
Windows特有のシステム関数については、 os.windowsというモジュールにまとめてゆきます。
必要なら GHG:gc を参考に libxxx.a を作成。ヘッダは MinGW の include に入れること