build.xml revision 7e33e87b7d6c9a61ff11d23e37c02274b1223ce1
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenCDDL HEADER START
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenThe contents of this file are subject to the terms of the
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenCommon Development and Distribution License (the "License").
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenYou may not use this file except in compliance with the License.
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenSee LICENSE.txt included in this distribution for the specific
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlenlanguage governing permissions and limitations under the License.
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenWhen distributing Covered Code, include this CDDL HEADER in each
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlenfile and include the License file at LICENSE.txt.
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenIf applicable, add the following below this CDDL HEADER, with the
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlenfields enclosed by brackets "[]" replaced with your own identifying
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatleninformation: Portions Copyright [yyyy] [name of copyright owner]
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenCDDL HEADER END
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders HatlenCopyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen<project name="OpenGrok" default="jar" basedir=".">
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <description>Builds, tests, and runs the project opengrok.</description>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="build.sysclasspath" value="ignore"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property file="${user.home}/config/ant/${ant.project.name}.properties" />
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property file="${user.home}/config/ant/global.properties" />
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property file="/local/share/javax/global.properties" />
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <import file="nbproject/build-impl.xml"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <import file="nbproject/profiler-build-impl.xml"/> <!--
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen There exist several targets which are by default empty and which can be
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen used for execution of your tasks. These targets are usually executed
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen before and after some main targets. They are:
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -pre-init: called before initialization of project properties
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -post-init: called after initialization of project properties
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -pre-compile: called before javac compilation
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -post-compile: called after javac compilation
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -pre-compile-single: called before javac compilation of single file
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -post-compile-single: called after javac compilation of single file
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -pre-compile-test: called before javac compilation of JUnit tests
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -post-compile-test: called after javac compilation of JUnit tests
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -pre-compile-test-single: called before javac compilation of single JUnit test
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -post-compile-test-single: called after javac compilation of single JUunit test
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -pre-jar: called before JAR building
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -post-jar: called after JAR building
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -post-clean: called after cleaning build products
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen (Targets beginning with '-' are not intended to be called on their own.)
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen Example of inserting an obfuscator after compilation could look like this:
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <target name="-post-compile">
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <fileset dir="${build.classes.dir}"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen For list of available properties check the imported
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen Another way to customize the build is by overriding existing main targets.
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen The targets of interest are:
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -init-macrodef-javac: defines macro for javac compilation
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -init-macrodef-junit: defines macro for junit execution
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -init-macrodef-debug: defines macro for class debugging
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -init-macrodef-java: defines macro for class execution
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -do-jar-with-manifest: JAR building (if you are using a manifest)
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -do-jar-without-manifest: JAR building (if you are not using a manifest)
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen run: execution of project
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen -javadoc-build: Javadoc generation
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen test-report: JUnit report generation
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen An example of overriding the target for project execution could look like this:
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <target name="run" depends="opengrok-impl.jar">
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <exec dir="bin" executable="launcher.exe">
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <arg file="${dist.jar}"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen Notice that the overridden target depends on the jar target and not only on
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen the compile target as the regular run target does. Again, for a list of available
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen properties which you can use, check the target you are overriding in the
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="version" value="0.11-dev"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="distname" value="opengrok"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="src.dir" location="src"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="src.generatedsrc.dir" location="generatedsrc"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="findbugs.home" value="${user.home}/.ant/lib/findbugs"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="checkstyle.home" value="${user.home}/.ant/lib/checkstyle"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="pmd.home" value="${user.home}/.ant/lib/pmd"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="test.repositories" value="testdata/repositories"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="test.sources" value="testdata/sources"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="test.cvs" value="${test.repositories}/cvs"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="test.cvs.repo" value="${test.cvs}/cvsrepo"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="test.cvs.root" value="${test.cvs}/cvsroot"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="test.hg" value="${test.repositories}/mercurial"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="test.svn" value="${test.repositories}/svn"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <property name="test.razor" value="${test.repositories}/razor"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <available property="compileSystrayClient" classname="java.awt.TrayIcon"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <target name="-exclude-client" unless="compileSystrayClient">
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <echo>JDK doesn't have java.awt.TrayIcon, excluding building of systray client ... </echo>
35e0fa4bfb195dedab509c7df1cb15b696cbda92Trond Norbye <property name="excludes" value="org/opensolaris/opengrok/management/client/**"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <pathelement path="${user.home}/.ant/lib"/>
2b05b66980319619ab632014c44321e0d4adc9d8Knut Anders Hatlen <pathelement path="${findbugs.home}/lib/"/>
<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/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/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/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">
<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"