Difference between revisions of "MG/Linux Compiling"
Jump to navigation
Jump to search
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This page explains how to compile [[MegaGlest]] on linux platforms. | This page explains how to compile [[MegaGlest]] on linux platforms. | ||
+ | |||
+ | |||
+ | ==Building using CMake by Script '''(! Recommended Way !)''' == | ||
+ | |||
+ | *Go to the top level project directory (<tt>megaglest</tt> or trunk or whever you placed the project) | ||
+ | *in case you did not install the dependencies yet, do this with<pre>sudo mk/linux/setupBuildDeps.sh</pre>Or look below how to do it for your linux distribution. | ||
+ | *Now run <pre>./build-mg.sh</pre> | ||
+ | *to start MegaGlest do: | ||
+ | <pre> | ||
+ | cd mk/linux | ||
+ | ./megaglest | ||
+ | </pre> | ||
==Requirements== | ==Requirements== | ||
*[[MG/Getting The Code|Download the project]] from the [[MG/SVN Structure|SVN]] using the command line or your favorite SVN tool (such as [http://www.rabbitvcs.org/ RabbitVCS] or [http://tortoisesvn.tigris.org/ TortoiseSVN]). | *[[MG/Getting The Code|Download the project]] from the [[MG/SVN Structure|SVN]] using the command line or your favorite SVN tool (such as [http://www.rabbitvcs.org/ RabbitVCS] or [http://tortoisesvn.tigris.org/ TortoiseSVN]). | ||
− | *Download package dependencies for your Linux distribution (see <tt>mk/linux/setupBuildDeps.sh</tt> 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): | + | *Download package dependencies for your Linux distribution (see '''<tt>mk/linux/setupBuildDeps.sh</tt> 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 | **jpeg | ||
**png | **png | ||
Line 20: | Line 32: | ||
**GL | **GL | ||
**GLU | **GLU | ||
+ | **glew-dev | ||
**ircclient | **ircclient | ||
**ftgl-dev | **ftgl-dev | ||
**miniupnpc-dev | **miniupnpc-dev | ||
+ | **fribidi-dev | ||
*Additionally for Game Tools: | *Additionally for Game Tools: | ||
− | |||
**wxbase2.8 | **wxbase2.8 | ||
**wxgtk2.8 | **wxgtk2.8 | ||
**gtk2.0-dev | **gtk2.0-dev | ||
**xml2-dev | **xml2-dev | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Building using CMake by Hand== | ==Building using CMake by Hand== | ||
Line 98: | Line 105: | ||
==Test binaries== | ==Test binaries== | ||
− | To test running the game, run the binary in <tt>mk/linux</tt> like this: | + | To test running the game, run the binary '''in <tt>mk/linux</tt>''' like this: |
./megaglest | ./megaglest | ||
Revision as of 17:56, 9 November 2013
This page explains how to compile MegaGlest on linux platforms.
Building using CMake by Script (! Recommended Way !)
- Go to the top level project directory (megaglest or trunk or whever you placed the project)
- in case you did not install the dependencies yet, do this with
sudo mk/linux/setupBuildDeps.sh
Or look below how to do it for your linux distribution. - Now run
./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
- Open a terminal window and navigate to trunk (or the specified branch) and type the following:
mkdir build cd build cmake .. make
- 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:
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX= .. make
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:
- 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:
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
- 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 to win32_deps/curl-7.21.3
- Run the script:
./build-mg-win.sh
- If all goes well you should see the Windows .exe binaries produced in the data/glest_game folder.
Test binaries
To test running the game, run the binary in mk/linux like this:
./megaglest
These are some commandline options:
./megaglest --help ./megaglest --version ./megaglest --opengl-info