Difference between revisions of "Compiling Luanti"
m (OpenAL link fixed) |
(→Compiling on Windows: formatted prerequisites block) |
||
Line 53: | Line 53: | ||
When invoking cmake, use <code>-DBUILD_CLIENT=0 -DIRRLICHT_SOURCE_DIR=/wherever/you/unzipped/the/source</code>. | When invoking cmake, use <code>-DBUILD_CLIENT=0 -DIRRLICHT_SOURCE_DIR=/wherever/you/unzipped/the/source</code>. | ||
− | ==Compiling on Windows== | + | == Compiling on Windows == |
− | + | === Prerequisites: === | |
− | + | * [http://www.cmake.org/cmake/resources/software.html CMake] | |
− | + | * OpenAL [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx] or [http://web.archive.org/web/20130629072358/http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx] | |
− | + | * [http://www.mingw.org MinGW] or [http://msdn.microsoft.com/en-us/vstudio/default Visual Studio] | |
− | + | * [http://irrlicht.sourceforge.net/downloads.html Irrlicht SDK 1.7] | |
− | + | * Zlib headers (zlib125.zip) and | |
− | + | :Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip) [http://www.winimage.com/zLibDll/index.html] | |
− | + | * Optional: [http://gnuwin32.sourceforge.net/downlinks/gettext.php gettext bibrary and tools]: | |
− | + | :This is used for other UI languages. Feel free to leave it out. | |
− | + | * Libvorbis 1.3.3: | |
− | + | :[http://www.dll-files.com/dllindex/dll-files.shtml?libvorbis library] | |
− | + | :[http://xiph.org/downloads/ headers] | |
− | + | *Libvorbisfile | |
− | + | :[http://www.dll-files.com/dllindex/dll-files.shtml?libvorbisfile library] | |
− | + | :headers: libvorbis/include | |
− | + | *Libogg | |
− | + | :[http://www.dlldump.com/download-dll-files_new.php/dllfiles/L/libogg.dll/-/download.html library] | |
− | + | :[http://xiph.org/downloads/ headers] | |
− | + | * And, of course, [http://c55.me/minetest/download Minetest-c55] | |
− | + | === Steps: === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
- Select a directory called DIR hereafter in which you will operate. | - Select a directory called DIR hereafter in which you will operate. | ||
- Make sure you have CMake and a compiler installed. | - Make sure you have CMake and a compiler installed. | ||
Line 94: | Line 83: | ||
- You will end up with a directory structure like this (+=dir, -=file): | - You will end up with a directory structure like this (+=dir, -=file): | ||
----------------- | ----------------- | ||
− | + DIR | + | + DIR |
- oalinst.exe | - oalinst.exe | ||
- zlib-1.2.5.tar.gz | - zlib-1.2.5.tar.gz | ||
- zlib125dll.zip | - zlib125dll.zip | ||
- irrlicht-1.7.1.zip | - irrlicht-1.7.1.zip | ||
− | + | - libvorbis-1.3.3.zip | |
− | + | - libogg-1.3.0.zip | |
- 110214175330.zip (or whatever, this is the minetest source) | - 110214175330.zip (or whatever, this is the minetest source) | ||
+ zlib-1.2.5 | + zlib-1.2.5 | ||
Line 115: | Line 104: | ||
... | ... | ||
+ libvorbis-1.3.3.zip | + libvorbis-1.3.3.zip | ||
− | + | + lib | |
− | + | + include | |
− | + | ... | |
+ libogg-1.3.0.zip | + libogg-1.3.0.zip | ||
− | + | + lib | |
− | + | + include | |
− | + | ... | |
+ gettext (optional) | + gettext (optional) | ||
+bin | +bin | ||
Line 188: | Line 177: | ||
- You should now have a working game with the executable in | - You should now have a working game with the executable in | ||
DIR/minetest/bin/minetest.exe | DIR/minetest/bin/minetest.exe | ||
− | |||
== Cross compile == | == Cross compile == |
Revision as of 13:12, 26 January 2014
Compiling on GNU/Linux
Install dependencies. Here's an example for Debian/Ubuntu/Mint:
$ apt-get install build-essential libirrlicht-dev cmake libbz2-dev \ libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev \ libogg-dev libvorbis-dev libopenal-dev
(If you want to use Minetest on languages other than English, you have to install gettext package and it's dependencies too.)
Download source, extract (this is the URL to the latest of source repository, which might not work at all times):
(Note: It is recommended to use Git to get the source)
$ wget https://github.com/minetest/minetest/tarball/master -O master.tar.gz $ tar xf master.tar.gz $ cd minetest-minetest-286edd4 (or similar)
Download minetest_game (otherwise only the "Minimal development test" game is available)
$ cd games/ $ wget https://github.com/minetest/minetest_game/tarball/master -O master.tar.gz $ tar xf master.tar.gz $ mv minetest-minetest_game-* minetest_game $ cd ..
Build a version that runs directly from the source directory:
$ cmake . -DRUN_IN_PLACE=1 $ make -j2
Run it:
$ cd bin $ ./minetest
- Use cmake . -LH to see all CMake options and their current state
- If you want to place user data in ~/.minetest, install it system-wide (or are making a distribution package), you will want to use -DRUN_IN_PLACE=0
- You can build a bare server or a bare client by specifying -DBUILD_CLIENT=0 or -DBUILD_SERVER=0
- If you want to use others languages than English, add -DENABLE_GETTEXT=1 as a cmake parameter.
- You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
- Debug build is slower, but gives much more useful output in a debugger
Building without Irrlicht/X dependency
You can build the Minetest server without library dependencies to Irrlicht or any graphical stuff. You still need the Irrlicht headers for this, so first, download the irrlicht source to somewhere.
When invoking cmake, use -DBUILD_CLIENT=0 -DIRRLICHT_SOURCE_DIR=/wherever/you/unzipped/the/source
.
Compiling on Windows
Prerequisites:
- CMake
- OpenAL [1] or [2]
- MinGW or Visual Studio
- Irrlicht SDK 1.7
- Zlib headers (zlib125.zip) and
- Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip) [3]
- Optional: gettext bibrary and tools:
- This is used for other UI languages. Feel free to leave it out.
- Libvorbis 1.3.3:
- Libvorbisfile
- library
- headers: libvorbis/include
- Libogg
- And, of course, Minetest-c55
Steps:
- Select a directory called DIR hereafter in which you will operate. - Make sure you have CMake and a compiler installed. - Download all the other stuff to DIR and extract them into there. ("extract here", not "extract to packagename/") NOTE: zlib125dll.zip needs to be extracted into zlib125dll - All those packages contain a nice base directory in them, which should end up being the direct subdirectories of DIR. - You will end up with a directory structure like this (+=dir, -=file): ----------------- + DIR - oalinst.exe - zlib-1.2.5.tar.gz - zlib125dll.zip - irrlicht-1.7.1.zip - libvorbis-1.3.3.zip - libogg-1.3.0.zip - 110214175330.zip (or whatever, this is the minetest source) + zlib-1.2.5 - zlib.h + win32 ... + zlib125dll - readme.txt + dll32 ... + irrlicht-1.7.1 + lib + include ... + libvorbis-1.3.3.zip + lib + include ... + libogg-1.3.0.zip + lib + include ... + gettext (optional) +bin +include +lib + minetest + src + doc - CMakeLists.txt ... ----------------- - Start up the CMake GUI - Select "Browse Source..." and select DIR/minetest - Now, if using MSVC: - Select "Browse Build..." and select DIR/minetest-build - Else if using MinGW: - Select "Browse Build..." and select DIR/minetest - Select "Configure" - Select your compiler - It will warn about missing stuff, ignore that at this point. (later don't) - Make sure the configuration is as follows (note that the versions may differ for you):
BUILD_CLIENT [X] BUILD_SERVER [ ] CMAKE_BUILD_TYPE Release CMAKE_INSTALL_PREFIX DIR/minetest-install IRRLICHT_SOURCE_DIR DIR/irrlicht-1.7.1 RUN_IN_PLACE [X] WARN_ALL [ ] ZLIB_DLL DIR/zlib125dll/dll32/zlibwapi.dll ZLIB_INCLUDE_DIR DIR/zlib-1.2.5 ZLIB_LIBRARIES DIR/zlib125dll/dll32/zlibwapi.lib LIBVORBIS_INCLUDE_DIR DIR/libvorbis-1.3.3/include LIBVORBIS_LIBRARIES DIR/libvorbis.dll LIBVORBISFILE_INCLUDE_DIR DIR/libvorbis-1.3.3/include LIBVORBISFILE_LIBRARIES DIR/libvorbisfile.dll LIBOGG_INCLUDE_DIR DIR/libogg-1.3.0/include LIBOGG_LIBRARIES DIR/libogg.dll GETTEXT_BIN_DIR DIR/gettext/bin GETTEXT_INCLUDE_DIR DIR/gettext/include GETTEXT_LIBRARIES DIR/gettext/lib/intl.lib GETTEXT_MSGFMT DIR/gettext/bin/msgfmt OPENAL_INCLUDE_DIR=C:\Program Files (x86)\OpenAL\include OPENAL_LIBRARIES=C:\Program Files (x86)\OpenAL\lib\OpenAL32.lib
- Hit "Configure"
- Hit "Configure" once again 8) - If something is still coloured red, you have a problem. - Hit "Generate" If using MSVC: - Open the generated minetest.sln - The project defaults to the "Debug" configuration. Make very sure to select "Release", unless you want to debug some stuff (it's slower and might not even work at all) - Build the ALL_BUILD project - Build the INSTALL project - You should now have a working game with the executable in DIR/minetest-install/bin/minetest.exe - Additionally you may create a zip package by building the PACKAGE project. If using MinGW: - Using the command line, browse to the build directory and run 'make' (or mingw32-make or whatever it happens to be) - You may need to copy some of the downloaded DLLs into bin/, see what running the produced executable tells you it doesn't have. - You should now have a working game with the executable in DIR/minetest/bin/minetest.exe
Cross compile
To compile a win32 version of Minetest in Linux with MinGW you can use the build script in utils/buildbot/buildwin32.sh
.