Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

376 lines (313 sloc) 13.73 kb
<?xml version="1.0" encoding="utf-8"?>
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
- The Original Code is Rhino code, released May 6, 1999.
- The Initial Developer of the Original Code is
- Netscape Communications Corporation.
- Portions created by the Initial Developer are Copyright (C) 1997-1999
- the Initial Developer. All Rights Reserved.
- Contributor(s):
- Alternatively, the contents of this file may be used under the terms of
- the GNU General Public License Version 2 or later (the "GPL"), in which
- case the provisions of the GPL are applicable instead of those above. If
- you wish to allow use of your version of this file only under the terms of
- the GPL and not to allow others to use your version of this file under the
- MPL, indicate your decision by deleting the provisions above and replacing
- them with the notice and other provisions required by the GPL. If you do
- not delete the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
- ***** END LICENSE BLOCK ***** -->
Build file for Rhino using Ant (see
Requires Ant version 1.2 or later
Compilation currently requires JDK 1.5 or later. Can cross-compile to
support JDK 1.4.
<project name="Rhino" default="help" basedir=".">
<target name="properties">
<!-- Allow user to override default settings from -->
<property file="" />
<!-- Specify date part of Context#getImplementationVersion() -->
<format property="" pattern="yyyy MM dd"/>
<property file=""/>
<property name="dist.file" value="rhino${version}.zip"/>
<property name="dist.source-only-zip" value="rhino${version}"/>
<property file=""/>
<property name="xmlimplsrc-build-file"
<available property="xmlimplsrc-present?"
file="${xmlimplsrc-build-file}" />
<target name="init" depends="properties">
<mkdir dir="${build.dir}"/>
<mkdir dir="${classes}"/>
<mkdir dir="${dist.dir}"/>
<target name="compile" depends="init">
<ant antfile="src/build.xml" target="compile"/>
<ant antfile="toolsrc/build.xml" target="compile"/>
<antcall target="xmlimplsrc-compile" />
<target name="compile-all" depends="compile">
<ant antfile="deprecatedsrc/build.xml" target="compile"/>
<target name="graph" depends="init">
<ant antfile="src/build.xml" target="graph"/>
<target name="shell" depends="compile">
<ant antfile="src/build.xml" target="shell"/>
<target name="copy-source" depends="init">
<ant antfile="src/build.xml" target="copy-source"/>
<ant antfile="toolsrc/build.xml" target="copy-source"/>
<ant antfile="testsrc/build.xml" target="copy-source"/>
<antcall target="xmlimplsrc-copy-source" />
<ant antfile="deprecatedsrc/build.xml" target="copy-source"/>
<copy todir="${dist.dir}" file="build.xml"/>
<copy todir="${dist.dir}" file=""/>
<copy todir="${dist.dir}" file=""/>
<copy todir="${dist.dir}" file="LICENSE.txt"/>
<target name="xmlimplsrc-compile" if="xmlimplsrc-present?">
<echo>Calling ${xmlimplsrc-build-file}</echo>
<!-- Ignore compilation errors under JDK less then 1.4 -->
<property name="xmlimpl.compile.failonerror" value="no"/>
<ant antfile="${xmlimplsrc-build-file}" target="compile"/>
<target name="xmlimplsrc-copy-source" if="xmlimplsrc-present?">
<echo>Calling ${xmlimplsrc-build-file}</echo>
<ant antfile="${xmlimplsrc-build-file}" target="copy-source"/>
<target name="jar" depends="compile-all">
<property name="jarfile" location="${dist.dir}/${rhino.jar}"/>
<jar jarfile="${jarfile}"
<include name="**/*"/>
<exclude name="**/*.tests"/>
<exclude name="benchmarks"/>
<exclude name="jstests"/>
<exclude name="doctests"/>
<target name="console" depends="jar">
<property name="jarfile" location="${dist.dir}/${rhino.jar}"/>
<java jar="${jarfile}"
<arg line="-version 170"/>
<target name="retrotranslator" depends="retrotranslator-check,retrotranslator-download">
<taskdef name="retrotranslator" classpath="build/download/Retrotranslator-1.2.8-bin/retrotranslator-transformer-1.2.8.jar"
<target name="retrotranslator-check">
<condition property="retrotranslator.available">
<available file="build/download/Retrotranslator-1.2.8-bin/retrotranslator-transformer-1.2.8.jar"/>
<available file="build/download/Retrotranslator-1.2.8-bin/retrotranslator-runtime-1.2.8.jar"/>
<available file="build/download/Retrotranslator-1.2.8-bin/backport-util-concurrent-3.1.jar"/>
<target name="retrotranslator-download" unless="retrotranslator.available">
<mkdir dir="build/download"/>
<get src="" dest="build/download/" usetimestamp="true"/>
<unzip src="build/download/" dest="build/download"/>
<target name="retrojar" depends="jar,retrotranslator">
<target name="smalljar" depends="compile">
<property name="smalljarfile" location="${dist.dir}/${small-rhino.jar}"/>
<jar basedir="${classes}" destfile="${smalljarfile}"
<include name="org/mozilla/javascript/*.class"/>
<include name="org/mozilla/javascript/debug/*.class"/>
<include name="org/mozilla/javascript/resources/*.properties"/>
<include name="org/mozilla/javascript/xml/*.class"/>
<include name="org/mozilla/javascript/continuations/*.class"/>
<include name="org/mozilla/javascript/jdk13/*.class"/>
<!-- exclude classes that uses class generation library -->
<exclude name="org/mozilla/javascript/JavaAdapter*.class"/>
<include name="org/mozilla/javascript/regexp/*.class"
<!-- Titanium specific inclusions (needed for js compiling) -->
<include name="org/mozilla/javascript/ast/**/*.class"/>
<include name="org/mozilla/javascript/annotations/*.class"/>
<include name="org/mozilla/javascript/json/*.class"/>
<include name="org/mozilla/javascript/optimizer/**/*.class"/>
<include name="org/mozilla/classfile/**/*.class"/>
<!-- Titanium specific inclusions (needed for CommonJS require()) -->
<include name="org/mozilla/javascript/commonjs/module/Require.class"/>
<include name="org/mozilla/javascript/commonjs/module/RequireBuilder.class"/>
<include name="org/mozilla/javascript/commonjs/module/ModuleScript.class"/>
<include name="org/mozilla/javascript/commonjs/module/ModuleScriptProvider.class"/>
<target name="retrosmalljar" depends="smalljar,retrotranslator">
<target name="copy-examples" depends="init">
<mkdir dir="${dist.dir}/examples"/>
<copy todir="${dist.dir}/examples">
<fileset dir="examples" includes="**/*.java,**/*.js,**/*.html" />
<target name="copy-misc" depends="init">
<filter token="datestamp" value="${TODAY}"/>
<copy todir="${dist.dir}" filtering="yes">
<fileset dir=".">
<include name="build-date"/>
<target name="copy-all" depends="copy-source,copy-examples,copy-misc">
<target name="javadoc" depends="init">
<mkdir dir="${dist.dir}/javadoc"/>
<javadoc sourcefiles="${apiClasses}"
windowtitle="${Name}" />
<target name="dev-javadoc" depends="init">
<mkdir dir="${dist.dir}/javadoc"/>
<javadoc sourcepath="src"
<target name="dist" depends="deepclean,jar,retrojar,copy-all,javadoc">
<delete file="${dist.file}" />
<zip destfile="${dist.file}">
<fileset dir="${build.dir}" includes="${}/**"/>
<target name="source-zip" depends="copy-source,copy-examples,javadoc">
<delete file="${dist.source-only-zip}" />
<zip destfile="${dist.source-only-zip}">
<zipfileset prefix="${}" dir="${dist.dir}">
<include name="*src/**"/>
<include name="build.xml"/>
<include name="*.properties"/>
<include name="examples/**"/>
<target name="compile-debugger">
<ant antfile="toolsrc/build.xml" target="compile-debugger"/>
<target name="clean" depends="properties">
<delete quiet="true" file="${dist.dir}/${rhino.jar}"/>
<delete quiet="true" file="${dist.dir}/${small-rhino.jar}"/>
<delete quiet="true" dir="${build.dir}"/>
<target name="deepclean" depends="properties">
<delete quiet="true" dir="${build.dir}"/>
<delete quiet="true" file="${dist.file}"/>
<delete quiet="true" file="${dist.source-only-zip}"/>
The next two targets run the JavaScript Test Library tests. Note that these tests are quite extensive and take a long time
to run. They are not documented in the 'help' target for now.
Run the tests using JUnit. Beware that if you are using Ant from the command-line, there are some difficulties you may
encounter setting this up correctly; see
IDEs that use Ant as the build system probably handle this fine.
<target name="junit-all" depends="compile">
<ant antfile="testsrc/build.xml" target="junit-coveragereport"/>
Run the tests using the Java port of Note that running this port
from the command-line may be more useful running this Ant target, as running
from the command line allows configuration options, such as running with a
non-default optimization level, or running only a subset of the tests.
<target name="jsdriver-run" depends="compile">
<ant antfile="testsrc/build.xml" target="jsdriver" />
Compile the JsDriver test driver.
<target name="jsdriver" depends="compile">
<ant antfile="testsrc/build.xml" target="clean" />
<ant antfile="testsrc/build.xml" target="compile" />
<target name="benchmark-v8-opt-1" depends="jar">
<property name="jarfile" location="${dist.dir}/${rhino.jar}"/>
<java jar="${jarfile}" dir="testsrc/benchmarks/v8" fork="true">
<jvmarg value="-Xmx256m"/>
<arg line="-opt -1 run.js"/>
<target name="benchmark-v8-opt0" depends="jar">
<property name="jarfile" location="${dist.dir}/${rhino.jar}"/>
<java jar="${jarfile}" dir="testsrc/benchmarks/v8" fork="true">
<jvmarg value="-Xmx256m"/>
<arg line="-opt 0 run.js"/>
<target name="help" depends="properties">
<echo>The following targets are available with this build file:
clean remove all compiled classes and copied property files
compile compile classes and copy all property files
into ${classes} directory
excluding deprecated code
compile-all compile all classes and copy all property files
into ${classes} directory
including deprecated code
deepclean remove all generated files and directories
dist create ${dist.file} with full Rhino distribution
help print this help
jar create ${rhino.jar} in ${dist.dir}
smalljar create ${small-rhino.jar} in ${dist.dir} with
minimalist set of Rhino classes. See footprint.html
from the doc directory for details.
javadoc generate Rhino API documentation
in ${dist.dir}/javadoc
source-zip create ${dist.source-only-zip} with all Rhino
source files necessary to recreate ${dist.file}
Jump to Line
Something went wrong with that request. Please try again.