Here are some instructions for building MESS from source.
Linux and other Unix variants
If you decide to build MESS from source code in Linux, you should probably directly use the git repository on Github since bugs are corrected very quickly (and new ones are as quickly introduced ...).
Version 0.171 and higher
- gcc / gcc-c++ version 5 or higher
- Development package of alsa
- Development package of gconf2
- Development package of gtk2
- Development package of the SDL2 library
- Development package of the SDL2_ttf library
- Development package of the Qt5Core library
Use git to clone the repository to your local drive:
git clone https://github.com/mamedev/mame.git
Ubuntu users need to make use of the apt-get command or check the software repository tools. For Ubuntu 15.10 and newer, the following packages are required:
sudo apt-get install git sudo apt-get install qt5-default sudo apt-get install libsdl2-ttf-dev sudo apt-get install libfontconfig1-dev
This set of package installations also imports gcc/gcc-c++ and make.
For an openSUSE installation, either use YaST or (if not already installed) follow this path:
sudo zypper install git-core sudo zypper install gcc-c++ sudo zypper install libqt5-qtbase-devel sudo zypper install xorg-x11-devel sudo zypper install alsa-devel sudo zypper install libSDL2_ttf-devel
You can just build the complete MAME package by running make; it includes the whole MESS emulator. If you only want the MESS part, use
make SUBTARGET=mess REGENIE=1 TOOLS=1
REGENIE should be specified, since the GENie project generator tool is used for building. TOOLS will generate the additional helpers imgtool, chdman, and others. You probably don't need them if you use TIImageTool.
If you only want the TI systems to be included, you may specify them in the command line:
make -j4 SOURCES=src/mame/drivers/ti99_4x.cpp,src/mame/drivers/ti99_4p.cpp,src/mame/drivers/ti99_8.cpp,src/mame/drivers/geneve.cpp,src/mame/drivers/ti99_2.cpp REGENIE=1 TOOLS=1
The -j4 switch is used to start 4 build jobs concurrently, which speeds up the compilation considerably.
You must make sure that your build environment is not too old. GCC should be at least version 7. You can also use clang by
When you want to get a current version, use the git pull command. Cleaning the build environment is optional, but if you experience problems when compiling, try to clean first.
git pull make clean
After compiling has finished, you should have a freshly built mame64 executable file.
Compiling only for TI family
Since MAME 0.174 you can compile a system-specific version of MAME, which means you can throw out all unneeded drivers. You just have to provide the path names of the drivers which you are interested in:
make -j4 TOOLS=1 OVERRIDE_CC=gcc-5 OVERRIDE_CXX=g++-5 SOURCES=src/mame/drivers/ti99_4x.cpp,src/mame/drivers/ti99_8.cpp,src/mame/drivers/geneve.cpp,src/mame/drivers/ti99_4p.cpp REGENIE=1
The REGENIE=1 setting is important so that the build scripts are automatically changed.