<?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 -->
    <property file="${compiler}/local.properties"/>
    
	<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.0.3"/>
    <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, copy.sdk"
		    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">
            <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="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, javadoc" description="Default target - Builds a Falcon SDK and builds Falcon Javadoc">
        <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>
