For builds in a more traditional Symbian build environment, one
expects to have the usual bld.inf and .mmp
files available for the project(s) to be built. The Miso source
distribution has these, but some of the older releases thereof also
have a GNU makefile that is intended for a particular kind of Symbian
build environment, which we refer to as the sdk2unix
environment, for lack of a better name. Such an environment would
appear to be relatively easy to set up on a Linux box, and some other
flavors of Unix might work too, although we haven't tried. This
document briefly explains how to set up such an environment.
recode (for GCC installation)cabextract (for v2.1 SDK installation)wine (for v2.6 SDK installation)unzip (for Python SDK installation)
If everything has gone well, you should be able to compile
an older version of Miso,
one that still supports sdk2unix style builds.
Let's assume that you've installed the v2.1 SDK so
that it's rooted at ~/symbian/series60_v21.
To compile Miso, you'd do something like
export EPOC=$HOME/symbian/series60_v21 export PATH=$HOME/symbian/series60_v21/bin:$PATH cd binaries/series60_v21 make
And that's it. You should now have a miso.pyd, ready
for beaming off to your phone.
It's possible to include Pyrex-generated C code in PyS60 extensions, but unless Pyrex is modified not to generate code that introduces static writable data, it is necessary to enable the static data support "hack" described here; one should beware of address collisions when using this solution.
For an example of how to build extensions using Pyrex and sdk2unix, with static writable data support enabled, try the following:
$EPOC/python-port-s60/symbian_python/symbian/pyconfig.h
so that BAD_STATIC_FORWARD becomes defined; this is not
required for all compilers. (This #define controls the
way that the staticforward and statichere
keywords are defined; Pyrex-generated code includes some of these.) python-pyrex package, and perhaps also
pyrex-mode for Pyrex support in Emacs. .pyx
file to Unix style. s60pyrex/examples/wrapping,
and place this makefile there.
Make sure that the -datalinkaddress specified
in the makefile doesn't clash with that of any other application
that has static writable data support enabled.uiutils.pyd. Send it to your
phone along with test_wrap.py to try using it.