(2007/04/30)
前ページの手順に沿って、Xcode から LinuxSampler の CVS スナップショットをビルドできるようにしてみた。一般的な注意点は前ページと同様。
libsndfile, libgig, linuxsampler を1つのディレクトリ(以下 $PROJDIR
とする。例えば PROJDIR=$HOME/Development/LinuxSampler
)の中に展開する。名前はそれぞれ libsndfile, libgig, linuxsampler
としておく。必要ならシンボリックリンクを作る。
前ページで説明したように autoconf の準備をする。
$PROJDIR/libgig/aclocal
を /usr/local/bin
にコピーして実行許可をつける。/usr/local/bin/libtoolize
を /usr/bin/glibtoolize
へのシンボリックリンクとする。
linuxsampler_xpj.tar.gz をダウンロードして展開する。中にある Xcode プロジェクトファイル (LinuxSampler.xcodeproj) とシェルスクリプト (make_wrapper.sh) を $PROJDIR
に移す。
ビルド時のディレクトリ構成は前ページとは少し異なり、次のようになる。
$PROJDIR/ libgig/ libsndfile -> libsndfile-1.0.17 libsndfile-1.0.17/ linuxsampler/ LinuxSampler.xcodeproj/ make_wrapper.sh build/ Deployment_ppc/ # インストール用ディレクトリ bin/ include/ lib/ man/ share/ Deployment_i386/ ...(Deployment_ppc と同様) Development/ ...(Deployment_ppc と同様) LinuxSampler.build/ Deployment_ppc/ libgig.build/ # libgig のビルド用コピー libsndfile.build/ # libsndfile のビルド用コピー linuxsampler.build/ # linuxsampler のビルド用コピー Deployment_i386/ ...(Deployment_ppc と同様) Development/ ...(Deployment_ppc と同様) LinuxSampler.pbxindex/ # Xcode が使用
build
ディレクトリ以下は、Xcode でビルドする際に作成されるディレクトリである。Deployment_ppc, Deployment_i386, Development
は Xcode プロジェクトの3つのビルドコンフィギュレーションの名前に対応する(次節参照)。
なお、linuxsampler の configure.in
の不具合を修正するパッチを作っておいた。configure.patch。$PROJDIR
ディレクトリ(linuxsampler
ディレクトリではなく)に cd
して、patch -p0 <configure.patch
で修正する。
LinuxSampler.xcodeproj を開く。"Groups & Files" カラムの "Targets" の中に3つのターゲットがある:libsndfile, libgig, linuxsampler
。libgig
は libsndfile
に依存し、linuxsampler
は libgig
に依存している。また、"Groups & Files" カラム一番上の "LinuxSampler" の info を開くとわかるように、3つのビルドコンフィギュレーション Development, Deployment_ppc, Deployment_i386
がある。
ビルドの処理内容は、シェルスクリプト make_wrapper.sh
に記述されている。
Makefile
が存在すれば make
を実行。configure
が存在すれば ./configure && make
を実行。Makefile.cvs
が存在すれば make -f Makefile.cvs && ./configure && make
を実行。make
が成功し、$WITH_INSTALL
が未定義でなければ、続けて make install
を実行。
Xcode の Build > Build Results を選んで、ビルドウィンドウを開く。Active Target を linuxsampler
、Active Build Configuration を Deployment_ppc
とし、ビルドする。依存関係に従って、libsndfile, libgig, linuxsampler が順にビルドされる。すべて終了すると、$PROJDIR/build/Deployment_ppc/bin
に linuxsampler
ができているはず。
なお、ADC に Xcode を使って configure ベースのソフトウェアの Universal Binary を作るチュートリアルがある:Building an Open Source Universal Binary。シェルスクリプトベースのターゲットを使っている点では同じだが、このチュートリアルでは PPC 版と i386 版に別々のターゲットを作っている。これでももちろん構わないのだが、PPC 版と i386 版は「コンパイルオプションが違うだけ」で同じものとも言える。また、今回はライブラリ2つと目的プログラム1つを順にビルドする必要があり、これは別々のターゲットにするのが妥当である。そういうわけで、アーキテクチャはビルドコンフィギュレーションの方で区別した。
ちょっと今回は手抜きで、Universal Binary は手動で作成する。