variants.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
  3. <!-- Commonly used variants.
  4. These can be referenced from the command-line or in configurations.
  5. -->
  6. <!-- This variant enables building win32 tools in Linux. Tools2 on Linux only -->
  7. <var name="win32">
  8. <set name='TOOLS2WIN32' value='1'/>
  9. <env name='SBS_MINGW_LINUX_BIN' default='/usr/bin'/>
  10. <env name='SBS_MINGW_LINUX_PREFIX' default='i586-mingw32msvc'/>
  11. <env name='GCC' default='$(SBS_MINGW_LINUX_BIN)/$(SBS_MINGW_LINUX_PREFIX)-g++' type='tool'/>
  12. <env name='ARCHIVER' default='$(SBS_MINGW_LINUX_BIN)/$(SBS_MINGW_LINUX_PREFIX)-ar' type='tool'/>
  13. <env name='RANLIB' default='$(SBS_MINGW_LINUX_BIN)/$(SBS_MINGW_LINUX_PREFIX)-ranlib' type='tool'/>
  14. <env name='SBS_STLPORTINCDIR_WIN32' default='$(EPOCINCLUDE)/tools/stlport' type='path'/>
  15. <env name='SBS_STLPORTBINDIR_WIN32' default='$(EPOCROOT)/epoc32/release/tools2' type='path'/>
  16. <set name='STLPORTBINDIR' value='$(SBS_STLPORTBINDIR_WIN32)/$(VARIANTTYPE)'/>
  17. <set name='SYSTEMINCLUDE' value='$(SBS_STLPORTINCDIR_WIN32)'/>
  18. <set name='RELEASEPATH' value='$(EPOCROOT)/epoc32/release/tools2/$(VARIANTTYPE)'/>
  19. <set name='DOTEXE' value='.exe'/>
  20. <set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/>
  21. </var>
  22. <!-- This variant enables STLport v 5.2 for tools2 builds - it is not needed to build STLport
  23. itself but only tools that link against it. -->
  24. <var name="stlport5_2">
  25. <set name='STLPORTLIBRARY' value='stlport.5.2'/>
  26. <env name='SBS_STLPORTINCDIR' default='$(EPOCINCLUDE)/tools/stlport5.2' type='path'/>
  27. <env name='SBS_STLPORTINCDIR_WIN32' default='$(EPOCINCLUDE)/tools/stlport5.2' type='path' host='lin.*'/>
  28. </var>
  29. <!-- This variant enables STLport v 5.1 for tools2 builds - it is not needed to build STLport
  30. itself but only tools that link against it; this will be useful when STLport 5.2 is the
  31. default STLport version in tools2 builds. -->
  32. <var name="stlport5_1">
  33. <set name='STLPORTLIBRARY' value='stlport.5.1'/>
  34. <env name='SBS_STLPORTINCDIR' default='$(EPOCINCLUDE)/tools/stlport' type='path'/>
  35. <env name='SBS_STLPORTINCDIR_WIN32' default='$(EPOCINCLUDE)/tools/stlport' type='path' host='lin.*'/>
  36. </var>
  37. <!-- This variant turns debug info on for arm only -->
  38. <var name="debug_info">
  39. <set name='DEBUG_INFO' value='1'/>
  40. </var>
  41. <!-- Run this variant to turn on trace compiler -->
  42. <var name="tracecompiler">
  43. <set name='USE_TRACE_COMPILER' value='1'/>
  44. <env name='JAVA_HOME' default='' type='path'/>
  45. <env name='SBS_JAVATC' default='$(JAVA_HOME)/bin/java.exe' type='tool' versionCommand='$(SBS_JAVATC) -version' versionResult='version \"1\.[5-9]' host='win*' />
  46. <env name='SBS_JAVATC' default='$(JAVA_HOME)/bin/java' type='tool' versionCommand='$(SBS_JAVATC) -version' versionResult='version \"1\.[5-9]' host='lin*' />
  47. </var>
  48. <!-- Overrides the default debugging format for the ARM targets. -->
  49. <var name="dwarf3">
  50. <set name="DEBUG_FORMAT" value="$(CC.DWARF3)"/>
  51. </var>
  52. <var name="techview">
  53. </var>
  54. <var name="test">
  55. <set name='TESTCODE' value='TRUE'/>
  56. </var>
  57. <var name="savespace">
  58. <set name='SAVESPACE' value='TRUE'/>
  59. </var>
  60. <!-- This variant triggers linker feedback file generation, and its subsequent
  61. use in compilation, with toolchains that support the functionality -->
  62. <var name="linkerfeedback">
  63. <set name='LINKERFEEDBACK' value='TRUE'/>
  64. </var>
  65. <var name="profilerfeedback">
  66. <set name='USE_PROFILER_FEEDBACK' value='TRUE'/>
  67. <env name='ARM_PROFILER_FILE' default='' type='path'/>
  68. </var>
  69. <var name="ltcg">
  70. <set name='LTCG' value='TRUE'/>
  71. <set name='LTCG_OPTION' value='--ltcg'/>
  72. </var>
  73. <var name="multifile">
  74. <set name='MULTIFILE_ENABLED' value='TRUE'/>
  75. </var>
  76. <!-- build from clean can skip some processing -->
  77. <var name="bfc">
  78. <set name='DEPEND_SKIP' value='TRUE'/>
  79. </var>
  80. <!-- SMP variant for Kernel Code -->
  81. <var name="smp">
  82. <append name="CDEFS" value="__SMP__"/>
  83. <append name="PLATMACROS.WINDOWS" value="SMP"/>
  84. <!-- PLATMACROS.LINUX is set from PLATMACROS.WINDOWS -->
  85. <append name="TRADITIONAL_PLATFORM" value='SMP' separator="" />
  86. <append name="VARIANTPLATFORM" value="smp" separator=""/>
  87. <set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>
  88. </var>
  89. <!-- emit formatted releasable information into the logs for post-build parsing -->
  90. <var name="whatlog">
  91. <set name='WHATLOG' value='TRUE'/>
  92. </var>
  93. <var name="gcce4_3_2" extends="gcce_base">
  94. <env name="SBS_GCCE432BIN" type="toolchainpath" />
  95. <set name="GCCEBIN" value="$(SBS_GCCE432BIN)" />
  96. <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.2"/>
  97. <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
  98. <set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
  99. <set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
  100. </var>
  101. <var name="gcce4_3_3" extends="gcce_base">
  102. <env name="SBS_GCCE433BIN" type="toolchainpath" />
  103. <set name="GCCEBIN" value="$(SBS_GCCE433BIN)" />
  104. <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.3"/>
  105. <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
  106. <set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
  107. <set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
  108. </var>
  109. <var name="gcce4_4_1" extends="gcce_base">
  110. <env name="SBS_GCCE441BIN" type="toolchainpath" />
  111. <set name="GCCEBIN" value="$(SBS_GCCE441BIN)" />
  112. <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.4.1"/>
  113. <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
  114. <set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_4"/>
  115. <set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_4__"/>
  116. </var>
  117. <var name="gcce4_5_1" extends="gcce_base">
  118. <env name="SBS_GCCE451BIN" type="toolchainpath" />
  119. <set name="GCCEBIN" value="$(SBS_GCCE451BIN)" />
  120. <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.5.1"/>
  121. <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
  122. <set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_5"/>
  123. <set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_5__"/>
  124. <set name="LINKER_DEFAULT_LIBS" value="-lsupc++ -lgcc -lgcc_eh"/>
  125. <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/>
  126. <set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/>
  127. <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/>
  128. </var>
  129. <var name="rvct2_2" extends="rvct_base">
  130. <env name="RVCT22BIN" type="toolchainpath"/>
  131. <env name="RVCT22INC" type="toolchainpath"/>
  132. <env name="RVCT22LIB" type="toolchainpath"/>
  133. <set name="RVCTBIN" value="$(RVCT22BIN)"/>
  134. <set name="RVCTINC" value="$(RVCT22INC)"/>
  135. <set name="RVCTLIB" value="$(RVCT22LIB)"/>
  136. <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/>
  137. <set name="OWN_LIBRARY_OPTION" value="-Ono_known_library"/>
  138. <set name="RELOCATABLE_IMAGE_OPTION" value="--reloc"/>
  139. <set name="SPLIT_OPTION" value="--split"/>
  140. <set name="PLATMACROS.VAR" value="ARMCC_2 ARMCC_2_2"/>
  141. <set name="ARMMACROS.VAR" value="__ARMCC_2__ __ARMCC_2_2__"/>
  142. <set name="SYMBIAN_LINK_FLAGS.VAR" value=""/>
  143. <set name="STATIC_LIBS_LIST" value="h_t__uf.l(switch8.o)"/>
  144. <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct2_2.dso drtrvct2_2.dso"/>
  145. <set name="USER_STATIC_RUNTIME_LIB" value="usrt2_2.lib"/>
  146. <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_2_2.lib"/>
  147. <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt2_2.lib"/>
  148. <set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
  149. <set name="CC.NO_UNALIGNED_ACCESS" value="--memaccess -UL41"/>
  150. <set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
  151. <set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
  152. <set name="CC.ARMV5" value="--cpu 5T"/>
  153. <set name="USE_RVCT22_DELETE_WORKAROUND" value="1" />
  154. </var>
  155. <var name="rvct3_1" extends="rvct_base">
  156. <env name="RVCT31BIN" type="toolchainpath"/>
  157. <env name="RVCT31INC" type="toolchainpath"/>
  158. <env name="RVCT31LIB" type="toolchainpath"/>
  159. <set name="RVCTBIN" value="$(RVCT31BIN)"/>
  160. <set name="RVCTINC" value="$(RVCT31INC)"/>
  161. <set name="RVCTLIB" value="$(RVCT31LIB)"/>
  162. <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/>
  163. <set name="PLATMACROS.VAR" value="ARMCC_3 ARMCC_3_1"/>
  164. <set name="ARMMACROS.VAR" value="__ARMCC_3__ __ARMCC_3_1__"/>
  165. <set name="SYMBIAN_LINK_FLAGS.VAR" value="--export_all"/>
  166. <set name="STATIC_LIBS_LIST" value="h_5.l"/>
  167. <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
  168. <set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
  169. <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_3_1.lib"/>
  170. <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
  171. <set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
  172. <set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
  173. <set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
  174. <set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
  175. </var>
  176. <var name="rvct4_0" extends="rvct_base">
  177. <env name="RVCT40BIN" type="toolchainpath"/>
  178. <env name="RVCT40INC" type="toolchainpath"/>
  179. <env name="RVCT40LIB" type="toolchainpath"/>
  180. <set name="RVCTBIN" value="$(RVCT40BIN)"/>
  181. <set name="RVCTINC" value="$(RVCT40INC)"/>
  182. <set name="RVCTLIB" value="$(RVCT40LIB)"/>
  183. <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/>
  184. <set name="PLATMACROS.VAR" value="ARMCC_4 ARMCC_4_0"/>
  185. <set name="ARMMACROS.VAR" value="__ARMCC_4__ __ARMCC_4_0__"/>
  186. <set name="SYMBIAN_LINK_FLAGS.VAR" value="--override_visibility $(LINKER_INLINE_OPTION)"/>
  187. <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
  188. <set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/>
  189. <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/>
  190. <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/>
  191. </var>
  192. <var name="rvct4_1" extends="rvct_base">
  193. <env name="ARMCC41BIN" type="toolchainpath"/>
  194. <env name="ARMCC41INC" type="toolchainpath"/>
  195. <env name="ARMCC41LIB" type="toolchainpath"/>
  196. <set name="RVCTBIN" value="$(ARMCC41BIN)"/>
  197. <set name="RVCTINC" value="$(ARMCC41INC)"/>
  198. <set name="RVCTLIB" value="$(ARMCC41LIB)"/>
  199. <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, 4\.1\b"/>
  200. <set name="PLATMACROS.VAR" value="ARMCC_4 ARMCC_4_1"/>
  201. <set name="ARMMACROS.VAR" value="__ARMCC_4__ __ARMCC_4_1__"/>
  202. <set name="SYMBIAN_LINK_FLAGS.VAR" value="--override_visibility $(LINKER_INLINE_OPTION)"/>
  203. <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
  204. <!-- These are good enough for now. -->
  205. <set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/>
  206. <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/>
  207. <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/>
  208. </var>
  209. <var name="gccx86" extends="gccx86_base">
  210. <env name="SBS_GCCX86BIN" type="toolchainpath" />
  211. <set name="GCCX86BIN" value="$(SBS_GCCX86BIN)" />
  212. <set name="GCCX86CC" value="$(GCCX86BIN)/g++$(DOTEXE)" type="tool" versionCommand="$(GCCX86CC) -dumpversion" versionResult="3\.4\.5"/>
  213. <set name="RUNTIME_LIBS_LIST" value=""/>
  214. </var>
  215. <!-- Support x86 gcc build into a toolchain-specific tree -->
  216. <var name="release_x86gcc">
  217. <set name="VARIANTPLATFORM" value="x86gcc" />
  218. </var>
  219. <var name="urel">
  220. <set name="DEBUG_INFO" value=""/>
  221. <set name="SYMBIAN_CCFLAGS" value="$(REL_OPTIMISATION)"/>
  222. <set name="VARIANTTYPE" value="urel"/>
  223. <append name="CDEFS" value="NDEBUG"/>
  224. </var>
  225. <var name="udeb">
  226. <set name="DEBUG_INFO" value="1"/>
  227. <set name="SYMBIAN_CCFLAGS" value="$(DEBUG_OPTIMISATION)"/>
  228. <set name="VARIANTTYPE" value="udeb"/>
  229. <append name="CDEFS" value="_DEBUG"/>
  230. </var>
  231. <var name="remove_freeze">
  232. <set name='EFREEZE_REMOVE_OPTION' value='-Remove'/>
  233. </var>
  234. <var name="slimdebug">
  235. <append name='DEBUG_OPTIMISATION' value="$(DEBUGINFO_OPTIMISATION)"/>
  236. </var>
  237. <!-- OS variant mechanism is now deprecated. We retain the values for
  238. versions older than TB92sf until the mechanism is removed. -->
  239. <!-- variant for OS version v9.4 -->
  240. <var name="v94">
  241. <set name='POSTLINKER_SUPPORTS_WDP' value=''/>
  242. <set name='SUPPORTS_STDCPP_NEWLIB' value=''/>
  243. <set name='RVCT_PRE_INCLUDE' value='$(EPOCINCLUDE)/rvct2_2/rvct2_2.h'/>
  244. </var>
  245. <!-- variants for OS version TB91* (the same as OS v9.4) -->
  246. <var name="vtb91" extends="v94"/>
  247. <var name="vtb91sf" extends="v94"/>
  248. <!-- these OS variants are deliberately empty -->
  249. <var name="v95"/>
  250. <var name="v96"/>
  251. <var name="vFuture"/>
  252. <var name="vtb92"/>
  253. <var name="vtb92sf"/>
  254. <var name="vtb101"/>
  255. <var name="vtb101sf"/>
  256. <!-- WINSCW specific variant for pick up nested relative include headers correctly -->
  257. <var name="mwccinc">
  258. <set name='OPTION_CW' value='-cwd include'/>
  259. </var>
  260. <!-- Variant to allow GCCE-built binaries to be created in epoc32/release/gcce,
  261. epoc32/release/gccev6 and epoc32/release/gccev7 -->
  262. <var name="release_gcce">
  263. <set name="VARIANTPLATFORM" value="gcce" />
  264. <set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
  265. <set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
  266. </var>
  267. <var name="release_gccev6" extends="release_gcce" >
  268. <set name="VARIANTPLATFORM" value="gccev6" />
  269. </var>
  270. <var name="release_gccev7" extends="release_gcce" >
  271. <set name="VARIANTPLATFORM" value="gccev7" />
  272. </var>
  273. <!-- Variant to permit a workaround for an armlink 2.2 crash with very large targets -->
  274. <var name="nodebug">
  275. <set name="DEBUG_INFO" value=""/>
  276. </var>
  277. <!-- for builds which don't need a populated .hrh file -->
  278. <var name="nohrh">
  279. <set name="VARIANT_HRH" value="$(SBS_HOME)/lib/config/empty.hrh"/>
  280. </var>
  281. <!-- triggers builds to use command files in compilation calls, where supported -->
  282. <var name="use_compilation_command_file">
  283. <set name="USE_COMPILATION_COMMAND_FILE" value="TRUE"/>
  284. </var>
  285. <var name='remove_unused_sections'>
  286. <!-- this rvct option causes the linker to remove unused input sections, reducing symbol file size -->
  287. <set name="REMOVE_UNUSED_SECTIONS" value="TRUE"/>
  288. </var>
  289. </build>