<!--
 ! ASM: a very small and fast Java bytecode manipulation framework
 ! Copyright (c) 2000-2011 INRIA, France Telecom
 ! All rights reserved.
 !
 ! Redistribution and use in source and binary forms, with or without
 ! modification, are permitted provided that the following conditions
 ! are met:
 ! 1. Redistributions of source code must retain the above copyright
 !    notice, this list of conditions and the following disclaimer.
 ! 2. Redistributions in binary form must reproduce the above copyright
 !    notice, this list of conditions and the following disclaimer in the
 !    documentation and/or other materials provided with the distribution.
 ! 3. Neither the name of the copyright holders nor the names of its
 !    contributors may be used to endorse or promote products derived from
 !    this software without specific prior written permission.
 !
 ! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 ! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 ! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ! ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 ! LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 ! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 ! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 ! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 ! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 ! THE POSSIBILITY OF SUCH DAMAGE.
-->

<project name="Examples" default="compile">

  <!-- directory definition -->

  <property name="src"          value="${basedir}/src"/>
  <property name="build"        value="${basedir}/build"/>

  <property file="${basedir}/../etc/build.properties"/>
  <property file="${basedir}/etc/build.properties"/>
  <property file="${basedir}/etc/execute.properties"/>

  <!-- Building of a path which contains external jars -->

  <path id="classpath">
    <pathelement path="${asm.path}"/>
    <pathelement path="${asm.tree.path}"/>
    <pathelement path="${asm.analysis.path}"/>
    <pathelement path="${asm.attrs.path}"/>
    <pathelement path="${asm.util.path}"/>
    <fileset dir="${basedir}">
      <include name="lib/**/*.jar"/>
    </fileset>
    <fileset dir="${basedir}/..">
      <include name="lib/**/*.jar"/>
    </fileset>
    <pathelement location="${build}"/>
  </path>

  <!-- ================================== -->
  <!--              EXECUTE               -->
  <!-- ================================== -->

  <target name="execute" depends="compile">
    <java classname="${run.classname}"
      classpathref="classpath" fork="yes" failonerror="yes">
       <arg line="${run.parameters}"/>
    </java>
  </target>

  <!-- ================================== -->
  <!--              COMPILE               -->
  <!-- ================================== -->

  <target name="compile">
    <mkdir dir="${build}"/>
    <javac srcdir="${src}" destdir="${build}" debug="on" source="1.5" target="1.5">
      <classpath refid="classpath"/>
      <include name="**/*.java"/>
    </javac>
  </target>

  <!-- ================================== -->
  <!--               CLEAN                -->
  <!-- ================================== -->

  <target name="clean">
    <delete dir="${build}"/>
  </target>
</project>
