<?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="etch-xml-binding" basedir="." default="help">
    <description>Etch-to-XML Binding</description>
    <property name="Etch.basedir" location="${basedir}/.." />
    <import file="${Etch.basedir}/build-support/etch.common.xml" />

    <!-- standard, supported targets -->
    <target name="Debug"         depends="debug" />
    <target name="Release"       depends="release" />
    <target name="Clean"         depends="clean" />
    <target name="debug"         depends="init-debug,component-all,post-debug"   />
    <target name="release"       depends="init-release,component-all,post-release" />
    <target name="clean"         depends="init-clean,component-all,post-clean" />
    <target name="maven-install" depends="init-maven,release" />

    <target name="init-maven" >
        <property name="DO.maven.install" value="true" />
    </target>

    <target name="validate-dependencies" >
        <mkdir dir="${Etch.logDirectory}" />
    </target>

    <target name="init-debug" depends="validate-dependencies" >
        <property name="Etch.build.target" value="Debug" />
        <property name="Etch.javac.debug" value="on" />
        <property name="Etch.javac.optimize" value="off" />
    </target>

    <target name="post-debug" >
    </target>

    <target name="init-release" depends="validate-dependencies">
        <!-- For now, keep debug-symbols and no-optimize, even for release builds -->
        <property name="Etch.build.target" value="Release" />
        <property name="Etch.javac.debug"  value="on" />
        <property name="Etch.javac.optimize" value="off" />
        <!--
        <property name="Etch.javac.debug"  value="off" />
        <property name="Etch.javac.optimize" value="on" />
        -->
    </target>
    
    <target name="post-release" >
    </target>

    <target name="init-clean" depends="validate-dependencies">
        <property name="Etch.build.target" value="Clean" />
    </target>

    <target name="post-clean" >
        <echo message="Executing clean" />
    </target>

    <target name="component-all" >
        <build_component dir="compiler" />
        <!-- <build_component dir="compiler" /> -->
    </target>

</project>
