| 1 |
How to build Qt for Symbian using the Linux makespec. |
| 2 |
|
| 3 |
Prerequisites: |
| 4 |
|
| 5 |
- Working RVCT 2.2 native Linux compiler. The new publicly |
| 6 |
available RVCT 4.0 compiler may work, but it hasn't been tested |
| 7 |
yet. |
| 8 |
|
| 9 |
- A working GnuPoc environment. See this page for details: |
| 10 |
http://www.martin.st/symbian/ |
| 11 |
Download the latest version, unpack it and run the 'install_eka2_tools' script as |
| 12 |
described in the last part under the EKA2 part. The part about the your own gcc |
| 13 |
are not needed as we use the rvct compiler. |
| 14 |
Make sure you do the part about Wine setup as well. |
| 15 |
|
| 16 |
- Anderson Lizardo's patches for GnuPoc. Look for the |
| 17 |
qt_s60_gnupoc_v10.patch on this page: |
| 18 |
http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/ |
| 19 |
and carry out the instructions under point 8: Installing Open C. |
| 20 |
|
| 21 |
Compiling: |
| 22 |
|
| 23 |
1. First a few environment variables need to be set: |
| 24 |
|
| 25 |
export RVCT22LIB=<rvct-dir>/lib/armlib |
| 26 |
export EPOCROOT=<s60-root> |
| 27 |
export PATH=$PATH:<s60-root>/epoc32/tools:<rvctInstallDir>/bin |
| 28 |
export PATH=$PATH:<qt-root>/bin |
| 29 |
|
| 30 |
Replace the s60-root with the installation directory of your SDK, |
| 31 |
and the qt-root with the root of your Qt repository. |
| 32 |
These are good candidates for putting in a script somewhere. |
| 33 |
|
| 34 |
2. Run configure. It needs a bit more switches than usual, so here's |
| 35 |
the full line: |
| 36 |
|
| 37 |
./configure -developer-build -platform linux-g++ -xplatform \ |
| 38 |
symbian/linux-armcc -little-endian -host-little-endian \ |
| 39 |
-arch symbian |
| 40 |
|
| 41 |
3. Compile Qt |
| 42 |
|
| 43 |
cd src |
| 44 |
make |
| 45 |
|
| 46 |
and then wait for a while. |
| 47 |
|
| 48 |
4. Package and install Qt |
| 49 |
|
| 50 |
cd s60installs |
| 51 |
|
| 52 |
Edit Qt_template.pkg and change the first 0x2xxxxxxx to |
| 53 |
0xExxxxxxx. Then execute: |
| 54 |
|
| 55 |
makesis Qt_template.pkg |
| 56 |
signsis Qt_template.sis Qt_template.sisx selfsigned.cer selfsigned.key |
| 57 |
|
| 58 |
Then put Qt_template.sisx on a memory card and install it from |
| 59 |
the phone file manager. |
| 60 |
|
| 61 |
Alternatively, you can use the runonphone tool found in the tools |
| 62 |
directory of Qt. To build, this requires a separately configured |
| 63 |
Qt installation for Linux, unfortunately. To use it, you also |
| 64 |
need have App TRK running on the phone. At the time of writing, |
| 65 |
only bleeding edge Linux kernels are able to autodetect the USB |
| 66 |
serial port on the phone, but you can force detection by running: |
| 67 |
|
| 68 |
modprobe usbserial vendor=0xXXXX product=0xXXXX |
| 69 |
|
| 70 |
The XXXXs should be replaced with the two values listed for your |
| 71 |
device when executing "lsusb". In most distributions, this will |
| 72 |
lead to the creation of two devices: /dev/ttyUSB0 and |
| 73 |
/dev/ttyUSB1. The latter is usually the one that App TRK responds |
| 74 |
to. Then execute: |
| 75 |
|
| 76 |
runonphone -p /dev/ttyUSB1 -s Qt_template.sisx dummy.exe |
| 77 |
|
| 78 |
The dummy.exe argument is irrelevant, since we are not executing |
| 79 |
anything yet. |
| 80 |
|
| 81 |
5. Compile some helloworld application (I leave the details to you |
| 82 |
;-) |
| 83 |
|
| 84 |
qmake |
| 85 |
make |
| 86 |
|
| 87 |
6. Package, install and run application. |
| 88 |
|
| 89 |
makesis helloworld_template.pkg |
| 90 |
signsis helloworld_template.sis helloworld_template.sisx \ |
| 91 |
<QTDIR>/src/s60installs/selfsigned.cer \ |
| 92 |
<QTDIR>/src/s60installs/selfsigned.key |
| 93 |
|
| 94 |
Then either install by memory card, or install and run like this: |
| 95 |
|
| 96 |
runonphone -p /dev/ttyUSB1 -s helloworld_template.sisx \ |
| 97 |
helloworld.exe |
| 98 |
|
| 99 |
7. Enjoy "hello world" on the phone! |