Univarsal Binary の作り方
現在、Apple社が出しているコンピュータは全て Intel社製のCPUが入ってます。以前(去年の今頃か?)までは、IBM社製のPowerPCが使われておりました。
この二つのCPUは、内部的には処理方法が全然違います。*1そんなわけで、CPUの違いをソフトウェアで吸収する技術をUniversal Binaryと云います。
そんな訳で、これはMacOS 10.4 以降のMacでしか通用しない話です。*2
普段、Xcodeを使っている場合は、アーキテクチャの設定を編集すればいいです。
AutoConfで作られている場合、下記のように実行します。
> env CFLAGS="-O -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" \ LDFLAGS="-arch i386 -arch ppc" ./configure --disable-dependency-tracking
ちなみにMacOSXでは、Mach-O型で作られているファイルが実行形式になっているのですが、このファイル形式により、様々なバイナリーファイルを一つのファイルにすることができます。つまり、二つだけでなく三つ四つのCPU専用の実行ファイルを包括することができるのです。下記は、64bitも追加した状態です。
> env CFLAGS="-O -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc -arch x86_64 -arch ppc64" \ LDFLAGS="-arch i386 -arch ppc -arch x86_64 -arch ppc64" \ ./configure --disable-dependency-tracking