Difference between revisions of "Compiling Minetest"

From Minetest Developer Wiki
Jump to navigation Jump to search
(link to my MSYS2 compilation guide)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{Mbox|type=warning|text=
 +
'''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!''
 +
}}
 +
 
''This page is about compiling Minetest for desktop platforms. For compiling Minetest for Android, see [[Android]].''
 
''This page is about compiling Minetest for desktop platforms. For compiling Minetest for Android, see [[Android]].''
  
 
== Compiling on GNU/Linux ==
 
== Compiling on GNU/Linux ==
Install the dependencies using the commands provided in the [https://github.com/minetest/minetest#compiling README.md file].
+
Please see the [https://github.com/minetest/minetest#compiling-on-gnulinux README.md file] for instructions.
 
 
=== System-wide binary using default configuration ===
 
 
 
Build the game (the <code>make</code> command is set to automatically detect the number of CPU threads to use):
 
<pre>
 
cd /path/to/minetest_code/
 
cmake .
 
make -j$(grep -c processor /proc/cpuinfo)
 
# Run in
 
minetest
 
</pre>
 
 
 
=== Run-in-place binary using default configuration ===
 
 
 
This option will place user data in the same directory as the Minetest build (suitable for removable media).
 
<pre>
 
cd /path/to/minetest_code/
 
cmake . -DRUN_IN_PLACE=1
 
cd bin/
 
./minetest
 
</pre>
 
 
 
* Use <code>cmake . -LH</code> to see all CMake options and their current state.
 
* 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 ===
 
 
 
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.
 
 
 
<pre>
 
git clone minetest/minetest -b stable-5
 
git clone minetest/irrlicht -b 1.9.0mt7
 
cd minetest
 
cmake . -DRUN_IN_PLACE=0 -DBUILD_CLIENT=0 -DBUILD_SERVER=1 -DIRRLICHT_INCLUDE_DIR=../irrlicht/include
 
make -j7
 
</pre>
 
  
 
=== See also ===
 
=== See also ===
Line 46: Line 13:
  
 
== Compiling on Windows ==
 
== Compiling on Windows ==
Please see the [https://github.com/minetest/minetest#compiling-on-windows-using-msvc Minetest README].
+
For compiling Minetest on Windows using MSYS2, see [https://wiki.voxelmanip.se/Compiling_on_Windows_using_MSYS2 Compiling on Windows using MSYS2].
 +
 
 +
For compiling Minetest on Windows using MSVC, see the [https://github.com/minetest/minetest#compiling-on-windows-using-msvc Minetest README].
  
 
== Cross-compilation ==
 
== Cross-compilation ==

Latest revision as of 10:06, 11 December 2023

Mbox warning.png This page is redundant with the compilation instructions that exist in the Minetest README
Link to the appropriate section in the README rather than here, and update any links that point to here!

This page is about compiling Minetest for desktop platforms. For compiling Minetest for Android, see Android.

Compiling on GNU/Linux

Please see the README.md file for instructions.

See also

Compiling on Windows

For compiling Minetest on Windows using MSYS2, see Compiling on Windows using MSYS2.

For compiling Minetest on Windows using MSVC, see the Minetest README.

Cross-compilation

To compile a win32 version of Minetest in Linux with MinGW you can use the build script in utils/buildbot/buildwin32.sh.

To compile a win64 version of Minetest in Linux with MinGW you can use the build script in utils/buildbot/buildwin64.sh.

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.

To fix the errors, use the command:

For 64-bit builds: sudo update-alternatives --config x86_64-w64-mingw32-g++

For 32-bit Ubuntu Builds: sudo update-alternatives --config i686-w64-mingw32-g++

For 32-bit Debian Builds: sudo update-alternatives --config i586-w64-mingw32-g++

When provided with a prompt for which version to select, please choose "posix". Then retry the buildwin32.sh or buildwin64.sh