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

    <!-- 

        PROPERTIES

    -->

    <!-- The 'compiler' property is the absolute path, with forward slashes, -->
    <!-- to the 'compiler' directory that contains this file. -->
    <!-- All input paths are expressed as absolute paths starting with ${compiler}. -->
    <pathconvert property="compiler" dirsep="/">
        <path location="${basedir}"/>
    </pathconvert>

    <!-- The 'env' property contains all the environment variables -->
    <property environment="env"/>
    
    <!-- Properties can be overridden locally by loading a local.properties file -->
    <!-- Java 8 users probably need javadoc.params=-Xdoclint:none -->
    <property file="${compiler}/local.properties"/>
    <property name="javadoc.params" value="" />
    
    <condition property="playerglobal.version" value="${env.PLAYERGLOBAL_VERSION}">
        <isset property="env.PLAYERGLOBAL_VERSION" />
    </condition>
	<property name="playerglobal.version" value="11.1" />
    <property name="env.FLEX_HOME" value="${compiler}/generated/dist/sdk"/>
    <property name="env.PLAYERGLOBAL_HOME" value="${compiler}/generated/dist/sdk/frameworks/libs/player"/>

    <!-- set FLEX_HOME from environment if not already set -->
    <property name="FLEX_HOME" value="${env.FLEX_HOME}"/>
	
	<!-- The Falcon SDK is assembled from sdk project, where 'ant main' has build an SDK -->
	<!-- With the move to git the path to the assumed root is one level less up and doesn't need to include 'branches/develop' -->
	<!-- Old path: -->
    <!-- property name="sdk.branch" value="${compiler}/../../../sdk/branches/develop"/ -->
    <!-- New path: -->	

    <available file="${compiler}/../../flex-sdk" 
            type="dir" 
            property="sdk.branch"
            value="${compiler}/../../flex-sdk" />
			
    <available file="${compiler}/../../sdk" 
            type="dir" 
            property="sdk.branch"
            value="${compiler}/../../sdk" />

    <property name="sdk.branch" value="${FLEX_HOME}" />

    <!-- The 'sdk' property is the absolute path, with forward slashes, to the compiler/generated/dist/sdk directory -->
    <!-- where a Falcon SDK is built -->
    <!-- All output paths are expressed as absolute paths starting with ${sdk} -->
    <property name="sdk" value="${compiler}/generated/dist/sdk"/>

    <property name="src.depend" value="true"/>

    <!-- Options for <javac> tasks -->
    <property name="javac.debug" value="true"/>
    <property name="javac.deprecation" value="false"/>
    <property name="javac.src" value="1.6"/>

    <!-- JAR manifest entries -->
    <property name="manifest.sealed" value="false"/>
    <property name="manifest.Implementation-Title" value="Apache Flex Compiler"/>
    <property name="manifest.Implementation-Version" value="0.5.0"/>
    <property name="manifest.Implementation-Vendor" value="Apache Software Foundation"/>
	
    <property name="compiler.ant.binaries" value="org/apache/flex/compiler/ant/**/*.class"/>
    <property name="compiler.font.binaries" value="org/apache/flex/fonts/**"/>
            
    <!-- label is set by CruiseControl script based on P4 label incrementer -->
    <condition property="build.number" value="${label}">
        <isset property="label"/>
    </condition>
        
    <!--

        CLASSPATHS

    -->

    <path id="classpath">
        <fileset dir="${compiler}/lib" includes="**/*.jar"/>
    </path>

    <!-- 

        MACROS

    -->

    <!-- 
        Defines a <jflex input="..." skeleton="..." output="..."> macro
        for using JFlex to generate a Java-based lexer from a .lex file.
    -->
    <macrodef name="jflex">
        <attribute name="input"/>
        <attribute name="skeleton" default="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/skeleton.default"/>
        <attribute name="output"/>
        <sequential>
            <java jar="${compiler}/lib/JFlex.jar" fork="true">
                <arg value="-d"/>
                <arg value="@{output}"/>
                <arg value="-q"/>
                <arg value="@{input}"/>
                <arg value="--skel"/>
                <arg value="@{skeleton}"/>
            </java>
        </sequential>
    </macrodef>

    <!--
        Defines an <antlr2 input="..." output="..."> macro
        for using ANTLR 2 to generate a Java-based parser from a .g file.
    -->
    <macrodef name="antlr2">
        <attribute name="input"/>
        <attribute name="output"/>
        <sequential>
        	<mkdir dir="@{output}"/>
            <dirname property="antlr2.dirname.@{input}" file="@{input}"/>
            <antlr target="@{input}" outputdirectory="@{output}" dir="${antlr2.dirname.@{input}}">
                <classpath>
                    <pathelement path="${compiler}/lib/antlr.jar"/>
                </classpath>
            </antlr>
        </sequential>
    </macrodef>

    <!--
        Defines an <antlr3 input="..." output="..."> macro
        for using ANTLR 3 to generate a Java-based parser from a .g file.
    -->
    <macrodef name="antlr3">
        <attribute name="input"/>
        <attribute name="output"/>
        <sequential>
            <mkdir dir="@{output}"/>
            <!-- Call antlr3 on command-line because we can't update Ant library path. -->
            <java jar="${compiler}/lib/antlr.jar" fork="yes" failonerror="yes">
                <arg value="@{input}"/>
                <arg value="-o"/>
                <arg value="@{output}"/>
            </java>
        </sequential>
    </macrodef>

    <!--
        Defines a <jburg input="..." output="..."> macro
        for using JBurg to generate a Java-based BURM from a .jbg file.
    -->
    <macrodef name="jburg">
        <attribute name="input"/>
        <attribute name="output"/>
        <sequential>
            <dirname property="jburg.dirname.@{input}" file="@{input}"/>
            <dirname property="jburg.dirname.@{output}" file="@{output}"/>
            <basename property="jburg.basename.@{output}" file="@{output}"/>
            <mkdir dir="${jburg.dirname.@{output}}"/>
            <java classname="jburg.burg.JBurgMain"
                  classpath="${compiler}/generated/classes"
                  fork="true" failonerror="true"
                  dir="${jburg.dirname.@{input}}">
                <arg value="@{input}"/>
                <arg value="-outputdir"/>
                <arg value="${jburg.dirname.@{output}}"/>
                <arg value="-outputfile"/>
                <arg value="${jburg.basename.@{output}}"/>
                <arg value="-g"/>
                <classpath>
                    <pathelement path="${compiler}/generated/classes"/>
                    <pathelement path="${compiler}/lib/antlr.jar"/>
                    <pathelement path="${compiler}/lib/jburg.jar"/>
                </classpath>
            </java>
        </sequential>
    </macrodef>

    <!--
        Defines an <annotate.class file="..." annotation="..."> macro
        used for inserting @SuppressWarnings(...) into generated Java classes,
        in order to keep the build warning-free.
        ANTLR and JBurg generate code that isn't warning-free in Eclipse.
    -->
    <macrodef name="annotate.class">
        <attribute name="file"/>
        <attribute name="annotation"/>
        <sequential>
            <move file="@{file}" tofile="@{file}.temp"/>
            <java classname="org.apache.flex.compiler.tools.AnnotateClass" output="@{file}" fork="false">
                <classpath>
                    <path refid="classpath"/>
                    <pathelement location="${compiler}/generated/classes"/>
                </classpath>
                <arg value="@{file}.temp"/>
                <arg value="@{annotation}"/>
            </java>
            <delete file="@{file}.temp"/>
        </sequential>
    </macrodef>

    <!--

        SETUP

    -->
	
    <target name="download" description="Downloads third-party JARs">
        <ant antfile="${compiler}/downloads.xml" dir="${compiler}"/>
    	<delete dir="${compiler}/in"/>
    </target>
	
	<target name="setup" depends="download" description="Does prelimary build setup">
	</target>

    <!--

        BUILD TOOL COMPILATION

    -->
	
	<!-- The AnnotateClass tool is used to add @SupressWarnings annotations to Java code produced by ANTLR and JBurg -->
	<target name="annotate.class"
		    description="Compiles the AnnotateClass build tool" >
        <mkdir dir="${compiler}/generated/classes"/>
        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/classes" includeAntRuntime="true"
            source="${javac.src}" target="${javac.src}">
            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
            <src path="${compiler}/tools/AnnotateClass"/>
            <classpath>
                <pathelement location="${compiler}/generated/classes"/>
            </classpath>
        </javac>
	</target>
	
	<!-- The UnknownTreePatternInputOutput tool is used to compile an XML file containing unknown AST patterns to a Java class -->
    <target name="unknown.tree.pattern.input.output"
            description="Compiles the UnknownTreePatternInputOutput tool">
        <mkdir dir="${compiler}/generated/classes"/>
        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/classes" classpathref="classpath"
            includeAntRuntime="true" source="${javac.src}" target="${javac.src}">
            <src path="${compiler}/src"/>
            <include name="org/apache/flex/compiler/internal/as/codegen/UnknownTreePatternInputOutput.java"/>
            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
        </javac>
    </target>
	
	<!-- The ProblemLocalizer tool is used to create a problems_en.properties file -->
	<!-- filled with localization strings from classes extending org.apache.flex.compiler.CompilerProblem -->
	<target name="problem.localizer"
	        description="Compiles the ProblemLocalizer build tool">
	    <mkdir dir="${compiler}/generated/classes"/>
	    <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/classes" includeAntRuntime="true"
            source="${javac.src}" target="${javac.src}">
	        <compilerarg value="-Xlint:all,-path,-fallthrough"/>
	        <src path="${compiler}/tools/problemlocalizer"/>
	        <classpath>
	            <pathelement location="${compiler}/generated/classes"/>
	        </classpath>
	    </javac>
	</target>

	
	<!--
	
	    GENERATION OF JAVA CODE WITH JFLEX
	    
	-->
	
	<target name="set.raw.as.tokenizer.uptodate">
		<uptodate property="raw.as.tokenizer.uptodate"
       	          targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/RawASTokenizer.java">
            <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/as">
                <include name="RawASTokenizer.lex"/>
                <include name="skeleton.falcon"/>
            </srcfiles>
		</uptodate>
	</target>
	
	<target name="raw.as.tokenizer" depends="set.raw.as.tokenizer.uptodate" unless="raw.as.tokenizer.uptodate"
		    description="Generates RawASTokenizer.java">
		<echo message="Generating RawASTokenizer"/>
        <jflex input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/RawASTokenizer.lex"
               skeleton="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/skeleton.falcon"
               output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as"/>		
	</target>
	
    <target name="set.raw.asdoc.tokenizer.uptodate">
        <uptodate property="raw.asdoc.tokenizer.uptodate"
                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/RawASDocTokenizer.java">
			<srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/as">
            	<include name="RawASDocTokenizer.lex"/>
            	<include name="skeleton.default"/>
        	</srcfiles>
        </uptodate>
    </target>
    
    <target name="raw.asdoc.tokenizer" depends="set.raw.asdoc.tokenizer.uptodate" unless="raw.asdoc.tokenizer.uptodate"
            description="Generates RawASDocTokenizer.java">
        <echo message="Generating RawASDocTokenizer"/>
        <jflex input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/RawASDocTokenizer.lex"
               output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as"/>
    </target>

    <target name="set.raw.mxml.tokenizer.uptodate">
        <uptodate property="raw.mxml.tokenizer.uptodate"
                 targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.java">
		    <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/mxml">
        	    <include name="RawMXMLTokenizer.lex"/>
        	    <include name="skeleton.default"/>
    	    </srcfiles>
        </uptodate>
    </target>
    
    <target name="raw.mxml.tokenizer" depends="set.raw.mxml.tokenizer.uptodate" unless="raw.mxml.tokenizer.uptodate"
            description="Generates RawMXMLTokenizer.java">
        <echo message="Generating RawMXMLTokenizer"/>
        <jflex input="${compiler}/src/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.lex"
               output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/mxml"/>
    </target>

	<target name="jflex" depends="raw.as.tokenizer, raw.asdoc.tokenizer, raw.mxml.tokenizer"
		    description="Generates Java code with JFlex"/>

    <!--
    
        GENERATION OF JAVA CODE WITH ANTLR
        
    -->
	
	<target name="set.as.parser.uptodate">
		<uptodate property="as.parser.uptodate"
		          srcfile="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/ASParser.g"
		          targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/ASParser.java"/>
	</target>
	
    <target name="as.parser" depends="annotate.class, set.as.parser.uptodate" unless="as.parser.uptodate">
    	<echo message="Generating ASParser and ASTokenTypes"/>
        <antlr2 input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/ASParser.g"
                output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as"/>
        <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/ASParser.java"
                        annotation='@SuppressWarnings("unused")'/>
        <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/ASTokenTypes.java"
                        annotation='@SuppressWarnings("unused")'/>   
    </target>
	
	<target name="set.metadata.parser.uptodate">
        <uptodate property="metadata.parser.uptodate"
                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.java">
	        <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/as">
    	        <include name="MetadataParser.g"/>
    	        <include name="ImportMetadataTokenTypes.txt"/>
	        </srcfiles>
        </uptodate>
	</target>
    
    <target name="metadata.parser" depends="annotate.class, set.metadata.parser.uptodate" unless="metadata.parser.uptodate">
    	<echo message="Generating MetadataParser and MetadataTokenTypes"/>
        <antlr2 input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.g"
                output="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as"/>
        <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.java"
                         annotation='@SuppressWarnings("all")'/>    
        <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/MetadataTokenTypes.java"
                         annotation='@SuppressWarnings("unused")'/>    
    </target>
    
    <target name="set.css.lexer.and.parser.uptodate">
        <uptodate property="css.lexer.and.parser.uptodate"
                  srcfile="${compiler}/src/org/apache/flex/compiler/internal/css/CSS.g"
                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSParser.java"/>
    </target>

    <target name="css.lexer.and.parser" depends="annotate.class, set.css.lexer.and.parser.uptodate" unless="css.lexer.and.parser.uptodate">
    	<echo message="Generating CSSLexer and CSSParser"/>
        <antlr3 input="${compiler}/src/org/apache/flex/compiler/internal/css/CSS.g"
                output="${compiler}/generated/src/org/apache/flex/compiler/internal/css"/>
        <!--<annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSLexer.java"
                        annotation='@SuppressWarnings("unused")'/>-->
        <!--<annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSParser.java"
                        annotation='@SuppressWarnings("unused")'/>-->
    </target>
        
    <target name="set.css.tree.uptodate">
        <uptodate property="css.tree.uptodate"
                  srcfile="${compiler}/src/org/apache/flex/compiler/internal/css/CSSTree.g"
                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSTree.java"/>
    </target>

    <target name="css.tree" depends="annotate.class, set.css.tree.uptodate" unless="css.tree.uptodate">
    	<echo message="Generating CSSTree"/>
        <antlr3 input="${compiler}/src/org/apache/flex/compiler/internal/css/CSSTree.g"
                output="${compiler}/generated/src/org/apache/flex/compiler/internal/css"/>
        <!--<annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/css/CSSTree.java"
                        annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/>-->        
    </target>
        
    <target name="antlr" depends="as.parser, metadata.parser, css.lexer.and.parser, css.tree"
   	        description="Generates Java code with ANTLR"/>

    <!--
    
        GENERATION OF JAVA CODE WITH JBURG
        
    -->
 
    <target name="node.adapter">
        <mkdir dir="${compiler}/generated/classes"/>
        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/classes" classpathref="classpath"
            includeAntRuntime="true" source="${javac.src}" target="${javac.src}">
            <src path="${compiler}/src"/>
        	<include name="org/apache/flex/compiler/internal/as/codegen/IASNodeAdapter.java"/>
            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
        </javac>
    </target>
	
	<target name="set.unknown.tree.handler.patterns.uptodate">
		<uptodate property="unknown.tree.handler.patterns.uptodate"
		          srcfile="${compiler}/src/org/apache/flex/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.xml"
		          targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.java"/>
	</target>

    <target name="unknown.tree.handler.patterns" depends="unknown.tree.pattern.input.output, set.unknown.tree.handler.patterns.uptodate" unless="unknown.tree.handler.patterns.uptodate">
        <mkdir dir="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen"/>
        <java classname="org.apache.flex.compiler.internal.as.codegen.UnknownTreePatternInputOutput" fork="true" failonerror="true">
            <arg value="${compiler}/src/org/apache/flex/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.xml"/>
            <arg value="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.java"/>
            <classpath>
                <pathelement location="${compiler}/generated/classes"/>
            </classpath>
        </java>
    </target>

	<target name="set.cmc.emitter.uptodate">
        <uptodate property="cmc.emitter.uptodate"
                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java">
	        <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/as/codegen">
    	        <include name="*.jbg"/>
	        </srcfiles>
		</uptodate>
	</target>
	
	<target name="cmc.emitter" depends="annotate.class, node.adapter, unknown.tree.handler.patterns, set.cmc.emitter.uptodate" unless="cmc.emitter.uptodate">
		<echo message="Generating CmcEmitter"/>
        <jburg input="${compiler}/src/org/apache/flex/compiler/internal/as/codegen/cmc.jbg"
               output="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java"/>
        <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java"
                        annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/>		
	</target>
	
	<target name="set.css.emitter.uptodate">
        <uptodate property="css.emitter.uptodate"
                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java">
	        <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/css/codegen">
	            <include name="css.jbg"/>
	            <include name="CSSPatterns.jbg"/>
	            <include name="CSSRules.jbg"/>
	        </srcfiles>
        </uptodate>
	</target>
	
	<target name="css.emitter" depends="annotate.class, set.css.emitter.uptodate" unless="css.emitter.uptodate">
        <echo message="Generating CSSEmitter"/>
        <jburg input="${compiler}/src/org/apache/flex/compiler/internal/css/codegen/css.jbg"
               output="${compiler}/generated/src/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java"/>
        <annotate.class file="${compiler}/generated/src/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java"
                        annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/>	
	</target>
	
	<target name="jburg" depends="cmc.emitter, css.emitter"
	        description="Generates Java code with JBurg"/>
	
	<!--
	
	   ECLIPSE SETUP
	
	-->
	
	<target name="eclipse" depends="setup, jflex, antlr, jburg"
		    description="Prepares for building in Eclipse by generating Java code with JFlex, ANTLR, and JBurg"/>
				
    <!--

        JAVADOC

    -->
	
	<target name="set.javadoc.zip.uptodate">
		<uptodate property="javadoc.zip.uptodate"
		          targetfile="${compiler}/generated/javadoc.zip">
			<srcfiles dir="${compiler}/src">
				<include name="**/*.java"/>
			</srcfiles>
			<srcfiles dir="${compiler}/generated/src">
				<include name="**/*.java"/>
			</srcfiles>
		</uptodate>
	</target>

    <target name="javadoc" depends="eclipse, set.javadoc.zip.uptodate" unless="javadoc.zip.uptodate"
    	    description="Builds Javadoc">
        <javadoc destdir="${compiler}/generated/javadoc" useexternalfile="yes" overview="${compiler}/src/overview.html" failonerror="true" maxmemory="512m" additionalparam="${javadoc.params}">
            <sourcefiles>
                <fileset dir="${compiler}/src" includes="**/*.java"/>
                <fileset dir="${compiler}/generated/src" includes="**/*.java"/>
            </sourcefiles>
            <classpath>
                <path refid="classpath"/>
                <pathelement location="${ant.core.lib}"/> 
            </classpath>
            <tag name="note" description="Note:"/>
            <tag name="post" description="Postcondition:"/>
            <tag name="pre" description="Precondition:"/>
        </javadoc>
        <zip destfile="${compiler}/generated/javadoc.zip">
            <zipfileset dir="${compiler}/generated/javadoc" prefix="javadoc"/>
        </zip>
    </target>

    <!--

        BUILDING

    -->

    <target name="src.depend" if="src.depend">
        <depend srcdir="${compiler}/src;${compiler}/generated/src"
                destdir="${compiler}/generated/classes" cache="${compiler}/generated/classes"/>
    </target>

    <target name="compile" depends="eclipse, src.depend" description="compile">
        <javac debug="${javac.debug}" deprecation="${javac.deprecation}"
        	   includes="**/*.java" destdir="${compiler}/generated/classes" classpathref="classpath" includeAntRuntime="true"
               source="${javac.src}" target="${javac.src}">
            <src path="${compiler}/src"/>
            <src path="${compiler}/generated/src"/>
            <compilerarg value="-Xlint:all,-path,-fallthrough,-cast"/>
        </javac>
        <copy todir="${compiler}/generated/classes">
            <fileset dir="${compiler}/src" includes="**/*.properties"/>
        </copy>
        <!-- Copy the config file for the flex-tool-api. -->
        <copy todir="${compiler}/generated/classes/META-INF/services"
              file="src/META-INF/services/org.apache.flex.tools.FlexToolGroup"/>
    </target>
	
	<target name="set.messages.en.uptodate">
		<uptodate property="messages.en.uptodate"
		          targetfile="${compiler}/generated/classes/org/apache/flex/compiler/messages_en.properties">
			<srcfiles dir="${compiler}/generated/classes/org/apache/flex/compiler/problems">
				<include name="*Problem.class"/>
			</srcfiles>
		</uptodate>
	</target>

    <target name="localization" depends="compile, problem.localizer, set.messages.en.uptodate" unless="messages.en.uptodate"
    	    description="Creates message_en.properties file">
        <echo message="Creating messages_en.properties file for compiler problem localization"/>
        <java classname="org.apache.flex.compiler.tools.ProblemLocalizer" fork="true">
            <classpath>
                <pathelement location="${compiler}/generated/classes"/>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
            </classpath>
            <!-- arg0: location of directory to search for problem class files -->
            <arg value="${compiler}/generated/classes/org/apache/flex/compiler/problems"/>
            <!-- arg1: location of where to write messages_en.properties -->
            <arg value="${compiler}/generated/classes/org/apache/flex/compiler"/>
        </java>
    </target>

    <target name="version-info" unless="build.number">
        <property name="build.number" value="0"/>
    </target>
	
	<target name="set.compiler.jar.uptodate">
		<uptodate property="compiler.jar.uptodate"
		          targetfile="${sdk}/lib/compiler.jar">
			<srcfiles dir="${compiler}/generated/classes">
				<include name="**/*.class"/>
				<include name="**/*.properties"/>
			</srcfiles>
		</uptodate>
	</target>
	
	<target name="compiler.jar" depends="compile, localization, version-info, set.compiler.jar.uptodate" unless="compiler.jar.uptodate"
		    description="Builds compiler.jar">
        <mkdir dir="${sdk}/lib"/>
        <copy file="${basedir}/../LICENSE.base" tofile="${compiler}/generated/classes/META-INF/LICENSE"/>
        <copy file="${basedir}/../NOTICE.base" tofile="${compiler}/generated/classes/META-INF/NOTICE"/>
        <jar file="${sdk}/lib/compiler.jar" basedir="${compiler}/generated/classes" includes="**/*.properties,org/apache/**/*,META-INF/**/*" excludes="${compiler.ant.binaries},${compiler.font.binaries}">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Class-Path" value="external/antlr.jar external/commons-cli.jar external/commons-io.jar external/guava.jar external/lzma-sdk.jar external/flex-tool-api.jar .."/>
                <!-- The .. in the line above allows the compiler to load the env.properties file -->
            </manifest>
        </jar>
	</target>
	
	<target name="set.falcon.asc.jar.uptodate">
		<uptodate property="falcon.asc.jar.uptodate"
		          targetfile="${sdk}/lib/falcon-asc.jar">
			<srcfiles dir="${compiler}/generated/classes">
				<include name="**/*.class"/>
				<include name="**/*.properties"/>
			</srcfiles>
		</uptodate>
	</target>
	
	<target name="falcon.asc.jar" depends="compiler.jar, set.falcon.asc.jar.uptodate" unless="falcon.asc.jar.uptodate">
        <mkdir dir="${sdk}/lib"/>
        <jar file="${sdk}/lib/falcon-asc.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - ASC Command Line Compiler"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="org.apache.flex.compiler.clients.ASC"/>
                <attribute name="Class-Path" value="compiler.jar"/>
            </manifest>
        </jar>
	</target>

	<target name="set.falcon.mxmlc.jar.uptodate">
		<uptodate property="falcon.mxmlc.jar.uptodate"
		          targetfile="${sdk}/lib/falcon-mxmlc.jar">
			<srcfiles dir="${compiler}/generated/classes">
				<include name="**/*.class"/>
				<include name="**/*.properties"/>
			</srcfiles>
		</uptodate>
	</target>
	
	<target name="falcon.mxmlc.jar" depends="compiler.jar, set.falcon.mxmlc.jar.uptodate" unless="falcon.mxmlc.jar.uptodate">
        <mkdir dir="${sdk}/lib"/>
        <jar file="${sdk}/lib/falcon-mxmlc.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - MXMLC Command Line Compiler"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="org.apache.flex.compiler.clients.MXMLC"/>
                <attribute name="Class-Path" value="compiler.jar"/>
            </manifest>
        </jar>
	</target>

	<target name="set.falcon.compc.jar.uptodate">
		<uptodate property="falcon.compc.jar.uptodate"
		          targetfile="${sdk}/lib/falcon-compc.jar">
			<srcfiles dir="${compiler}/generated/classes">
				<include name="**/*.class"/>
				<include name="**/*.properties"/>
			</srcfiles>
		</uptodate>
	</target>
	
	<target name="falcon.compc.jar" depends="compiler.jar, set.falcon.compc.jar.uptodate" unless="falcon.compc.jar.uptodate">
        <mkdir dir="${sdk}/lib"/>
        <jar file="${sdk}/lib/falcon-compc.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - COMPC Command Line Compiler"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="org.apache.flex.compiler.clients.COMPC"/>
                <attribute name="Class-Path" value="compiler.jar"/>
            </manifest>
        </jar>
	</target>

	<target name="set.falcon.optimizer.jar.uptodate">
		<uptodate property="falcon.optimizer.jar.uptodate"
		          targetfile="${sdk}/lib/falcon-optimizer.jar">
			<srcfiles dir="${compiler}/generated/classes">
				<include name="**/*.class"/>
				<include name="**/*.properties"/>
			</srcfiles>
		</uptodate>
	</target>
	
	<target name="falcon.optimizer.jar" depends="compiler.jar, set.falcon.optimizer.jar.uptodate" unless="falcon.optimizer.jar.uptodate">
        <mkdir dir="${sdk}/lib"/>
        <jar file="${sdk}/lib/falcon-optimizer.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - Apache SWF Optimizer"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="org.apache.flex.compiler.clients.Optimizer"/>
                <attribute name="Class-Path" value="compiler.jar"/>
            </manifest>
        </jar>
	</target>

	<target name="set.falcon.swfdump.jar.uptodate">
		<uptodate property="falcon.swfdump.jar.uptodate"
		          targetfile="${sdk}/lib/falcon-swfdump.jar">
			<srcfiles dir="${compiler}/generated/classes">
				<include name="**/*.class"/>
				<include name="**/*.properties"/>
			</srcfiles>
		</uptodate>
	</target>
	
	<target name="falcon.swfdump.jar" depends="compiler.jar, set.falcon.swfdump.jar.uptodate" unless="falcon.swfdump.jar.uptodate">
        <mkdir dir="${sdk}/lib"/>
        <jar file="${sdk}/lib/falcon-swfdump.jar" basedir="${compiler}/generated/classes" whenmanifestonly="create">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - SWF Dump Command Line utility"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="org.apache.flex.swf.io.SWFDump"/>
                <attribute name="Class-Path" value="compiler.jar commons-io.jar"/>
            </manifest>
        </jar>
	</target>

	<target name="set.falcon.flextasks.jar.uptodate">
		<uptodate property="falcon.flextasks.jar.uptodate"
		          targetfile="${sdk}/lib/falcon-flextasks.jar">
			<srcfiles dir="${compiler}/generated/classes">
				<include name="**/*.class"/>
				<include name="**/*.properties"/>
			</srcfiles>
		</uptodate>
	</target>
	
	<target name="falcon.flextasks.jar" depends="compiler.jar, set.falcon.flextasks.jar.uptodate" unless="falcon.flextasks.jar.uptodate">
        <mkdir dir="${sdk}/lib"/>
        <jar file="${sdk}/lib/falcon-flexTasks.jar" basedir="${compiler}/generated/classes" >
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - ant Tasks"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Class-Path" value="compiler.jar"/>
            </manifest>
            <fileset dir="${compiler}" includes="flexTasks.tasks"/>
            <fileset dir="${compiler}/generated/classes" includes="${compiler.ant.binaries}"/>
        </jar>
	</target>

    <target name="jar" depends="compiler.jar, falcon.asc.jar, falcon.mxmlc.jar, falcon.compc.jar, falcon.optimizer.jar, falcon.swfdump.jar, falcon.flextasks.jar"
    	    description="Creates JAR files"/>
	    
    <!--

        SDK

    -->
	
	<target name="bin-legacy">
		<mkdir dir="${sdk}/bin-legacy" />
        <copy todir="${sdk}/bin-legacy" includeEmptyDirs="false">
            <fileset dir="${sdk.branch}/bin">
                <include name="**/*"/>
            </fileset>
        </copy>
        <replace dir="${sdk}/bin-legacy" value="/lib-legacy/" >
            <include name="**/*"/>
            <replacetoken>/lib/</replacetoken>
        </replace>
    </target>
    
	<target name="set.flex.config.xml.available">
		<available property="flex.config.xml.available" file="${sdk}/frameworks/flex-config.xml"/>
	</target>
    
    <target name="copy.sdk" depends="bin-legacy,set.flex.config.xml.available" unless="flex.config.xml.available"
    	    description="Copy a subset of the Flex SDK to our Falcon SDK area." >
    	<echo message="Copying SDK"/>
        <!-- Copy portions of this SDK to create Falcon's generated SDK -->
        <copy todir="${sdk}" includeEmptyDirs="false">
            <fileset dir="${sdk.branch}">
                <include name="frameworks/**/*"/>
                <exclude name="frameworks/projects/**/*"/>
             </fileset>
        </copy>
        <copy todir="${sdk}/lib-legacy" failOnError="false" overwrite="false">
            <fileset dir="${sdk.branch}/lib">
                <include name="**/*"/>
            </fileset>
        </copy>
        <!-- If sdk.branch is set to binary distro flexTasks is in a different place. -->
        <copy todir="${sdk}/lib" failOnError="false" overwrite="false">
            <fileset dir="${sdk.branch}/ant/lib">
                <include name="flexTasks.jar"/>
            </fileset>
        </copy>    

        <copy todir="${sdk}/bin" includeEmptyDirs="false">
            <fileset dir="${compiler}/commandline">
                <include name="**/*"/>
            </fileset>
        </copy>
        <!-- Copy compiler external dependencies -->
        <copy todir="${sdk}/lib/external" includeEmptyDirs="false">
            <fileset dir="${compiler}/lib">
                <include name="antlr*"/>
                <include name="commons-*"/>
                <include name="guava*"/>
                <include name="lzma*"/>
                <include name="flex-tool-api*"/>
            </fileset>
        </copy>
        <copy file="${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc" todir="${sdk}/frameworks/libs/player/${playerglobal.version}"/>
        <copy file="${env.AIR_HOME}/frameworks/libs/air/airglobal.swc" todir="${sdk}/frameworks/libs/air"/>
        <!-- Create an env.properties file that tells the compiler's configuration system how to expand {playerglobalHome} and {airHome} -->
        <echo message="env.PLAYERGLOBAL_HOME=${sdk}/frameworks/libs/player${line.separator}" file="${sdk}/env.properties"/>
        <echo message="env.AIR_HOME=${sdk}${line.separator}" file="${sdk}/env.properties" append="true"/>
    </target>
	
    <target name="stage.sdk" depends="bin-legacy,set.flex.config.xml.available" unless="flex.config.xml.available"
        description="Copy a subset of the Flex SDK to our Falcon SDK area." >
        <echo message="Copying SDK"/>
        
        <copy todir="${sdk}/bin" includeEmptyDirs="false">
            <fileset dir="${compiler}/commandline">
                <include name="**/*"/>
            </fileset>
        </copy>
        <mkdir dir="${sdk}/frameworks" />
        <copy todir="${sdk}/frameworks" includeEmptyDirs="false">
            <fileset dir="${sdk.branch}/frameworks">
                <include name="mxml-2009-manifest.xml"/>
            </fileset>
        </copy>
    </target>
    
	<target name="set.support.swc.available">
		<available property="support.swc.available" file="${sdk}/frameworks/libs/support.swc"/>
	</target>
    
    <target name="support.swc" depends="copy.sdk, set.support.swc.available" unless="support.swc.available"
	        description="Builds support.swc">
        <echo message="Building support.swc"/>
        <taskdef name="compc" classname="flex.ant.CompcTask">
            <!-- If using the development branch then in lib directory and if using a binary kit in ant/lib directory.  -->
            <classpath>
                <pathelement location="${compiler}/generated/dist/sdk/lib/flexTasks.jar"/>
                <pathelement location="${compiler}/generated/dist/sdk/ant/lib/flexTasks.jar"/>
            </classpath>
        </taskdef>
        <compc output="${sdk}/frameworks/libs/support.swc" include-classes="mx.managers.SystemManager mx.core.FlexModuleFactory StyleModuleBase EmptyModuleFactory">
            <include-sources dir="${compiler}/dist/flex/frameworks/projects/support/multiDefSrc" includes="*.*"/>
            <source-path path-element="${compiler}/dist/flex/frameworks/projects/support/src"/>
            <load-config append="true" filename="${compiler}/dist/flex/frameworks/projects/support/framework-config.xml"/>
            <library-path />
            <external-library-path append="true" dir="${FLEX_HOME}/frameworks/libs">
                <include name="framework.swc"/>
                <include name="textLayout.swc"/>
            </external-library-path>
        </compc>
    </target>
	
	<target name="sdk" depends="jar, dist-dev" description="Builds a Falcon SDK"/>

    <target name="release-binaries" >
        <!-- set flag so sdk is not copied -->
        <property name="flex.config.xml.available" value="true" />
        <antcall target="sdk" />
    </target>

    <target name="main" depends="sdk" description="Default target - Builds a Falcon SDK">
        <tstamp>
            <format property="build.datetime" pattern="MM/dd/yyyy hh:mm:ss aa"/>
        </tstamp>
        <echo>compiler main completed on ${build.datetime}</echo>
    </target>

	<!--

        PACKAGING

    -->

    <target name="dist-dev" depends="jar">
        <copy todir="${sdk}/lib/external" includeEmptyDirs="false">
            <fileset dir="${compiler}/lib">
                <include name="**/*"/>
                <exclude name="ant-1.7.0*"/>
            </fileset>
        </copy>
        <copy todir="${sdk}/ant/lib" file="${sdk}/lib/falcon-flexTasks.jar"/>
        <copy todir="${sdk}/bin" includeEmptyDirs="false">
            <fileset dir="${compiler}/commandline">
                <include name="**/*"/>
            </fileset>
        </copy>
        <chmod perm="ugo+rx">
            <fileset dir="${sdk}">
                <include name="bin/**/*"/>
                <include name="bin-legacy/**/*"/>
                <exclude name="bin/**/*.bat"/>
                <exclude name="bin/**/*.exe"/>
                <exclude name="bin-legacy/**/*.bat"/>
                <exclude name="bin-legacy/**/*.exe"/>
            </fileset>
        </chmod>
    </target>

    <target name="dist" depends="copy.sdk, jar, support.swc">
        <copy todir="${sdk}/lib" includeEmptyDirs="false">
            <fileset dir="${compiler}/lib">
                <include name="**/*"/>
                <exclude name="ant-1.7.0*"/>
            </fileset>
        </copy>
        <copy todir="${sdk}/ant/lib" file="${flexTasks.jar}"/>
        <copy todir="${sdk}/bin" includeEmptyDirs="false">
            <fileset dir="${compiler}/commandline">
                <include name="**/*"/>
            </fileset>
        </copy>
        <chmod perm="ugo+rx">
            <fileset dir="${sdk}">
                <include name="bin/**/*"/>
                <include name="bin-legacy/**/*"/>
                <exclude name="bin/**/*.bat"/>
                <exclude name="bin/**/*.exe"/>
                <exclude name="bin-legacy/**/*.bat"/>
                <exclude name="bin-legacy/**/*.exe"/>
            </fileset>
        </chmod>
    </target>

    <target name="dist.flex.sdk" depends="dist" description="Package up Flex SDK with Falcon.">
        <mkdir dir="${compiler}/generated/dist"/>
        <zip destfile="${compiler}/generated/dist/falcon.zip">
            <zipfileset dir="${sdk}">
                <include name="**/*"/>
                <exclude name="bin/*"/>
                <exclude name="bin-legacy/*"/>
                <exclude name="**/commons-exec-1.1.*"/>
            </zipfileset>
            <zipfileset dir="${sdk}" filemode="755">
                <include name="bin/*"/>
                <include name="bin-legacy/*"/>
            </zipfileset>
        </zip>
    </target>

    <target name="dist.runtime.legacy" description="Re-package legacy asdoc.jar and fdb.jar to support these legacy command-line tools" >
        <mkdir dir="${sdk}/lib/legacy"/>
        <!-- legacy-common.jar -->
        <jar destfile="${sdk}/lib/legacy/legacy-common.jar">
            <zipgroupfileset dir="${sdk}/lib" >
                <include name="mxmlc.jar"/>
                <include name="asc.jar"/>
                <include name="xmlParserAPIs.jar"/>
                <include name="batik-all-flex.jar"/>
                 <include name="commons-collections*.jar"/>
                <include name="commons-discovery*.jar"/>
                <include name="commons-logging*.jar"/>
                <include name="license.jar"/>
                <include name="swfutils.jar"/>
                <include name="fxgutils.jar"/>
                <include name="flex-messaging-common.jar"/>
                <include name="mxmlc_*.jar"/>
                <include name="xalan.jar"/>
                <include name="saxon9.jar"/>
                <include name="velocity-dep-1.4-flex.jar"/>
            </zipgroupfileset>        
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - Legacy Common Libraries"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
            </manifest>
        </jar>
        <!-- asdoc.jar -->
        <jar file="${sdk}/lib/legacy/asdoc.jar">
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - Legacy ASDoc"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="flex2.tools.ASDoc"/>
                <attribute name="Class-Path" value="legacy-common.jar"/>
            </manifest>
        </jar>
        <!-- fdb.jar -->
        <jar file="${sdk}/lib/legacy/fdb.jar">
            <zipgroupfileset dir="${compiler}/dist/runtime/fdb" >
                <include name="fdb.jar"/>
            </zipgroupfileset>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - Legacy FDB"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="flex.tools.debugger.cli.DebugCLI"/>
                <attribute name="Class-Path" value="legacy-common.jar"/>
            </manifest>
        </jar>
    </target>
    
    <target name="dist.runtime.sdk" depends="dist" description="Package up Falcon as an overlay for the AIR SDK.">
        <mkdir dir="${compiler}/generated/dist"/>
        <zip destfile="${compiler}/generated/dist/falcon-runtime-overlay.zip">
            <zipfileset dir="${sdk}">
                <include name="ant/lib/flexTasks.jar"/>
                <include name="asdoc/**"/>
                <include name="frameworks/libs/core.swc"/>
                <include name="lib/legacy/**"/>
                <include name="lib/afe.jar"/>
                <include name="lib/aglj40.jar"/>
                <include name="lib/antlr*"/>
                <include name="lib/commons-cli*"/>
                <include name="lib/commons-io*"/>
                <include name="lib/compiler.jar"/>
                <include name="lib/falcon*.jar"/>
                <include name="lib/guava*.jar"/>
                <include name="lib/lzma*"/>
                <include name="lib/rideau*"/>
                <include name="templates/swfobject/**"/>
            </zipfileset>
            <zipfileset dir="${sdk}" filemode="755">
                <include name="bin/acompc*"/>
                <include name="bin/amxmlc*"/>
                <include name="bin/asc*"/>
                <include name="bin/compc*"/>
                <include name="bin/fontswf*"/>
                <include name="bin/mxmlc*"/>
                <include name="bin/optimizer*"/>
                <include name="bin/swfdump*"/>
            </zipfileset>
            <zipfileset dir="${compiler}/dist/runtime" filemode="755">
                <include name="bin/aasdoc*"/>
                <include name="bin/asdoc*"/>
                <include name="bin/fdb*"/>
            </zipfileset>
            <zipfileset dir="${compiler}/dist/runtime">
                <include name="lib/legacy/legacy-common*.txt"/>
                <include name="frameworks/air-config.xml"/>
                <include name="frameworks/airmobile-config.xml"/>
                <include name="frameworks/flex-config.xml"/>
            </zipfileset>
        </zip>
    </target>

    <target name="dist.localization" depends="compile">
        <mkdir dir="${compiler}/generated/dist"/>
        <copy todir="${compiler}/generated/dist">
            <fileset dir="${compiler}/generated/classes/org/apache/flex/compiler" includes="*_en.properties"/>
        </copy>
    </target>

    <target name="package" depends="dist, dist.flex.sdk, dist.localization" description="Package the compiler for Falcon Flex SDK, Runtime SDK"/>

    <!--

        CREATE MAVEN ARTIFACTS

    -->

    <target name="maven-artifacts" depends="sdk" xmlns:artifact="antlib:org.apache.maven.artifact.ant">

        <!-- Make sure the maven-ant-tasks jar is available. -->
        <ant antfile="downloads.xml" target="maven-related"/>

        <!-- Setup the maven-ant-tasks. -->
        <path id="maven-ant-tasks.classpath" path="utils/maven-ant-tasks.jar" />
        <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
                 uri="antlib:org.apache.maven.artifact.ant"
                 classpathref="maven-ant-tasks.classpath"/>

        <property name="falcon.version" value="${manifest.Implementation-Version}"/>
        <mkdir dir="generated/maven"/>

        <!--
            Remark:
            There currently seems to be a bug in the maven-ant-tasks that
            prevents the install target from working correctly. Therefore
            instead of directly defining the pom, we have to define it,
            write it to disk and use the disk-pom to install the artifact.
        -->

        <!-- Install jburg as it's not publicly available in Maven -->
        <artifact:pom id="jburgPom" groupId="net.sourceforge.jburg" artifactid="jburg" version="1.10.1"/>
        <artifact:writepom pomrefid="jburgPom" file="generated/maven/jburg.pom"/>
        <artifact:install file="lib/jburg.jar">
            <artifact:pom file="generated/maven/jburg.pom"/>
        </artifact:install>

        <!-- Install lzma-sdk as it's not publicly available in Maven -->
        <artifact:pom id="lzmaSdkPom" groupId="de.7zip" artifactid="lzma-sdk" version="9.20"/>
        <artifact:writepom pomrefid="lzmaSdkPom" file="generated/maven/lzma-sdk.pom"/>
        <artifact:install file="lib/lzma-sdk.jar">
            <artifact:pom file="generated/maven/lzma-sdk.pom"/>
        </artifact:install>

        <!-- Install falcon -->
        <artifact:pom id="falconPom" groupId="org.apache.flex.compiler.falcon" artifactId="compiler"
                      version="${falcon.version}">
            <artifact:dependency groupId="org.antlr" artifactId="antlr" version="3.5.2"/>
            <artifact:dependency groupId="commons-cli" artifactId="commons-cli" version="1.2"/>
            <artifact:dependency groupId="commons-io" artifactId="commons-io" version="2.4"/>
            <artifact:dependency groupId="com.google.guava" artifactId="guava" version="17.0"/>
            <artifact:dependency groupId="net.sourceforge.jburg" artifactId="jburg" version="1.10.1"/>
            <artifact:dependency groupId="de.jflex" artifactId="jflex" version="1.6.0"/>
            <artifact:dependency groupId="de.7zip" artifactId="lzma" version="9.20"/>
            <artifact:license name="apache" url="http://www.apache.org"/>
        </artifact:pom>
        <artifact:writepom pomrefid="falconPom" file="generated/maven/compiler.pom"/>
        <artifact:install file="generated/dist/sdk/lib/compiler.jar">
            <artifact:pom file="generated/maven/compiler.pom"/>
        </artifact:install>
    </target>

    <!--

        CLEANUP

    -->

    <target name="clean" description="clean">
        <delete dir="${compiler}/generated"/>
    </target>

    <target name="wipe" depends="clean" description="Wipes everything that didn't come from Git.">
        <delete dir="${compiler}/lib"/>
        <delete dir="${compiler}/utils"/>
    </target>

 </project>
