Difference between revisions of "MG/Linux Compiling"
(remove reference to no longer existant MegaGlest Configurator) |
LittleJohn (talk | contribs) (Add redirect to Compiling, which links to a linear build doc on the repo) Tag: New redirect |
||
(10 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | #REDIRECT [[MG/Development#Compiling]] | ||
+ | |||
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== | ||
+ | *[[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: | ||
− | + | <tt>gcc gcc-c++ cmake sdl2 alut GL GLU vorbis x11 lua jpeg png curl ircclient glew ftgl fribidi cppunit vlc miniupnpc</tt> | |
− | + | Additionally for map editor and model viewer: | |
− | |||
− | |||
− | |||
− | |||
− | + | <tt>wxgtk xml2</tt> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | + | ==Compilation== |
− | * | + | *Update the branch you are working in with the [https://docs.megaglest.org/MG/Getting_The_Code#Update_the_source_code latest GIT code] |
− | + | ===Scripted build === | |
− | + | (''Recommended way'') | |
− | * | + | *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 ''' | + | *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 47: | Line 36: | ||
cmake ../../.. | cmake ../../.. | ||
make | make | ||
− | * | + | *In the line <tt>cmake ../../..</tt> you can put additional parameters <tt>cmake <parameters> ../../..</tt> where every parameter should be preceded by <tt>-D</tt>. |
*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: | *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 | cd mk/linux | ||
mkdir build | mkdir build | ||
cd build | cd build | ||
− | cmake -DCMAKE_INSTALL_PREFIX= ../../.. | + | cmake -DCMAKE_INSTALL_PREFIX='' -DWANT_DEV_OUTPATH=ON ../../.. |
make | make | ||
− | + | As example other special CMake options for customized builds: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
-DBUILD_MEGAGLEST=On | -DBUILD_MEGAGLEST=On | ||
-DBUILD_MEGAGLEST_MAP_EDITOR=On | -DBUILD_MEGAGLEST_MAP_EDITOR=On | ||
Line 78: | Line 51: | ||
-DWANT_STATIC_LIBS=On | -DWANT_STATIC_LIBS=On | ||
-DMINIUPNPC_VERSION_PRE1_6=Off | -DMINIUPNPC_VERSION_PRE1_6=Off | ||
− | + | ... | |
− | + | but if you want to see this list ^ up to date (and with useful description) then use <tt>cmake -LH ../../..</tt> on the beginning. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==Cross Compiling Windows binaries on Linux | + | ==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 | + | *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 74: | ||
./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== | ||
Line 119: | Line 94: | ||
[[Category:MG]] | [[Category:MG]] | ||
[[Category:Compiling]] | [[Category:Compiling]] | ||
+ | [[Category:Development]] |
Latest revision as of 03:17, 24 February 2025
Redirect to:
This page explains how to compile MegaGlest on Linux platforms.
Linux quick setup[edit]
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]
- Update the branch you are working in with the latest GIT code
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.