んで、いろいろ universal binary を作ってみました。
基本的なやり方としては、
% setenv CC “gcc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk”
% setenv CXX “g++ -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk”
みたいに環境変数を設定しておいて、
% ./configure –host=i386-apple-darwin8.7.0
のように configure すれば、たいていうまくいく気がする。で、できたライブラリなんかをどこかにコピーしておいて、ppc と i386 (と、あるいは ppc64 も) で configure & make しておいて、最終的に
% lipo -create /path/to/i386/library.dylib /path/to/ppc/library.dylib -output /path/to/universal/library.dylib
みたいに結合すれば OK、という寸法。
で、結果がちゃんと universal になってるかどうかは、file コマンドとかを使えば簡単に確認できる。Mach ってかっこいいなぁ。こんなの、普通の a.out とか elf なんかじゃ到底できませんよ。
でも、たくさんライブラリや実行ファイルがあるものの場合は、ちょっと大変そう。
Universal binary その後
んで、いろいろ universal binary を作ってみました。 基本的なやり方としては、setenv CC “gcc -arch i386 -isysroot /Developer/SDKs/MacOS10.4u.sdk”setenv CC “gcc -arch i386 -isysroot /Developer/SDKs/MacOS10.4u.sdk”たくさんライブラリや実行ファイルがあるものの場合は、ちょっと大変そう。