= S60WebKit: Getting and Compiling the Source = === Getting the Source === * Checkout a copy of S60WebKit from the WebKit Subversion repository: {{{ cd svn checkout svn://anonsvn.opensource.apple.com/svn/webkit/S60/trunk S60 }}} 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 \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 [wiki:S60Reindeer Reindeer] in the emulator, or you could debug and by following the debugging instructions on the [wiki: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 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 \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 \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 }}}