System Requirements
===================

* JDK 1.6 or greater (http://java.sun.com/)
* Ant 1.7 or greater (http://ant.apache.org/)
* JUnit 4.8.2 or greater (http://www.junit.org/)
* Maven Ant Tasks 2.0.10 or greater (http://maven.apache.org/) (optional)

Project Set-Up
==============

* Ensure that JUnit is on your Ant classpath (set the CLASSPATH environment
  variable accordingly):

  http://ant.apache.org/manual/Tasks/junit.html

* Ensure that the LiveConnect APIs are on your classpath (set the CLASSPATH
  environment variable accordingly):

  Windows and Linux:
  http://java.sun.com/javase/6/webnotes/6u10/plugin2/liveconnect/#COMPILING

  Mac OS X:
  http://developer.apple.com/qa/qa2004/qa1364.html

  IMPORTANT This document has not been updated for Java 6 on Mac OS X. Under
  Java 6, this file is located in the following directory:

  /System/Library/Frameworks/JavaVM.framework/Resources/Deploy.bundle/Contents/Home/lib

* Ensure that the JNLP APIs are on your classpath; follow the same process as
  described in the previous step, substituting javaws.jar for plugin.jar.

* Ensure that the Maven Ant tasks are installed (optional); see:

  http://maven.apache.org/ant-tasks/installation.html


Building Pivot
==============

* To compile all Pivot source files into binary class files:

  $ ant compile

* To generate Javadoc

  $ ant doc

* To generate the Pivot source distribution

  $ ant dist

* To generate the Pivot binary distribution

  $ ant install

* To install in a local Maven repository (requires Maven Ant tasks):

  $ ant maven-install

----
