Note that these instructions are preliminary and work in progress... These instructions assume that you have a Symbian development set up and that you have the source code checked out. == Requirements == * QtWebKit is best built with Sbsv2 (aka Raptor). This setup assumes the availability of it. * Please install the Bison, Flex, ActiveState Perl etc. tools from GnuWin32. See the [BuildingQtOnWindows instructions for building on Windows] where to get these. * Make sure that the GnuWin32 tools are installed in a path without spaces, i.e. not {{{Program Files\GnuWin32}}} but for example {{{c:\GnuWin32}}}. * You need to have {{{\GnuWin32\bin}}} and {{{\Perl64\bin}}} (if that's where your Perl is installed) in your {{{%PATH%}}} before the S60 SDK tools path. * In addition you need to have a native Windows compiler in your PATH, i.e. MSVC or MingW. * You can download Raptor from here: http://developer.symbian.org/wiki/index.php/Symbian_Build_System_v2 == Building Qt == If you haven't done so already, try these instructions for a release build: * Clone Qt: {{{git clone git://gitorious.org/qt/qt.git qt-4.6}}} * Set up the 4.6 Branch: * {{{cd qt-4.6}}} * {{{git checkout -b 4.6 origin/4.6}}} * {{{git branch -D master}}} * Configure: {{{configure -xplatform symbian-sbsv2}}} * Build for arm with 8 cores: {{{sbs -c armv6_urel -j8}}} * Get a cup of tea/coffee. * Patch capabilities and generate the sis package:[[BR]]{{{cd src/s60installs}}}[[BR]]{{{perl ..\..\bin\patch_capabilities.pl Qt_template.pkg release-armv6}}}[[BR]]{{{make sis}}} * Put the {{{qt-4.6\bin}}} directory in your {{{%PATH%}}}. == Building WebKit for release == * Build the generated files and set up the build system: * {{{cd where-your-webkit-sources-are}}} * {{{perl WebKitTools\Scripts\build-webkit --qt --symbian}}} * If you're building the trunk where the export def file for Symbian is not always up-to-date you need to pass CONFIG-=def_files as an argument to build-webkit as well * {{{cd WebCore}}} * Build for hardware: {{{sbs -c armv6_urel -j8}}} * Patch capabilities: {{{perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg release-armv6}}} * Create the sis file: {{{make sis}}} * Install it on the phone: {{{"C:\Program Files\Nokia\Nokia PC Suite 7\ApplicationInstaller.exe" %CD%\qtwebkit.sis}}}[[BR]]You can also Drag'n'drop the resulting .sis file onto Nokia PC Suite to install it. * Note that as of May-2010 (from r58756) you should be able to build not only from WebCore but from "top level". Building from top will also build QtLauncher, autotests and DumprenderTree for Symbian. == Building WebKit for debug == * Almost the same as above: * You need to have''' Qt built for debug''' as well * {{{cd where-your-webkit-sources-are}}} * {{{perl WebKitTools\Scripts\build-webkit --qt --symbian}}} '''--debug''' * Run the script {{{debug-webkit-patch-sbsv2.py}}} from [git://gitorious.org/qtwebkit/tools.git]. It was tested to work at least with Python 2.6[[BR]] This is necessary because the quantity of debug information in WebKit makes armlink fail. This script works around the problem. * {{{sbs -c armv6_u}}}'''deb'''{{{ -j8}}} * {{{perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg }}}'''debug'''{{{-armv6}}} * {{{make sis}}} == Running a Browser on device/emulator == If you have problems starting your favourite browser (Anomaly/QtLauncher) on Symbian HW, here are some choices to remember: * Use '''QtLauncher''' that ships inside Webkit.org trunk to build your test browser. You don't have to worry about exports and .DEF files in this case. * To use '''Anomaly''' from $QTSRC/demos/embedded/, you may have to update the .DEF files known to the Qt installation to make Anomaly work OK. [[BR]] To do so , recompile QtWebkit.dll by passing an additional argument to the {{{build-webkit}}} script and re-deploy to device. [[BR]] {{{--qmake-arg="CONFIG+=def_files"}}}