
I love my P800, but haven't been able to make much headway in developing for it because the SDK requires Windows. The GnuPoc project have done some neat work in getting the Symbian P800 SDK to run under Linux, but it still requires a bit of fiddling around.
Fellow P800 owner Dan Brickley piqued my interest in this SDK (we're currently musing over neat FOAF apps that could run on phones), and so this afternoon I got it all up and running. This is how I did it.
First, read the GnuPoc HOWTO, the instructions there are still pretty accurate. When downloading the SDK don't bother with the April 8 2003 update zip, this won't work with the patches.
After installing Wine and extracting the zip files, you need to run the fixsrc.pl script referenced in the HOWTO. The point of this script is to unmangle some of the problems caused by the transition from a case insensitive to case sensitive filesystem. The following should work OK:
fixsrc.pl EPOC32 /my/target/epoc32 fixsrc.pl Epoc32 /my/target/epoc32 fixsrc.pl epoc32 /my/target/epoc32 fixsrc.pl UIQExamples /my/target/uiqexamples
When this is done, you need to patch the epoc32 directory. Unfortunately
the patch available from GnuPoc is somewhat incomplete and out of date.
The fruit of my labours today (I have never in my life seen such a tangled
web of Perl before!) resulted in a new patch, which I will send along to the GnuPoc folk.
Change to your epoc32 directory and apply it with:
gzip -dc /path/to/gnupoc-edmundd.patch.gz | patch -p1
Then do a chmod +x * in the epoc32/tools directory.
You also need to install the ARM gcc cross compiler available from GnuPoc, and
ensure its bin directory is in your path. Referring to the
GnuPoc HOWTO, set up your EPOCROOT and PATH variables
accordingly.
One little quirk remains: the uidcrc.exe program should be copied from
epoc32/tools into your $HOME/.wine/fake_windows/Windows directory.
Now that's done you should be ready to rock. Change into the
uiqexamples/shapes directory, and issue the following commands to build
the example:
bldmake bldfiles abld build armi urel
This results in a .app file in epoc32/releases/armi/urel and a .rsc file
in epoc32/data/z/system/apps/shapes/. Take note of these locations and
adjust the .pkg file accordingly. Then run makesis shapes.pkg and you
will get a shapes.sis file. This can then be beamed or otherwise transferred
onto your P800 and installed.
After all that, you get to play with a small app which draws circles and squares. Whew!
Though the P800 supports development in both C++ and Java, it needs C++ if you want to use hardware resources such as Bluetooth. Unfortunately I doubt the P800 emulator can be made to run on Linux, so it looks like there's going to be a fairly heavy make/install development cycle.
As I said at the beginning, I love my P800, but it sure is hard to hack for. I suspect that when phones running .NET become popularly available they'll get a real boost from general ease of development. However, whether Linux users will gain much from that, I don't know. If the SDKs are 100% managed code then I guess there's a chance it'll run under Mono.
Please don't mail me asking for more information, as this is as far as I've got. You should also read Dan Brickley's documentation of this adventure, as it is more precise in recording the detail than I have been. There's a lot more of this SDK left to get working, but at least some of the examples now build and install.