Editing MG/Linux Compiling
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
This page explains how to compile [[MegaGlest]] on Linux platforms. | This page explains how to compile [[MegaGlest]] on Linux platforms. | ||
− | |||
− | |||
− | == | + | =='''Recommended way:''' Scripted build == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | <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>. |
+ | *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== | |
+ | *[[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: | |
+ | **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: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | *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 34: | Line 47: | ||
cmake ../../.. | cmake ../../.. | ||
make | make | ||
− | * | + | *If nothing goes wrong you will see <tt>megaglest</tt> (and other binaries) in the same folder (<tt>mk/linux</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= ../../.. |
make | 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=On | ||
+ | -DBUILD_MEGAGLEST_CONFIGURATOR=On | ||
-DBUILD_MEGAGLEST_MAP_EDITOR=On | -DBUILD_MEGAGLEST_MAP_EDITOR=On | ||
-DBUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS=On | -DBUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS=On | ||
Line 49: | Line 79: | ||
-DWANT_STATIC_LIBS=On | -DWANT_STATIC_LIBS=On | ||
-DMINIUPNPC_VERSION_PRE1_6=Off | -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== | + | ==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. | *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 (usually trunk). |
*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 72: | Line 111: | ||
./megaglest --version | ./megaglest --version | ||
./megaglest --opengl-info | ./megaglest --opengl-info | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==See Also== | ==See Also== | ||
Line 92: | Line 120: | ||
[[Category:MG]] | [[Category:MG]] | ||
[[Category:Compiling]] | [[Category:Compiling]] | ||
− |