OWB (with sample SDL backend) on nokia N800

Requirements

To run OWB on N800 you will first have to compile. Unfortunately, no install or .deb package is provided for the moment.
The following additional packages are required to compile and run OWB:

  • CMake: A cross-platform tool to manage the build process.
    This package is required for owb compilation only.
  • gperf: Used to produce hash tables and other things.
    This package is required for owb compilation only.
  • flex: Flex is a fast lexical analyser generator. It is a tool for generating programs that perform pattern-matching on text.
  • SDL GFX: Addons for SDL library, use to draw some primitives like ellipses or polygons.
    This package is required for owb compilation and runtime.
  • ICU: International Component for Unicode library from IBM.
    This package is required for owb compilation and runtime.
  • libxslt:XSLT itself is a an XML language to define transformation for XML.
    This package is required for owb compilation and runtime.

Packages installation

The following steps are only valid inside Maemo SDK. So the first thing to do is to login inside Maemo scratchbox.

CMake Installation

First ensure that you run SDK_X86 profile:

sb-conf se CHINOOK_X86

Then:

tar xzvf cmake-2.4.7.tar.gz
cd cmake-2.4.7
./bootstrap --parallel=3 --prefix=/host_usr/
make
make install

To correctly run CMake with SDK_ARMEL profile, I have had to do the following:

mkdir -p /host_usr/{lib,bin}
cd /host_usr
cp -l /targets/CHINOOK_X86/usr/lib/libstdc++.so.6* lib

Finally, edit /etc/ld.so.conf and prepend the following line: /host_usr/lib. Then run ldconfig. Then switch to ARMEL profile and redo the same.

Gperf Installation

tar xzvf gperf-3.0.3.tar.gz
cd gperf-3.0.3
./configure --prefix=/host_usr
make
make install

Flex Installation

You will have to update flex to version 2.5.33 or more else you will have bugs in some page rendering.

tar xjvf flex-2.5.33.tar.bz2
cd flex-2.5.33
CFLAGS="-L/scratchbox/host_shared/lib"./configure --prefix=/host_usr
CFLAGS="-L/scratchbox/host_shared/lib" make
make install

SDL GFX Installation

For the SDK_X86 profile:

sb-conf se CHINOOK_X86
tar xzvf SDL_gfx-2.0.16.tar.gz
cd SDL_gfx-2.0.16
./configure --prefix=/usr
make
make install

For the SDK_ARMEL profile:

sb-conf se CHINOOK_ARMEL
tar xzvf SDL_gfx-2.0.16.tar.gz
cd SDL_gfx-2.0.16
./configure --prefix=/usr --disable-mmx
make
make install

ICU Installation

For the SDK_X86 profile:

sb-conf se CHINOOK_X86
tar xzvf icu4c-3_6-src.tgz
cd icu/source
./configure --prefix=/usr --enable-static --disable-layout --disable-tests --disable-samples --disable-icuio
make
make install

For the SDK_ARMEL profile:

sb-conf se CHINOOK_ARMEL
tar xzvf icu4c-3_6-src.tgz
cd icu/source
./configure --prefix=/usr --enable-static --disable-layout --disable-tests --disable-samples --disable-icuio
make
make install

libxslt Installation

For the SDK_X86 profile:

sb-conf se CHINOOK_X86
tar xzvf libxslt-1.1.22.tar.gz
cd libxslt-1.1.22
./configure --prefix=/usr
make
make install

For the SDK_ARMEL profile:

sb-conf se CHINOOK_ARMEL
tar xzvf libxslt-1.1.22.tar.gz
cd libxslt-1.1.22
./configure --prefix=/usr
make
make install

OWB compilation

  • Compile OWB:
    mkdir build_owb-n800
    ccmake ..
    make
    

During ccmake step, simply enable N800_BUILDand set WEBKIT_DEBUG to DEBUG_GCC3.X. You will also have to set FLEX_EXECUTABLE to /host_usr/bin/flex. Or you can run:

cmake -D N800_BUILD=ON -D WEBKIT_DEBUG="DEBUG_GCC3.X" -D FLEX_EXECUTABLE=/host_usr/bin/flex ..

instead of ccmake.

Tips

  • If you compile OWB with dynamic libraries, you will have to copy libjscore.so, libbal.so and libwebcore.so in /usr/lib for instance.

Attachments