読者です 読者をやめる 読者になる 読者になる

KOYAMA Yoshiaki のブログ

プログラミングについての試行錯誤をつらつら書き溜めていきます。

ターミナル上で実行する gnushogi の Universal Binary 化に失敗

私がパッケージ化して公開している xshogi.app を Universal Binary 化する前に、gnushogi の Universal Binary 化に挑戦してみました。

とりあえず

Building an Open Source Universal Binary
http://developer.apple.com/opensource/buildingopensourceuniversal.html

を読んでみました。

ここでは Xcode を利用して説明されていますが、PPC、Intel 版の gnushogi をそれぞれ作成し、コマンド lipo を使って Universal Binary 化すれば良さそうです。実際試してみました。私の環境は iMac G5 なので、もちろん PPC版の gnushogi は作成できます。Intel版の gnushogi を作成するために make を使って、コマンド make "CC=cc -arch i386" 実行したのですが、ライブラリのリンクに失敗します。いろいろ試してみたのですが、残念ながら解決することはできませんでした。

話は変わって 、Building an Open Source Universal Binary の説明に Xcode で New Run Script Build Phase を利用していますが、そこで次のような Shell Script を設定しています。

Listing 4: The Run lipo Script

# shell script goes here
for lib in `cat libnames.tmp`; do
 lipo -create build/*/$lib -output $lib
done
exit 0

私自身 shell script の文法 (for 文など)*1については理解していなかったので、ADC *2で検索してみました。

本当にわかりやすく説明されているドキュメントを見つけたので URL を下記に記載しておきます。

Shell Scripting Primer
http://developer.apple.com/documentation/OpenSource/Conceptual/ShellScripting/index.html

*1:[http://developer.apple.com/documentation/OpenSource/Conceptual/ShellScripting/index.html:title=Shell Scripting Primer] : Shell Scripting Primer/Shell Script Basics/Basic Control Statements/The for Statement

*2:Apple Developer Connection - http://developer.apple.com/