<?xml version="1.0"?>

<!--

   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.



 ===================================================================

   Master Build file for BSF

Notes:

   This is the build file for use with the Jakarta Ant build tool.

Optional additions:

    Rhino       -> http://www.mozilla.org/rhino/
    NetRexx     -> http://www2.hursley.ibm.com/netrexx/
    Jython      -> http://www.jython.org/
    Jacl        -> http://www.scriptics.com/java/
    Xalan       -> http://xml.apache.org/xalan/
    ASF (Win32) -> http://msdn.microsoft.com/scripting/ (currently unsupported)
    PerlScript  -> http://www.activestate.com/ (currently unsupported)
    BeanShell   -> http://www.beanshell.org/ (3rd party BSF engine)
    JRuby       -> http://www.jruby.org/ (3rd party BSF engine)
    JudoScript  -> http://www.judoscript.com/ (3rd party BSF engine)

Build Instructions:

   To build, run

     java org.apache.tools.ant.Main <target>

   on the directory where this file is located with the target you want.

Most useful targets:

 - compile    -> creates the "bsf.jar" package in "./build/lib" (default target)
 - samples    -> creates/compiles the samples into "./build/samples"
 - javadocs   -> creates the javadocs in "./build/javadocs"
 - build-site -> creates the website in "./docs"
 - bindist    -> creates the complete binary distribution in "./dist/"
 - srcdist    -> creates the complete src distribution in "./dist/"
 - dist       -> creates both the binary and the src distributions in "./dist/"
 - all        -> creates the binary and src distributions, and builds the site
 - clean      -> removes all the generated files and directories

Authors:
  Sam Ruby <rubys@us.ibm.com>
  Matthew J. Duftler <duftler@us.ibm.com>
  Victor J. Orlikowski <victor.j.orlikowski@alumni.duke.edu>
  Charles Murcko <cmurcko@us.ibm.com>
  Olivier Gruber <ogruber@us.ibm.com>

Copyright:
  Copyright (c) Apache Software Foundation 2004-2006. All Rights Reserved

==================================================================== -->

<project name="BSF Build" default="compile" basedir=".">

    <property name="build.properties.file" value="build-properties.xml"/>
	
	<import file="${build.properties.file}" />

	<!-- =================================================================== -->
	<!-- Source files to be compiled                                         -->
	<!-- =================================================================== -->
	<patternset id="java.source.files">
		<!-- Optionally includes engines based on dependencies being present -->
		<include name="**/bsf/*.java" />
		<include name="**/util/**/*.java" />
		<include name="**/jacl/**" if="jacl.present" />
		<include name="**/javascript/**" if="rhino.present" />
		<include name="**/jexl/**" if="jexl.present" />
		<include name="**/jython/**" if="jython.present" />
		<include name="**/netrexx/**" if="netrexx.present" />
		<include name="**/xslt/**" if="xalan.present" />
		<include name="**/test/**" if="junit.present" />
	</patternset>

	<path id="compile.classpath">
		<fileset dir="lib">
			<include name="*.jar" />
		</fileset>
		<pathelement location="${build.dest}" />
	</path>

	<path id="test.classpath">
		<path refid="compile.classpath"/>
		<pathelement location="${build.tests}"/>
	</path>

	<target name="init" depends="clean">
		<tstamp />


		<!-- ================================================================= -->
		<!-- Sets version and time/date specific values                        -->
		<!-- ================================================================= -->
		<filter token="RELEASE_DATE_TIME" value="${TODAY} / ${TSTAMP}" />
		<filter token="VERSION" value="${project.version}" />
	</target>

	<!-- =================================================================== -->
	<!-- Prepares the build directory                                        -->
	<!-- =================================================================== -->
	<target name="prepare" depends="init">
		<mkdir dir="${build.dir}" />

		<!-- ================================================================= -->
		<!-- Determines what optional components are available                 -->
		<!-- ================================================================= -->
		<available property="jacl.present" classpathref="compile.classpath" classname="tcl.lang.JACL" />

		<available property="jexl.present" classpathref="compile.classpath" classname="org.apache.commons.jexl.Script" />

		<available property="jython.present" classpathref="compile.classpath" classname="org.python.util.jython" />

		<available property="netrexx.present" classpathref="compile.classpath" classname="netrexx.lang.Rexx" />

		<available property="rhino.present" classpathref="compile.classpath" classname="org.mozilla.javascript.Scriptable" />

		<available property="xalan.present" classpathref="compile.classpath" classname="org.apache.xalan.xslt.EnvironmentCheck" />

		<available property="junit.present" classpathref="compile.classpath" classname="junit.framework.TestCase" />

		<uptodate property="javac.notRequired" targetfile="${build.lib}/${project.name}.jar">
			<srcfiles dir="${src.dir}">
				<patternset refid="javac.source.files" />
			</srcfiles>
		</uptodate>

		<uptodate property="javadoc.required" targetfile="${build.lib}/${project.name}.jar">
			<srcfiles dir="${build.dir}" includes="**/*.html" />
		</uptodate>

		<antcall target="checkDependencies" />
	</target>

	<!-- =================================================================== -->
	<!-- Prepares the site build process                                     -->
	<!-- =================================================================== -->
	<target name="prepare-site" depends="init">
		<path id="anakia.classpath">
			<fileset dir="${basedir}/lib">
				<include name="*.jar" />
			</fileset>
		</path>

		<available property="AnakiaTask.present" classname="org.apache.velocity.anakia.AnakiaTask">
			<classpath refid="anakia.classpath" />
		</available>

		<antcall target="checkAnakiaTask" />
	</target>

	<!-- =================================================================== -->
	<!-- Warn the user about items not present, for whatever purpose.        -->
	<!-- =================================================================== -->
	<target name="checkJacl" unless="jacl.present">
		<echo message="Warning: Jacl dependencies were not resolved." />
	</target>
	<target name="checkJexl" unless="jexl.present">
		<echo message="Warning: JEXL dependencies were not resolved." />
	</target>
	<target name="checkJython" unless="jython.present">
		<echo message="Warning: Jython dependencies were not resolved." />
	</target>
	<target name="checkNetRexx" unless="netrexx.present">
		<echo message="Warning: NetRexx dependencies were not resolved." />
	</target>
	<target name="checkRhino" unless="rhino.present">
		<echo message="Warning: Rhino dependencies were not resolved." />
	</target>
	<target name="checkXalan" unless="xalan.present">
		<echo message="Warning: Xalan dependencies were not resolved." />
	</target>
	<target name="checkAnakiaTask" unless="AnakiaTask.present">
		<echo>
          Warning: AnakiaTask not present!
          Please ensure that velocity.jar is in your classpath.

          Documentation will not be generated.
    </echo>
	</target>
	<target name="checkJUnit" unless="junit.present">
		<echo message="Warning: JUnit dependencies were not resolved." />
	</target>

	<target name="checkDependencies" unless="javac.notRequired">
		<antcall target="checkJacl" />
		<antcall target="checkJexl" />
		<antcall target="checkJython" />
		<antcall target="checkNetRexx" />
		<antcall target="checkRhino" />

		<antcall target="checkXalan" />
		<antcall target="checkJUnit" />
	</target>






	<!-- =================================================================== -->
	<!-- Compiles the source directory                                       -->
	<!-- =================================================================== -->
	<target name="compile" description="Compiles the BSF *.java files." depends="prepare">
		<mkdir dir="${build.dest}"/>
		<javac srcdir="${src.dir}" destdir="${build.dest}" debug="${project.debug}" deprecation="${project.deprecation}" source="${source.level}">
			<classpath>
				<fileset dir="lib">
					<include name="*.jar"/>
				</fileset>
			</classpath>
			<patternset refid="java.source.files"/>
		</javac>
	</target>

	<!-- ================================================================= -->
	<!-- Produces the jar file                                             -->
	<!-- ================================================================= -->
	<target name="jar" depends="compile" description="Produces the jar file and copies to ${build.lib}">
		<mkdir dir="${build.lib}" />
		<copy todir="${build.dest}">
			<fileset dir="${src.dir}">
				<include name="**/*.properties" />
			</fileset>
		</copy>

		<mkdir dir="${build.dest}/META-INF" />
		<copy todir="${build.dest}/META-INF">
			<fileset dir="${basedir}">
				<include name="**/LICENSE.txt" />
				<include name="**/NOTICE.txt" />
			</fileset>
		</copy>

		<jar jarfile="${build.lib}/${project.name}.jar" basedir="${build.dest}" />
		<uptodate property="javadoc.required" targetfile="${build.lib}/${project.name}.jar">
			<srcfiles dir="${build.dir}" includes="**/*.html" />
		</uptodate>
	</target>

	<!-- =================================================================== -->
	<!-- Compiles the samples                                                -->
	<!-- =================================================================== -->
	<target name="samples" description="Compiles the samples." depends="jar">
		<copy todir="${build.samples}">
			<fileset dir="${samples.dir}" />
		</copy>
		<javac srcdir="${build.samples.calc}" destdir="${build.samples.calc}" classpath="${build.lib}/${project.name}.jar" debug="${project.debug}" deprecation="${project.deprecation}" source="${source.level}" />
		<javac srcdir="${build.samples.scriptedui}" destdir="${build.samples.scriptedui}" classpath="${build.lib}/${project.name}.jar" debug="${project.debug}" deprecation="${project.deprecation}" source="${source.level}" />
		<javac srcdir="${build.samples.xsl}" destdir="${build.samples.xsl}" classpath="${build.lib}/${project.name}.jar" debug="${project.debug}" deprecation="${project.deprecation}" source="${source.level}" />
	</target>

	<!-- =================================================================== -->
	<!-- Creates the API documentation                                       -->
	<!-- =================================================================== -->
	<target name="javadocs" description="Generates the API documentation." depends="compile">
		<mkdir dir="${build.javadocs}" />
		<!-- FIXME: Excluding some packages temporarily -->
		<javadoc packagenames="${packages}" failonerror="true" excludepackagenames="org.apache.bsf.engines.java, org.apache.bsf.engines.javaclass" destdir="${build.javadocs}" author="true" version="false" use="true" windowtitle="${project.fullName} API" doctitle="${project.fullName}" source="${source.level}">
			<classpath refid="compile.classpath" />
			<fileset dir="${src.dir}">
				<patternset refid="java.source.files"></patternset>
			</fileset>
		</javadoc>

	</target>

	<!-- =================================================================== -->
	<!-- Creates the website                                                 -->
	<!-- =================================================================== -->
	<target name="build-site" if="AnakiaTask.present" description="Generates the website." depends="prepare-site">
		<taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask">
			<classpath refid="anakia.classpath" />
		</taskdef>

		<anakia basedir="${site.src}" destdir="${site.dest}/" extension=".html" style="./site.vsl" projectFile="${site.projectFile}" excludes="**/stylesheets/** faq.xml" includes="**/*.xml" lastModifiedCheck="true" templatePath="${templ.path}" velocityPropertiesFile="${velocity.props}"/>


		<anakia basedir="${site.src}" destdir="${site.dest}/" extension=".html" style="./faq.vsl" projectFile="${site.projectFile}" includes="faq.xml" lastModifiedCheck="true" templatePath="${templ.path}" velocityPropertiesFile="${velocity.props}"/>


		<copy todir="${site.dest}/images" filtering="no">
			<fileset dir="${site.src}/images">
				<include name="**/*.gif" />
				<include name="**/*.jpeg" />
				<include name="**/*.jpg" />
			</fileset>
		</copy>
	</target>

	<!-- =================================================================== -->
	<!-- Creates the binary distribution                                     -->
	<!-- =================================================================== -->
	<target name="bindist" description="Creates the binary distribution(s)." depends="javadocs, samples">

		<copy todir="${dist.dir.root}/docs/api">
			<fileset dir="${build.javadocs}" />
		</copy>
		<copy todir="${dist.dir.root}/lib">
			<fileset dir="${build.lib}" />
		</copy>
		<copy todir="${dist.dir.root}/samples">
			<fileset dir="${build.samples}" />
		</copy>

		<copy file="AUTHORS.txt" tofile="${dist.dir.root}/AUTHORS.txt" />
		<copy file="CHANGES.txt" tofile="${dist.dir.root}/CHANGES.txt" />
		<copy file="INSTALL.txt" tofile="${dist.dir.root}/INSTALL.txt" />
		<copy file="LICENSE.txt" tofile="${dist.dir.root}/LICENSE.txt" />
		<copy file="NOTICE.txt" tofile="${dist.dir.root}/NOTICE.txt" />
		<copy file="README.txt" tofile="${dist.dir.root}/README.txt" />
		<copy file="RELEASE-NOTE.txt" tofile="${dist.dir.root}/RELEASE-NOTE.txt" />
		<copy file="TODO.txt" tofile="${dist.dir.root}/TODO.txt" />

		<!-- ================================================================= -->
		<!-- Produces the tar/gzip file                                        -->
		<!-- ================================================================= -->
		<tar tarfile="${dist.bin.file}.tar" basedir="${dist.dir}" excludes="*.zip,*.tar,*.gz" />
		<gzip src="${dist.bin.file}.tar" zipfile="${dist.bin.file}.tar.gz" />
		<delete file="${dist.bin.file}.tar" />

		<!-- ================================================================= -->
		<!-- Produces the zip file                                             -->
		<!-- ================================================================= -->
		<zip zipfile="${dist.bin.file}.zip" basedir="${dist.dir}" excludes="*.zip,*.tar,*.gz" />
	</target>

	<!-- =================================================================== -->
	<!-- Creates the source distribution                                     -->
	<!-- =================================================================== -->
	<target name="srcdist" description="Creates the source distribution(s)." depends="init">

		<copy todir="${dist.dir.root}/src">
			<fileset dir="${src.dir}" />
		</copy>

		<copy file="AUTHORS.txt" tofile="${dist.dir.root}/AUTHORS.txt" />
		<copy file="BUILDING.txt" tofile="${dist.dir.root}/BUILDING.txt" />
		<copy file="CHANGES.txt" tofile="${dist.dir.root}/CHANGES.txt" />
		<copy file="INSTALL.txt" tofile="${dist.dir.root}/INSTALL.txt" />
		<copy file="LICENSE.txt" tofile="${dist.dir.root}/LICENSE.txt" />
		<copy file="NOTICE.txt" tofile="${dist.dir.root}/NOTICE.txt" />
		<copy file="README.txt" tofile="${dist.dir.root}/README.txt" />
		<copy file="RELEASE-NOTE.txt" tofile="${dist.dir.root}/RELEASE-NOTE.txt" />
		<copy file="TODO.txt" tofile="${dist.dir.root}/TODO.txt" />
		<copy file="${build.file}" tofile="${dist.dir.root}/${build.file}" />
		<copy file="${build.properties.file}" tofile="${dist.dir.root}/${build.properties.file}" />

		<!-- ================================================================= -->
		<!-- Produces the tar/gzip file                                        -->
		<!-- ================================================================= -->
		<tar tarfile="${dist.src.file}.tar" basedir="${dist.dir}" excludes="*.zip,*.tar,*.gz" />
		<gzip src="${dist.src.file}.tar" zipfile="${dist.src.file}.tar.gz" />
		<delete file="${dist.src.file}.tar" />

		<!-- ================================================================= -->
		<!-- Produces the zip file                                             -->
		<!-- ================================================================= -->
		<zip zipfile="${dist.src.file}.zip" basedir="${dist.dir}/" excludes="*.zip,*.tar,*.gz" />
	</target>


	<!-- =================================================================== -->
	<!-- Compile unit tests                                                  -->
	<!-- =================================================================== -->
	<target name="compile-test" if="junit.present" depends="compile">
		<mkdir dir="${build.tests}" />
		<javac srcdir="${tests.dir}" destdir="${build.tests}" classpath="${build.dest}" source="${source.level}" />
	</target>

	<!-- =================================================================== -->
	<!-- Performs unit tests                                                 -->
	<!-- =================================================================== -->
	<target name="test" if="junit.present" description="Performs unit tests on BSF." depends="compile-test">
		<copy todir="${build.dest}" overwrite="true">
			<fileset dir="${src.dir}">
				<include name="**/*.properties" />
			</fileset>
		</copy>
		<junit>
			<classpath refid="test.classpath" />
			<formatter type="brief" usefile="false" />
			<test name="org.apache.bsf.BSFTest" />
		</junit>
	</target>

	<!-- =================================================================== -->
	<!-- Creates both distributions                                          -->
	<!-- =================================================================== -->
	<target name="dist" description="Executes both bindist and srcdist." depends="bindist, srcdist" />

	<!-- =================================================================== -->
	<!-- Cleans everything                                                   -->
	<!-- =================================================================== -->
	<target name="clean" description="Removes build and dist directories.">
		<delete dir="${build.dir}" />
		<delete dir="${dist.dir}" />
	</target>

	<target name="all" depends="build-site, dist" />
</project>
