<?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="Top-Level property definitions" default="echo" basedir="..">
    <description>
        Ant file of common properties to be imported by other ant files.
        Property "hy.hdk" must be defined before this file is imported.
    </description>

    <property file="${user.home}/.harmony-classlib.properties" />

    <fail message="Property 'hy.hdk' is not defined">
        <condition>
            <not><isset property="hy.hdk" /></not>
        </condition>
    </fail>
    <property name="hy.jdk" location="${hy.hdk}/jdk" />
    <property name="hy.jre" location="${hy.jdk}/jre" />

    <!-- Debug or release version -->
    <property name="hy.cfg" value="debug" />
    <property name="hy.specification.version" value="1.5" />

    <!-- Javac properties -->
    <!-- Explicitly set to ECJ as the default compiler. -->
    <property name="hy.javac.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
    <property name="hy.javac.source" value="1.5" />
    <property name="hy.javac.target" value="1.5" />
    <property name="hy.javac.maxmem" value="384M" />
    <property name="hy.javac.debug" value="on" />
    <property name="hy.jar.compress" value="true" />
    <property name="build.compilerarg" value="-nowarn" />

    <!-- Include only stack trace information into release build -->
    <condition property="hy.javac.debuglevel" value="lines,vars,source" else="lines,source">
        <equals arg1="${hy.cfg}" arg2="debug" />
    </condition>

    <!-- During packaging, these files must be copied into the meta-inf dir -->
    <fileset id="hy.required.metainf-files" dir="${hy.hdk}">
        <include name="NOTICE" />
        <include name="LICENSE" />
    </fileset>

    <!-- Test run property -->
    <property name="hy.test.forkmode" value="once" />
    <property name="hy.test.timeout" value="900000" />
    <property name="hy.test.vmargs" value="" />
    <property name="hy.test.impl" value="true" />
    <condition property="hy.run.impl.tests" value="true">
        <istrue value="${hy.test.impl}" />
    </condition>

    <!-- Conditions for operating systems -->
    <condition property="is.windows">
        <os family="Windows" />
    </condition>
    <condition property="is.linux">
        <os name="linux" />
    </condition>
    <condition property="is.macosx">
        <os name="mac os x" />
    </condition>
    <condition property="is.freebsd">
        <os name="freebsd" />
    </condition>
    <condition property="is.aix">
        <os name="aix" />
    </condition>
    <condition property="is.unix">
        <os family="unix" />
    </condition>
    <condition property="is.zos">
        <os name="z/OS" />
    </condition>

    <!-- Normalized operating system family -->
    <condition property="hy.os.family" value="windows">
        <isset property="is.windows" />
    </condition>
    <property name="hy.os.family" value="unix" />

    <!-- Normalized operating system name -->

    <!-- this special case makes sense -->
    <condition property="hy.os" value="windows">
        <isset property="is.windows"/>
    </condition>
    <condition property="hy.os" value="linux">
        <os name="linux" />
    </condition>
    <condition property="hy.os" value="freebsd">
        <os name="freebsd" />
    </condition>
    <condition property="hy.os" value="macosx">
        <isset property="is.macosx"/>
    </condition>
    <condition property="hy.os" value="aix">
        <os name="aix" />
    </condition>
    <condition property="hy.os" value="zos">
        <isset property="is.zos"/>
    </condition>

    <property name="hy.os" value="${os.name}" />



    <!-- Conditions for different architectures -->
    <condition property="is.x86_64">
        <or>
            <equals arg1="x86_64" arg2="${os.arch}"/>
            <equals arg1="amd64" arg2="${os.arch}"/>
        </or>
    </condition>
    <condition property="is.x86">
	<and>
	    <not>
                <isset property="is.x86_64" />
            </not>
            <or>
                <equals arg1="x86" arg2="${os.arch}"/>
                <equals arg1="i386" arg2="${os.arch}"/>
                <equals arg1="i686" arg2="${os.arch}"/>
            </or>
        </and>
    </condition>
    <condition property="is.ia64">
        <equals arg1="ia64" arg2="${os.arch}"/>
    </condition>
    <condition property="is.ppc32">
        <or>
            <equals arg1="${os.arch}" arg2="ppc32" />
            <equals arg1="${os.arch}" arg2="ppc" />
        </or>
    </condition>
    <condition property="is.ppc64">
        <equals arg1="${os.arch}" arg2="ppc64" />
    </condition>
    <condition property="is.s390x">
        <equals arg1="${os.arch}" arg2="s390x" />
    </condition>
    <condition property="is.s390">
        <equals arg1="${os.arch}" arg2="s390" />
    </condition>

    <condition property="is.64bit">
        <or>
            <isset property="is.ia64" />
            <isset property="is.x86_64" />
            <isset property="is.ppc64" />
            <isset property="is.s390x" />
        </or>
    </condition>
    <condition property="is.32bit">
        <or>
            <isset property="is.x86" />
            <isset property="is.ppc32" />
            <isset property="is.s390" /> <!-- 31bit of course -->
        </or>
    </condition>
    <condition property="hy.bits" value="32">
        <isset property="is.32bit" />
    </condition>
    <property name="hy.bits" value="64" />

    <!-- Normalized architecture name -->
    <condition property="hy.arch" value="x86_64">
        <isset property="is.x86_64" />
    </condition>
    <condition property="hy.arch" value="x86">
        <and>
            <isset property="is.x86" />
            <isset property="is.32bit" />
        </and>
    </condition>
    <condition property="hy.arch" value="ppc32">
        <isset property="is.ppc32" />
    </condition>
    <property name="hy.arch" value="${os.arch}" />
    
    <!-- Normalized platform name -->
    <property name="hy.platform" value="${hy.os}.${hy.arch}"/>
    <property name="hy.platform.path" value="${hy.os}/${hy.arch}"/>

    <condition property="exe.suffix" value=".exe">
        <isset property="is.windows"/>
    </condition>
    <property name="exe.suffix" value="" />

    <condition property="shlib.prefix" value="">
        <isset property="is.windows"/>
    </condition>
    <property name="shlib.prefix" value="lib" />

    <condition property="shlib.suffix" value=".dll">
        <isset property="is.windows"/>
    </condition>
    <condition property="shlib.suffix" value=".dylib">
        <isset property="is.macosx"/>
    </condition>
    <property name="shlib.suffix" value=".so" />

    <condition property="progdb.suffix" value=".pdb">
        <isset property="is.windows" />
    </condition>

    <condition property="object.suffix" value=".obj">
        <isset property="is.windows" />
    </condition>
    <property name="object.suffix" value=".o" />

    <condition property="linklib.suffix" value=".lib">
        <isset property="is.windows"/>
    </condition>
    <condition property="linklib.suffix" value=".x">
        <isset property="is.zos" />
    </condition>
    <condition property="linklib.suffix" value=".dylib">
        <isset property="is.macosx"/>
    </condition>
    <property name="linklib.suffix" value=".so" />
    
    <condition property="shlib.is.linklib">
        <equals arg1="${shlib.suffix}" arg2="${linklib.suffix}"/>
    </condition>

    <property name="manifest.suffix" value=".manifest" />

    <condition property="make.command" value="nmake.exe">
        <isset property="is.windows"/>
    </condition>
    <condition property="make.command" value="gmake">
        <or>
            <isset property="is.aix"/>
            <isset property="is.freebsd"/>
            <isset property="is.zos"/>
        </or>
    </condition>
    <property name="make.command" value="make" />

    <condition property="make.arg" value="/nologo">
        <isset property="is.windows"/>
    </condition>
    <property name="make.arg" value="" />

    <condition property="make.suffix" value="mak">
        <isset property="is.windows"/>
    </condition>
    <property name="make.suffix" value="mk" />

    <condition property="png.home" value="/usr/local">
        <isset property="is.freebsd"/>
    </condition>
    <condition property="png.home" value="/opt/local">
        <isset property="is.macosx"/>
    </condition>
    <property name="png.home" value="/usr" />

    <condition property="lcms.home" value="/usr/local">
        <isset property="is.freebsd"/>
    </condition>
    <condition property="lcms.home" value="/opt/local">
        <isset property="is.macosx"/>
    </condition>
    <property name="lcms.home" value="/usr" />

    <condition property="jpeg.home" value="/usr/local">
        <isset property="is.freebsd"/>
    </condition>
    <condition property="jpeg.home" value="/opt/local">
        <isset property="is.macosx"/>
    </condition>
    <property name="jpeg.home" value="/usr" />
    
    <condition property="is.select" value="true">
        <istrue value="${hy.select}" />
    </condition>
    <condition property="is.not.select" value="true">
        <not><istrue value="${hy.select}" /></not>
    </condition>

    <!-- default property for poll-modules macro - i.e. all modules -->
    <property name="build.module" value="*" />
    <condition property="exclude.module"
            value="accessibility,applet,awt,imageio,orb,print,rmi,sound,swing">
        <istrue value="${hy.select}" />
    </condition>
    <property name="exclude.module" value="nothing" />
    <property name="build.java" value="true" />
    <property name="build.native" value="true" />
    <property name="build.test" value="true" />
    <condition property="skip.java.build" value="true">
        <equals arg1="${build.java}" arg2="false" />
    </condition>
    <condition property="skip.native.build" value="true">
        <equals arg1="${build.native}" arg2="false" />
    </condition>
    <condition property="skip.test.build" value="true">
        <equals arg1="${build.test}" arg2="false" />
    </condition>

    <!-- flags -->
    <property name="hy.no.thr" value="false" />
    <condition property="hy.skip.thr" value="true">
        <istrue value="${hy.no.thr}" />
    </condition>

    <property name="hy.thr.no.deploy" value="false" />
    <condition property="hy.thr.deploy" value="true">
        <equals arg1="${hy.thr.no.deploy}" arg2="false" />
    </condition>

    <property name="hy.local.zlib" value="false" />
    <condition property="hy.skip.zlib" value="true">
        <istrue value="${hy.local.zlib}" />
    </condition>

    <property name="hy.zip.api" value="false" />
    <condition property="hy.skip.zip.api" value="true">
        <isfalse value="${hy.zip.api}" />
     </condition>

    <condition property="hy.portlib.stubs" value="true">
        <or>
            <equals arg1="${hy.os}" arg2="aix" />
            <equals arg1="${hy.os}" arg2="zos" />
        </or>
    </condition>
    <property name="hy.portlib.stubs" value="false" />

    <condition property="hy.libstdc++.suffix" value=".libstdc++5">
        <isset property="use.libstdc++5"/>
    </condition>
    <property name="hy.libstdc++.suffix" value="" />

    <property name="hy.platform.variant"
              value="${hy.platform}${hy.libstdc++.suffix}" />

    <!-- fileset to represent classes built by a module. -->
    <fileset id="classes" dir="../../build/classes">
        <includesfile name="${hy.hdk}/build/ant/patternsets/${hy.module}.txt" />
    </fileset>

    <!-- fileset for resources of a module. -->
    <fileset id="resources" dir="src/main/java">
        <exclude name="**/*.java" />
    </fileset>

    <!-- fileset for resources of a module with platform-dependent code. -->
    <fileset id="common.resources" dir="src/main/java/common">
        <exclude name="**/*.java" />
    </fileset>

    <!-- test properties -->
    <property name="tests.output" location="../../build/test_report" />
    <property name="tests.hdk.dir" value="${hy.hdk}/build/test/${hy.module}" />
    <property name="tests.excludes.hdk.dir" value="${tests.hdk.dir}/excludes" />
    <property name="tests.resources.hdk.dir"
              value="${tests.hdk.dir}/resources" />

    <property name="findBugs.report" location="../../build/findbugs_report" />

    <target name="echo" depends="-svn-prop, -svn-info, test-jre-vm-info"
            description="Display the properties defined by this ant file" >
        <echo>
Harmony release configuration property:

  hy.cfg = ${hy.cfg}

Harmony javac properties:

  hy.javac.compiler = ${hy.javac.compiler}
  hy.javac.target = ${hy.javac.target}
  hy.javac.source = ${hy.javac.source}
  hy.javac.debug  = ${hy.javac.debug}
  hy.javac.maxmem = ${hy.javac.maxmem}
  build.compilerarg = ${build.compilerarg}

Harmony test properties:

    hy.test.forkmode = ${hy.test.forkmode}
    hy.test.timeout = ${hy.test.timeout}
    hy.test.vm.name = ${hy.test.vm.name}
    hy.test.vmargs = ${hy.test.vmargs}
    findbugs.available = ${findbugs.available}

Harmony platform properties:

  hy.os = ${hy.os}
  hy.os.family = ${hy.os.family}
  hy.arch = ${hy.arch}
  hy.bits = ${hy.bits}
  hy.platform = ${hy.platform}
  hy.platform.path = ${hy.platform.path}

  is.windows = ${is.windows}
  is.unix = ${is.unix}
  is.linux = ${is.linux}
  is.freebsd = ${is.freebsd}
  is.macosx = ${is.macosx}
  is.aix = ${is.aix}
  is.zos = ${is.zos}
  is.32bit = ${is.32bit}
  is.64bit = ${is.64bit}
  is.x86 = ${is.x86}
  is.x86_64 = ${is.x86_64}
  is.ia64 = ${is.ia64}
  is.ppc32 = ${is.ppc32}
  is.ppc64 = ${is.ppc64}
  is.s390 = ${is.s390}
  is.s390x = ${is.s390x}

  exe.suffix = ${exe.suffix}
  shlib.prefix = ${shlib.prefix}
  shlib.suffix = ${shlib.suffix}
  make.command = ${make.command}

  hy.hdk = ${hy.hdk}
  hy.jdk = ${hy.jdk}
  hy.jre = ${hy.jre}

The following property is only set if the "-svn-prop" target has been
called:

  svn.revision = ${svn.revision}


The following property is only set if the "-svn-info" target has been
called:

  svn.info = ${svn.info}

Ant native properties, for information, but please use Harmony
properties in preference to these:

  os.name = ${os.name}
  os.arch = ${os.arch}

        </echo>
    </target>

    <target name="-svn-prop" unless="svn.revision">
        <exec executable="svn">
            <arg value="--non-interactive" />
            <arg value="info" />
            <redirector outputproperty="svn.revision">
                <outputfilterchain>
                    <linecontains>
                        <contains value="Revision: " />
                    </linecontains>
                    <tokenfilter>
                        <replacestring from="Revision: " to=""/>
                    </tokenfilter>
                </outputfilterchain>
            </redirector>
        </exec>
    </target>

    <target name="-svn-info" unless="svn.info">
        <exec executable="svn"
              failifexecutionfails="false"
              resultproperty="svn.rc">
            <arg value="info" />
            <redirector outputproperty="svn.info.tmp">
                <outputfilterchain>
                    <linecontainsregexp>
                        <regexp pattern="Repository Root:|Revision:" />
                    </linecontainsregexp>
                    <tokenfilter>
                        <replacestring from="Repository Root: " to=""/>
                        <replacestring from="Revision: " to=" "/>
                    </tokenfilter>
                    <striplinebreaks/>
                </outputfilterchain>
            </redirector>
        </exec>
        <condition property="svn.info" value="${svn.info.tmp}" >
            <equals arg1="${svn.rc}" arg2="0" />
        </condition>
        <tstamp>
            <format property="svn.info" pattern="'Unknown revision at' dd-MMM-yyyy hh:mm aa"/>
        </tstamp>
    </target>

    <target name="test-jre-vm-info" depends="-get-test-vm-output">
        <echo level="info" message="java -version${line.separator}${test.vm.info.tmp}" />
        <!-- Add other runtime names here -->
        <condition property="hy.test.vm.name" value="ri" >
            <contains string="${test.vm.info.tmp}" substring="HotSpot"/>
        </condition>
        <condition property="hy.test.vm.name" value="jr" >
            <contains string="${test.vm.info.tmp}" substring="JRockit"/>
        </condition>
        <!-- FIXME current behavior relies on the fact that J9 VM doesn't
             support -version parameter -->
        <condition property="hy.test.vm.name" value="ibm" else="drl" >
            <contains string="${test.vm.info.tmp}" substring="IBM" casesensitive="false" />
        </condition>
        <echo level="info" message="hy.test.vm.name = ${hy.test.vm.name}" />
    </target>

    <target name="-get-test-vm-output">
        <condition property="test.jre.home" value="${hy.jre}">
            <not><isset property="test.jre.home" /></not>
        </condition>
        <exec executable="${test.jre.home}/bin/java" failifexecutionfails="false">
            <arg value="-version" />
            <redirector outputproperty="test.vm.info.tmp"/>
        </exec>
    </target>

    <macrodef name="poll-modules" 
        description="directory-based macros for polling sub-builds">
        <attribute name="target" />
        <attribute name="dir" default="modules" />
        <attribute name="includes" default="${build.module}"/>
        <attribute name="excludes" default="${exclude.module}"/>
        <attribute name="antfile" default="*.xml"/>
        <sequential>
            <!-- convert dirset pattern to fileset pattern-->
            <property name="@{dir}.loc" location="@{dir}"/>
            <pathconvert property="list.@{dir}.@{target}" 
                pathsep="${file.separator}@{antfile}," setonempty="no">
                <path>
                    <dirset dir="@{dir}"
                            includes="@{includes}"
                            excludes="@{excludes}">
                        <exclude name=".*" />
                    </dirset>
                </path>
                <map from="${@{dir}.loc}${file.separator}" to=""/>
            </pathconvert>
            <!-- append antfile suffix to last item in the list, if any -->
            <condition property="poll.@{dir}.@{target}"
                value="${list.@{dir}.@{target}}${file.separator}@{antfile}" 
                else="">
                <isset property="list.@{dir}.@{target}"/>
            </condition>
            <poll-build target="@{target}" dir="@{dir}" 
                includes="${poll.@{dir}.@{target}}"/>
        </sequential>
    </macrodef>

    <macrodef name="poll-build"
        description="plain-filter macros for polling sub-builds">
        <attribute name="target" />
        <attribute name="dir" />
        <attribute name="includes" default="**/*.xml"/>
        <attribute name="excludes" default=""/>
        <sequential>
            <echo message="polling @{includes}"/>
            <subant target="@{target}">
                <!-- TODO: modules probably need to work these properties
                     out for themselves in order to reduce coupling -->
                <property name="hy.test.vm.name" value="${hy.test.vm.name}"/>
                <property name="hy.hdk" value="${hy.hdk}"/>
                <property name="hy.select" value="${hy.select}"/>
                <property name="svn.revision" value="${svn.revision}"/>
                <property name="svn.info" value="${svn.info}"/>
                <property name="hy.no.thr" value="${hy.no.thr}"/>
                <property name="hy.zip.api" value="${hy.zip.api}"/>
                <fileset dir="@{dir}" includes="@{includes}" excludes="@{excludes}">
                    <containsregexp expression="&lt;target[^&gt;]*name=&quot;@{target}&quot;"/>
                </fileset>
            </subant>
        </sequential>
    </macrodef>

    <!-- macros for modules -->
    <!-- TOFIX move to a shared file in the HDK/build/make directory. -->

    <macrodef name="make">
        <attribute name="dir" />
        <attribute name="target" default="" />
        <element name="make-elements" optional="true" />
        <sequential>
            <echo>Making "@{target}" in @{dir}</echo>
            <echo file="${hy.hdk}/build/make/properties.${make.suffix}">
HY_ZIP_API=${hy.zip.api}
HY_PORTLIB_STUBS=${hy.portlib.stubs}
HY_CFG=${hy.cfg}
HY_ARCH=${hy.arch}
HY_OS=${hy.os}
HY_PLATFORM=${hy.platform}
HY_NO_THR=${hy.no.thr}
HY_THR_NO_DEPLOY=${hy.thr.no.deploy}
HY_LOCAL_ZLIB=${hy.local.zlib}
HY_SHLIB_SUFFIX=${shlib.suffix}
HY_LINKLIB_SUFFIX=${linklib.suffix}
            </echo>                
            <exec failonerror="true"
                  executable="${make.command}"
                  dir="@{dir}">
                <env key="HY_HDK" value="${hy.hdk}" />
                <arg line="${make.arg}" />
                <arg line="@{target}" />
                <make-elements />
            </exec>
        </sequential>
    </macrodef>


    <!-- To use with -Dtest.case=... option                   -->
    <!-- if ${test.case} is provided in package+class form    -->
    <!-- it is converted to dir+filename form                 -->
    <macrodef name="convert-test">
        <attribute name="from"/>
        <attribute name="to"/>
        <sequential>
            <pathconvert property="@{to}" setonempty="no">
                <path path="${@{from}}"/>
                <chainedmapper>
                    <filtermapper>
                        <replaceregex pattern="\.java$$"/>
                    </filtermapper>
                    <unpackagemapper from="${basedir}${file.separator}*" to="*.java"/>
                </chainedmapper>
            </pathconvert>
        </sequential>
    </macrodef>
    <convert-test from="test.case" to="converted.tc" />
    
    <!-- Concatenate several exclude lists into single list -->
    <macrodef name="prepare-exclude-list">
       <attribute name="moduleName"/>
       <!-- directory with exclude lists for the module -->
       <attribute name="dir"/>
       <!-- name of concatenated list, should be an absolute pathname -->
       <attribute name="result"/>
       <sequential>
            <!-- names of exclude lists, used by prepare-exclude-list macro -->
            <property name="common.exclude.file" value="exclude.common" />
            <property name="common.exclude.interm" value="exclude.interm" />
            <property name="platform.exclude.file"
                      value="exclude.${hy.platform}.${hy.test.vm.name}" />
            <property name="platform.exclude.interm"
                      value="exclude.${hy.platform}.${hy.test.vm.name}.interm"
            />

            <dirname file="@{result}" property="@{result}.dir" />
            <mkdir dir="${@{result}.dir}" />

           <echo message="" file="@{result}"/>
           <concat destfile="@{result}" force="yes" fixlastline="yes" append="true">
               <fileset dir="@{dir}">
                   <include name="${common.exclude.file}"/> 
                   <include name="${platform.exclude.file}"/>
                   <include name="${common.exclude.interm}" if="exclude.interm" />
                   <include name="${platform.exclude.interm}" if="exclude.interm" />
                   <size value="0" when="more"/>
               </fileset>
           </concat>
       </sequential>
   </macrodef>
    
    <macrodef name="ensure-javac">
        <sequential>
            <fail>
                <condition>
                    <and>
                        <equals arg1="${hy.javac.compiler}" arg2="org.eclipse.jdt.core.JDTCompilerAdapter"/>
                        <not>
                            <available classname="${hy.javac.compiler}"/>
                        </not>
                    </and>
                </condition>
The Eclipse compiler class for Ant could not be found. Please place the ECJ JAR in ANT_HOME/lib.
The JAR can be downloaded directly from eclipse.org or copied from common_resources/depends/jars/ecj_3.x folder after the fetch-depends target for jdktools has been run.
Alternatively, you can switch to another compiler, e.g. specify '-Dhy.javac.compiler=modern' for classic javac.                
            </fail>
        </sequential>
    </macrodef>
   
    <presetdef name="hy.javac">
        <javac compiler="${hy.javac.compiler}"
               memoryMaximumSize="${hy.javac.maxmem}"
               source="${hy.javac.source}"
               target="${hy.javac.target}"
               debug="${hy.javac.debug}"
               debuglevel="${hy.javac.debuglevel}"
               includeantruntime="false">
            <compilerarg line="${build.compilerarg}" />
        </javac>
    </presetdef>

    <presetdef name="hy.jar.bin">
        <jar compress="${hy.jar.compress}">
            <manifest>
                <attribute name="Implementation-Title" value="Apache Harmony"/>
                <attribute name="Implementation-Vendor"
                           value="The Apache Software Foundation"/>
                <attribute name="Implementation-Vendor-Id"
                           value="org.apache.harmony"/>
                <attribute name="Implementation-URL"
                           value="http://harmony.apache.org"/>
                <attribute name="Implementation-Version" value="${svn.info}"/> 
                <attribute name="Specification-Vendor"
                           value="Sun Microsystems, Inc." />
                <attribute name="Specification-Title"
                           value="Java Platform API Specification" />
                <attribute name="Specification-Version"
                           value="${hy.specification.version}" />
                <attribute name="X-Compile-Source-JDK"
                           value="${hy.javac.source}"/> 
                <attribute name="X-Compile-Target-JDK"
                           value="${hy.javac.target}"/> 
            </manifest>
            <metainf refid="hy.required.metainf-files"/>
        </jar>
    </presetdef>

    <presetdef name="hy.jar.src">
        <jar compress="${hy.jar.compress}">
            <manifest>
                <attribute name="Implementation-Title" value="Apache Harmony"/>
                <attribute name="Implementation-Vendor"
                           value="The Apache Software Foundation"/>
                <attribute name="Implementation-Vendor-Id"
                           value="org.apache.harmony"/>
                <attribute name="Implementation-URL"
                           value="http://harmony.apache.org"/>
                <attribute name="Implementation-Version" value="${svn.info}"/> 
                <attribute name="Specification-Vendor"
                           value="Sun Microsystems, Inc." />
                <attribute name="Specification-Title"
                           value="Java Platform API Specification" />
                <attribute name="Specification-Version"
                           value="${hy.specification.version}" />
            </manifest>
            <metainf refid="hy.required.metainf-files"/>
        </jar>
    </presetdef>
   
    <macrodef name="compile-classes">
        <attribute name="description" default="" />
        <attribute name="destdir" default="../../build/classes" />
        <element name="javac-elements" />
        <sequential>
            <echo message="Compiling @{description}" />
            
            <mkdir dir="@{destdir}" />

            <hy.javac sourcepath="" destdir="@{destdir}">
                <javac-elements />
                <compilerarg line="${build.compilerarg}" />
                <bootclasspath>
                    <fileset dir="${hy.jre}/lib/boot">
                        <include name="**/*.jar" />
                    </fileset>
                </bootclasspath>
            </hy.javac>
        </sequential>
    </macrodef>

    <macrodef name="compile-tests">
        <attribute name="description" default="" />
        <attribute name="destdir" default="bin/test" />
        <element name="javac-elements" />
        <sequential>
            <echo message="Compiling @{description}" />
            
            <mkdir dir="@{destdir}" />

            <mkdir dir="${hy.hdk}/build/test" />
            <copy file="${junit.jar}"
                  tofile="${hy.hdk}/build/test/junit.jar" />
            <copy file="${hamcrest-library.jar}"
                  tofile="${hy.hdk}/build/test/hamcrest-library.jar" />
            
            <hy.javac destdir="@{destdir}">

                <javac-elements />

                <compilerarg line="${build.compilerarg}" />

                <bootclasspath>
                    <fileset dir="${hy.jre}/lib/boot">
                        <include name="**/*.jar" />
                    </fileset>
                </bootclasspath>

                <classpath location="../../build/classes" />
                <classpath location="${hy.hdk}/build/test/junit.jar" />
                <classpath
                     location="${hy.hdk}/build/test/hamcrest-library.jar" />
                <classpath location="${hy.hdk}/build/test/support.jar" />
            </hy.javac>
        </sequential>
    </macrodef>

    <macrodef name="run-hdk-tests">
        <attribute name="module" />
        <attribute name="jar" />
        <element name="junit-elements" optional="true"/>
        <element name="excludeorinclude" optional="true"/>
        <sequential>
            <echo message="Running @{module} Unit Test from @{jar}" />
            <echo message="Tested jre: ${test.jre.home}/bin/java" />
            <property name="test.module.dir" value="${target.dir}/@{module}" />
            <property name="test.excludes.dir" value="${test.module.dir}/excludes" />
            <property name="test.resources.dir" value="${test.module.dir}/resources" />
            <property name="module.work.dir" location="${work.dir}/@{module}" />
            <property name="test.exclude.file" value="${module.work.dir}/test.exclude" />

            <property name="module.temp.dir"
                      location="${work.dir}/@{module}/temp" />
            <property name="junit.tempdir"
                      location="${module.temp.dir}/ant" />
            <property name="junit.java.io.tmpdir"
                      location="${module.temp.dir}/tmpdir" />
            <property name="junit.user.home"
                      location="${module.temp.dir}/user" />
            
            <mkdir dir="${tests.output}" /> 
            <mkdir dir="${junit.tempdir}" />
            <mkdir dir="${junit.java.io.tmpdir}" />
            <mkdir dir="${junit.user.home}" />

            <prepare-exclude-list moduleName="@{module}" dir="${test.excludes.dir}" result="${test.exclude.file}" />
            <junit fork="yes" 
                   forkmode="${hy.test.forkmode}" 
                   timeout="${hy.test.timeout}" 
                   printsummary="withOutAndErr" 
                   errorproperty="test.errors" 
                   failureproperty="test.failures" 
                   showoutput="on" 
                   dir="${work.dir}/@{module}" 
                   tempdir="${junit.tempdir}"
                   jvm="${test.jre.home}/bin/java">

                <jvmarg line="-Djava.io.tmpdir=${junit.java.io.tmpdir}" />
                <jvmarg line="-Duser.home=${junit.user.home}" />

                <classpath>
                    <fileset dir="${target.dir}">
                        <include name="*.jar" />
                    </fileset>
                    <pathelement path="${test.resources.dir}/" />
                    <pathelement path="${test.module.dir}/" />
                    <pathelement location="${test.module.dir}/@{jar}" />
                </classpath>

                <junit-elements />

                <batchtest todir="${tests.output}" haltonfailure="no">
                    <zipfileset src="${test.module.dir}/@{jar}" encoding="UTF-8">
                        <exclude name="Test.class" />
                        <exclude name="**/*$*" />

                        <!-- if ${test.case}     -->
                        <include name="${converted.tc.class}" if="test.case" />
                        <!-- unless ${test.case} -->
                        <include name="**/*Test.class" unless="test.case" />
                        <excludesfile name="${test.exclude.file}" unless="test.case"/>
                        <excludeorinclude/>
                    </zipfileset>
                </batchtest>

                <assertions enableSystemAssertions="true">
                    <enable />
                </assertions>

                <jvmarg line="${hy.test.vmargs}" />
                <!-- Used by Support_Exec.execJava() -->
                <jvmarg value="-Dhy.test.vmargs=${hy.test.vmargs}" />

                <formatter type="xml" />
            </junit>

            <delete dir="${module.temp.dir}"
                    includeemptydirs="true" failonerror="false" />

            <antcall target="touch-failures-file">
                <param name="module" value="@{module}" />
            </antcall>
            <antcall target="touch-errors-file">
                <param name="module" value="@{module}" />
            </antcall>

        </sequential>
    </macrodef>

    <!-- TOFIX: Can't seem to override the line:
             <include name="**/*Test.class" unless="test.case" />
         so this is just run-hdk-tests without that line -->
    <macrodef name="run-selected-hdk-tests">
        <attribute name="module" />
        <attribute name="jar" />
        <element name="junit-elements" optional="true"/>
        <element name="excludeorinclude" optional="true"/>
        <sequential>
            <echo message="Running @{module} Unit Test from @{jar}" />
            <echo message="Tested jre: ${test.jre.home}/bin/java" />
            <property name="test.module.dir" value="${target.dir}/@{module}" />
            <property name="test.excludes.dir" value="${test.module.dir}/excludes" />
            <property name="test.resources.dir" value="${test.module.dir}/resources" />
            <property name="module.work.dir" location="${work.dir}/@{module}" />
            <property name="test.exclude.file" value="${module.work.dir}/test.exclude" />

            <property name="module.temp.dir"
                      location="${work.dir}/@{module}/temp" />
            <property name="junit.tempdir"
                      location="${module.temp.dir}/ant" />
            <property name="junit.java.io.tmpdir"
                      location="${module.temp.dir}/tmpdir" />
            <property name="junit.user.home"
                      location="${module.temp.dir}/user" />
            
            <mkdir dir="${tests.output}" /> 
            <mkdir dir="${junit.tempdir}" />
            <mkdir dir="${junit.java.io.tmpdir}" />
            <mkdir dir="${junit.user.home}" />

            <prepare-exclude-list moduleName="@{module}" dir="${test.excludes.dir}" result="${test.exclude.file}" />
            <junit fork="yes" 
                   forkmode="${hy.test.forkmode}" 
                   timeout="${hy.test.timeout}" 
                   printsummary="withOutAndErr" 
                   errorproperty="test.errors" 
                   failureproperty="test.failures" 
                   showoutput="on" 
                   dir="${work.dir}/@{module}" 
                   tempdir="${junit.tempdir}"
                   jvm="${test.jre.home}/bin/java">

                <jvmarg line="-Djava.io.tmpdir=${junit.java.io.tmpdir}" />
                <jvmarg line="-Duser.home=${junit.user.home}" />

                <classpath>
                    <fileset dir="${target.dir}">
                        <include name="*.jar" />
                    </fileset>
                    <pathelement path="${test.resources.dir}/" />
                    <pathelement path="${test.module.dir}/" />
                    <pathelement location="${test.module.dir}/@{jar}" />
                </classpath>

                <junit-elements />

                <batchtest todir="${tests.output}" haltonfailure="no">
                    <zipfileset src="${test.module.dir}/@{jar}" encoding="UTF-8">
                        <exclude name="Test.class" />
                        <exclude name="**/*$*" />

                        <!-- if ${test.case}     -->
                        <include name="${converted.tc.class}" if="test.case" />
                        <!-- unless ${test.case} -->
                        <excludesfile name="${test.exclude.file}" unless="test.case"/>
                        <excludeorinclude/>
                    </zipfileset>
                </batchtest>

                <assertions enableSystemAssertions="true">
                    <enable />
                </assertions>

                <jvmarg line="${hy.test.vmargs}" />
                <!-- Used by Support_Exec.execJava() -->
                <jvmarg value="-Dhy.test.vmargs=${hy.test.vmargs}" />

                <formatter type="xml" />
            </junit>

            <delete dir="${module.temp.dir}"
                    includeemptydirs="true" failonerror="false" />

            <antcall target="touch-failures-file">
                <param name="module" value="@{module}" />
            </antcall>
            <antcall target="touch-errors-file">
                <param name="module" value="@{module}" />
            </antcall>

        </sequential>
    </macrodef>

    <target name="touch-failures-file" if="test.failures">
        <echo file="${tests.output}/test.failures"
            append="true">${module}${line.separator}</echo>
    </target>

    <target name="touch-errors-file" if="test.errors">
        <echo file="${tests.output}/test.errors"
            append="true">${module}${line.separator}</echo>
    </target>

    <!-- To use with -Dtest.case=... option                   -->
    <!-- if ${test.case} is provided in package+class form    -->
    <!-- it is converted to dir+filename form                 -->
    <macrodef name="convert-test-as-class">
        <attribute name="from" />
        <attribute name="to" />
        <sequential>
            <pathconvert property="@{to}" setonempty="no">
                <path path="${@{from}}" />
                <chainedmapper>
                    <filtermapper>
                        <replaceregex pattern="\.java$$" />
                    </filtermapper>
                    <unpackagemapper from="${basedir}${file.separator}*" to="*.class" />
                </chainedmapper>
            </pathconvert>
        </sequential>
    </macrodef>

    <macrodef name="make-patternset">
        <attribute name="source" default="src/main" />
        <attribute name="module" />
        <attribute name="file"
                   default="${hy.hdk}/build/ant/patternsets/@{module}.txt" />
        <sequential>
            <dirname file="@{file}" property="@{file}.dir" />
            <mkdir dir="${@{file}.dir}" />
            <property name="@{source}.loc" location="@{source}"/>

            <pathconvert targetos="unix" property="@{file}.content"
                         pathsep="${line.separator}">
                <fileset dir="${@{source}.loc}" includes="java*/**/*.java" />
                <map from="${@{source}.loc}/java/unix/" to="" />
                <map from="${@{source}.loc}/java/windows/" to="" />
                <map from="${@{source}.loc}/java/common/" to="" />
                <map from="${@{source}.loc}/java5/" to="" />
                <map from="${@{source}.loc}/java/" to="" />
                <compositemapper>
                    <mapper type="regexp" from="^(.*)\.java$$" to="\1.*"/>
                    <mapper type="regexp" from="^(.*)\.java$$" to="\1$*.*"/>
                </compositemapper>
            </pathconvert>
            <echo message="${@{file}.content}${line.separator}"
                  file="@{file}" />
        </sequential>
    </macrodef>

    <macrodef name="delete-patternset">
        <attribute name="module" />
        <sequential>
            <delete file="${hy.hdk}/build/ant/patternsets/@{module}.txt" />
        </sequential>
    </macrodef>

    <macrodef name="run-findBugs">
       <attribute name="outputFile"/>
       <attribute name="excludeFilter"/>
       <attribute name="jarFile"/>
       <sequential>
           <!-- Find and define findbugs task -->
           <property name="findbugs.home" location="${basedir}/../../depends/oss/findbugs-1.3.9"/>
           <available
               classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
               classpath="${findbugs.home}/lib/findbugs-ant.jar"
               property="findbugs.available"/>
           <taskdef
               name="findbugs"
               classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
               classpath="${findbugs.home}/lib/findbugs-ant.jar"
               onerror="ignore"/>
          <fail message="FindBugs is unavailable" unless="findbugs.available"/>

          <!-- Run findbugs using the attributes given -->
          <dirname file="@{outputFile}" property="@{outputFile}.dir" />
          <mkdir dir="${@{outputFile}.dir}" />
          <findbugs home="${findbugs.home}"
            output="xml"
            outputFile="@{outputFile}"
            excludeFilter="@{excludeFilter}"
            jvmargs="-Xmx512M"
            workhard="true">
            <auxClasspath>
                <fileset dir="${hy.jdk}/jre/lib/boot">
                    <include name="**/*.jar" />
                </fileset>
            </auxClasspath>
            <sourcePath path="src/main/java" />
            <sourcePath path="src/main/java5" />
            <sourcePath path="src/main/java/common" />
            <sourcePath path="src/main/java/${hy.os.family}" />
            <class location="@{jarFile}" />
        </findbugs>
       </sequential>
    </macrodef>

</project>
