HOW TO COMPILE EXULT FOR A QTOPIA PLATFORM
By Artaxerxes (artaxerxes2@iname.com)

note: I'll mostly discuss the Sharp Zaurus SL5500, although I believe any Qtopia platform would do. Let me know otherwise.

Steps:
0- Get the Zlib compiled for the ARM platform
1- Get the SDL compiled for the ARM platform AND for the platform on which you will cross-compile
2- Get all the cross-compiling environment up and running
3- Get the CVS source from exult
4- Modify the source where mentioned herein
5- Compile, strip (don't forget that) and copy to the PDA
6- Run and enjoy

Steps 0, 1, 2, 3 will not be discussed here. However here are the link you need to know:
NOTE: install the development files in /opt/Qtopia/sharp/lib and /opt/Qtopia/sharp/include
0- Zlib: http://www.gzip.org/zlib/
1- libSDL from Alexandre Courbot: http://www.gnurou.org/zaurus/feed/libSDL_1.2.5cvs-1_arm.ipk and http://www.gnurou.org/zaurus/feed/libSDL-mixer_1.2.5cvs-1_arm.ipk
2- Cross-compiling: http://www.zauruszone.farplanet.net/howtos/linux_compiler_setup_howto.shtml
3- Exult: http://exult.sf.net/

CHANGES TO APPLY TO THE SOURCE CODE

sdl-config:
----------
make sure the -Dmain=SDL_main is _REMOVED_


COMPILATION CAVEATS
Don't forget to activate the cross-compiling environment before any cross-compiling work!
( $ source ~/dev-arm-qpe.sh )

./autogen.sh should work on its own
./configure should be passed in the following manner:

NOTE: updated the 2003/07/29
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar CPPFLAGS=-I/opt/Qtopia/sharp/include/ LDFLAGS=-L/opt/Qtopia/sharp/lib/ ./configure -host=arm-embeddix-linux-gnu --disable-exult-studio-support --with-debug=no --disable-exult-studio --disable-gimp-plugin --disable-tools --disable-compiler --enable-data --disable-timidity --disable-kmid --prefix=/opt/Qtopia

NOTE: updated the 2003/02/05
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure arm-embeddix-linux-gnu --disable-exult-studio-support --with-debug=no --disable-exult-studio --disable-gimp-plugin --disable-tools --disable-compiler --enable-data --disable-timidity --disable-kmid
(it's all on one line)

[and no more NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --prefix=/opt/QtPalmtop  --disable-tools  --with-optimization=none --with-debug=full arm-zaurus-linux-gnu]

Exult uses some tools for its compilation. Of course, those tools get compiled by the ARM cross compiler so it won't work on your platform. Make sure you put a hand on "expack" (compiled for your platform) before any work.

It is useless to do a "make install".

Don't forget to strip your binary (it should be around 30MB now). The stripped binary is around 2 or 3 MB big.
$ pwd 
/path/to/exult/sources
$ /opt/Embeddix/tools/arm-linux/bin/strip exult

Copy the binary to the PDA with the method you prefer. Don't forget to copy the exult.flx, exult_bg.flx, exult_si.flx to the PDA also. They should go to the /opt/QtPalmtop/data/ directory.

I find that with or without a swap file, you get a random crash or a random hang.

Launch exult, edit the ~/.exult.cfg created so that it points to where your BG or SI data files are and restart exult!

Congratulations, you are running Exult on your PDA!

Artaxerxes
artaxerxes2@iname.com

DISCLAIMER: this is just an overall indication of the steps to follow. As far as I know, I'm not missing any point. If I do, let me know. I claim no responsabilities for any damage, trouble, distress, frustration caused by cross-compiling exult.
