|
|
(22 intermediate revisions by 8 users not shown) |
Line 1: |
Line 1: |
− | [[Category:Core]] | + | {{Mbox|type=warning|text= |
− | == Compiling on GNU/Linux ==
| + | '''This page is redundant with the compilation instructions that exist in the [https://github.com/minetest/minetest Minetest README]'''<br/> |
| + | ''Link to the appropriate section in the README rather than here, and update any links that point to here!'' |
| + | }} |
| | | |
− | '''''Triple-click to select a whole line. Use <kbd>Ctrl + Shift + V</kbd> to paste in a terminal.''''' | + | ''This page is about compiling Minetest for desktop platforms. For compiling Minetest for Android, see [[Android]].'' |
| | | |
− | Install dependencies. Here's an example for Debian-based and Ubuntu-based distributions:
| + | == Compiling on GNU/Linux == |
− | <pre>
| + | Please see the [https://github.com/minetest/minetest#compiling-on-gnulinux README.md file] for instructions. |
− | apt-get install build-essential git libirrlicht-dev cmake libbz2-dev libgettextpo-dev libfreetype6-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libhiredis-dev
| |
− | </pre>
| |
| | | |
− | Download engine:
| + | === See also === |
| + | * [http://forum.minetest.net/viewtopic.php?f=3&t=3837 One-line script for installing/compiling Minetest Git, for Debian / Ubuntu / Mint] |
| | | |
− | <pre>
| + | == Compiling on Windows == |
− | git clone https://github.com/minetest/minetest.git
| + | Please see the [https://github.com/minetest/minetest#compiling-on-windows-using-msvc Minetest README]. |
− | cd minetest/
| |
− | </pre>
| |
| | | |
− | Download minetest_game (otherwise only the "Minimal development test" game is available)
| + | == Cross-compilation == |
− | <pre> | + | To compile a win32 version of Minetest in Linux with [https://en.wikipedia.org/wiki/MinGW MinGW] you can use the build script in <code>[https://github.com/minetest/minetest/blob/master/util/buildbot/buildwin32.sh utils/buildbot/buildwin32.sh]</code>. |
− | cd games/
| |
− | git clone https://github.com/minetest/minetest_game.git
| |
− | cd ../
| |
− | </pre> | |
| | | |
− | Build the game (the <code>make</code> command is set to automatically detect the number of CPU threads to use):
| + | To compile a win64 version of Minetest in Linux with [https://en.wikipedia.org/wiki/MinGW MinGW] you can use the build script in <code>[https://github.com/minetest/minetest/blob/master/util/buildbot/buildwin32.sh utils/buildbot/buildwin64.sh]</code>. |
− | <pre>
| |
− | cmake . -DENABLE_GETTEXT=1 -DENABLE_FREETYPE=1 -DENABLE_LEVELDB=1 -DENABLE_REDIS=1
| |
− | make -j$(grep -c processor /proc/cpuinfo)
| |
− | </pre> | |
| | | |
− | Run it:
| + | If you have errors during cross compilation related to std::thread and std::mutex, this is due to mingw-w64 being incorrectly configured for cross compilation. |
− | <pre>
| |
− | cd bin/
| |
− | ./minetest | |
− | </pre>
| |
| | | |
− | * Use <code>cmake . -LH</code> to see all CMake options and their current state.
| + | To fix the errors, use the command: |
− | * If you want to place user data in the same directory as the Minetest build (good for putting on removable media), you will want to use <code>-DRUN_IN_PLACE=1</code>.
| |
− | * You can build a bare server or a bare client by specifying <code>-DBUILD_CLIENT=0</code> or <code>-DBUILD_SERVER=0</code>.
| |
− | * You can select between a Release and Debug build by <code>-DCMAKE_BUILD_TYPE=<Debug or Release></code>.
| |
− | :* Debug build is slower, but gives much more useful output in a debugger. | |
| | | |
− | === Building without Irrlicht / X dependency ===
| + | For 64-bit builds: <code> sudo update-alternatives --config x86_64-w64-mingw32-g++ </code> |
| | | |
− | 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.
| + | For 32-bit Ubuntu Builds: <code> sudo update-alternatives --config i686-w64-mingw32-g++ </code> |
| | | |
− | When invoking CMake, use <code>-DBUILD_CLIENT=0 -DIRRLICHT_SOURCE_DIR=/wherever/you/unzipped/the/source</code>.
| + | For 32-bit Debian Builds: <code> sudo update-alternatives --config i586-w64-mingw32-g++ </code> |
− | | |
− | == 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] or [http://sfan5.duckdns.org/upload/data/oalinst.exe]
| |
− | * [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.8]
| |
− | * 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 library 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://minetest.net/download ''Minetest'']
| |
− | | |
− | === 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/")
| |
− | {{Template: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-compilation ==
| |
− | To compile a win32 version of Minetest in Linux with [https://en.wikipedia.org/wiki/MinGW MinGW] you can use the build script in <code>[https://github.com/minetest/minetest/blob/master/util/buildbot/buildwin32.sh utils/buildbot/buildwin32.sh]</code>.
| |
| | | |
− | == Full Windows build ==
| + | When provided with a prompt for which version to select, please choose "posix". Then retry the buildwin32.sh or buildwin64.sh |
| | | |
− | '''[[Build Win32 minetest including all required libraries]]'''
| + | [[Category:Core Engine]] |
| + | [[Category:Compiling Minetest]] |