<?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>
    </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"/>
        <jar file="${sdk}/lib/compiler.jar" basedir="${compiler}/generated/classes" includes="**/*.properties,org/apache/**/*" excludes="${compiler.ant.binaries},${compiler.font.binaries}">
            <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 .."/>
                <!-- 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" whenmanifestonly="create">
            <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" whenmanifestonly="create">
            <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" whenmanifestonly="create">
            <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" whenmanifestonly="create">
            <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" whenmanifestonly="create">
            <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">
            <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*"/>
            </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"/>

    <!--

        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"/>
    </target>

 </project>
