M1 Macでのオープンソース版CrossOver 21.2.0のビルドと実行
CrossOver
CrossOverはWindowsバイナリをLinuxやmacOS上で動作させることができる商用ソフトです。GPLのWineをベースとしているのでソースコードが公開されています。
CrossOverは、通常のWineと異なり、llvm/clangベースの特別なコンパイラを使って64bit環境で32bitバイナリを実行するwine32on64により32bit Windowsバイナリと64bit Windowsバイナリの両方を動かすことができます。
CrossOver 21.2.0のビルド手順は以前の21.0.0の解説
https://qiita.com/asfdrwe/items/eae7a507e4bc6d37a64a
とほぼ同様です。M1 mac miniのmacOS Monterey 12.3で確認しています。
ビルド環境構築
~/Download/以下で作業します。
$ cd ~/Downloads
Command line tools for XcodeとRosetta2上で動作するx86_64用homebrewをインストールして、Rosetta2環境下で作業します。
$ xcode-select --install
$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ arch -x86_64 /bin/zsh
余計なものが入っているとwine32on64のビルドに失敗したりうまく動かなくなるようなので、homebrewでインストールするものは次のものだけにします。他はアンインストールしておいてください。CFLAGSやLDFLAGSやPKG_CONFIG_PATH等の環境設定も外してください(unset CFLAGS CPPFLAGS LDFLAGS PKG_CONFIG_PATH
)。
$ brew install cmake pkg-config bison flex mingw-w64 winetricks freetype
ビルドに必要な環境変数の設定をします。
$ export PATH="/usr/local/opt/flex/bin:/usr/local/opt/bison/bin:$PATH"
$ export CC=clang
$ export CXX=clang++
$ export MACOSX_DEPLOYMENT_TARGET=10.14
CrossOver 21.2.0のダウンロード
https://www.codeweavers.com/crossover/source
よりcurlでダウンロードしtarで展開しsoucesに移動します。
$ curl -o crossover-sources-21.2.0.tar.gz https://media.codeweavers.com/pub/crossover/source/crossover-sources-21.2.0.tar.gz
$ tar xvfz crossover-sources-21.2.0.tar.gz
$ cd sources
llvmのビルド
llvmをビルドしてパスを通します。macOS Monterey 12.3ではpython2.7が削除されたので、llvmのcmake時にpython3を利用する設定が必要です。
$ cd clang/llvm
$ mkdir build
$ cd build
$ cmake ../ -Dpython=ON -DPYTHON_EXECUTABLE=$(which python3)
$ make -j 3
$ cd bin
$ export PATH="$(pwd):$PATH"
$ cd ../../../..
clangのビルド
clangをビルドしてパスを通します。同様にcmake時にpython3を利用する設定をします。
$ cd clang/clang
$ mkdir build
$ cd build
$ cmake ../ -Dpython=ON -DPYTHON_EXECUTABLE=$(which python3)
$ make -j 3
$ cd bin
$ export PATH="$(pwd):$PATH"
$ cd ../../../..
CrossOverのビルド
ビルドに必要なinclude/distversion.hが抜けているので、パッチを当ててください。
$ curl -o distversion.patch https://gist.githubusercontent.com/asfdrwe/f5466c0a8af448a9464732d93f774521/raw/ad8ee996c23b44d1f56aed3b58215973af5c166b/distversion.patch
$ patch -p1 < distversion.patch
wineに移動します。
$ cd wine
wine64のビルド
環境変数を設定し64bit Windowsバイナリ用のwine64をビルドして
/usr/local/opt/crossover-21.2.0以下にインストールします。
$ mkdir build64
$ cd build64
$ ../configure --prefix=/usr/local/opt/crossover-21.2.0 --enable-win64 --without-x --disable-winedbg --disable-tests
$ make -j 3
$ make install
$ cd ../..
wine32on64のビルド時にdlls/winecoreaudio.drv/authorization.mでコンパイラのclangが落ちるのを回避する修正とbcrypt/macos.cのC_ASSERTが失敗するのを修正するパッチを当ててください。
$ curl -o bcrypt_coreaudio.patch https://gist.githubusercontent.com/asfdrwe/d67a8822c678bb7d7d008cb4f4fc86d1/raw/d3e24d37846cdd17f26ed6f266519312138239fc/bcrypt_coreaudio.patch
$ patch -p1 < bcrypt_coreaudio.patch
wine32on64のビルド
WineのWOW64に対応させて32bit Windowsバイナリと64bit Windows
バイナリ両対応となるようにwine32on64をビルドし、
/usr/local/opt/crossover-21.2.0以下にインストールします。make install
ではmsvcrt関係のエラーが出るので、make install-lib
でインストールします。
$ cd wine
$ mkdir build32
$ cd build32
$ ../configure --prefix=/usr/local/opt/crossover-21.2.0 --enable-win32on64 --with-wine64=../build64 --without-x --disable-winedbg --disable-tests
$ make -j 3
$ make install-lib
$ cd ../../..`
CrossOverの実行
設定
実行に必要な環境変数を設定します。
$ export PATH=/usr/local/opt/crossover-21.2.0/bin:$PATH
$ export WINE=wine64
先にwine64
を実行してWineのWOW64環境対応の~/.wine/を作成してください。
$ wine64 winecfg
winetricksで日本語フォントをインストールします。
$ winetricks fonts fakejapanese
Monoが入っていないので、必要ならばWine-Monoよりインストールしてください。
$ curl -o wine-mono-6.4.0-x86.msi http://dl.winehq.org/wine/wine-mono/6.4.0/wine-mono-6.4.0-x86.msi
$ wine64 msiexec /i wine-mono-6.4.0-x86.msi
動作確認したもの
7zip
7zipは問題なく動作します。
PPSSPP
PSPエミュレータのPPSSPPは32bit版も64bit版もOpenGLバックエンドでのみ動作します。DirectX9バックエンドとDirectX11バックエンドは動作しないようです。PPSSPP自作ソフトストアにあるCave Storyで動作確認しています。
GUIとビルド済みバイナリ
GUIはGcenx氏によるWineskinServerがあります。現時点(2022/3/26)ではCrossOver 21.0.0のビルド済みバイナリが同じ作者から配布されています。
WineskinServerについては
https://pc.watch.impress.co.jp/docs/column/nishikawa/1332743.html
も参考にどうぞ。
Author And Source
この問題について(M1 Macでのオープンソース版CrossOver 21.2.0のビルドと実行), 我々は、より多くの情報をここで見つけました https://qiita.com/asfdrwe/items/e046164315c94461fe21著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .