Mobile/Symbian/NSPR: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 5: Line 5:


Complete one:
Complete one:
Building NSPR with source from http://mozilla-symbian.googlecode.com for Symbian OS/S60 3rd MR platform by using gnu-make/msys.
Building NSPR with source from http://mozilla-symbian.googlecode.com for Symbian OS/S60 3rd Edition FP1 platform by using gnu-make/msys.




Line 30: Line 30:
   ACTIVE_PERL = /c/perl/bin/perl.exe
   ACTIVE_PERL = /c/perl/bin/perl.exe
   CC_INSTALL_PATH = /c/program\ files/CSL\ ARM\ Toolchain/
   CC_INSTALL_PATH = /c/program\ files/CSL\ ARM\ Toolchain/
* Fix a [http://wiki.forum.nokia.com/index.php/KIS001022_-_Open_C:_Initializer_element_is_not_constant_error_on_GCCE_platform header file bug]: in <tt>$EPOCROOT/Epoc32/include/e32def.h</tt>, change:<code cpp>
* Fix a [http://wiki.forum.nokia.com/index.php/KIS001022_-_Open_C:_Initializer_element_is_not_constant_error_on_GCCE_platform header file bug]: in <tt>$EPOCROOT/Epoc32/include/e32def.h</tt>, change:
   static const char* const KSuppressPlatSecDiagnostic =
   static const char* const KSuppressPlatSecDiagnostic =
     KSuppressPlatSecDiagnosticMagicValue;
     KSuppressPlatSecDiagnosticMagicValue;
</code>into:<code cpp>
into
   #if defined(__cplusplus)  
   #if defined(__cplusplus)  
   static const char* const KSuppressPlatSecDiagnostic =
   static const char* const KSuppressPlatSecDiagnostic =
     KSuppressPlatSecDiagnosticMagicValue;  
     KSuppressPlatSecDiagnosticMagicValue;  
   #endif
   #endif
</code>
* 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 <br>
* Checkout source from google code <br>
<code>
   svn checkout http://mozilla-symbian.googlecode.com/svn/trunk/ mozilla-symbian
   svn checkout http://mozilla-symbian.googlecode.com/svn/trunk/ mozilla-symbian
</code>
* Start msys by invoking <tt>c:\mozilla-build\msys\msys.bat</tt>, assuming your source is checked out at <tt>c:\mozilla-symbian</tt> then:
* Start msys by invoking <tt>c:\mozilla-build\msys\msys.bat</tt>, assuming your source is checked out at <tt>c:\mozilla-symbian</tt> then:<code cpp>
 
For device(GCCE) build:
   cd /c/
   cd /c/
   mkdir gcceobj
   mkdir gobj
   cd gcceobj
   cd gobj
   ../mozilla-symbian/nsprpub/configure --target=arm-none-symbianelf
   ../mozilla-symbian/nsprpub/configure --target=arm-none-symbianelf
   --enable-symbian-target=GCCE --disable-debug
   --enable-symbian-target=GCCE --disable-debug
Line 52: Line 58:
   cd pr/tests
   cd pr/tests
   make
   make
</code>
 
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 ==
== More ==


This description only give you the GGCE build for device with ARM CPU. For emulator build procedures please wait a little while.
The procedures above are also verified on S60 SDK 3rd Edition MR.
 
If you want to use S60 SDK 3rd FP1 or FP2 version, please replace all "v9.1.hrh" strings into "v9.2.hrh"(FP1) or "v9.3.hrh"(FP2) in "/nsprpub/configure" file.

Revision as of 18:03, 19 January 2009

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

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/
 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.