Difference between revisions of "MG/Linux Compiling"

From MegaGlest
Jump to navigation Jump to search
m (→‎See also: adding categories)
 
Line 1: Line 1:
 
This page explains how to compile [[MegaGlest]] on Linux platforms.
 
This page explains how to compile [[MegaGlest]] on Linux platforms.
 +
 +
===Linux quick setup===
 +
[[MG/Getting The Code#Linux quick setup|''See here'']]
  
 
==Requirements==
 
==Requirements==

Latest revision as of 01:28, 13 December 2019

This page explains how to compile MegaGlest on Linux platforms.

Linux quick setup[edit]

See here

Requirements[edit]

  • 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 sdl2 alut GL GLU vorbis x11 lua jpeg png curl ircclient glew ftgl fribidi cppunit vlc miniupnpc

Additionally for map editor and model viewer:

wxgtk xml2

Compilation[edit]

Scripted build[edit]

(Recommended way)

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

Building using CMake by Hand[edit]

  • Open a terminal window and navigate to the specified branch and type the following:
cd mk/linux
mkdir build
cd build
cmake ../../..
make
  • In the line cmake ../../.. you can put additional parameters cmake <parameters> ../../.. where every parameter should be preceded by -D.
  • 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= -DWANT_DEV_OUTPATH=ON ../../..
make

As example 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
...

but if you want to see this list ^ up to date (and with useful description) then use cmake -LH ../../.. on the beginning.

Cross Compiling Windows binaries on Linux[edit]

  • 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[edit]

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[edit]

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[edit]

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[edit]