初めてのMono(Win32編)

WindowsでMonoを始めようとするとつまずくのがMonoのビルドだと思いますので、ちょっと手順を纏めてみました。

1. .NET 1.1をインストール

2. Gtk# win32 をダウンロード&インストール
入手はここから。以降、デフォルトのC:\Program Files\Common Files\GTK\2.4にインストールされていることを前提に進めます。

3. cygwinのインストール
ここからsetup.exeをダウンロードして実行。インストーラーが起動したら、パッケージの選択まで進めデフォルトの設定に加えて、以下のパッケージを選択します。

cygwinのセットアップを続け、インストールを完了させます。また、デスクトップにショートカットを作っておくと便利です。

4. .bashrcの編集
cygwinプロンプトを開き、.bashrcを編集します。エディタが入っていない場合はメモ帳で開く。
.bashrcに以下の内容を追加。

export PKG_CONFIG_PATH=/cygdrive/c/Program\ Files/Common\ Files/GTK/2.4/lib/pkgconfig
export PATH=$PATH:/cygdrive/c/Program\ Files/Common\ Files/GTK/2.4/bin
export PATH=$PATH:/cygdrive/c/WINDOWS/Microsoft.NET/Framework/v1.1.4322
# resgen.exeへのパスも通す。VS.NETの場合はここ。
export PATH=$PATH:/cygdrive/c/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/SDK/v1.1/bin

最後のパスはVS.NETの場合なので、.NET SDKは異なる場所にresgen.exeがあると思います。.bashrcを編集し終えたら、cygwinプロンプトを開き直します。(sourceでも良いけど)

5. SVNからmono及びmcsのソースを入手

$ svn co svn://svn.myrealbox.com/source/trunk/mono
$ svn co svn://svn.myrealbox.com/source/trunk/mcs

このコマンドでmono,mcsディレクトリが作成され、ソースがチェックアウトされます。

6. Monoのビルド
monoディレクトリへ移動し、

$ ./autogen.sh

を実行。成功したら、mcs/build/library.makeを編集します。

128-130行目付近の

ifndef RUNTIME_HAS_CONSISTENT_GACDIR
gacdir_flag = /gacdir $(GACDIR)
endif

を、

#ifndef RUNTIME_HAS_CONSISTENT_GACDIR
gacdir_flag = /gacdir $(GACDIR)
#endif

としないと、何故かmake installでこけるんですよね〜(^^;

で、makeして、

$ make

インストールで完了。

$ make install

もし、C#2.0の機能を使いたい場合は、monoディレクトリへ移動して、

$ ./configure --with-preview=yes

こいつを流してから、make & installすればOKです。