Improved diagnostic output: when the build fails because a package cannot be cloned into the build drive, it says which package and the repo source and destination.
Improved caching logic, so that it doesn't depend on network availability as much.
Improved indentation.
<?xml version="1.0"?>
<!-- Enable this after dtd is available with OsExt release -->
<!DOCTYPE SystemDefinition [
<!ELEMENT SystemDefinition (systemModel?, build?)>
<!ATTLIST SystemDefinition
name CDATA #REQUIRED
schema CDATA #REQUIRED>
<!ELEMENT systemModel (layer+)>
<!ELEMENT layer (logicalset* | module*)*>
<!ATTLIST layer
name CDATA #REQUIRED
levels CDATA #IMPLIED
span CDATA #IMPLIED>
<!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
<!ATTLIST logicalset name CDATA #REQUIRED>
<!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
<!ATTLIST logicalsubset name CDATA #REQUIRED>
<!ELEMENT module (component* | unit* | package* | prebuilt*)*>
<!ATTLIST module
name CDATA #REQUIRED
level CDATA #IMPLIED>
<!ELEMENT component (unit* | package* | prebuilt*)*>
<!ATTLIST component name CDATA #REQUIRED>
<!ELEMENT unit EMPTY>
<!ATTLIST unit
unitID ID #REQUIRED
name CDATA #REQUIRED
mrp CDATA #REQUIRED
filter CDATA #IMPLIED
bldFile CDATA #REQUIRED
priority CDATA #IMPLIED
contract CDATA #IMPLIED>
<!ELEMENT package EMPTY>
<!ATTLIST package
name CDATA #REQUIRED
mrp CDATA #REQUIRED
filter CDATA #IMPLIED
contract CDATA #IMPLIED>
<!ELEMENT prebuilt EMPTY>
<!ATTLIST prebuilt
name CDATA #REQUIRED
version CDATA #REQUIRED
late (Y|N) #IMPLIED
filter CDATA #IMPLIED
contract CDATA #IMPLIED>
<!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
<!ELEMENT unitList (unitRef+)>
<!ATTLIST unitList
name ID #REQUIRED
description CDATA #REQUIRED>
<!ELEMENT unitRef EMPTY>
<!ATTLIST unitRef unit IDREF #REQUIRED>
<!ELEMENT targetList EMPTY>
<!ATTLIST targetList
name ID #REQUIRED
description CDATA #REQUIRED
target IDREFS #REQUIRED>
<!ELEMENT target EMPTY>
<!ATTLIST target
name ID #REQUIRED
abldTarget CDATA #REQUIRED
description CDATA #REQUIRED>
<!ELEMENT option EMPTY>
<!ATTLIST option
name ID #REQUIRED
abldOption CDATA #REQUIRED
description CDATA #REQUIRED
enable (Y | N | y | n) #REQUIRED>
<!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
<!ATTLIST configuration
name ID #REQUIRED
description CDATA #REQUIRED
filter CDATA #REQUIRED>
<!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
<!ELEMENT unitListRef EMPTY>
<!ATTLIST unitListRef unitList IDREF #REQUIRED>
<!ELEMENT layerRef EMPTY>
<!ATTLIST layerRef layerName CDATA #REQUIRED>
<!ELEMENT buildLayer EMPTY>
<!ATTLIST buildLayer
command CDATA #REQUIRED
targetList IDREFS #IMPLIED
unitParallel (Y | N | y | n) #REQUIRED
targetParallel (Y | N | y | n) #IMPLIED>
<!ELEMENT specialInstructions EMPTY>
<!ATTLIST specialInstructions
name CDATA #REQUIRED
cwd CDATA #REQUIRED
command CDATA #REQUIRED>
]>
<SystemDefinition name="s60" schema="1.4.0">
<systemModel>
<layer name="s60_stubs_layer">
</layer>
<layer name="s60_complementary_layer">
</layer>
<layer name="s60_app_layer">
</layer>
<layer name="s60_mw_layer">
</layer>
<layer name="s60_osext_layer">
</layer>
<layer name="s60_bldmefirst_layer">
</layer>
<layer name="s60_bldmelast_layer">
</layer>
<!-- TPs that will be under addon directory -->
<layer name="addon_layer">
</layer>
<!-- TP: mecevo -->
<layer name="mecevo_layer">
</layer>
</systemModel>
<build>
<option name="KEEPGOING" abldOption="-keepgoing" description="Causes make to keepgoing on errors" enable="Y"/>
<!-- <option name="SAVESPACE" abldOption="-savespace" description="Causes the removal of intermediate files" enable="Y"/> -->
<target name="WINS" abldTarget="wins" description="MSVC Compiler"/>
<target name="WINS_REL" abldTarget="wins urel" description="MSVC Compiler"/>
<target name="WINS_DEB" abldTarget="wins udeb" description="MSVC Compiler"/>
<target name="WINSCW" abldTarget="winscw" description="CodeWarrior Compiler"/>
<target name="WINSCW_REL" abldTarget="winscw urel" description="CodeWarrior Compiler"/>
<target name="WINSCW_DEB" abldTarget="winscw udeb" description="CodeWarrior Compiler"/>
<target name="TOOLS" abldTarget="tools" description="MSVC Compiler for Tools"/>
<target name="TOOLS_REL" abldTarget="tools rel" description="MSVC Compiler for Tools Release mode only"/>
<target name="ARMV5" abldTarget="armv5" description="RVCT Compiler"/>
<target name="ARMV5_REL" abldTarget="armv5 urel" description="RVCT Compiler"/>
<target name="ARMV5_DEB" abldTarget="armv5 udeb" description="RVCT Compiler"/>
<!-- Aditional Targets -->
<target name="CWTOOLS" abldTarget="cwtools" description="CodeWarrior Compiler for Tools"/> <!-- Not supported -->
<target name="CWTOOLS_REL" abldTarget="cwtools rel" description="CodeWarrior Compiler for Tools Release mode only"/> <!-- Not supported -->
<targetList name="default" description="Main Targets" target="WINSCW ARMV5"/>
<targetList name="default_winscw" description="Main Targets" target="WINSCW"></targetList>
<targetList name="default_armv5" description="Main Targets" target="ARMV5"/>
<targetList name="default_ctc" description="Main Targets" target="ARMV5_REL ARMV5_DEB"/>
<targetList name="default_rel" description="Main Targets for rel" target="WINSCW_REL ARMV5_REL"/>
<targetList name="default_deb" description="Main Targets for deb" target="WINSCW_DEB ARMV5_DEB"/>
<targetList name="default_tools" description="tools Targets" target="TOOLS"/>
<targetList name="tools_rel" description="tools Release Targets" target="TOOLS_REL"/>
<targetList name="cwtools" description="cwtools Targets" target="CWTOOLS"/>
<targetList name="cwtools_rel" description="cwtools Release Targets" target="CWTOOLS_REL"/>
<!--Main Build-->
<configuration name="s60_build" description="S60 build" filter ="raptor_s60_build,no_stubs,${ido.s60_build.filter}">
<layerRef layerName="s60_osext_layer"/>
<layerRef layerName="s60_mw_layer"/>
<layerRef layerName="s60_complementary_layer"/>
<layerRef layerName="s60_app_layer"/>
<layerRef layerName="s60_stubs_layer"/>
<layerRef layerName="s60_tools_layer"/>
<layerRef layerName="addon_layer"/>
<layerRef layerName="mecevo_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_tools" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld final" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_winscw" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld makefile" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_armv5" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld final" targetList="default" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld -what build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
</configuration>
<configuration name="s60_build_ctc" description="S60 build" filter ="raptor_s60_build_ctc,no_stubs,${ido.s60_build.filter}">
<layerRef layerName="s60_osext_layer"/>
<layerRef layerName="s60_mw_layer"/>
<layerRef layerName="s60_complementary_layer"/>
<layerRef layerName="s60_app_layer"/>
<layerRef layerName="s60_stubs_layer"/>
<layerRef layerName="s60_tools_layer"/>
<layerRef layerName="addon_layer"/>
<layerRef layerName="mecevo_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_tools" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld final" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_winscw" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld makefile" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_armv5" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="ctcwrap -i m abld target" targetList="default_ctc" unitParallel="Y" targetParallel="N"/></task>
<task><buildLayer command="abld final" targetList="default" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld -what build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
</configuration>
<configuration name="s60_osext" description="S60 osext build" filter="raptor_s60_osext">
<layerRef layerName="s60_osext_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_tools" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld final" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_winscw" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld makefile" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_armv5" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld final" targetList="default" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld -what build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
</configuration>
<configuration name="s60_test" description="S60 test build" filter="raptor_s60_test,${ido.s60_build.filter}">
<layerRef layerName="s60_api_test_layer"/>
<layerRef layerName="s60_unit_test_layer"/>
<layerRef layerName="s60_perf_test_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld test export" unitParallel="Y"/></task>
<task><buildLayer command="abld test makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld test library" targetList="default_tools" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld test target" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld test final" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld test -what build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld test -check build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld test makefile" targetList="default_winscw" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld test resource" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld test library" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld test makefile" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld test resource" targetList="default_armv5" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld test library" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld test target" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld test final" targetList="default" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld test -what build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld test -check build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
</configuration>
<configuration name="s60_bldmefirst" description="S60 bldmefirst part" filter="">
<layerRef layerName="s60_bldmefirst_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
</configuration>
<configuration name="s60_bldmelast" description="S60 bldmelast part" filter="">
<layerRef layerName="s60_bldmelast_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
</configuration>
<configuration name="s60_complementary" description="S60 complementary build" filter ="">
<layerRef layerName="s60_complementary_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_tools" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld final" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_winscw" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld makefile" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_armv5" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld final" targetList="default" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld -what build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
</configuration>
<configuration name="s60_build_clean" description="S60 clean" filter="no_stubs,${ido.s60_build.filter}">
<layerRef layerName="s60_osext_layer"/>
<layerRef layerName="s60_mw_layer"/>
<layerRef layerName="s60_complementary_layer"/>
<layerRef layerName="s60_app_layer"/>
<layerRef layerName="s60_stubs_layer"/>
<layerRef layerName="s60_tools_layer"/>
<layerRef layerName="s60_clean_only_layer"/>
<layerRef layerName="addon_layer"/>
<layerRef layerName="mecevo_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="bldmake clean" unitParallel="Y"/></task>
</configuration>
<configuration name="s60_build_ctc_clean" description="S60 clean" filter="no_stubs,${ido.s60_build.filter}">
<layerRef layerName="s60_osext_layer"/>
<layerRef layerName="s60_mw_layer"/>
<layerRef layerName="s60_complementary_layer"/>
<layerRef layerName="s60_app_layer"/>
<layerRef layerName="s60_stubs_layer"/>
<layerRef layerName="s60_tools_layer"/>
<layerRef layerName="s60_clean_only_layer"/>
<layerRef layerName="addon_layer"/>
<layerRef layerName="mecevo_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="bldmake clean" unitParallel="Y"/></task>
</configuration>
<configuration name="s60_osext_clean" description="S60 osext clean" filter="">
<layerRef layerName="s60_osext_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="bldmake clean" unitParallel="Y"/></task>
</configuration>
<configuration name="s60_bldmefirst_clean" description="S60 bldmefirst clean" filter="">
<layerRef layerName="s60_bldmefirst_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="bldmake clean" unitParallel="Y"/></task>
</configuration>
<configuration name="s60_bldmelast_clean" description="S60 bldmelast clean" filter="">
<layerRef layerName="s60_bldmelast_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="bldmake clean" unitParallel="Y"/></task>
</configuration>
<configuration name="s60_complementary_clean" description="S60 complementary build clean" filter ="">
<layerRef layerName="s60_complementary_layer"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld reallyclean" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="bldmake clean" unitParallel="Y"/></task>
</configuration>
</build>
</SystemDefinition>