====== Compiling MESS ======
The compiler used for MESS and MAME on Windows has changed starting with version 0.137. You will need to download a new set of build tools if you were previously set up for compiling 0.136.
Compiling MESS is essentially the same process as building MAME, but after the ''make'' or ''mingw32-make'' command you add ''TARGET=mess''. Read on for step-by-step instructions.
===== Setting up the source =====
To obtain the complete source from SVN, follow the instructions [[subversion|here]].
Otherwise, [[downloads|download the MESS source]] and the [[http://mamedev.org/release.html|MAME source]] with the same version number. Extract the MAME source into a directory somewhere, then extract the MESS source overtop of it, overwriting files if prompted.
===== Setting up the build tools (0.137 and later) =====
Download the [[build tools]] (or from [[http://mamedev.org/tools/|MAMEDev.org]]) and follow the instructions to install them. To verify your install, open a command line window and try the following:
C:\>gcc --version
gcc (GCC) 4.4.3 20091223 (prerelease) r155431
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The output should be the same or similar. If there is an error message like this:
C:\>gcc --version
'gcc' is not recognized as an internal or external command,
operable program or batch file.
Then your path environment variable is not setup correctly. To fix this temporarily, use the following command:
C:\>path C:\MinGW\mingw64-w32\bin;%path%
(32-bit)
C:\>path C:\MinGW\mingw64-w64\bin;%path%
(64-bit)
If you installed the tools into a different directory, change the location appropriately.
===== Building MESS (0.137 and later) =====
You are now ready to compile MESS. To do so, change to the directory where you installed the MESS (and MAME) sources using the ''cd'' command and drive letters. For example:
C:\>D:
D:\>cd mess
D:\mess>
To start the build process, type ''make TARGET=mess''
D:\mess>make TARGET=mess
mkdir.exe -p obj/windows/mess
mkdir.exe -p obj/windows/mess/build
mkdir.exe -p obj/windows/mess/emu/audio
mkdir.exe -p obj/windows/mess/emu/cpu
mkdir.exe -p obj/windows/mess/emu/cpu/apexc
...
This builds the code mess executables...
When it's finished, you will have a new executable, ''mess.exe''.
You will need to create MESS's config files before running, to do that, type ''mess -cc'':
D:\mess>mess -cc
You have now fully compiled MESS, have fun! :)
To compile the MESS UI, add ''MESSUI=1'':
D:\mess>make TARGET=mess MESSUI=1
To compile the MESS tools (chdman, imgtool, etc.), add ''tools'':
D:\mess>make TARGET=mess tools
If you are building on a windows platform and you want to build the mess.chm help file (you will need to have installed the [[http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en|HTML Help Workshop]]), type:
D:\mess>make mess.chm TARGET=mess
To compile a symbols-enabled version for backtracing add ''SYMBOLS=1'':
D:\mess>make TARGET=mess SYMBOLS=1
===== Setting up the build tools (0.136 and earlier) =====
Download the [[build tools]] (or from [[http://mamedev.org/tools/previous-20070810.html|MAMEDev.org]]) and follow the instructions to install them. To verify your install, open a command line window and try the following:
C:\>gcc --version
gcc (GCC) 4.2.1-sjlj (mingw32 sjlj-unwind)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The output should be the same or similar. If there is an error message like this:
C:\>gcc --version
'gcc' is not recognized as an internal or external command,
operable program or batch file.
Then your path environment variable is not setup correctly. To fix this temporarily, use the following command:
C:\>path C:\mingw\bin;%path%
If you installed the tools into a different directory, change the location appropriately.
===== Building MESS (0.136 and earlier) =====
You are now ready to compile MESS. To do so, change to the directory where you installed the MESS (and MAME) sources using the ''cd'' command and drive letters. For example:
C:\>D:
D:\>cd mess
D:\mess>
To start the build process, type ''mingw32-make TARGET=mess'':
D:\mess>mingw32-make TARGET=mess
mkdir.exe -p obj/windows/mess
mkdir.exe -p obj/windows/mess/build
mkdir.exe -p obj/windows/mess/emu/audio
mkdir.exe -p obj/windows/mess/emu/cpu
mkdir.exe -p obj/windows/mess/emu/cpu/apexc
...
When it's finished, you will have some new executables, among them ''mess.exe'' and ''messui.exe''.
You will need to create MESS's config files before running, to do that, type ''mess -cc'':
D:\mess>mess -cc
You have now fully compiled MESS, have fun! :)
To compile a symbols-enabled version for backtracing add ''SYMBOLS=1'':
D:\mess>mingw32-make TARGET=mess SYMBOLS=1
===== See also =====
* [[http://mamedev.org/devwiki/index.php/Building_MAME_using_Microsoft_Visual_Studio_compilers|Building MAME using Microsoft Visual Studio compilers]]