« Rb 5.5 Mach-O プラグイン | メイン | PearPC »

MinGW for Mac OS X

 前回 Mach-O で REALbasic 5.5 のプラグインを作れそうと分かった時に、開発を全て Mac で済ます事ができると楽だなぁ、ということで MinGW for Mac OS X を作ってみる事に。

 Rb 5.5 持ってないならそんなことやっても意味ないんじゃないの?

と思われそうだけれど Rb 4.0 用のプラグインは Windows の DLL さえ特定のフォルダに放り込んであれば、Plugin SDK の DLLtoResource を使わずに MPW でスクリプトを流して最後まで完成できるようにしてある。
 だから Windows 版の作成を Terminal スクリプトで作らせて特定のフォルダに放り込むようにしておけば、そのまま MPW のスクリプトを流して完成できるのだ!

binutils の作成
http://ftp.gnu.org/gnu/binutils/

から binutils-2.14.tar.gz をダウンロードして解凍。

% cd ~/binutils-2.14
% mkdir build
% cd build
% ../configure --target=i686-pc-mingw32 --prefix=/usr/local/mingw
% make
% sudo make install

※Windows ソフトを作る時にデフォルトで PentiumPro 未満にも対応させたい場合は i686 を i386 とか i586 とかにする。
※/usr/local/mingw はインストールしたいディレクトリを設定。


gcc の作成
MinGW - Download

から mingw-runtime-3.3.tar.gz と w32api-2.5.tar.gz をダウンロードして解凍。
mingw-runtime-3.3/include, mingw-runtime-3.3/lib, w32api-2.5/include, w32api-2.5/lib を /usr/local/mingw にコピー。

% sudo cp -r ~/mingw-runtime-3.3/include /usr/local/mingw
% sudo cp -r ~/mingw-runtime-3.3/lib /usr/local/mingw
% sudo cp -r ~/w32api-2.5/ /usr/local/mingw

どこから手に入れたか忘れたけど

http://ftp.gnu.org/gnu/gcc/

みたいなところから gcc-3.3.3.tar.gz をダウンロードして解凍。
 そのままビルドすると i686-pc-mingw32-ar が無いと怒られたので /usr/local/mingw/bin にパスを通してからビルドした。
 あと、basic_file.cc が ioctl が無い、と怒り出すので排除。俺はこれで解決しちゃったけど basic_file.cc はビルド中に作られるファイルだから元のファイルは恐らく gcc-3.3.3/libstdc++-v3/config/io/basic_file_stdio.cc。include が一通り終わった辺りに

#ifdef FIONREAD
#undef FIONREAD
#endif

を追記。

% setenv PATH "/usr/local/mingw/bin:${PATH}"
% cd ~/gcc-3.3.3
% mkdir build
% cd build
% sudo ../configure --with-gcc --with-gnu-ld --with-gnu-as --target=i686-pc-mingw32 --prefix=/usr/local/mingw --with-headers=/usr/local/mingw/include/ --with-libs=/usr/local/mingw/lib/ --enable-threads --disable-nls --enable-languages=c++,objc --disable-win32-registry --disable-shared --enable-sjlj-exceptions
% sudo make
% sudo make install


稼働テスト
#include <iostream>
int main( int argc, char ** argv )
{
    std::out << "Hello World!!" << std::endl;
    return 0;
}

ってな test.cpp を作って

% setenv PATH "/usr/local/mingw/i686-pc-mingw32/bin:${PATH}"
% g++ test.cpp -o test.exe

でコンパイル。作成された test.exe を Windows に持っていってコマンドプロンプトから

C:\> test.exe
Hello World!!

C:\>

 出来た!!

配布
 とってもうちの環境に依存してそうな気もするけど、一応配布してみる。

MinGW For Mac ( 48 MB )

 インストーラ作るの面倒くさいから誰かパッケージ作ってくれるとうれしいけど、マウントしたら

% sudo cp -r "/Volumes/MinGW_For_Mac/mingw" /usr/local

ってやってみて、上の稼働テストが成功するかやってみて。動作報告求ム!


---------- 1:30AM 追記
MinGW on Linux
なんていうページが_| ̄|○
丸一日頑張ったのに……これ見てればもっと早く作れたんじゃぁ…

トラックバック

このエントリーのトラックバックURL:
http://yoffy.dyndns.org/cgi-bin/mt/mt-tb.cgi/88

コメント (2)

hight:

まあ、これに限らず先人の知恵はありがたいものですな。
俺もこのあいだサーバー立てたときにこういうページなりを
上げていてくれる人は本当に感謝ですよ。
きっとよっふぃー君のこれも先人の知恵として使われる事でしょう。

よっふぃ〜:

全くです。
サーバを立ち上げるときには各種解説・レポートサイトが無いと難しくて仕方ありません。

コメントを投稿

About

2004年05月11日 09:47に投稿されたエントリーのページです。

ひとつ前の投稿は「Rb 5.5 Mach-O プラグイン」です。

次の投稿は「PearPC」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.37