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

-->

<project name="falcon" default="main" basedir=".">

    <property file="${basedir}/env.properties"/>
    <property environment="env"/>
    <property file="${basedir}/local.properties"/>
    <property file="${basedir}/build.properties"/>

    <property name="kit.prefix" value="apache-flex-falcon-${release.version}"/>
    <property name="kit.jx.prefix" value="apache-flex-falconjx-${release.version}"/>
    <property name="source.kit" value="${kit.prefix}-src"/>
    <property name="binary.kit" value="${kit.prefix}-bin"/>
    <property name="source.jx.kit" value="${kit.jx.prefix}-src"/>
    <property name="binary.jx.kit" value="${kit.jx.prefix}-bin"/>

    <target name="check-typedefs-home"
        description="Check FLEXJS_TYPEDEFS_HOME">
        
        <echo message="FLEXJS_TYPEDEFS_HOME is ${env.FLEXJS_TYPEDEFS_HOME}"/>
        
        <available file="${env.FLEXJS_TYPEDEFS_HOME}"
        type="dir"
        property="FLEXJS_TYPEDEFS_HOME"
        value="${env.FLEXJS_TYPEDEFS_HOME}" />
        
        <available file="${basedir}/../flex-typedefs"
        type="dir"
        property="FLEXJS_TYPEDEFS_HOME"
        value="${basedir}/../flex-typedefs" />
        
        <available file="${basedir}/flex-typedefs"
        type="dir"
        property="FLEXJS_TYPEDEFS_HOME"
        value="${basedir}/flex-typedefs" />
        
        <fail message="The environment variable FLEXJS_TYPEDEFS_HOME is not set to a directory"
        unless="FLEXJS_TYPEDEFS_HOME"/>
        
    </target>

    <!--
     Optional jars but should be in place for a real release build.
     
     For <grep> put AntelopeTasks_*.jar in this path.
     See version-update.
     
     For <rat> apache-rat-0.8.jar and apache-rat-tasks-0.8.jar should be in classpath.
     See rat-check.
     -->
    <path id="anttask.classpath">
        <fileset dir="${env.ANT_HOME}/lib">
            <include name="**/AntelopeTasks_*.jar"/>
            <include name="**/apache-rat*.jar"/>
        </fileset>
        <fileset dir="${user.home}">
            <include name=".ant/lib/**/AntelopeTasks_*.jar"/>
            <include name=".ant/lib/**/apache-rat*.jar"/>
        </fileset>
    </path>

    <target name="javadoc" description="Builds Falcon's Javadoc at generated/javadoc.">
        <!--<ant dir="compiler" target="javadoc"/>-->
    </target>

    <target name="eclipse" description="Prepares or updates Falcon's project(s) for use in Eclipse. This takes care of generating Java files for lexers, parsers, and BURMs.">
        <ant dir="compiler" target="eclipse"/>
        <ant dir="compiler.tests" target="eclipse"/>
    </target>

    <target name="sdk" description="Produces an set of jars in compiler/lib.">
        <ant dir="compiler-build-tools" />
        <ant dir="compiler-jburg-types" />
        <ant dir="compiler-test-utils" />
        <ant dir="compiler" />
    </target>

    <target name="main" depends="sdk, javadoc, tests" description="Default target - Builds a Falcon SDK, builds Falcon Javadoc, and runs tests."/>

    <target name="all" depends="main, jx, typedefs, oem, debugger, anttasks" description="Builds Falcon, then FalconJX"/>

    <target name="jx" depends="compiler.jx, compiler.jx.tests" description="Builds FalconJX" />
    
    <target name="typedefs" depends="check-typedefs-home, typedef.swcs, typedef.tests" description="Build typedefs and run tests"/>
    
    <target name="oem" depends="compiler.oem" description="Builds FB Integration JAR" />

    <target name="tests" description="Runs the tests." unless="skip.compiler.tests">
        <ant dir="compiler" target="test"/>
    </target>

    <target name="compiler.oem" depends="compiler.jx" description="Builds FB Integration JAR">
        <ant dir="flex-compiler-oem" target="main"/>
    </target>

    <target name="anttasks" description="Builds ant tasks JAR">
        <ant dir="flexjs-ant-tasks" target="jar"/>
    </target>

    <target name="debugger" description="Builds FDB JAR">
        <ant dir="debugger" target="jar"/>
    </target>
    
    <target name="compiler.jx" description="Builds FalconJX.">
        <ant dir="compiler-jx" target="main"/>
    </target>

    <target name="compiler.jx.tests" description="Runs the tests." unless="skip.compiler.jx.tests">
        <ant dir="compiler-jx" target="test"/>
    </target>

    <target name="ant.tests" description="Runs the tests." unless="skip.compiler.jx.tests">
        <ant dir="flexjs-ant-tasks" target="test"/>
    </target>

    <target name="copyLastSuccessfulBuild" description="Copies last flex-asjs build.">
        <ant dir="compiler-jx/src/test" target="copyLastSuccessfulBuild"/>
    </target>
    
    <target name="typedef.swcs">
        <property name="FALCON_HOME" value="${basedir}/compiler" />
        <property name="FALCONJX_HOME" value="${basedir}/compiler-jx" />
        <ant dir="${FLEXJS_TYPEDEFS_HOME}" />
    </target>
    <target name="typedef.swcs.clean" >
        <ant dir="${FLEXJS_TYPEDEFS_HOME}" target="clean"/>
    </target>
    <target name="typedef.swcs.wipe" >
        <ant dir="${FLEXJS_TYPEDEFS_HOME}" target="wipe"/>
    </target>
    <target name="typedef.tests">
        <ant dir="compiler-jx/src/test" target="extern.tests" />
    </target>
    
    <target name="clean" description="Cleans the build output but leaves any downloaded JARs.">
        <ant dir="compiler" target="clean"/>
        <ant dir="compiler/src/test" target="clean"/>
    </target>

    <target name="clean-all" description="Cleans the build output but leaves any downloaded JARs.">
        <ant dir="compiler" target="clean"/>
        <ant dir="compiler/src/test" target="clean"/>
        <ant dir="compiler-jx" target="clean"/>
        <ant dir="compiler-jx/src/test" target="clean"/>
        <ant dir="flex-compiler-oem" target="clean"/>
        <ant dir="flexjs-ant-tasks" target="clean"/>
        <ant dir="debugger" target="clean"/>
    </target>

    <target name="wipe" description="Wipes out everything that didn't come from Git.">
        <ant dir="compiler-build-tools" target="wipe"/>
        <ant dir="compiler-test-utils" target="wipe"/>
        <ant dir="compiler-jburg-types" target="wipe"/>
        <ant dir="compiler" target="wipe"/>
        <ant dir="compiler/src/tests" target="wipe"/>
    </target>
    
    <target name="wipe-all" description="Wipes out everything that didn't come from Git.">
        <ant dir="compiler-build-tools" target="wipe"/>
        <ant dir="compiler-jburg-types" target="wipe"/>
        <ant dir="compiler-test-utils" target="wipe"/>
        <ant dir="compiler" target="wipe"/>
        <ant dir="compiler/src/test" target="wipe"/>
		<ant dir="compiler-jx" target="super-clean"/>
        <ant dir="compiler-jx/src/test" target="wipe"/>
        <ant dir="flex-compiler-oem" target="wipe"/>
        <ant dir="flexjs-ant-tasks" target="wipe"/>
        <ant dir="debugger" target="clean"/>
        <delete dir="${basedir}/out" failonerror="false" includeEmptyDirs="true"/>
        <delete dir="${basedir}/temp" failonerror="false" includeEmptyDirs="true"/>
        <!-- remove legacy folders if they exist -->
        <delete dir="${basedir}/compiler.jx" failonerror="false" includeEmptyDirs="true"/>
        <delete dir="${basedir}/compiler/generated" failonerror="false" includeEmptyDirs="true"/>
        <delete dir="${basedir}/externs" failonerror="false" includeEmptyDirs="true"/>
    </target>

    <target name="maven-artifacts" description="Installs Falcon artifacts to a local maven repository">
        <ant dir="compiler" target="maven-artifacts"/>
    </target>

    <target name="check-flex-home" unless="mxmlc.jar.exists"
        description="Check FLEX_HOME for both a directory and an exe file">
        
        <echo message="FLEX_HOME is ${env.FLEX_HOME}"/>
        
        <available file="${env.FLEX_HOME}"
        type="dir"
        property="FLEX_SDK_HOME"
        value="${env.FLEX_HOME}" />
        
        <available file="${basedir}/../flex-sdk"
        type="dir"
        property="FLEX_SDK_HOME"
        value="${basedir}/../flex-sdk" />
        
        <fail message="The environment variable FLEX_HOME is not set to a directory"
        unless="FLEX_SDK_HOME"/>
        
        <condition property="mxmlc.jar.exists">
            <available file="${FLEX_SDK_HOME}/lib/mxmlc.jar" type="file"/>
        </condition>
        
        <fail message="The directory ${FLEX_SDK_HOME} does not contain mxmlc.jar"
        unless="mxmlc.jar.exists"/>
    </target>

    <!--
     Can set build.additional-packages to build additional-packages as part of a release.
     This does not build the docs.  Use doc-packages or asdoc-packages.
     -->
    <target name="release"
        depends="source-release,binary-release,rat-check"
        description="Creates source and binary kits for Apache Falcon and FalconJX."/>
        
    <target name="source-release"
        depends="wipe-all,check-flex-home,source-package"
        description="Packages the source release kit which is the official Apache release."/>
        
    <target name="binary-release"
        depends="setup-binary-release,all,binary-package,javadoc"
        description="Builds and packages the binary kit which is provided as a convenience."/>
        
    <!--
        Package up the Apache Flex sources.  Do not include empty directories.
                                                                                       
        Note: even if cleaned, this will package up unversioned files that happen
        to be in the tree.
                                                                                       
        FixMe: clean needs to clean - add code to detect unversioned files
    -->
    <target name="source-package" depends="stage-source,source-package-zip,source-package-tgz,stage-source-jx,source-package-jx-zip,source-package-jx-tgz"
        description="Package source files required to build in zip and tar-gzip file">
    </target>
        
    <!--
     Packages the source distribution with ZIP.
     -->
    <target name="source-package-zip" unless="no.zip">
        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${source.kit}.zip" basedir="${basedir}/temp"/>
    </target>
        
    <!--
     Packages the source distribution with TAR-GZIP.
     -->
    <target name="source-package-tgz" unless="no.zip">
        <tar-gzip name="${source.kit}" />
    </target>

    <!--
     Packages the source distribution with ZIP.
     -->
    <target name="source-package-jx-zip" unless="no.zip">
        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${source.jx.kit}.zip" basedir="${basedir}/temp"/>
    </target>

    <!--
     Packages the source distribution with TAR-GZIP.
     -->
    <target name="source-package-jx-tgz" unless="no.zip">
        <tar-gzip name="${source.jx.kit}" />
    </target>

    <target name="stage-source"
        description="Package source files required to build in zip file" >
        <antcall target="clean-temp"/>

        <copy todir="${basedir}/temp" includeEmptyDirs="false">
            <fileset dir="${basedir}">
                <include name="build.xml"/>
                <include name="build.properties"/>
                <include name="env-template.properties"/>
                <include name="README"/>
                <include name="README_MAVEN.txt"/>
                <include name="LICENSE"/>
                <include name="LICENSE.base"/>
                <include name="NOTICE"/>
                <include name="NOTICE.base"/>
                <include name="NOTICE.fdb"/>
                <include name="NOTICE.oem"/>
                <include name="RELEASE_NOTES"/>
                <include name="installer.xml"/>
                <include name="installer.properties/**"/>
                <include name="pom.xml"/>
                <include name="settings-template.xml"/>
                <include name="flexjs-maven-plugin/pom.xml"/>
                <include name="flexjs-maven-plugin/src/**"/>
            </fileset>
        </copy>
        
        <!-- compiler -->
        <antcall target="stage-compiler"/>
        
        <!-- flex-compiler-oem and fdb -->
        <antcall target="stage-fb-integration"/>
        
        <!-- flex ant tasks -->
        <antcall target="stage-ant-tasks"/>
        
        <!-- typedefs -->
        <antcall target="stage-typedefs"/>
        
        <!--
         Source files have Windows line endings.  Most UNIX editors can handle
         either type of line endings but the converse is often not true.
         -->
        <fixcrlf srcdir="${basedir}/temp" eol="crlf" fixlast="false">
            <exclude name="compiler/src/assembly/**"/>
            <exclude name="compiler-jx/src/assembly/**"/>
            <exclude name="compiler/target/**"/>
            <exclude name="**/assets/**"/>
            <exclude name="**/*.fla"/>
            <exclude name="**/*.flv"/>
            <exclude name="**/*.gif"/>
            <exclude name="**/*.jar"/>
            <exclude name="**/*.jpg"/>
            <exclude name="**/*.mp3"/>
            <exclude name="**/*.pbj"/>
            <exclude name="**/*.png"/>
            <exclude name="**/*.sh"/>
            <exclude name="**/*.swf"/>
            <exclude name="**/*.swc"/>
        </fixcrlf>
        <fixcrlf srcdir="${basedir}/temp/compiler/src/assembly" eol="crlf" fixlast="false">
            <include name="**.bat"/>
        </fixcrlf>
        
        <!-- 
         Unix shell scripts need the correct line endings. 
         -->
        <fixcrlf srcdir="${basedir}/temp" eol="unix" fixlast="false">  
            <include name="**.sh"/>
        </fixcrlf>
    </target>

    <target name="stage-compiler">
        <copy todir="${basedir}/temp/compiler" includeEmptyDirs="false">
            <fileset dir="${basedir}/compiler">
                <include name="**"/>
                <exclude name=".classpath" />
                <exclude name=".project" />
                <exclude name=".settings/**" />
                <exclude name="in/**"/>
                <exclude name="lib/**"/>
                <exclude name="target/classes/**"/>
                <exclude name="target/test-classes/**"/>
                <exclude name="target/junit-temp/**"/>
                <exclude name="target/junit-reports/**"/>
                <exclude name="**/unittest.properties" />
            </fileset>
        </copy>
        <copy todir="${basedir}/temp/compiler-build-tools" includeEmptyDirs="false">
            <fileset dir="${basedir}/compiler-build-tools">
                <include name="**"/>
                <exclude name=".classpath" />
                <exclude name=".project" />
                <exclude name=".settings/**" />
                <exclude name="in/**"/>
                <exclude name="lib/**"/>
                <exclude name="target/classes/**"/>
                <exclude name="target/test-classes/**"/>
                <exclude name="target/junit-temp/**"/>
                <exclude name="target/junit-reports/**"/>
                <exclude name="**/unittest.properties" />
            </fileset>
        </copy>
        <copy todir="${basedir}/temp/compiler-test-utils" includeEmptyDirs="false">
            <fileset dir="${basedir}/compiler-test-utils">
                <include name="**"/>
                <exclude name=".classpath" />
                <exclude name=".project" />
                <exclude name=".settings/**" />
                <exclude name="in/**"/>
                <exclude name="lib/**"/>
                <exclude name="target/classes/**"/>
                <exclude name="target/test-classes/**"/>
                <exclude name="target/junit-temp/**"/>
                <exclude name="target/junit-reports/**"/>
                <exclude name="**/unittest.properties" />
            </fileset>
        </copy>
        <copy todir="${basedir}/temp/compiler-jburg-types" includeEmptyDirs="false">
            <fileset dir="${basedir}/compiler-jburg-types">
                <include name="**"/>
                <exclude name=".classpath" />
                <exclude name=".project" />
                <exclude name=".settings/**" />
                <exclude name="in/**"/>
                <exclude name="lib/**"/>
                <exclude name="target/classes/**"/>
                <exclude name="target/test-classes/**"/>
                <exclude name="target/junit-temp/**"/>
                <exclude name="target/junit-reports/**"/>
                <exclude name="**/unittest.properties" />
            </fileset>
        </copy>
        
        <tstamp>
            <format property="build.number.date" pattern="yyyyMMdd" />
        </tstamp>
        <property name="build.version" value="${release.version}.${build.number.date}" />
        
        <!-- Update all Version.as files in the kit frameworks directory with build.number -->
        <!--<antcall target="version-update"/>-->
    </target>

    <target name="stage-fb-integration">
        <ant dir="${basedir}/debugger" target="downloads" />
        <delete>
            <fileset dir="${basedir}/debugger/target/downloads">
                <include name="*.tar.gz"/>
            </fileset>
        </delete>
        <copy todir="${basedir}/temp/debugger" includeEmptyDirs="false">
            <fileset dir="${basedir}/debugger">
                <include name="**"/>
                <exclude name=".classpath" />
                <exclude name=".project" />
                <exclude name=".settings/**" />
                <exclude name="target/flex/**"/>
                <exclude name="target/flash/**"/>
                <exclude name="target/generated-sources/**"/>
                <exclude name="target/META-INF/**"/>
            </fileset>
        </copy>
        <ant dir="${basedir}/flex-compiler-oem" target="downloads" />
        <delete>
            <fileset dir="${basedir}/flex-compiler-oem/target/downloads">
                <include name="*.tar.gz"/>
            </fileset>
        </delete>
        <copy todir="${basedir}/temp/flex-compiler-oem" includeEmptyDirs="false">
            <fileset dir="${basedir}/flex-compiler-oem">
                <include name="**"/>
                <exclude name=".classpath" />
                <exclude name=".project" />
                <exclude name=".settings/**" />
                <exclude name="target/classes/**"/>
            </fileset>
        </copy>
    </target>

    <target name="stage-ant-tasks">
        <copy todir="${basedir}/temp/flexjs-ant-tasks" includeEmptyDirs="false">
            <fileset dir="${basedir}/flexjs-ant-tasks">
                <include name="**"/>
                <exclude name=".classpath" />
                <exclude name=".project" />
                <exclude name=".settings/**" />
                <exclude name="target/classes/**"/>
                <exclude name="target/flex/**"/>
                <exclude name="target/flash/**"/>
                <exclude name="target/generated-sources/**"/>
                <exclude name="target/META-INF/**"/>
            </fileset>
        </copy>
    </target>

    <target name="stage-typedefs" depends="check-typedefs-home">
        <copy todir="${basedir}/temp/flex-typedefs" includeEmptyDirs="false">
            <fileset dir="${FLEXJS_TYPEDEFS_HOME}">
                <include name="**"/>
                <exclude name="**/target/**" />
            </fileset>
        </copy>
    </target>
    
    <target name="stage-source-jx"
        description="Package jx source files with other falcon files required to build in zip file" >
        
        <copy tofile="${basedir}/temp/LICENSE" file="${basedir}/LICENSE.jx" overwrite="true"/>
        <copy todir="${basedir}/temp" >
            <fileset dir="${basedir}">
                <include name="README_JX"/>
                <include name="RELEASE_NOTES_JX"/>
                <include name="LICENSE.jx"/>
                <include name="LICENSE.jx.bin"/>
                <include name="NOTICE.jx"/>
            </fileset>
        </copy>
        
        <copy todir="${basedir}/temp/compiler-jx" includeEmptyDirs="false">
            <fileset dir="${basedir}/compiler-jx">
                <include name="**"/>
                <exclude name=".classpath" />
                <exclude name=".project" />
                <exclude name=".settings/**" />
                <exclude name="classes/**"/>
                <exclude name="in/**"/>
                <exclude name="lib/**"/>
                <exclude name="target/classes/**"/>
                <exclude name="target/test-classes/**"/>
                <exclude name="target/junit-temp/**"/>
                <exclude name="target/junit-results/**"/>
                <exclude name="**/unittest.properties" />
            </fileset>
        </copy>
        
        <!--
         Source files have Windows line endings.  Most UNIX editors can handle
         either type of line endings but the converse is often not true.
         -->
        <fixcrlf srcdir="${basedir}/temp" eol="crlf" fixlast="false">
            <exclude name="compiler/src/assembly/**"/>
            <exclude name="compiler-jx/src/assembly/**"/>
            <exclude name="**/assets/**"/>
            <exclude name="**/*.fla"/>
            <exclude name="**/*.flv"/>
            <exclude name="**/*.gif"/>
            <exclude name="**/*.jar"/>
            <exclude name="**/*.jpg"/>
            <exclude name="**/*.mp3"/>
            <exclude name="**/*.pbj"/>
            <exclude name="**/*.png"/>
            <exclude name="**/*.sh"/>
            <exclude name="**/*.swf"/>
            <exclude name="**/*.swc"/>
        </fixcrlf>
        <fixcrlf srcdir="${basedir}/temp/compiler/src/assembly" eol="crlf" fixlast="false">
            <include name="**.bat"/>
        </fixcrlf>
        <fixcrlf srcdir="${basedir}/temp/compiler-jx/src/assembly" eol="crlf" fixlast="false">
            <include name="**.bat"/>
        </fixcrlf>
        <fixcrlf srcdir="${basedir}/temp/compiler/src/assembly" eol="unix" fixlast="false">
            <include name="**"/>
            <exclude name="**.bat"/>
        </fixcrlf>
        <fixcrlf srcdir="${basedir}/temp/compiler-jx/src/assembly" eol="unix" fixlast="false">
            <include name="**"/>
            <exclude name="**.bat"/>
        </fixcrlf>
        <chmod dir="${basedir}/temp/compiler/src/assembly" excludes="**/*.bat" perm="+x" />
        <chmod dir="${basedir}/temp/compiler-jx/src/assembly" excludes="**/*.bat" perm="+x" />
        
        <!--
         Unix shell scripts need the correct line endings.
         -->
        <fixcrlf srcdir="${basedir}/temp" eol="unix" fixlast="false">
            <include name="**.sh"/>
        </fixcrlf>
    </target>

    <target name="setup-binary-release" depends="wipe-all"
        description="Set properties needed to turn on features for release sdk">
	    <!--
         For a release build, download everything fresh.
         Build changes to the downloads, might not be caught by the refresh logic.
         thirdparty-clean should leave this directory empty but just in case...
         -->
	    <delete dir="${basedir}/in" failonerror="false" includeEmptyDirs="true" />
        
    </target>
    
    <target name="binary-package"
        description="Package binary files in zip and tar-gzip file.">
        
        <antcall target="stage-source"/>
        
        <!-- these files are in addition to the remaining source files -->
        
        <!-- generated -->
        <copy todir="${basedir}/temp/compiler/lib">
            <fileset dir="${basedir}/compiler/lib">
                <include name="**"/>
                <exclude name="external/**"/>
                <exclude name="**/env.properties"/>
            </fileset>
        </copy>
        
        <antcall target="binary-package-zip"/>
        <antcall target="binary-package-tgz"/>
        
        <antcall target="stage-source-jx" />

        <copy todir="${basedir}/temp/flex-typedefs" includeEmptyDirs="false">
            <fileset dir="${FLEXJS_TYPEDEFS_HOME}">
                <include name="createjs/target/downloads/EaselJS-0.8.0/LICENSE.txt" />
                <include name="createjs/target/downloads/TweenJS-0.6.2/LICENSE.txt" />
            </fileset>
        </copy>

        <!-- concat the license file with the binary license file for the 3rd party deps -->
        <delete file="${basedir}/temp/LICENSE" />
        <concat destfile="${basedir}/temp/LICENSE">
            <filelist dir="${basedir}" files="LICENSE.jx,LICENSE.jx.bin"/>
        </concat>
        
        <!-- generated -->
        <mkdir dir="${basedir}/temp/js"/>
        <copy todir="${basedir}/temp/js">
            <fileset dir="${basedir}/compiler-jx">
                <include name="lib/**"/>
                <exclude name="lib/commons-io**"/>
                <exclude name="lib/flex-tool**"/>
                <exclude name="lib/google/**"/>
                <exclude name="lib/args4j**"/>
                <exclude name="lib/guava**"/>
                <exclude name="lib/org.json**"/>
                <exclude name="lib/junit**"/>
            </fileset>
        </copy>
        
        <!-- generated -->
        <mkdir dir="${basedir}/temp/js/libs"/>
        <copy tofile="${basedir}/temp/js/libs/js.swc" file="${FLEXJS_TYPEDEFS_HOME}/js/target/js.swc" />
        <copy tofile="${basedir}/temp/js/libs/cordova.swc" file="${FLEXJS_TYPEDEFS_HOME}/cordova/target/cordova.swc" />
        <copy tofile="${basedir}/temp/js/libs/createjs.swc" file="${FLEXJS_TYPEDEFS_HOME}/createjs/target/createjs.swc" />
        <copy tofile="${basedir}/temp/js/libs/google_maps.swc" file="${FLEXJS_TYPEDEFS_HOME}/google_maps/target/google_maps.swc" />
        <copy tofile="${basedir}/temp/js/libs/jasmine.swc" file="${FLEXJS_TYPEDEFS_HOME}/jasmine/target/jasmine.swc" />
        <copy tofile="${basedir}/temp/js/libs/jquery.swc" file="${FLEXJS_TYPEDEFS_HOME}/jquery/target/jquery-1.9.swc" />
        <copy tofile="${basedir}/temp/js/libs/GCL.swc" file="${FLEXJS_TYPEDEFS_HOME}/GCL/target/GCL.swc" />
        <copy tofile="${basedir}/temp/js/libs/node.swc" file="${FLEXJS_TYPEDEFS_HOME}/node/target/node.swc" />
        
        <!-- generated -->
        <mkdir dir="${basedir}/temp/flex-typedefs"/>
        <copy todir="${basedir}/temp/flex-typedefs" includeEmptyDirs="false">
            <fileset dir="${FLEXJS_TYPEDEFS_HOME}">
                <include name="**/**"/>
                <exclude name="**/externs.zip" />
                <exclude name="**/target/.plxarc" />
                <exclude name="**/target/failsafe-reports/**" />
                <exclude name="**/*.swc"/>
                <exclude name="**/*.as"/>
                <exclude name="createjs/target/**"/>
            </fileset>
        </copy>
        <echo>copy easel and tween</echo>
        <copy todir="${basedir}/temp/flex-typedefs" includeEmptyDirs="false">
            <fileset dir="${FLEXJS_TYPEDEFS_HOME}">
                <include name="createjs/target/downloads/Easel*/src/**"/>
                <include name="createjs/target/downloads/Tween*/src/**"/>
            </fileset>
        </copy>
        
        <antcall target="binary-package-jx-zip"/>
        <antcall target="binary-package-jx-tgz"/>
        
        <copy todir="${basedir}/out">
            <fileset dir="${basedir}">
                <include name="apache-flex-falcon-installer-config.xml"/>
                <include name="apache-flex-falconjx-installer-config.xml"/>
            </fileset>
        </copy>
    </target>

    <!--
     Packages the binary distribution with ZIP.
     -->
    <target name="binary-package-zip" unless="no.zip">
        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${binary.kit}.zip" basedir="${basedir}/temp"/>
    </target>

    <!--
     Packages the binary distribution with TAR-GZIP.
     -->
    <target name="binary-package-tgz" unless="no.zip">
        <tar-gzip name="${binary.kit}" />
    </target>

    <!--
     Packages the binary distribution with ZIP.
     -->
    <target name="binary-package-jx-zip" unless="no.zip">
        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${binary.jx.kit}.zip" basedir="${basedir}/temp"/>
    </target>

    <!--
     Packages the binary distribution with TAR-GZIP.
     -->
    <target name="binary-package-jx-tgz" unless="no.zip">
        <tar-gzip name="${binary.jx.kit}" />
    </target>

    <!--
     tar with gzip compression, the temp directory and put it in the out directory.
     The shell scripts in the bin directory (no extension) and other .sh files have
     mode set to execute.
     
     name - the basename name of the kit in out directory, without the .tar.gz extension
     -->
    <macrodef name="tar-gzip">
        <attribute name="name"/>
        <sequential>
            <mkdir dir="${basedir}/out"/>
            <tar destfile="${basedir}/out/@{name}.tar.gz"
                compression="gzip"
                longfile="gnu">
                <tarfileset dir="${basedir}/temp" prefix="@{name}">
                    <include name="**" />
                    <exclude name="**/*.sh" />
                </tarfileset>
                <tarfileset dir="${basedir}/temp" prefix="@{name}">
                    <include name="**/*.bat" />
                </tarfileset>
                <tarfileset dir="${basedir}/temp" prefix="@{name}" mode="755">
                    <include name="**/*.sh" />
                    <exclude name="**/*.bat" />
                </tarfileset>
            </tar>
        </sequential>
    </macrodef>

    <!--
     Run the Apache Rat audit tool against the source in the source kit.
     The report is written to rat.report.
     
     To check a subset of files run with -Drat.dir=<dir>.
     
     You need to place apache-rat-tasks-0.8.jar and apache-rat-0.8.jar in the
     anttask.classpath in order to do this.  If the jar isn't found, the report
     will not be generated.
     -->
    <target name="rat-check" depends="rat-taskdef" if="have.rattasks"
        description="Report on licenses in source kit.">
        
        <property name="rat.dir" value="${basedir}/temp"/>
        <antcall target="rat-unzip" />
        
        <property name="rat.report" value="${basedir}/rat.report"/>
        <echo message="Checking files at ${rat.dir}, report is ${rat.report}"/>
        
        <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportFile="${rat.report}">
            <fileset dir="${rat.dir}">
                <!--          Start of binary files           -->
                <!-- exclude media (png, gif, jpg, mp3, flv) -->
                <exclude name="**/*.png"/>
                <exclude name="**/*.gif"/>
                <exclude name="**/*.jpg"/>
                <exclude name="**/*.mp3"/>
                <exclude name="**/*.flv"/>
                <exclude name="**/org.apache.flex.tools.FlexToolGroup"/>
                <exclude name="debugger/META-INF/MANIFEST.MF"/>
                <exclude name="flex-typedefs/target/maven-shared-archive-resources/META-INF/DEPENDENCIES"/>
                <exclude name="**/*.patch"/>
                <exclude name="LICENSE.jx.bin"/>
                <exclude name="README_JX"/>
                <exclude name="README_MAVEN.txt"/>
                <exclude name="RELEASE_NOTES_JX"/>
                <exclude name="NOTICE.jx"/>
                <exclude name="NOTICE.base"/>
                <exclude name="NOTICE.fdb"/>
                <exclude name="NOTICE.oem"/>
            </fileset>
        </rat:report>
    </target>

    <target name="rat-unzip" unless="no.zip">
        <antcall target="clean-temp" />
        <unzip src="${basedir}/out/${source.jx.kit}.zip" dest="${rat.dir}"/>
    </target>

    <target name="rat-taskdef" description="Rat taskdef">
        <available property="have.rattasks"
        resource="org/apache/rat/anttasks/antlib.xml"
        classpathref="anttask.classpath"/>
        
        <antcall target="have-rattasks"/>
        <antcall target="no-rattasks"/>
    </target>

    <target name="have-rattasks" if="have.rattasks">
        <typedef resource="org/apache/rat/anttasks/antlib.xml"
        uri="antlib:org.apache.rat.anttasks"
        classpathref="anttask.classpath"/>
    </target>

    <target name="no-rattasks" unless="have.rattasks">
        <echo message="Rat report not generated."/>
        <echo message="rat jars (apache-rat-*.jar, apache-rat-tasks-*.jar)"/>
        <echo message="not found in anttask.classpath"/>
    </target>

    <target name="clean-temp" unless="noclean.temp">
        <delete dir="${basedir}/temp" failonerror="false" includeEmptyDirs="true"/>
    </target>

    <target name="create-md5" >
        <echo message="Generating MD5 hashes for release artifacts"/>
        <checksum algorithm="md5" file="${basedir}/out/${binary.kit}.tar.gz" forceOverwrite="yes"/>
        <checksum algorithm="md5" file="${basedir}/out/${binary.kit}.zip" forceOverwrite="yes"/>
        <checksum algorithm="md5" file="${basedir}/out/${source.kit}.tar.gz" forceOverwrite="yes"/>
        <checksum algorithm="md5" file="${basedir}/out/${source.kit}.zip" forceOverwrite="yes"/>
        <checksum algorithm="md5" file="${basedir}/out/${binary.jx.kit}.tar.gz" forceOverwrite="yes"/>
        <checksum algorithm="md5" file="${basedir}/out/${binary.jx.kit}.zip" forceOverwrite="yes"/>
        <checksum algorithm="md5" file="${basedir}/out/${source.jx.kit}.tar.gz" forceOverwrite="yes"/>
        <checksum algorithm="md5" file="${basedir}/out/${source.jx.kit}.zip" forceOverwrite="yes"/>
    </target>

    <target name="sign" >
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${basedir}/out/${source.kit}.zip.asc" />
            <arg value="--detach-sig" />
            <arg value="${basedir}/out/${source.kit}.zip" />
        </exec>
        
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${basedir}/out/${source.kit}.tar.gz.asc" />
            <arg value="--detach-sig" />
            <arg value="${basedir}/out/${source.kit}.tar.gz" />
        </exec>
        
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${basedir}/out/${binary.kit}.zip.asc" />
            <arg value="--detach-sig" />
            <arg value="${basedir}/out/${binary.kit}.zip" />
        </exec>
        
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${basedir}/out/${binary.kit}.tar.gz.asc" />
            <arg value="--detach-sig" />
            <arg value="${basedir}/out/${binary.kit}.tar.gz" />
        </exec>
        
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${basedir}/out/${source.jx.kit}.zip.asc" />
            <arg value="--detach-sig" />
            <arg value="${basedir}/out/${source.jx.kit}.zip" />
        </exec>
        
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${basedir}/out/${source.jx.kit}.tar.gz.asc" />
            <arg value="--detach-sig" />
            <arg value="${basedir}/out/${source.jx.kit}.tar.gz" />
        </exec>
        
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${basedir}/out/${binary.jx.kit}.zip.asc" />
            <arg value="--detach-sig" />
            <arg value="${basedir}/out/${binary.jx.kit}.zip" />
        </exec>
        
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${basedir}/out/${binary.jx.kit}.tar.gz.asc" />
            <arg value="--detach-sig" />
            <arg value="${basedir}/out/${binary.jx.kit}.tar.gz" />
        </exec>
    </target>

    <!-- may not work on windows -->
    <target name="inject-asf-header" >
        <replaceregexp match="${generated.by.match}"
            replace="${asfheader}${generated.by.comment}"
            byline="false"
            flags="s">
            <fileset dir="${basedir}/temp">
                <include name="**/*.js" />
            </fileset>
        </replaceregexp>
    </target>

    <target name="sdk.dependent.tests" >
        <ant dir="compiler/src/test" target="sdk.dependent.tests" />
        <ant dir="compiler-jx/src/test" target="integration.tests.sdk" />
    </target>
    <target name="flexjs.dependent.tests" >
        <ant dir="compiler-jx/src/test" target="integration.tests.asjs" />
    </target>

    <!--
     Update various files for a new release version.
     -->
    <target name="update-version">
        <fail message="old-version and new-version must be set in the form major.minor.hotfix i.e. 0.7.0">
            <condition>
                <or>
                    <not>
                        <isset property="old-version"/>
                    </not>
                    <not>
                        <isset property="new-version"/>
                    </not>
                </or>
            </condition>
        </fail>
        <replace file="${basedir}/build.properties"
        token="${old-version}"
        value="${new-version}" />
    </target>


</project>
