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

<!-- ====================================================================== 
     Build source and lay out results in the required format
     ====================================================================== -->
<project name="common-resources" default="fetch-depends" basedir=".">
    <description>
    	Fetch common resources 
    </description>

    <target name="help">
        <echo>
Apache Harmony Ant Build

Usage:

  ant fetch-depends
    Fetches all the common dependencies

  ant clean
    Removes all the files fetched


  ant properties
    Display the common properties that are use in the ant build files.

        </echo>
    </target>

    <import file="${basedir}/make/properties.xml" />

    <target name="clean" description="Removes all the files generated by a build" >
        <echo>TODO - not yet implemented</echo>
    </target>        

    <target name="check-depends"
            description="Report on whether the dependencies are met">
    </target>

    <target name="fetch-depends"
        description="Fetches dependencies. Note: Some of Harmony's dependencies are licensed under terms other than the Apache License v2.">
    </target>

    <target name="properties" depends="echo"
        description="Display the properties that are use in the ant build files" />
    
</project>

