Difference between revisions of "MG/Linux Compiling"

From MegaGlest
Jump to navigation Jump to search
(remove reference to no longer existant MegaGlest Configurator)
Line 1: Line 1:
 
This page explains how to compile [[MegaGlest]] on Linux platforms.
 
This page explains how to compile [[MegaGlest]] on Linux platforms.
  
 +
==Requirements==
 +
*[[MG/Getting The Code|''Download the project'']] from the GIT repository using the command line (recommended) or your favorite GIT tool (such as [http://www.rabbitvcs.org/ RabbitVCS] or [https://code.google.com/p/tortoisegit/ TortoiseGIT]).
 +
*Install build dependencies. These are usally packaged by Linux distributions. On '''Debian, Ubuntu, Fedora, Opensuse and even more Linux distributions''' you may use
 +
cd mk/linux
 +
sudo ./setupBuildDeps.sh
 +
to install them. If your distribution is not supported or you prefer to install yourself: This is the current dependency list - where packages are available, the package names may start with ''lib'' and usually have ''-dev(el)'' towards the end:
  
=='''Recommended way:''' Scripted build ==
+
<tt>gcc gcc-c++ cmake SDL alut GL GLU vorbis x11 lua jpeg png curl ircclient glew ftgl fribidi cppunit vlc miniupnpc</tt>
  
*Change into the top level ''project'' directory. This is wherever you checked the repository out to (<tt>git clone ...</tt>), probably <tt>megaglest-source/</tt>.
+
Additionally for map editor and model viewer:
*You should have a <tt>mk/linux/</tt> subdirectory there, change into this: <pre>cd mk/linux</pre>
 
*Install / update the build dependencies: <pre>sudo ./setupBuildDeps.sh</pre>If your Linux distribution is not supported or you prefer to install dependencies manually, check below.
 
*Start the build: <pre>./build-mg.sh</pre>
 
*To start MegaGlest do: <pre>./megaglest</pre>
 
  
==Requirements==
+
<tt>wxgtk(2.8-2.9) xml2</tt>
*[[MG/Getting The Code|Download the project]] from the [[MG/Project Structure|GIT]] repository using the command line or your favorite GIT tool (such as [http://www.rabbitvcs.org/ RabbitVCS] or [https://code.google.com/p/tortoisegit/ TortoiseGIT]).
 
*Download build dependencies. These are usally packaged by Linux distributions. On '''Debian, Ubuntu, Fedora, Opensuse and even more Linux distributions '''you may use '''<tt>mk/linux/setupBuildDeps.sh</tt>''' to install them. If your distribution is not supported or you prefer to install yourself: This is the current dependency list - where packages are available, the package names may start wih ''lib'' and usually have ''-dev(el)'' towards the end:
 
**jpeg
 
**png
 
**lua5.1
 
**SDL
 
**SDLmain
 
**curl
 
**openal
 
**ogg
 
**vorbis
 
**vorbisfile
 
**vorbisenc
 
**alut
 
**z
 
**GL
 
**GLU
 
**glew-dev
 
**ircclient
 
**ftgl
 
**miniupnpc
 
**fribidi
 
  
*Additionally for map editor and model viewer:
+
==Compilation==
**wxbase2.8
+
*Update the branch you are working in with the [https://docs.megaglest.org/MG/Getting_The_Code#Update_the_source_code latest GIT code]
**wxgtk2.8
+
===Scripted build ===
**gtk2.0-dev
+
(''Recommended way'')
**xml2-dev
+
*Start the build:
 +
cd mk/linux
 +
./build-mg.sh
 +
*To start MegaGlest:
 +
./megaglest
  
==Building using CMake by Hand==
+
===Building using CMake by Hand===
*Open a terminal window and navigate to '''trunk (or the specified branch)''' and type the following:
+
*Open a terminal window and navigate to '''the specified branch''' and type the following:
 
  cd mk/linux
 
  cd mk/linux
 
  mkdir build
 
  mkdir build
Line 64: Line 48:
 
*MinSizeRel
 
*MinSizeRel
  
To change the build type execute cmake (default is Release) using:
+
To change the build type execute cmake (default is Release) using, e.g.:
cmake -D CMAKE_BUILD_TYPE=<...>
 
 
 
e.g.
 
 
  cmake -D CMAKE_BUILD_TYPE=Debug
 
  cmake -D CMAKE_BUILD_TYPE=Debug
  
 
Other special CMake options for customized builds:
 
Other special CMake options for customized builds:
 
 
  -DBUILD_MEGAGLEST=On
 
  -DBUILD_MEGAGLEST=On
 
  -DBUILD_MEGAGLEST_MAP_EDITOR=On
 
  -DBUILD_MEGAGLEST_MAP_EDITOR=On
Line 90: Line 70:
 
  -DCUSTOM_DATA_INSTALL_PATH=
 
  -DCUSTOM_DATA_INSTALL_PATH=
  
==Cross Compiling Windows binaries on Linux using MingW:==
+
==Cross Compiling Windows binaries on Linux==
 
*This process is still experimental and is not fully supported at the moment but rather for educational purposes.
 
*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 [https://sourceforge.net/projects/megaglest/files/win32_deps_mingw.7z/download Sourceforge] and extract into the <tt>source</tt> folder.
 
*Download and extract the MingW win32 dependency archive from [https://sourceforge.net/projects/megaglest/files/win32_deps_mingw.7z/download Sourceforge] and extract into the <tt>source</tt> folder.
 
*Install the MingW cross compiler for your distro. In Ubuntu run:
 
*Install the MingW cross compiler for your distro. In Ubuntu run:
 
  sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
 
  sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
*Open a terminal and <tt>cd</tt> to the root folder of your Mega-Glest folder (usually trunk).
+
*Open a terminal and <tt>cd</tt> to the root folder of your Mega-Glest folder.
 
*Modify the script. You also need to change <tt>windows_deps/curl-7.20.1</tt> to <tt>windows_deps/curl-7.21.3</tt>
 
*Modify the script. You also need to change <tt>windows_deps/curl-7.20.1</tt> to <tt>windows_deps/curl-7.21.3</tt>
 
*Run the script:
 
*Run the script:
Line 110: Line 90:
 
  ./megaglest --version
 
  ./megaglest --version
 
  ./megaglest --opengl-info
 
  ./megaglest --opengl-info
 +
 +
==Trouble shooting==
 +
If your build fails, and you have not been building for a while, this is usually due to '''outdated build dependencies''' and in this case you should do:
 +
cd mk/linux
 +
sudo ./setupBuildDeps.sh
 +
If MegaGlest crashes you should '''do a full rebuild'''. To trigger a full rebuild you should just remove the <tt>build</tt> directory before the build, e.g. by run:
 +
cd mk/linux && rm -r build && ./build-mg.sh
 +
 +
==Reporting bugs==
 +
If you think you have run into a bug in MegaGlest, and neither reading the [http://readme.megaglest.org/ README] and [http://faq.megaglest.org/ FAQ] nor searching for it at http://bugs.megaglest.org helps, then please report a new bug at http://bugs.megaglest.org/ (one-time registration is necessary to post).
 +
When filing a bug, please provide a log of the build process of a '''full rebuild'''.
  
 
==See Also==
 
==See Also==

Revision as of 03:44, 23 June 2014

This page explains how to compile MegaGlest on Linux platforms.

Requirements

  • Download the project from the GIT repository using the command line (recommended) or your favorite GIT tool (such as RabbitVCS or TortoiseGIT).
  • Install build dependencies. These are usally packaged by Linux distributions. On Debian, Ubuntu, Fedora, Opensuse and even more Linux distributions you may use
cd mk/linux
sudo ./setupBuildDeps.sh

to install them. If your distribution is not supported or you prefer to install yourself: This is the current dependency list - where packages are available, the package names may start with lib and usually have -dev(el) towards the end:

gcc gcc-c++ cmake SDL alut GL GLU vorbis x11 lua jpeg png curl ircclient glew ftgl fribidi cppunit vlc miniupnpc

Additionally for map editor and model viewer:

wxgtk(2.8-2.9) xml2

Compilation

Scripted build

(Recommended way)

  • Start the build:
cd mk/linux
./build-mg.sh
  • To start MegaGlest:
./megaglest

Building using CMake by Hand

  • Open a terminal window and navigate to the specified branch and type the following:
cd mk/linux
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:
cd mk/linux
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, e.g.:

cmake -D CMAKE_BUILD_TYPE=Debug

Other special CMake options for customized builds:

-DBUILD_MEGAGLEST=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=Off
-DUSE_FTGL=On
-DWANT_GIT_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

  • 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.
  • Modify the script. You also need to change windows_deps/curl-7.20.1 to windows_deps/curl-7.21.3
  • Run the script:
cd mk/linux
./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

Trouble shooting

If your build fails, and you have not been building for a while, this is usually due to outdated build dependencies and in this case you should do:

cd mk/linux
sudo ./setupBuildDeps.sh

If MegaGlest crashes you should do a full rebuild. To trigger a full rebuild you should just remove the build directory before the build, e.g. by run:

cd mk/linux && rm -r build && ./build-mg.sh

Reporting bugs

If you think you have run into a bug in MegaGlest, and neither reading the README and FAQ nor searching for it at http://bugs.megaglest.org helps, then please report a new bug at http://bugs.megaglest.org/ (one-time registration is necessary to post). When filing a bug, please provide a log of the build process of a full rebuild.

See Also