©2001-2002 Alfred E. Heggestad GnuPoc HOWTO
The GnuPoc projects main goal is to enable people to write and develop EPOC
applications using alternative operating systems like Linux and other Unices.
It was started in June 2000 because I did not want to run a non-free
operating system on my laptop, so I installed Linux on it instead. I also
wanted to develop free software for EPOC but the EPOC SDKcould only be
installed on Windows. So parts of the toolchain was ported to Unix and the
GCC cross compiler for ARM was recompiled to run under Linux. The toolchain
mostly consists of (non-free) Perl scripts. Makmake was changed to generate
GNU make output instead of the original nmake format. It took about 6 months
to have most parts of the ER5 SDK working, which might be along time for a
skilled hacker (unlike me:) but I had to learn GNU make, perl and Linux, all
at the same time. But it was good fun and also some EPOC projects was
created, only by using Linux.
Today (as of 12. Jan 2002) more EPOC SDKs are ported to Linux, which includes ER5, Quartz 6.0 and Nokia 9200 series (based on Crystal 6.0). Most of the focus is now on the 6.x series of SDKs since ER5 is soon to become obsolete. Also the toolchain for ER6 is superior compared to the old ER5, which includes commands like 'bldmake' and 'abld'. More SDKs will be ported as they are released, the Nokia Series 60 SDK was recently release. We are also doing some research on parallel builds to reduce compilation time and adding new features to the toolchain.
Latest on top.
Version 0.03 (alfredh) 12. October 2002
Version 0.02 (alfredh) 24. July 2002
Version 0.01 (alfredh) 12. January 2002
Alfred E. Heggestad <edmund at roland.org>
Patrick Regnouf <patrick at patricknet.net>
Thanks go to the following people, in no particular order:
Patrick Regnouf, John Pagonis, Giorgio Bernardi, Jonathan Dixon, Mal Minhas, Andre Howe, Rudi Koenig, Olav Flebbe, Eberhard Mattes, Dave Chapman, Ari Koivisto, Jal Panvel, Alfred E. Heggestad, David Mery, Paul Richards, Tim Baverstock, Hans-Dieter Stich, Malcolm Box.
ARM Advanced Risc Machine, a popular 32 bit cpu core for handhelds Crystal one of the DFRD's with 640x200 pixels color screen (e.g. Nokia 9210) Cygwin GNU for Windows, ported by Cygnus and friends DFRD Device Family Reference Design EPOC 32 bit operating system developed by Psion and now Symbian Ltd (also called Symbian OS) ER5 EPOC Release 5 GCC GNU Compiler Collection, formerly refered to as GNU C Compiler GNU GNU is Not Unix, the free software project started by Richard Stallman Perl A fantastic scripting language written by Larry Wall PLP Psion Link Protocol PPC PowerPC, RISC processor using in e.g. Apple Macintosh. PPP Point-to-Point Protocol PVM Parallel Virtual Machine Quartz One of Symbians DFRDs SDK Software Development Kit, you need this to develop applications SMP Symmetric Multi Processing VIM Vi IMproved, a very popular and free editor (also for EPOC!) WINE Wine Is Not an Emulator, win32 emulation layer for x386 Unix
This sections describes how to install GnuPoc on your Unix machine.
Installing GnuPoc is not straight forward. Due to the license of the EPOC SDK
we are not allowed to redistribute the files in the
Instead we distribute a patch, called the gnupoc.patch , which can be
applied on top of the original
/epoc32/tools directory. After patching,
it should work OK on most GNU/Linux machines, asuming x86 architecture.
Please keep the original
/epoc32/tools directory in case you
want to diff them or make patches your self. Also you need the original
tools directory if you want to install an upgraded version of the GnuPoc patch.
You also need Wine and GCC crosscompiler for ARM to fully use this SDK on a Linux machine. It also works with the Microsoft compiler CL.EXE, these come with DevStudio.
The distro for ER5 should come with these files:
install.txt Installation instructions gnupoc.patch.<version> The GnuPoc patch itself makefile Handy GNU makefile for various things fixsdk.pl Perl script for copying the EPOC SDK unixifysdk.sh Script for making the SDK Unix friendly
EPOCROOTto point to this location
$ export EPOCROOT=/epoc/er5cpp
$EPOCROOT/epoc32/directory and cd to epoc32
$ cp -R tools tools_orig
# su -
# ln -s /usr/epoc/epoc32 /epoc32
makmakeand test if it works
Before you can use it, you must have WINE and arm-pe-gcc up and running on your system, see the readme.txt file for more info. It is very important that all files are lowercased and in Unix format before the patch is applied. Otherwise it will not work.
These SDKs include Nokia 9210, Quartz and Nokia Series 60 SDK.
The distro should come with these files
readme.txt Documentation gnupoc.patch.<version> The GnuPoc patch itself makefile Handy GNU makefile for various things fixsrc.pl Perl script for copying the EPOC SDK
# cd /epoc/nokia9210 # fixsrc.pl epoc32 epoc32_clean
# rm -Rf epoc32 # mv epoc32_clean epoc32
# cd epoc32 # tar -xzvf gnupoc.9210.patch.<version>.tar.gz
cp -R tools tools_orig
# cd epoc32 # make apply
This section was contributed by Dave Chapman (dave at dchapman dot com) as a supplement to the default documentations, and modified slightly by alfredh. Thanks Dave!
A working "Wine" installation is required to install and use the SDK. I use the commercial "Codeweavers Crossover Office 1.1.0", but (possibly with the exception of the actual installation) it should work with a standard Wine installation.
If the installation of the SDK fails under your Wine installation, try installing the SDK on a Windows PC, and then copy the files to Linux.
STEP 1 - Install the SDK
This can be done from either the CD-ROM version of the SDK, or the ZIP file. Both are freely available from www.forum.nokia.com/You have to register to download the ZIP file which contains the SDK version 1.2 and is 237MB in size.
If using CD-ROM:
# mount /cdrom # cd /cdrom/cpp
If using ZIP file:
# unzip Nokia_9200_Communicator_Series_SDK_1_2.zip # cd ???/cpp
The subsequent stages are the same for both distributions:
STEP 2 - Copy relevant parts of SDK
Create the final installation directory for GNUPOC. e.g. $HOME/GNUPOC
Then copy (or move) the following directories from the Symbian installation:
# cd GNUPOC # mkdir epoc32-orig # cd epoc32-orig # mv ~/Symbian/6.0/NokiaCPP/Epoc32/Include . # mv ~/Symbian/6.0/NokiaCPP/Epoc32/localisation . # mkdir release # mv ~/Symbian/6.0/NokiaCPP/Epoc32/release/armi . # mv ~/Symbian/6.0/NokiaCPP/Epoc32/release/thumb . # cd .. # mv ~/Symbian/6.0/Shared/EPOC32/Tools tools_orig # cd ..
The above are the minimal amount of files needed. If you wish, you can keep all the files under the "NokiaCPP/Epoc32" directory.
(Optional, but recommended) keep the example files:
# cd $HOME/GNUPOC # mv ~/Symbian/6.0/NokiaCPP/Epoc32Ex . # mv ~/Symbian/6.0/NokiaCPP/NokiaEx . # mv ~/Symbian/6.0/NokiaCPP/UITestSource .
(Optional, but recommended) keep the documentation:
# cd $HOME/GNUPOC # mv ~/Symbian/6.0/Shared/EPOC32/Tools tools
You can then delete the "Symbian" directory.
STEP 3 - Install GNUPOC
Uncompress the gnupoc files:
# cd $HOME/GNUPOC # tar zxvf gnupoc.9210.patch.009.tar.gz
Unixify the epoc32 directory:
# fixsrc.pl epoc32-orig epoc32
[Optional - You can now delete the epoc32-orig directory]
# rm -fr epoc32-orig
Copy the patch files to the epoc32 directory:
# cp makefile gnupoc.9210.patch epoc32/
[Optional - Create a backup of the tools directory:]
# cp -aR epoc32/tools epoc32/tools_orig
Apply the patch:
# cd epoc32 # make apply
[With the 1.2 SDK and gnupoc.9210.009.patch file, you will get 4 failures. These don't seem to affect normal operation]
Fix permissions in tools directory:
# cd tools # chmod +x *.pl bldmake abld
STEP 4 - Install the GCC cross-compiler
As user "root":
# tar zxvf gcc-...... # cd usr/local # mv er6 /usr/local
Create missing "cpp" application. This can just be a link to your existing /usr/bin/cpp: (I am using cpp from gcc 2.95.2)
# cd /usr/local/er6 # ln -sf /usr/bin/cpp arm-epoc-pe-cpp
Add the following two lines to your $HOME/.bashrc file:
export EPOCROOT=/home/dave/GNUPOC/ export PATH=$PATH:/usr/local/er6/bin:/home/dave/GNUPOC/epoc32/tools
You must also have "wine" in your path, and a drive mapping that includes the EPOCROOT directory.
STEP 5 - Compile "Hello World"
Note from alfredh: instead of fixing the source code manually,
you could use the fixsrc.pl Perl script instead to do the job for you.
Latest version can always be found in CVS: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/gnupoc/scripts/fixsrc.pl
First you have to change the source code a bit:
# cd Epoc32Ex/CrystalUI/HelloWorld # mv Bld.inf bld.inf
(GNUPOC expects "bld.inf")
Edit lines 38 and 39 of "HelloWorld.h" as follows to correct file names:
38,39c38,39 < #include <HelloWorld.rsg> < #include "HelloWorld.hrh" --- > #include <helloworld.rsg> > #include "helloworld.hrh"
And line 18 of "HelloWorld.rss":
11c11 < #include "HelloWorld.hrh" --- > #include "helloworld.hrh"
There are similar "inconsistencies" in most of the example applications.
# bldmake bldfiles # abld makefile armi (ignore warning about HelloWorld.rsg) # abld target armi urel
If you see "PETRAN" running, then everything has worked. You will find "HelloWorld.app" and "HelloWorld.rsc" in the following directory:
These can now be installed on the device (e.g. in the 'c:/system/apps/HelloWorld' directory) and tested.
Dave Chapman 23rd July 2002
This section describes how to install the Sony Ericsson P800 SDK and the GnuPoc
patch on your Linux machine.
Getting the SDK itself
The first thing you need to do is get the SDK itself either on a CD-rom or directly from the Sony Ericsson developer site. Go here and get it (requires registration)
You can also use GNU wget to download most of these files (does not require registration)
# wget http://www.ericsson.com/mobilityworld/developerszonedown/downloads/tools/epoc/uiq.z*
In, total you need to get these zip files: uiq.zip, uiq.z?? and optionally the readme/emulator files. This is around 320 Mb of download.
So far so good. To unpack the multi-part zip files, you need WinZip 8.1. These files can not be unpacked with Info-Zip's unzip yet (as of version 5.50). See http://www.info-zip.org
Therefore I went to http://www.winzip.com/, downloaded
WinZip 8.1 and installed it under WINE. It works quite well, and I managed to unpack all the files.
Installing the SDK
At this stage you should have a Setup.exe and some data.cab files and some com.symbian...sdkpkg files. I tried to install this with WINE (wine Setup.exe) but that did not work. You dont need the CAB files so here is what you have to do; First unpack the sdkpkg files using unzip
# for n in `find . -iname "*.sdkpkg"`; do unzip -n $n -d out ; done
You should now have the following sub-directories and files in the 'out' directory:
alfredh@tellus:~/downloads/p800_sdk_unzipped/out$ l total 36 drwxrwxr-x 6 alfredh people 4096 Oct 9 09:32 . drwxr-xr-x 10 alfredh people 12288 Oct 9 09:46 .. drwxrwxr-x 7 alfredh people 4096 Oct 9 09:31 [emul] drwxrwxr-x 3 alfredh people 4096 Oct 9 09:31 [meta] drwxrwxr-x 3 alfredh people 4096 Oct 9 09:31 [sdkroot] drwxrwxr-x 3 alfredh people 4096 Oct 9 09:32 [tools-classes] -rw-rw-r-- 1 alfredh people 1379 Jul 12 17:13 package.xml
You can throw away the [meta] and the [tools-classes] directories, we are only
interrested in the [emul] and [sdkroot] directories. The former contains the
stuff we want and the latter contains some optional examples.
Note from alfredh to myself Already at this point I begin to understand how difficult and troublesome it is to install this SDK on GNU/Linux. And the challenge is yet to come! In the Debian world, which I now live happily in, I would have done 'apt-get install p800sdk' and it was ready to go. Remind me later to do this.
Before we can move on we need to make sure all files and directories are located in the right place and have the right case and so on. The most useful Perl script fixsrc.pl will do most of this job. Run this Perl script on at least the EPOC32/epoc32 directory, optionally on the Example and UIQExamples directories. Remember to set the EPOCROOT environment variable before running fixsrc.pl, it is recommended to set the EPOCROOT to /epoc/p800cpp to unify the directory structure. A useful bash script sdk in CVS/scripts can be used for selection between multiple SDKs on the same system. After doing this, you should have a directory structure that looks something like this:
alfredh@tellus:/epoc/p800cpp$ l total 32 drwxrwxr-x 8 alfredh people 4096 Oct 9 10:36 . drwxrwxrwx 15 root root 4096 Oct 9 10:21 .. drwxrwxr-x 6 alfredh people 4096 Oct 9 09:27 Documentation drwxrwxr-x 15 alfredh people 4096 Oct 9 09:31 Examples drwxrwxr-x 12 alfredh people 4096 Oct 9 09:31 UIQExamples drwxrwxr-x 13 alfredh people 4096 Oct 9 10:34 epoc32
Applying the patch
This procedure is similar to the other SDKs, you unpack the tarball to the $EPOCROOT/epoc32 directory and run 'make apply'. That should be it. It should be noted that the bash and Perl scripts under epoc32/tools must be executable, and that all files in this directory must be lowercase.
# cd /epoc/p800cpp/epoc32 # tar -xzvf gnupoc.p800cpp.patch.<version>.tar.gz # make apply
Now you should be able to build your project, simply go to the directory
where the 'bld.inf' file is located and do 'bldmake bldfiles'. It is also
expected that you will run into problems, but please do not give up so
easily. If something goes wrong, try to understand what the problem is,
and try to debug it. Any feedback to me is welcome.
Happy hacking :)
The following environment variables need to be set:
EPOCROOT- must contain the full path of where the working SDK is installed.
PATH- must contain full path to GCC cross compiler for ARM and the /epoc32/tools directory under
Various scripts comes with the GnuPoc package to help choose between multiple installed SDKS and configuring these environment variables correctly.
The following environment variables is optional, each with a special meaning:
Specify the absolute path of a petran clone, i.e. Eberhard Mattes emximage from the epocemx project. The commandline argument format must be the same as the original petran.exe. The idea behind this is to use the GnuPoc toolchain for non-intel processor types, for example PowerPC, and the original petran.exe will only run on intel CPUs with WINE running on Linux. Since emximage is open source it can also be compiled for e.g. PPC.
If set to something, it probably means that you are interrested in parallel builds. In this case the hostname of the machine is printed for the compilation of each object files, and also make -j is specified instead of make, to spawn multiple jobs. Optionally we could also check for SMP systems to automatically use 'make -j' instead of 'make'.
For x86 .exe programs to run correcly (petran.exe, rcomp.exe) you must also
include the root of the SDK in the WINE configuration file. This normally
resides under the users home directory and is called
[Drive H] "Path" = "/epoc/er5cpp" "Type" = "network" "Label" = "ER5 SDK" "Filesystem" = "win95" [Drive I] "Path" = "/epoc/n9210cpp" "Type" = "network" "Label" = "Nokia 9210 SDK" "Filesystem" = "win95"
/hellu/group/blf.inf \\ group/hellu.mmp \\ src/hellu.cpp \\
The bld.inf file contains build information about the project, for example which platforms are supported and a list of .mmp files. The hellu.mmp is the toplevel project file for hellu.exe and contains a list of which cpp files to use, etc. The source file hellu.cpp is the only source file in this project and contains some very simple code.
To start building the project, go to the group directory and type 'bldmake bldfiles'
# cd /hellu/group # bldmake bldfiles
This will generate the necessary makefile in the $EPOCROOT/epoc32/build/...
directory which are used later to generate makefiles, export header files,
build the code and so on.If you update a .cpp or .h file it should not be
necessary to do this again, only if you update the bld.inf file. This of almost
like ./configure in most Unix programs. Adding the option -v after bldmake
gives increased verbosity.
To create makefiles (GNU makefiles) do the following, still in group dir:
# abld makefile armi
where armi specifies the platform to build for. abld without arguments gives a list of available platforms. Also here you can add the -v flag after abld to get verbose output.
NOTE! Unlike the original SDK, we do not generate the ABLD.BAT (or abld) file
in the current directory. Instead a bash script file called 'abld' is always
located in the $EPOCROOT/epoc32/tools directory which does the same thing.
This improves this SDK a little since no files are created in your project
To build the code using the newly created makefile:
# abld target armi urel
where armi is the platform and urel is the build variant (udeb=unicode debug,
urel=unicode release). This should compile all the code and create a file
called hellu.exe in the $EPOCROOT/epoc32/release/armi/urel directory.
Transfer it to your EPOC device and see if it works...
Other things you can do:
# abld export # export files given in bld.inf under PRJ_EXPORT # abld clean # clean temporary files # abld reallyclean # clean everything
This section has some information about which SDKs are supported and which
SDK you should choose for your EPOC device.
The following SDKs are ported to GnuPoc :
This section describes how to connect your Unix machine to your EPOC device and send files and IP packets between them.
For ER5 machines (Psion Series 5, netBook, Osaris, etc) we can recommend the plptools program. It implements the PLP protocol (Psion Link Protocol) which is built into all ER5 machines. A serial cable or infra-red can be used to connect the EPOC machine to your Unix box.
We recommend mounting on the default path
/mnt/psion because then
you should be able to use most makefiles with the target install
This is how it looks like when you do
ls -al /mnt/psion
# ls -al /mnt/psion total 7 dr-x------ 6 alfredh alfredh 512 Jan 12 17:37 . drwxr-xr-x 19 root root 4096 Jan 6 16:23 .. drwx------ 30 alfredh alfredh 512 Jan 12 20:52 C: drwx------ 14 alfredh alfredh 512 Jan 12 20:52 D: drwx------ 8 alfredh alfredh 512 Jan 12 20:52 proc dr-x------ 3 alfredh alfredh 512 Jan 12 20:52 Z:
We also recommend mounting the device as your username, not as root. This is done by specifying this argument to
daemon /usr/sbin/plpnfsd -u alfredh
A shell script file called psion comes with the plptools package
and is normally located in
/etc/rc.d/init.d/ (Red Hat) or
The main difference between PLP for ER5 and ER6 is that ER5 is ASCII and ER6 is Unicode, hence all file names must be handled differently. I started porting plptools to ER6 but gave up when I found another nice program by Rudi Koenig called p3nfs, which also mounts the EPOC device as a NFS share in Unix, but is using its own protocol between the EPOC device and the Unix box. In my opinion p3nfs is simpler but faster than PLP. If you want to know how far I got with porting plptools to ER6, you can download the source code from here
We recommend mounting the ER6 device as
/mnt/nokia due to consistency
with makefiles for installing programs on the device. Same as plptools,
it is best to mount the device as your user instead of root.
This command will mount a Nokia 9210 to serial port 1 with baudrate 115200 kbit/s as the user alfredh.
/usr/bin/p3nfsd -tty /dev/ttyS0 -series5 -oldnfsc -speed 115200 -dir /mnt/nokia -noflow -user alfredh
Before starting the p3nfsd daemon on the Unix side you must also start the program on the ER6 device, called nfsclient. Now, the question is, how do you transfer this program to the 9210 in the first place? Some options:
A similar shell script to plptools's psion also exist for p3nfs,
which in my case is called nokia . Major parts of it looks like
this and is located in the
/etc/rc.d/init.d directory (Red Hat)
case "$1" in start) echo -n "Starting Nokia support: " daemon /usr/bin/p3nfsd -tty /dev/ttyS0 -series5 -oldnfsc -speed 115200 -dir /mnt/nokia -noflow -user alfredh echo touch /var/lock/subsys/nokia ;; stop) echo -n "Shutting down Nokia support: " ls /mnt/nokia/exit echo rm -f /var/lock/subsys/nokia ;;
The nfsclient program on the EPOC device also supports autoexecution of .exe files, this is very handy for development. If you are developing a .exe program on Unix, using GnuPoc or other EPOC SDKs for Unix, you can improve the development cycle drastically by using makefiles for automation. Example:
# # Makefile for snus project # MOUNTDIR="/mnt/nokia" INSTALL="$(MOUNTDIR)/C:/snus.exe\ TARGET=$(EPOCROOT)/epoc32/release/armi/udeb/snus.exe all: $(TARGET) install: $(TARGET) cp -f $(TARGET) $(INSTALL) $(TARGET): abld -v build armi udeb
This makefile should be located in your projects root directory. When the
device is connected to your Unix box and you want to compile and test your
code, all you have to type is
make install. What will happen then is:
No matter how fast we can build the code, we will always try to improve the build times. Some of the things that could be done are:
# # make # exec gmake -j 2
The number '2' means number of jobs (=number of CPUs), by leaving out the number it will spawn infinite number of jobs. Try both.
Updated 24. July 2002 I have now access to a Dual Athlon machine with 3060.53 bogomips per CPU running kernel 2.4.18. The next version of the patch (probably version 0.10) for 9210 SDK will have builtin SMP support. Yes, it compiles *very* fast! Benchmarks coming later...
Add these two entries to
/dev/shm /tmp tmpfs defaults 0 0 /dev/shm /epocroot/epoc32/build tmpfs defaults 0 0
and mount them:
# mount /tmp # mount /epocroot/epoc32/build
You need to make sure that you have support for tmpfs in your kernel, in Linux the way to do it is:
# cat /proc/filesystems
and look for 'tmpfs'. If it is not there try
# modprobe tmpfs
# grep tmpfs /usr/src/linux/.config
This section describes how to setup your Unix box as a PPP server and how to enable internet connectivity for EPOC devices.
If you are developing internet applications for EPOC and you want to get internet access, you probably dont want to dial out with a modem and spend hundreds of dollars during development. A much cheaper, faster and robust solution is to connect your EPOC device either via serial cable or infra-red to your Unix box, and start the pppd (PPP server) on the Unix machine.
The first thing you have to do is write the ppp scripts that pppd will use,
a good example can be this script, located in
# # /etc/ppp/peers/psion # noauth /dev/ttyS1 115200 crtscts lock passive persist silent local proxyarp netmask 255.255.255.0 192.168.1.5:192.168.1.6 # or anything else ms-dns 184.108.40.206
Do not require the peer to authenticate itself.
The serial port to use, in this case COM2
Which baudrate to use, 115200 kbit/s is max for standard PCs
Do not exit after a connection is terminated; instead try to reopen the connection
Wait for LCP packets from EPOC device
Lock the serial port
Use hardware flow control (RTS/CTS) Most ER5 devices have this, but not the Nokia 9210
Ignore the CD (Carrier Detect) signal
Add the IP adress of EPOC device to the ARP table, so it becomes visible on the net
This is our private subnet
Local:Remote adress (Remote is EPOC device)
IP adress of the DNS server
Now you can try to start the PPP server by typing (as root):
# pppd call psion
You should be able to see the activity of pppd in the syslog (
To check that the server is still running:
# ps awx | grep pppd
To kill the server:
# killall pppd
Please note that you can not run plptools and PPP server at the same time, on the same serial port.
Now let us configure the EPOC device, in this example a Psion netBook (ER5):
Test the connection by starting your favourite Web browser (Opera?) and go to www.google.com. You should get a dialog box, then select the new ISP we just defined. Remember that you have to disable PLP locally aswell, try Ctrl-L to disble it.
For ER6 devices it should be similar procedure but I have not tried with Nokia 9210 yet. If anyone has more info please send it to us.
Rudi Koeniglich's SDK for Linux
www.science-computing.de/o.flebbe/sdk Olaf Flebbe's SDK for Linux
http://www.ocs.cz/xsdk/ XSdk for Linux and Mac
This section describes the various programs that are needed for GnuPoc and which version of them we recommend. GnuPoc might also work with versions of programs that are not on this list. If you find any other versions of programs that work on your system, please send the information to us, see the Contact Info section.
Most recent versions of WINE work with GnuPoc . If you want to install a userfriendly version of WINE quickly, we can recommend the version from CodeWeavers. We can also recommend compiling the source from scratch or perhaps the Debian version.
This list indicates which versions you can use for GnuPoc : (latest on top)
wine-20020605 (compiled from source)
Debian wine 0.0.20020411-1 in woody
OK except aiftool.exe
wine-20020310 (Codeweavers Crossover Office 1.1.0)
OK - setup.exe also works :)
(petran does not work)
www.winehq.org/ Wine headquarters
Type 'wine -v' or 'rpm -q wine' to get the version number.
Type 'apt-get install wine wine-utils winesetuptk' if you are using Debian GNU/Linux.
Perl is needed by makmake, abld, bldmake and the rest of the toolchain, which is mostly written in Perl. The original version requires Perl version XXX, so we suggest you stick to that version or a later one. This list indicates which versions of Perl you can use for GnuPoc :
Perl v5.6.1 (Debian 5.6.1-7)
Type 'perl -v' or 'rpm -q perl' to get the version number.
Type 'apt-get install perl' if you want to install it on a Debian GNU/Linux system. (you probably already have it installed:)
Debian GNU make 3.79.1-14
GNU Make version 3.79.1
GNU Make homepage
Type 'apt-get install make' if you want to install it on a Debian GNU/Linux system. (you probably already have it installed:)
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96.81)
gcc 2.95.2 (SUSE 7.1)
arm-pe-gcc: gcc driver version cygnus-2.7.2-960323 (Psion GCC tools v113 05/03/1997)
Type 'arm-pe-gcc -v' to get version number.
arm-epoc-pe-gcc version 2.9-psion-98r2 (Symbian build 539)
Type 'arm-epoc-pe-gcc -v' to get version number.
Working versions of bash:
bash-2.05a-11 for Debian GNU/Linux OK bash 2.04.0(1)-release (SUSE 7.1) OK GNU bash, version 2.04.21(1)-release bash-2.04-21.rpm OK
Only tested OK on Intel Pentium II and III so far
Quickly tested on a PowerMac 8200, my notes are in CVS here:
www.sleeper-service.org/game/9210_Game.html Shoot-em-up game by Kenny Guy www.edmund.roland.org/e32frodo/ E32Frodo Commodore 64 emulator for Epoc www.edmund.roland.org/sidplay/ Esidplay Commodore 64 SID tune player for Epoc www.edmund.roland.org/vim/ Vi Improved editor for Epoc
plptools.sourceforge.net PLP tools homepage www.koeniglich.de p3nfs homepage www.symbian.com/ Symbian homepage www.symbiandevnet.com/ Symbian developer network homepage www.nokia.com/ Nokia homepage www.forum.nokia.com/ Nokia developer homepage www.america.forum.nokia.com/ Nokia U.S. developer homepage www.winehq.org/ Wine headquarters www.codeweavers.com/ Code Weavers
This section describes how the toolchains work internally and which files does what in the build process.
TODO - emxpanic, file logging, etc...
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.47)
Copyright © 1993, 1994, 1995, 1996,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 gnupoc_howto.tex
The translation was initiated by Alfred E. Heggestad on 2005-02-08