summaryrefslogtreecommitdiffstatshomepage
path: root/docs
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2026-04-03 02:06:01 +1100
committer Vas Crabb <vas@vastheman.com>2026-04-03 02:06:01 +1100
commit93d2609de53dbbfd6b7a4c99ce2f77cbf1def06a (patch)
tree7d292f3079b806d00fc2979f4dddbade26bc6ca6 /docs
parent103a6d2a294e90a74c6a9a634e8a7d259453de53 (diff)
Eliminated many temporary std::string objects.
Also updated compiling documentation. Mentioned the possibility to use the x86-64 clang/libc++/ucrt environment with MSYS2 on Windows. Removed link to tools at mamedev.org - it's trivially easy to get an up-to-date MSYS2 environment by following the instructions.
Diffstat (limited to 'docs')
-rw-r--r--docs/source/initialsetup/compilingmame.rst80
1 files changed, 45 insertions, 35 deletions
diff --git a/docs/source/initialsetup/compilingmame.rst b/docs/source/initialsetup/compilingmame.rst
index b3895e24f02..236742db9ea 100644
--- a/docs/source/initialsetup/compilingmame.rst
+++ b/docs/source/initialsetup/compilingmame.rst
@@ -83,17 +83,11 @@ sources in parallel::
Microsoft Windows
-----------------
-MAME for Windows is built using the MSYS2 environment. You will need Windows 7
-or later and a reasonably up-to-date MSYS2 installation. We strongly recommend
-building MAME on a 64-bit system. Instructions may need to be adjusted for
-32-bit systems. Building for 64-bit ARM (AArch64) requires a 64-bit ARM system
-running Windows 11 or later.
-
-* A pre-packaged MSYS2 installation including the prerequisites for building
- MAME for 64-bit x86-64 can be downloaded from the `MAME Build Tools
- <http://mamedev.org/tools/>`_ page.
-* After initial installation, you can update the MSYS2 environment using the
- **pacman** (Arch package manage) command.
+MAME for Windows is built using the MSYS2 environment. You will need a 64-bit
+version of Windows 10 or later and a reasonably up-to-date MSYS2 installation.
+Building for 64-bit ARM (AArch64) requires a 64-bit ARM system running
+Windows 11 or later.
+
* By default, MAME will be built using native Windows OS interfaces for
window management, audio/video output, font rendering, etc. If you want to
use the portable SDL (Simple DirectMedia Layer) interfaces instead, you can
@@ -107,20 +101,22 @@ running Windows 11 or later.
Using a standard MSYS2 installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You may also build MAME using a standard MSYS2 installation and adding the tools
-needed for building MAME. These instructions assume you have some familiarity
-with MSYS2 and the **pacman** package manager.
+MAME is built for Windows using a standard MSYS2 installation with additional
+packages installed to provide the development tools needed for building MAME.
+These instructions assume you have some familiarity with MSYS2 and the
+**pacman** package manager.
* Install the MSYS2 environment from the `MSYS2 homepage
<https://www.msys2.org/>`_.
-* Download the latest version of the ``mame-essentials`` package from the
- `MAME package repository <https://repo.mamedev.org/x86_64/>`_ and install it
- using the **pacman** command.
-* Add the ``mame`` package repository to ``/etc/pacman.conf`` using
- ``/etc/pacman.d/mirrorlist.mame`` for locations, and disable signature
- verification for this repository (``SigLevel = Never``).
+* Optionally download the latest version of the ``mame-essentials`` package from
+ the `MAME package repository <https://repo.mamedev.org/x86_64/>`_ and install
+ it using the **pacman** command.
+* If you installed the ``mame-essentials`` package, add the ``mame`` package
+ repository to ``/etc/pacman.conf`` using ``/etc/pacman.d/mirrorlist.mame`` for
+ locations, and disable signature verification for this repository
+ (``SigLevel = Never``).
* Install packages necessary to build MAME. At the very least, you’ll need
- ``bash``, ``git``, ``make``.
+ ``bash``, ``git`` and ``make``.
* For debugging you may want to install ``gdb``.
* To build the HTML user/developer documentation, you’ll need
``mingw-w64-x86_64-librsvg``, ``mingw-w64-x86_64-python-sphinx``,
@@ -142,7 +138,7 @@ with MSYS2 and the **pacman** package manager.
The additional packages you’ll need depend on the CPU architecture you’re
building for.
-**64-bit x86-64**
+**64-bit x86-64 (libstdc++/MSVCRT)**
* You’ll need ``mingw-w64-x86_64-gcc`` and ``mingw-w64-x86_64-python``.
* To link using the LLVM linker (generally much faster than the GNU linker),
@@ -155,20 +151,21 @@ building for.
**MSYS2 MinGW 64-bit** shortcut from the start menu to start a Bash shell
configured with the correct paths and environment variables.
-**32-bit x86**
+**64-bit x86-64 (libc++/ucrt)**
-* You’ll need ``mingw-w64-i686-gcc`` and ``mingw-w64-i686-python``.
+* You’ll need ``mingw-w64-clang-x86_64-clang``,
+ ``mingw-w64-clang-x86_64-python`` and ``mingw-w64-clang-x86_64-gcc-compat``.
* To link using the LLVM linker (generally much faster than the GNU linker),
- you’ll need ``mingw-w64-i686-lld``, ``mingw-w64-i686-llvm`` and
- ``mingw-w64-i686-libc++``.
+ you’ll need ``mingw-w64-clang-x86_64-lld``, ``mingw-w64-clang-x86_64-llvm``
+ and ``mingw-w64-clang-x86_64-libc++``.
* To build against the portable SDL interfaces, you’ll need
- ``mingw-w64-i686-SDL2`` and ``mingw-w64-i686-SDL2_ttf``.
-* To build the Qt debugger, you’ll need ``mingw-w64-i686-qt5``.
-* Open the **mingw32.exe** helper from the **msys64** installation folder or the
- **MSYS2 MinGW 32-bit** shortcut from the start menu to start a Bash shell
- configured with the correct paths and environment variables.
+ ``mingw-w64-clang-x86_64-SDL2`` and ``mingw-w64-clang-x86_64-SDL2_ttf``.
+* To build the Qt debugger, you’ll need ``mingw-w64-clang-x86_64-qt5``.
+* Open the **clang64.exe** helper from the **msys64** installation folder or use
+ the **MSYS2 CLANG64** shortcut to start a Bash shell configured with the
+ correct paths and environment variables.
-**64-bit ARM (AArch64)**
+**64-bit ARM (libc++/ucrt)**
* You’ll need ``mingw-w64-clang-aarch64-clang``,
``mingw-w64-clang-aarch64-python`` and ``mingw-w64-clang-aarch64-gcc-compat``.
@@ -178,9 +175,22 @@ building for.
* To build against the portable SDL interfaces, you’ll need
``mingw-w64-clang-aarch64-SDL2`` and ``mingw-w64-clang-aarch64-SDL2_ttf``.
* To build the Qt debugger, you’ll need ``mingw-w64-clang-aarch64-qt5``.
-* Open the **clangarm64.exe** helper from the **msys64** installation folder to
- start a Bash shell configured with the correct paths and environment
- variables.
+* Open the **clangarm64.exe** helper from the **msys64** installation folder or
+ use the **MSYS2 CLANGARM64** shortcut to start a Bash shell configured with
+ the correct paths and environment variables.
+
+**32-bit x86 (libstdc++/MSVCRT)**
+
+* You’ll need ``mingw-w64-i686-gcc`` and ``mingw-w64-i686-python``.
+* To link using the LLVM linker (generally much faster than the GNU linker),
+ you’ll need ``mingw-w64-i686-lld``, ``mingw-w64-i686-llvm`` and
+ ``mingw-w64-i686-libc++``.
+* To build against the portable SDL interfaces, you’ll need
+ ``mingw-w64-i686-SDL2`` and ``mingw-w64-i686-SDL2_ttf``.
+* To build the Qt debugger, you’ll need ``mingw-w64-i686-qt5``.
+* Open the **mingw32.exe** helper from the **msys64** installation folder or the
+ **MSYS2 MinGW 32-bit** shortcut from the start menu to start a Bash shell
+ configured with the correct paths and environment variables.
For example you could use these commands to ensure you have the packages you
need to compile MAME, omitting the ones for configurations you don’t plan to