These instructions assume that you have a Symbian development set up and that you have the source code checked out. == Requirements == * QtWebKit is built with SBSv2 (aka Raptor) v2.16.0 or higher. Extract SBSv2 from Qt SDK 1.1 TP or newer. * RCVT 4.0 is _strongly_ recommended. Go to ARM.com for details. GCC (from Code Sourcery) supplied with Qt SDK 1.x is "self-supported" (use sbs -c arm.v5.urel.gcce4_4_1 in build instructions that follow) . * 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. == Building WebKit for release == * Build the generated files and set up the build system: * {{{cd where-your-webkit-sources-are}}} * {{{perl Tools\Scripts\build-webkit --qt --symbian --release}}} * If you are a build master, manage .def export files, and/or want to freeze exports (i.e the .def files get processed), pass CONFIG+=def_files as an argument too * If you want faster rebuild times for your personal sandbox, pass --no-svg. * If you want even faster build times for a _very_ feature-stripped QtWebkit, use --minimal * To selectively turn on or off features, see features.pri * Build for hardware: {{{sbs -c armv5_urel -j8 -b Source\bld.inf -b Tools\bld.inf}}} * [OPTIONAL, only needed for self-signed SIS packages] Patch capabilities: {{{perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg release-armv5}}} * 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. == Building WebKit for debug == * You MUST be using RVCT 4.0 and SBS 2.16.0 or higher. Also, you will need to pass --minimal or --no-svg to build-webkit. * First try compile + link with your normal (32-bit) RVCT linker : armlink.exe. If you see OOM errors, you should switch to 64-bit Windows OS for development and use a 64-bit RVCT 4.1 linker (armlink.exe) binary. * Steps for building: * You need to have''' Qt built for debug''' as well * {{{cd where-your-webkit-sources-are}}} * {{{perl Tools\Scripts\build-webkit --qt --symbian --minimal}}} '''--debug''' * {{{sbs -c armv5_u}}}'''deb.slimdebug'''{{{ -j8 -b Source\bld.inf -b Tools\bld.inf}}} * {{{[OPTIONAL, only needed for self-signed SIS packages]perl %QTDIR%\bin\patch_capabilities.pl QtWebKit_template.pkg }}}'''debug'''{{{-armv5}}} * {{{make sis}}} == Using RVCT4.0 == * RVCT4.0 is strongly recommended for trunk work on Symbian. * First set up your RVCT4.0 installation by obtaining the binaries and setting up '''environment variables''' per ARM's instructions (Nokians may use SymSEE to activate it) * If using with Symbian3/TB9.2 SDKs, you may have to compile the '''compiler support libraries''' first (or you will see linker errors) * {{{sbs -b sf\os\kernelhwsrv\kernel\eka\compsupp\bld.inf -b sf\os\kernelhwsrv\kernel\eka\euser\bld.inf -c arm.v5.urel.rvct4_0 -c arm.v5.udeb.rvct4_0}}} * To '''explicitly specify RVCT 4.0''' with Symbian3 SDKS, use the following (not necessary for MCL): * {{{sbs -c arm.v5.urel.rvct4_0}}} == Using 64-bit linker for debug builds == Assuming you are on a 32-bit OS, first try to link with --no-svg or --minimal configuration. If linking fails due to OOM, upgrade to 64-bit Windows 7 OS and a 64-bit linker (armlink.exe) * Once you are on the 64-bit development host, back-up your armlink.exe from the 4.0 install * Obtain the RVCT4.1 toolchain from your organization's compiler tools team, or from ARM.com directly. * Extract the 64-bit armlink.exe and drop it over your 4.0 installation's armlink.exe * {{{cd Source}}} and them compile as ARMV5 {{{sbs -c arm.v5.udeb.rvct4_0.slimdebug}}} == Building Qt == If case you need newer Qt than what your SDK has, or want debuggability: * Clone Qt: {{{git clone git://gitorious.org/qt/qt.git qt-4.7}}} * Set up the 4.7 Branch: * {{{cd qt-4.7}}} * {{{git checkout -b 4.7 origin/4.7}}} * {{{git branch -D master}}} * Configure: {{{configure -xplatform symbian-sbsv2}}} * Build for arm with 8 cores: {{{sbs -c armv5_urel -j8}}} * Get a cup of tea/coffee. * [OPTIONAL, only needed for self-signed SIS packages] Patch capabilities and generate the sis package:[[BR]]{{{cd src/s60installs}}}[[BR]]{{{perl ..\..\bin\patch_capabilities.pl Qt_template.pkg release-armv5}}}[[BR]]{{{make sis}}} * Put the {{{qt-4.7\bin}}} directory in your {{{%PATH%}}}. == Productivity tools == * When deploying apps to a Symbian device, use fshell and muxcons as mentioned in this blog post: http://labs.qt.nokia.com/2011/04/15/introducing-muxcons/ * First compile Muxcons UI for desktop (Windows or Linux), then install fshell.sis on your device using the pre-built binaries available on fshell's sourceforge.net website * Connect PC to device via USB and enjoy your remote shell!