You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by go...@apache.org on 2012/09/15 08:21:51 UTC

svn commit: r1385019 - in /incubator/flex/falcon/trunk/compiler: .classpath build.xml

Author: gordonsmith
Date: Sat Sep 15 06:21:51 2012
New Revision: 1385019

URL: http://svn.apache.org/viewvc?rev=1385019&view=rev
Log:
Falcon: More cleanup up Ant scripts to improve consistency and incrementality, and to present targets in build order.

Modified:
    incubator/flex/falcon/trunk/compiler/.classpath
    incubator/flex/falcon/trunk/compiler/build.xml

Modified: incubator/flex/falcon/trunk/compiler/.classpath
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler/.classpath?rev=1385019&r1=1385018&r2=1385019&view=diff
==============================================================================
--- incubator/flex/falcon/trunk/compiler/.classpath (original)
+++ incubator/flex/falcon/trunk/compiler/.classpath Sat Sep 15 06:21:51 2012
@@ -1,8 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="generated/intermediates/generatedSrc/as3.codegen"/>
-	<classpathentry kind="src" path="generated/intermediates/generatedSrc/as3.parser"/>
-	<classpathentry kind="src" path="generated/intermediates/generatedSrc/problemid"/>
+	<classpathentry kind="src" path="generated/src"/>
 	<classpathentry excluding="org/apache/flex/compiler/internal/as/codegen/IASNodeAdapter.java" kind="src" path="src"/>
 	<classpathentry excluding=".svn/|org/.svn/|org/apache/.svn/|org/apache/flex/.svn/|org/apache/flex/compiler/.svn/|org/apache/flex/compiler/tools/.svn/" kind="src" path="tools/AnnotateClass"/>
 	<classpathentry excluding=".svn/|org/.svn/|org/apache/.svn/|org/apache/flex/.svn/|org/apache/flex/compiler/.svn/|org/apache/flex/compiler/tools/.svn/" kind="src" path="tools/problemEnumGenerator"/>
@@ -14,5 +12,5 @@
 	<classpathentry kind="lib" path="lib/lzma-sdk.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="var" path="ANT_JAR"/>
-	<classpathentry kind="output" path="generated/intermediates/eclipse/bin"/>
+	<classpathentry kind="output" path="generated/eclipse/bin"/>
 </classpath>

Modified: incubator/flex/falcon/trunk/compiler/build.xml
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler/build.xml?rev=1385019&r1=1385018&r2=1385019&view=diff
==============================================================================
--- incubator/flex/falcon/trunk/compiler/build.xml (original)
+++ incubator/flex/falcon/trunk/compiler/build.xml Sat Sep 15 06:21:51 2012
@@ -27,8 +27,9 @@
 
     -->
 
-	<!-- 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} -->
+    <!-- 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>
@@ -45,7 +46,7 @@
     <!-- set FLEX_HOME from environment if not already set -->
     <property name="FLEX_HOME" value="${env.FLEX_HOME}"/>
 
-	<!-- The 'sdk' property is the absolute path, with forward slashes, to the compiler/generated/dist/sdk directory -->
+    <!-- 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"/>
@@ -87,8 +88,8 @@
 
     -->
 
-	<!-- 
-		Defines a <jflex input="..." skeleton="..." output="..."> macro
+    <!-- 
+        Defines a <jflex input="..." skeleton="..." output="..."> macro
         for using JFlex to generate a Java-based lexer from a .lex file.
     -->
     <macrodef name="jflex">
@@ -115,6 +116,7 @@
         <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>
@@ -132,6 +134,7 @@
         <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}"/>
@@ -154,7 +157,7 @@
             <basename property="as3.codegen.emitter.@{output}.basename" file="@{output}"/>
             <mkdir dir="${as3.codegen.emitter.@{output}.dirname}"/>
             <java classname="jburg.burg.JBurgMain"
-                  classpath="${compiler}/generated/intermediates/classes"
+                  classpath="${compiler}/generated/classes"
                   fork="true" failonerror="true"
                   dir="${as3.codegen.emitter.@{input}.dirname}">
                 <arg value="@{input}"/>
@@ -164,7 +167,7 @@
                 <arg value="${as3.codegen.emitter.@{output}.basename}"/>
                 <arg value="-g"/>
                 <classpath>
-                    <pathelement path="${compiler}/generated/intermediates/classes"/>
+                    <pathelement path="${compiler}/generated/classes"/>
                     <pathelement path="${compiler}/lib/antlr.jar"/>
                     <pathelement path="${compiler}/lib/jburg.jar"/>
                 </classpath>
@@ -176,6 +179,7 @@
         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"/>
@@ -184,9 +188,8 @@
             <move file="@{file}" tofile="@{file}.temp"/>
             <java classname="org.apache.flex.compiler.tools.AnnotateClass" output="@{file}" fork="false">
                 <classpath>
-                    <pathelement location="${compiler}/generated/intermediates/classes"/>
-                    <pathelement location="${compiler}/generated/tools/intermediates/classes"/>
                     <path refid="classpath"/>
+                    <pathelement location="${compiler}/generated/classes"/>
                 </classpath>
                 <arg value="@{file}.temp"/>
                 <arg value="@{annotation}"/>
@@ -197,264 +200,282 @@
 
     <!--
 
-        HELP
+        SETUP
 
     -->
-
-    <target name="help">
-        <echo message="run ant -projecthelp to see the available targets"/>
+	
+    <target name="checkenv" description="Checks environment variables">
+        <echo message="JFLEX_JAR is ${env.JFLEX_JAR}"/>
+        <available file="${env.JFLEX_JAR}" type="file" property="JFLEX_JAR.set"/>
+        <fail message="JFLEX_JAR must be set correctly." unless="JFLEX_JAR.set"/>    	
+	</target>
+	
+    <target name="download" description="Downloads third-party JARs">
+        <ant antfile="${compiler}/downloads.xml" dir="${compiler}"/>
+    	<delete dir="${compiler}/in"/>
     </target>
+	
+	<target name="setup" depends="checkenv, download" description="Does prelimary build setup">
+	</target>
 
-	<!--
+    <!--
 
-		CLEANUP
+        BUILD TOOL COMPILATION
 
+    -->
+	
+	<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">
+            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
+            <src path="${compiler}/tools/AnnotateClass"/>
+            <classpath>
+                <pathelement location="${compiler}/generated/classes"/>
+            </classpath>
+        </javac>
+	</target>
+	
+	<!--
+	
+	    GENERATION OF JAVA CODE WITH JFLEX
+	    
 	-->
-
-    <target name="wipe" description="Wipes everything that didn't come from Subversion.">
-        <delete dir="${compiler}/generated"/>
-        <delete dir="${compiler}/in"/>
-        <delete dir="${compiler}/lib"/>
+	
+	<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"
+                 srcfile="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/RawASDocTokenizer.lex"
+                 targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/RawASDocTokenizer.java"/>
     </target>
-
-    <target name="super-clean" depends="thirdparty-clean,clean" description="Cleans everything including thirdparty downloads."/>
-
-    <target name="thirdparty-clean" description="Removes all thirdparty downloads.">
-        <delete failonerror="false" quiet="true" includeemptydirs="true">
-            <fileset dir="${compiler}/lib"/>
-        </delete>
+    
+    <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="clean" description="clean">
-        <echo message="Deleting 'generated' directory"/>
-        <delete failonerror="false" quiet="true" includeemptydirs="true">
-            <fileset dir="${compiler}/generated">
-                <include name="**/*"/>
-                <exclude name="intermediates/eclipse/**/*"/>
-            </fileset>
-        </delete>
+    <target name="set.raw.mxml.tokenizer.uptodate">
+       <uptodate property="raw.mxml.tokenizer.uptodate"
+                 srcfile="${compiler}/src/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.lex"
+                 targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.java"/>
     </target>
-
-    <!--
-
-        PRE-BUILDING
-
-    -->
-
-    <target name="prebuild">
-        <echo message="JFLEX_JAR is ${env.JFLEX_JAR}"/>
-        <available file="${env.JFLEX_JAR}" type="file" property="JFLEX_JAR.set"/>
-        <fail message="JFLEX_JAR must be set correctly." unless="JFLEX_JAR.set"/>
-        <ant antfile="${compiler}/downloads.xml" dir="${compiler}"/>
+    
+    <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="eclipse" depends="prepare,src.depend,as3.parser,metadata.parser,as3.codegen.emitter,as3.codegen.UnknownTreeHandler,css.grammar,css.codegen.emitter,mxml.tokenizer,problemid.compile.and.run" description="Build generated source files, so eclipse builds will work."/>
+	<target name="jflex" depends="raw.as.tokenizer, raw.asdoc.tokenizer, raw.mxml.tokenizer"
+		    description="Generates Java code with JFlex"/>
 
-    <target name="as3.lexer">
-        <echo message="Generating RawASTokenizer and RawASDocTokenizer"/>
-        <sequential>
-        	<!-- Generate RawASTokenizer.java from RawASTokenizer.lex -->
-            <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/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as"/>
-            <!-- Generate RawASDocTokenizer.java from RawASDocTokenizer.lex -->
-        	<jflex input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/RawASDocTokenizer.lex"
-                   output="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as"/>
-        </sequential>
+    <!--
+    
+        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="as3.parser" depends="prepare,as3.lexer" unless="as3.parser.uptodate">
-        <echo message="Generating ASParser and ASTokenTypes"/>
-        <sequential>
-            <antlr2 input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/ASParser.g"
-                    output="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as"/>
-            <antlr2 input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.g"
-                    output="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as"/>
-            <annotate.class file="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as/ASParser.java"
-                            annotation='@SuppressWarnings("unused")' />
-            <annotate.class file="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as/ASTokenTypes.java"
-                            annotation='@SuppressWarnings("unused")' />
-        </sequential>
+	
+	<target name="set.metadata.parser.uptodate">
+        <uptodate property="metadata.parser.uptodate"
+                  srcfile="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.g"
+                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.java"/>
+	</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/MetadataTokenTypes.java"
+                        annotation='@SuppressWarnings("unused")'/>    
     </target>
-
-    <target name="metadata.parser" depends="prepare" unless="metadata.parser.uptodate">
-        <sequential>
-            <antlr2 input="${compiler}/src/org/apache/flex/compiler/internal/parsing/as/MetadataParser.g"
-                    output="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as"/>
-            <annotate.class file="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as/MetadataTokenTypes.java"
-                            annotation='@SuppressWarnings("unused")' />
-        </sequential>
+    
+    <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="mxml.tokenizer" depends="prepare" unless="mxml.tokenizer.uptodate">
-        <echo message="Generating RawMXMLTokenizer"/>
-        <sequential>
-        	<!-- Generate RawMXMLTokenizer.java from RawMXMLTokenizer.lex -->
-            <jflex input="${compiler}/src/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.lex"
-                   output="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/mxml"/>
-        </sequential>
+    <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="problemid.compile.and.run" depends="prepare" description="compile and run problemid enumeration generator tool" unless="problemid.uptodate">
-        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/tools/intermediates/classes" classpathref="classpath">
-            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
-            <src path="${compiler}/tools/problemEnumGenerator"/>
-        </javac>
-        <echo level="info" message="Generating enum of compiler problems..."/>
-        <java classname="org.apache.flex.compiler.tools.ProblemEnumGenerator" fork="true">
-            <classpath>
-                <pathelement location="${compiler}/generated/tools/intermediates/classes"/>
-                <path refid="classpath"/>
-            </classpath>
-            <arg value="${compiler}/src/org/apache/flex/compiler/problems"/>
-            <arg value="${compiler}/generated/intermediates/generatedSrc/problemid/org/apache/flex/compiler/problems"/>
-        </java>
+        
+    <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>
 
-    <!-- Generate CSS3 lexer, parser and tree walker using ANTLR3. -->
-    <target name="css.grammar" description="Generate CSS3 lexer, parser and tree walker using ANTLR3." depends="prepare" unless="CSS3.uptodate">
-        <echo message="Generating CSSLexer, CSSParser, and CSSTree"/>
-        <antlr3 input="${compiler}/src/org/apache/flex/compiler/internal/css/CSS.g"
-                output="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/css"/>
+    <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/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/css"/>
-        <annotate.class file="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/css/CSSLexer.java"
-                        annotation='@SuppressWarnings("unused")'/>
-        <annotate.class file="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/css/CSSParser.java"
-                        annotation='@SuppressWarnings("unused")'/>
-        <annotate.class file="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/css/CSSTree.java"
-                        annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/>
+                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"/>
 
-    <target name="as3.codegen.support" depends="prepare,src.depend">
-        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/intermediates/classes" classpathref="classpath">
-            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
+    <!--
+    
+        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">
             <src path="${compiler}/src"/>
-            <include name="**/IASNodeAdapter.java"/>
-            <include name="**/LocalMap.java"/>
+        	<include name="org/apache/flex/compiler/internal/as/codegen/IASNodeAdapter.java"/>
+            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
         </javac>
     </target>
 
-    <target name="as3.codegen.emitter" depends="as3.codegen.support" unless="CmcEmitter.uptodate">
-        <echo message="Generating CmcEmitter"/>
-        <dirname property="as3.codegen.emitter.@{input}.dirname" file="@{input}"/>
-        <jburg input="${compiler}/src/org/apache/flex/compiler/internal/as/codegen/cmc.jbg"
-               output="${compiler}/generated/intermediates/generatedSrc/as3.codegen/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java"/>
-        <annotate.class file="${compiler}/generated/intermediates/generatedSrc/as3.codegen/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java"
-                        annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/>
-    </target>
-
-    <target name="as3.codegen.UnknownTreeHandler" unless="UnknownTreeHandlerPatterns.uptodate">
-        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/intermediates/classes" classpathref="classpath">
-            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
+    <target name="unknown.tree">
+        <mkdir dir="${compiler}/generated/classes"/>
+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/classes" classpathref="classpath">
             <src path="${compiler}/src"/>
-            <include name="**/UnknownTreePatternInputOutput.java"/>
+            <include name="org/apache/flex/compiler/internal/as/codegen/UnknownTreePatternInputOutput.java"/>
+            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
         </javac>
+        <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/intermediates/generatedSrc/as3.codegen/org/apache/flex/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.java"/>
+            <arg value="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.java"/>
             <classpath>
-                <pathelement location="${compiler}/generated/intermediates/classes"/>
+                <pathelement location="${compiler}/generated/classes"/>
             </classpath>
         </java>
     </target>
 
-    <target name="css.codegen.emitter" depends="as3.codegen.support" unless="CSSEmitter.uptodate">
+	<target name="set.cmc.emitter.uptodate">
+        <uptodate property="cmc.emitter.uptodate"
+                  srcfile="${compiler}/src/org/apache/flex/compiler/internal/as/codegen/cmc.jbg"
+                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java"/>
+	</target>
+	
+	<target name="cmc.emitter" depends="annotate.class, node.adapter, unknown.tree, 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"
+                  srcfile="${compiler}/src/org/apache/flex/compiler/internal/css/codegen/css.jbg"
+                  targetfile="${compiler}/generated/src/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java"/>
+	</target>
+	
+	<target name="css.emitter" depends="annotate.class, set.css.emitter.uptodate" unless="css.emitter.uptodate">
         <echo message="Generating CSSEmitter"/>
-        <dirname property="as3.codegen.emitter.@{input}.dirname" file="@{input}"/>
         <jburg input="${compiler}/src/org/apache/flex/compiler/internal/css/codegen/css.jbg"
-               output="${compiler}/generated/intermediates/generatedSrc/as3.codegen/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java"/>
-        <annotate.class file="${compiler}/generated/intermediates/generatedSrc/as3.codegen/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java"
-                        annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/>
-    </target>
-
+               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="jflex, antlr, jburg"
+		    description="Prepares for building in Eclipse by generating Java code with JFlex, ANTLR, and JBurg"/>
+				
     <!--
 
-        BUILDING
+        JAVADOC
 
     -->
 
-    <target name="all" depends="prebuild,clean,dev,javadoc" description="Clean, build, and javadoc."/>
-
-    <target name="main" depends="prebuild,clean,dev" description="Clean and build.">
-        <tstamp>
-            <format property="build.datetime" pattern="MM/dd/yyyy hh:mm:ss aa"/>
-        </tstamp>
-        <echo>compiler main completed on ${build.datetime}</echo>
+    <target name="javadoc" depends="eclipse"
+    	    description="Builds Javadoc">
+        <javadoc destdir="${compiler}/generated/javadoc" useexternalfile="yes" overview="${compiler}/src/overview.html" failonerror="true">
+            <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>
 
-    <target name="dev" depends="jar,support.library" description="Runs an incremental (src.depend) build for development."/>
+    <!--
 
-    <target name="prepare">
-        <echo level="info">${ant.file}</echo>
-        <!-- Check ultimate sources of various generated source files for freshness -->
-        <uptodate property="CmcEmitter.uptodate" targetfile="${compiler}/generated/intermediates/generatedSrc/as3.codegen/org/apache/flex/compiler/internal/as/codegen/CmcEmitter.java">
-            <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/as/codegen" includes="*.jbg"/>
-        </uptodate>
-        <uptodate property="UnknownTreeHandlerPatterns.uptodate" targetfile="${compiler}/generated/intermediates/generatedSrc/as3.codegen/org/apache/flex/compiler/internal/as/codegen/UnknownTreeHandlerPatterns.java">
-            <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/as/codegen">
-                <include name="UnknownTreeHandlerPatterns.xml"/>
-                <include name="UnknownTreePatternInputOutput.java"/>
-            </srcfiles>
-        </uptodate>
-        <uptodate property="CSSEmitter.uptodate" targetfile="${compiler}/generated/intermediates/generatedSrc/as3.codegen/org/apache/flex/compiler/internal/css/codegen/CSSEmitter.java">
-            <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/css/codegen" includes="*.jbg"/>
-        </uptodate>
-        <uptodate property="CSS3.uptodate" targetfile="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/css/CSSTree.java">
-            <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/css">
-                <include name="CSS.g"/>
-                <include name="CSSTree.g"/>
-            </srcfiles>
-        </uptodate>
-        <uptodate property="as3.parser.uptodate" targetfile="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as/ASParser.java">
-            <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/as">
-                <include name="RawASTokenizer.lex"/>
-                <include name="skeleton.falcon"/>
-                <include name="RawASDocTokenizer.lex"/>
-                <include name="ASParser.g"/>
-            </srcfiles>
-        </uptodate>
-        <uptodate property="metadata.parser.uptodate" targetfile="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/as/MetadataParser.java">
-            <srcfiles dir="${compiler}/src/org/apache/flex/compiler/internal/parsing/as">
-                <include name="MetadataParser.g"/>
-            </srcfiles>
-        </uptodate>
-        <uptodate property="mxml.tokenizer.uptodate" targetfile="${compiler}/generated/intermediates/generatedSrc/as3.parser/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.java" srcfile="${compiler}/src/org/apache/flex/compiler/internal/parsing/mxml/RawMXMLTokenizer.lex"/>
-        <uptodate property="support.library.uptodate" targetfile="${sdk}/frameworks/libs/support.swc">
-            <srcfiles dir="${compiler}/dist/flex/frameworks/projects/support" includes="**/*"/>
-        </uptodate>
-        <uptodate property="problemid.uptodate" targetfile="${compiler}/generated/intermediates/generatedSrc/problemid/org/apache/flex/compiler/problems/ProblemID.java">
-            <srcfiles dir="${compiler}/tools/problemEnumGenerator" includes="**/*"/>
-            <srcfiles dir="${compiler}/src/org/apache/flex/compiler/problems" includes="**/*.java"/>
-        </uptodate>
+        BUILDING
 
-        <!-- Compile the AnnotateClass tool -->
-        <echo level="info" message="Compiling AnnotateClass tool"/>
-        <mkdir dir="${compiler}/generated/tools/intermediates/classes"/>
-        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/tools/intermediates/classes">
-            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
-            <src path="${compiler}/tools/AnnotateClass"/>
-            <classpath>
-                <pathelement location="${compiler}/generated/intermediates/classes"/>
-            </classpath>
-        </javac>
-    </target>
+    -->
 
     <target name="src.depend" if="src.depend">
         <echo level="info" message="Removing class files that changed and dependent class files."/>
-        <depend srcdir="${compiler}/src;${compiler}/generated/intermediates/generatedSrc/as3.parser;${compiler}/generated/intermediates/generatedSrc/as3.codegen" destdir="${compiler}/generated/intermediates/classes" cache="${compiler}/generated/intermediates/classes"/>
+        <depend srcdir="${compiler}/src;${compiler}/generated/src"
+                destdir="${compiler}/generated/classes" cache="${compiler}/generated/classes"/>
     </target>
 
-    <target name="compile" depends="prepare,src.depend,as3.parser,metadata.parser,as3.codegen.emitter,as3.codegen.UnknownTreeHandler,css.grammar,css.codegen.emitter,mxml.tokenizer,problemid.compile.and.run" description="compile">
+    <target name="compile" depends="eclipse" description="compile">
         <echo message="Compiling Java code"/>
-        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" includes="**/*.java" destdir="${compiler}/generated/intermediates/classes" classpathref="classpath">
-            <compilerarg value="-Xlint:all,-path,-fallthrough,-cast"/>
+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" includes="**/*.java" destdir="${compiler}/generated/classes" classpathref="classpath">
             <src path="${compiler}/src"/>
-            <src path="${compiler}/generated/intermediates/generatedSrc/as3.parser"/>
-            <src path="${compiler}/generated/intermediates/generatedSrc/as3.codegen"/>
-            <src path="${compiler}/generated/intermediates/generatedSrc/problemid"/>
+            <src path="${compiler}/generated/src"/>
+            <compilerarg value="-Xlint:all,-path,-fallthrough,-cast"/>
         </javac>
-        <copy todir="${compiler}/generated/intermediates/classes">
+        <copy todir="${compiler}/generated/classes">
             <fileset dir="${compiler}/src" includes="**/*.properties"/>
         </copy>
     </target>
@@ -462,40 +483,40 @@
     <!-- Update the messages properties file with compiler problem strings -->
     <target name="localization" depends="compile">
         <echo level="info" message="Compile problem localizer tool..."/>
-        <mkdir dir="${compiler}/generated/tools/intermediates/classes"/>
-        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/tools/intermediates/classes">
+        <mkdir dir="${compiler}/generated/classes"/>
+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/generated/classes">
             <compilerarg value="-Xlint:all,-path,-fallthrough"/>
             <src path="${compiler}/tools/problemlocalizer"/>
             <classpath>
-                <pathelement location="${compiler}/generated/intermediates/classes"/>
+                <pathelement location="${compiler}/generated/classes"/>
             </classpath>
         </javac>
-
         <echo level="info" message="Creating properties file for compiler problems..."/>
         <java classname="org.apache.flex.compiler.tools.ProblemLocalizer" fork="true">
             <classpath>
-                <pathelement location="${compiler}/generated/tools/intermediates/classes"/>
-                <pathelement location="${compiler}/generated/intermediates/classes"/>
+                <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/intermediates/classes/org/apache/flex/compiler/problems"/>
+            <arg value="${compiler}/generated/classes/org/apache/flex/compiler/problems"/>
             <!-- arg1: location of where to find messages_en.properties to append messages to. -->
-            <arg value="${compiler}/generated/intermediates/classes/org/apache/flex/compiler"/>
+            <arg value="${compiler}/generated/classes/org/apache/flex/compiler"/>
         </java>
     </target>
 
-    <target name="jar" depends="compile,localization,version-info" description="Compile and create compiler jars">
+    <target name="version-info" unless="build.number">
+        <property name="build.number" value="0"/>
+    </target>
+
+    <target name="jar" depends="compile, localization, version-info" description="Compile and create compiler jars">
         <mkdir dir="${compiler}/generated/dist/sdk"/>
-        <mkdir dir="${compiler}/generated/dist/sdk/ant}"/>
-        <mkdir dir="${compiler}/generated/dist/sdk/ant/lib}"/>
+        <mkdir dir="${compiler}/generated/dist/sdk/ant"/>
+        <mkdir dir="${compiler}/generated/dist/sdk/ant/lib"/>
         <mkdir dir="${compiler}/generated/dist/sdk/lib"/>
-
         <property name="compiler.ant.binaries" value="org/apache/flex/compiler/ant/**/*.class"/>
         <property name="compiler.font.binaries" value="org/apache/flex/fonts/**"/>
-
         <echo message="Creating generated/dist/sdk/lib/compiler.jar"/>
-        <jar file="${sdk}/lib/compiler.jar" basedir="${compiler}/generated/intermediates/classes" includes="**/*.properties,org/apache/**/*" excludes="${compiler.ant.binaries},${compiler.font.binaries}">
+        <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}"/>
@@ -505,7 +526,6 @@
                 <!-- The .. in the line above allows the compiler to load the env.properties file -->
             </manifest>
         </jar>
-
         <echo message="Creating generated/dist/sdk/lib/falcon-asc.jar"/>
         <jar file="${sdk}/lib/falcon-asc.jar" whenmanifestonly="create">
             <manifest>
@@ -517,7 +537,6 @@
                 <attribute name="Class-Path" value="compiler.jar"/>
             </manifest>
         </jar>
-
         <echo message="Creating generated/dist/sdk/lib/falcon-mxmlc.jar"/>
         <jar file="${sdk}/lib/falcon-mxmlc.jar" whenmanifestonly="create">
             <manifest>
@@ -529,7 +548,6 @@
                 <attribute name="Class-Path" value="compiler.jar"/>
             </manifest>
         </jar>
-
         <echo message="Creating generated/dist/sdk/lib/falcon-compc.jar"/>
         <jar file="${sdk}/lib/falcon-compc.jar" whenmanifestonly="create">
             <manifest>
@@ -541,7 +559,6 @@
                 <attribute name="Class-Path" value="compiler.jar"/>
             </manifest>
         </jar>
-
         <echo message="Creating generated/dist/sdk/lib/falcon-optimizer.jar"/>
         <jar file="${sdk}/lib/falcon-optimizer.jar" whenmanifestonly="create">
             <manifest>
@@ -553,7 +570,6 @@
                 <attribute name="Class-Path" value="compiler.jar"/>
             </manifest>
         </jar>
-
         <echo message="Creating generated/dist/sdk/lib/falcon-swfdump.jar"/>
         <jar file="${sdk}/lib/falcon-swfdump.jar" whenmanifestonly="create">
             <manifest>
@@ -565,9 +581,8 @@
                 <attribute name="Class-Path" value="compiler.jar commons-io.jar"/>
             </manifest>
         </jar>
-
         <echo message="Creating lib/aet.jar"/>
-        <jar file="${compiler}/lib/aet.jar" basedir="${compiler}/generated/intermediates/classes" includes="org/apache/flex/abc/**" excludes="">
+        <jar file="${compiler}/lib/aet.jar" basedir="${compiler}/generated/classes" includes="org/apache/flex/abc/**" excludes="">
             <manifest>
                 <attribute name="Sealed" value="${manifest.sealed}"/>
                 <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - ABC Engineering Toolkit"/>
@@ -575,10 +590,9 @@
                 <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
             </manifest>
         </jar>
-
         <!-- Building compiler ant tasks. -->
         <echo message="Creating generated/dist/sdk/lib/flexTasks.jar"/>
-        <jar file="${sdk}/lib/flexTasks.jar}">
+        <jar file="${sdk}/lib/flexTasks.jar">
             <manifest>
                 <attribute name="Sealed" value="${manifest.sealed}"/>
                 <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - ant Tasks"/>
@@ -586,62 +600,29 @@
                 <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
             </manifest>
             <fileset dir="${compiler}" includes="flexTasks.tasks"/>
-            <fileset dir="${compiler}/generated/intermediates/classes" includes="${compiler.ant.binaries}"/>
+            <fileset dir="${compiler}/generated/classes" includes="${compiler.ant.binaries}"/>
         </jar>
-
-    </target>
-
-    <target name="version-info" unless="build.number">
-        <property name="build.number" value="0"/>
     </target>
-    
-	<!--
-
-        POST-BUILDING
-
-    -->
-
+	    
     <!--
-        Build support.swc
-    -->
-    <target name="support.library" depends="prepare,copy.sdk" unless="support.library.uptodate" description="Builds 'support.swc' library.">
-        <echo message="Building support.swc"/>
-        <taskdef name="compc" classname="flex.ant.CompcTask">
-            <classpath>
-                <pathelement location="${compiler}/generated/dist/sdk/ant/lib-legacy/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>
-
-	<!--
 
-	    SDK
+        SDK
 
-	-->
-	
+    -->
+    
     <target name="copy.sdk" description="Copy a subset of the Flex SDK to our distribution staging area." unless="apache.sdk">
         <!-- Unzip the Apache SDK into a temporary directory -->
-    	<unzip src="${flex.sdk.zip}" dest="${unzipped.flex.sdk}"/>
-    	<!-- Add in the necessary SWCs that an Apache SDK doesn't have -->
-    	<copy file="${flex.sdk.prerequisites}/playerglobal.swc" todir="${unzipped.flex.sdk}/frameworks/libs/player/11.1"/>
-    	<copy file="${flex.sdk.prerequisites}/airglobal.swc" todir="${unzipped.flex.sdk}/frameworks/libs/air"/>
-    	<copy file="${flex.sdk.prerequisites}/aircore.swc" todir="${unzipped.flex.sdk}/frameworks/libs/air"/>
+        <unzip src="${flex.sdk.zip}" dest="${unzipped.flex.sdk}"/>
+        <!-- Add in the necessary SWCs that an Apache SDK doesn't have -->
+        <copy file="${flex.sdk.prerequisites}/playerglobal.swc" todir="${unzipped.flex.sdk}/frameworks/libs/player/11.1"/>
+        <copy file="${flex.sdk.prerequisites}/airglobal.swc" todir="${unzipped.flex.sdk}/frameworks/libs/air"/>
+        <copy file="${flex.sdk.prerequisites}/aircore.swc" todir="${unzipped.flex.sdk}/frameworks/libs/air"/>
         <copy file="${flex.sdk.prerequisites}/applicationupdater.swc" todir="${unzipped.flex.sdk}/frameworks/libs/air"/>
         <copy file="${flex.sdk.prerequisites}/applicationupdater_ui.swc" todir="${unzipped.flex.sdk}/frameworks/libs/air"/>
         <copy file="${flex.sdk.prerequisites}/servicemonitor.swc" todir="${unzipped.flex.sdk}/frameworks/libs/air"/>
-    	<copy file="${flex.sdk.prerequisites}/textLayout.swc" todir="${unzipped.flex.sdk}/frameworks/libs"/>
-    	<!-- Copy portions of this SDK to create Falcon's generated SDK -->
-    	<copy todir="${sdk}" includeEmptyDirs="false">
+        <copy file="${flex.sdk.prerequisites}/textLayout.swc" todir="${unzipped.flex.sdk}/frameworks/libs"/>
+        <!-- Copy portions of this SDK to create Falcon's generated SDK -->
+        <copy todir="${sdk}" includeEmptyDirs="false">
             <fileset dir="${unzipped.flex.sdk}">
                 <include name="**/*"/>
                 <exclude name="frameworks/projects/**/*"/>
@@ -677,14 +658,12 @@
             </fileset>
         </copy>
         <copy todir="${sdk}/ant/lib-legacy" file="${unzipped.flex.sdk}/ant/lib/flexTasks.jar"/>
-    	
-    	<!-- Copy compiler command-line -->
+        <!-- Copy compiler command-line -->
         <copy todir="${sdk}/bin" includeEmptyDirs="false">
-        	<fileset dir="${compiler}/commandline">
-        	    <include name="**"/>
-        	</fileset>
+            <fileset dir="${compiler}/commandline">
+                <include name="**"/>
+            </fileset>
         </copy>
-
         <!-- Copy compiler external dependencies -->
         <copy todir="${sdk}/lib/external" includeEmptyDirs="false">
             <fileset dir="${compiler}/lib">
@@ -694,25 +673,47 @@
                 <include name="lzma*"/>
             </fileset>
         </copy>
+        <!-- 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"/>
+        <delete dir="${unzipped.flex.sdk}"/>
+    </target>
+    
+    <target name="support.swc" depends="copy.sdk" description="Builds support.swc ">
+        <echo message="Building support.swc"/>
+        <taskdef name="compc" classname="flex.ant.CompcTask">
+            <classpath>
+                <pathelement location="${compiler}/generated/dist/sdk/ant/lib-legacy/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="dev" depends="jar, support.swc" description="Runs an incremental (src.depend) build for development"/>
 
-    	
-    	<!-- 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"/>
-    	<delete dir="${unzipped.flex.sdk}"/>
+    <target name="main" depends="clean, dev" description="Cleans and builds">
+        <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="package"
-        depends="dist,dist.flex.sdk,dist.localization" description="Package the compiler for Falcon Flex SDK, Runtime SDK"/>
-
-
-    <target name="dist" depends="copy.sdk,jar,support.library">
+    <target name="dist" depends="copy.sdk, jar, support.swc">
         <copy todir="${sdk}/lib" includeEmptyDirs="false">
             <fileset dir="${compiler}/lib">
                 <include name="**/*"/>
@@ -753,27 +754,27 @@
         </zip>
     </target>
 
-	<target name="dist.runtime.legacy" description="Re-package legacy asdoc.jar and fdb.jar to support these legacy command-line tools" >
+    <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>    	
+        <!-- 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"/>
@@ -781,8 +782,7 @@
                 <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
             </manifest>
         </jar>
-
-	    <!-- asdoc.jar -->
+        <!-- asdoc.jar -->
         <jar file="${sdk}/lib/legacy/asdoc.jar">
             <manifest>
                 <attribute name="Sealed" value="${manifest.sealed}"/>
@@ -793,8 +793,7 @@
                 <attribute name="Class-Path" value="legacy-common.jar"/>
             </manifest>
         </jar>
-
-	    <!-- fdb.jar -->
+        <!-- fdb.jar -->
         <jar file="${sdk}/lib/legacy/fdb.jar">
             <zipgroupfileset dir="${compiler}/dist/runtime/fdb" >
                 <include name="fdb.jar"/>
@@ -808,14 +807,14 @@
                 <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.">
+    </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="asdoc/**"/>
                 <include name="frameworks/libs/core.swc"/>
                 <include name="lib/legacy/**"/>
                 <include name="lib/afe.jar"/>
@@ -841,8 +840,8 @@
                 <include name="bin/swfdump*"/>
             </zipfileset>
             <zipfileset dir="${compiler}/dist/runtime" filemode="755">
-            	<include name="bin/aasdoc*"/>
-            	<include name="bin/asdoc*"/>
+                <include name="bin/aasdoc*"/>
+                <include name="bin/asdoc*"/>
                 <include name="bin/fdb*"/>
             </zipfileset>
             <zipfileset dir="${compiler}/dist/runtime">
@@ -857,38 +856,24 @@
     <target name="dist.localization" depends="compile">
         <mkdir dir="${compiler}/generated/dist"/>
         <copy todir="${compiler}/generated/dist">
-            <fileset dir="${compiler}/generated/intermediates/classes/org/apache/flex/compiler" includes="*_en.properties"/>
+            <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"/>
 
     <!--
 
-        JAVADOC
+        CLEANUP
 
     -->
 
-    <target name="javadoc" depends="as3.parser,metadata.parser,as3.codegen.emitter,as3.codegen.UnknownTreeHandler,css.codegen.emitter,css.grammar" description="Build javadoc">
-        <javadoc destdir="${compiler}/generated/javadoc" useexternalfile="yes" overview="${compiler}/src/overview.html" failonerror="true">
-        	<classpath>
-                <pathelement location="${env.ANT_HOME}/lib/ant.jar"/> 
-                <path refid="classpath"/>
-            </classpath>
-            <sourcefiles>
-                <fileset dir="${compiler}/src" includes="**/*.java"/>
-                <fileset dir="${compiler}/generated/intermediates/generatedSrc/as3.parser" includes="**/*.java"/>
-                <fileset dir="${compiler}/generated/intermediates/generatedSrc/as3.codegen" includes="**/*.java"/>
-            </sourcefiles>
-         	<tag name="note" description="Note:"/>
-         	<tag name="post" description="Postcondition:"/>
-         	<tag name="pre" description="Precondition:"/>
-        </javadoc>
+    <target name="clean" description="clean">
+        <delete dir="${compiler}/generated"/>
     </target>
 
-    <target name="zipJavadoc" depends="javadoc" description="--> zip the javadoc for easier distribution">
-        <zip destfile="${compiler}/generated/javadoc.zip">
-            <zipfileset dir="${compiler}/generated/javadoc" prefix="javadoc"/>
-        </zip>
+    <target name="wipe" depends="clean" description="Wipes everything that didn't come from Subversion.">
+        <delete dir="${compiler}/lib"/>
     </target>
 
  </project>