summaryrefslogtreecommitdiffstats
path: root/README.s60-mkspec
blob: 9e0db892a5b61c5c0918a864138f1f29065c9de4 (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
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
        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 the host tools. This unfortunately does not happen
    automatically.

        cd src/tools
        for i in bootstrap moc rcc uic; do make -C $i; done

 4. Compile QtCore.dll:

        cd ../corelib
        qmake -platform symbian/linux-armcc
        make

    and then wait for a while.

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

        qmake -platform symbian/linux-armcc
        make

 6. Package and run on the phone. This is unfortunately a bit of a
    manual step at the moment. Your best bet is to look at a Windows
    build of the same application, and manually grab the .rsc files
    that it refers to and put them in the application directory on
    Linux. Then you can take the pkg_template.pkg file provided in
    the repository and tweak it to include the files you want. Note
    that due to limitations on how the makesis tool interprets file
    paths, all the files included need to be in the current directory
    (or a link from there).

    Assuming that all the files are in place, do this:

        cp <qt-root>/src/s60installs/selfsigned.* .
        winewrapper makesis.exe MyApp.pkg MyApp_unsigned.sis
        winewrapper signsis.exe MyApp_unsigned.sis MyApp.sis \
            selfsigned.cer selfsigned.key

 7. Enjoy QObjects and "hello world" on the phone!