Merge : re-applies missing part of fix for Bug 2901,Add export for s60ibymacros.pm
<?xml version="1.0" encoding="ISO-8859-1"?>
<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">
<!-- Commonly used variants.
These can be referenced from the command-line or in configurations.
-->
<!-- This variant enables building win32 tools in Linux. Tools2 on Linux only -->
<var name="win32">
<set name='TOOLS2WIN32' value='1'/>
<env name='SBS_MINGW_LINUX_PREFIX' default='i586-mingw32msvc'/>
<env name='GCC' default='$(SBS_MINGW_LINUX_PREFIX)-g++' type='tool'/>
<env name='ARCHIVER' default='$(SBS_MINGW_LINUX_PREFIX)-ar' type='tool'/>
<env name='RANLIB' default='$(SBS_MINGW_LINUX_PREFIX)-ranlib' type='tool'/>
<set name='RELEASEPATH' value='$(EPOCROOT)/epoc32/release/tools2/$(VARIANTTYPE)'/>
<set name='DOTEXE' value='.exe'/>
<set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/>
</var>
<!-- This variant turns debug info on for arm only -->
<var name="debug_info">
<set name='DEBUG_INFO' value='1'/>
</var>
<!-- Run this variant to turn on trace compiler -->
<var name="tracecompiler">
<set name='USE_TRACE_COMPILER' value='1'/>
<env name='JAVA_HOME' default='' type='path'/>
<env name='SBS_JAVATC' default='$(JAVA_HOME)/bin/java.exe' type='tool' versionCommand='$(SBS_JAVATC) -version' versionResult='version \"1\.[5-9]' host='win*' />
<env name='SBS_JAVATC' default='$(JAVA_HOME)/bin/java' type='tool' versionCommand='$(SBS_JAVATC) -version' versionResult='version \"1\.[5-9]' host='lin*' />
</var>
<!-- Overrides the default debugging format for the ARM targets. -->
<var name="dwarf3">
<set name="DEBUG_FORMAT" value="$(CC.DWARF3)"/>
</var>
<var name="techview">
</var>
<var name="test">
<set name='TESTCODE' value='TRUE'/>
</var>
<var name="savespace">
<set name='SAVESPACE' value='TRUE'/>
</var>
<var name="generate_linkerfeedback">
<set name='GENERATELINKERFEEDBACK' value='TRUE'/>
</var>
<var name="use_linkerfeedback">
<set name='GENERATELINKERFEEDBACK' value='TRUE'/>
<set name='LINKERFEEDBACK_STAGE2' value='TRUE'/>
</var>
<var name="profilerfeedback">
<set name='USE_PROFILER_FEEDBACK' value='TRUE'/>
<env name='ARM_PROFILER_FILE' default='' type='path'/>
</var>
<var name="ltcg">
<set name='LTCG' value='TRUE'/>
<set name='LTCG_OPTION' value='--ltcg'/>
</var>
<var name="multifile">
<set name='MULTIFILE_ENABLED' value='TRUE'/>
</var>
<!-- build from clean can skip some processing -->
<var name="bfc">
<set name='DEPEND_SKIP' value='TRUE'/>
</var>
<!-- SMP variant for Kernel Code -->
<var name="smp">
<append name="CDEFS" value="__SMP__"/>
<append name="PLATMACROS.WINDOWS" value="SMP"/>
<!-- PLATMACROS.LINUX is set from PLATMACROS.WINDOWS -->
<append name="TRADITIONAL_PLATFORM" value='SMP' separator="" />
<append name="VARIANTPLATFORM" value="smp" separator=""/>
<set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>
</var>
<!-- emit formatted releasable information into the logs for post-build parsing -->
<var name="whatlog">
<set name='WHATLOG' value='TRUE'/>
</var>
<var name="gcce4_3_2" extends="gcce_base">
<env name="SBS_GCCE432BIN" type="toolchainpath" />
<set name="GCCEBIN" value="$(SBS_GCCE432BIN)" />
<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.2"/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
</var>
<var name="gcce4_3_3" extends="gcce_base">
<env name="SBS_GCCE433BIN" type="toolchainpath" />
<set name="GCCEBIN" value="$(SBS_GCCE433BIN)" />
<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.3"/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
</var>
<var name="gcce4_4_1" extends="gcce_base">
<env name="SBS_GCCE441BIN" type="toolchainpath" />
<set name="GCCEBIN" value="$(SBS_GCCE441BIN)" />
<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.4.1"/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_4"/>
<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_4__"/>
</var>
<var name="rvct2_2" extends="rvct">
<env name="RVCT22BIN" type="toolchainpath"/>
<env name="RVCT22INC" type="toolchainpath"/>
<env name="RVCT22LIB" type="toolchainpath"/>
<set name="RVCTBIN" value="$(RVCT22BIN)"/>
<set name="RVCTINC" value="$(RVCT22INC)"/>
<set name="RVCTLIB" value="$(RVCT22LIB)"/>
<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/>
<set name="OWN_LIBRARY_OPTION" value="-Ono_known_library"/>
<set name="RELOCATABLE_IMAGE_OPTION" value="--reloc"/>
<set name="SPLIT_OPTION" value="--split"/>
<set name="PLATMACROS.VAR" value="ARMCC_2 ARMCC_2_2"/>
<set name="ARMMACROS.VAR" value="__ARMCC_2__ __ARMCC_2_2__"/>
<set name="SYMBIAN_LINK_FLAGS.VAR" value=""/>
<set name="STATIC_LIBS_LIST" value="h_t__uf.l(switch8.o)"/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct2_2.dso drtrvct2_2.dso"/>
<set name="USER_STATIC_RUNTIME_LIB" value="usrt2_2.lib"/>
<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_2_2.lib"/>
<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt2_2.lib"/>
<set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
<set name="CC.NO_UNALIGNED_ACCESS" value="--memaccess -UL41"/>
<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
<set name="CC.ARMV5" value="--cpu 5T"/>
<set name="CC.ARMV6" value="--cpu 6"/>
<set name="USE_RVCT22_DELETE_WORKAROUND" value="1" />
</var>
<var name="rvct3_1" extends="rvct">
<env name="RVCT31BIN" type="toolchainpath"/>
<env name="RVCT31INC" type="toolchainpath"/>
<env name="RVCT31LIB" type="toolchainpath"/>
<set name="RVCTBIN" value="$(RVCT31BIN)"/>
<set name="RVCTINC" value="$(RVCT31INC)"/>
<set name="RVCTLIB" value="$(RVCT31LIB)"/>
<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/>
<set name="OWN_LIBRARY_OPTION" value="--library_interface=aeabi_clib"/>
<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
<set name="SPLIT_OPTION" value=""/>
<set name="PLATMACROS.VAR" value="ARMCC_3 ARMCC_3_1"/>
<set name="ARMMACROS.VAR" value="__ARMCC_3__ __ARMCC_3_1__"/>
<set name="SYMBIAN_LINK_FLAGS.VAR" value="--export_all"/>
<set name="STATIC_LIBS_LIST" value="h_5.l"/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
<set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_3_1.lib"/>
<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
<set name="NEED_ENTRYPOINT_LIBRARY" value="1"/>
<set name="CC.NO_UNALIGNED_ACCESS" value="--no_unaligned_access"/>
<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
<set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
<set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
<set name="CC.ARMV5" value="--cpu 5TE"/>
<set name="CC.ARMV6" value="--cpu 6"/>
<set name="CC.ARMV7" value="--cpu 7-A"/>
</var>
<var name="rvct4_0" extends="rvct">
<env name="RVCT40BIN" type="toolchainpath"/>
<env name="RVCT40INC" type="toolchainpath"/>
<env name="RVCT40LIB" type="toolchainpath"/>
<set name="RVCTBIN" value="$(RVCT40BIN)"/>
<set name="RVCTINC" value="$(RVCT40INC)"/>
<set name="RVCTLIB" value="$(RVCT40LIB)"/>
<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/>
<set name="OWN_LIBRARY_OPTION" value="--library_interface=aeabi_clib"/>
<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
<set name="SPLIT_OPTION" value=""/>
<set name="PLATMACROS.VAR" value="ARMCC_4 ARMCC_4_0"/>
<set name="ARMMACROS.VAR" value="__ARMCC_4__ __ARMCC_4_0__"/>
<set name="SYMBIAN_LINK_FLAGS.VAR" value="--override_visibility"/>
<set name="STATIC_LIBS_LIST" value=""/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
<set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/>
<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/>
<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/>
<set name="NEED_ENTRYPOINT_LIBRARY" value="1"/>
<set name="CC.NO_UNALIGNED_ACCESS" value="--no_unaligned_access"/>
<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp+vfpv2"/>
<set name="PL.SOFTVFP_MAYBE_VFPV2" value="vfpv2"/>
<set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp+vfpv3"/>
<!-- Not supported yet : <set name="PL.SOFTVFP_MAYBE_VFPV3" value="vfpv3"/> -->
<set name="PL.SOFTVFP_MAYBE_VFPV3" value="vfpv2"/>
<set name="CC.ARMV5" value="--cpu 5TE"/>
<set name="CC.ARMV6" value="--cpu 6"/>
<set name="CC.ARMV7" value="--cpu 7-A"/>
</var>
<var name="gccx86" extends="gccx86_base">
<env name="SBS_GCCX86BIN" type="toolchainpath" />
<set name="GCCX86BIN" value="$(SBS_GCCX86BIN)" />
<set name="GCCX86CC" value="$(GCCX86BIN)/g++$(DOTEXE)" type="tool" versionCommand="$(GCCX86CC) -dumpversion" versionResult="3\.4\.5"/>
<set name="RUNTIME_LIBS_LIST" value=""/>
</var>
<!-- Support x86 gcc build into a toolchain-specific tree -->
<var name="release_x86gcc">
<set name="VARIANTPLATFORM" value="x86gcc" />
</var>
<var name="urel">
<set name="DEBUG_INFO" value=""/>
<set name="SYMBIAN_CCFLAGS" value="$(REL_OPTIMISATION)"/>
<set name="VARIANTTYPE" value="urel"/>
<append name="CDEFS" value="NDEBUG"/>
</var>
<var name="udeb">
<set name="DEBUG_INFO" value="1"/>
<set name="SYMBIAN_CCFLAGS" value="$(DEBUG_OPTIMISATION)"/>
<set name="VARIANTTYPE" value="udeb"/>
<append name="CDEFS" value="_DEBUG"/>
</var>
<var name="remove_freeze">
<set name='EFREEZE_REMOVE_OPTION' value='-Remove'/>
</var>
<var name="slimdebug">
<append name='DEBUG_OPTIMISATION' value="$(DEBUGINFO_OPTIMISATION)"/>
</var>
<!-- OS variant mechanism is now deprecated. We retain the values for
versions older than TB92sf until the mechanism is removed. -->
<!-- variant for OS version v9.4 -->
<var name="v94">
<set name='POSTLINKER_SUPPORTS_WDP' value=''/>
<set name='SUPPORTS_STDCPP_NEWLIB' value=''/>
<set name='RVCT_PRE_INCLUDE' value='$(EPOCINCLUDE)/rvct2_2/rvct2_2.h'/>
</var>
<!-- variants for OS version TB91* (the same as OS v9.4) -->
<var name="vtb91" extends="v94"/>
<var name="vtb91sf" extends="v94"/>
<!-- these OS variants are deliberately empty -->
<var name="v95"/>
<var name="v96"/>
<var name="vFuture"/>
<var name="vtb92"/>
<var name="vtb92sf"/>
<var name="vtb101"/>
<var name="vtb101sf"/>
<!-- WINSCW specific variant for pick up nested relative include headers correctly -->
<var name="mwccinc">
<set name='OPTION_CW' value='-cwd include'/>
</var>
<!-- Variant to allow GCCE-built binaries to be created in epoc32/release/gcce,
epoc32/release/gccev6 and epoc32/release/gccev7 -->
<var name="release_gcce">
<set name="VARIANTPLATFORM" value="gcce" />
<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
<set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
</var>
<var name="release_gccev6" extends="release_gcce" >
<set name="VARIANTPLATFORM" value="gccev6" />
</var>
<var name="release_gccev7" extends="release_gcce" >
<set name="VARIANTPLATFORM" value="gccev7" />
</var>
<!-- Variant to permit a workaround for an armlink 2.2 crash with very large targets -->
<var name="nodebug">
<set name="DEBUG_INFO" value=""/>
</var>
</build>