<?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="Cloud Stack ELB network element" default="help" basedir=".">
  <description>
		Cloud Stack ant build file
    </description>

  <dirname property="elb.base.dir" file="${ant.file.Cloud Stack ELB network element}/"/>
  <!-- This directory must be set -->
  <property name="top.dir" location="${elb.base.dir}/../../.."/>
  <property name="build.dir" location="${top.dir}/build"/>
	
	<echo message="build.dir=${build.dir}; top.dir=${top.dir}; elb.base.dir=${elb.base.dir}"/>

  <!-- Import anything that the user wants to set-->
  <!-- Import properties files and environment variables here -->

  <property environment="env" />

  <condition property="build-cloud.properties.file" value="${build.dir}/override/build-cloud.properties" else="${build.dir}/build-cloud.properties">
    <available file="${build.dir}/override/build-cloud.properties" />
  </condition>

  <condition property="cloud.properties.file" value="${build.dir}/override/cloud.properties" else="${build.dir}/cloud.properties">
    <available file="${build.dir}/override/cloud.properties" />
  </condition>

  <condition property="override.file" value="${build.dir}/override/replace.properties" else="${build.dir}/replace.properties">
    <available file="${build.dir}/override/replace.properties" />
  </condition>

  <echo message="Using build parameters from ${build-cloud.properties.file}" />
  <property file="${build-cloud.properties.file}" />

  <echo message="Using company info from ${cloud.properties.file}" />
  <property file="${cloud.properties.file}" />

  <echo message="Using override file from ${override.file}" />
  <property file="${override.file}" />

  <property file="${build.dir}/build.number" />

  <!-- In case these didn't get defined in the build-cloud.properties -->
  <property name="branding.name" value="default" />
  <property name="deprecation" value="off" />
  <property name="target.compat.version" value="1.6" />
  <property name="source.compat.version" value="1.6" />
  <property name="debug" value="true" />
  <property name="debuglevel" value="lines,source"/>

  <echo message="target.dir=${target.dir}; top.dir=${top.dir}"/>
  <!-- directories for build and distribution -->
  <property name="target.dir" location="${top.dir}/target" />
  <property name="classes.dir" location="${target.dir}/classes" />
  <property name="jar.dir" location="${target.dir}/jar" />
  <property name="dep.cache.dir" location="${target.dir}/dep-cache" />
  <property name="build.log" location="${target.dir}/ant_verbose.txt" />

  <property name="deps.dir" location="${top.dir}/deps" />
  
  <property name="cloud-plugin-elb.jar" value="cloud-plugin-elb.jar" />
	
  <import file="${build.dir}/build-common.xml"/>

  <echo message="target.dir=${target.dir}; top.dir=${top.dir}"/>
	
  <!-- This section needs to be replaced by some kind of dependency library-->
  <path id="deps.classpath">
    <!--filelist files="${deps.classpath}" /-->
    <fileset dir="${deps.dir}" erroronmissingdir="false">
      <include name="*.jar" />
    </fileset>
  </path>
	
  <path id="cloudstack.classpath">
  	<fileset dir="${jar.dir}">
  	  <include name="*.jar"/>
    </fileset>
  </path>
	
  <path id="elb.classpath">
	<path refid="deps.classpath"/>
  	<path refid="cloudstack.classpath"/>
  </path>
	
  <!-- This section needs to be replaced by some kind of dependency library-->

  <target name="deploy-elb" >
  </target>

  <target name="init" description="Initialize binaries directory">
  	<mkdir dir="${classes.dir}/${cloud-plugin-elb.jar}"/>
  	<mkdir dir="${jar.dir}"/>
  </target>

  <target name="compile-elb" depends="init" description="Compile ELB">
    <compile-java jar.name="${cloud-plugin-elb.jar}" top.dir="${elb.base.dir}" classpath="elb.classpath" />
  </target>

  <target name="clean-elb">
    <delete dir="${classes.dir}/${cloud-plugin-elb.jar}"/>
  </target>
	
  <target name="build" depends="compile-elb"/>
  <target name="clean" depends="clean-elb"/>

  <target name="help" description="help">
    <echo level="info" message="This is the build file for ELB network element plugin"/>
    <echo level="info" message="You can do a build by doing ant build or clean by doing ant clean" />
  </target>

</project>
