Mac で Wine を自前でビルドする方法。
必要なもの
- Xcode(Lion 以降はコマンドラインツール)
- Wine のソース(Git の場合は
git clone git://source.winehq.org/git/wine.git
で取得可能)
別途、libpng と freetype ライブラリが必要。X11.app か XQuartz.app にあるものが使えます(無くても --without-PACKAGE
で強制ビルドはできるけど結局動かない)。
以下のライブラリがあるといいかもしれません。各ライブラリは i386 もしくは i386 を含むユニバーサルバイナリでなくてはなりません。
- gettext(インターフェイスを日本語化する場合に必要)
- libjpeg
- libtiff
- pkg-config(無い場合は Wine の configure が勝手に探す)
これらが含まれていて代用できそうなフレームワークに Mono SDK と GStreamer SDK がありますが、CMake を使う場合に誤検出することがあるので注意が必要です。
Wine のビルド
Wine のソースディレクトリが $HOME/wine-git
にあるものとします。ここでは XQuartz のライブラリを使用しています。Wine のビルドは作業ディレクトリを作成して行います。コンパイラは Apple GCC 4.2 です。pkg-config を使用する場合は pc ファイルが検出されるように PKG_CONFIG_LIBDIR
か PKG_CONFIG_PATH
を設定しておきます。
※--without-PACKAGE
オプションを指定しない場合、configure 時にエラーメッセージが表示されますが無視してビルドを進めることは可能です。
export PATH=/opt/X11/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin export CFLAGS="-m32 -arch i386" export CXXFLAGS="${CFLAGS}" export CPPFLAGS="-I/usr/local/include" export LDFLAGS="-L/usr/local/lib" # pkg-config を使う場合 export PKGCONFIG_LIBDIR=/opt/X11/lib/pkgconfig:/opt/X11/share/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/pkgconfig mkdir build cd build $HOME/wine-git/configure \ --prefix=/usr/local \ --with-x \ --x-includes=/opt/X11/include \ --x-libraries=/opt/X11/lib make make install
WINELOADER(起動用スクリプト)の作成
実行ファイルは /usr/local/bin/wine
にありますが、実行ファイルにライブラリの場所が設定されていないためそのままでは起動出来ません。毎回 DYLD_FALLBACK_LIBRARY_PATH
を指定するのは面倒なので起動ファイルを別に作成します。
まず、実行ファイルの名前を変更します(他のファイルと被らなければ大丈夫)。
mv /usr/local/bin/wine /usr/local/bin/wine.bin
/usr/local/bin/wine
という名前で WINELOADER を作成します。
#!/bin/sh export DYLD_FALLBACK_LIBRARY_PATH=/opt/X11/lib:/usr/lib exec /usr/local/bin/wine.bin "$@"
WINELOADER に実行権限を付加。
chmod +x /usr/local/bin/wine
アプリケーションランチャの作成
Dock に置いたりするためのランチャは AppleScript などで簡単に作成できます。
Mac で AppleScript を使って Wine.app を作成する - mattintosh note -hatena-