Automatic SBS_HOME detection for util making and installer.
It's a little more user-friendly for anyone who wants to build a linux install packager.
<?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="PPD_build" schema="1.4.0">
<systemModel>
<!-- Common file for prebuild layers-->
<layer name="layer1">
<module name="module1">
<component name="component1">
<unit unitID="unit1" name="unit1" bldFile="unit1\location" mrp="" filter=""/>
<unit unitID="unit2" name="unit2" bldFile="unit2\location" mrp="" filter="!skip"/>
<unit unitID="unit3" name="unit3" bldFile="unit3\location" mrp="" filter="skip"/>
</component>
</module>
</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="N"/>
<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 name="default_armv5" description="Main Targets" target="ARMV5"/>
<targetList name="default_rel" description="Main Targets for rel" target="ARMV5_REL"/>
<targetList name="default_deb" description="Main Targets for deb" target="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"/>
<configuration name="config1" description="config1" filter="">
<task><specialInstructions name="attrib" cwd="%EPOCROOT%" command="attrib -R \*.* /S /D"/></task>
<task><specialInstructions name="touch_s60" cwd="%EPOCROOT%" command="toucher.exe \s60"/></task>
<task><specialInstructions name="touch_ppd_sw" cwd="%EPOCROOT%" command="toucher.exe \ppd_sw"/></task>
<task><specialInstructions name="touch_ncp_sw" cwd="%EPOCROOT%" command="toucher.exe \ncp_sw"/></task>
<task><specialInstructions name="touch_tools_ncp_tools" cwd="%EPOCROOT%" command="toucher.exe \tools\ncp_tools"/></task>
<task><specialInstructions name="touch_config" cwd="%EPOCROOT%" command="toucher.exe \config"/></task>
<task><specialInstructions name="touch_psw" cwd="%EPOCROOT%" command="toucher.exe \psw"/></task>
<task><specialInstructions name="CopyCommonVariation" cwd="\psw\ncp_psw\psw" command="xcopy *.* \ /F /R /Y /S"/></task>
<task><specialInstructions name="CopySPP_ABLD" cwd="\tools\ncp_tools\toolsmod_93" command="xcopy *.* \ /F /R /Y /S"/></task>
<task><specialInstructions name="CopyNCP52Variation" cwd="\psw\ncp_psw\platform_psw\psw" command="xcopy *.* \ /F /R /Y /S"/></task>
<task><specialInstructions name="CopyS6050Variation" cwd="\psw\s60_50_psw\psw" command="xcopy *.* \ /F /R /Y /S"/></task>
<task><specialInstructions name="psw\s60_50_psw\52.50_psw" cwd="\psw\s60_50_psw\52.50_psw\psw" command="xcopy *.* \ /F /R /Y /S"/></task>
</configuration>
<configuration name="config2" description="config2" filter="">
<layerRef layerName="layer1" />
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
</configuration>
<configuration name="config3" description="config3" filter="skip">
<layerRef layerName="layer1" />
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
</configuration>
<unitList name="unitlist1">
<unitRef unit="unit1" />
<unitRef unit="unit2" />
<unitRef unit="unit3" />
</unitList>
<configuration name="config4" description="config4" filter="skip">
<unitListRef unitList="unitlist1" />
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
<task><buildLayer command="abld build" targetList="default" unitParallel="Y"/></task>
</configuration>
</build>
</SystemDefinition>