<?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.
-->

<!-- $Id$ -->

<project name="lenya-compile">

  <description>
    Compilation Targets
  </description>
  
  <!-- compile and package a specific source directory -->
  <target name="compile-src">
    
    <property name="compile.src.dir" value=""/>
    <property name="compile.dest.dir" value=""/>
    <property name="compile.classpath" value=""/>
    <property name="jar.name" value=""/>
    
    <!-- DEBUG classpath -->
    <!--
      <property name="classpath.compile" refid="classpath"/>
      <echo>CLASSPATH : ${classpath.compile}</echo>
    -->

    <mkdir dir="${compile.dest.dir}"/>
    
    <!--  copy properties, xml configuration files and roles -->
    <copy todir="${compile.dest.dir}">
      <fileset dir="${compile.src.dir}">
        <include name="**/*.properties"/>
        <include name="**/*.roles"/>
        <include name="**/*.xml"/>
        <include name="**/*.rng"/>
      </fileset>
    </copy>
    
    <javac destdir="${compile.dest.dir}"
      debug="${debug}"
      optimize="${optimize}"
      deprecation="${deprecation}"
      target="${target.vm}"
      nowarn="${nowarn}"
      source="${src.java.version}">
      <src path="${compile.src.dir}"/>
      <classpath refid="${compile.classpath}"/>
    </javac>

    <jar jarfile="${build.webapp}/WEB-INF/lib/${fullname}-${jar.name}.jar" index="true">
      <fileset dir="${compile.dest.dir}">
        <exclude name="**/Manifest.mf"/>
      </fileset>
    </jar>
  </target>
  
  
</project>
