build.xml revision 230
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncCDDL HEADER START
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncThe contents of this file are subject to the terms of the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncCommon Development and Distribution License (the "License").
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncYou may not use this file except in compliance with the License.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncSee LICENSE.txt included in this distribution for the specific
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynclanguage governing permissions and limitations under the License.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncWhen distributing Covered Code, include this CDDL HEADER in each
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncfile and include the License file at LICENSE.txt.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncIf applicable, add the following below this CDDL HEADER, with the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncfields enclosed by brackets "[]" replaced with your own identifying
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncinformation: Portions Copyright [yyyy] [name of copyright owner]
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncCDDL HEADER END
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncCopyright 2007 Sun Microsystems, Inc. All rights reserved.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncUse is subject to license terms.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync <description>Builds, tests, and runs the project opengrok.</description>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync <import file="nbproject/profiler-build-impl.xml"/> <!--
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync There exist several targets which are by default empty and which can be
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync used for execution of your tasks. These targets are usually executed
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync before and after some main targets. They are:
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -pre-init: called before initialization of project properties
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -post-init: called after initialization of project properties
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -pre-compile: called before javac compilation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -post-compile: called after javac compilation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -pre-compile-single: called before javac compilation of single file
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -post-compile-single: called after javac compilation of single file
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -pre-compile-test: called before javac compilation of JUnit tests
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -post-compile-test: called after javac compilation of JUnit tests
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -pre-compile-test-single: called before javac compilation of single JUnit test
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -post-compile-test-single: called after javac compilation of single JUunit test
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -pre-jar: called before JAR building
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -post-jar: called after JAR building
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -post-clean: called after cleaning build products
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync (Targets beginning with '-' are not intended to be called on their own.)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync Example of inserting an obfuscator after compilation could look like this:
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync <target name="-post-compile">
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync <obfuscate>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync <fileset dir="${build.classes.dir}"/>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync </obfuscate>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync For list of available properties check the imported
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync Another way to customize the build is by overriding existing main targets.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync The targets of interest are:
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -init-macrodef-javac: defines macro for javac compilation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -init-macrodef-junit: defines macro for junit execution
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -init-macrodef-debug: defines macro for class debugging
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -init-macrodef-java: defines macro for class execution
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -do-jar-with-manifest: JAR building (if you are using a manifest)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -do-jar-without-manifest: JAR building (if you are not using a manifest)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync run: execution of project
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync -javadoc-build: Javadoc generation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync test-report: JUnit report generation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync An example of overriding the target for project execution could look like this:
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync <target name="run" depends="opengrok-impl.jar">
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync <exec dir="bin" executable="launcher.exe">
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync <arg file="${dist.jar}"/>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync Notice that the overridden target depends on the jar target and not only on
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync the compile target as the regular run target does. Again, for a list of available
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync properties which you can use, check the target you are overriding in the
<jflex file="src/org/opensolaris/opengrok/analysis/java/JavaSymbolTokenizer.lex" destdir="${gensrcdir}"/>
<jflex file="src/org/opensolaris/opengrok/analysis/lisp/LispSymbolTokenizer.lex" destdir="${gensrcdir}"/>
<jflex file="src/org/opensolaris/opengrok/analysis/plain/PlainFullTokenizer.lex" destdir="${gensrcdir}"/>
<jflex file="src/org/opensolaris/opengrok/analysis/plain/PlainSymbolTokenizer.lex" destdir="${gensrcdir}"/>
<jflex file="src/org/opensolaris/opengrok/analysis/document/TroffFullTokenizer.lex" destdir="${gensrcdir}"/>
<jflex file="src/org/opensolaris/opengrok/analysis/sh/ShSymbolTokenizer.lex" destdir="${gensrcdir}"/>
<jflex file="src/org/opensolaris/opengrok/search/context/HistoryLineTokenizer.lex" destdir="${gensrcdir}"/>
<jflex file="src/org/opensolaris/opengrok/search/context/PlainLineTokenizer.lex" destdir="${gensrcdir}"/>
file="${build.classes.dir}/org/opensolaris/opengrok/info.properties">
Create an empty manifest file so that nbproject/build-impl.xml
opengrok.jar depends
unless="manifest.available+main.class+mkdist.available">