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

<!-- ==================================================================== -->
<!--                       Derby build file                          -->
<!-- ==================================================================== -->

<project default="FTOtestsubdir" basedir="../../../../../../../.." >

<!-- ==================================================================== -->
<!--                           Set properties                             -->
<!-- ==================================================================== -->

  <!-- User settings -->
  <property file="${user.home}/ant.properties"/>

  <!-- Set property lib dir -->
  <property name="properties.dir" value="tools/ant/properties" />

  <!-- Significant dirs -->
  <property file="${properties.dir}/dirs.properties"/>
  <property file="${properties.dir}/derbytesting.properties"/>

  <!-- Compiler settings -->
  <property file="${properties.dir}/sane${sanity}.properties"/>
  <property file="${properties.dir}/defaultcompiler.properties"/>
  <property file="${properties.dir}/${build.compiler}.properties"/>

  <!-- Parser properties -->
  <!--property file="${properties.dir}/parser.properties"/-->

  <!-- Compile-time classpath properties files -->
  <property file="${properties.dir}/extrapath.properties"/>
  <property file="${properties.dir}/compilepath.properties"/>

  <!-- Release and Version info -->
  <property file="${properties.dir}/release.properties"/>

  <!-- derby testing specific properties files -->
  <property file="${ant.home}/properties/derbytesting.properties"/>
  <property file="${user.home}/properties/derbytesting.properties"/>
  <property name="this.dir" value="${derby.testing.functest.dir}/tests/upgradeTests"/>

<!--             ============ Begin Targets ==============                -->
 
  <target name="FTOtestsubdir" depends="compilet1"/>

  <!-- mkdir / init target may not be necessary, just here for reference... -->
  <target name="init">
    <mkdir dir="${out.dir}/${derby.testing.functest.dir}/tests/upgradeTests"/>
  </target>

  <target name="compilet1">
    <javac
      source="${min.version}"
      target="${min.version}"
      nowarn="on"
      debug="true"
      depend="${depend}"
      deprecation="${deprecation}"
      optimize="${optimize}"
      proceed="${proceed}"
      verbose="${verbose}" 
      srcdir="${derby.testing.src.dir}"
      destdir="${out.dir}">
      <classpath>
        <pathelement path="${junit}"/>
      </classpath>
      <include name="${this.dir}/*.java"/>
      <compilerarg value="-Xlint:unchecked"/>
      <compilerarg value="-Xlint:deprecation"/>
    </javac>
  </target>


<!--             ============= End Targets ==============                -->

<!--             ============= End Project ==============                -->

</project>

