<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.
-->
<!-- 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=".ant.properties" />
    <property file="build.properties" />
    <property file="build.properties.default"/>

    <!-- Initialization properties -->
    <property name="project"               value="tomcat-native" />
    <property name="name"                  value="Tomcat Native" />
    <property name="title"                 value="Tomcat Native Library"/>
    <tstamp>
      <format property="year" pattern="yyyy" locale="en" timezone="UTC"/>
    </tstamp>

    <property name="test.runner"           value="junit.textui.TestRunner"/>

    <property name="version"               value="${version.major}.${version.minor}.${version.build}${version.suffix}" />
    <property name="version.number"        value="${version.major}.${version.minor}.${version.build}.${version.patch}" />
    <property name="version.major.minor"   value="${version.major}.${version.minor}" />

    <property name="final.name"            value="${project}-${version}" />

    <property name="build.dir"             value="./dist"/>
    <property name="build.dest"            value="${build.dir}/classes"/>
    <property name="src.dir"               value="."/>
    <property name="dist.root"             value="./dist"/>
    <property name="ant.home"              value="."/>

    <property name="docs.src"              value="./xdocs"/>
    <property name="docs.dest"             value="${dist.root}/doc"/>
    <property name="test.dir"              value="${build.dest}/test"/>

    <property name="tc.library.path"       value="${basedir}/native/.libs"/>

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

    <!-- Tests To Run -->
    <property name="test.name"             value="**/Test*.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}"/>
        <pathelement location="${hamcrest.jar}"/>
    </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}"/>
        <mkdir dir="${basedir}/logs"/>
    </target>

    <!-- Download and dependency building -->
    <target name="proxyflags">
      <!-- check proxy parameters. -->
      <condition property="useproxy">
        <equals arg1="${proxy.use}" arg2="on" />
      </condition>
    </target>

    <target name="setproxy" depends="proxyflags" if="useproxy">
      <taskdef name="setproxy"
              classname="org.apache.tools.ant.taskdefs.optional.net.SetProxy" />
      <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
                proxyuser="${proxy.user}" proxypassword="${proxy.password}" />
      <echo message="Using ${proxy.host}:${proxy.port} to download ${sourcefile}"/>
    </target>

    <target name="testexist">
      <echo message="Testing for ${destfile}"/>
      <available file="${destfile}" property="exist"/>
    </target>

    <target name="downloadgz" unless="exist" depends="setproxy,testexist">
      <!-- Download and extract the package -->
      <get src="${sourcefile}" dest="${base.path}/file.tar.gz" />
      <gunzip src="${base.path}/file.tar.gz" dest="${base.path}/file.tar"/>
      <untar src="${base.path}/file.tar" dest="${base.path}"/>
      <delete file="${base.path}/file.tar"/>
      <delete file="${base.path}/file.tar.gz"/>
    </target>

    <target name="downloadzip" unless="exist" depends="setproxy,testexist">
      <!-- Download and extract the package -->
      <get src="${sourcefile}" dest="${base.path}/file.zip" />
      <mkdir dir="${destdir}" />
      <unzip src="${base.path}/file.zip" dest="${destdir}"/>
      <delete file="${base.path}/file.zip"/>
    </target>

    <target name="downloadfile" unless="exist" depends="setproxy,testexist">
      <!-- Download extract the file -->
      <mkdir dir="${destdir}" />
      <get src="${sourcefile}" dest="${destfile}" />
    </target>

    <target name="download" description="Download needed dependencies">

      <mkdir dir="${base.path}"/>

      <antcall target="downloadfile">
        <param name="sourcefile" value="${junit.loc}"/>
        <param name="destfile" value="${junit.jar}"/>
        <param name="destdir" value="${junit.home}"/>
      </antcall>

      <antcall target="downloadfile">
        <param name="sourcefile" value="${hamcrest.loc}"/>
        <param name="destfile" value="${hamcrest.jar}"/>
        <param name="destdir" value="${hamcrest.home}"/>
      </antcall>

    </target>

    <!-- =================================================================== -->
    <!-- Creates the API documentation                                       -->
    <!-- =================================================================== -->
    <target name="javadocs" description="Java documentation">
        <mkdir dir="${docs.dest}"/>
        <mkdir dir="${docs.dest}/api"/>
        <javadoc sourcepath="${src.dir}/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-${year} 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" description="Clean build directory">
        <delete dir="${build.dir}"/>
    </target>

    <!-- =================================================================== -->
    <!-- Compiles the source directory                                       -->
    <!-- =================================================================== -->
    <target name="compile" depends="prepare" description="Compile Java sources">
        <mkdir dir="${build.dest}"/>
        <mkdir dir="${build.dest}/java"/>
        <javac srcdir="${src.dir}/java"
            destdir="${build.dest}/java"
            source="${compile.source}"
            target="${compile.target}"
            debug="${compile.debug}"
            deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            encoding="ISO-8859-1"
            includeantruntime="false">
            <classpath refid="classpath"/>
        </javac>
    </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" description="Compile Java test classes">
        <mkdir dir="${build.dest}"/>
        <mkdir dir="${build.dest}/test"/>
        <javac srcdir="${src.dir}/test"
            destdir="${build.dest}/test"
            source="${compile.source}"
            target="${compile.target}"
            debug="on"
            deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            encoding="ISO-8859-1"
            includeantruntime="false">
            <classpath refid="test.classpath"/>
        </javac>
    </target>

    <!-- =================================================================== -->
    <!-- Junit tests                                                         -->
    <!-- =================================================================== -->
    <target name="test" depends="compile-tests" description="Run the tests">
        <echo message="Running Tomcat Native package tests ..."/>
        <junit printsummary="yes" fork="yes" dir="." showoutput="yes"
            haltonfailure="${test.failonerror}" >

            <formatter type="plain"/>

            <jvmarg value="-Djava.library.path=${tc.library.path}"/>

            <classpath refid="test.classpath" />

            <batchtest todir="${basedir}/logs">
                <!-- Include all by default -->
                <fileset dir="test" includes="${test.name}">
                  <!-- Exclude helper classes -->
                  <exclude name="**/Tester*.java" />
                </fileset>
            </batchtest>
        </junit>
    </target>

</project>
