build.xml revision f9fd2b96d1c5ea62664f74da0e34a04b6511a8ff
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoCDDL HEADER START
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoThe contents of this file are subject to the terms of the
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoCommon Development and Distribution License (the "License").
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoYou may not use this file except in compliance with the License.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoSee LICENSE.txt included in this distribution for the specific
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscolanguage governing permissions and limitations under the License.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoWhen distributing Covered Code, include this CDDL HEADER in each
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscofile and include the License file at LICENSE.txt.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoIf applicable, add the following below this CDDL HEADER, with the
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscofields enclosed by brackets "[]" replaced with your own identifying
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscoinformation: Portions Copyright [yyyy] [name of copyright owner]
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoCDDL HEADER END
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoCopyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco<project name="OpenGrok" default="jar" basedir=".">
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <description>Builds, tests, and runs the project opengrok.</description>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="build.sysclasspath" value="ignore"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property file="${user.home}/config/ant/${ant.project.name}.properties" />
2c4c92120a67e74bb5edb14da7110f03a38be574Lubos Kosco <property file="${user.home}/config/ant/global.properties" />
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco <import file="nbproject/profiler-build-impl.xml"/> <!--
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco There exist several targets which are by default empty and which can be
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco used for execution of your tasks. These targets are usually executed
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco before and after some main targets. They are:
2b809fbe98d3081cb2b097042e8d983c05d7ac19ralphmayr -pre-init: called before initialization of project properties
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -post-init: called after initialization of project properties
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -pre-compile: called before javac compilation
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -post-compile: called after javac compilation
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -pre-compile-single: called before javac compilation of single file
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -post-compile-single: called after javac compilation of single file
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -pre-compile-test: called before javac compilation of JUnit tests
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -post-compile-test: called after javac compilation of JUnit tests
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -pre-compile-test-single: called before javac compilation of single JUnit test
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -post-compile-test-single: called after javac compilation of single JUunit test
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -pre-jar: called before JAR building
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -post-jar: called after JAR building
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -post-clean: called after cleaning build products
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco (Targets beginning with '-' are not intended to be called on their own.)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco Example of inserting an obfuscator after compilation could look like this:
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <target name="-post-compile">
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <fileset dir="${build.classes.dir}"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco </obfuscate>
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco For list of available properties check the imported
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco Another way to customize the build is by overriding existing main targets.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco The targets of interest are:
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -init-macrodef-javac: defines macro for javac compilation
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -init-macrodef-junit: defines macro for junit execution
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -init-macrodef-debug: defines macro for class debugging
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -init-macrodef-java: defines macro for class execution
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -do-jar-with-manifest: JAR building (if you are using a manifest)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -do-jar-without-manifest: JAR building (if you are not using a manifest)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco run: execution of project
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -javadoc-build: Javadoc generation
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco test-report: JUnit report generation
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco An example of overriding the target for project execution could look like this:
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <target name="run" depends="opengrok-impl.jar">
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <exec dir="bin" executable="launcher.exe">
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <arg file="${dist.jar}"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco Notice that the overridden target depends on the jar target and not only on
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco the compile target as the regular run target does. Again, for a list of available
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco properties which you can use, check the target you are overriding in the
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="src.generatedsrc.dir" location="generatedsrc"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="findbugs.home" value="${user.home}/.ant/lib/findbugs"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="checkstyle.home" value="${user.home}/.ant/lib/checkstyle"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="pmd.home" value="${user.home}/.ant/lib/pmd"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="test.repositories" value="testdata/repositories"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="test.sources" value="testdata/sources"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="test.cvs" value="${test.repositories}/cvs"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="test.cvs.repo" value="${test.cvs}/cvsrepo"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="test.cvs.root" value="${test.cvs}/cvsroot"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="test.hg" value="${test.repositories}/mercurial"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="test.svn" value="${test.repositories}/svn"/>
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco <property name="test.razor" value="${test.repositories}/razor"/>
<fail unless="JFlex.present" message="Please download JFlex (http://jflex.de/) and put JFlex.jar it into /lib directory (or in ant classpath)."/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/plain/PlainXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/c/CSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/c/CXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/c/CxxSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/c/CxxXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/fortran/FortranSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/fortran/FortranXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/java/JavaSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/java/JavaXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/javascript/JavaScriptSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/javascript/JavaScriptXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/python/PythonSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/python/PythonXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/perl/PerlSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/perl/PerlXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/php/PhpSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/php/PhpXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/lisp/LispSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/lisp/LispXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/tcl/TclSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/tcl/TclXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/plain/PlainFullTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/plain/PlainSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/plain/PlainXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/plain/XMLXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/sql/SQLXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/sql/PLSQLXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/document/TroffXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/document/TroffFullTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/sh/ShSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/sh/ShXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/vb/VBSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/vb/VBXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/csharp/CSharpSymbolTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/analysis/csharp/CSharpXref.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/search/context/HistoryLineTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
<jflex file="${src.dir}/org/opensolaris/opengrok/search/context/PlainLineTokenizer.lex" destdir="${src.generatedsrc.dir}"/>
.hg_archival.txt file created by hg archive. This will only
file="${build.classes.dir}/org/opensolaris/opengrok/info.properties">
Create an empty manifest file so that nbproject/build-impl.xml
opengrok.jar depends
value="${opengrok.lib.files} lib/derbyclient.jar lib/derby.jar"/>
unless="manifest.available+main.class+mkdist.available">
<available file="${lucene-analyzers-common.jar}" type="file" property="lucene-analyzers-common.jar.present">
<get src="http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/${lucene.version}/${lucene-core.jar}"
<get src="http://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common/${lucene.version}/${lucene-analyzers-common.jar}"
<get src="http://repo1.maven.org/maven2/org/apache/lucene/lucene-queryparser/${lucene.version}/${lucene-queryparser.jar}"
<get src="http://repo1.maven.org/maven2/org/apache/lucene/lucene-suggest/${lucene.version}/${lucene-suggest.jar}"
<fail unless="findbugs.jar.present" message="Please install Findbugs findbugs.jar in ~/.ant/lib-directory (or in ant classpath) to run Findbugs, see README"/>
<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"/>
<target name="findbugs" depends="jar, -check_findbugs" description="Runs Findbugs on the OpenGrok source code and generate HTML output">
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs.lib"/>
<findbugs projectname="OpenGrok" home="${findbugs.home}" output="html" excludeFilter="tools/findbugs_filter.xml" outputFile="findbugs/findbugs.html" jvmargs="-Xmx512m">
<target name="findbugs-xml" depends="jar, -check_findbugs" description="Runs Findbugs on the OpenGrok source code and generate XML output">
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs.lib"/>
<findbugs projectname="OpenGrok" home="${findbugs.home}" output="xml" excludeFilter="tools/findbugs_filter.xml" outputFile="findbugs/findbugs.xml" jvmargs="-Xmx512m">
<fail unless="checkstyle.jar.present" message="Please install checkstyle-all.jar in lib-directory (or in ant classpath) to run Checkstyle, see README."/>
<target name="checkstyle" depends="compile, -check_checkstyle" description="Run checkstyle on OpenGrok source code">
<fail unless="pmd.jar.present" message="Please install pmd.jar in lib-directory (or in ant classpath) to run PMD, see README."/>
<target name="cpd-xml" depends="compile, -check_pmd" description="Run CPD on OpenGrok source code, print output in xml">
<fail unless="emma.jar.present" message="Please install emma.jar in lib-directory (or in ant classpath) to run Emma, see README."/>
<fail unless="emma_ant.jar.present" message="Please install emma_ant.jar in lib-directory (or in ant classpath) to run Emma, see README."/>
<target name="emma-instrument" depends="compile, -check_emma" description="Instruments the source code for Emma code coverage analysis">
metadatafile="${coverage.dir}/coverage.em"
filter="+org.opensolaris.*,-org.opensolaris.opengrok.management.client.*"/>
<concat destfile="${test.cvs.repo}/CVS/Root" append="no" force="yes" eol="unix">${basedir}/${test.cvs.root}/
basedir="${test.sources}"
basedir="${test.repositories}"
<fileset dir="ext/SampleRazorRepository/Repository/OpenGrokSample/RAZOR_UNIVERSE/DOMAIN_01/Simple"/>
<!--copy todir="${test.razor}/Razor-Simple/SimpleCProgram-BinaryRelease/.razor">
<fileset dir="ext/SampleRazorRepository/Repository/OpenGrokSample/RAZOR_UNIVERSE/DOMAIN_01/Simple"/>
<target name="code-coverage" depends="clean, emma-instrument, test, emma-report" description="Make test code coverage reports based on the OpenGrok unit tests"/>
classpathref="classpath.jsp" />
package="${codebase.dot}.jsp"
webxmlfragment="${build.dir}/src/servlets_web.xml"