 
The MAME development environment for Windows consists of the GCC compiler (by way of MinGW), and the MSYS2 (POSIX/Unix compatability layer), plus various utilities such as Python and Git. It is available as a prepackaged installer, or can be assembled from upstream components.
Source control is handled by github (https://github.com/mamedev/mame.git), so you'll need to check out a copy. Various modules are disabled by default, such as the MAME interactive debugger, but can be enabled through arguments when building and may require additional MSYS2 packages to be installed.
If you are installing it in a location other than the default (c:\msys64 or c:\msys32), after you unpack double-click : autorebase.bat
To open a non-posix shell there are two batch files: win32env.bat for regular windows console.
Important thing is to setup your git environment first
git config --global core.autocrlf trueAnd if you are contributor
git config --global user.email youremail@something.com
git config --global user.name "Firstname Lastname"Then, to download the MAME source under your Msys2 user's homedir:
git clone https://github.com/mamedev/mame.gitAlternatively, locate your existing source tree (drives are mapped to hidden dirs /c etc. under the virtual root):
cd /c/Projects/mameAnd finally to build:
makeSimilar to package managers on Linux like apt-get, yum etc. MSYS2 can automatically update packages for fixes, security updates etc. To update all installed packages to current, from a regular Windows console run the following:
pacman -Sy
pacman -S bash pacman msys2-runtime --noconfirm --neededNext, exit the console and restart Msys2.
Finally, once back at the console, execute:
pacman -Su --noconfirmFor a simple MSYS32 terminal use mingw64.exe to start or mingw32.exe.
For more information about Msys2, see MSYS2 Introduction.
If you wish to build with the SDL renderer:
For x64
   pacman -S mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_ttfFor x86
   pacman -S mingw-w64-i686-SDL2 mingw-w64-i686-SDL2_ttfIf you wish to build with the QT5 debugger:
For x64
   pacman -S mingw-w64-x86_64-qt5For x86
   pacman -S mingw-w64-i686-qt5If you with to build the QMC2 frontend or similar:
For x64
   pacman -S mingw-w64-x86_64-qt4For x86
   pacman -S mingw-w64-i686-qt4To be able to generate the documentation from the source:
   pacman -S doxygen To be able to use ccache to speed-up (re)compilation
For x64
   pacman -S mingw-w64-x86_64-ccache For x86
   pacman -S mingw-w64-i686-ccache Used as build system for some other project that can be handy
For x64
   pacman -S mingw-w64-x86_64-cmake For x86
   pacman -S mingw-w64-i686-cmake To build in Windows environment use from build folder:
   cmake -G "MinGW Makefiles" .. -DCMAKE_MAKE_PROGRAM=c:\msys64\win32\make.exeTo build in MSYS environment use from build folder:
   cmake -G "MSYS Makefiles" ..If you wish to compile/link with the alternative Clang, go ahead and download STILL EXPERIMENTAL:
For x64
   pacman -S mingw-w64-x86_64-clang mingw-w64-x86_64-clang-analyzer mingw-w64-x86_64-clang-tools-extra For x86
   pacman -S mingw-w64-i686-clang mingw-w64-i686-clang-analyzer mingw-w64-i686-clang-tools-extra