<?xml version="1.0"?>
<!-- 
==========================================================================

 jSieve build file 


  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='jsieve-util' default="main" basedir=".">
    
    <!--
    Give user a chance to override without editing this file
    (and without typing -D each time he compiles it)
    -->
    <property file=".ant.properties" />
    <property file="${user.home}/.ant.properties" />
    <property file="../include.properties" />
    <property file="../default.properties" />

    <path id="mail.class.path">
        <pathelement location='${mail.jar}' />
        <pathelement location='${activation.jar}' />
    </path>

    <path id="project.class.path">
        <pathelement location="${commons-logging.jar}" />
        <pathelement location="${log4j.jar}" />
        <pathelement location='${lib.jsieve.dir}/${name}-${version}.jar' />
        <pathelement location="${mailet.jar}" />
        <path refid="mail.class.path" />
        <pathelement path="${java.class.path}" />
        <pathelement path="${build.classes}" />
    </path>

    <path id="project.test.class.path">
        <path refid="project.class.path" />
        <pathelement location="${junit.jar}" />
        <pathelement location="${jmock.jar}" />
    </path>
    
    <import file='../build.xml'/>
    
    <target name="main" depends="run-tests" description=" - main target"/>

    <target name="prepare" description=" - paparations                   [internal]">
        <CheckMailConditions/>
    </target>

    <target name="compile" depends="prepare" description=" - compiles test and main source">
        <CompileMain>
            <src path="${java.dir}" />
        </CompileMain>
        <CompileTests/>
    </target>

    <target name="jar" depends="compile" description=" - jars classes">
        <Jar name='util'/>    
    </target>

    <target name="run-tests" depends="jar" description=" - runs all tests">
        <RunTests/>
    </target>

    <target name="clean" description=" - cleans build files">
        <Clean/>
    </target>

    <target name="usage" description=" - prints help">
        <Usage/>
    </target>

</project>
