You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/05/26 23:05:19 UTC

[35/51] [abbrv] git commit: [flex-asjs] [refs/heads/spark] - clean up build scripts

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/GoogleMapsJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/GoogleMapsJS/build.xml b/frameworks/js/FlexJS/projects/GoogleMapsJS/build.xml
index 0e786c5..5052955 100644
--- a/frameworks/js/FlexJS/projects/GoogleMapsJS/build.xml
+++ b/frameworks/js/FlexJS/projects/GoogleMapsJS/build.xml
@@ -26,36 +26,16 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <condition property="GOOGLEMAPS.SWC" value="${FALCONJX_HOME}/../js/libs/google_maps.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/google_maps.swc" />
-    </condition>
-    <property name="GOOGLEMAPS.SWC" value="${FALCONJX_HOME}/../externs/google_maps/target/google_maps.swc" />
-    <property name="target.name" value="GoogleMapsJS.swc" />
-    <property name="target.name.no.version" value="GoogleMapsJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of GoogleMaps.swc">
-    </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -64,12 +44,8 @@
             </fileset>
         </delete>
     </target>
-
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
-    <target name="compile-asjs">
+    
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -80,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -94,7 +71,7 @@
             <arg value="-define=COMPILE::JS,true" />
         </java>
     </target>
-
+    
     <target name="compile-js-swc" description="Compiles .as files into .swc used for cross-compiling other projects">
         <echo message="Compiling target/${target.name}"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
@@ -102,44 +79,87 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
             <arg value="-external-library-path+=${GOOGLEMAPS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
-
-    <target name="copy-js">
+    
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
+    
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <condition property="GOOGLEMAPS.SWC" value="${FALCONJX_HOME}/../js/libs/google_maps.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/google_maps.swc" />
+        </condition>
+        <property name="GOOGLEMAPS.SWC" value="${FALCONJX_HOME}/../externs/google_maps/target/google_maps.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
 
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/GraphicsJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/GraphicsJS/build.xml b/frameworks/js/FlexJS/projects/GraphicsJS/build.xml
index e752171..d8925df 100644
--- a/frameworks/js/FlexJS/projects/GraphicsJS/build.xml
+++ b/frameworks/js/FlexJS/projects/GraphicsJS/build.xml
@@ -26,40 +26,16 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <property name="target.name" value="GraphicsJS.swc" />
-    <property name="target.name.no.version" value="GraphicsJS.swc" />
     
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of GraphicsJS.swc">
-    </target>
-    
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         <ant dir="asjs/tests" />
-         -->
-    </target>
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
-    
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -69,11 +45,7 @@
         </delete>
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-    
-    <target name="compile-asjs">
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -84,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -105,43 +78,82 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
     
-    <target name="copy-js">
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/HTML5JS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/HTML5JS/build.xml b/frameworks/js/FlexJS/projects/HTML5JS/build.xml
index 0ea7b40..372f272 100644
--- a/frameworks/js/FlexJS/projects/HTML5JS/build.xml
+++ b/frameworks/js/FlexJS/projects/HTML5JS/build.xml
@@ -26,32 +26,16 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <property name="target.name" value="HTML5JS.swc" />
-    <property name="target.name.no.version" value="HTML5JS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of HTML5.swc">
-    </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -61,11 +45,7 @@
         </delete>
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-    
-    <target name="compile-asjs">
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -76,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -97,43 +78,82 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
     
-    <target name="copy-js">
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/HTMLJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/HTMLJS/build.xml b/frameworks/js/FlexJS/projects/HTMLJS/build.xml
index 227fcaf..bc08c2b 100644
--- a/frameworks/js/FlexJS/projects/HTMLJS/build.xml
+++ b/frameworks/js/FlexJS/projects/HTMLJS/build.xml
@@ -26,38 +26,16 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <property name="target.name" value="HTMLJS.swc" />
-    <property name="target.name.no.version" value="HTMLJS.swc" />
     
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of HTMLJS.swc">
-    </target>
-    
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="src/test/flex"/>
-         -->
-    </target>
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -67,11 +45,7 @@
         </delete>
     </target>
     
-    <path id="lib.path">
-      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
-    <target name="compile-asjs">
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -82,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -95,7 +70,7 @@
             <arg value="-define=COMPILE::JS,true" />
         </java>
     </target>
-
+    
     <target name="compile-js-swc" description="Compiles .as files into .swc used for cross-compiling other projects">
         <echo message="Compiling target/${target.name}"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
@@ -103,44 +78,82 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
-
-    <target name="copy-js">
+    
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
-
-
+    
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/JQueryJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/JQueryJS/build.xml b/frameworks/js/FlexJS/projects/JQueryJS/build.xml
index e060659..fa3a7cf 100644
--- a/frameworks/js/FlexJS/projects/JQueryJS/build.xml
+++ b/frameworks/js/FlexJS/projects/JQueryJS/build.xml
@@ -26,36 +26,16 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <condition property="JQUERY.SWC" value="${FALCONJX_HOME}/../js/libs/jquery.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/jquery.swc" />
-    </condition>
-    <property name="JQUERY.SWC" value="${FALCONJX_HOME}/../externs/jquery/target/jquery-1.9.swc" />
-    <property name="target.name" value="JQueryJS.swc" />
-    <property name="target.name.no.version" value="JQueryJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of jQuery.swc">
-    </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -65,11 +45,7 @@
         </delete>
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-    
-    <target name="compile-asjs">
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -80,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -102,44 +79,84 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
             <arg value="-external-library-path+=${JQUERY.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
     
-    <target name="copy-js">
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
     
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <property name="JQUERY.SWC" value="${FALCONJX_HOME}/../externs/jquery/target/jquery-1.9.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
+   
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/MobileJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/MobileJS/build.xml b/frameworks/js/FlexJS/projects/MobileJS/build.xml
index ef08d3c..ce9d392 100644
--- a/frameworks/js/FlexJS/projects/MobileJS/build.xml
+++ b/frameworks/js/FlexJS/projects/MobileJS/build.xml
@@ -26,32 +26,16 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <property name="target.name" value="MobileJS.swc" />
-    <property name="target.name.no.version" value="MobileJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of Mobile.swc">
-    </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -61,11 +45,7 @@
         </delete>
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-    
-    <target name="compile-asjs">
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -76,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -97,43 +78,82 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
     
-    <target name="copy-js">
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/NetworkJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/NetworkJS/build.xml b/frameworks/js/FlexJS/projects/NetworkJS/build.xml
index 9cb09a3..42fc17c 100644
--- a/frameworks/js/FlexJS/projects/NetworkJS/build.xml
+++ b/frameworks/js/FlexJS/projects/NetworkJS/build.xml
@@ -26,38 +26,16 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <property name="target.name" value="NetworkJS.swc" />
-    <property name="target.name.no.version" value="NetworkJS.swc" />
     
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js" description="Full build of Network.swc">
-    </target>
-    
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
-    </target>
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -67,11 +45,7 @@
         </delete>
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-    
-    <target name="compile-asjs">
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -82,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -103,43 +78,82 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
     
-    <target name="copy-js">
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
     
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/ReflectionJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/ReflectionJS/build.xml b/frameworks/js/FlexJS/projects/ReflectionJS/build.xml
index 7c24589..edeef54 100644
--- a/frameworks/js/FlexJS/projects/ReflectionJS/build.xml
+++ b/frameworks/js/FlexJS/projects/ReflectionJS/build.xml
@@ -26,38 +26,16 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <property name="target.name" value="ReflectionJS.swc" />
-    <property name="target.name.no.version" value="ReflectionJS.swc" />
     
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of Reflection.swc">
-    </target>
-    
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
-    </target>
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -67,11 +45,7 @@
         </delete>
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-    
-    <target name="compile-asjs">
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -82,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -103,44 +78,82 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
     
-    <target name="copy-js">
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
     
-
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/StorageJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/StorageJS/build.xml b/frameworks/js/FlexJS/projects/StorageJS/build.xml
index c9370b2..03f3055 100644
--- a/frameworks/js/FlexJS/projects/StorageJS/build.xml
+++ b/frameworks/js/FlexJS/projects/StorageJS/build.xml
@@ -21,47 +21,21 @@
 
 <project name="StorageJS" default="main" basedir=".">
     <property name="FLEXJS_HOME" location="../../../../.."/>
-
+    
     <property file="${FLEXJS_HOME}/env.properties"/>
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
-    </condition>
-    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-    <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
-    </condition>
-    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-    <condition property="CORDOVA.SWC" value="${FALCONJX_HOME}/../js/libs/cordova.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/cordova.swc" />
-    </condition>
-    <property name="CORDOVA.SWC" value="${FALCONJX_HOME}/../externs/cordova/target/cordova.swc" />
-    <property name="target.name" value="StorageJS.swc" />
-    <property name="target.name.no.version" value="StorageJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of Storage.swc">
-    </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests"/>
-        -->
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
-
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
-    </target>
-
+    
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -70,12 +44,8 @@
             </fileset>
         </delete>
     </target>
-
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
-    <target name="compile-asjs">
+    
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -86,6 +56,7 @@
             <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
             <arg value="+flexlib=${FLEX_HOME}/frameworks" />
             <arg value="-js-output-type=FLEXJS" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
             <arg value="-output=${basedir}/target/generated-sources/flexjs" />
             <arg value="-load-config=${basedir}/src/main/config/compile-js-config.xml" />
@@ -93,14 +64,14 @@
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
             <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-external-library-path+=${CORDOVA.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
-            <arg value="--external-library-path+=${CORDOVA.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </java>
     </target>
-
+    
     <target name="compile-js-swc" description="Compiles .as files into .swc used for cross-compiling other projects">
         <echo message="Compiling target/${target.name}"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
@@ -108,44 +79,87 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
-            <arg value="-external-library-path+=${JS.SWC}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-external-library-path=${JS.SWC}" />
+            <arg value="-external-library-path+=${CORDOVA.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
-            <arg value="--external-library-path+=${CORDOVA.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
-
-    <target name="copy-js">
+    
+    <target name="copy-js" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
             <fileset dir="${basedir}/target/generated-sources/flexjs">
-                <include name="**/**"/>
+                <include name="**/**" />
             </fileset>
         </copy>
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <condition property="CORDOVA.SWC" value="${FALCONJX_HOME}/../js/libs/cordova.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/cordova.swc" />
+        </condition>
+        <property name="CORDOVA.SWC" value="${FALCONJX_HOME}/../externs/cordova/target/cordova.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-falcon-home" unless="FALCON_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>
+        
+        <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${env.FALCON_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
+        type="file"
+        property="FALCON_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
+        
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
+        unless="FALCON_HOME"/>
+    </target>
+    
+    <target name="check-falconjx-home" unless="FALCONJX_HOME"
+        description="Check FALCON_HOME is a directory.">
+        
+        <echo message="FALCONJX_HOME is ${env.FALCONJX_HOME}"/>
+        
+        <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${env.FALCONJX_HOME}"/>
+        
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+        type="file"
+        property="FALCONJX_HOME"
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+        
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
+        unless="FALCONJX_HOME"/>
+    </target>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/155b292a/frameworks/js/FlexJS/projects/XMLJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/XMLJS/build.xml b/frameworks/js/FlexJS/projects/XMLJS/build.xml
index a774ccd..3b6ad6c 100644
--- a/frameworks/js/FlexJS/projects/XMLJS/build.xml
+++ b/frameworks/js/FlexJS/projects/XMLJS/build.xml
@@ -27,37 +27,15 @@
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
     
-    <target name="more-props" >
-        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
-        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
-        <property name="target.name" value="XMLJS.swc" />
-        <property name="target.name.no.version" value="XMLJS.swc" />
-        <path id="lib.path">
-            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-        </path>
-    </target>
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <!--<target name="main" depends="clean,check-falcon-home,check-falconjx-home,more-props,compile-asjs,compile-js-swc,copy-js,compile,test-js" description="Full build of XML.swc">
-    </target>-->
-    <target name="main" depends="clean,check-falcon-home,check-falconjx-home,more-props,compile-asjs,copy-js,test-js" description="Full build of XML.swc">
-    </target>
-    
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="as/tests" />
-        -->
-    </target>
-    
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="main" depends="clean,check-compiler,compile-js-swc,compile-asjs,copy-js" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -67,7 +45,7 @@
         </delete>
     </target>
     
-    <target name="compile-asjs">
+    <target name="compile-asjs" depends="check-compiler">
         <echo message="Cross-compiling ${target.name}"/>
         <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
@@ -100,34 +78,20 @@
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs"/>
         <mkdir dir="${basedir}/target"/>
         
-        <!-- Load the <compc> task. We can't do this at the <project> level -->
-        <!-- because targets that run before flexTasks.jar gets built would fail. -->
-        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
-        <!--
-         Link in the classes (and their dependencies) for the MXML tags
-         listed in this project's manifest.xml.
-         Also link the additional classes (and their dependencies)
-         listed in CoreClasses.as,
-         because these aren't referenced by the manifest classes.
-         Keep the standard metadata when compiling.
-         Include the appropriate CSS files and assets in the SWC.
-         Don't include any resources in the SWC.
-         Write a bundle list of referenced resource bundles
-         into the file bundles.properties in this directory.
-         -->
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="src/main/config/compile-js-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-compiler.strict-xml=true" />
             <arg value="-external-library-path=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/js/FlexJS/libs/${target.name}" />
     </target>
 
     <target name="copy-js" >
@@ -139,6 +103,21 @@
         </copy>
     </target>
 
+    <target name="check-compiler" depends="check-falcon-home, check-falconjx-home">
+        <condition property="JS.SWC" value="${FALCONJX_HOME}/../js/libs/js.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/js.swc" />
+        </condition>
+        <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/target/js.swc" />
+        <condition property="GCL.SWC" value="${FALCONJX_HOME}/../js/libs/GCL.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/GCL.swc" />
+        </condition>
+        <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/target/GCL.swc" />
+        <path id="lib.path">
+            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+
     <target name="check-falcon-home" unless="FALCON_HOME"
         description="Check FALCON_HOME is a directory.">
         
@@ -149,12 +128,12 @@
         property="FALCON_HOME"
         value="${env.FALCON_HOME}"/>
         
-        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/generated/dist/sdk/lib/falcon-mxmlc.jar"
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler/lib/falcon-mxmlc.jar"
         type="file"
         property="FALCON_HOME"
-        value="${FLEXJS_HOME}/../flex-falcon/compiler/generated/dist/sdk"/>
+        value="${FLEXJS_HOME}/../flex-falcon/compiler"/>
         
-        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler/generated/dist/sdk folder in flex-falcon repo or this folder if it has been converted into an FB-compatible SDK"
+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing falcon-mxmlc.jar such as the compiler folder in flex-falcon repo or a FlexJS SDK folder"
         unless="FALCON_HOME"/>
     </target>
 
@@ -168,16 +147,13 @@
         property="FALCONJX_HOME"
         value="${env.FALCONJX_HOME}"/>
         
-        <available file="${FLEXJS_HOME}/../flex-falcon/compiler.jx/lib/jsc.jar"
+        <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
         type="file"
         property="FALCONJX_HOME"
-        value="${FLEXJS_HOME}/../flex-falcon/compiler.jx"/>
+        value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
         
-        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler.jx folder in flex-falcon repo or the js folder if it has been converted into an FB-compatible SDK"
+        <fail message="FALCONJX_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in flex-falcon repo or the js folder of a FlexJS SDK"
         unless="FALCONJX_HOME"/>
     </target>
-    <target name="asjs" depends="check-falcon-home,check-falconjx-home,more-props,compile-asjs">
-    </target>
-
 
 </project>