<?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="sdk" default="main" basedir=".">

    <property name="FLEX_HOME" location="${basedir}"/>
    
    <!-- Required for OSX 10.6 / Snow Leopard Performance. -->
    <!-- Java 7 on Mac requires OSX 10.7.3 or higher and is 64-bit only -->
    <!-- local.d32 is set/used in build.properties so this needs to be done first. -->
    <condition property="local.d32" value="-d32">
        <and>
            <os family="windows"/>
            <equals arg1="${sun.arch.data.model}" arg2="64"/>
            <equals arg1="${os.arch}" arg2="x86_64"/>
            <equals arg1="${ant.java.version}" arg2="1.6"/>
        </and>
    </condition>

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

    <property name="debug" value="true"/>
    <property name="strict" value="true"/>
    <property name="javac.src" value="1.5"/>
    
    <property name="kit.prefix" value="apache-flex-sdk-${release.version}"/>
    <property name="kit-pixelbender.prefix" value="apache-flex-sdk-pixel-bender-1.0.0"/>
    <property name="source.kit" value="${kit.prefix}-src"/>
    <property name="binary.kit" value="${kit.prefix}-bin"/>
    <property name="source-pixelbender.kit" value="${kit-pixelbender.prefix}-src"/>
    <property name="binary-pixelbender.kit" value="${kit-pixelbender.prefix}-bin"/>
    
    <available file="${FLEX_HOME}/../flex-tlf/textLayout" 
            type="dir" 
            property="TLF_HOME"
            value="${FLEX_HOME}/../flex-tlf" />

    <available file="${FLEX_HOME}/../tlf/textLayout" 
            type="dir" 
            property="TLF_HOME"
            value="${FLEX_HOME}/../tlf" />
	
    <available file="${env.TLF_HOME}" 
            type="dir" 
            property="TLF_HOME"
            value="${env.TLF_HOME}"/>

    <!-- 
        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>
    
    <!--
        Notes: If you're running the main target, then there is no need to call clean first.
        Each of the main targets for the modules will call clean themselves before proceeding.
    -->

    <target name="main" depends="prebuild,modules,frameworks,post-build" description="Full build">
        <tstamp>
        	<format property="build.datetime" pattern="MM/dd/yyyy hh:mm:ss aa" />
        </tstamp>
        <echo>ant main target completed on ${build.datetime}</echo>
    </target>

    <target name="dev" depends="modules-dev" description="Runs src.depend build for development"/>

    <!-- 
        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="check-compile-env,check-runtime-env,check-adobe-extension-manager-env,source-release,binary-release,rat-check"
        description="Creates source and binary kits for Apache Flex."/>
        
    <target name="release-pixelbender"
        depends="check-compile-env,check-runtime-env,source-package-pixelbender,binary-package-pixelbender"
        description="Creates source and binary kits for Apache Flex's Pixel Bender package."/>
        
    <target name="source-release"
        depends="super-clean,create-description,create-config,source-package" 
        description="Packages the source release kit which is the official Apache release."/>
        
    <target name="binary-release" 
        depends="setup-binary-release,main,frameworks-rsls,sample-themes,checkintests,doc,other.locales,binary-package,additional-packages" 
        description="Builds and packages the binary kit which is provided as a convenience."/>    

    <target name="source-release-noclean" 
        depends="create-description,create-config,source-package" 
        description="Packages the source release kit which is the official Apache release."/>
        
    <target name="binary-release-noclean" 
        depends="main,frameworks-rsls,sample-themes,checkintests,doc,other.locales,binary-package,additional-packages" 
        description="Builds and packages the binary kit which is provided as a convenience."/>    

    <target name="doc-packages" 
        depends="asdoc-package,javadocs"
        description="Build and package the asdocs for the framework clases and the javadocs."/>
                
    <target name="additional-packages"
        depends="ja-locale-samples,antTasks-package" 
        description="Package locale-samples and antTasks."/>

    <target name="help">
        <echo message="run ant -projecthelp to see the available targets"/>
    </target>
    
    <!-- 
       To clean these you must call thirdparty-clean or super-clean to clean everything.  
       clean does not remove these since they don't change often and the downloads take time.
    -->
    <target name="thirdparty-downloads" description="Downloads all the required thirdparty code.">
        <ant dir="${basedir}/frameworks" target="thirdparty-downloads"/>        
        <ant dir="${basedir}/modules" target="thirdparty-downloads"/>
        <!-- don't ask again about these since we just did if these weren't already set -->	    
	    <property name="build.noprompt" value="set" />
    </target>

    <target name="prebuild" depends="check-compile-env,thirdparty-downloads,create-description" 
        description="Stuff that needs to be done before any builds." />

    <target name="check-compile-env" depends="check-playerglobal-home,check-air-home,check-tlf-home"
        description="Check for the required environment variables for compilation.">
            <echo>OS: ${os.name} / ${os.version} / ${os.arch}</echo>
            <echo>VM: ${java.vm.name} / ${java.vm.version}</echo>
            <echo>Java: ${java.version}</echo>
            <echo>Ant: ${ant.version} Ant Java Version: ${ant.java.version}</echo>
    </target>

    <target name="check-playerglobal-home" unless="playerglobal.swc.exists"
        description="Check PLAYERGLOBAL_HOME for both a directory and a swc file">

        <echo message="PLAYERGLOBAL_HOME is ${env.PLAYERGLOBAL_HOME}"/>
        <echo message="playerglobal.version is ${playerglobal.version}"/>

        <available file="${env.PLAYERGLOBAL_HOME}" 
            type="dir" 
            property="PLAYERGLOBAL_HOME.set"/>

        <fail message="The environment variable PLAYERGLOBAL_HOME is not set to a directory" 
            unless="PLAYERGLOBAL_HOME.set"/>

        <property name="playerglobal.swc" 
            value="${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc"/>

        <available file="${playerglobal.swc}" 
            type="file" 
            property="playerglobal.swc.exists"/>
        
        <fail message="The file ${playerglobal.swc} does not exist" 
            unless="playerglobal.swc.exists"/>
            
        <echo message="playerglobal.swc is ${playerglobal.swc}"/>
    </target>
    
    <target name="check-air-home" unless="AIR_HOME.set"
        description="Check that AIR_HOME is a directory">
        
        <echo message="AIR_HOME is ${env.AIR_HOME}"/>

        <condition property="AIR_HOME.set">
            <and>
                <length string="${env.AIR_HOME}" when="greater" length="0" />
                <available file="${env.AIR_HOME}" type="dir"/>
                <!--available file="${env.AIR_HOME}/bin/adt" type="file"/-->
            </and>
        </condition>
        
        <fail message="The environment variable AIR_HOME must be set to the AIR SDK Kit directory" 
            unless="AIR_HOME.set"/>
    </target>
    
    <target name="check-tlf-home" unless="TLF_HOME"
        description="Check TLF_HOME is a directory.">
        
        <echo message="TLF_HOME is ${env.TLF_HOME}"/>

        <available file="${env.TLF_HOME}" 
            type="dir" 
            property="TLF_HOME"
            value="${env.TLF_HOME}"/>

        <fail message="TLF_HOME must be set correctly for a release build" 
            unless="TLF_HOME"/>
    	
    </target>

    <target name="check-adobe-extension-manager-env" unless="ADOBE_EXTENSION_MANAGER.set"
        description="Check ADOBE_EXTENSION_MANAGER is a directory.">
        
        <echo message="ADOBE_EXTENSION_MANAGER is ${env.ADOBE_EXTENSION_MANAGER}"/>

        <available file="${env.ADOBE_EXTENSION_MANAGER}" 
            type="file" 
            property="ADOBE_EXTENSION_MANAGER.set"/>

        <fail message="ADOBE_EXTENSION_MANAGER must be set correctly for a release build" 
            unless="ADOBE_EXTENSION_MANAGER.set"/>
    </target>

    <target name="create-description" description="Generate flex-sdk-description.xml">
        <tstamp>
        	<format property="build.number.date" pattern="yyyyMMdd" />
        </tstamp>
        <echo message="build.number is ${build.number.date}"/>
        <echo file="${basedir}/flex-sdk-description.xml">&lt;?xml version="1.0"?&gt;
&lt;!--

  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.

--&gt;
&lt;flex-sdk-description&gt;
&lt;name&gt;${release} FP${playerglobal.version} AIR${air.version} ${locale}&lt;/name&gt;
&lt;version&gt;${release.version}&lt;/version&gt;
&lt;build&gt;${build.number.date}&lt;/build&gt;
&lt;/flex-sdk-description&gt;
        </echo>
    </target>
	
    <target name="create-config" description="Create flex config file">
        <ant dir="${basedir}/frameworks" target="flex-config" />
    </target>
	
    <target name="setup-binary-release" depends="thirdparty-clean"
        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" />
        
        <!-- generate localized compiler message jars -->
	    <property name="localized.jars" value="true" />
    </target>
    
    <!--
        Cleanup
    -->
    
    <target name="super-clean" depends="thirdparty-clean,clean" description="Cleans everything including thirdparty downloads."/>

    <target name="thirdparty-clean" description="Removes all thirdparty downloads.">
        <ant dir="${basedir}/modules" target="thirdparty-clean"/>
        <ant dir="${basedir}/frameworks" target="thirdparty-clean"/>
        <delete dir="${basedir}/in"/>
        <delete dir="${basedir}/lib"/>
    </target>

    <target name="clean" depends="modules-clean,frameworks-clean,frameworks-clean,frameworks-rsls-clean,package-clean,checkintests-clean" 
        description="Full clean excluding thirdparty downloads">
        
        <delete file="${basedir}/flex-sdk-description.xml" failonerror="false"/>
        <delete file="${basedir}/rat*.report" failonerror="false"/>
        
        <delete dir="${basedir}/samples/themes" failonerror="false">
            <include name="**/*.swc"/>
            <include name="**/*.swf"/>
        </delete>

        <!-- These directory would exist if the AIR SDK was merged in. -->
        <delete dir="${basedir}/lib" failonerror="false" includeEmptyDirs="true">
            <include name="aot/**"/>
            <include name="nai/**"/>
            <include name="win/**"/>
        </delete>
        <delete dir="${basedir}/out" failonerror="false" includeEmptyDirs="true"/>
        <delete dir="${basedir}/temp" failonerror="false" includeEmptyDirs="true"/>
        <delete dir="${basedir}/tempDoc" failonerror="false" includeEmptyDirs="true"/>
        <ant dir="${basedir}/asdoc" target="clean" />
        <ant dir="${basedir}/ide/flashbuilder" target="clean" />
        <ant dir="${basedir}/mustella" target="clean"/>
    </target>

    <target name="modules-clean">
        <ant dir="${basedir}/modules" target="clean"/>
    </target>

    <target name="frameworks-clean">
        <ant dir="${basedir}/frameworks" target="clean"/>
    </target>

	<target name="frameworks-rsls-clean">
       	<delete dir="${basedir}/frameworks/rsls" includeEmptyDirs="true" quiet="true"/>
	</target>

    <target name="package-clean">
        <delete dir="${basedir}/out" failonerror="false" includeEmptyDirs="true"/>
        <antcall target="clean-temp"/>
    </target>

    <target name="checkintests-clean" depends="clean-dependencychecker">
        <delete file="${basedir}/frameworks/tests/AIRExamples/AIRDemo.swf" failonerror="false"/>
        <delete dir="${basedir}/frameworks/tests/airMobileBasicTests/bin-debug" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/checkinapp/checkinapp.swf" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/componentSmoke/componentSmoke2.swf" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/spark/sparkTest.swf" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/fxgCompile/fxgCompileTest.swf" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/graphics/GraphicTags_checkin.swf" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/basicTests/BasicTests.swf" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/basicTests/basicLoader.swf" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/basicTests/spark/views/HelloWorld.swf" failonerror="false"/>
        <delete file="${basedir}/frameworks/tests/basicTests/spark/views/StyleManagerModuleTest.swf" failonerror="false"/>
        <delete file="${basedir}/mustella/MustellaResultsParser.class" failonerror="false"/>
        <!-- not currently in Apache Flex -->
        <!--
        <ant dir="${basedir}/frameworks/tests/layout" target="clean"/>
        <ant dir="${basedir}/frameworks/tests/states" target="clean"/>
        -->
        <ant dir="${basedir}/mustella" target="cleanmustellaswc"/>
    </target>

    <target name="player-clean">
        <delete dir="${basedir}/in/player" failonerror="false" includeEmptyDirs="true"/>
    </target>

    <!--
        Build Java module JARs
    -->

    <target name="modules" description="Full build of all JARs">
        <ant dir="${basedir}/modules"/>
    </target>

    <target name="modules-dev" description="Build src.depend JARs">
        <ant dir="${basedir}/modules" target="dev"/>
    </target>

    <target name="antTasks" description="Full build of antTasks" unless="antTasks.compiled" >
        <ant dir="${basedir}/modules/antTasks"/>
        <property name="antTasks.compiled" value="true"/>
    </target>

    <!--
        Build framework SWCs
    -->

    <target name="frameworks" description="Full build of all framework SWCs, including resource bundles and themes">
        <ant dir="${basedir}/frameworks">
            <property name="locale" value="${locale}"/>
        </ant>
    </target>

    <target name="framework-compile" description="Recompile framework.swc">
        <ant dir="${basedir}/frameworks/projects/framework" target="compile">
            <property name="locale" value="${locale}"/>
        </ant>
    </target>

    <target name="spark-compile" description="Recompile spark.swc">
        <ant dir="${basedir}/frameworks/projects/spark" target="compile"/>
    </target>

    <target name="airframework-compile" description="Recompile airframework.swc">
        <ant dir="${basedir}/frameworks/projects/airframework" target="compile"/>
    </target>

    <target name="airspark-compile" description="Recompile airspark.swc">
        <ant dir="${basedir}/frameworks/projects/airspark" target="compile"/>
    </target>

     <!-- Build framework RSLs -->

    <macrodef name="create-rsl">
        <attribute name="rsl-dir"/>
        <attribute name="swc-dir"/>
        <attribute name="swc-name"/>
        <attribute name="build-number"/>

        <sequential>
            <unzip src="@{swc-dir}/@{swc-name}.swc"
                   dest="@{rsl-dir}" >
                <patternset>
                    <include name="library.swf" />
                </patternset>
            </unzip>
            <!-- optimize out metadata but keep debug info for the unsigned RSL -->
            <java jar="${basedir}/lib/optimizer.jar" fork="true" failonerror="true">
                <jvmarg line="-ea -DAS3 -DAVMPLUS -Dflexlib=${basedir}/frameworks -Xms32m -Xmx384m -Dsun.io.useCanonCaches=false"/>
                <arg line="'@{rsl-dir}/library.swf' --output '@{rsl-dir}/@{swc-name}_@{build-number}.swf' --keep-as3-metadata='Bindable,Managed,ChangeEvent,NonCommittingChangeEvent,Transient,SkinPart' --debug='true' "/>	
            </java>
            <delete file="@{rsl-dir}/library.swf"/>
            <java jar="${basedir}/lib/digest.jar" fork="true" failonerror="true">
                <jvmarg line="-ea -DAS3 -DAVMPLUS -Xms32m -Xmx384m -Dsun.io.useCanonCaches=false"/>
                <arg line="--digest.rsl-file '@{rsl-dir}/@{swc-name}_@{build-number}.swf' --digest.swc-path  '@{swc-dir}/@{swc-name}.swc' --digest.signed=false"/>
            </java>
        </sequential>
    </macrodef>

	<target name="frameworks-rsls" description="Build signed framework RSLs">
		<tstamp>
        	<format property="build.number.date" pattern="yyyyMMdd" />
        </tstamp>
        <echo message="build.number is ${build.number.date}"/>
		<!-- textLayout RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="textLayout" build-number="${release.version}.${build.number.date}"/>
		<!-- framework RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="framework" build-number="${release.version}.${build.number.date}"/>
		<!-- mx RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs/mx" swc-name="mx" build-number="${release.version}.${build.number.date}"/>
		<!-- rpc RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="rpc" build-number="${release.version}.${build.number.date}"/>
		<!-- Spark -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="spark" build-number="${release.version}.${build.number.date}"/>
    	<!-- sparkskins RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="sparkskins" build-number="${release.version}.${build.number.date}"/>
		<!-- charts RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="charts" build-number="${release.version}.${build.number.date}"/>
		<!-- advancedgrids RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="advancedgrids" build-number="${release.version}.${build.number.date}"/>
		<!-- spark_dmv RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="spark_dmv" build-number="${release.version}.${build.number.date}"/>		
		<!-- apache RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="apache" build-number="${release.version}.${build.number.date}"/>		
		<!-- experimental RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="experimental" build-number="${release.version}.${build.number.date}"/>		
		<!-- mobile experimental RSL -->
		<create-rsl rsl-dir="${basedir}/frameworks/rsls" swc-dir="${basedir}/frameworks/libs" swc-name="experimental_mobile" build-number="${release.version}.${build.number.date}"/>		
	</target>

    <target name="other.locales" description="Build resource SWCs for additional locales">
        <ant dir="${basedir}/frameworks" target="other.locales"/>
    </target>
    
    <target name="sample-themes" description="Build the sample themes">
        <ant dir="${basedir}/samples/themes/arcade" target="main" />
        <ant dir="${basedir}/samples/themes/cobalt" target="main" />
        <ant dir="${basedir}/samples/themes/graphite" target="main" />
        <!-- zen theme is missing some assets -->
        <!--<ant dir="${basedir}/samples/themes/zen" target="main" /> -->
    </target>

    <target name="javadocs"
        description="Build javadoc for compiler oem interface">
        <javadoc destdir="${basedir}/javadoc" useexternalfile="yes" maxmemory="128m">
            <classpath>
                <fileset dir="${basedir}/lib">
                    <include name="flex-compiler-oem.jar"/>
                </fileset>
            </classpath>
            <fileset dir="${basedir}/modules/compiler/src/java/flex2/tools/oem">
                <include name="*.java"/>
                <exclude name="**/*.properties"/>
            </fileset>
        </javadoc>
        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${kit.prefix}-compiler-api-javadocs.zip" basedir="${FLEX_HOME}/javadoc"/>
        <delete dir="${basedir}/javadoc" failonerror="false" includeEmptyDirs="true"/>
    </target>

	<target name="ide" description="Build any ide specific files">
        <ant dir="${basedir}/ide/flashbuilder" />
    </target>
    
    <target name="post-build" depends="ide" description="Handle post-build activities" />

    <!--
        Build the ASDoc html pages.
    -->
    <target name="asdoc" description="asdoc">
        <ant dir="${basedir}/asdoc" />
    </target>

    <!--
        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"
        description="Package source files required to build in zip and tar-gzip file">
    </target>

    <target name="source-package-pixelbender" depends="stage-source-pixelbender,source-package-zip-pixelbender,source-package-tgz-pixelbender"
        description="Package Pixel Bender 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>
    <target name="source-package-zip-pixelbender" unless="no.zip">
        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${source-pixelbender.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>
    <target name="source-package-tgz-pixelbender" unless="no.zip">
        <tar-gzip name="${source-pixelbender.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="flex-sdk-description.xml"/>
                <include name="installer.xml"/>
                <include name="installer.properties/**"/>
                <include name="CHANGES"/>
                <include name="LICENSE"/>
                <include name="NOTICE"/>
                <include name="README"/>
                <include name="RELEASE_NOTES"/>
            </fileset>
        </copy>
         
        <!-- bin -->
        <antcall target="stage-bin"/>

        <!-- frameworks -->
        <antcall target="stage-frameworks"/>

        <!-- tlf -->
        <antcall target="stage-tlf"/>

        <!-- modules -->
        <antcall target="stage-modules"/>
        
        <!-- asdoc -->
        <copy todir="${basedir}/temp/asdoc" includeEmptyDirs="false">
            <fileset dir="${basedir}/asdoc">
            	<exclude name="test/**" />
            </fileset>
        </copy>  

        <!-- ide -->
        <copy todir="${basedir}/temp/ide">
            <fileset dir="${basedir}/ide" >
            	<include name="flashbuilder/**"/>
            	<include name="*.sh"/>
            	<include name="*.bat"/>
            </fileset>
        </copy>

        <!-- mustella (only enough to run checkintests) -->
        <!-- modules -->
        <antcall target="stage-mustella"/>
        
        <!-- samples -->
        <copy todir="${basedir}/temp/samples">
            <fileset dir="${basedir}/samples" >
                <exclude name="**/*.swc"/>
                <exclude name="**/*.swf"/>
            </fileset>
        </copy>
        
        <!-- templates -->
        <copy todir="${basedir}/temp/templates">
            <fileset dir="${basedir}/templates" >
                <include name="automation-runtimeloading-files/**"/>
                <include name="swfobject/**"/>
                <exclude name="**/*.swf"/>
                <exclude name="**/swfobject.js"/>
            </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.             
             The bin directory is handled in stage-bin.
        -->
        <fixcrlf srcdir="${basedir}/temp" eol="crlf" fixlast="false">
            <exclude name="bin/**"/>
            <exclude name="**/assets/**"/>
            <exclude name="**/*.fla"/>
            <exclude name="**/*.flv"/>
            <exclude name="**/*.gif"/>
            <exclude name="**/*.mp3"/>
            <exclude name="**/*.jpg"/>
            <exclude name="**/*.pbj"/>
            <exclude name="**/*.png"/>
            <exclude name="**/*.sh"/>
            <exclude name="**/*.swf"/>
        </fixcrlf>
               
        <!-- 
            Unix shell scripts need the correct line endings. 
            The bin directory is handled in stage-bin.
        -->      
        <fixcrlf srcdir="${basedir}/temp" eol="unix" fixlast="false">  
            <include name="**.sh"/>
            <exclude name="bin/**"/>
        </fixcrlf>
    </target>

    <!-- frameworks -->
    <!-- javascript and test directories follow -->
    <target name="stage-frameworks">
        <copy todir="${basedir}/temp/frameworks" includeEmptyDirs="false">
            <fileset dir="${basedir}/frameworks">
                <include name="**"/>
                <exclude name="**/libs/**"/>
                <exclude name="**/*.swc"/>
                <exclude name="**/*.pbj"/>
                <exclude name="**/*.swf"/>
                <exclude name="**/*.mxp"/>
                <exclude name="test*/**"/>
                <exclude name="javascript/**"/>
                <exclude name="projects/air/**"/>
                <exclude name="projects/spark/manifest.xml"/>
                <exclude name="projects/*/bundles.properties"/>
                <exclude name="projects/*/.settings/**"/>
            </fileset>
        </copy>

        <!-- frameworks/javascript -->
        <copy todir="${basedir}/temp/frameworks/javascript" includeEmptyDirs="false">
            <fileset dir="${basedir}/frameworks/javascript">
                <include name="build.xml"/>
            </fileset>
        </copy>

        <copy todir="${basedir}/temp/frameworks/javascript" includeEmptyDirs="false">
            <fileset dir="${basedir}/frameworks/javascript">
                <exclude name="FABridge/**/swfobject.js"/>
                <exclude name="FABridge/readme.txt"/>
            </fileset>
            <mapper type="glob" from="FABridge/*" to="fabridge/*" />            
        </copy>
        
        <!-- frameworks/tests -->
        <antcall target="stage-frameworks-tests"/>

        <tstamp>
        	<format property="build.number.date" pattern="yyyyMMdd" />
        </tstamp>
        <property name="build.version" value="${release.version}.${build.number.date}" />

        <!-- now that config xml files are in temp, fix them up for release. -->
        <echo message="Updating config file air-config.xml with version ${build.version}"/>
        <fix-config-file file="${basedir}/temp/frameworks/air-config.xml" version="${build.version}" />
        <echo message="Updating config file flex-config.xml with version ${build.version}"/>
        <fix-config-file file="${basedir}/temp/frameworks/flex-config.xml" version="${build.version}" />
        
        <!-- Update all Version.as files in the kit frameworks directory with build.number -->
        <antcall target="version-update"/>
    </target>
    
    <target name="stage-frameworks-tests" unless="no.tests">
        <!-- frameworks -->
        <copy todir="${basedir}/temp/frameworks" includeEmptyDirs="false">
            <fileset dir="${basedir}/frameworks">
                <include name="test*/**"/>
            </fileset>
        </copy>
    </target>
    
    <!-- tlf -->
    <target name="stage-tlf">
        <copy todir="${basedir}/temp/frameworks/projects/textLayout" includeEmptyDirs="false">
            <fileset dir="${TLF_HOME}/textLayout">
                <include name="src/**"/>
                <include name="manifest.xml"/>
            </fileset>
        </copy>
    </target>
    
    <target name="stage-bin">
        <copy todir="${basedir}/temp/bin" includeEmptyDirs="false">
            <fileset dir="${basedir}/bin">
                <include name="*"/>
                <exclude name="adl*"/>
                <exclude name="adt*"/>
            </fileset>
        </copy>
        
        <fixcrlf srcdir="${basedir}/temp/bin" eol="crlf" fixlast="false">
            <include name="**/*.bat"/>
        </fixcrlf>
  
          <!-- Unix shell scripts need the correct line endings. -->      
        <fixcrlf srcdir="${basedir}/temp/bin" eol="unix" fixlast="false">  
            <exclude name="**/*.bat"/>
        </fixcrlf>
    </target>
        
    <target name="stage-modules" unless="no.modules">
        <!-- modules -->
        <copy todir="${basedir}/temp/modules" includeEmptyDirs="false">
            <fileset dir="${basedir}/modules">
                <include name="**"/>
                <exclude name="thirdparty/**"/>
                <exclude name=".metadata/**"/>
                <exclude name="**/*.jar"/>
                <exclude name="**/*.vms"/>
                <exclude name="*/test/**"/>
                <exclude name="compiler/src/java/velocity.log"/>
                <exclude name="compiler/**/ParseException.java"/>
                <exclude name="compiler/**/Parser.java"/>
                <exclude name="compiler/**/ParserConstants.java"/>
                <exclude name="compiler/**/Token.java"/>
                <exclude name="compiler/**/TokenManager.java"/>
                <exclude name="compiler/**/TokenMgrError.java"/>
                <exclude name="**/classes/**"/>
                <exclude name="**/.classpath"/>
                <exclude name="**/.project"/>
            </fileset>
        </copy>  

        <!-- modules/thirdparty -->
        <copy todir="${basedir}/temp/modules/thirdparty" includeEmptyDirs="true">
            <fileset dir="${basedir}/modules/thirdparty">
                <include name="**"/>
                <exclude name="**/classes/**"/>
                <exclude name="**/.classpath"/>
                <exclude name="**/.project"/>
                <exclude name="*/test*/**"/>
            </fileset>
        </copy>  
    </target>
    
    <!-- mustella (only enough to run checkintests) -->
    <target name="stage-mustella" unless="no.tests">
        <copy todir="${basedir}/temp/mustella">
            <fileset dir="${basedir}/mustella">
                <include name="as3/**"/>
                <exclude name="as3/src/mustella/ContinueAfterRuntimeException/**"/>
                <exclude name="as3/src/mustella/ExcludeList.txt"/>
                <exclude name="as3/src/mustella/IncludeList.txt"/>
                <exclude name="as3/**/*.air"/>
                <exclude name="as3/**/*.swf"/>
                <include name="build.xml"/>
                <include name="local.properties"/>
                <include name="MustellaResultsParser.java"/>
            </fileset>
        </copy>
    </target>
    
    <target name="stage-source-pixelbender"
        description="Package Pixel Bender source files required to build in zip file">
        
        <antcall target="clean-temp"/>
        
        <copy todir="${basedir}/temp" includeEmptyDirs="false">
            <fileset dir="${basedir}">
                <include name="pixelbender.xml"/>
				<include name="env-template.properties"/>
            </fileset>
        </copy>
        <copy todir="${basedir}/temp" includeEmptyDirs="false">
            <fileset dir="${basedir}">
                <include name="**/*.pbk"/>
                <include name="frameworks/projects/framework/build.xml" />
                <include name="frameworks/projects/spark/build.xml" />
                <exclude name="**/mustella/**"/>
            </fileset>
        </copy>
        <copy file="${basedir}/README.pb" tofile="${basedir}/temp/README" />
        <copy file="${basedir}/LICENSE.pb" tofile="${basedir}/temp/LICENSE" />
        <copy file="${basedir}/NOTICE.pb" tofile="${basedir}/temp/NOTICE" />
        <echo file="${basedir}/temp/RELEASE_NOTES">
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.

Apache Flex Pixel Bender Package 1.0.0
=====================================

This package contains Adobe Pixel Bender shaders used by the Apache
Flex SDK.

See the README for instructions on compiling the shaders on Windows and
Mac.  There is no compiler for Linux.

There are no known issues.
</echo>

    </target>

    <target name="binary-package"
        description="Package binary files in zip and tar-gzip file.">

        <!-- don't include modules directory in stage-source -->
        <property name="no.modules" value="set" />
        
        <!-- don't include mustella or frameworks/tests in stage-source -->
        <property name="no.tests" value="set" />
        
        <antcall target="stage-source"/>
        
        <!-- Delete files from source distro that are not in binary distro. -->        
        <delete dir="${basedir}/temp/">
            <include name="**/build.xml"/>
            <exclude name="asdoc/build.xml"/>
        </delete>

        <!-- 
            Some, but not all framework sources are included.
            Need to include the sources required for build_framework.xml.
        -->
        <delete dir="${basedir}/temp/frameworks" includeemptydirs="true">
            <include name="build_framework.xml"/>
            <include name="projects/*/.*/**"/>
            <include name="projects/*/asdoc/**"/>
            <include name="projects/*/bundles/*/docs/**"/>
            <include name="projects/flash-integration/**"/>
            <include name="projects/playerglobal/**"/>
            <exclude name="projects/flash-integration/src/**"/>
            <exclude name="projects/flash-integration/manifest.xml"/>
        </delete>
        
        <!-- remove some of the themes and all the src for the themes -->
        <delete dir="${basedir}/temp/frameworks/themes" includeemptydirs="true">
            <include name="Ice/**"/>
            <include name="Institutional/**"/>
            <include name="Smoke/**"/>
            <include name="Wooden/**"/>
            <include name="**/src/**"/>
        </delete>
        
        <!-- delete any left-over empty directories -->
        <delete includeemptydirs="true">
            <fileset dir="${basedir}/temp/frameworks">
                <and>
                    <size value="0"/>
                    <type type="dir"/>
                </and>
            </fileset>
        </delete>

        <!-- these files are in addition to the remaining source files -->
        
        <!-- concat the license file with the binary license file for the 3rd party deps -->
        <!--concat destfile="${basedir}/temp/LICENSE">
            <filelist dir="${FLEX_HOME}" files="LICENSE,LICENSE.bin"/>
        </concat-->
        
        <!-- use this to build frameworks -->
        <copy file="${basedir}/frameworks/build_framework.xml" 
            tofile="${basedir}/temp/frameworks/build.xml" failonerror="true" verbose="true"/>

        <!-- ant is pre-built and in FLEX_HOME/ant rather than modules/antTasks -->
        <antcall target="stage-antTasks"/>
        
        <!-- locales -->
        <antcall target="stage-locales"/>

        <!-- generated files in frameworks excepts libs and rsls -->
        <copy todir="${basedir}/temp/frameworks">
            <fileset dir="${basedir}/frameworks">
                <include name="projects/*/bundles.properties"/>
                <include name="projects/spark/manifest.xml"/>
                <include name="**/*.pbj"/>
                <include name="**/*.swc"/>
                <include name="**/*.swf"/>
                <exclude name="libs/**"/>
                <exclude name="rsls/**"/>
                <exclude name="tests/**"/>
            </fileset>
        </copy>

        <!-- frameworks/libs -->
        <copy todir="${basedir}/temp/frameworks/libs">
            <fileset dir="${basedir}/frameworks/libs">
                <include name="air/airframework.swc"/>
                <include name="air/airspark.swc"/>
                <include name="mobile/mobilecomponents.swc"/>
                <include name="apache.swc"/>
                <include name="authoringsupport.swc"/>
                <include name="core.swc"/>
            	<include name="experimental.swc"/>
            	<include name="experimental_mobile.swc"/>
                <include name="spark.swc"/>
                <include name="framework.swc"/>
                <include name="mx/mx.swc"/>
                <include name="flash-integration.swc"/>
                <include name="rpc.swc"/>
                <include name="sparkskins.swc"/>
                <include name="authoringsupport.swc"/>
                <include name="charts.swc"/>
                <include name="advancedgrids.swc"/>
                <include name="spark_dmv.swc"/>
            	<include name="textLayout.swc"/>
                <exclude name="osmf.swc"/>
            </fileset>
        </copy>

        <!-- frameworks/libs/automation -->
        <copy todir="${basedir}/temp/frameworks/libs/automation">
            <fileset dir="${basedir}/frameworks/libs/automation">
                <include name="automation.swc"/>
                <include name="automation_agent.swc"/>
                <include name="automation_air.swc"/>
                <include name="automation_airspark.swc"/>
                <include name="automation_dmv.swc"/>
                <include name="automation_flashflexkit.swc"/>
                <include name="automation_spark.swc"/>
                <include name="tool.swc"/>
                <include name="tool_air.swc"/>
            </fileset>
        </copy>

        <!-- frameworks/rsls -->
        <copy todir="${basedir}/temp/frameworks/rsls">
            <fileset dir="${basedir}/frameworks/rsls"/>
        </copy>
        
        <!-- the jar files -->
        <antcall target="stage-lib"/>

        <!-- locale swcs -->
        <copy todir="${basedir}/temp/frameworks/locale">
            <fileset dir="${basedir}/frameworks/locale">
                <include name="**/*.swc"/>
            </fileset>
        </copy>

        <!-- ide -->
        <copy todir="${basedir}/temp/ide">
            <fileset dir="${basedir}/ide" >
                <include name="flashbuilder/config"/>
            </fileset>
        </copy>
        
        <!-- sample themes -->
        <copy todir="${basedir}/temp/samples">
            <fileset dir="${basedir}/samples" >
                <include name="**/build.xml"/>
                <include name="**/*.swc"/>
                <include name="**/*.swf"/>
            </fileset>
        </copy>

        <!-- swfobject templates except for downloaded files -->
        <copy todir="${basedir}/temp/templates/swfobject">
            <fileset dir="${basedir}/templates/swfobject">
                <exclude name="**/expressInstall.swf"/>
                <exclude name="**/swfobject.js"/>
            </fileset>
        </copy>
                
        <antcall target="binary-package-zip"/>        
        <antcall target="binary-package-tgz"/>        
        <copy todir="${basedir}/out" file="${basedir}/apache-flex-sdk-installer-config.xml" />
    </target>
        
    <target name="stage-lib">
        <!-- 
            lib - Do not include any jars which we prompted to download because of
            conflicting licenses.  These are all in lib/external/optional.
        -->
        <copy todir="${basedir}/temp/lib">
            <fileset dir="${basedir}/lib">
                <include name="asc.jar"/>
                <include name="asdoc.jar"/>
                <include name="batik-all-flex.jar"/>
                <include name="compc.jar"/>
                <include name="copylocale.jar"/>
                <include name="digest.jar"/>
                <include name="fdb.jar"/>
                <include name="fcsh.jar"/>
                <include name="flex-compiler-oem.jar"/>
                <include name="mxmlc.jar"/>
                <include name="optimizer.jar"/>
                <include name="swcdepends.jar"/>
                <include name="swfdump.jar"/>
                <include name="swfutils.jar"/>
                <include name="fxgutils.jar"/>
                <include name="velocity-dep-1.4-flex.jar"/>
                <exclude name="external/optional/**"/>
            </fileset>
        </copy>

        <!-- 
            external libraries
            We don't have the sources to build them but they have compatible licenses.
        -->
        <copy todir="${basedir}/temp/lib/external">
            <fileset dir="${basedir}/lib/external">
                <!-- required license and notice files -->
                <include name="*LICENSE*/**"/>
                <include name="*NOTICE*/**"/>
                <include name="*README*"/>
                <!-- jar files -->
                <include name="commons-collections.jar"/>
                <include name="commons-discovery.jar"/>
                <include name="commons-logging.jar"/>
                <include name="javacc.jar"/>
                <include name="saxon9.jar"/>
                <include name="xalan.jar"/>
                <include name="xercesImpl.jar"/>
                <include name="xercesPatch.jar"/>
                <include name="xml-apis-ext.jar"/>
                <include name="xml-apis.jar"/>
                <exclude name="optional/**"/>
            </fileset>
        </copy>
    </target>
    
    <!-- 
        Packages the binary distribution with ZIP. 
    -->
    <target name="binary-package-zip" unless="no.zip"
        description="Zips up the files in the temp directory into the binary zipfile.">
        
        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${binary.kit}.zip" basedir="${basedir}/temp"/>
    </target>
    <target name="binary-package-zip-pixelbender" unless="no.zip"
        description="Zips up the Pixel Bender files in the temp directory into the binary zipfile.">
        
        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${binary-pixelbender.kit}.zip" basedir="${basedir}/temp"/>
    </target>
    
    <!-- 
        Packages the binary distribution with TAR-GZIP.         
    -->
    <target name="binary-package-tgz" unless="no.zip"
        description="Tar-Gzip up the files in the temp directory into the binary tgz file.">
        
        <tar-gzip name="${binary.kit}" />
    </target>
    <target name="binary-package-tgz-pixelbender" unless="no.zip"
        description="Tar-Gzip up the files in the temp directory into the binary tgz file.">
        
        <tar-gzip name="${binary-pixelbender.kit}" />
    </target>

    <target name="binary-package-pixelbender" depends="build-pixelbender"
        description="Package Pixel Bender binary files in zip and tar-gzip file.">
        
        <antcall target="stage-source-pixelbender"/>
        
        <copy todir="${basedir}/temp">
            <fileset dir="${basedir}">
                <include name="**/*.pbj"/>
                <exclude name="**/mustella/**"/>
            </fileset>
        </copy>
        
        <antcall target="binary-package-zip-pixelbender"/>
        <antcall target="binary-package-tgz-pixelbender"/>
    </target>

    <target name="build-pixelbender">
        <ant dir="${basedir}" antfile="pixelbender.xml"/>
    </target>
    
    <macrodef name="fix-config-file">
        <attribute name="file"/>
        <attribute name="version"/>
            <sequential>
                <replace file="@{file}">
                    <replacefilter
                        token="&lt;warn-no-explicit-super-call-in-constructor&gt;true"
                        value="&lt;warn-no-explicit-super-call-in-constructor&gt;false"/>
                    <replacefilter
                        token="$${build.number}"
                        value="@{version}"/>
                </replace>
        </sequential>
    </macrodef>

    <!--
        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="bin/**" />
                        <exclude name="**/*.sh" />
                    </tarfileset>
                    <tarfileset dir="${basedir}/temp" prefix="@{name}">
                        <include name="bin/*.bat" />
                    </tarfileset>
                    <tarfileset dir="${basedir}/temp" prefix="@{name}" mode="755">
                        <include name="bin/*" />
                        <include name="**/*.sh" />
                        <exclude name="bin/*.bat" />
                    </tarfileset>
                </tar>
        </sequential>
    </macrodef>	
    
	<!--
	    Update all frameworks Version.as files in the kit stagging area with the 
	    latest version build number info.
	    
	    You need to place the AntelopeTasks_*.jar jar file in the anttask.classpath
	    in order to do this.  If the jar isn't found, the update is skipped.
	-->
	<target name="version-update"
	    description="Update all frameworks/Version.as files">

        <available property="have.greptask"
            classname="ise.antelope.tasks.Find" 
            classpathref="anttask.classpath"/>
        
        <antcall target="have-greptask"/>
        <antcall target="no-greptask"/>
    </target>

    <target name="have-greptask" if="have.greptask">
		<taskdef name="grep" classname="ise.antelope.tasks.Find"
                 classpathref="anttask.classpath"/>                 

        <echo message="Updating all frameworks/projects/**/Version.as files with version ${release.version}.${build.number.date}"/>
		
        <!-- Update all Version.as files in the kit frameworks directory-->
        <replaceregexp>
            <regexp pattern='"[0-9].[0-9].[0-9].[0-9]";'/>
            <substitution expression='"${release.version}.${build.number.date}";'/>
            <fileset dir="${FLEX_HOME}/temp/frameworks/projects">
                <include name="**/Version.as"/>
            </fileset>
        </replaceregexp>		
    </target>

    <target name="no-greptask" unless="have.greptask">
        <echo message="Version files not updated."/>
        <echo message="AntelopeTasks_*.jar not found in anttask.classpath"/>
    </target>   

    <target name="stage-locales"
        description="Stage all the locale swc's built">
        
        <copy todir="${basedir}/temp/frameworks/locale" includeEmptyDirs="false">
            <fileset dir="${basedir}/frameworks/locale">
                <include name="**/*.swc"/>
            </fileset>
        </copy>

        <!-- frameworks/projects -->
        <!--
            Remove these files from the binary kit.
            
            copylocale looks for bundles and then uses default locale so if there is
            not a locale sub-directory don't include the bundles directory.
        -->
        <delete dir="${basedir}/temp/frameworks/projects" includeEmptyDirs="false">
            <include name="airspark/bundles/**"/>
            <include name="automation_air/bundles/**"/>
            <include name="automation_dmv/bundles/**"/>
            <include name="automation_flashflexkit/bundles/**"/>
            <include name="automation_spark/bundles/**"/>
            <include name="*/bundles/**/empty.properties"/>
            <include name="*/bundles/**/docs/**"/>
            <include name="*/bundles/*/*.xml"/>
            <include name="*/bundles/*/packages.dita"/>
            <exclude name="*/bundles/${locale}"/>
        </delete>
        

        <!-- lib -->
        <!-- these are built when the compiler is built with localized.jars set -->
        <copy todir="${basedir}/temp/lib">
            <fileset dir="${basedir}/lib">
                <include name="mxmlc_da.jar"/>
                <include name="mxmlc_de.jar"/>
                <include name="mxmlc_es.jar"/>
                <include name="mxmlc_fi.jar"/>
                <include name="mxmlc_fr.jar"/>
                <include name="mxmlc_it.jar"/>
                <include name="mxmlc_ja.jar"/>
                <include name="mxmlc_ko.jar"/>
                <include name="mxmlc_nb.jar"/>
                <include name="mxmlc_nl.jar"/>
                <include name="mxmlc_pt.jar"/>
                <include name="mxmlc_ru.jar"/>
                <include name="mxmlc_sv.jar"/>
                <include name="mxmlc_zh_CN.jar"/>
                <include name="mxmlc_zh_TW.jar"/>
            </fileset>
        </copy>
        
        <!-- FixMe: Apache is missing all these language jars. -->
        <copy todir="${basedir}/temp/lib">
            <fileset dir="${basedir}/lib">
                <include name="batik_da.jar"/>
                <include name="batik_de.jar"/>
                <include name="batik_es.jar"/>
                <include name="batik_fi.jar"/>
                <include name="batik_fr.jar"/>
                <include name="batik_it.jar"/>
                <include name="batik_ko.jar"/>
                <include name="batik_ja.jar"/>
                <include name="batik_nb.jar"/>
                <include name="batik_nl.jar"/>
                <include name="batik_pt.jar"/>
                <include name="batik_ru.jar"/>
                <include name="batik_sv.jar"/>
                <include name="batik_zh_CN.jar"/>
                <include name="batik_zh_TW.jar"/>
                <include name="xercesImpl_da.jar"/>
                <include name="xercesImpl_de.jar"/>
                <include name="xercesImpl_es.jar"/>
                <include name="xercesImpl_fi.jar"/>
                <include name="xercesImpl_fr.jar"/>
                <include name="xercesImpl_it.jar"/>
                <include name="xercesImpl_ko.jar"/>
                <include name="xercesImpl_ja.jar"/>
                <include name="xercesImpl_nb.jar"/>
                <include name="xercesImpl_nl.jar"/>
                <include name="xercesImpl_pt.jar"/>
                <include name="xercesImpl_ru.jar"/>
                <include name="xercesImpl_sv.jar"/>
                <include name="xercesImpl_zh_CN.jar"/>
                <include name="xercesImpl_zh_TW.jar"/>
            </fileset>
        </copy>
    </target>

    <target name="ja-locale-samples" if="build.additional-packages">
        <antcall target="clean-temp"/>
        <!--
        <copy todir="${basedir}/temp/samples_ja">
            <fileset dir="${basedir}/samples/ja_JP">
                <include name="README_ja.txt"/>
                <include name="explorer/**"/>
            </fileset>
        </copy>
        <mkdir dir="${basedir}/out"/>
        <zip file="${basedir}/out/${kit.prefix}-locales.zip" basedir="${basedir}/temp" includes="**"/>
        -->
    </target>
 
    <target name="antTasks-package" if="build.additional-packages">

        <antcall target="antTasks"/>
        <antcall target="clean-temp"/>
        
        <antcall target="stage-antTasks"/>

        <!-- templates -->
        <copy todir="${basedir}/temp/templates">
            <fileset dir="${basedir}/templates" >
                <include name="**/*"/>
                <exclude name="build.*"/>
                <exclude name="swfobject/readme.txt"/>
                <exclude name="metadata/**"/>
            </fileset>
        </copy>

        <mkdir dir="${basedir}/out"/>
        <zip file="${basedir}/out/${kit.prefix}-flexTasks.zip" basedir="${basedir}/temp"/>
        <antcall target="clean-temp"/>
    </target>

    <target name="stage-antTasks" description="Stage antTask binaries.">
        
        <copy file="${basedir}/modules/antTasks/build.xml-distro"
              tofile="${basedir}/temp/ant/build.xml"/>
        <copy file="${basedir}/modules/antTasks/README.txt"
              tofile="${basedir}/temp/ant/README.txt"/>
        <copy file="${basedir}/modules/antTasks/flexTasks.tasks"
              todir="${basedir}/temp/ant"/>

        <!-- lib -->
        <copy todir="${basedir}/temp/ant/lib">
            <fileset dir="${basedir}/lib" includes="flexTasks.jar"/>
        </copy>

        <!-- src -->
        <copy todir="${basedir}/temp/ant/src">
            <fileset dir="${basedir}/modules/antTasks/src/">
                 <include name="flex/**/*.java"/>
            </fileset>
        </copy>
    </target>
    
    <target name="asdoc-package" description="Package the asdocs">      
        <antcall target="clean-temp"/>
        <antcall target="asdoc"/>
        
        <copy todir="${basedir}/temp/asdoc">
            <fileset dir="${basedir}/asdoc-output"/>
        </copy>
        <copy todir="${basedir}/temp/asdoc">
            <fileset dir="${basedir}">
                <include name="LICENSE" />
                <include name="NOTICE" />
            </fileset>
        </copy>
        <zip file="${basedir}/out/${kit.prefix}-asdocs.zip" basedir="${basedir}/temp"/>
        <antcall target="clean-temp"/>
    </target>

    <target name="fcsh-package" depends="clean-temp" description="Zip up fcsh.zip">
        <copy todir="${basedir}/temp">
            <fileset dir="${basedir}/modules/compiler">
                <include name="FlexCompilerShell-license.txt"/>
            </fileset>
        </copy>

        <!-- bin -->
        <copy todir="${basedir}/temp/bin">
            <fileset dir="${basedir}/bin">
                <include name="fcsh"/>
                <include name="fcsh.exe"/>
            </fileset>
        </copy>

        <!-- lib -->
        <copy todir="${basedir}/temp/lib">
            <fileset dir="${basedir}/lib">
                <include name="fcsh.jar"/>
            </fileset>
        </copy>

        <mkdir dir="${basedir}/out"/>
        <zip destfile="${basedir}/out/${kit.prefix}-fcsh.zip">
            <zipfileset dir="${basedir}/temp" excludes="bin/*, **/*.bat, **/*.sh, **/*.linux"/>
            <zipfileset dir="${basedir}/temp" includes="bin/*, **/*.bat, **/*.sh, **/*.linux" filemode="755" />
        </zip>
        <antcall target="clean-temp"/>
    </target>
    
    <target name="air-installers" description="Copy AIR runtime installers from sdk/in to sdk/out">
        <mkdir dir="${basedir}/out"/>
        <copy todir="${basedir}/out">
            <fileset file="${basedir}/in/air/mac/Adobe AIR.dmg"/>
            <fileset file="${basedir}/in/air/win/Adobe AIR Installer.exe"/>
        </copy>
    </target>

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

    <!-- Builds fat swcs. -->
    <target name="doc">
        <ant dir="${basedir}/frameworks" target="doc" />
    </target>

    <!--
        Tests: The current checkintests that must be run before every checkin
    -->

    <target name="oldcheckintests" depends="dependencychecker-framework,checkintests-mustella" description="Run these tests before every checkin"/>
    
    <!-- FixMe: add dependency checker and mobile tests -->
    <target name="checkintests" depends="basictests-mustella" description="Run these tests before every checkin" />
    <!--<target name="checkintests" depends="dependencychecker-framework,basictests-mustella,checkintests-mobile" description="Run these tests before every checkin"/-->
    
    <target name="checkintests-mobile" depends="airmobile-basictests-mustella" description="Run these tests before every checkin to mobile SDK code"/>

    <!--
        Tests: Mustella checkintests
    -->

    <target name="checkintests-mustella" depends="mustella-setup,componentsmoke-mustella,checkinapp-mustella,sparkTest-mustella,states-mustella,layout-mustella,graphics-mustella,fxgCompileTest-mustella"/>
    <target name="basictests-mustella" depends="mustella-setup,basictests"/>
    <target name="airmobile-basictests-mustella" depends="mustella-setup,airmobile-basictests"/>

    <target name="mustella-setup" depends="runtime-setup" description="compile mustella java file">
        <ant dir="${basedir}/mustella" target="makemustellaswc">
            <property name="use_mustella_framework_dir" value="false"/>
        </ant>
        <property name="moreCompilerArgs" value=""/>
        <!-- compile the results parser -->
        <javac srcdir="mustella" includes="MustellaResultsParser.java"/>
    </target>

    <!-- To run the checkintests as well as any mustella tests need AIR for the adl and
         a flash player content debugger.
    -->
    <target name="check-runtime-env" depends="check-air-home"
        description="Check for the required runtime environment variables for the checkintests">
        
        <available file="${env.FLASHPLAYER_DEBUGGER}" property="FLASHPLAYER_DEBUGGER.set"/>
        <fail message="FLASHPLAYER_DEBUGGER is ${env.FLASHPLAYER_DEBUGGER} which is not an Adobe Flash Player content debugger" 
            unless="FLASHPLAYER_DEBUGGER.set"/>
    </target>
    
    <target name="runtime-setup" depends="check-runtime-env" unless="runtime.setup"
        description="Set flash.player and adl properties"> 
        
        <!-- Paths to the debug standalone flashplayer. -->
        <!-- (windows) path to FlashPlayerDebugger.exe -->
        <!-- (mac) path to Flash Player Debugger.app/Contents/MacOS/Flash Player Debugger -->
        <!-- (linux) path to flashplayerdebugger -->
        <property name="flash.player" value="${env.FLASHPLAYER_DEBUGGER}"/>
    
        <!-- Paths to the adl. -->
        <condition property="adl" value="${env.AIR_HOME}/bin/adl.exe">
            <os family="windows"/>
        </condition>
        <condition property="adl" value="${env.AIR_HOME}/bin/adl">
            <os family="mac"/>
        </condition>
        <condition property="adl" value="${env.AIR_HOME}/bin/adl">
            <os family="unix"/>
        </condition>
        
        <property name="runtime.setup" value="done"/>
    </target>

    <target name="load-task" depends="runtime-setup">
        <!-- load the <mxmlc> task; we can't do this at the <project> level -->
        <!-- because targets that run before flexTasks.jar gets built would fail -->
        <taskdef resource="flexTasks.tasks" classpath="${basedir}/lib/flexTasks.jar"/>
    </target>

    <target name="basictests" depends="load-task" description="run basic tests using mustella">

        <!-- compile the basic tests -->
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/basicTests/BasicTests.mxml">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <library-path dir="${basedir}" append="true">
                <include name="mustella/mustella.swc"/>
            </library-path>
        </mxmlc>

        <!-- compile supporting swfs for basic tests -->
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/basicTests/basicLoader.as">
            <jvmarg line="${mxmlc.jvm.args}"/>
        </mxmlc>
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/basicTests/spark/views/StyleManagerModuleTest.mxml">
            <jvmarg line="${mxmlc.jvm.args}"/>
        </mxmlc>
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/basicTests/spark/views/HelloWorld.mxml"
                     static-rsls="false"
                     remove-unused-rsls="true" >
            <jvmarg line="${mxmlc.jvm.args}"/>
        </mxmlc>

        <!-- run the component smoke  -->
        <echo message="launching player and swf"/>
        <exec executable="${flash.player}" dir="${basedir}/frameworks" failonerror="true">
            <arg value="${basedir}/frameworks/tests/basicTests/BasicTests.swf"/>
        </exec>
        <!-- halt if there was an error -->
        <antcall target="mustellaresultsparser"/>
    </target>

    <target name="airmobile-basictests" depends="load-task" description="run basic tests using mustella">

        <!-- compile the basic tests -->
        <mxmlc fork="true"
            file="${basedir}/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests.mxml"
            output="${basedir}/frameworks/tests/airMobileBasicTests/bin-debug/airMobileBasicTests.swf">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <load-config filename="${basedir}/frameworks/airmobile-config.xml"/>
            <library-path dir="${basedir}" append="true">
                <include name="mustella/mustella.swc"/>
            </library-path>
        </mxmlc>
        <copy file="${basedir}/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-app.xml" tofile="${basedir}/frameworks/tests/airMobileBasicTests/bin-debug/airMobileBasicTests-app.xml"/>
        
        <!-- run the component smoke  -->
        <echo message="launching ADL and swf"/>
        <exec executable="${adl}" dir="${basedir}/frameworks" failonerror="true">
            <arg value="-profile" />
            <arg value="mobileDevice" />
            <arg value="-screensize" />
            <arg value="SamsungGalaxyTab" />
            <arg value="${basedir}/frameworks/tests/airMobileBasicTests/bin-debug/airMobileBasicTests-app.xml"/>
        </exec>
        
        <!-- halt if there was an error -->
        <antcall target="mustellaresultsparser"/>
    </target>

    <target name="componentsmoke-mustella" depends="load-task" description="run component smoke using mustella">

        <!-- compile the component smoke  -->
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/componentSmoke/componentSmoke2.mxml">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <includes symbol="componentSmoke_testScript"/>
            <includes symbol="ExitWhenDone"/>
                        <includes symbol="SendFormattedResultsToLog"/>
            <library-path dir="${basedir}" append="true">
                <include name="mustella/mustella.swc"/>
            </library-path>
            <theme dir="${basedir}/frameworks/themes">
                <include name="Halo/halo.swc" />
            </theme>
        </mxmlc>
        <!-- run the component smoke  -->
        <echo message="launching player and swf"/>
        <exec executable="${flash.player}" dir="${basedir}/frameworks" failonerror="true">
            <arg value="${basedir}/frameworks/tests/componentSmoke/componentSmoke2.swf"/>
        </exec>
        <!-- halt if there was an error -->
        <antcall target="mustellaresultsparser"/>
    </target>

    <target name="checkinapp-mustella" depends="load-task" description="run checkinapp using mustella">
        <echo message="compiling checkinapp"/>
        <!-- compile the checkinapp  -->
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/checkinapp/checkinapp.mxml">
            <arg line="-debug"/>
            <jvmarg line="${mxmlc.jvm.args}"/>
            <includes symbol="checkinapp_testScript"/>
            <includes symbol="ExitWhenDone"/>
                        <includes symbol="SendFormattedResultsToLog"/>
            <library-path dir="${basedir}" append="true">
                <include name="mustella/mustella.swc"/>
            </library-path>
            <theme dir="${basedir}/frameworks/themes">
                <include name="Halo/halo.swc" />
            </theme>
        </mxmlc>
        <!-- run the component smoke  -->
        <echo message="launching player and swf"/>
        <exec executable="${flash.player}" dir="${basedir}/frameworks">
            <arg value="${basedir}/frameworks/tests/checkinapp/checkinapp.swf"/>
        </exec>
        <!-- halt if there was an error -->
        <antcall target="mustellaresultsparser"/>
    </target>

    <target name="graphics-mustella" depends="load-task" description="run graphics checkinapp using mustella">
        <echo message="compiling checkinapp"/>
        <!-- compile the checkinapp  -->
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/graphics/GraphicTags_checkin.mxml">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <includes symbol="GraphicTags_checkintests"/>
            <includes symbol="ExitWhenDone"/>
                        <includes symbol="SendFormattedResultsToLog"/>
            <library-path dir="${basedir}" append="true">
                <include name="mustella/mustella.swc"/>
            </library-path>
        </mxmlc>
        <!-- run the component smoke  -->
        <echo message="launching player and swf"/>
        <exec executable="${flash.player}" dir="${basedir}/frameworks">
            <arg value="${basedir}/frameworks/tests/graphics/GraphicTags_checkin.swf"/>
        </exec>
        <!-- halt if there was an error -->
        <antcall target="mustellaresultsparser"/>
    </target>

    <target name="sparkTest-mustella" depends="load-task" description="run spark test using mustella">
        <echo message="compiling sparkTest"/>
        <!-- compile the sparkTest  -->
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/spark/sparkTest.mxml">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <includes symbol="sparkTest_testScript"/>
            <includes symbol="ExitWhenDone"/>
                        <includes symbol="SendFormattedResultsToLog"/>
            <library-path dir="${basedir}" append="true">
                <include name="mustella/mustella.swc"/>
            </library-path>
        </mxmlc>
        <!-- run the component smoke  -->
        <echo message="launching player and swf"/>
        <exec executable="${flash.player}" dir="${basedir}/frameworks">
            <arg value="${basedir}/frameworks/tests/spark/sparkTest.swf"/>
        </exec>
        <!-- halt if there was an error -->
        <antcall target="mustellaresultsparser"/>
    </target>

    <target name="fxgCompileTest-mustella" depends="load-task" description="run spark test using mustella">
        <echo message="compiling fxgCompileTest"/>
        <!-- compile the sparkTest  -->
        <mxmlc fork="true"
               file="${basedir}/frameworks/tests/fxgCompile/fxgCompileTest.mxml">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <includes symbol="fxgCompileTest_testScript"/>
            <includes symbol="ExitWhenDone"/>
                        <includes symbol="SendFormattedResultsToLog"/>
            <library-path dir="${basedir}" append="true">
                <include name="mustella/mustella.swc"/>
            </library-path>
        </mxmlc>
        <!-- run the component smoke  -->
        <echo message="launching player and swf"/>
        <exec executable="${flash.player}" dir="${basedir}/frameworks">
            <arg value="${basedir}/frameworks/tests/fxgCompile/fxgCompileTest.swf"/>
        </exec>
        <!-- halt if there was an error -->
        <antcall target="mustellaresultsparser"/>
    </target>

    <target name="states-mustella" description="run states test using mustella">
        <ant antfile="${basedir}/frameworks/tests/states/build.xml" dir="${basedir}/frameworks/tests/states"/>
    </target>

    <target name="layout-mustella" description="run layout test using mustella">
        <ant antfile="${basedir}/frameworks/tests/layout/build.xml" dir="${basedir}/frameworks/tests/layout"/>
    </target>

    <target name="mustellaresultsparser">
        <java classname="mustella.MustellaResultsParser" failonerror="true">
            <sysproperty key="APPDATA" value="${env.APPDATA}"/>
            <classpath>
                <pathelement location="${basedir}"/>
            </classpath>
        </java>
    </target>

    <!--
        ASC tests:
        runtests.py tested on mac & windows...not sure about linux
    -->
    <target name="asc-tests" description="Run these tests if you are committing changes to ASC">

    <pathconvert property="base" dirsep="/">
      <path path="${basedir}"/>
    </pathconvert>

    <condition property="avm.path" value="${base}/modules/asc/bin/windows/avmplus_s.exe">
            <os family="windows"/>
        </condition>

         <condition property="avm.path" value="${base}/modules/asc/bin/mac/shell_s">
            <os family="mac"/>
        </condition>

         <condition property="avm.path" value="${base}/modules/asc/bin/linux/avmplus_s">
             <and>
                 <os family="unix"/>
                 <not> <os family="mac"/> </not>
             </and>
        </condition>

     <delete>
       <fileset dir="${base}/modules/asc/test/compiler">
             <include name="*.html"/>
         <include name="result.properties"/>
         <include name="asc.out.log"/>
       </fileset>
     </delete>

     <exec executable="python" dir="${base}/modules/asc/test/compiler" output="${base}/modules/asc/test/compiler/asc.out.log">
       <arg value="runtests.py"/>
       <arg value="--asc"/>
       <arg value="${base}/lib/asc.jar"/>
       <arg value="--globalabc"/>
       <arg value="${base}/modules/asc/abc/builtin.abc"/>
       <arg value="--playerglobalabc"/>
       <arg value="${base}/modules/asc/abc/playerglobal.abc"/>
       <arg value="--toplevelabc"/>
       <arg value="${base}/modules/asc/abc/toplevel.abc"/>
       <arg value="--avm"/>
       <arg value="${avm.path}"/>
     </exec>
     <property file="${base}/modules/asc/test/compiler/result.properties"/>
     <fail>
       <condition>
         <isset property="failures"/>
       </condition>
     </fail>
    </target>

    <target name="clean-dependencychecker" description="Clean up the generated java files from dependency checker">
        <!-- not currently in Apache Flex -->
        <!--
        <delete>
            <fileset dir="${basedir}/tools/dependencychecker" includes="**/*.class"/>
        </delete>
        -->
    </target>

    <target name="setup-dependencychecker" description="Compile dependency checker java files" depends="clean-dependencychecker">
        <javac srcdir="${basedir}/tools/dependencychecker"/>
    </target>

    <target name="dependencychecker-framework" description="Run dependency checker on framework.swc" depends="setup-dependencychecker">
        <!-- need fork b/c running java from another dir -->
        <java dir="${basedir}/tools/dependencychecker" fork="true" classname="flex.tools.dependencychecker.DependencyChecker" failonerror="true">
            <classpath>
                <pathelement location="${basedir}/tools/dependencychecker"/>
            </classpath>
            <arg value="${basedir}/frameworks/libs/framework.swc" />
        	<arg value="frameworkSwcExceptionsList.txt"/>
        </java>
    </target>
   
	<!--
	    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 Flash Professional file used for integration with Flash Professional -->
                <exclude name="frameworks/projects/flash-integration/FLA/ContentHolder.fla"/>
                <!-- exclude font embedded in asdoc example -->
                <exclude name="frameworks/projects/framework/asdoc/en_US/mx/effects/examples/assets/OpenSans-Regular.ttf"/>
                <!-- exclude media (png, gif, jpg, mp3, flv) -->
                <exclude name="**/*.png"/>
                <exclude name="**/*.gif"/>
                <exclude name="**/*.jpg"/>
                <exclude name="**/*.mp3"/>
                <exclude name="**/*.flv"/>
                <!-- exclude batik icon -->
                <exclude name="modules/thirdparty/batik/sources/*.icns"/>
                <!--          End of binary files           -->
                <!-- exclude batik manifests -->
                <exclude name="modules/thirdparty/batik/sources/*.mf"/>
                <!-- exclude text files -->
                <exclude name="modules/thirdparty/batik/lib/**/LICENSE*.txt"/>
                <exclude name="modules/thirdparty/batik/lib/**/README*.txt"/>
                <!-- exclude w3c sources -->
                <exclude name="modules/thirdparty/batik/resources/org/apache/flex/forks/batik/dom/svg/resources/*.mod"/>
                <exclude name="modules/thirdparty/batik/resources/org/apache/flex/forks/batik/dom/svg/resources/*.dtd"/>
                <exclude name="modules/thirdparty/batik/sources/org/w3c/css/sac/LexicalUnit.java"/>
                <exclude name="modules/thirdparty/batik/sources/org/w3c/flex/forks/css/sac/*.java"/>
                <exclude name="modules/thirdparty/batik/sources/org/w3c/flex/forks/css/sac/helpers/ParserFactory.java"/>
                <!-- exclude config files -->
                <exclude name="modules/thirdparty/batik/svn-revision"/>
                <exclude name="modules/thirdparty/xerces-patch/src/java/META-INF/services/javax.xml.parsers.SAXParserFactory"/>
                <exclude name="modules/thirdparty/xerces-patch/src/java/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration"/>
                <exclude name="modules/thirdparty/xerces-patch/src/java/org/apache/xerces/jaxp/javax.xml.parsers.SAXParserFactory"/>
            </fileset>
        </rat:report>
    </target>

    <target name="rat-unzip" unless="no.zip">
        <antcall target="clean-temp" />
        <unzip src="${basedir}/out/${source.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="rat-check-mustella" depends="rat-taskdef" if="have.rattasks"
        description="Report on licenses in mustella directory.">
    
        <ant dir="${basedir}/mustella" target="clean"/>
        
        <property name="rat.mustella.dir" value="${basedir}/mustella"/>
        <property name="rat.mustella.report" value="rat.mustella.report"/>
                
        <echo message="Checking files at ${rat.mustella.dir}, report is ${basedir}/${rat.mustella.report}"/>
             
        <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" 
            reportFile="${basedir}/${rat.mustella.report}">
            <fileset dir="${rat.mustella.dir}">
                <!--          Start of binary files           -->
                <!-- exclude media (png, gif, jpg, mp3, flv) -->
                <exclude name="assets/**"/>
                <exclude name="tests/**/*.png"/>
                <exclude name="tests/**/*.gif"/>
                <exclude name="tests/**/*.jpg"/>
                <exclude name="tests/**/*.mp3"/>
                <exclude name="tests/**/*.flv"/>
                <!--          End of binary files           -->
                <exclude name="tests/**/*.compile"/>
            </fileset>
        </rat:report>
    </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"/>
	</target>
	
	<target name="create-md5-pixelbender" >
		<echo message="Generating MD5 hashes for release artifacts"/>
		<checksum algorithm="md5" file="${basedir}/out/${binary-pixelbender.kit}.tar.gz" forceOverwrite="yes"/>
		<checksum algorithm="md5" file="${basedir}/out/${binary-pixelbender.kit}.zip" forceOverwrite="yes"/>
		<checksum algorithm="md5" file="${basedir}/out/${source-pixelbender.kit}.tar.gz" forceOverwrite="yes"/>
		<checksum algorithm="md5" file="${basedir}/out/${source-pixelbender.kit}.zip" forceOverwrite="yes"/>
	</target>
    
	<target name="archive-pbj">
		<echo message="Creating an archive of the compiled Pixel Bender files" />
        <echo message="The compiled Pixel Bender files are taken from '${env.PIXELBENDER_COMPILED_HOME}'" />
        
        <tar destfile="${basedir}/out/pb.tar">
          <tarfileset dir="${env.PIXELBENDER_COMPILED_HOME}">
              <include name="frameworks/projects/spark/asdoc/en_US/spark/effects/examples/assets/twist.pbj"/>
              <include name="frameworks/projects/spark/src/spark/effects/CrossFade.pbj"/>
              <include name="frameworks/projects/spark/src/spark/effects/WipeDown.pbj"/>
              <include name="frameworks/projects/spark/src/spark/effects/WipeUp.pbj"/>
              <include name="frameworks/projects/spark/src/spark/effects/WipeLeft.pbj"/>
              <include name="frameworks/projects/spark/src/spark/effects/WipeRight.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/Color.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorBurn.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodge.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/Exclusion.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/Hue.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/Luminosity.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/LuminosityMaskFilter.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/Saturation.pbj"/>
              <include name="frameworks/projects/framework/src/mx/graphics/shaderClasses/SoftLight.pbj"/>
          </tarfileset>
        </tar>
        <gzip destfile="${basedir}/out/pb.tar.gz" src="${basedir}/out/pb.tar"/>
	    <delete file="${basedir}/out/pb.tar" failonerror="false" />
	</target>

    <!--
     Run the Apache Rat audit tool against a directory without filters.
     The report is written to rat.report.
     
     Specify the folder to scan 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-dir" depends="rat-taskdef" if="have.rattasks"
        description="Report on licenses in a folder">
        
        <fail message="rat.dir not specified">
            <condition>
                <not>
                    <isset property="rat.dir"/>
                </not>
            </condition>
        </fail>
        
        <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}">
            </fileset>
        </rat:report>
    </target>

</project>
