<project name="gdb"
default="build-everything"
basedir=".">
<property name="gdb.build.dir" value="${basedir}/../build"/>
<property name="dwarf.gdb.build.dir" value="${basedir}/../build-dwarf"/>
<property name="suite.dir" value="${gdb.build.dir}/gdb/testsuite"/>
<property name="dwarf.suite.dir" value="${dwarf.gdb.build.dir}/gdb/testsuite"/>
<property name="output.root" value="${suite.dir}/logs"/>
<property name="dwarf.output.root" value="${dwarf.suite.dir}/logs"/>
<!-- configures and builds GDB -->
<target name="build-everything" depends="clean-gdb,configure,make-gdb">
</target>
<target name="build-everything-dwarf" depends="clean-gdb-dwarf,configure-dwarf,make-gdb-dwarf">
</target>
<target name="init-tests">
<mkdir dir="${output.root}"/>
<delete includeemptydirs="true">
<fileset dir="${output.root}" includes="**/*"/>
</delete>
<mkdir dir="${output.root}/gdb.apple"/>
<mkdir dir="${output.root}/gdb.arch"/>
<mkdir dir="${output.root}/gdb.asm"/>
<mkdir dir="${output.root}/gdb.base"/>
<mkdir dir="${output.root}/gdb.cp"/>
<mkdir dir="${output.root}/gdb.disasm"/>
<mkdir dir="${output.root}/gdb.dwarf2"/>
<mkdir dir="${output.root}/gdb.mi"/>
<mkdir dir="${output.root}/gdb.objc"/>
<mkdir dir="${output.root}/gdb.stabs"/>
<mkdir dir="${output.root}/gdb.threads"/>
</target>
<target name="init-tests-dwarf">
<mkdir dir="${dwarf.output.root}"/>
<delete includeemptydirs="true">
<fileset dir="${dwarf.output.root}" includes="**/*"/>
</delete>
<mkdir dir="${dwarf.output.root}/gdb.apple"/>
<mkdir dir="${dwarf.output.root}/gdb.arch"/>
<mkdir dir="${dwarf.output.root}/gdb.asm"/>
<mkdir dir="${dwarf.output.root}/gdb.base"/>
<mkdir dir="${dwarf.output.root}/gdb.cp"/>
<mkdir dir="${dwarf.output.root}/gdb.disasm"/>
<mkdir dir="${dwarf.output.root}/gdb.dwarf2"/>
<mkdir dir="${dwarf.output.root}/gdb.mi"/>
<mkdir dir="${dwarf.output.root}/gdb.objc"/>
<mkdir dir="${dwarf.output.root}/gdb.stabs"/>
<mkdir dir="${dwarf.output.root}/gdb.threads"/>
</target>
<target name="test-one" depends="init-tests">
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.stabs --output ${output.root}/gdb.stabs"/>
</exec>
</target>
<target name="test-one-dwarf" depends="init-tests-dwarf">
<parallel>
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.stabs --output ${dwarf.output.root}/gdb.stabs --target_boards=macosx/gdwarf"/>
</exec>
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.dwarf2 --output ${dwarf.output.root}/gdb.dwarf2 --target_boards=macosx/gdwarf"/>
</exec>
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.arch --output ${dwarf.output.root}/gdb.arch --target_boards=macosx/gdwarf"/>
</exec>
</parallel>
</target>
<!--
test-everything:
This target runs the DejaGnu test suite for GDB. Each test "package" is run seperately
-->
<target name="test-everything" depends="init-tests">
<parallel>
<!-- gdb.apple -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.apple --output ${output.root}/gdb.apple"/>
</exec>
<!-- gdb.arch -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.arch --output ${output.root}/gdb.arch"/>
</exec>
<!-- gdb.asm -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.asm --output ${output.root}/gdb.asm"/>
</exec>
<!-- gdb.base -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.base --output ${output.root}/gdb.base"/>
</exec>
<!-- gdb.cp -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.cp --output ${output.root}/gdb.cp"/>
</exec>
<!-- gdb.disasm -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.disasm --output ${output.root}/gdb.disasm"/>
</exec>
<!-- gdb.dwarf2 -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.dwarf2 --output ${output.root}/gdb.dwarf2"/>
</exec>
<!-- gdb.mi -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.mi --output ${output.root}/gdb.mi"/>
</exec>
<!-- gdb.objc -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.objc --output ${output.root}/gdb.objc"/>
</exec>
<!-- gdb.stabs -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.stabs --output ${output.root}/gdb.stabs"/>
</exec>
<!-- gdb.threads -->
<exec dir="${suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.threads --output ${output.root}/gdb.threads"/>
</exec>
</parallel>
</target>
<target name="test-everything-dwarf" depends="init-tests-dwarf">
<parallel>
<!-- gdb.apple -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.apple --output ${dwarf.output.root}/gdb.apple --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.arch -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.arch --output ${dwarf.output.root}/gdb.arch --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.asm -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.asm --output ${dwarf.output.root}/gdb.asm --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.base -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.base --output ${dwarf.output.root}/gdb.base --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.cp -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.cp --output ${dwarf.output.root}/gdb.cp --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.disasm -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.disasm --output ${dwarf.output.root}/gdb.disasm --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.dwarf2 -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.dwarf2 --output ${dwarf.output.root}/gdb.dwarf2"/>
</exec>
<!-- gdb.mi -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.mi --output ${dwarf.output.root}/gdb.mi --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.objc -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.objc --output ${dwarf.output.root}/gdb.objc --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.stabs -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.stabs --output ${dwarf.output.root}/gdb.stabs --target_boards=macosx/gdwarf"/>
</exec>
<!-- gdb.threads -->
<exec dir="${dwarf.suite.dir}"
executable="make">
<arg value="check"/>
<arg value="RUNTESTFLAGS=-x --di gdb.threads --output ${dwarf.output.root}/gdb.threads --target_boards=macosx/gdwarf"/>
</exec>
</parallel>
</target>
<!--
clean-gdb:
This target runs the 'configure' command for building gdb
-->
<target name="clean-gdb">
<exec dir="${gdb.build.dir}" executable="make"
resolveexecutable="true">
<arg value="clean"/>
</exec>
</target>
<target name="clean-gdb-dwarf">
<exec dir="${dwarf.gdb.build.dir}" executable="make"
resolveexecutable="true">
<arg value="clean"/>
</exec>
</target>
<!--
configure:
This target runs the 'configure' command for building gdb
-->
<target name="configure">
<exec dir="${gdb.build.dir}" executable="../gdb/src/configure"
resolveexecutable="true">
<arg value="--disable-shared"/>
<env key="CFLAGS" value=""/>
</exec>
</target>
<target name="configure-dwarf">
<exec dir="${dwarf.gdb.build.dir}" executable="../gdb/src/configure"
resolveexecutable="true">
<arg value="--disable-shared"/>
<env key="CFLAGS" value=""/>
</exec>
</target>
<!--
make-gdb:
This target runs the 'make' command for building gdb
-->
<target name="make-gdb">
<exec dir="${gdb.build.dir}" executable="make">
<env key="CFLAGS" value=""/>
</exec>
</target>
<target name="make-gdb-dwarf">
<exec dir="${dwarf.gdb.build.dir}" executable="make">
<env key="CFLAGS" value=""/>
</exec>
</target>
</project>