arm.xml 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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. <!-- build variants for ARM toolchain builds -->
  4. <var name="arm" extends="root">
  5. <varRef ref="default.interfaces"/>
  6. <varRef ref="default.locations"/>
  7. <!-- tools and scripts -->
  8. <env name="BMCONV" default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type="tool"/>
  9. <env name="SBS_CHECKLIB" default="$(EPOCTOOLS)/checklib$(DOTEXE)" type="tool"/>
  10. <set name="CHECKLIB" value="$(SBS_CHECKLIB)"/>
  11. <env name="CPPFILT" default="$(GCCPREFIX)c++filt$(DOTEXE)" type="tool"/>
  12. <env name="SBS_EFREEZE" default="$(PERL) $(EPOCTOOLS)/efreeze.pl" type="script"/>
  13. <set name="EFREEZE" value="$(SBS_EFREEZE)"/>
  14. <env name="SBS_DEF2DLL" default="$(PERL) $(EPOCTOOLS)/def2dll.pl" type="script"/>
  15. <set name="DEF2DLLTOOL" value="$(SBS_DEF2DLL)"/>
  16. <env name="SBS_ELF2E32" default="$(EPOCTOOLS)/elf2e32$(DOTEXE)" type="tool"/>
  17. <set name="ELF2E32" value="$(SBS_ELF2E32)"/>
  18. <env name="SBS_PREPDEF" default="$(PERL) $(EPOCTOOLS)/prepdef.pl" type="script"/>
  19. <set name="PREPDEF" value="$(SBS_PREPDEF)"/>
  20. <env name="SBS_RCOMP" default="$(EPOCTOOLS)/rcomp$(DOTEXE)" type="tool"/>
  21. <set name="RCOMP" value="$(SBS_RCOMP)"/>
  22. <!-- RANSLEEP is a program that can be used to cause a random delay in milliseconds. This is only useful in parallel builds. See the PERTURBSTARTTIME switch for more details. -->
  23. <env name="RANSLEEP" default="$(SBS_HOME)/bin/$(HOSTPLATFORM_DIR)/ransleep$(DOTEXE)" type="tool"/>
  24. <env name="SBSV1MAKE" default="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)" type="tool"/>
  25. <env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="script"/>
  26. <env name="SBS_TRANASM" default="$(PERL) $(EPOCTOOLS)/tranasm.pl" type="script"/>
  27. <set name="TRANASM" value="$(SBS_TRANASM)"/>
  28. <set name="BASE_ARCH" value="arm"/>
  29. <set name="POSTLINKER" value="$(ELF2E32)"/>
  30. <set name="IMPLIBTOOL" value="$(ELF2E32)"/>
  31. <set name="DEFGENTOOL" value="$(ELF2E32)"/>
  32. <!-- targettypes -->
  33. <set name="TARGET_TYPES" value="ani dll exe exexp fsy implib kdll kexe kext klib ldd lib pdd pdl pdll plugin plugin3 stddll stdexe stdlib textnotifier2 var var2 none"/>
  34. <!-- interfaces -->
  35. <append name="INTERFACE_TYPES" value="$(TARGET_TYPES)"/>
  36. <set name="INTERFACE.extension" value="Symbian.extension"/>
  37. <set name="INTERFACE.kexe" value="Symbian.kexe"/>
  38. <!-- macros -->
  39. <set name="ARMMACROS.CONFIG" value=""/>
  40. <set name="ARMMACROS.VAR" value=""/>
  41. <set name="ARMMACROS" value="__MARM_ARMV5__ $(ARMMACROS.CONFIG) $(ARMMACROS.VAR)"/>
  42. <set name="PLATMACROS.WINDOWS" value="$(PLATMACROS.TOOLCHAIN) EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/>
  43. <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
  44. <set name="PLATMACROS.CONFIG" value=""/>
  45. <set name="PLATMACROS.VAR" value=""/>
  46. <set name="PLATMACROS.TOOLCHAIN" value=""/>
  47. <set name="CAPABILITY" value=""/>
  48. <set name="CDEFS" value="__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__=&quot;$(PRODUCT_INCLUDE)&quot; $(MMPDEFS) $(ARMMACROS)"/>
  49. <set name="CODE_SEGMENT_START" value=""/>
  50. <set name="DEFAULT_STDCPP_NEWLIB" value="stdnew.dso"/>
  51. <set name="DEFAULT_SYMBIAN_NEWLIB" value="scppnwdl.dso"/>
  52. <set name="EPOCSTACKSIZE" value=""/>
  53. <set name="FIX_EXPORTS_USING_EXP_FILE" value=""/>
  54. <set name="FULLVARIANTPATH" value="$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
  55. <set name="HEADER_FILES_CONTROL_OPTION" value=""/>
  56. <set name="IMPLIB_EXTENSION" value="dso"/>
  57. <set name="LIBRARY_DEBUG" value=""/>
  58. <set name="LINKER_ENTRYPOINT_PREFIX" value="_"/>
  59. <set name="MMPDEFS" value=""/>
  60. <set name="NMAKE" value="nmake"/>
  61. <set name="NMAKEFLAGS" value="-nologo -x - "/>
  62. <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
  63. <set name="OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
  64. <set name="PERTURBSTARTTIME" value=""/>
  65. <!-- add a random delay before starting armcc or armlink to ease contention for licenses the maximum time to delay in milliseconds. RANSLEEP program must be available. -->
  66. <set name="PERTURBMSECS" value="500"/>
  67. <!-- the maximum time to delay in milliseconds -->
  68. <set name="POSTLINKER_COMPRESSION_DEFAULT" value="inflate"/>
  69. <set name="POSTLINKER_FPU_MAPPING" value="softvfp>softvfp vfpv2>vfpv2 softvfp+vfpv2>vfpv2 softvfp+vfpv3>vfpv3"/>
  70. <set name="RELEASEPATH" value="$(EPOCROOT)/epoc32/release"/>
  71. <set name="REMOVE_UNUSED_SECTIONS" value=""/>
  72. <set name="RESOLVED_DEFFILE" value=""/>
  73. <set name="RESOLVED_DEFFILE_SECONDARY" value=""/>
  74. <set name="RUNTIME_LIBS_PATH" value="$(EPOCROOT)/epoc32/release/armv5/lib"/>
  75. <set name="SID" value=""/>
  76. <set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
  77. <set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
  78. <set name="SYMBIAN_CC_MESSAGE_OPTION" value="$(CC_WARNINGS_CONTROL_OPTION) $(CC_ERRORS_CONTROL_OPTION)"/>
  79. <set name="SYMBIAN_LINK_FLAGS" value="$(SYMBIAN_LD_MESSAGE_OPTION) $(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(UNRESOLVED_SYMBOL_REF_OPTION) $(STDLIB_OPTION) $(EXTRA_LD_OPTION) $(SYMBIAN_LINK_FLAGS.CONFIG) $(SYMBIAN_LINK_FLAGS.VAR)"/>
  80. <set name="SYMBIAN_LINK_FLAGS.CONFIG" value=""/>
  81. <set name="SYMBIAN_LINK_FLAGS.VAR" value=""/>
  82. <set name="SYSTEMINCLUDE" value=""/>
  83. <set name="TARGET" value=""/>
  84. <set name="TREAT_EXES_AS_SHARED" value="1"/>
  85. <set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/>
  86. </var>
  87. <var name="v5">
  88. <set name="TRADITIONAL_PLATFORM" value="ARMV5"/>
  89. <set name="VARIANTPLATFORM" value="armv5"/>
  90. <set name="DEBUG_FORMAT" value="$(CC.DWARF2)"/>
  91. <set name="TARGET_ARCH_OPTION" value="$(CC.ARMV5)"/>
  92. <set name="LINKER_ARCH_OPTION" value="$(LD.ARMV5)"/>
  93. <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
  94. <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/>
  95. </var>
  96. <var name="v6">
  97. <set name="TRADITIONAL_PLATFORM" value="ARMV6"/>
  98. <set name="VARIANTPLATFORM" value="armv6"/>
  99. <set name="PLATMACROS.CONFIG" value="ARMV6"/>
  100. <set name="ARMMACROS.CONFIG" value="__ARMV6__"/>
  101. <set name="DEBUG_FORMAT" value="$(CC.DWARF2)"/>
  102. <set name="TARGET_ARCH_OPTION" value="$(CC.ARMV6)"/>
  103. <set name="LINKER_ARCH_OPTION" value="$(LD.ARMV6)"/>
  104. <set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
  105. <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
  106. <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/>
  107. <set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>
  108. </var>
  109. <var name="v7">
  110. <set name="TRADITIONAL_PLATFORM" value="ARMV7"/>
  111. <set name="VARIANTPLATFORM" value="armv7"/>
  112. <set name="PLATMACROS.CONFIG" value="ARMV7"/>
  113. <set name="ARMMACROS.CONFIG" value="__ARMV7__"/>
  114. <set name="DEBUG_FORMAT" value="$(CC.DWARF3)"/>
  115. <set name="TARGET_ARCH_OPTION" value="$(CC.ARMV7)"/>
  116. <set name="LINKER_ARCH_OPTION" value="$(LD.ARMV7)"/>
  117. <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV3)"/>
  118. <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV3)"/>
  119. <set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>
  120. </var>
  121. <var name="9e" extends="v5">
  122. <set name="VARIANTPLATFORM" value="arm9e"/>
  123. <set name="PLATMACROS.CONFIG" value="ARM9E"/>
  124. <set name="ARMMACROS.CONFIG" value="__ARM9E__"/>
  125. <set name="TARGET_ARCH_OPTION" value="--cpu ARM9E"/>
  126. <set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
  127. </var>
  128. <alias name="armv5_urel" meaning="arm.v5.urel.rvct2_2"/>
  129. <alias name="armv5_udeb" meaning="arm.v5.udeb.rvct2_2"/>
  130. <!-- To switch to GCCE for building armv5 code,
  131. comment out the two lines above this comment
  132. and comment in the two lines below this comment -->
  133. <!-- <alias name="armv5_urel" meaning="arm.v5.urel.gcce4_3_2"/> -->
  134. <!-- <alias name="armv5_udeb" meaning="arm.v5.udeb.gcce4_3_2"/> -->
  135. <!-- These aliases are provided to work with the "gcce_armv5" group -->
  136. <alias name="armv5_urel_gcce4_3_2" meaning="arm.v5.urel.gcce4_3_2"/>
  137. <alias name="armv5_udeb_gcce4_3_2" meaning="arm.v5.udeb.gcce4_3_2"/>
  138. <!-- GCCE 4.3.3 aliases -->
  139. <alias name="armv5_urel_gcce4_3_3" meaning="arm.v5.urel.gcce4_3_3"/>
  140. <alias name="armv5_udeb_gcce4_3_3" meaning="arm.v5.udeb.gcce4_3_3"/>
  141. <alias name="armv5_urel_gcce4_4_1" meaning="arm.v5.urel.gcce4_4_1"/>
  142. <alias name="armv5_udeb_gcce4_4_1" meaning="arm.v5.udeb.gcce4_4_1"/>
  143. <alias name="armv6_urel" meaning="arm.v6.urel.rvct2_2"/>
  144. <alias name="armv6_udeb" meaning="arm.v6.udeb.rvct2_2"/>
  145. <alias name="armv7_urel" meaning="arm.v7.urel.rvct4_0"/>
  146. <alias name="armv7_udeb" meaning="arm.v7.udeb.rvct4_0"/>
  147. <alias name="arm9e_urel" meaning="arm.9e.urel.rvct2_2"/>
  148. <alias name="arm9e_udeb" meaning="arm.9e.udeb.rvct2_2"/>
  149. <group name="armv5">
  150. <aliasRef ref="armv5_urel"/>
  151. <aliasRef ref="armv5_udeb"/>
  152. </group>
  153. <group name="armv6">
  154. <aliasRef ref="armv6_urel"/>
  155. <aliasRef ref="armv6_udeb"/>
  156. </group>
  157. <group name="armv7">
  158. <aliasRef ref="armv7_urel"/>
  159. <aliasRef ref="armv7_udeb"/>
  160. </group>
  161. <group name="arm9e">
  162. <aliasRef ref="arm9e_urel"/>
  163. <aliasRef ref="arm9e_udeb"/>
  164. </group>
  165. <group name="gcce_armv5">
  166. <aliasRef ref="armv5_urel_gcce4_3_2"/>
  167. <aliasRef ref="armv5_udeb_gcce4_3_2"/>
  168. </group>
  169. </build>