<?xml version="1.0" encoding="UTF-8"?>
<!--***********************************************************
 * 
 * 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.
 * 
 ***********************************************************-->


<project name="l10nconv" default="main" basedir=".">

    <!-- ================================================================= -->
    <!-- settings                                                          -->
    <!-- ================================================================= -->

    <!-- name of this sub target used in recursive builds -->
    <property name="target" value="l10nconv"/>

    <!-- name of jar file created, without .jar extension -->
    <property name="jarname" value="converter"/>

    <!-- relative path to project directory -->
    <property name="prj" value="."/>

    <!-- build output directory -->
    <property name="out" value="build"/>

    <!-- build directories -->
    <property name="build.dir" value="${out}"/>
    <property name="build.class" value="${build.dir}/class/converter"/>
    <property name="build.misc" value="${build.dir}/misc/converter"/>

    <!-- start of java source code package structure -->
    <property name="java.dir" value="java"/>

    <!-- define how to handle CLASSPATH environment -->
    <property name="build.sysclasspath" value="ignore"/>

    <!-- classpath settings for compile and javadoc tasks -->
    <path id="classpath">
        <pathelement location="."/>
        <pathelement location="${build.class}"/>
    </path>

    <!-- name to display in documentation -->
    <property name="docname" value="l10n converter"/>

    <!-- set "modern" java compiler -->
    <property name="build.compiler" value="modern"/>

    <!-- set wether we want to compile with debug information -->
    <property name="debug" value="on"/>

    <!-- set wether we want to compile with optimisation -->
    <property name="optimize" value="off"/>

    <!-- set wether we want to compile with or without deprecation -->
    <property name="deprecation" value="on"/>

    <target name="info">
        <echo message="--------------------"/>
        <echo message="${target}"/>
        <echo message="--------------------"/>
    </target>

    <!-- ================================================================= -->
    <!-- custom targets                                                    -->
    <!-- ================================================================= -->

    <!-- the main target, called in recursive builds -->
    <target name="main" depends="info,prepare,compile,jar,javadoc,zipdoc"/>

    <!-- prepare output directories -->
    <target name="prepare">
        <mkdir dir="${build.dir}"/>
        <mkdir dir="${build.dir}/doc"/>
        <mkdir dir="${build.dir}/doc/javadoc"/>
        <mkdir dir="${build.class}"/>
        <mkdir dir="${build.misc}"/>
    </target>


    <target name="res" depends="prepare">
        <copy todir="${build.class}">
             <fileset dir="${java.dir}">
                 <include name="**/*.properties"/>
                 <include name="**/*.css"/>
                 <include name="**/*.dtd"/>
                 <include name="**/*.form"/>
                 <include name="**/*.gif "/>
                 <include name="**/*.htm"/>
                 <include name="**/*.html"/>
                 <include name="**/*.js"/>
                 <include name="**/*.mod"/>
                 <include name="**/*.sql"/>
                 <include name="**/*.xml"/>
                 <include name="**/*.xsl"/>
                 <include name="**/*.map"/>

             </fileset>
	    </copy>
    </target>


    <target name="compile" depends="prepare,res">
	<javac destdir="${build.class}"
	       debug="${debug}"
               deprecation="${deprication}"
	       optimize="${optimize}"
	       classpathref="classpath">
            <src path="${java.dir}"/>
	    <include name="**/*.java"/>
	</javac>
    </target>

    <!-- check if javadoc is up to date -->
    <target name="javadoc_check" depends="prepare" if="build.dir">
	<uptodate property="javadocBuild.notRequired" value="true"
            targetfile="${build.dir}/doc/converter_javadoc.zip">
		<srcfiles dir="${java.dir}" includes="**/*.java"/>
	</uptodate>
    </target>

    <!-- generate java documentation -->
    <target name="javadoc" depends="prepare,javadoc_check,compile"
         unless="javadocBuild.notRequired"
         if="build.dir">

        <javadoc destdir="${build.dir}/doc/javadoc"
                 verbose="false"
                 author="false"
                 nodeprecated="true"
                 nodeprecatedlist="true"
                 use="true"
                 Doctitle="${docname}"
                 windowtitle="${docname}"
                 classpathref="classpath">

            <packageset dir="${java.dir}" defaultexcludes="yes">
                <include name="com/**"/>
            </packageset>

            <link offline="true" href="http://java.sun.com/j2se/1.4.2/docs/api"
                  packagelistLoc="${common.doc}/jdk1.4.2"/>
            <link offline="true"
                  href="http://java.sun.com/products/servlet/2.3/javadoc"
                  packagelistLoc="${common.doc}/servlet2.3"/>
            <link offline="true"
                  href="http://logging.apache.org/log4j/docs/api"
                  packagelistLoc="${common.doc}/log4j-1.2.8"/>
            <link offline="true"
                  href="http://java.sun.com/products/javabeans/glasgow/javadocs"
                  packagelistLoc="${common.doc}/jaf-1.0.2"/>
            <link offline="true"
                  href="http://java.sun.com/products/javamail/javadocs"
                  packagelistLoc="${common.doc}/javamail-1.3.1"/>
            <link offline="true"
                  href="http://ws.apache.org/soap/docs"
                  packagelistLoc="${common.doc}/soap-2.3.1"/>

            <bottom>&lt;i&gt;Copyright &amp;#169; 2004 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303 USA&lt;/i&gt;</bottom>
            <header>${docname}</header>

       </javadoc>
    </target>

    <!-- zip documentation and store in build/misc -->
    <target name="zipdoc" depends="javadoc" if="build.dir" unless="javadocBuild.notRequired">
	<zip zipfile="${build.dir}/doc/converter_javadoc.zip"
      basedir="${build.dir}/doc/javadoc"
      update="true"/>
    </target>

    <!-- clean up -->
    <target name="clean" depends="prepare">
        <delete includeEmptyDirs="true">
            <fileset dir="${build.class}">
                <patternset>
                    <include name="${package}/**/*.class"/>
                </patternset>
            </fileset>
        </delete>
    </target>

    <!-- create jar file -->
    <target name="jar" depends="prepare,compile" if="build.class">
        <jar jarfile="${build.class}/${jarname}.jar"
             basedir="${build.class}"
             manifest="${jarname}.MF">
                 <include name="**/*.class"/>
                 <include name="**/*.properties"/>
                 <include name="**/*.css"/>
                 <include name="**/*.dtd"/>
                 <include name="**/*.form"/>
                 <include name="**/*.gif "/>
                 <include name="**/*.htm"/>
                 <include name="**/*.html"/>
                 <include name="**/*.js"/>
                 <include name="**/*.mod"/>
                 <include name="**/*.sql"/>
                 <include name="**/*.xml"/>
                 <include name="**/*.xsl"/>
                 <include name="**/*.map"/>
        </jar>
    </target>

    <target name="test" depends="prepare">
    </target>

</project>

