summaryrefslogtreecommitdiffstats
path: root/HOWTO-MXE.txt
diff options
context:
space:
mode:
Diffstat (limited to 'HOWTO-MXE.txt')
-rw-r--r--HOWTO-MXE.txt64
1 files changed, 64 insertions, 0 deletions
diff --git a/HOWTO-MXE.txt b/HOWTO-MXE.txt
new file mode 100644
index 0000000..7b93143
--- /dev/null
+++ b/HOWTO-MXE.txt
@@ -0,0 +1,64 @@
+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'.
+