Mobile/Symbian/NSPR
From MozillaWiki
Contents
What's Up
In short: Building NSPR for Symbian.
Complete one: Building NSPR with source from http://mozilla-symbian.googlecode.com for Symbian OS/S60 3rd Edition FP1 platform by using gnu-make/msys.
Prerequisites
- Windows XP or compatible
- S60 SDK 3rd Edition FP1
- Prerequisites for S60 SDK: Active Perl EXACTLY V5.6.1.638, no earlier no later and JRE v1.5 (JRE is not required)
- Open C Plugin for S60 SDK
- Mozilla-build v1.3
- MINGW latest
- Make sure to select "g++" during the install process
Procedures
- Install all prerequisites, I recommend installing everything on Drive C, default path.
- Add paths to environment variable $PATH, some of them are added by tools installation:
- c:\mingw\bin (MUST be the first, or at least earlier than any Symbian build tool chain related path)
- c:\program files\csl arm toolchain\bin (this should be added by GCCE tools installation)
- c:\symbian\9.2\s60_3rd_fp1\epoc32\tools (MUST place this earlier than "c:\program files\common\symbian\tools" which is added by SDK installation)
- c:\mozilla-build\svn-win32-1.4.2\bin
- c:\mozilla-build\moztools\bin
- Add environment variables:
SYMBIAN_SDK_PATH = /c/symbian/9.2/S60_3rd_FP1/ ACTIVE_PERL = /c/perl/bin/perl.exe CC_INSTALL_PATH = /c/program\ files/CSL\ ARM\ Toolchain/
- Fix a header file bug: in $EPOCROOT/Epoc32/include/e32def.h, change:
static const char* const KSuppressPlatSecDiagnostic = KSuppressPlatSecDiagnosticMagicValue;
into
#if defined(__cplusplus) static const char* const KSuppressPlatSecDiagnostic = KSuppressPlatSecDiagnosticMagicValue; #endif
- Deal with header files
c: cd \symbian\9.2\s60_3rd_fp1\epoc32\include move prtypes.h prtypes.h.orig cd variant copy Symbian_OS_v9.2.hrh Symbian_OS.hrh
- Checkout source from google code
svn checkout http://mozilla-symbian.googlecode.com/svn/trunk/ mozilla-symbian
- Start msys by invoking c:\mozilla-build\msys\msys.bat, assuming your source is checked out at c:\mozilla-symbian then:
For device(GCCE) build:
cd /c/ mkdir gobj cd gobj ../mozilla-symbian/nsprpub/configure --target=arm-none-symbianelf --enable-symbian-target=GCCE --disable-debug make cd pr/tests make
For emulator(WINSCW) build:
cd /c/ mkdir wobj cd wobj ../mozilla-symbian/nsprpub/configure --target=arm-none-symbianelf --enable-symbian-target=WINSCW make cd pr/tests make
More
The procedures above are also verified on S60 SDK 3rd Edition MR.