wiki:S60CheckoutAndBuild

Version 1 (modified by bradley.morrison@nokia.com, 14 years ago) (diff)

--

S60WebKit: Getting and Compiling the Source

Getting the Source

  • Checkout a copy of S60WebKit from the WebKit Subversion repository:
   cd <SDK installation path>
   svn checkout svn://anonsvn.opensource.apple.com/svn/webkit/S60/trunk WebKit

A couple of things to note:

  • By default, the SDK installation path is C:\Symbian\9.1\S60_3rd

  • You don't need to checkout to a directory named WebKit, any directory name will suffice. This allows you to checkout multiple working copies to the same location.

Building the Source

  • Compile S60WebKit by changing directory to the top of the source tree and running the build script, for example:
   cd <SDK installation path>\WebKit
   build

Please note that on rare occasions, when compiling for the very first time you may encounter the following error:

  No rule to make target \EPOC32\INCLUDE\WebKitIcons_sdk.mbg  

This error only occurs once and can safely be ignored: running a target build via build -t (which has an execution time of a couple of seconds) will return no errors. See http://bugs.webkit.org/show_bug.cgi?id=9289 for further information.

Once you've clean compiled, the next step is to check out Reindeer in the emulator.

So what does the build script do?

Here's a quick overview of what build.bat does:

  • Unless already done so, it will create the subst drive to <SDK path> for you
  • Setups up your environment so that the Carbide and GCCE compiler suites are used by the SDK build system
  • Extracts each of the zipfiles under <working copy>\S60Internals\*. These are mostly extracted to \epoc32
  • Synchronises the layout test (rsync type operation) in your working copy to \epoc32\winscw\c\LayoutTests
  • Does a number of 'abld' commands, depending on what options you passed to the script
  • The output from the 'abld' command is redirected to both STDOUT and <working copy>\build.log. This is scanned for errors and a summary is output to the screen

Build options

The build script supports a number of options. Here's the full usage statement:

build.bat       [OPTS] [COMPONENT]
    -n    Do not include clean in compile
    -f    run freeze phase and exit
    -g    GCCE compiler for hardware build
    -w    Code Warrior compiler for emulator build
    -t    Target build
    -d    Turn on debugging, forces udeb flavour
    -e    Export generated environment and exit
    -r    Remove S60Internal dependencies and exit
    -s X  Map drive to this letter. Defaults to x
    -h    View this message

Requests welcome!

Build Examples

To compile all components for winscw:

   build -w

To compile all components for GCCE:

   build -g

To do a 'target', or incremental, build:

   build -t

To do build webcore, but don't execute the clean phase:

   build -n webcore

To fully rebuild the memory manager:

   build memman

Options can be bundled. For example, a GCCE target compile with debugging turned on (this forces udeb) for webkit:

   build -gtd webkit