File: compiling.htm

package info (click to toggle)
mess 0.146-4
  • links: PTS, VCS
  • area: non-free
  • in suites: wheezy
  • size: 217,984 kB
  • sloc: ansic: 2,503,559; xml: 734,652; objc: 2,382; cpp: 1,215; makefile: 654; sh: 152; asm: 75
file content (177 lines) | stat: -rw-r--r-- 8,183 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en"><head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>compiling_mess</title>
<meta name="generator" content="DokuWiki Darcs --">
<meta name="robots" content="index,follow">
<meta name="date" content="2011-02-19T23:41:04+0100">
<meta name="keywords" content="compiling_mess">
</head>
<body>
<div class="dokuwiki export">




<h1><a name="compiling_mess" id="compiling_mess">Compiling MESS</a></h1>
<div class="level1">

<p>

Compiling <acronym title="Multi Emulator Super System">MESS</acronym> is essentially the same process as building <acronym title="Multiple Arcade Machine Emulator">MAME</acronym>, but after the <code>make</code> or <code>mingw32-make</code> command you add <code>TARGET=mess</code>. Read on for step-by-step instructions.
</p>

<p>
Note: the compiler used for <acronym title="Multi Emulator Super System">MESS</acronym> and <acronym title="Multiple Arcade Machine Emulator">MAME</acronym>
 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. See <a href="http://mess.redump.net/compiling_mess_0136" class="wikilink1" title="compiling_mess_0136">Compiling MESS 0.136</a> for the older instructions.
</p>

</div>
<!-- SECTION "Compiling MESS" [1-485] -->
<h2><a name="setting_up_the_source" id="setting_up_the_source">Setting up the source</a></h2>
<div class="level2">

<p>

<acronym title="Multi Emulator Super System">MESS</acronym> is developed as a patch for the <acronym title="Multiple Arcade Machine Emulator">MAME</acronym> source, so the <acronym title="Multi Emulator Super System">MESS</acronym> source distribution does not include important files like the makefile, which come from <acronym title="Multiple Arcade Machine Emulator">MAME</acronym>.
</p>

<p>
To obtain the complete source from SVN, follow the instructions <a href="http://mess.redump.net/subversion" class="wikilink1" title="subversion">here</a>.
</p>

<p>
Otherwise, <a href="http://mess.redump.net/downloads" class="wikilink1" title="downloads">download the MESS source</a> and the <a href="http://mamedev.org/release.html" class="urlextern" title="http://mamedev.org/release.html" rel="nofollow">MAME source</a> with the same version number. Extract the <acronym title="Multiple Arcade Machine Emulator">MAME</acronym> source into a directory somewhere, then extract the <acronym title="Multi Emulator Super System">MESS</acronym> source overtop of it, overwriting files if prompted.
</p>

</div>
<!-- SECTION "Setting up the source" [486-1027] -->
<h2><a name="setting_up_the_build_tools_on_windows" id="setting_up_the_build_tools_on_windows">Setting up the build tools on Windows</a></h2>
<div class="level2">

<p>

Download the <a href="http://mess.redump.net/build_tools" class="wikilink1" title="build_tools">build tools</a> (or from <a href="http://mamedev.org/tools/" class="urlextern" title="http://mamedev.org/tools/" rel="nofollow">MAMEDev.org</a>) and follow the instructions to install them. To verify your install, open a command line window and try the following:
</p>
<pre class="code">C:\&gt;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.</pre>
<p>
The output should be the same or similar. If there is an error message like this:
</p>
<pre class="code">C:\&gt;gcc --version
'gcc' is not recognized as an internal or external command,
operable program or batch file.</pre>
<p>
Then your path environment variable is not setup correctly. To fix this temporarily, use the following command:
</p>
<pre class="code">C:\&gt;path C:\MinGW\mingw64-w32\bin;%path%</pre>
<p>

(32-bit)
</p>
<pre class="code">C:\&gt;path C:\MinGW\mingw64-w64\bin;%path%</pre>
<p>

(64-bit)
</p>

<p>
If you installed the tools into a different directory, change the location appropriately.

</p>

</div>
<!-- SECTION "Setting up the build tools on Windows" [1028-2104] -->
<h2><a name="building_mess_on_windows" id="building_mess_on_windows">Building MESS on Windows</a></h2>
<div class="level2">

<p>

You are now ready to compile <acronym title="Multi Emulator Super System">MESS</acronym>. To do so, change to the directory where you installed the <acronym title="Multi Emulator Super System">MESS</acronym> (and <acronym title="Multiple Arcade Machine Emulator">MAME</acronym>) sources using the <code>cd</code> command and drive letters. For example:
</p>
<pre class="code">C:\&gt;D:

D:\&gt;cd mess

D:\mess&gt;</pre>
<p>
To start the build process, type &nbsp;&nbsp;<code>make TARGET=mess</code>
</p>
<pre class="code">D:\mess&gt;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
...</pre>
<p>

This builds the code mess executables…
</p>

<p>
When it's finished, you will have a new executable, <code>mess.exe</code>.
</p>

<p>
You will need to create <acronym title="Multi Emulator Super System">MESS</acronym>'s config files before running, to do that, type <code>mess -cc</code>:
</p>
<pre class="code">D:\mess&gt;mess -cc</pre>
<p>
You have now fully compiled <acronym title="Multi Emulator Super System">MESS</acronym>, have fun! :)
</p>

<p>
To compile the <acronym title="Multi Emulator Super System">MESS</acronym> with its Windows UI, add <code>OSD=winui</code>:
</p>
<pre class="code">D:\mess&gt;make TARGET=mess OSD=winui</pre>
<p>
To compile the <acronym title="Multi Emulator Super System">MESS</acronym> tools (chdman, imgtool, etc.), use make all:
</p>
<pre class="code">D:\mess&gt;make all</pre>
<p>
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 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&amp;displaylang=en" class="urlextern" title="http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&amp;displaylang=en" rel="nofollow">HTML Help Workshop</a>), type:

</p>
<pre class="code">D:\mess&gt;make mess.chm TARGET=mess</pre>
<p>
To compile a symbols-enabled version for backtracing add <code>SYMBOLS=1</code>:
</p>
<pre class="code">D:\mess&gt;make TARGET=mess SYMBOLS=1</pre>
</div>
<!-- SECTION "Building MESS on Windows" [2105-3585] -->
<h2><a name="building_mess_on_nix" id="building_mess_on_nix">Building MESS on *nix</a></h2>
<div class="level2">

<p>

Once you've <a href="#setting_up_the_source" title="compiling_mess ↵" class="wikilink1">set up the source</a>, building <acronym title="Multi Emulator Super System">MESS</acronym> on Linux or other UNIX-based systems is simple (assuming you have the appropriate packages installed for make, gcc, etc.):
</p>
<pre class="code">$ make TARGET=mess</pre>
<p>
To compile the <acronym title="Multi Emulator Super System">MESS</acronym> tools (chdman, imgtool, etc.), add <code>tools</code>:
</p>
<pre class="code">$ make TARGET=mess tools</pre>
<p>
<acronym title="Multi Emulator Super System">MESS</acronym> does not provide a 'make install' target at this time; binaries are placed in the top-level <acronym title="Multi Emulator Super System">MESS</acronym> directory.
</p>

</div>
<!-- SECTION "Building MESS on *nix" [3586-4073] -->
<h2><a name="see_also" id="see_also">See also</a></h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> <a href="http://mamedev.org/devwiki/index.php/Building_MAME_using_Microsoft_Visual_Studio_compilers" class="urlextern" title="http://mamedev.org/devwiki/index.php/Building_MAME_using_Microsoft_Visual_Studio_compilers" rel="nofollow">Building MAME using Microsoft Visual Studio compilers</a></div>
</li>
</ul>

</div>
<!-- SECTION "See also" [4074-] --></div>


</body></html>