Compile MESS

Compiling MESS is the same process as building MAME, but after the make command you add TARGET=mess. Read on for step-by-step instructions.

Note: the compile environment used for MESS has changed several times over the years. If you are trying to compile an old version, refer to previous versions of this document:

Setting up the build tools on Windows

Download the build tools installer and perform the installation (this may take some time).

Then run buildtools.bat (plain) or cmder.exe (fancy) to get a command-line environment.

Then run the following commands to install mingw:

For 32 bit OS:

install-mingw32
For 64 bit OS:
install-mingw64

Install SDL (optional):

install-sdl

Install QT (optional, only needed if you want to compile the QT-based debugger interface):

install-qt

Setting up the source

Starting with version 0.162, MESS is included in the MAME source tree, so download the latest MAME source release from the release page and extract it into an appropriate directory, or clone the GitHub repository:

git clone https://github.com/mamedev/mame.git

Note that the latest git revision may not necessarily work or even compile!

Building MESS on Windows

You are now ready to compile MESS. To do so, change to the directory where you installed the 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 (Note capitalization! It will not work if you capitalize MESS here)

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 and creates the mess executables…

When it's finished, you will have a new executable, mess.exe (or mess64.exe for 64-bit).

You will need to create MESS's config files before running, to do that, type mess -cc (or mess64 -cc):

D:\mess>mess -cc

You have now fully compiled MESS, have fun! :)

To compile the MESS tools (chdman, imgtool, etc.), use make all:

D:\mess>make all

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 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

Building MESS on *nix

Once you've set up the source, building MESS on Linux or other UNIX-based systems is simple (assuming you have the appropriate packages installed for make, gcc, etc.):

$ make TARGET=mess

To compile the MESS tools (chdman, imgtool, etc.), add tools:

$ make TARGET=mess tools

MESS does not provide a 'make install' target at this time; binaries are placed in the top-level MESS directory.

See also