65 lines
2.0 KiB
Plaintext
65 lines
2.0 KiB
Plaintext
![]() |
Cross-compiling with MXE (http://mxe.cc)
|
||
|
|
||
|
MXE works for any BSD-compatible system (including Linux).
|
||
|
It is a complete package with cross-compiler to Win32 (a MinGW variant)
|
||
|
and includes scripts to automatically download and build many 3rd party
|
||
|
libraries and tools.
|
||
|
|
||
|
1. See the MXE website for list of required packages and make sure
|
||
|
you have them installed.
|
||
|
|
||
|
2. Download MXE and unpack it in the directory, where you want to keep it
|
||
|
permanently. During the build, MXE will write that path to many files,
|
||
|
so moving that directory can be tricky.
|
||
|
|
||
|
3. `cd' to the MXE root directory.
|
||
|
It already contains a univeral Makefile for everything.
|
||
|
Usage is simply `make [name_of_package]'.
|
||
|
It will automatically check for dependencies, etc.
|
||
|
The packages will be installed in the MXE directory in usr/.
|
||
|
|
||
|
You need to `make gcc' for basic compiler and then some additional
|
||
|
libraries. In the end, you should have the following packages installed
|
||
|
(this is the final listing of usr/installed/):
|
||
|
|
||
|
binutils
|
||
|
boost
|
||
|
bzip2
|
||
|
check-requirements
|
||
|
expat
|
||
|
freetype
|
||
|
gcc
|
||
|
gcc-gmp
|
||
|
gcc-mpc
|
||
|
gcc-mpfr
|
||
|
gettext
|
||
|
glew
|
||
|
jpeg
|
||
|
libiconv
|
||
|
libpng
|
||
|
libtool
|
||
|
mingwrt
|
||
|
openal
|
||
|
portaudio
|
||
|
sdl
|
||
|
sdl_image
|
||
|
sdl_ttf
|
||
|
tiff
|
||
|
w32api
|
||
|
xz
|
||
|
zlib
|
||
|
|
||
|
4. Now `cd' to colobot directory. To cross-compile a CMake project, you have to specify
|
||
|
a CMake toolchain file. MXE has such file in MXE's directory:
|
||
|
usr/i686-pc-mingw32/share/cmake/mxe-conf.cmake
|
||
|
Toolchain file is specified thus:
|
||
|
`cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/mxe-conf.cmake .'
|
||
|
The new CMake files in colobot should detect that MXE is being used and they will
|
||
|
modify flags, paths, etc. You should not run into any problems.
|
||
|
|
||
|
5. `make' should now compile the game with the resulting exe in bin/colobot.exe.
|
||
|
The exe is linked against all libraries *statically*, so there are no dependencies
|
||
|
on external dlls. However, the resulting binary will be huge with all these libraries,
|
||
|
so you should `strip bin/colobot.exe'.
|
||
|
|