Skip to content

Latest commit

 

History

History
81 lines (61 loc) · 3.06 KB

File metadata and controls

81 lines (61 loc) · 3.06 KB

How to build

First make sure you have the submodules set up:

$ git submodule update --init --recursive

You can build various emulators (currently Box64 and FEX), but you don't need to, one is enough depending on your use-case. Except for libarm64ecfex.dll, which is necessary for x86_64 emulation.

Wine

To build Hangover Wine you need:

  • The dependencies to build a 64 bit Wine
  • llvm-mingw for PE cross-compilation (download & unpack a release, but don't use the .zip files, they are for Windows)
  • About 5GB of disk space

in the Hangover repository do:

$ mkdir -p wine/build
$ cd wine/build
$ export PATH=/path/to/llvm-mingw/bin:$PATH
$ ../configure --disable-tests --with-mingw=clang --enable-archs=arm64ec,aarch64,i386
$ make -j$(nproc)
$ sudo env PATH="$PATH" make install

For cross-compilation see here.

FEX for 64-bit

To build arm64ecfex from FEX you need:

  • bylaws-llvm-mingw for PE cross-compilation (download & unpack a release, but don't use the .zip files, they are for Windows)
  • About 1.5GB of disk space

Build it like (from the Hangover repository):

$ mkdir -p fex/build_ec
$ cd fex/build_ec
$ export PATH=/path/to/llvm-mingw/bin:$PATH
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=../Data/CMake/toolchain_mingw.cmake -DENABLE_LTO=False -DMINGW_TRIPLE=arm64ec-w64-mingw32 -DBUILD_TESTS=False ..

$ make -j$(nproc) arm64ecfex

Place resulting library (build_ec/Bin/libarm64ecfex.dll) in /usr/local/lib/wine/aarch64-windows/

FEX for 32-bit (optional)

To build wow64fex from FEX you need:

  • bylaws-llvm-mingw for PE cross-compilation (download & unpack a release, but don't use the .zip files, they are for Windows)
  • About 1.5GB of disk space

Build it like (from the Hangover repository):

$ mkdir -p fex/build_pe
$ cd fex/build_pe
$ export PATH=/path/to/llvm-mingw/bin:$PATH
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=../Data/CMake/toolchain_mingw.cmake -DENABLE_LTO=False -DMINGW_TRIPLE=aarch64-w64-mingw32 -DBUILD_TESTS=False ..

$ make -j$(nproc) wow64fex

Place resulting library (build_pe/Bin/libwow64fex.dll) in /usr/local/lib/wine/aarch64-windows/

Box64 for 32-bit

To build wowbox64 from Box64 you need:

  • llvm-mingw for PE cross-compilation (download & unpack a release, but don't use the .zip files, they are for Windows)
  • About 400MB of disk space

Build it like (from the Hangover repository):

$ mkdir -p box64/build_pe
$ cd box64/build_pe
$ export PATH=/path/to/llvm-mingw/bin:$PATH
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DARM_DYNAREC=ON -DWOW64=ON ..

$ make -j$(nproc) wowbox64

Place resulting library (build_pe/wowbox64-prefix/src/wowbox64-build/wowbox64.dll) in /usr/local/lib/wine/aarch64-windows/