summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/symbian/symbian-makefile.conf6
-rw-r--r--mkspecs/symbian/linux-armcc/features/symbian_building.prf12
2 files changed, 14 insertions, 4 deletions
diff --git a/mkspecs/common/symbian/symbian-makefile.conf b/mkspecs/common/symbian/symbian-makefile.conf
index e8f00d5..65796b6 100644
--- a/mkspecs/common/symbian/symbian-makefile.conf
+++ b/mkspecs/common/symbian/symbian-makefile.conf
@@ -18,8 +18,12 @@ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS --no_parse_templates
QMAKE_LFLAGS += --diag_suppress 6331,6780 --bpabi --reloc --datacompressor=off --split --rw-base 0x800000 --dll --no_scanlib
QMAKE_LFLAGS_APP += --entry _E32Startup
QMAKE_LFLAGS_SHLIB += --entry _E32Dll
+QMAKE_CFLAGS_DEBUG += -g
+QMAKE_CXXFLAGS_DEBUG += -g
+QMAKE_CFLAGS_RELEASE += -O2 -Otime
+QMAKE_CXXFLAGS_RELEASE += -O2 -Otime
-DEFINES += __SYMBIAN32__ EKA2 __S60_50__ __S60_3X__ __SERIES60_3X__ __EPOC32__ __MARM__ __EABI__ __ARMCC__ __ARMcc_2__ __ARMCC_2_2__ __MARM_ARMV5__ __MARM_THUMB__ __MARM_INTERWORK__ __DLL__ _UNICODE __SUPPORT_CPP_EXCEPTIONS__
+DEFINES += __SYMBIAN32__ EKA2 __S60_50__ __S60_3X__ __SERIES60_3X__ __EPOC32__ __MARM__ __EABI__ __ARMCC__ __ARMcc_2__ __ARMCC_2_2__ __MARM_ARMV5__ __MARM_INTERWORK__ __DLL__ _UNICODE __SUPPORT_CPP_EXCEPTIONS__
include(../../common/unix.conf)
diff --git a/mkspecs/symbian/linux-armcc/features/symbian_building.prf b/mkspecs/symbian/linux-armcc/features/symbian_building.prf
index 889b8b0..45b5162 100644
--- a/mkspecs/symbian/linux-armcc/features/symbian_building.prf
+++ b/mkspecs/symbian/linux-armcc/features/symbian_building.prf
@@ -10,6 +10,10 @@ isEmpty(symbianDestdir) {
symbianDestdir = .
}
+contains(QMAKE_CFLAGS, "--thumb")|contains(QMAKE_CXXFLAGS, "--thumb") {
+ DEFINES += __MARM_THUMB__
+}
+
for(libraries, LIBS) {
libraries = $$replace(libraries, "\.dll$", ".dso")
isFullName = $$find(libraries, \.)
@@ -77,7 +81,8 @@ isEmpty(TARGET.UID2):TARGET.UID2 = 0x00000000
contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
!isEmpty($$QMAKE_POST_LINK):QMAKE_POST_LINK += &&
QMAKE_POST_LINK += $$QMAKE_MOVE $$symbianDestdir/$${TARGET}.dll $$symbianDestdir/$${TARGET}.sym
- QMAKE_POST_LINK += && elf2e32 --version=$$decVersion --sid=$$TARGET.SID --uid1=0x10000079 --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=DLL --elfinput=$${symbianDestdir}/$${TARGET}.sym --output=$${symbianDestdir}/$${TARGET}.dll --dso=$$symbianDestdir/$${TARGET}.dso --defoutput=$$symbianObjdir/$${TARGET}.def --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged | tee elf2e32.log && ! grep Error: elf2e32.log >& /dev/null && rm -f elf2e32.log
+ # the tee and grep at the end work around the issue that elf2e32 doesn't return non-null on error
+ QMAKE_POST_LINK += && elf2e32 --version=$$decVersion --sid=$$TARGET.SID --uid1=0x10000079 --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=DLL --elfinput=$${symbianDestdir}/$${TARGET}.sym --output=$${symbianDestdir}/$${TARGET}.dll --dso=$$symbianDestdir/$${TARGET}.dso --defoutput=$$symbianObjdir/$${TARGET}.def --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged | tee elf2e32.log && test `grep -c 'Error:' elf2e32.log` = 0 && rm elf2e32.log
QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.sym
QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.dso
QMAKE_CLEAN += $${symbianObjdir}/$${TARGET}.def
@@ -87,11 +92,12 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
QMAKE_LFLAGS += --symver_soname --soname $${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll
}
-contains(TEMPLATE, app) {
+contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@.*") {
!isEmpty($$QMAKE_POST_LINK):QMAKE_POST_LINK += &&
QMAKE_POST_LINK += $$QMAKE_MOVE $$symbianDestdir/$${TARGET} $$symbianDestdir/$${TARGET}.sym
- QMAKE_POST_LINK += && elf2e32 --version $$decVersion --sid=$$TARGET.SID --uid1=0x1000007a --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=EXE --elfinput=$${symbianDestdir}/$${TARGET}.sym --output=$${symbianDestdir}/$${TARGET}.exe --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged | tee elf2e32.log && ! grep Error: elf2e32.log >& /dev/null && rm -f elf2e32.log
+ # the tee and grep at the end work around the issue that elf2e32 doesn't return non-null on error
+ QMAKE_POST_LINK += && elf2e32 --version $$decVersion --sid=$$TARGET.SID --uid1=0x1000007a --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=EXE --elfinput=$${symbianDestdir}/$${TARGET}.sym --output=$${symbianDestdir}/$${TARGET}.exe --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged | tee elf2e32.log && test `grep -c 'Error:' elf2e32.log` = 0 && rm elf2e32.log
QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.sym
QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.exe