Created a dedicated sf-log-to-brag target so it can take care of the commonality of the task, including the creation of the directory for XML output.
<?xml version="1.0" encoding="UTF-8"?>
<project name="SF-PACKAGE-CONFIG" xmlns:hlm="http://www.nokia.com/helium">
<!-- location of this config -->
<dirname property="sf.package.config.dir" file="${ant.file.SF-PACKAGE-CONFIG}"/>
<!-- import codeline-specific properties -->
<import file="${sf.package.config.dir}/${sf.spec.job.codeline}_props.ant.xml" optional="yes"/>
<!-- import package properties -->
<import file="${sf.package.config.dir}/package_props.ant.xml" />
<!-- import common properties/targets/references -->
<import file="../common/build.xml" />
<!-- import package references -->
<import file="${sf.package.config.dir}/package_refs.ant.xml" />
<target name="sf-compile">
<!-- Check that package_definition is not in v 3.0.0 otherwise transforms it to 2.0.1 -->
<echo message="Check that model file is in a version usable by Raptor"/>
<exec executable="perl" dir="${sf.common.config.dir}/sysdefdowngrade" failonerror="false" output="${build.log.dir}/sysdefdowngrade.log">
<arg value="sysdefdowngrade.pl"/>
<arg value="--model=${build.drive}/${sf.spec.systemdefinition.location}"/>
<arg value="--sources=${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
</exec>
<runtarget target="sf-package-compile"/>
</target>
<target name="sf-package-compile" depends="sf-compile-options">
<!-- BUILD tools2_rel CLEAN -->
<!--
<hlm:argSet id="sbs.tools2_rel.clean.var">
<hlm:arg name="config" value="tools2_rel" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}"/>
<hlm:arg name="command" value="CLEAN"/>
</hlm:argSet>
<antcall target="compile-main" inheritAll="false" inheritRefs="true">
<param name="build.system" value="${sf.spec.build.system}" />
<param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
<reference refid="sbs.tools2_rel.clean.var" torefid="sbs.var" />
<reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
<reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
</antcall>
-->
<!-- BUILD tools2_rel -->
<hlm:argSet id="sbs.tools2_rel.var">
<hlm:arg name="config" value="tools2_rel.whatlog" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
</hlm:argSet>
<antcall target="compile-main" inheritAll="false" inheritRefs="true">
<param name="build.system" value="${sf.spec.build.system}" />
<param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
<reference refid="sbs.tools2_rel.var" torefid="sbs.var" />
<reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
<reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
</antcall>
<!-- BUILD tools CLEAN -->
<!--
<hlm:argSet id="sbs.tools.clean.var">
<hlm:arg name="config" value="tools"/>
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
<hlm:arg name="command" value="CLEAN"/>
</hlm:argSet>
<antcall target="compile-main" inheritAll="false" inheritRefs="true">
<param name="build.system" value="${sf.spec.build.system}" />
<param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
<reference refid="sbs.tools.clean.var" torefid="sbs.var" />
<reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
<reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
</antcall>
-->
<!-- BUILD tools -->
<!--
<hlm:argSet id="sbs.tools.var">
<hlm:arg name="config" value="tools.whatlog"/>
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
</hlm:argSet>
<antcall target="compile-main" inheritAll="false" inheritRefs="true">
<param name="build.system" value="${sf.spec.build.system}" />
<param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
<reference refid="sbs.tools.var" torefid="sbs.var" />
<reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
<reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
</antcall>
-->
<!-- BUILD winscw CLEAN -->
<!--
<hlm:argSet id="sbs.winscw.clean.var">
<hlm:arg name="config" value="winscw" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
<hlm:arg name="command" value="CLEAN"/>
</hlm:argSet>
<antcall target="compile-main" inheritAll="false" inheritRefs="true">
<param name="build.system" value="${sf.spec.build.system}" />
<param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
<reference refid="sbs.winscw.clean.var" torefid="sbs.var" />
<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
<reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
</antcall>
-->
<!-- BUILD winscw -->
<hlm:argSet id="sbs.winscw.var">
<hlm:arg name="config" value="winscw.whatlog" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
</hlm:argSet>
<antcall target="compile-main" inheritAll="false" inheritRefs="true">
<param name="build.system" value="${sf.spec.build.system}" />
<param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
<reference refid="sbs.winscw.var" torefid="sbs.var" />
<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
<reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
</antcall>
<!-- BUILD armv5 CLEAN -->
<!--
<hlm:argSet id="sbs.armv5.clean.var">
<hlm:arg name="config" value="armv5" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
<hlm:arg name="command" value="CLEAN"/>
</hlm:argSet>
<antcall target="compile-main" inheritAll="false" inheritRefs="true">
<param name="build.system" value="${sf.spec.build.system}" />
<param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
<reference refid="sbs.armv5.clean.var" torefid="sbs.var" />
<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
<reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
</antcall>
-->
<!-- BUILD armv5 -->
<hlm:argSet id="sbs.armv5.var">
<hlm:arg name="config" value="armv5.whatlog" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
</hlm:argSet>
<antcall target="compile-main" inheritAll="false" inheritRefs="true">
<param name="build.system" value="${sf.spec.build.system}" />
<param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
<reference refid="sbs.armv5.var" torefid="sbs.var" />
<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
<reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
</antcall>
<!-- CHECK -->
<exec executable="cmd" dir="${build.drive}/" output="${build.drive}/output\logs\build_check_compile.log">
<arg value="/c sbs.bat -s ${build.drive}/output\build\canonical_system_definition_SF.xml -k -c tools2_rel -c winscw -c armv5 -j 32 --check -m ${build.drive}/output\logs\build_check_Makefile"/>
<!-- argument of -j option can be parameterized with: ${number.of.threads} -->
</exec>
</target>
</project>