README.s60-mkspec
changeset 30 5dc02b23752f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.s60-mkspec	Tue Jul 06 15:10:48 2010 +0300
@@ -0,0 +1,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!