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/19 05:15:25 UTC

[1/6] git commit: [flex-asjs] [refs/heads/develop] - building main SWC will build JS SWC first if needed

Repository: flex-asjs
Updated Branches:
  refs/heads/develop 63bf4c0c6 -> 7ae642bf0


building main SWC will build JS SWC first if needed


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/23c41c24
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/23c41c24
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/23c41c24

Branch: refs/heads/develop
Commit: 23c41c242eda5e6a5c83e33a4baff33934b25139
Parents: 63bf4c0
Author: Alex Harui <ah...@apache.org>
Authored: Wed May 18 13:15:56 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed May 18 13:15:56 2016 -0700

----------------------------------------------------------------------
 frameworks/projects/Binding/build.xml     | 11 ++++++++++-
 frameworks/projects/Charts/build.xml      | 11 ++++++++++-
 frameworks/projects/Collections/build.xml | 11 ++++++++++-
 frameworks/projects/Core/build.xml        | 11 ++++++++++-
 frameworks/projects/CreateJS/build.xml    | 11 ++++++++++-
 frameworks/projects/DragDrop/build.xml    | 11 ++++++++++-
 frameworks/projects/Effects/build.xml     | 11 ++++++++++-
 frameworks/projects/Flat/build.xml        | 11 ++++++++++-
 frameworks/projects/Formatters/build.xml  | 11 ++++++++++-
 frameworks/projects/GoogleMaps/build.xml  | 11 ++++++++++-
 frameworks/projects/Graphics/build.xml    | 11 ++++++++++-
 frameworks/projects/HTML/build.xml        | 11 ++++++++++-
 frameworks/projects/HTML5/build.xml       | 11 ++++++++++-
 frameworks/projects/JQuery/build.xml      | 11 ++++++++++-
 frameworks/projects/Mobile/build.xml      | 11 ++++++++++-
 frameworks/projects/Network/build.xml     | 11 ++++++++++-
 frameworks/projects/Reflection/build.xml  | 11 ++++++++++-
 frameworks/projects/Storage/build.xml     | 11 ++++++++++-
 18 files changed, 180 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Binding/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/build.xml b/frameworks/projects/Binding/build.xml
index dce2b49..721aa8e 100644
--- a/frameworks/projects/Binding/build.xml
+++ b/frameworks/projects/Binding/build.xml
@@ -31,7 +31,16 @@
     <property name="target.name" value="Binding.swc" />
     <property name="target.name.no.version" value="Binding.swc" />
 
-    <target name="main" depends="clean,compile,test-js" description="Full build of Binding.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test-js" description="Full build of Binding.swc">
+    </target>
+    
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
     <target name="test" unless="is.jenkins">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Charts/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/build.xml b/frameworks/projects/Charts/build.xml
index 60e8fd4..7c36fb6 100644
--- a/frameworks/projects/Charts/build.xml
+++ b/frameworks/projects/Charts/build.xml
@@ -31,9 +31,18 @@
     <property name="target.name" value="Charts.swc" />
     <property name="target.name.no.version" value="Charts.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of Charts.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Charts.swc">
     </target>
 
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+    
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Collections/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/build.xml b/frameworks/projects/Collections/build.xml
index ffc4731..83c53a9 100644
--- a/frameworks/projects/Collections/build.xml
+++ b/frameworks/projects/Collections/build.xml
@@ -31,9 +31,18 @@
     <property name="target.name" value="Collections.swc" />
     <property name="target.name.no.version" value="Collections.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of Collections.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Collections.swc">
     </target>
 
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+    
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Core/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/build.xml b/frameworks/projects/Core/build.xml
index 36058ef..292f449 100644
--- a/frameworks/projects/Core/build.xml
+++ b/frameworks/projects/Core/build.xml
@@ -31,9 +31,18 @@
     <property name="target.name" value="Core.swc" />
     <property name="target.name.no.version" value="Core.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of Core.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Core.swc">
     </target>
 
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+    
     <target name="test" unless="is.jenkins">
         <ant dir="src/test/flex"/>
     </target>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/CreateJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/build.xml b/frameworks/projects/CreateJS/build.xml
index 5d05c69..bf7ecf1 100644
--- a/frameworks/projects/CreateJS/build.xml
+++ b/frameworks/projects/CreateJS/build.xml
@@ -30,9 +30,18 @@
     <property name="target.name" value="CreateJS.swc" />
     <property name="target.name.no.version" value="CreateJS.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of CreateJS.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of CreateJS.swc">
     </target>
 
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+    
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/DragDrop/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/DragDrop/build.xml b/frameworks/projects/DragDrop/build.xml
index c3cfffd..0ec9d55 100644
--- a/frameworks/projects/DragDrop/build.xml
+++ b/frameworks/projects/DragDrop/build.xml
@@ -31,7 +31,16 @@
     <property name="target.name" value="DragDrop.swc" />
     <property name="target.name.no.version" value="DragDrop.swc" />
     
-    <target name="main" depends="clean,compile" description="Full build of DragDrop.swc">
+    <target name="main" depends="clean,js-if-needed,compile" description="Full build of DragDrop.swc">
+    </target>
+    
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
     <target name="test" unless="is.jenkins">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Effects/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/build.xml b/frameworks/projects/Effects/build.xml
index ad5cde8..004d789 100644
--- a/frameworks/projects/Effects/build.xml
+++ b/frameworks/projects/Effects/build.xml
@@ -31,7 +31,16 @@
     <property name="target.name" value="Effects.swc" />
     <property name="target.name.no.version" value="Effects.swc" />
 
-    <target name="main" depends="clean,compile" description="Full build of Effects.swc">
+    <target name="main" depends="clean,js-if-needed,compile" description="Full build of Effects.swc">
+    </target>
+
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
 
     <target name="test" unless="is.jenkins">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Flat/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Flat/build.xml b/frameworks/projects/Flat/build.xml
index bb00438..f84eb8d 100644
--- a/frameworks/projects/Flat/build.xml
+++ b/frameworks/projects/Flat/build.xml
@@ -31,9 +31,18 @@
     <property name="target.name" value="Flat.swc" />
     <property name="target.name.no.version" value="Flat.swc" />
     
-    <target name="main" depends="clean,compile,test" description="Full build of Flat.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Flat.swc">
     </target>
     
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Formatters/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/build.xml b/frameworks/projects/Formatters/build.xml
index 6abc429..3843531 100644
--- a/frameworks/projects/Formatters/build.xml
+++ b/frameworks/projects/Formatters/build.xml
@@ -30,9 +30,18 @@
     <property name="target.name" value="Formatters.swc" />
     <property name="target.name.no.version" value="Formatters.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of Formatters.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Formatters.swc">
     </target>
 
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+    
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/GoogleMaps/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/build.xml b/frameworks/projects/GoogleMaps/build.xml
index 25ff0ef..a2c2f80 100644
--- a/frameworks/projects/GoogleMaps/build.xml
+++ b/frameworks/projects/GoogleMaps/build.xml
@@ -30,9 +30,18 @@
     <property name="target.name" value="GoogleMaps.swc" />
     <property name="target.name.no.version" value="GoogleMaps.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of GoogleMaps.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of GoogleMaps.swc">
     </target>
 
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+    
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Graphics/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/build.xml b/frameworks/projects/Graphics/build.xml
index 7c1dd85..6764adf 100644
--- a/frameworks/projects/Graphics/build.xml
+++ b/frameworks/projects/Graphics/build.xml
@@ -30,7 +30,16 @@
     <property name="target.name" value="Graphics.swc" />
     <property name="target.name.no.version" value="Graphics.swc" />
     
-    <target name="main" depends="clean,compile,test" description="Full build of Graphics.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Graphics.swc">
+    </target>
+    
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
     <target name="test" unless="is.jenkins">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/HTML/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/build.xml b/frameworks/projects/HTML/build.xml
index 7f6abcc..dc16577 100644
--- a/frameworks/projects/HTML/build.xml
+++ b/frameworks/projects/HTML/build.xml
@@ -30,9 +30,18 @@
     <property name="target.name" value="HTML.swc" />
     <property name="target.name.no.version" value="HTML.swc" />
     
-    <target name="main" depends="clean,compile,test" description="Full build of HTML.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of HTML.swc">
     </target>
     
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+
     <target name="test" unless="is.jenkins">
         <ant dir="src/test/flex"/>
     </target>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/HTML5/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML5/build.xml b/frameworks/projects/HTML5/build.xml
index 023179d..f41560e 100644
--- a/frameworks/projects/HTML5/build.xml
+++ b/frameworks/projects/HTML5/build.xml
@@ -30,9 +30,18 @@
     <property name="target.name" value="HTML5.swc" />
     <property name="target.name.no.version" value="HTML5.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of HTML5.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of HTML5.swc">
     </target>
 
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+    
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/JQuery/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/JQuery/build.xml b/frameworks/projects/JQuery/build.xml
index e9dd7ac..c1677f6 100644
--- a/frameworks/projects/JQuery/build.xml
+++ b/frameworks/projects/JQuery/build.xml
@@ -30,7 +30,16 @@
     <property name="target.name" value="JQuery.swc" />
     <property name="target.name.no.version" value="JQuery.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of jQuery.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of jQuery.swc">
+    </target>
+
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
 
     <target name="test" unless="is.jenkins">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Mobile/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/build.xml b/frameworks/projects/Mobile/build.xml
index 92229da..f2f6a3a 100644
--- a/frameworks/projects/Mobile/build.xml
+++ b/frameworks/projects/Mobile/build.xml
@@ -30,9 +30,18 @@
     <property name="target.name" value="Mobile.swc" />
     <property name="target.name.no.version" value="Mobile.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of Mobile.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Mobile.swc">
     </target>
 
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+    
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Network/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/build.xml b/frameworks/projects/Network/build.xml
index 99b1e7c..1032681 100644
--- a/frameworks/projects/Network/build.xml
+++ b/frameworks/projects/Network/build.xml
@@ -30,9 +30,18 @@
     <property name="target.name" value="Network.swc" />
     <property name="target.name.no.version" value="Network.swc" />
     
-    <target name="main" depends="clean,compile" description="Full build of Network.swc">
+    <target name="main" depends="clean,js-if-needed,compile" description="Full build of Network.swc">
     </target>
     
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
+    </target>
+
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Reflection/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Reflection/build.xml b/frameworks/projects/Reflection/build.xml
index 2132bb4..3a75e35 100644
--- a/frameworks/projects/Reflection/build.xml
+++ b/frameworks/projects/Reflection/build.xml
@@ -30,7 +30,16 @@
     <property name="target.name" value="Reflection.swc" />
     <property name="target.name.no.version" value="Reflection.swc" />
     
-    <target name="main" depends="clean,compile,test" description="Full build of Reflection.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Reflection.swc">
+    </target>
+    
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
     <target name="test" unless="is.jenkins">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23c41c24/frameworks/projects/Storage/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/build.xml b/frameworks/projects/Storage/build.xml
index 4e10df5..57b2aa9 100644
--- a/frameworks/projects/Storage/build.xml
+++ b/frameworks/projects/Storage/build.xml
@@ -30,7 +30,16 @@
     <property name="target.name" value="Storage.swc" />
     <property name="target.name.no.version" value="Storage.swc" />
 
-    <target name="main" depends="clean,compile,test" description="Full build of Storage.swc">
+    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Storage.swc">
+    </target>
+
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
 
     <target name="test" unless="is.jenkins">


[5/6] git commit: [flex-asjs] [refs/heads/develop] - clean up build scripts

Posted by ah...@apache.org.
clean up build scripts


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/a72a205c
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/a72a205c
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/a72a205c

Branch: refs/heads/develop
Commit: a72a205cf16647b461dc7088899823051b1cac3a
Parents: 23c41c2
Author: Alex Harui <ah...@apache.org>
Authored: Wed May 18 21:51:41 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed May 18 21:51:41 2016 -0700

----------------------------------------------------------------------
 .../js/FlexJS/projects/BindingJS/build.xml      | 117 +++++++-------
 .../js/FlexJS/projects/ChartsJS/build.xml       | 115 ++++++++------
 .../js/FlexJS/projects/CollectionsJS/build.xml  | 115 ++++++++------
 frameworks/js/FlexJS/projects/CoreJS/build.xml  | 132 ++++++++--------
 .../js/FlexJS/projects/CreateJSJS/build.xml     | 131 ++++++++--------
 .../js/FlexJS/projects/DragDropJS/build.xml     | 125 ++++++++-------
 .../js/FlexJS/projects/EffectsJS/build.xml      | 127 ++++++++-------
 frameworks/js/FlexJS/projects/FlatJS/build.xml  | 116 +++++++-------
 .../js/FlexJS/projects/FormattersJS/build.xml   | 112 ++++++++------
 .../js/FlexJS/projects/GoogleMapsJS/build.xml   | 124 ++++++++-------
 .../js/FlexJS/projects/GraphicsJS/build.xml     | 116 +++++++-------
 frameworks/js/FlexJS/projects/HTML5JS/build.xml | 112 ++++++++------
 frameworks/js/FlexJS/projects/HTMLJS/build.xml  | 119 ++++++++-------
 .../js/FlexJS/projects/JQueryJS/build.xml       | 115 ++++++++------
 .../js/FlexJS/projects/MobileJS/build.xml       | 112 ++++++++------
 .../js/FlexJS/projects/NetworkJS/build.xml      | 112 ++++++++------
 .../js/FlexJS/projects/ReflectionJS/build.xml   | 113 ++++++++------
 .../js/FlexJS/projects/StorageJS/build.xml      | 140 +++++++++--------
 frameworks/js/FlexJS/projects/XMLJS/build.xml   |  78 ++++------
 frameworks/js/build.xml                         | 153 -------------------
 frameworks/projects/Binding/build.xml           |  86 ++++++-----
 frameworks/projects/Charts/build.xml            |  86 ++++++-----
 frameworks/projects/Collections/build.xml       |  86 ++++++-----
 frameworks/projects/Core/build.xml              |  95 +++++++-----
 frameworks/projects/CreateJS/build.xml          |  89 ++++++-----
 frameworks/projects/DragDrop/build.xml          |  89 ++++++-----
 frameworks/projects/Effects/build.xml           |  96 ++++++------
 frameworks/projects/Flat/build.xml              |  83 +++++-----
 frameworks/projects/Formatters/build.xml        |  83 ++++++----
 frameworks/projects/GoogleMaps/build.xml        |  90 ++++++-----
 frameworks/projects/Graphics/build.xml          |  83 +++++-----
 frameworks/projects/HTML/build.xml              |  82 +++++-----
 frameworks/projects/HTML5/build.xml             |  83 ++++++----
 frameworks/projects/JQuery/build.xml            |  85 ++++++-----
 frameworks/projects/Mobile/build.xml            |  83 ++++++----
 frameworks/projects/Network/build.xml           |  81 +++++-----
 frameworks/projects/Reflection/build.xml        |  80 +++++-----
 frameworks/projects/Storage/build.xml           |  99 ++++++------
 frameworks/projects/XML/build.xml               |  94 +++++-------
 39 files changed, 2168 insertions(+), 1869 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/js/FlexJS/projects/BindingJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/BindingJS/build.xml b/frameworks/js/FlexJS/projects/BindingJS/build.xml
index 8b94560..f5be9ab 100644
--- a/frameworks/js/FlexJS/projects/BindingJS/build.xml
+++ b/frameworks/js/FlexJS/projects/BindingJS/build.xml
@@ -26,39 +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="BindingJS.swc" />
-    <property name="target.name.no.version" value="BindingJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test-js" description="Full build of Binding.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/libs">
-                <include name="${target.name.no.version}"/>
+            <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -68,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"/>
@@ -83,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" />
@@ -96,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}"/>
@@ -104,36 +78,22 @@
         <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" >
         <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources"/>
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/generated-sources">
@@ -142,5 +102,58 @@
             </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/a72a205c/frameworks/js/FlexJS/projects/ChartsJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/ChartsJS/build.xml b/frameworks/js/FlexJS/projects/ChartsJS/build.xml
index f57933e..dbc5c58 100644
--- a/frameworks/js/FlexJS/projects/ChartsJS/build.xml
+++ b/frameworks/js/FlexJS/projects/ChartsJS/build.xml
@@ -26,33 +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="ChartsJS.swc" />
-    <property name="target.name.no.version" value="ChartsJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of ChartsJS.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">
@@ -62,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"/>
@@ -77,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" />
@@ -90,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}"/>
@@ -98,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/a72a205c/frameworks/js/FlexJS/projects/CollectionsJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/CollectionsJS/build.xml b/frameworks/js/FlexJS/projects/CollectionsJS/build.xml
index 2b9ceb1..8de2c5a 100644
--- a/frameworks/js/FlexJS/projects/CollectionsJS/build.xml
+++ b/frameworks/js/FlexJS/projects/CollectionsJS/build.xml
@@ -26,33 +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="CollectionsJS.swc" />
-    <property name="target.name.no.version" value="CollectionsJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of CollectionsJS.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">
@@ -62,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"/>
@@ -77,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" />
@@ -90,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}"/>
@@ -98,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/a72a205c/frameworks/js/FlexJS/projects/CoreJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/CoreJS/build.xml b/frameworks/js/FlexJS/projects/CoreJS/build.xml
index ce9bc6f..9a27073 100644
--- a/frameworks/js/FlexJS/projects/CoreJS/build.xml
+++ b/frameworks/js/FlexJS/projects/CoreJS/build.xml
@@ -21,44 +21,21 @@
 
 <project name="CoreJS" 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" />
     
-    <property name="target.name" value="CoreJS.swc" />
-    <property name="target.name.no.version" value="CoreJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js" description="Full build of CoreJS.swc">
-    </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="src/test/flex"/>
-         -->
-    </target>
-
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/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">
@@ -67,15 +44,10 @@
             </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}"/>
-        <!-- make JS output folder now so include-file doesn't error -->
         <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
         <java jar="${FALCONJX_HOME}/lib/compc.jar" fork="true" >
             <jvmarg value="-Xmx384m" />
@@ -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" />
@@ -96,12 +69,8 @@
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </java>
-        <!-- hack: inject some jsdoc to get rid of a warning when building examples -->
-        <replace file="${basedir}/target/generated-sources/flexjs/org/apache/flex/events/IEventDispatcher.js"
-            token="org.apache.flex.events.IEventDispatcher.prototype.dispatchEvent"
-            value="/** @param {(Object|null|string)} event The event. &#xD;&#xA;@return {boolean} The return. */&#xD;&#xA;org.apache.flex.events.IEventDispatcher.prototype.dispatchEvent" />
     </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}"/>
@@ -109,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/a72a205c/frameworks/js/FlexJS/projects/CreateJSJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/CreateJSJS/build.xml b/frameworks/js/FlexJS/projects/CreateJSJS/build.xml
index 7cac9e3..aea3544 100644
--- a/frameworks/js/FlexJS/projects/CreateJSJS/build.xml
+++ b/frameworks/js/FlexJS/projects/CreateJSJS/build.xml
@@ -26,45 +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="CREATEJS.SWC" value="${FALCONJX_HOME}/../js/libs/createjs.swc" >
-        <available file="${FALCONJX_HOME}/../js/libs/createjs.swc" />
-    </condition>
-    <property name="CREATEJS.SWC" value="${FALCONJX_HOME}/../externs/createjs/target/createjs.swc" />
-    <condition property="no.lint" value="true">
-        <os family="windows"/>
-    </condition>
-    <property name="target.name" value="CreateJSJS.swc" />
-    <property name="target.name.no.version" value="CreateJSJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of CreateJS.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" />
-         -->
+    <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">
@@ -74,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"/>
@@ -89,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,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}"/>
@@ -111,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+=${CREATEJS.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="CREATEJS.SWC" value="${FALCONJX_HOME}/../js/libs/createjs.swc" >
+            <available file="${FALCONJX_HOME}/../js/libs/createjs.swc" />
+        </condition>
+        <property name="CREATEJS.SWC" value="${FALCONJX_HOME}/../externs/createjs/target/createjs.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/a72a205c/frameworks/js/FlexJS/projects/DragDropJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/DragDropJS/build.xml b/frameworks/js/FlexJS/projects/DragDropJS/build.xml
index 7dbb419..2e8cc87 100644
--- a/frameworks/js/FlexJS/projects/DragDropJS/build.xml
+++ b/frameworks/js/FlexJS/projects/DragDropJS/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="DragDropJS.swc" />
-    <property name="target.name.no.version" value="DragDropJS.swc" />
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <target name="main" depends="clean,compile-js-swc,compile-asjs" description="Full build of DragDrop.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" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="as/tests" />
-        <ant dir="asjs/tests" />
-        -->
-    </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/FlexJSlibs">
-                <include name="${target.name.no.version}"/>
+            <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -68,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"/>
@@ -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" />
@@ -97,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}"/>
@@ -105,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/a72a205c/frameworks/js/FlexJS/projects/EffectsJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/EffectsJS/build.xml b/frameworks/js/FlexJS/projects/EffectsJS/build.xml
index 0dfd396..82d25cc 100644
--- a/frameworks/js/FlexJS/projects/EffectsJS/build.xml
+++ b/frameworks/js/FlexJS/projects/EffectsJS/build.xml
@@ -26,41 +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="EffectsJS.swc" />
-    <property name="target.name.no.version" value="EffectsJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js" description="Full build of Effects.swc">
-    </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="as/tests" />
-         <ant dir="asjs/tests" />
-         -->
-    </target>
-
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/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">
@@ -69,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"/>
@@ -85,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" />
@@ -98,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}"/>
@@ -106,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/a72a205c/frameworks/js/FlexJS/projects/FlatJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/FlatJS/build.xml b/frameworks/js/FlexJS/projects/FlatJS/build.xml
index 0cf230f..5fa5d49 100644
--- a/frameworks/js/FlexJS/projects/FlatJS/build.xml
+++ b/frameworks/js/FlexJS/projects/FlatJS/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="FlatJS.swc" />
-    <property name="target.name.no.version" value="FlatJS.swc" />
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of Flat.swc">
-    </target>
-    
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         <ant dir="asjs/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">
@@ -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/a72a205c/frameworks/js/FlexJS/projects/FormattersJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/projects/FormattersJS/build.xml b/frameworks/js/FlexJS/projects/FormattersJS/build.xml
index 182526f..aaf97a6 100644
--- a/frameworks/js/FlexJS/projects/FormattersJS/build.xml
+++ b/frameworks/js/FlexJS/projects/FormattersJS/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="FormattersJS.swc" />
-    <property name="target.name.no.version" value="FormattersJS.swc" />
-
-    <target name="main" depends="clean,compile-js-swc,compile-asjs,copy-js,test" description="Full build of Formatters.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>


[2/6] git commit: [flex-asjs] [refs/heads/develop] - clean up build scripts

Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Mobile/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/build.xml b/frameworks/projects/Mobile/build.xml
index f2f6a3a..a570197 100644
--- a/frameworks/projects/Mobile/build.xml
+++ b/frameworks/projects/Mobile/build.xml
@@ -26,13 +26,12 @@
     <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="target.name" value="Mobile.swc" />
-    <property name="target.name.no.version" value="Mobile.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Mobile.swc">
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -42,16 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -59,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
         
-        <!-- 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}"/>
@@ -96,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Network/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/build.xml b/frameworks/projects/Network/build.xml
index 1032681..dc1222e 100644
--- a/frameworks/projects/Network/build.xml
+++ b/frameworks/projects/Network/build.xml
@@ -26,11 +26,10 @@
     <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="target.name" value="Network.swc" />
-    <property name="target.name.no.version" value="Network.swc" />
     
-    <target name="main" depends="clean,js-if-needed,compile" description="Full build of Network.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="check-js">
@@ -41,23 +40,23 @@
     <target name="js-if-needed" depends="check-js" unless="js-not-needed">
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -65,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
         
-        <!-- 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}"/>
@@ -102,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
+    </target>
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Reflection/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Reflection/build.xml b/frameworks/projects/Reflection/build.xml
index 3a75e35..8a4fdf4 100644
--- a/frameworks/projects/Reflection/build.xml
+++ b/frameworks/projects/Reflection/build.xml
@@ -26,11 +26,10 @@
     <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="target.name" value="Reflection.swc" />
-    <property name="target.name.no.version" value="Reflection.swc" />
     
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Reflection.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="check-js">
@@ -42,22 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -65,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
         
-        <!-- 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}"/>
@@ -102,8 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
+    </target>
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
     
-
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Storage/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/build.xml b/frameworks/projects/Storage/build.xml
index 57b2aa9..75a8dff 100644
--- a/frameworks/projects/Storage/build.xml
+++ b/frameworks/projects/Storage/build.xml
@@ -21,18 +21,17 @@
 
 <project name="Storage" 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="target.name" value="Storage.swc" />
-    <property name="target.name.no.version" value="Storage.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Storage.swc">
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -41,23 +40,23 @@
     <target name="js-if-needed" depends="check-js" unless="js-not-needed">
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests"/>
-        -->
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
-
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
-
+    
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -65,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
-
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
+    
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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 StorageClasses.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.
-        -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -102,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/XML/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/build.xml b/frameworks/projects/XML/build.xml
index 749b48a..185cd22 100644
--- a/frameworks/projects/XML/build.xml
+++ b/frameworks/projects/XML/build.xml
@@ -27,35 +27,36 @@
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
     
-    <target name="more-props" >
-        <property name="target.name" value="XML.swc" />
-        <property name="target.name.no.version" value="XML.swc" />
-        <path id="lib.path">
-            <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-        </path>
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
     
-    <!--<target name="main" depends="clean,check-falcon-home,check-falconjx-home,more-props,compile-asjs,compile-extern-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,test" description="Full build of XML.swc">
+    <target name="check-js">
+        <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
+            <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
+        </uptodate>
+    </target>
+    <target name="js-if-needed" depends="check-js" unless="js-not-needed">
+        <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="as/tests" />
-        -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -63,30 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
     </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling libs/XML.swc"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
         <mkdir dir="${basedir}/target/generated-sources/flexjs" />
 
-        <!-- 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 XMLClasses.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}"/>
@@ -96,9 +87,16 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
 
+    <target name="check-compiler" depends="check-falcon-home">
+        <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.">
         
@@ -109,33 +107,13 @@
         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>
 
-    <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 if it has been converted into an FB-compatible SDK"
-        unless="FALCONJX_HOME"/>
-    </target>
-
-
 </project>


[3/6] git commit: [flex-asjs] [refs/heads/develop] - clean up build scripts

Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/js/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/js/build.xml b/frameworks/js/build.xml
deleted file mode 100644
index ebd6cd9..0000000
--- a/frameworks/js/build.xml
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-
-<!-- Note:
-    If you modify this file you may have to make the same change in build_framework.xml.
-    build_framework.xml is renamed to build.xml when it is packaged.
-    It is used to build the frameworks directory from the zip file. 
--->
-<project name="frameworks-js" default="main" basedir=".">
-
-    <property name="FLEXJS_HOME" location="../.."/>
-
-    <!-- Required for OSX 10.6 / Snow Leopard Performance. -->
-    <!-- Java 7 on Mac requires OSX 10.7.3 or higher and is 64-bit only -->
-    <!-- local.d32 is set/used in build.properties so this needs to be done first. -->
-    <condition property="local.d32" value="-d32">
-        <and>
-            <os family="mac"/>
-            <matches pattern="1.6.*" string="${java.version}"/>
-            <equals arg1="${sun.arch.data.model}" arg2="64"/>
-            <equals arg1="${os.arch}" arg2="x86_64"/>
-        </and>
-    </condition>
-
-    <!-- Property for the platform.  -->
-    <condition property="isMac">
-        <os family="mac"/>
-    </condition>
-    <condition property="isWindows">
-        <os family="windows" />
-    </condition>   
-    <condition property="isLinux">
-        <and>
-          <os family="unix"/>    
-          <not>
-            <os family="mac"/>    
-          </not>
-        </and>
-    </condition>  
-
-    <property file="${FLEXJS_HOME}/env.properties"/>
-    <property environment="env"/>
-    <property file="${FLEXJS_HOME}/build.properties"/>
-    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}" />
-    <property name="FLEX_HOME" value="${env.FLEX_HOME}" />
-	<property name="gjslint" value="gjslint" />
-	<property name="jshint" value="jshint" />
-	<condition property="no.lint" value="true">
-		<os family="windows"/>
-	</condition>
- 
-    <target name="main" depends="check-compile-env,clean,prepare,compile" 
-        description="Clean build of all SWCs"/>
-
-    <target name="check-compile-env" description="Check for the required environment variables">
-        <ant antfile="${FLEXJS_HOME}/build.xml" target="check-compile-env" dir="${FLEXJS_HOME}"/>
-    </target>
-
-    <path id="lib.path">
-        <fileset dir="${FALCONJX_HOME}/lib" includes="compc.jar"/>
-    </path>
-
-    <target name="prepare" depends="thirdparty-downloads"/>
-            
-    <target name="thirdparty-downloads" unless="no.thirdparty-downloads" description="Downloads all the required thirdparty code.">
-        <!--<ant antfile="${basedir}/downloads.xml" dir="${basedir}"/>-->
-    </target>
-    
-    <target name="compile" depends="flexjsjx, gjslint, jshint" description="Validates JS code" />
-    
-    <target name="lint" depends="gjslint, jshint" />
-    
-    <target name="gjslint" unless="no.lint">
-        <echo>running gjslint</echo>
-        <exec executable="${gjslint}" dir="${basedir}" failonerror="true">
-            <arg value="--strict" />
-            <arg value="--disable" />
-            <arg value="006,100,214,300" />
-            <!-- 006: wrong indentation -->
-            <!-- 100: cannot have non-primitive value -->
-            <!-- 214: @fileoverview tag missing description -->
-            <!-- 300: missing newline at end of file -->
-            <arg value="--max_line_length" />
-            <arg value="120" />
-            <arg value="-r" />
-            <arg value="FlexJS/src" />
-        </exec>
-    </target>
-    
-    <target name="jshint" unless="no.lint">
-        <echo>running jshint</echo>
-        <exec executable="${jshint}" dir="${basedir}" failonerror="true">
-            <arg value="--config" />
-            <arg value="jshint.properties" />
-            <arg value="FlexJS/src" />
-        </exec>
-    </target>
-	
-    <target name="flexjsjx" >
-        <echo message="Compiling libs/FlexJSJX.swc"/>
-        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
-        <mkdir dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs" />
-        <java jar="${FALCONJX_HOME}/lib/compc.jar" fork="true" >
-            <jvmarg value="-Xmx384m" />
-            <jvmarg value="-Dsun.io.useCanonCaches=false" />
-            <jvmarg value="-Dflexcompiler=${FALCONJX_HOME}/../compiler" />
-            <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
-            <arg value="+flexlib=${FLEX_HOME}/frameworks" />
-            <arg value="-js-output-type=FLEXJS" />
-            <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
-            <arg value="-output=${FLEXJS_HOME}/frameworks/js/FlexJS/libs" />
-            <arg value="-load-config=${FLEXJS_HOME}/frameworks/as/projects/FlexJSJX/compile-config.xml" />
-            <arg value="+playerglobal.version=${playerglobal.version}" />
-            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
-        </java>
-    </target>
-    
-    <!--
-		Cleanup
-	-->
-
-    <target name="super-clean" depends="thirdparty-clean,clean" description="Cleans everything including thirdparty downloads."/>
-	
-    <target name="thirdparty-clean" unless="no.thirdparty-clean" description="Removes all thirdparty downloads.">
-        <!--<ant antfile="${basedir}/downloads.xml" target="clean" dir="${basedir}"/>-->
-    </target>
-    
-    <target name="clean" description="Cleans all SWCs and their resource bundles">
-        <delete failonerror="false">
-            <fileset dir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-                <include name="**/**" />
-            </fileset>
-        </delete>
-    </target>
-    
-</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Binding/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/build.xml b/frameworks/projects/Binding/build.xml
index 721aa8e..f4fe8f6 100644
--- a/frameworks/projects/Binding/build.xml
+++ b/frameworks/projects/Binding/build.xml
@@ -26,12 +26,10 @@
     <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="target.name" value="Binding.swc" />
-    <property name="target.name.no.version" value="Binding.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test-js" description="Full build of Binding.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="check-js">
@@ -43,22 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="as/tests" />
-        -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -66,32 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
     </target>
     
-    <path id="lib.path">
-      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling libs/Binding.swc"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
-
-        <!-- 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 BindingClasses.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.
-        -->
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -101,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Charts/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/build.xml b/frameworks/projects/Charts/build.xml
index 7c36fb6..fdc915d 100644
--- a/frameworks/projects/Charts/build.xml
+++ b/frameworks/projects/Charts/build.xml
@@ -26,14 +26,12 @@
     <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="target.name" value="Charts.swc" />
-    <property name="target.name.no.version" value="Charts.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Charts.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -43,16 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -60,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
     </target>
     
-    <path id="lib.path">
-      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling libs/Charts.swc"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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 ChartsClasses.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.
-        -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -97,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Collections/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/build.xml b/frameworks/projects/Collections/build.xml
index 83c53a9..8a14664 100644
--- a/frameworks/projects/Collections/build.xml
+++ b/frameworks/projects/Collections/build.xml
@@ -26,14 +26,12 @@
     <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="target.name" value="Collections.swc" />
-    <property name="target.name.no.version" value="Collections.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Collections.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -43,16 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -60,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
     </target>
     
-    <path id="lib.path">
-      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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.
-         -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -97,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Core/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/build.xml b/frameworks/projects/Core/build.xml
index 292f449..a926925 100644
--- a/frameworks/projects/Core/build.xml
+++ b/frameworks/projects/Core/build.xml
@@ -21,19 +21,17 @@
 
 <project name="Core" 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="target.name" value="Core.swc" />
-    <property name="target.name.no.version" value="Core.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Core.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -43,20 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <ant dir="src/test/flex"/>
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
-
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
-
+    
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -64,35 +64,22 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
         <ant dir="src/test/flex" target="clean"/>
     </target>
-
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
+    
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
-
-        <!-- 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.
-        -->
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
-               output="${basedir}/target/${target.name}">
+            output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="${basedir}/src/main/config/compile-as-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
@@ -100,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/CreateJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/build.xml b/frameworks/projects/CreateJS/build.xml
index bf7ecf1..1a36a0d 100644
--- a/frameworks/projects/CreateJS/build.xml
+++ b/frameworks/projects/CreateJS/build.xml
@@ -26,13 +26,12 @@
     <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="target.name" value="CreateJS.swc" />
-    <property name="target.name.no.version" value="CreateJS.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of CreateJS.swc">
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -42,22 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -65,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
     </target>
     
-    <path id="lib.path">
-      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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.
-         -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -102,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/DragDrop/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/DragDrop/build.xml b/frameworks/projects/DragDrop/build.xml
index 0ec9d55..0cb8755 100644
--- a/frameworks/projects/DragDrop/build.xml
+++ b/frameworks/projects/DragDrop/build.xml
@@ -26,12 +26,10 @@
     <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="target.name" value="DragDrop.swc" />
-    <property name="target.name.no.version" value="DragDrop.swc" />
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <target name="main" depends="clean,js-if-needed,compile" description="Full build of DragDrop.swc">
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="check-js">
@@ -43,23 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="as/tests" />
-        <ant dir="asjs/tests" />
-        -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
-        
+    
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -67,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
-
-    <path id="lib.path">
-      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
+    
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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.
-         -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -104,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Effects/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/build.xml b/frameworks/projects/Effects/build.xml
index 004d789..c3b97fe 100644
--- a/frameworks/projects/Effects/build.xml
+++ b/frameworks/projects/Effects/build.xml
@@ -26,14 +26,12 @@
     <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="target.name" value="Effects.swc" />
-    <property name="target.name.no.version" value="Effects.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile" description="Full build of Effects.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -42,25 +40,23 @@
     <target name="js-if-needed" depends="check-js" unless="js-not-needed">
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-        <ant dir="as/tests" />
-         <ant dir="asjs/tests" />
-         -->
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
-
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
-
-
+    
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -68,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
-
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
+    
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
         
-        <!-- 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}"/>
@@ -105,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Flat/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Flat/build.xml b/frameworks/projects/Flat/build.xml
index f84eb8d..e323e5c 100644
--- a/frameworks/projects/Flat/build.xml
+++ b/frameworks/projects/Flat/build.xml
@@ -26,12 +26,10 @@
     <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="target.name" value="Flat.swc" />
-    <property name="target.name.no.version" value="Flat.swc" />
+    <property name="target.name" value="${ant.project.name}.swc" />
     
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Flat.swc">
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="check-js">
@@ -42,24 +40,23 @@
     <target name="js-if-needed" depends="check-js" unless="js-not-needed">
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         <ant dir="asjs/tests" />
-         -->
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -67,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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.
-         -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -104,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
+    </target>
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
     
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Formatters/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/build.xml b/frameworks/projects/Formatters/build.xml
index 3843531..a14f28c 100644
--- a/frameworks/projects/Formatters/build.xml
+++ b/frameworks/projects/Formatters/build.xml
@@ -26,13 +26,12 @@
     <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="target.name" value="Formatters.swc" />
-    <property name="target.name.no.version" value="Formatters.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Formatters.swc">
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -42,16 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -59,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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.
-         -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -96,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
+    </target>
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
     
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/GoogleMaps/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/build.xml b/frameworks/projects/GoogleMaps/build.xml
index a2c2f80..0dcfb0c 100644
--- a/frameworks/projects/GoogleMaps/build.xml
+++ b/frameworks/projects/GoogleMaps/build.xml
@@ -26,13 +26,12 @@
     <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="target.name" value="GoogleMaps.swc" />
-    <property name="target.name.no.version" value="GoogleMaps.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of GoogleMaps.swc">
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -42,16 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -59,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
-
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
+    
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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.
-         -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -96,8 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/Graphics/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/build.xml b/frameworks/projects/Graphics/build.xml
index 6764adf..1aa386f 100644
--- a/frameworks/projects/Graphics/build.xml
+++ b/frameworks/projects/Graphics/build.xml
@@ -26,11 +26,10 @@
     <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="target.name" value="Graphics.swc" />
-    <property name="target.name.no.version" value="Graphics.swc" />
     
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of Graphics.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="check-js">
@@ -42,24 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         <ant dir="asjs/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
-    
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -67,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
         
-        <!-- 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}"/>
@@ -104,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/HTML/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/build.xml b/frameworks/projects/HTML/build.xml
index dc16577..8f206e3 100644
--- a/frameworks/projects/HTML/build.xml
+++ b/frameworks/projects/HTML/build.xml
@@ -26,11 +26,10 @@
     <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="target.name" value="HTML.swc" />
-    <property name="target.name.no.version" value="HTML.swc" />
     
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of HTML.swc">
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
     
     <target name="check-js">
@@ -41,21 +40,23 @@
     <target name="js-if-needed" depends="check-js" unless="js-not-needed">
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
-
-    <target name="test" unless="is.jenkins">
-        <ant dir="src/test/flex"/>
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
     </target>
     
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
-         -->
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -63,35 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
         <ant dir="src/test/flex" target="clean"/>
     </target>
     
-    <path id="lib.path">
-      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
-
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
         
-        <!-- 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}"/>
@@ -101,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/HTML5/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML5/build.xml b/frameworks/projects/HTML5/build.xml
index f41560e..5836136 100644
--- a/frameworks/projects/HTML5/build.xml
+++ b/frameworks/projects/HTML5/build.xml
@@ -26,13 +26,12 @@
     <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="target.name" value="HTML5.swc" />
-    <property name="target.name.no.version" value="HTML5.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of HTML5.swc">
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -42,16 +41,22 @@
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
     
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -59,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
         
-        <!-- 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}"/>
@@ -96,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
     </target>
-
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
+    
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/frameworks/projects/JQuery/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/JQuery/build.xml b/frameworks/projects/JQuery/build.xml
index c1677f6..b1c7627 100644
--- a/frameworks/projects/JQuery/build.xml
+++ b/frameworks/projects/JQuery/build.xml
@@ -26,13 +26,12 @@
     <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="target.name" value="JQuery.swc" />
-    <property name="target.name.no.version" value="JQuery.swc" />
-
-    <target name="main" depends="clean,js-if-needed,compile,test" description="Full build of jQuery.swc">
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <target name="main" depends="clean,check-compiler,js-if-needed,compile,test" description="Full build of ${ant.project.name}.swc">
     </target>
-
+    
     <target name="check-js">
         <uptodate property="js-not-needed" targetfile="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/target/${ant.project.name}JS.swc">
             <srcfiles dir="${basedir}/src/main/flex" includes="**/**"/>
@@ -41,17 +40,23 @@
     <target name="js-if-needed" depends="check-js" unless="js-not-needed">
         <ant dir="${FLEXJS_HOME}/frameworks/js/FlexJS/projects/${ant.project.name}JS/" inheritAll="false" />
     </target>
-
-    <target name="test" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="as/tests" />
-         -->
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/flex/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" />
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="${target.name.no.version}"/>
+                <include name="${target.name}"/>
             </fileset>
         </delete>
         <delete failonerror="false" includeemptydirs="true">
@@ -59,34 +64,20 @@
                 <include name="**/**"/>
             </fileset>
         </delete>
+        <antcall target="clean-tests" />
     </target>
     
-    <path id="lib.path">
-        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
-    </path>
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/flex" target="clean"/>
+    </target>
     
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling target/${target.name}"/>
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
         <!-- make JS output folder now so include-file doesn't error -->
-        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
-
-        <!-- 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.
-         -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs" />
+        
         <compc fork="true"
             output="${basedir}/target/${target.name}">
             <jvmarg line="${compc.jvm.args}"/>
@@ -96,7 +87,33 @@
             <arg value="-define=COMPILE::AS3,true" />
             <arg value="-define=COMPILE::JS,false" />
         </compc>
-        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name}" />
+    </target>
+    
+    <target name="check-compiler" depends="check-falcon-home">
+        <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>
     
 </project>


[6/6] git commit: [flex-asjs] [refs/heads/develop] - fix up env template

Posted by ah...@apache.org.
fix up env template


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/7ae642bf
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/7ae642bf
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/7ae642bf

Branch: refs/heads/develop
Commit: 7ae642bf0830f191f7a4a34b15d52f6909067010
Parents: a72a205
Author: Alex Harui <ah...@apache.org>
Authored: Wed May 18 22:15:15 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed May 18 22:15:15 2016 -0700

----------------------------------------------------------------------
 env-template.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7ae642bf/env-template.properties
----------------------------------------------------------------------
diff --git a/env-template.properties b/env-template.properties
index 312098e..2787277 100644
--- a/env-template.properties
+++ b/env-template.properties
@@ -54,12 +54,12 @@
 #env.AIR_HOME=
 
 #
-# Set this to the root of its SDK: <repo-path>/compiler/generated/dist/sdk
+# Set this to the root of its SDK: <repo-path>/compiler
 #
 #env.FALCON_HOME=
 
 #
-# Set this to the root of its SDK: <repo-path>/compiler.jx
+# Set this to the root of its SDK: <repo-path>/compiler-jx
 #
 #env.FALCONJX_HOME=
 


[4/6] git commit: [flex-asjs] [refs/heads/develop] - clean up build scripts

Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a72a205c/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/a72a205c/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/a72a205c/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/a72a205c/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/a72a205c/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/a72a205c/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/a72a205c/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/a72a205c/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/a72a205c/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/a72a205c/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>