|
1 # |
|
2 # qmake configuration for symbian/linux-gcce |
|
3 # |
|
4 |
|
5 include(../../common/symbian/symbian-makefile.conf) |
|
6 |
|
7 include(../../common/g++.conf) |
|
8 |
|
9 QMAKE_CC = arm-none-symbianelf-gcc |
|
10 QMAKE_CXX = arm-none-symbianelf-g++ |
|
11 QMAKE_LINK = arm-none-symbianelf-ld |
|
12 QMAKE_LINK_SHLIB = arm-none-symbianelf-ld |
|
13 QMAKE_LINK_C = arm-none-symbianelf-ld |
|
14 QMAKE_LINK_C_SHLIB = arm-none-symbianelf-ld |
|
15 QMAKE_AR = arm-none-symbianelf-ar cqs |
|
16 |
|
17 # gcce defaults to 'arm' instruction set. Lets use the better 'thumb' if possible |
|
18 # notice that the middle part of the following set of vars matches the TARGET content of the libs |
|
19 |
|
20 QMAKE_qtmain_CXXFLAGS = -mthumb |
|
21 QMAKE_QtCore_CXXFLAGS = -mthumb |
|
22 QMAKE_QtGui_LFLAGS = -Ttext 0x8000 -Tdata 0xE00000 |
|
23 QMAKE_QtDBus_CXXFLAGS = -mthumb |
|
24 QMAKE_QtDeclarative_CXXFLAGS = -mthumb |
|
25 QMAKE_QtMultimedia_CXXFLAGS = -mthumb |
|
26 QMAKE_QtNetwork_CXXFLAGS = -mthumb |
|
27 QMAKE_QtOpenGL_CXXFLAGS = -mthumb |
|
28 QMAKE_QtOpenVG_CXXFLAGS = -mthumb |
|
29 QMAKE_phonon_CXXFLAGS = -mthumb |
|
30 QMAKE_QtScript_CXXFLAGS = -mthumb |
|
31 QMAKE_QtScriptTools_CXXFLAGS = -mthumb |
|
32 QMAKE_QtSql_CXXFLAGS = -mthumb |
|
33 QMAKE_QtSvg_CXXFLAGS = -mthumb |
|
34 QMAKE_QtTest_CXXFLAGS = -mthumb |
|
35 QMAKE_QtXmlPatterns_CXXFLAGS = -mthumb |
|
36 QMAKE_QtXml_CXXFLAGS = -mthumb |
|
37 #TODO fails with; arm-none-symbianelf-ld: section .data loaded at [00e00000,00e05973] overlaps section .text loaded at [00008000,00fe748b] |
|
38 QMAKE_QtWebKit_LFLAGS = -Ttext 0x8000 -Tdata 0xE00000 |
|
39 |
|
40 # never use -fPIC, gcce-linker doesn't like it. |
|
41 # g++ conf above adds it if the host platform is 64 bit, so we remove it again |
|
42 QMAKE_CFLAGS_SHLIB -= -fPIC |
|
43 QMAKE_CFLAGS_STATIC_LIB -= -fPIC |
|
44 QMAKE_CXXFLAGS_SHLIB -= -fPIC |
|
45 QMAKE_CXXFLAGS_STATIC_LIB -= -fPIC |
|
46 |
|
47 QMAKE_LFLAGS_SONAME = |
|
48 #QMAKE_LFLAGS_THREAD += |
|
49 #QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined |
|
50 QMAKE_LFLAGS_RPATH = --rpath= |
|
51 |
|
52 DEFINES += __GCCE__ \ |
|
53 UNICODE \ |
|
54 _STLP_NO_EXCEPTION_HEADER |
|
55 |
|
56 QMAKE_LFLAGS_APP += --entry=_E32Startup -u _E32Startup |
|
57 QMAKE_LFLAGS_SHLIB += --default-symver --entry _E32Dll |
|
58 QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB |
|
59 |
|
60 gcceExtraFlags = --include=${EPOCROOT}/epoc32/include/gcce/gcce.h -march=armv5t -mapcs -mthumb-interwork -nostdinc -c -msoft-float -T script |
|
61 QMAKE_CFLAGS += $${gcceExtraFlags} |
|
62 QMAKE_CXXFLAGS += $${gcceExtraFlags} -x c++ -fexceptions -fno-unit-at-a-time -fvisibility-inlines-hidden |
|
63 #If we are not going to link to Qt or qtmain.lib, we need to include this at least once. |
|
64 isEmpty(QT):contains(TEMPLATE, app) { |
|
65 QMAKE_CXXFLAGS += --include=${EPOCROOT}/epoc32/include/stdapis/staticlibinit_gcce.h |
|
66 } |
|
67 |
|
68 QMAKE_LFLAGS += --target1-abs \ |
|
69 --no-undefined \ |
|
70 --nostdlib |
|
71 |
|
72 QMAKE_LIBDIR += ${EPOCROOT}/epoc32/release/armv5/udeb/ |
|
73 |
|
74 # g++ knows the path to the gcc-shipped-libs, ld doesn't. So cache the full path in the generate Makefile |
|
75 QMAKE_GCC_SEARCH_DIRS =$$system($$QMAKE_CXX -print-search-dirs) |
|
76 for(line, QMAKE_GCC_SEARCH_DIRS) { |
|
77 contains(line, "libraries:") { |
|
78 foundIt="1" |
|
79 } else { |
|
80 contains(foundIt, "1") { |
|
81 QMAKE_LFLAGS += $$replace(line, "[=:]", " -L") |
|
82 } |
|
83 } |
|
84 } |
|
85 |
|
86 QMAKE_LIBDIR += $${EPOCROOT}/epoc32/release/armv5/lib |
|
87 |
|
88 INCLUDEPATH = ${EPOCROOT}/epoc32/include/ \ |
|
89 $${EPOCROOT}/epoc32/include/variant \ |
|
90 $${EPOCROOT}/epoc32/include/stdapis \ |
|
91 $${EPOCROOT}/epoc32/include/gcce \ |
|
92 ${EPOCROOT}/epoc32/include/stdapis/sys \ |
|
93 ${EPOCROOT}/epoc32/include/stdapis/stlport \ |
|
94 $$INCLUDEPATH |
|
95 |