| | 1 | = S60WebKit: Getting and Compiling the Source = |
| | 2 | |
| | 3 | === Getting the Source === |
| | 4 | |
| | 5 | * Checkout a copy of S60WebKit from the WebKit Subversion repository: |
| | 6 | |
| | 7 | {{{ |
| | 8 | cd <SDK installation path> |
| | 9 | svn checkout svn://anonsvn.opensource.apple.com/svn/webkit/S60/trunk WebKit |
| | 10 | }}} |
| | 11 | |
| | 12 | A couple of things to note: |
| | 13 | |
| | 14 | * By default, the SDK installation path is {{{C:\Symbian\9.1\S60_3rd}}} |
| | 15 | |
| | 16 | * 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. |
| | 17 | |
| | 18 | === Building the Source === |
| | 19 | |
| | 20 | * Compile S60WebKit by changing directory to the top of the source tree and running the {{{build}}} script, for example: |
| | 21 | |
| | 22 | {{{ |
| | 23 | cd <SDK installation path>\WebKit |
| | 24 | build |
| | 25 | }}} |
| | 26 | |
| | 27 | Please note that on rare occasions, when compiling for the very first time you may encounter the following error: |
| | 28 | {{{ |
| | 29 | No rule to make target \EPOC32\INCLUDE\WebKitIcons_sdk.mbg |
| | 30 | }}} |
| | 31 | 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. |
| | 32 | |
| | 33 | Once you've clean compiled, the next step is to check out [wiki:S60Reindeer Reindeer] in the emulator. |
| | 34 | |
| | 35 | === So what does the build script do? === |
| | 36 | |
| | 37 | Here's a quick overview of what build.bat does: |
| | 38 | |
| | 39 | * Unless already done so, it will create the subst drive to <SDK path> for you |
| | 40 | * Setups up your environment so that the Carbide and GCCE compiler suites are used by the SDK build system |
| | 41 | * Extracts each of the zipfiles under <working copy>\S60Internals\*. These are mostly extracted to \epoc32 |
| | 42 | * Synchronises the layout test (rsync type operation) in your working copy to \epoc32\winscw\c\LayoutTests |
| | 43 | * Does a number of 'abld' commands, depending on what options you passed to the script |
| | 44 | * The output from the 'abld' command is redirected to both STDOUT and <working copy>\build.log. This is |
| | 45 | scanned for errors and a summary is output to the screen |
| | 46 | |
| | 47 | === Build options === |
| | 48 | |
| | 49 | The build script supports a number of options. Here's the full usage statement: |
| | 50 | |
| | 51 | {{{ |
| | 52 | build.bat [OPTS] [COMPONENT] |
| | 53 | -n Do not include clean in compile |
| | 54 | -f run freeze phase and exit |
| | 55 | -g GCCE compiler for hardware build |
| | 56 | -w Code Warrior compiler for emulator build |
| | 57 | -t Target build |
| | 58 | -d Turn on debugging, forces udeb flavour |
| | 59 | -e Export generated environment and exit |
| | 60 | -r Remove S60Internal dependencies and exit |
| | 61 | -s X Map drive to this letter. Defaults to x |
| | 62 | -h View this message |
| | 63 | }}} |
| | 64 | |
| | 65 | Requests welcome! |
| | 66 | |
| | 67 | === Build Examples === |
| | 68 | |
| | 69 | To compile all components for winscw: |
| | 70 | {{{ |
| | 71 | build -w |
| | 72 | }}} |
| | 73 | To compile all components for GCCE: |
| | 74 | {{{ |
| | 75 | build -g |
| | 76 | }}} |
| | 77 | To do a 'target', or incremental, build: |
| | 78 | {{{ |
| | 79 | build -t |
| | 80 | }}} |
| | 81 | To do build webcore, but don't execute the clean phase: |
| | 82 | {{{ |
| | 83 | build -n webcore |
| | 84 | }}} |
| | 85 | To fully rebuild the memory manager: |
| | 86 | {{{ |
| | 87 | build memman |
| | 88 | }}} |
| | 89 | Options can be bundled. For example, a GCCE target compile with debugging turned on (this forces udeb) for webkit: |
| | 90 | {{{ |
| | 91 | build -gtd webkit |
| | 92 | }}} |
| | 93 | |
| | 94 | |
| | 95 | |