Compiling EEMame from Source
The following are instructions for compiling EEMame from source
code. Please notice, that the only reason for doing so is if you're a
developer that wants to help making EEMame better, or if you're curious
about the way EEMame works. If you just want to play games with EEMame,
download one of the pre-compiled
versions.
If you do make improvements that you want to share with others,
please send me an e-mail and I'll consider them for the next version!
I will of course find a place on this web site for appropriate
acknowledgments.
Now for the technical stuff. I use Cygwin on my development machine, and
a script or two that are used for building EEMame use a few cygwin
commands. Either start by installing Cygwin (since you're a developer
I'd be surprised if you haven't already), or modify the few scripts to
run without Cygwin. I really tried making the scripts use only DOS
commands, but failed since I'm very poor at DOS. If you make DOS
compatible replacement scripts, I'd be happy to get a copy.
- You need to have the Symbian SDK for the target device installed.
As a part of this, set the environment variable EPOCROOT to point to
the SDK install directory (this might happen automatically). It
should not have a drive letter in it, and must end with a backslash.
- Install ECompXL (available from Peter's Place). If your
target device is not UIQ, you'll have to get the sources and recompile
ECompXL. No or almost no source code changes are necessary (depending
on the target). To compile ECompXL for Symbian 6.1, however, you need
to copy a few include files (for ezlib) from one of the Symbian 7.0
SDKs.
- Unpack the xmame 0.37b7 sources, and change the name of the root
directory to "EEMame".
- Patch the xmame sources with the EEMame patches.
- Set the environment variable EMAMEROOT to point to your source
code directory. Mine is "\cygwin\home\staffanu\EEMame\".
- Set the environment variable EPOC_ARMI_MAKE to "make" or "nmake"
depending on whether the Symbian SDK uses make or nmake to build for
the ARMI target.
- Edit ${EMAMEROOT}/src/epoc/inc/target.h according to the target
device.
- Go to ${EMAMEROOT}/src/epoc/group/scripts and run "armiurel.cmd"
to build EEMame for the target device.
- If you want to build EEMame for the emulator, run "winsudeb.cmd"
instead. When the compile is complete, you will have to edit the file
"EMAME.WINS" and move "MSVCRT.LIB" to after the Symbian libs (in 4
places!), remove the executable (EMAME.APP) and type "nmake -f
EMAME.WINS udeb" to link the program once more.
Some additional compiling hints:
- A full build takes quite a while, so if you're going to do some
development, have look at the "buildall.cmd" script and use
nmake and makmake directly to compile only the parts necessary
after a source code change.
- If you think (like I did) it is a hassle to move around the
libs in the EMAME.WINS makefile, go ahead and change
Epoc32/Tools/cl_win.pl so that it outputs Win32LibList after
the other libs.