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

<!DOCTYPE project [
<!-- ===========================================================================

                       * =========================== *
                       |  Apache Lenya Build System |
                       * =========================== *

       CVS $Id$:

============================================================================ -->

]>

<project default="webapp" basedir="." name="lenya">

  <!-- ==================  Apache Lenya targets  ======================== -->

  <!-- =================================================================== -->
  <!-- Global properties  -->
  <import file="src/targets/properties-build.xml" />
  <!-- Initialization targets  -->
  <import file="src/targets/init-build.xml" />
  <!-- IDE targets             --> 
  <import file="src/targets/ide-build.xml" />
  <!-- Compile targets         --> 
  <import file="src/targets/compile-build.xml" />
  <!-- Documentation targets   --> 
  <import file="src/targets/docs-build.xml" />
  <!-- Web application targets -->
  <import file="src/targets/webapp-build.xml" />
  <!-- Testcases targets       -->
  <import file="src/targets/test-build.xml" />
  <!-- Distribution targets    -->
  <import file="src/targets/dist-build.xml" />
  <!-- Kupu targets            -->
  <import file="src/targets/kupu-build.xml" />
  <!-- Export targets          -->
  <import file="src/targets/export-build.xml" />
  <!-- module targets          -->
  <import file="src/targets/modules-build.xml" />
  <!-- migration targets          -->
  <import file="src/targets/migration-build.xml" />
  <!-- Publication tests       -->
  <import file="src/targets/publication-test-build.xml" />
  <!-- Successfully Built Message       -->
  <import file="src/targets/message-build.xml" />
  <!-- =================================================================== -->

</project>
