Compiling ScummVM/MXE

From ScummVM :: Wiki
Jump to navigation Jump to search

Introduction

The MXE project (https://mxe.cc) provides an easy way to set up a MinGW-w64 based cross-compiling toolchain with a set of special Makefiles. This allows us to build for Windows using GNU/Linux, FreeBSD, the Windows Subsystem for Linux or macOS as host systems with a high level of automation. Starting with ScummVM 2.1.0, this is the preferred way to provide release builds for the project.

Installing MXE

Requirements

Before setting up the MXE toolchain and the necessary libraries, you have to make sure your system has all the required packages installed that are needed for compiling the toolchain itself. At https://mxe.cc/#requirements, MXE provides a list of the required tools/libraries with their corresponding package names for various GNU/Linux distributions. In case the distribution is not listed there, you have to do some manual research in your distribution's repositories.

Setting up MXE

After you installed all the required packages mentioned above, you are ready to set up the MXE toolchain itself. 32 bit and 64 bit toolchains are available, either statically or dynamically linked.

MXE calls the combination between bitness and linking type an MXE_TARGET.

i686-w64-mingw32.static: 32 bit, statically linked
i686-w64-mingw32.shared: 32 bit, dynamically linked
x86_64-w64-mingw32.static: 64 bit, statically linked
x86_64-w64-mingw32.shared: 64 bit, dynamically linked

Compiling ScummVM