<?xml version="1.0"?>

<!-- ===================================================================

   Build file for jess

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

Prerequisites:

   jakarta-ant from http://jakarta.apache.org

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  -> compile classes package in "./${build.dir}/classes"
 - jar      -> jar the classes to "${build.lib}/${name}.jar"
 - javadocs -> creates the javadocs in "./${build.dir}/javadocs"
 - dist     -> creates the complete binary distribution

Authors:

  David Li <david@d11e.com>

Copyright:
  Copyright 2000 (c) DigitalSesame 

   $Id: build.xml,v 1.1.1.1 2003/01/08 05:01:45 ejfried Exp $

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

<project default="jar" basedir=".">

  <property name="name" value="jess"/>
  <property name="Name" value="Jess"/>
  <property name="version" value="6.0a5"/>

  <property name="debug" value="on"/>

  <property name="src.dir" value="."/>
  <property name="docs.dir" value="${src.dir}/docs"/>

  <property name="packages" value="jess.*"/>

  <property name="build.file" value="build.xml"/>
  <property name="build.dir" value="ant.build"/>
  <property name="build.classes" value="${build.dir}/classes"/>
  <property name="build.lib" value="${build.dir}/lib"/>
  <property name="build.javadocs" value="${build.dir}/javadocs"/>
  <property name="build.compiler.emacs" value="yes"/>

  <property name="dist.dir" value="${build.dir}/${Name}-${version}"/>

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

  <!-- =================================================================== -->
  <!-- Compiles the source directory                                       -->
  <!-- =================================================================== -->
  <target name="compile" depends="prepare">
    <mkdir dir="${build.classes}"/>
    <copy todir="${build.classes}">
      <fileset dir="${src.dir}" includes="jess/**/*.clp"/>
    </copy>
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}" 
           debug="${debug}"
           includes="jess/**"/>
  </target>


  <!-- =================================================================== -->
  <!-- Jar the library                                                     -->
  <!-- =================================================================== -->
  <target name="jar" depends="compile">
    <mkdir dir="${build.lib}"/>
    <jar jarfile="${build.lib}/${name}.jar" 
         basedir="${build.classes}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the API documentation                                       -->
  <!-- =================================================================== -->
  <target name="javadocs" depends="prepare">
    <mkdir dir="${build.javadocs}"/>
    <javadoc packagenames="${packages}"
             sourcepath="${src.dir}"
             destdir="${build.javadocs}"
             author="true"
             version="true"
             use="true"
             windowtitle="${Name} ${version} API"
             doctitle="${Name}"
    />
  </target>

  <!-- =================================================================== -->
  <!-- Creates the binary distribution                                            -->
  <!-- =================================================================== -->
  <target name="dist" depends="jar, javadocs">
    <mkdir dir="${dist.dir}"/>
    <mkdir dir="${dist.dir}/docs"/>
    <mkdir dir="${dist.dir}/docs/api"/>
    <mkdir dir="${dist.dir}/lib"/>

    <copy todir="${dist.dir}/docs">
      <fileset dir="${docs.dir}"/>
    </copy>
    <copy todir="${dist.dir}/docs/api">
     <fileset dir="${build.javadocs}"/>
    </copy>
    <copy todir="${dist.dir}/lib">
      <fileset dir="${build.lib}"/>
    </copy>
    <copy todir="${dist.dir}/examples">
      <fileset dir="${src.dir}/examples"/>
    </copy>
  </target>

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

</project>
