mkspecs/symbian/linux-gcce/qmake.conf
changeset 30 5dc02b23752f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/symbian/linux-gcce/qmake.conf	Tue Jul 06 15:10:48 2010 +0300
@@ -0,0 +1,95 @@
+#
+# qmake configuration for symbian/linux-gcce
+#
+
+include(../../common/symbian/symbian-makefile.conf)
+
+include(../../common/g++.conf)
+
+QMAKE_CC		= arm-none-symbianelf-gcc
+QMAKE_CXX		= arm-none-symbianelf-g++
+QMAKE_LINK		= arm-none-symbianelf-ld
+QMAKE_LINK_SHLIB	= arm-none-symbianelf-ld
+QMAKE_LINK_C		= arm-none-symbianelf-ld
+QMAKE_LINK_C_SHLIB	= arm-none-symbianelf-ld
+QMAKE_AR		= arm-none-symbianelf-ar cqs
+
+# gcce defaults to 'arm' instruction set.  Lets use the better 'thumb' if possible
+# notice that the middle part of the following set of vars matches the TARGET content of the libs
+
+QMAKE_qtmain_CXXFLAGS	= -mthumb
+QMAKE_QtCore_CXXFLAGS	= -mthumb
+QMAKE_QtGui_LFLAGS	= -Ttext 0x8000 -Tdata 0xE00000
+QMAKE_QtDBus_CXXFLAGS	= -mthumb
+QMAKE_QtDeclarative_CXXFLAGS	= -mthumb
+QMAKE_QtMultimedia_CXXFLAGS	= -mthumb
+QMAKE_QtNetwork_CXXFLAGS	= -mthumb
+QMAKE_QtOpenGL_CXXFLAGS	= -mthumb
+QMAKE_QtOpenVG_CXXFLAGS	= -mthumb
+QMAKE_phonon_CXXFLAGS	= -mthumb
+QMAKE_QtScript_CXXFLAGS	= -mthumb
+QMAKE_QtScriptTools_CXXFLAGS	= -mthumb
+QMAKE_QtSql_CXXFLAGS	= -mthumb
+QMAKE_QtSvg_CXXFLAGS	= -mthumb
+QMAKE_QtTest_CXXFLAGS	= -mthumb
+QMAKE_QtXmlPatterns_CXXFLAGS	= -mthumb
+QMAKE_QtXml_CXXFLAGS	= -mthumb
+#TODO fails with; arm-none-symbianelf-ld: section .data loaded at [00e00000,00e05973] overlaps section .text loaded at [00008000,00fe748b]
+QMAKE_QtWebKit_LFLAGS	= -Ttext 0x8000 -Tdata 0xE00000
+
+# never use -fPIC, gcce-linker doesn't like it.
+# g++ conf above adds it if the host platform is 64 bit, so we remove it again
+QMAKE_CFLAGS_SHLIB	-= -fPIC
+QMAKE_CFLAGS_STATIC_LIB	-= -fPIC
+QMAKE_CXXFLAGS_SHLIB	-= -fPIC
+QMAKE_CXXFLAGS_STATIC_LIB	-= -fPIC
+
+QMAKE_LFLAGS_SONAME	=
+#QMAKE_LFLAGS_THREAD	+=
+#QMAKE_LFLAGS_NOUNDEF	+= -Wl,--no-undefined
+QMAKE_LFLAGS_RPATH	= --rpath=
+
+DEFINES		+= __GCCE__ \
+                   UNICODE \
+                   _STLP_NO_EXCEPTION_HEADER
+
+QMAKE_LFLAGS_APP        += --entry=_E32Startup -u _E32Startup
+QMAKE_LFLAGS_SHLIB      += --default-symver --entry _E32Dll
+QMAKE_LFLAGS_PLUGIN     += $$QMAKE_LFLAGS_SHLIB
+
+gcceExtraFlags = --include=${EPOCROOT}/epoc32/include/gcce/gcce.h -march=armv5t -mapcs -mthumb-interwork -nostdinc -c -msoft-float -T script
+QMAKE_CFLAGS += $${gcceExtraFlags}
+QMAKE_CXXFLAGS += $${gcceExtraFlags} -x c++ -fexceptions -fno-unit-at-a-time -fvisibility-inlines-hidden
+#If we are not going to link to Qt or qtmain.lib, we need to include this at least once.
+isEmpty(QT):contains(TEMPLATE, app) {
+    QMAKE_CXXFLAGS += --include=${EPOCROOT}/epoc32/include/stdapis/staticlibinit_gcce.h
+}
+
+QMAKE_LFLAGS += --target1-abs \
+                --no-undefined \
+                --nostdlib
+
+QMAKE_LIBDIR	+= ${EPOCROOT}/epoc32/release/armv5/udeb/
+
+# g++ knows the path to the gcc-shipped-libs, ld doesn't. So cache the full path in the generate Makefile
+QMAKE_GCC_SEARCH_DIRS =$$system($$QMAKE_CXX -print-search-dirs)
+for(line, QMAKE_GCC_SEARCH_DIRS) {
+    contains(line, "libraries:") {
+        foundIt="1"
+    } else {
+        contains(foundIt, "1") {
+            QMAKE_LFLAGS += $$replace(line, "[=:]", " -L")
+        }
+    }
+}
+
+QMAKE_LIBDIR += $${EPOCROOT}/epoc32/release/armv5/lib
+
+INCLUDEPATH = ${EPOCROOT}/epoc32/include/ \
+    $${EPOCROOT}/epoc32/include/variant \
+    $${EPOCROOT}/epoc32/include/stdapis \
+    $${EPOCROOT}/epoc32/include/gcce \
+    ${EPOCROOT}/epoc32/include/stdapis/sys \
+    ${EPOCROOT}/epoc32/include/stdapis/stlport \
+    $$INCLUDEPATH
+