<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">

<document>
    <header>
        <title>How To Build POI</title>
        <authors>
            <person email="glens@apache.org" name="Glen Stampoultzis" id="GS"/>
        </authors>
    </header>
    <body>
        <section>
            <title>Installing Ant</title>
            <p>
                The POI build system requires two components to perform a
                build.
                <link href="ext:jakarta.apache.org/ant">Ant</link> and
                <link href="ext:xml.apache.org/forrest">forrest</link>.
            </p>
            <p>
                Specifically the build has been tested to work with Ant version
                1.5.3 and Forrest 0.4.  To install these products download
                the distributions and follow the instructions in their
                documentation.  Make sure you don't forget to set the
                environment variables FORREST_HOME and ANT_HOME.  The
                ANT_HOME/bin directory should be in the path.
            </p>
            <p>
                One these products are installed you will also need to
                download some extra jar files required by the build.
            </p>
            <table>
                <tr>
                    <th>Library</th>
                    <th>Location</th>
                </tr>
                <tr>
                    <td>junit</td>
                    <td>http://www.ibiblio.org/maven/junit/jars/</td>
                </tr>
                <tr>
                    <td>xerces</td>
                    <td>http://www.ibiblio.org/maven/xerces/jars/</td>
                </tr>
                <tr>
                    <td>jdepend</td>
                    <td>http://www.ibiblio.org/maven/jdepend/jars/</td>
                </tr>
                <tr>
                    <td>xalan</td>
                    <td>http://www.ibiblio.org/maven/xalan/jars/</td>
                </tr>
            </table>
            <p>
                Just pick the latest versions of these jars and place
                them in ANT_HOME/lib
            </p>
        </section>
        <section>
            <title>Running the Build</title>
            <p>
                On the first run the ant build system will download all
                the jars required by the project to build ant.  If you're
                behind a firewall this may cause some problems.  Should you
                need to it's possible to manually put the jars in the
                correct directories.  These can be obtained from here:
            </p>
            <table>
                <tr>
                    <th>JAR</th>
                    <th>Location</th>
                </tr>
                <tr>
                    <td>/commons-logging/jars/commons-logging-1.0.1.jar</td>
                    <td>lib</td>
                </tr>
                <tr>
                    <td>/log4j/jars/log4j-1.2.8.jar</td>
                    <td>lib</td>
                </tr>
                <tr>
                    <td>/commons-beanutils/jars/commons-beanutils-1.6.jar</td>
                    <td>src/contrib/lib</td>
                </tr>
                <tr>
                    <td>/commons-collections/jars/commons-collections-2.1.jar</td>
                    <td>src/contrib/lib</td>
                </tr>
                <tr>
                    <td>/commons-lang/jars/commons-lang-1.0-b1.jar</td>
                    <td>src/contrib/lib</td>
                </tr>
                <tr>
                    <td>/junit/jars/junit-3.8.1.jar</td>
                    <td>lib</td>
                </tr>
            </table>
            <p>
                The main targets of interest to our users are:
            </p>
            <table>
                <tr>
                    <th>Target</th>
                    <th>Description</th>
                </tr>
                <tr>
                    <td>clean</td>
                    <td>Erase all build work products (ie, everything in the
                        build directory</td>
                </tr>
                <tr>
                    <td>compile</td>
                    <td>Compiles all files from main, contrib and scratchpad</td>
                </tr>
                <tr>
                    <td>test</td>
                    <td>Run all unit tests from main, contrib and scratchpad</td>
                </tr>
                <tr>
                    <td>docs</td>
                    <td>Generate all documentation for the system</td>
                </tr>
                <tr>
                    <td>generate-records</td>
                    <td>Generate records from the XML record defintitions</td>
                </tr>
                <tr>
                    <td>generate-types</td>
                    <td>Generate types from the XML type definitions (this is
                        for HDF).</td>
                </tr>
                <tr>
                    <td>jar</td>
                    <td>Produce jar files</td>
                </tr>
                <tr>
                    <td>dist</td>
                    <td>Create a distribution.</td>
                </tr>
                <tr>
                    <td>clean-dist</td>
                    <td>Runs clean before creating the distribution.</td>
                </tr>
            </table>
        </section>
    </body>
</document>


