summaryrefslogtreecommitdiff
path: root/README.s60-mkspec
blob: af500e1377f27a372c4fb6ab8c07e0ff4d7155ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
How to build Qt for Symbian using the Linux makespec.

Prerequisites:

  - Working RVCT 2.2 native Linux compiler. The new publicly
    available RVCT 4.0 compiler may work, but it hasn't been tested
    yet.

  - A working GnuPoc environment. See this page for details:
    http://www.martin.st/symbian/
    Download the latest version, unpack it and run the 'install_eka2_tools' script as
    described in the last part under the EKA2 part. The part about the your own gcc
    are not needed as we use the rvct compiler.
    Make sure you do the part about Wine setup as well.

  - Anderson Lizardo's patches for GnuPoc. Look for the
    qt_s60_gnupoc_v10.patch on this page:
    http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/
    and carry out the instructions under point 8: Installing Open C.

Compiling:

 1. First a few environment variables need to be set:

        export RVCT22LIB=<rvct-dir>/lib/armlib
        export EPOCROOT=<s60-root>
        export PATH=$PATH:<s60-root>/epoc32/tools:<rvctInstallDir>/bin
        export PATH=$PATH:<qt-root>/bin

    Replace the s60-root with the installation directory of your SDK,
    and the qt-root with the root of your Qt repository.
    These are good candidates for putting in a script somewhere.

 2. Run configure. It needs a bit more switches than usual, so here's
    the full line:

        ./configure -developer-build -platform linux-g++ -xplatform \
            symbian/linux-armcc -little-endian -host-little-endian \
            -arch symbian

 3. Compile Qt

        cd src
        make

    and then wait for a while.

 4. Package and install Qt

        cd s60installs

    Edit Qt_template.pkg and change the first 0x2xxxxxxx to
    0xExxxxxxx. Then execute:

        makesis Qt_template.pkg
        signsis Qt_template.sis Qt_template.sisx selfsigned.cer selfsigned.key

    Then put Qt_template.sisx on a memory card and install it from
    the phone file manager.

    Alternatively, you can use the runonphone tool found in the tools
    directory of Qt. To build, this requires a separately configured
    Qt installation for Linux, unfortunately. To use it, you also
    need have App TRK running on the phone. At the time of writing,
    only bleeding edge Linux kernels are able to autodetect the USB
    serial port on the phone, but you can force detection by running:

        modprobe usbserial vendor=0xXXXX product=0xXXXX

    The XXXXs should be replaced with the two values listed for your
    device when executing "lsusb". In most distributions, this will
    lead to the creation of two devices: /dev/ttyUSB0 and
    /dev/ttyUSB1. The latter is usually the one that App TRK responds
    to. Then execute:

        runonphone -p /dev/ttyUSB1 -s Qt_template.sisx dummy.exe

    The dummy.exe argument is irrelevant, since we are not executing
    anything yet.

 5. Compile some helloworld application (I leave the details to you
    ;-)

        qmake
        make

 6. Package, install and run application.

        makesis helloworld_template.pkg
        signsis helloworld_template.sis helloworld_template.sisx \
            <QTDIR>/src/s60installs/selfsigned.cer \
            <QTDIR>/src/s60installs/selfsigned.key

    Then either install by memory card, or install and run like this:

        runonphone -p /dev/ttyUSB1 -s helloworld_template.sisx \
            helloworld.exe

 7. Enjoy "hello world" on the phone!