build.xml revision 448
970N/A<?xml version="1.0" encoding="UTF-8"?>
970N/A<!--
970N/A
970N/ACDDL HEADER START
1500N/A
970N/AThe contents of this file are subject to the terms of the
970N/ACommon Development and Distribution License (the "License").
970N/AYou may not use this file except in compliance with the License.
970N/A
970N/ASee LICENSE.txt included in this distribution for the specific
970N/Alanguage governing permissions and limitations under the License.
970N/A
970N/AWhen distributing Covered Code, include this CDDL HEADER in each
970N/Afile and include the License file at LICENSE.txt.
970N/AIf applicable, add the following below this CDDL HEADER, with the
970N/Afields enclosed by brackets "[]" replaced with your own identifying
970N/Ainformation: Portions Copyright [yyyy] [name of copyright owner]
970N/A
970N/ACDDL HEADER END
970N/A
970N/ACopyright 2007 Sun Microsystems, Inc. All rights reserved.
970N/AUse is subject to license terms.
970N/A
970N/A-->
970N/A<project name="OpenGrok" default="jar" basedir=".">
970N/A <description>Builds, tests, and runs the project opengrok.</description>
970N/A <import file="nbproject/build-impl.xml"/>
970N/A
970N/A <import file="nbproject/profiler-build-impl.xml"/> <!--
970N/A
970N/A There exist several targets which are by default empty and which can be
970N/A used for execution of your tasks. These targets are usually executed
970N/A before and after some main targets. They are:
970N/A
970N/A -pre-init: called before initialization of project properties
970N/A -post-init: called after initialization of project properties
970N/A -pre-compile: called before javac compilation
970N/A -post-compile: called after javac compilation
970N/A -pre-compile-single: called before javac compilation of single file
970N/A -post-compile-single: called after javac compilation of single file
970N/A -pre-compile-test: called before javac compilation of JUnit tests
970N/A -post-compile-test: called after javac compilation of JUnit tests
970N/A -pre-compile-test-single: called before javac compilation of single JUnit test
1105N/A -post-compile-test-single: called after javac compilation of single JUunit test
970N/A -pre-jar: called before JAR building
970N/A -post-jar: called after JAR building
970N/A -post-clean: called after cleaning build products
970N/A
970N/A (Targets beginning with '-' are not intended to be called on their own.)
970N/A
970N/A Example of inserting an obfuscator after compilation could look like this:
970N/A
970N/A <target name="-post-compile">
970N/A <obfuscate>
970N/A <fileset dir="${build.classes.dir}"/>
970N/A </obfuscate>
970N/A </target>
970N/A
970N/A For list of available properties check the imported
970N/A nbproject/build-impl.xml file.
970N/A
970N/A
970N/A Another way to customize the build is by overriding existing main targets.
970N/A The targets of interest are:
970N/A
970N/A -init-macrodef-javac: defines macro for javac compilation
970N/A -init-macrodef-junit: defines macro for junit execution
970N/A -init-macrodef-debug: defines macro for class debugging
970N/A -init-macrodef-java: defines macro for class execution
1130N/A -do-jar-with-manifest: JAR building (if you are using a manifest)
970N/A -do-jar-without-manifest: JAR building (if you are not using a manifest)
970N/A run: execution of project
970N/A -javadoc-build: Javadoc generation
970N/A test-report: JUnit report generation
970N/A
970N/A An example of overriding the target for project execution could look like this:
970N/A
970N/A <target name="run" depends="opengrok-impl.jar">
970N/A <exec dir="bin" executable="launcher.exe">
970N/A <arg file="${dist.jar}"/>
970N/A </exec>
970N/A </target>
970N/A
970N/A Notice that the overridden target depends on the jar target and not only on
970N/A the compile target as the regular run target does. Again, for a list of available
970N/A properties which you can use, check the target you are overriding in the
970N/A nbproject/build-impl.xml file.
970N/A
970N/A -->
970N/A
970N/A <property name="version" value="0.6.1"/>
970N/A <property name="distname" value="opengrok"/>
970N/A
970N/A <property name="findbugs.home" value="${user.home}/.ant/lib/findbugs"/>
970N/A <property name="checkstyle.home" value="${user.home}/.ant/lib/checkstyle"/>
970N/A <property name="pmd.home" value="${user.home}/.ant/lib/pmd"/>
970N/A
970N/A <path id="lib.search.path">
1105N/A <pathelement path="${user.home}/.ant/lib"/>
1105N/A <pathelement path="${java.class.path}"/>
970N/A <pathelement path="lib"/>
1105N/A </path>
970N/A
970N/A <path id="findbugs.lib.search.path">
970N/A <pathelement path="${findbugs.home}/lib/"/>
970N/A <pathelement path="${java.class.path}/findbugs/lib/"/>
970N/A <pathelement path="lib/findbugs/lib/"/>
970N/A </path>
1154N/A
1152N/A <path id="checkstyle.lib.search.path">
970N/A <pathelement path="${checkstyle.home}/"/>
1172N/A <pathelement path="${java.class.path}/checkstyle/"/>
1172N/A <pathelement path="lib/checkstyle/lib/"/>
1172N/A </path>
970N/A
1105N/A <path id="pmd.lib.search.path">
970N/A <pathelement path="${pmd.home}/lib/"/>
970N/A <pathelement path="${java.class.path}/pmd/lib/"/>
1105N/A <pathelement path="lib/pmd/lib/"/>
970N/A </path>
970N/A
1120N/A <available file="JFlex.jar" type="file" property="JFlex.present">
1120N/A <filepath refid="lib.search.path"/>
1120N/A </available>
1479N/A <fail unless="JFlex.present" message="Please download JFlex (http://jflex.de/) and put JFlex.jar it into /lib directory (or in ant classpath)."/>
1479N/A
1172N/A <taskdef classname="JFlex.anttask.JFlexTask" name="jflex" classpath="lib/JFlex.jar"/>
1172N/A <property name="gensrcdir" value="generatedsrc"/>
1153N/A <target name="jflex">
970N/A <mkdir dir="${gensrcdir}"/>
970N/A <jflex file="src/org/opensolaris/opengrok/analysis/plain/PlainXref.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/c/CSymbolTokenizer.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/c/CXref.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/java/JavaSymbolTokenizer.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/java/JavaXref.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/lisp/LispSymbolTokenizer.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/lisp/LispXref.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/tcl/TclSymbolTokenizer.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/tcl/TclXref.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/plain/PlainFullTokenizer.lex" destdir="${gensrcdir}"/>
1356N/A <jflex file="src/org/opensolaris/opengrok/analysis/plain/PlainSymbolTokenizer.lex" destdir="${gensrcdir}"/>
970N/A <jflex file="src/org/opensolaris/opengrok/analysis/plain/PlainXref.lex" destdir="${gensrcdir}"/>
970N/A <jflex file="src/org/opensolaris/opengrok/analysis/plain/XMLXref.lex" destdir="${gensrcdir}"/>
1105N/A <jflex file="src/org/opensolaris/opengrok/analysis/sql/SQLXref.lex" destdir="${gensrcdir}"/>
1105N/A <jflex file="src/org/opensolaris/opengrok/analysis/document/TroffXref.lex" destdir="${gensrcdir}"/>
1105N/A <jflex file="src/org/opensolaris/opengrok/analysis/document/TroffFullTokenizer.lex" destdir="${gensrcdir}"/>
970N/A <jflex file="src/org/opensolaris/opengrok/analysis/sh/ShSymbolTokenizer.lex" destdir="${gensrcdir}"/>
970N/A <jflex file="src/org/opensolaris/opengrok/analysis/sh/ShXref.lex" destdir="${gensrcdir}"/>
970N/A <jflex file="src/org/opensolaris/opengrok/search/context/HistoryLineTokenizer.lex" destdir="${gensrcdir}"/>
1479N/A <jflex file="src/org/opensolaris/opengrok/search/context/PlainLineTokenizer.lex" destdir="${gensrcdir}"/>
1479N/A </target>
1105N/A
970N/A <property name="hg" value="hg"/>
970N/A <target name="-hg-get-changeset">
1479N/A <exec executable="${hg}"
1479N/A failifexecutionfails="no"
970N/A outputproperty="changeset">
970N/A <arg value="log"/>
970N/A <arg value="-r"/>
970N/A <arg value="tip"/>
970N/A <redirector>
970N/A <outputfilterchain>
970N/A <filterreader classname="org.apache.tools.ant.filters.LineContainsRegExp">
1316N/A <param type="regexp" value="^changeset:"/>
1189N/A </filterreader>
1189N/A <tokenfilter>
1189N/A <replaceregex pattern="^changeset:[^:]*:" replace=""/>
1316N/A </tokenfilter>
1189N/A </outputfilterchain>
1316N/A </redirector>
1189N/A </exec>
1189N/A </target>
1189N/A
970N/A <target name="-update-build-info" depends="-hg-get-changeset">
970N/A <mkdir dir="${build.classes.dir}/org/opensolaris/opengrok"/>
970N/A <propertyfile
970N/A file="${build.classes.dir}/org/opensolaris/opengrok/info.properties">
970N/A <entry key="version" value="${version}"/>
1189N/A <entry key="changeset" value="${changeset}"/>
1189N/A </propertyfile>
970N/A </target>
970N/A
970N/A <property name="coverage.dir" value="${basedir}/coverage"/>
1132N/A <target name="-pre-compile" depends="jflex"/>
1132N/A <target name="-post-clean">
1132N/A <delete dir="${gensrcdir}"/>
970N/A <delete file="${manifest.file}"/>
970N/A <delete dir="${coverage.dir}"/>
970N/A </target>
970N/A
970N/A <!--
1276N/A Create an empty manifest file so that nbproject/build-impl.xml
1316N/A notices that a manifest should be added to the jar file
970N/A -->
970N/A <target name="-touch-manifest">
1132N/A <!-- no attributes, main-class and class-path will be added later -->
1132N/A <manifest file="manifest.mf" mode="replace"/>
1132N/A </target>
1132N/A
1132N/A <target name="-pre-init" depends="-touch-manifest"/>
970N/A
1132N/A <!--
1132N/A Initialize a property holding a list of jar files on which
1132N/A opengrok.jar depends
1132N/A -->
1132N/A <target name="-post-init">
1147N/A <pathconvert property="opengrok.lib.files" pathsep=" ">
1147N/A <path>
1147N/A <pathelement path="${javac.classpath}"/>
1147N/A </path>
1132N/A <flattenmapper/>
1132N/A <map from="" to="lib/"/>
1132N/A </pathconvert>
1132N/A </target>
1132N/A
1132N/A <!-- Update the manifest file with a classpath attribute -->
1298N/A <target name="-update-manifest-classpath">
1298N/A <manifest file="${manifest.file}" mode="update">
1298N/A <attribute name="Class-Path" value="${opengrok.lib.files}"/>
1298N/A </manifest>
1479N/A </target>
1479N/A
1479N/A <target name="-pre-jar" depends="-update-manifest-classpath,-update-build-info"/>
1298N/A
1153N/A <!--
1153N/A Copy the jars from lib to dist/lib manually if we don't have
1153N/A the copylibs task from NetBeans
1153N/A -->
1172N/A <target name="-copy-lib-without-netbeans"
970N/A unless="manifest.available+main.class+mkdist.available">
970N/A <copy todir="${dist.dir}/lib">
1003N/A <fileset file="${file.reference.ant.jar}"/>
1003N/A </copy>
1392N/A <copy todir="${dist.dir}">
970N/A <fileset dir="." includes="${opengrok.lib.files}"/>
970N/A </copy>
1153N/A </target>
1172N/A
1172N/A <target name="-post-jar" depends="-copy-lib-without-netbeans">
970N/A <war destfile="${dist.war}" webxml="conf/web.xml">
1172N/A <fileset dir="web"/>
1154N/A <fileset dir="conf" excludes="web.xml"/>
970N/A <lib dir="${dist.dir}" includes="opengrok.jar"/>
970N/A <lib dir="${dist.dir}/lib" includes="*.jar" excludes="servlet-api.jar,svn-javahl.jar"/>
970N/A </war>
970N/A <echo message="Generating man page.."/>
970N/A <java classname="org.opensolaris.opengrok.index.CommandLineOptions"
970N/A output="${dist.dir}/opengrok.1" failonerror="true" fork="true">
970N/A <classpath>
970N/A <pathelement location="dist/opengrok.jar"/>
1105N/A <pathelement path="${java.class.path}"/>
1105N/A </classpath>
970N/A </java>
1105N/A </target>
1105N/A
1153N/A <target name="package" depends="jar">
1153N/A <exec os="SunOS" executable="/usr/bin/pkgmk">
970N/A <arg line="-o -d build -r . -v ${version} -f pkgdef/prototype"/>
1153N/A </exec>
1153N/A <exec os="SunOS" executable="/usr/bin/pkgtrans">
1153N/A <arg line="-s build /dist/OSOLopengrok-${version}.pkg OSOLopengrok"/>
1153N/A </exec>
970N/A </target>
1479N/A
1479N/A <target name="dist" depends="jar">
1479N/A <tar destfile="${dist.dir}/${distname}-${version}.tar.gz"
1479N/A compression="gzip">
1479N/A <tarfileset dir="." prefix="${distname}-${version}">
1479N/A <include name="README.txt"/>
1479N/A <include name="CHANGES.txt"/>
1479N/A <include name="LICENSE.txt"/>
970N/A <include name="paths.tsv"/>
1261N/A </tarfileset>
1261N/A <tarfileset dir="." prefix="${distname}-${version}" mode="755">
1261N/A <include name="OpenGrok"/>
1261N/A <include name="run.sh"/>
1261N/A <include name="run-quiet.sh"/>
970N/A <include name="run.bat"/>
1261N/A </tarfileset>
1261N/A <tarfileset dir="doc" prefix="${distname}-${version}">
1152N/A <include name="EXAMPLE.txt"/>
1261N/A </tarfileset>
1152N/A <tarfileset dir="${dist.dir}" prefix="${distname}-${version}">
970N/A <include name="opengrok.jar"/>
970N/A <include name="source.war"/>
970N/A <include name="lib/*"/>
970N/A </tarfileset>
970N/A </tar>
970N/A </target>
970N/A
970N/A <target name="dist-src" depends="init">
970N/A <mkdir dir="${dist.dir}"/>
970N/A <exec executable="hg">
970N/A <arg value="archive"/>
970N/A <arg value="-t"/>
970N/A <arg value="tgz"/>
970N/A <arg value="${dist.dir}/${distname}-${version}-src.tar.gz"/>
970N/A </exec>
970N/A </target>
970N/A
1153N/A <target name="-check_findbugs" description="Check that findbugs jar files are present">
970N/A <available file="findbugs.jar" type="file" property="findbugs.jar.present">
970N/A <filepath refid="findbugs.lib.search.path"/>
970N/A </available>
970N/A <fail unless="findbugs.jar.present" message="Please install Findbugs findbugs.jar in ~/.ant/lib-directory (or in ant classpath) to run Findbugs, see README"/>
970N/A
970N/A <available file="findbugs-ant.jar" type="file" property="findbugs-ant.jar.present">
1152N/A <filepath refid="findbugs.lib.search.path"/>
970N/A </available>
970N/A <fail unless="findbugs-ant.jar.present" message="Please install Findbugs findbugs-ant.jar in ~/.ant/lib-directory (or in ant classpath) to run Findbugs, see README"/>
970N/A </target>
970N/A
970N/A <target name="findbugs" depends="dist, -check_findbugs" description="Runs Findbugs on the OpenGrok source code and generate HTML output">
1261N/A <path id="findbugs.lib" >
1261N/A <pathelement location="${findbugs.home}/lib/findbugs.jar"/>
1261N/A <pathelement location="${findbugs.home}/lib/findbugs-ant.jar"/>
1261N/A </path>
970N/A <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs.lib"/>
970N/A <mkdir dir="findbugs"/>
970N/A <findbugs projectname="OpenGrok" home="${findbugs.home}" output="html" excludeFilter="tools/findbugs_filter.xml" outputFile="findbugs/findbugs.html" jvmargs="-Xmx512m">
970N/A <auxClasspath>
970N/A <fileset dir="${dist.dir}/lib/">
1046N/A <include name="*.jar"/>
1046N/A </fileset>
1046N/A </auxClasspath>
1046N/A <sourcePath path="src" />
1261N/A <class location="${dist.dir}/opengrok.jar" />
1261N/A </findbugs>
1261N/A </target>
1261N/A
1261N/A <target name="findbugs-xml" depends="dist, -check_findbugs" description="Runs Findbugs on the OpenGrok source code and generate XML output">
1261N/A <path id="findbugs.lib" >
1261N/A <pathelement location="${findbugs.home}/lib/findbugs.jar"/>
1261N/A <pathelement location="${findbugs.home}/lib/findbugs-ant.jar"/>
1261N/A </path>
1261N/A <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs.lib"/>
1152N/A <mkdir dir="findbugs"/>
1152N/A <findbugs projectname="OpenGrok" home="${findbugs.home}" output="xml" excludeFilter="tools/findbugs_filter.xml" outputFile="findbugs/findbugs.xml" jvmargs="-Xmx512m">
1261N/A <auxClasspath>
1152N/A <fileset dir="${dist.dir}/lib/">
970N/A <include name="*.jar"/>
1152N/A </fileset>
1152N/A </auxClasspath>
970N/A <sourcePath path="src" />
970N/A <class location="${dist.dir}/opengrok.jar" />
970N/A </findbugs>
1261N/A </target>
1261N/A
1261N/A <target name="-check_checkstyle" description="Check that checkstyle jar files are present">
970N/A <available file="checkstyle-all.jar" type="file" property="checkstyle.jar.present">
970N/A <filepath refid="checkstyle.lib.search.path"/>
970N/A </available>
970N/A <fail unless="checkstyle.jar.present" message="Please install checkstyle-all.jar in lib-directory (or in ant classpath) to run Checkstyle, see README."/>
1152N/A </target>
1152N/A
1152N/A <target name="checkstyle" depends="compile, -check_checkstyle" description="Run checkstyle on OpenGrok source code">
1152N/A <taskdef resource="checkstyletask.properties" classpath="${checkstyle.home}/checkstyle-all.jar"/>
1152N/A <checkstyle config="checkstyle/style.xml" failOnViolation="false">
1152N/A <fileset dir="src" includes="**/*.java"/>
1152N/A <formatter type="plain"/>
1153N/A <formatter type="plain" toFile="checkstyle/checkstyle_errors.txt"/>
1153N/A <formatter type="xml" toFile="checkstyle/checkstyle_errors.xml"/>
1153N/A </checkstyle>
1153N/A </target>
1153N/A
1153N/A <target name="-check_pmd" description="Check that pmd jar files are present">
1152N/A <available file="pmd.jar" type="file" property="pmd.jar.present">
1153N/A <filepath refid="pmd.lib.search.path"/>
1152N/A </available>
1152N/A <fail unless="pmd.jar.present" message="Please install pmd.jar in lib-directory (or in ant classpath) to run PMD, see README."/>
1153N/A </target>
1152N/A
1152N/A <target name="pmd" depends="compile, -check_pmd" description="Run PMD on OpenGrok source code">
1152N/A <path id="pmd.lib" >
970N/A <pathelement location="${pmd.home}/lib/pmd.jar"/>
1153N/A <pathelement location="${pmd.home}/lib/jaxen.jar"/>
1153N/A </path>
1153N/A <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.lib"/>
1153N/A <mkdir dir="pmd"/>
1153N/A <pmd shortFilenames="true" targetjdk="1.6" failuresPropertyName="pmd.num.warnings">
1153N/A <ruleset>rulesets/basic.xml</ruleset>
1153N/A <ruleset>rulesets/braces.xml</ruleset>
1153N/A <ruleset>rulesets/clone.xml</ruleset>
1153N/A <ruleset>rulesets/design.xml</ruleset>
1130N/A <ruleset>rulesets/favorites.xml</ruleset>
1130N/A <ruleset>rulesets/finalizers.xml</ruleset>
1130N/A <ruleset>rulesets/imports.xml</ruleset>
1130N/A <ruleset>rulesets/junit.xml</ruleset>
1130N/A <ruleset>rulesets/logging-java.xml</ruleset>
1130N/A <ruleset>rulesets/migrating.xml</ruleset>
1130N/A <!-- Enable when we have fever reported warnings -->
1130N/A <!-- <ruleset>rulesets/optimizations.xml</ruleset> -->
1130N/A <ruleset>rulesets/strictexception.xml</ruleset>
1130N/A <ruleset>rulesets/strings.xml</ruleset>
1130N/A <ruleset>rulesets/sunsecure.xml</ruleset>
1130N/A <ruleset>rulesets/typeresolution.xml</ruleset>
1130N/A <ruleset>rulesets/unusedcode.xml</ruleset>
1130N/A <formatter type="html" toFile="pmd/pmd_report.html"/>
1130N/A <formatter type="xml" toFile="pmd/pmd_report.xml"/>
1161N/A <fileset dir="src" includes="**/*.java"/>
1130N/A </pmd>
1130N/A <echo message="PMD finished, found ${pmd.num.warnings} warnings, see pmd/pmd_report.html."/>
1130N/A </target>
1130N/A
1130N/A <target name="-check_emma" description="Check that emma jar files are present">
1130N/A <available file="emma.jar" type="file" property="emma.jar.present">
1130N/A <filepath refid="lib.search.path"/>
1172N/A </available>
1130N/A <fail unless="emma.jar.present" message="Please install emma.jar in lib-directory (or in ant classpath) to run Emma, see README."/>
1130N/A
1130N/A <available file="emma_ant.jar" type="file" property="emma_ant.jar.present">
1130N/A <filepath refid="lib.search.path"/>
1130N/A </available>
1161N/A <fail unless="emma_ant.jar.present" message="Please install emma_ant.jar in lib-directory (or in ant classpath) to run Emma, see README."/>
1130N/A </target>
970N/A
970N/A <target name="emma-instrument" depends="compile, -check_emma" description="Instruments the source code for Emma code coverage analysis">
970N/A <path id="emma.lib" >
1161N/A <pathelement location="lib/emma.jar"/>
970N/A <pathelement location="lib/emma_ant.jar"/>
970N/A </path>
970N/A <taskdef resource="emma_ant.properties" classpathref="emma.lib"/>
970N/A <mkdir dir="${coverage.dir}" />
970N/A <emma enabled="true">
1139N/A <instr instrpath="build/classes"
1139N/A metadatafile="${coverage.dir}/coverage.em"
970N/A mode="overwrite"
970N/A filter="+org.opensolaris.*"/>
970N/A </emma>
970N/A </target>
970N/A
1356N/A <target name="-pre-compile-test">
1356N/A <property name="test-sys-prop.emma.coverage.out.file" value="${coverage.dir}/coverage.ec"/>
1130N/A <property name="test-sys-prop.emma.coverage.out.merge" value="true"/>
970N/A </target>
1130N/A
970N/A <target name="-post-compile-test">
1356N/A <!-- Generate ZIP files used for unit testing -->
970N/A <zip destfile="${build.test.classes.dir}/org/opensolaris/opengrok/index/source.zip" basedir="testdata/sources" update="true"/>
970N/A <zip destfile="${build.test.classes.dir}/org/opensolaris/opengrok/history/repositories.zip" basedir="testdata/repositories" update="true"/>
1139N/A </target>
1356N/A
1132N/A <target name="emma-report" description="Analyze" depends="-check_emma">
970N/A <taskdef resource="emma_ant.properties" classpathref="emma.lib"/>
970N/A <emma enabled="true" >
970N/A <report sourcepath="src">
970N/A <!-- collect all EMMA data dumps (metadata and runtime): -->
1356N/A <infileset dir="${coverage.dir}" includes="*.em, *.ec"/>
1356N/A <txt outfile="${coverage.dir}/coverage.txt"/>
970N/A <xml outfile="${coverage.dir}/coverage.xml"/>
970N/A <html outfile="${coverage.dir}/index.html"/>
970N/A </report>
970N/A </emma>
970N/A </target>
970N/A
970N/A</project>
1139N/A