From 3d30a4c9a43ea3a9f378ff51d353f350813e31bb Mon Sep 17 00:00:00 2001 From: axis Date: Tue, 27 Oct 2009 14:55:25 +0100 Subject: Made some basic build instructions for Symbian on Linux. --- README.s60-mkspec | 74 ++++++++++++++++++++++++++++++++++++++++++++++ templates/.gitattributes | 1 + templates/.gitignore | 1 + templates/pkg_template.pkg | 23 ++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 README.s60-mkspec create mode 100644 templates/.gitattributes create mode 100644 templates/.gitignore create mode 100644 templates/pkg_template.pkg diff --git a/README.s60-mkspec b/README.s60-mkspec new file mode 100644 index 0000000..6bfe357 --- /dev/null +++ b/README.s60-mkspec @@ -0,0 +1,74 @@ +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/. The part about Wine setup I didn't + have to do, but Wine does need to be available. + +Compiling: + + 1. First a few environment variables need to be set: + + export RVCT22INC=/Epoc32/include + export RVCT22INC=$RVCT22INC,/Epoc32/include/rvct2_2 + export RVCT22INC=$RVCT22INC,/Epoc32/include/variant + export RVCT22INC=$RVCT22INC,/Epoc32/include/stdapis + export RVCT22INC=$RVCT22INC,/Epoc32/include/stdapis/stlport + export RVCT22LIB=/Epoc32/release/armv5/lib + export PATH=$PATH:/Epoc32/tools + export PATH=$PATH:/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 /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! diff --git a/templates/.gitattributes b/templates/.gitattributes new file mode 100644 index 0000000..6540c78 --- /dev/null +++ b/templates/.gitattributes @@ -0,0 +1 @@ +pkg_template.pkg -crlf diff --git a/templates/.gitignore b/templates/.gitignore new file mode 100644 index 0000000..1bb0965 --- /dev/null +++ b/templates/.gitignore @@ -0,0 +1 @@ +!*.pkg diff --git a/templates/pkg_template.pkg b/templates/pkg_template.pkg new file mode 100644 index 0000000..d931401 --- /dev/null +++ b/templates/pkg_template.pkg @@ -0,0 +1,23 @@ +; Language +&EN + +; SIS header: name, uid, version +#{"MyApp"},(0xE001e45e),1,0,0 + +; Localised Vendor name +%{"Vendor"} + +; Unique Vendor name +:"Vendor" + +; Manual PKG pre-rules from PRO files +; Default HW/platform dependencies +[0x101F7961],0,0,0,{"S60ProductID"} +[0x102032BE],0,0,0,{"S60ProductID"} +[0x102752AE],0,0,0,{"S60ProductID"} +[0x1028315F],0,0,0,{"S60ProductID"} + +; Executable and default resource files +"MyApp.exe" - "!:\sys\bin\MyApp.exe" +"MyApp.rsc" - "!:\resource\apps\MyApp.rsc" +"QtCore.dll" - "!:\resource\apps\QtCore.dll" -- cgit v0.12 From 9f3ec4c09d11bddacfcc8e3aa8d4e459ff3c4931 Mon Sep 17 00:00:00 2001 From: axis Date: Wed, 28 Oct 2009 16:44:33 +0100 Subject: Updated the documentation about epoc32 paths. --- README.s60-mkspec | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/README.s60-mkspec b/README.s60-mkspec index 6bfe357..3f12013 100644 --- a/README.s60-mkspec +++ b/README.s60-mkspec @@ -14,33 +14,39 @@ Compiling: 1. First a few environment variables need to be set: - export RVCT22INC=/Epoc32/include - export RVCT22INC=$RVCT22INC,/Epoc32/include/rvct2_2 - export RVCT22INC=$RVCT22INC,/Epoc32/include/variant - export RVCT22INC=$RVCT22INC,/Epoc32/include/stdapis - export RVCT22INC=$RVCT22INC,/Epoc32/include/stdapis/stlport - export RVCT22LIB=/Epoc32/release/armv5/lib - export PATH=$PATH:/Epoc32/tools + export RVCT22INC=/epoc32/include + export RVCT22INC=$RVCT22INC,/epoc32/include/rvct2_2 + export RVCT22INC=$RVCT22INC,/epoc32/include/variant + export RVCT22INC=$RVCT22INC,/epoc32/include/stdapis + export RVCT22INC=$RVCT22INC,/epoc32/include/stdapis/stlport + export RVCT22LIB=/epoc32/release/armv5/lib + export PATH=$PATH:/epoc32/tools export PATH=$PATH:/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 + 2. Switch out a few variables in profiles. Open + mkspecs/symbian/linux-armcc/qmake.conf, search for + "FIXME/Epoc32" and switch out the FIXME part with your SDK + installation directory. You might have to switch the case of the + Epoc32 directory as well. + + 3. 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 + 4. 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: + 5. Compile QtCore.dll: cd ../corelib qmake -platform symbian/linux-armcc @@ -48,13 +54,13 @@ Compiling: and then wait for a while. - 5. Compile some helloworld application (I leave the details to you + 6. 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 + 7. 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 @@ -71,4 +77,4 @@ Compiling: winewrapper signsis.exe MyApp_unsigned.sis MyApp.sis \ selfsigned.cer selfsigned.key - 7. Enjoy QObjects and "hello world" on the phone! + 8. Enjoy QObjects and "hello world" on the phone! -- cgit v0.12 From 08292ab6d8153ca380ce2a13b03f17049df46740 Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 13 Nov 2009 16:30:12 +0100 Subject: Updated documentation to include Wine and Open C setup. --- README.s60-mkspec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.s60-mkspec b/README.s60-mkspec index 3f12013..5aa9f06 100644 --- a/README.s60-mkspec +++ b/README.s60-mkspec @@ -7,8 +7,13 @@ Prerequisites: yet. - A working GnuPoc environment. See this page for details: - http://www.martin.st/symbian/. The part about Wine setup I didn't - have to do, but Wine does need to be available. + http://www.martin.st/symbian/. Make sure you do the part about + Wine setup as well. + + - Anderson Lizardo's patches for GnuPoc. Look for the + qt_s60_gnupoc_v9.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: -- cgit v0.12 From 4f0dcc99a329796347e63bfa353c12694b6e1ff9 Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 11 Dec 2009 12:08:25 +0100 Subject: Corrected instructions after dependence on armlib was introduced. --- README.s60-mkspec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.s60-mkspec b/README.s60-mkspec index 5aa9f06..cee4b2f 100644 --- a/README.s60-mkspec +++ b/README.s60-mkspec @@ -34,9 +34,10 @@ Compiling: 2. Switch out a few variables in profiles. Open mkspecs/symbian/linux-armcc/qmake.conf, search for - "FIXME/Epoc32" and switch out the FIXME part with your SDK + "FIXME" and switch out the FIXME part with your SDK installation directory. You might have to switch the case of the Epoc32 directory as well. + There may also be other FIXMEs. 3. Run configure. It needs a bit more switches than usual, so here's the full line: -- cgit v0.12