MG/Linux Compiling

This page explains how to compile MegaGlest on linux platforms.

Recommended way: Scripted build

 * Change into the top level project directory. This is wherever you checked the repository out to (svn co ...), such as megaglest/ or trunk/.
 * Install / update the build dependencies: sudo mk/linux/setupBuildDeps.sh If your Linux distribution is not supported or you prefer to install dependencies manually, check below.
 * Start the build: ./build-mg.sh
 * To start MegaGlest do: cd mk/linux ./megaglest

Requirements

 * Download the project from the SVN using the command line or your favorite SVN tool (such as RabbitVCS or TortoiseSVN).
 * Download package dependencies for your Linux distribution (see mk/linux/setupBuildDeps.sh which can do that for Debian, Ubuntu, Fedora and Open SuSE based distro's). The following is the current dependency list (and the tools require wx):
 * jpeg
 * png
 * lua5.1
 * SDL
 * SDLmain
 * curl
 * xerces-c
 * openal
 * ogg
 * vorbis
 * vorbisfile
 * vorbisenc
 * alut
 * z
 * GL
 * GLU
 * glew-dev
 * ircclient
 * ftgl-dev
 * miniupnpc-dev
 * fribidi-dev


 * Additionally for Game Tools:
 * wxbase2.8
 * wxgtk2.8
 * gtk2.0-dev
 * xml2-dev

Building using CMake by Hand
mkdir build cd build cmake .. make mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX= .. make
 * Open a terminal window and navigate to trunk (or the specified branch) and type the following:
 * If nothing goes wrong you will see megaglest (and other binaries) in the same folder (mk/linux).
 * NOTE: most developer that are not planning to run megaglest from the standard linux LHS paths (like usr/local/bin) should run cmake with the following syntax so that the resulting binaries look in the local compiled folders for data files:

Notice a space between the parameter -DCMAKE_INSTALL_PREFIX and ..

Notes: The follow are build types supported using cmake:
 * Release
 * Debug
 * RelWithDebInfo
 * MinSizeRel

To change the build type execute cmake (default is Release) using: cmake -D CMAKE_BUILD_TYPE=<...>

e.g. cmake -D CMAKE_BUILD_TYPE=Debug

Other special CMake options for customized builds:

-DBUILD_MEGAGLEST=On -DBUILD_MEGAGLEST_CONFIGURATOR=On -DBUILD_MEGAGLEST_MAP_EDITOR=On -DBUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS=On -DBUILD_MEGAGLEST_MODEL_VIEWER=On -DWANT_STATIC_LIBS=On -DMINIUPNPC_VERSION_PRE1_6=Off -DMINIUPNPC_VERSION_PRE1_5=Off -DWANT_STREFLOP=On -DUSE_FTGL=On -DWANT_SVN_STAMP=On -DCMAKE_INSTALL_PREFIX= -DMEGAGLEST_BIN_INSTALL_PATH= -DMEGAGLEST_DATA_INSTALL_PATH= -DMEGAGLEST_DESKTOP_INSTALL_PATH= -DMEGAGLEST_ICON_INSTALL_PATH= -DMEGAGLEST_MANPAGE_INSTALL_PATH= -DCUSTOM_DATA_INSTALL_PATH=

Cross Compiling Windows binaries on Linux using MingW:
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime ./build-mg-win.sh
 * This process is still experimental and is not fully supported at the moment but rather for educational purposes.
 * Download and extract the MingW win32 dependency archive from Sourceforge and extract into the source folder.
 * Install the MingW cross compiler for your distro. In Ubuntu run:
 * Open a terminal and cd to the root folder of your Mega-Glest folder (usually trunk).
 * Modify the script. You also need to change win32_deps/curl-7.20.1</tt> to win32_deps/curl-7.21.3</tt>
 * Run the script:
 * If all goes well you should see the Windows .exe</tt> binaries produced in the data/glest_game</tt> folder.

Test binaries
To test running the game, run the binary in mk/linux</tt> like this: ./megaglest

These are some commandline options: ./megaglest --help ./megaglest --version ./megaglest --opengl-info