wiki:S60CheckoutAndBuild

Version 4 (modified by kvmayank@gmail.com, 16 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 S60

   NOTE: The location of the publicly-accessible SVN repository of WebKit has changed to http://svn.webkit.org/repository/webkit/S60/trunk
         Info Source: http://webkit.org/blog/97/svn-repository-location-change/
         -- Mayank

Please note:

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

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>\S60
   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, or you could debug and by following the debugging instructions on the S60IDE page.

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