<?xml version="1.0"?>
<!-- Build file for Tomcat Native -->
<project name="Tomcat Native" default="compile" basedir=".">
    <!-- Give user a chance to override without editing this file
        (and without typing -D each time it compiles it
    -->
    <property file="${user.home}/.ant.properties" />
    <property file="${user.home}/build.properties" />
    <property file="build.properties" />
    <property file=".ant.properties" />

    <!-- Initialization properties -->
    <property name="name" value="Tomcat Native"/>
    <property name="title" value="Tomcat Native Library"/>
    <property name="version" value="1.0.0"/>
    <property name="version.number" value="100"/>
    <property name="project" value="tomcat-native"/>
    <property name="build.dir" value="./dist"/>
    <property name="build.src" value="${build.dir}/src"/>
    <property name="build.dest" value="${build.dir}/classes"/>
    <property name="src.dir" value="."/>
    <property name="final.name" value="${project}-${version}"/>
    <property name="dist.root" value="./dist"/>
    <property name="ant.home" value="."/>

    <property name="debug" value="off"/>
    <property name="optimize" value="on"/>
    <property name="deprecation" value="on"/>

    <property name="docs.src" value="./xdocs"/>
    <property name="docs.dest" value="${dist.root}/doc"/>
    <property name="docs.dest.print" value="${dist.root}/doc/printable"/>
    <property name="test.runner" value="junit.textui.TestRunner"/>
    <property name="test.dir" value="${build.dest}/test"/>
    <property name="examples.dir" value="${build.dest}/examples"/>
    <property name="junit.home" value="/usr/local/junit3.8"/>
    <property name="junit.jar" value="${junit.home}/junit.jar"/>
    <property name="tc.library.path" value="${basedir}/native/.libs"/>

      <!-- The base directory for component sources -->
      <property name="source.home"             value="java"/>

    <!-- Build classpath -->
    <path id="classpath">
        <pathelement location="${build.dest}/java"/>
    </path>

    <!-- Test classpath -->
    <path id="test.classpath">
        <pathelement location="${build.dest}/java"/>
        <pathelement location="${build.dest}/test"/>
        <pathelement location="${junit.jar}"/>
    </path>

    <!-- Examples classpath -->
    <path id="examples.classpath">
        <pathelement location="${build.dest}/java"/>
        <pathelement location="${build.dest}/examples"/>
    </path>

    <!-- =================================================================== -->
    <!-- prints the environment                                              -->
    <!-- =================================================================== -->
    <target name="env">
        <echo message="java.home = ${java.home}"/>
        <echo message="user.home = ${user.home}"/>
        <!--
        <echo message="java.class.path = ${java.class.path}"/>
        -->
        <echo message="tc.library.path = ${tc.library.path}"/>
        <echo message=""/>
    </target>

    <target name="prepare" depends="env">
       <mkdir dir="${build.dir}"/>
    </target>

    <!-- =================================================================== -->
    <!-- Creates the API documentation                                       -->
    <!-- =================================================================== -->
    <target name="javadocs" description="Java documentation">
        <mkdir dir="${docs.dest}"/>
        <mkdir dir="${docs.dest}/api"/>
        <javadoc sourcepath="${build.src}/java"
            destdir="${docs.dest}/api"
            author="true"
            version="true"
            overview="${src.dir}/java/overview.html"
            packagenames="org.apache.tomcat.*"
            windowtitle="${title} (Version ${version})"
            doctitle="&lt;h1&gt;${title} (Version ${version})&lt;/h1&gt;"
            bottom="Copyright 2002-2004 The Apache Software Foundation.&lt;!--

Licensed 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.--&gt;">
            <classpath refid="classpath"/>
        </javadoc>
     </target>

    <!-- =================================================================== -->
    <!-- Cleans up the build directory                                       -->
    <!-- =================================================================== -->
    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <!-- =================================================================== -->
    <!-- Compiles the source directory                                       -->
    <!-- =================================================================== -->
    <target name="compile" depends="prepare">
        <mkdir dir="${build.dest}"/>
        <mkdir dir="${build.dest}/java"/>
        <mkdir dir="${build.src}"/>
        <mkdir dir="${build.src}/java"/>
        <tstamp>
            <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
            <format property="TSTAMP" pattern="hh:mm:ss"/>
        </tstamp>
        <!-- Copy static resource files -->
        <filter token="VERSION" value="${version}"/>
        <filter token="VERSION_NUMBER" value="${version.number}"/>
        <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/>
        <copy todir="${build.src}/java" filtering="yes">
            <fileset dir="${src.dir}/java">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>

        <javac srcdir="${build.src}/java"
            destdir="${build.dest}/java"
            debug="${debug}"
            deprecation="${deprecation}"
            optimize="${optimize}">
            <classpath refid="classpath"/>
        </javac>
        <copy todir="${build.dest}/java" filtering="yes">
            <fileset dir="${build.src}/java">
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

      <target name="compile-only"
              description="Compile shareable components">

        <javac  srcdir="${source.home}"
               destdir="${build.home}/classes"
                 debug="${compile.debug}"
           deprecation="${compile.deprecation}"
              optimize="${compile.optimize}">
          <classpath refid="classpath"/>
        </javac>
        <copy    todir="${build.home}/classes" filtering="on">
          <fileset dir="${source.home}" excludes="**/*.java"/>
        </copy>
      </target>

    <!-- =================================================================== -->
    <!-- Compiles the examples directory                                     -->
    <!-- =================================================================== -->
    <target name="examples" depends="compile">
        <mkdir dir="${build.dest}"/>
        <mkdir dir="${build.dest}/examples"/>
        <mkdir dir="${build.src}"/>
        <mkdir dir="${build.src}/examples"/>
        <tstamp>
            <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
            <format property="TSTAMP" pattern="hh:mm:ss"/>
        </tstamp>
        <!-- Copy static resource files -->
        <filter token="VERSION" value="${version}"/>
        <filter token="VERSION_NUMBER" value="${version.number}"/>
        <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/>
        <copy todir="${build.src}/examples" filtering="yes">
            <fileset dir="${src.dir}/examples">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>

        <javac srcdir="${build.src}/examples"
            destdir="${build.dest}/examples"
            debug="${debug}"
            deprecation="${deprecation}"
            optimize="${optimize}">
            <classpath refid="examples.classpath"/>
        </javac>
        <copy todir="${build.dest}/examples" filtering="yes">
            <fileset dir="${build.src}/examples">
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

    <!-- ================================================================== -->
    <!-- Make Tomcat Native jar                                             -->
    <!-- ================================================================== -->
    <target name="jar" depends="compile"
        description="Generates the Jar file">
        <jar
            destfile="${build.dir}/${final.name}.jar"
            basedir="${build.dir}/classes/java"
            excludes="**/*.java">
            <manifest>
                <section name="org/apache/tomcat/jni">
                    <attribute name="Specification-Title" value="Tomcat Native"/>
                    <attribute name="Specification-Version" value="${version}"/>
                    <attribute name="Specification-Vendor" value="Apache Software Foundation"/>
                    <attribute name="Implementation-Title" value="org.apache.tomcat.jni"/>
                    <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
                    <attribute name="Implementation-Vendor-Id" value="org.apache"/>
                    <attribute name="Implementation-Version" value="${version} (build ${DSTAMP} ${TSTAMP})"/>
                </section>
            </manifest>
        </jar>
    </target>

    <!-- =================================================================== -->
    <!-- Compiles the test directory                                         -->
    <!-- =================================================================== -->
    <target name="compile-tests" depends="compile">
        <mkdir dir="${build.dest}/test"/>
        <mkdir dir="${build.src}/test"/>
        <copy todir="${build.src}/test" filtering="yes">
            <fileset dir="${src.dir}/test">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
        <javac srcdir="${build.src}/test"
            destdir="${build.dest}/test"
            debug="${debug}"
            deprecation="${deprecation}"
            optimize="${optimize}">

            <classpath refid="test.classpath"/>
        </javac>
    </target>

    <!-- =================================================================== -->
    <!-- Junit tests                                                         -->
    <!-- =================================================================== -->
    <target name="test.file" depends="compile-tests">
        <echo message="Running Tomcat Native package tests ..."/>
        <java dir="${test.dir}" classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
            <arg value="org.apache.tomcat.jni.FileTestSuite"/>
            <classpath refid="test.classpath"/>
        </java>
    </target>

    <!-- =================================================================== -->
    <!-- Compiles the examples directory                                     -->
    <!-- =================================================================== -->
    <target name="compile-examples" depends="compile">
        <mkdir dir="${build.dest}/examples"/>
        <mkdir dir="${build.src}/examples"/>
        <copy todir="${build.src}/examples" filtering="yes">
            <fileset dir="${src.dir}/examples">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
        <javac srcdir="${build.src}/examples"
            destdir="${build.dest}/examples"
            debug="${debug}"
            deprecation="${deprecation}"
            optimize="${optimize}">

            <classpath refid="examples.classpath"/>
        </javac>
    </target>

    <!-- =================================================================== -->
    <!-- excutes the examples                                                -->
    <!-- =================================================================== -->
    <target name="echo-example" depends="examples">
        <echo message="Running Tomcat Native Echo example ..."/>
        <java dir="${examples.dir}" classname="org.apache.tomcat.jni.Echo"
             fork="yes" failonerror="${test.failonerror}">
            <classpath refid="examples.classpath"/>
            <env key="PATH" path="${tc.library.path}:${java.library.path}"/>
            <env key="Path" path="${tc.library.path}:${java.library.path}"/>
            <jvmarg value="-Djava.library.path=${tc.library.path}"/>
        </java>
    </target>
    <target name="server-example" depends="examples">
        <echo message="Running Tomcat Native SSL Server example ..."/>
        <java dir="${examples.dir}" classname="org.apache.tomcat.jni.SSLServer"
             fork="yes" failonerror="${test.failonerror}">
            <env key="PATH" path="${tc.library.path}:${java.library.path}"/>
            <env key="Path" path="${tc.library.path}:${java.library.path}"/>
            <classpath refid="examples.classpath"/>
            <jvmarg value="-Djava.library.path=${tc.library.path}"/>
        </java>
    </target>
    <target name="locals-example" depends="examples">
        <echo message="Running Tomcat Native Local Server example ..."/>
        <java dir="${examples.dir}" classname="org.apache.tomcat.jni.LocalServer"
             fork="yes" failonerror="${test.failonerror}">
            <classpath refid="examples.classpath"/>
            <env key="PATH" path="${tc.library.path}:${java.library.path}"/>
            <env key="Path" path="${tc.library.path}:${java.library.path}"/>
            <jvmarg value="-Djava.library.path=${tc.library.path}"/>
        </java>
    </target>
</project>
