changeset 3:8d968b638b49

Added build scripts that are needed for building UI controls. Actually they are probably not ALL needed, but they don't hurt. We need to clean these things all up as part of the open sourcing process, since the mechanism by which we download and install the necessary libs are probably going to be different than what we have been doing up to this point.
author rbair
date Tue, 06 Dec 2011 09:28:31 -0800
parents 67f9658dfd32
children 5a537ec76c6e
files build-defs.xml build-src/build-cache.xml build-src/build-component-template.xml build-src/build-components.xml build-src/build-copy.xml build-src/build-environment.xml build-src/build-importer.xml build-src/build-inventory.xml build-src/build-invoice.xml build-src/build-jar-importer.xml build-src/build-linux-defs.xml build-src/build-macosx-defs.xml build-src/build-os-arch.xml build-src/build-perf.xml build-src/build-sdk-rt.xml build-src/build-solaris-defs.xml build-src/build-windows-defs.xml build-src/build-zips.xml build-src/genVSproperties.bat build-src/startup2_template.html
diffstat 20 files changed, 4586 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-defs.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-defs" basedir=".">
+
+<!--
+/*
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ */
+-->
+
+    <description>
+
+        Defines common properties and macros for JavaFX project.
+
+        Sub-repositories should import this file into their build.xml file.
+
+        This file will import all other necessary top repository build-*.xml files.
+    
+    </description>
+   
+    <!-- This file determines root of the source tree for project -->
+    
+    <dirname property="jfx.root.dir" file="${ant.file.build-defs}"/>
+    <property name="jfx.root.build.src.dir" location="${jfx.root.dir}/build-src"/>
+
+    <!-- Include any hg properties in case this is a source bundle build. -->
+
+    <property file="${jfx.root.dir}/hg.properties"/>
+
+    <!-- Get platform, or, and arch properties and targets -->
+    
+    <import file="${jfx.root.build.src.dir}/build-os-arch.xml"/>
+
+    <!-- Default property values -->
+    
+    <property file="${jfx.root.dir}/project.properties"/>
+
+    <!-- Local overrides -->
+    
+    <property file="${jfx.root.dir}/project.local.properties"/>
+
+    <!-- Get properties defined from the environment -->
+
+    <import file="${jfx.root.build.src.dir}/build-environment.xml"/>
+
+    <!-- Get importer properties and targets -->
+
+    <import file="${jfx.root.build.src.dir}/build-importer.xml"/>
+
+    <!-- Get jars -->
+
+    <import file="${jfx.root.build.src.dir}/build-jar-importer.xml"/>
+  
+    <!-- Get platform properties and targets -->
+    
+    <import file="${jfx.root.build.src.dir}/build-${os_name}-defs.xml"/>
+
+    <!-- Macrodefs for generic things to be shared by everyone -->
+    
+    <!-- JAVAC -->
+    <macrodef name="do-javac">
+        <attribute name="srcdir"/>
+        <attribute name="destdir" default="${build.classes.dir}"/>
+        <attribute name="classpath" default="${javac.src.classpath}"/>
+        <attribute name="includes" default=""/>
+        <attribute name="excludes" default=""/>
+        <sequential>
+            <mkdir dir="@{destdir}"/>
+            <echo level="debug">DO_JAVAC</echo>
+            <echo level="debug">  srcdir="@{srcdir}"</echo>
+            <echo level="debug">  destdir="@{destdir}"</echo>
+            <echo level="debug">  debug="${javac.debug}"</echo>
+            <echo level="debug">  deprecation="${javac.deprecation}"</echo>
+            <echo level="debug">  source="${javac.source}"</echo>
+            <echo level="debug">  target="${javac.target}"</echo>
+            <echo level="debug">  includes="@{includes}"</echo>
+            <echo level="debug">  excludes="@{excludes}"</echo>
+            <echo level="debug">  classpath="@{classpath}"</echo>
+            <javac srcdir="@{srcdir}" destdir="@{destdir}"
+                   debug="${javac.debug}" deprecation="${javac.deprecation}"
+                   source="${javac.source}" target="${javac.target}"
+                   includeantruntime="false" includes="@{includes}"
+                   excludes="@{excludes}">
+                <classpath>
+                    <path path="@{classpath}"/>
+                </classpath>
+                <compilerarg line="${javac.compilerargs}"/>
+            </javac>
+        </sequential>
+    </macrodef>
+    
+    <!-- JAVA -->
+    <presetdef name="do-java.preset">
+        <java fork="true" dir="${run.dir}">
+            <jvmarg value="-showversion"/>
+            <jvmarg line="${run.jvmargs}"/>
+            <classpath>
+                <path path="${run.classpath}"/>
+            </classpath>
+        </java>
+    </presetdef>
+    
+    <macrodef name="do-java">
+        <attribute name="classname" default="${run.main.class}"/>
+        <sequential>
+            <echo>jvmarg line="${run.jvmargs}"</echo>
+            <echo level="debug">DO_JAVA</echo>
+            <echo level="debug">  classname="@{classname}"</echo>
+            <do-java.preset classname="@{classname}"/>
+        </sequential>
+    </macrodef>
+    
+    <macrodef name="do-java-debug">
+        <attribute name="classname" default="${run.main.class}"/>
+        <sequential>
+            <echo>jvmarg line="${run.jvmargs}"</echo>
+            <echo level="debug">DO_JAVA-DEBUG</echo>
+            <echo level="debug">  classname="@{classname}"</echo>
+            <nbjpdastart addressproperty="jpda.address" name="JMC" transport="dt_socket">
+                <classpath path="${run.classpath}"/>
+            </nbjpdastart>
+            <do-java.preset classname="@{classname}">
+                <jvmarg value="-Xdebug"/>
+                <jvmarg value="-Xnoagent"/>
+                <jvmarg value="-Djava.compiler=none"/>
+                <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
+            </do-java.preset>
+        </sequential>
+    </macrodef>
+    
+    <macrodef name="do-java-test">
+        <attribute name="classname"/>
+        <sequential>
+            <echo level="debug">DO_JAVA_TEST</echo>
+            <echo level="debug">  classname="@{classname}"</echo>
+            <do-java.preset classname="@{classname}" classpath="${test.run.classpath}" dir="${test.run.dir}"/>
+        </sequential>
+    </macrodef>
+    
+    <macrodef name="print-property">
+        <attribute name="property"/>
+        <sequential>
+            <condition property="@{property}.value"
+                       value="${@{property}}" else="">
+                <isset property="@{property}"/>
+            </condition>
+            <echo>@{property} = ${@{property}.value}</echo>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-file-check">
+        <attribute name="file"/>
+        <sequential>
+            <fail message="ERROR: File check failed, missing: @{file}">
+                <condition>
+                    <not>
+                        <available file="@{file}"/>
+                    </not>
+                </condition>
+            </fail>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-class-check">
+        <attribute name="classname"/>
+        <attribute name="classpath"/>
+        <sequential>
+            <fail message="ERROR: Class check failed, missing: @{classname} in @{classpath}">
+                <condition>
+                    <not>
+                        <available classname="@{classname}" classpath="@{classpath}"/>
+                    </not>
+                </condition>
+            </fail>
+        </sequential>
+    </macrodef>
+
+    <!-- Untar macrodef (for tar.gz files) -->
+
+    <macrodef name="do-untar-bundle">
+        <attribute name="tar"/>
+        <attribute name="dir"/>
+        <attribute name="includes" default="**"/>
+        <sequential>
+            <delete dir="@{dir}.untar"/>
+            <mkdir dir="@{dir}.untar"/>
+            <untar src="@{tar}"
+                   dest="@{dir}.untar"
+                   compression="gzip">
+                <patternset includes="@{includes}"/>
+            </untar>
+            <mkdir dir="@{dir}"/>
+            <delete dir="@{dir}"/>
+            <move file="@{dir}.untar" tofile="@{dir}" verbose="true"/>
+            <delete dir="@{dir}.untar"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-untar-bzip2-bundle">
+        <attribute name="tar"/>
+        <attribute name="dir"/>
+        <attribute name="includes" default="**"/>
+        <sequential>
+            <delete dir="@{dir}.untar"/>
+            <mkdir dir="@{dir}.untar"/>
+            <untar src="@{tar}"
+                   dest="@{dir}.untar"
+                   compression="bzip2">
+                <patternset includes="@{includes}"/>
+            </untar>
+            <mkdir dir="@{dir}"/>
+            <delete dir="@{dir}"/>
+            <move file="@{dir}.untar" tofile="@{dir}" verbose="true"/>
+            <delete dir="@{dir}.untar"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Unzip macrodef -->
+    
+    <macrodef name="do-unzip-bundle">
+        <attribute name="zip"/>
+        <attribute name="dir"/>
+        <attribute name="includes" default="**"/>
+        <sequential>
+            <delete dir="@{dir}.unzip"/>
+            <mkdir dir="@{dir}.unzip"/>
+            <unzip src="@{zip}" dest="@{dir}.unzip">
+                <patternset includes="@{includes}"/>
+            </unzip>
+            <mkdir dir="@{dir}"/>
+            <delete dir="@{dir}"/>
+            <move file="@{dir}.unzip" tofile="@{dir}" verbose="true"/>
+            <delete dir="@{dir}.unzip"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Get a zip from a url and unzip it. -->
+
+    <macrodef name="do-get-previous-bundle">
+        <attribute name="name"/>
+        <attribute name="url"/>
+        <attribute name="dir"/>
+        <sequential>
+            <delete file="previous_@{name}.zip"/>
+            <get src="@{url}" dest="previous_@{name}.zip"/>
+            <do-unzip-bundle zip="previous_@{name}.zip" dir="@{dir}"/>
+            <delete file="previous_@{name}.zip"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Target to be used by including file. -->
+
+    <target name="-init-defs"
+            depends="-init-platform">
+        <echo>Property=Value</echo>
+        <echo>--------------</echo>
+        <property name="isAny" value="true"/>
+        <print-property property="jfx.root.dir"      />
+        <print-property property="jfx.sdk.dir"       />
+        <print-property property="jfx.deployed.dir"  />
+        <print-property property="platform.home"     />
+        <print-property property="platform6u10.home" />
+        <print-property property="dxsdk.path"        />
+        <print-property property="qtsdk.path"        />
+        <print-property property="wmsdk.path"        />
+    </target>
+
+    <target name="-init-checkstyle">
+        <!-- Define the Checkstyle properties so that the <checkstyle> tag can be used -->
+        <taskdef resource="checkstyletask.properties">
+            <classpath>
+                <pathelement location="${import.checkstyle.jar}" />
+                <pathelement location="${jfx.checkstyle.jar}" />
+            </classpath>
+        </taskdef>
+    </target>
+    
+    <target name="-init-findbugs">
+        <property name="findbugs.home" value="${import.findbugs.home}" />
+        <path id="findbugs-jar">
+            <pathelement path="${findbugs.home}/lib/findbugs-ant.jar" />
+        </path>
+        <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs-jar" /> 
+        <taskdef name="convertXmlToText"
+         classname="edu.umd.cs.findbugs.anttask.ConvertXmlToTextTask"
+         classpathref="findbugs-jar"/>
+    </target>
+
+    <!-- ant-contrib -->
+    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+        <classpath>
+            <pathelement location="${import.ant-contrib.jar}"/>
+        </classpath>
+    </taskdef>
+
+</project>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-cache.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-cache" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines targets to create cached areas for sdk and xmldocs.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build.xml file only.
+
+    </description>
+
+    <!-- Populate both caches -->
+<!--
+    <target name="update-cache"
+            depends="-check-hudson,
+                     update-cached-sdk,
+                     update-cached-xmldocs">
+    </target>
+-->
+
+    <target name="update-cache"
+            depends="-check-hudson,
+                     update-cached-sdk">
+    </target>
+
+    <!-- Populate the caches/sdk directory. -->
+    <target name="update-cached-sdk"
+            depends="clean-cached-sdk"
+            if="hudson.jfx.host.available">
+        <do-get-previous-bundle name="sdk"
+            url="${hudson.jfx.sdk.url}" dir="${jfx.cached.sdk.dir}"/>
+    </target>
+    
+
+   <!-- Populate the caches/xmldocs directory. -->
+    <target name="update-cached-xmldocs"
+            depends="clean-cached-xmldocs"
+            if="hudson.jfx.host.available">
+        <do-get-previous-bundle name="xmldocs"
+            url="${hudson.jfx.xmldocs.url}" dir="${jfx.cached.xmldocs.dir}"/>
+    </target>
+
+    <!-- Clean out any caches/sdk files. -->
+    <target name="clean-cached-sdk">
+        <delete dir="${jfx.cached.sdk.dir}"/>
+    </target>
+
+    <!-- Clean out any caches/xmldocs files. -->
+    <target name="clean-cached-xmldocs">
+        <delete dir="${jfx.cached.xmldocs.dir}"/>
+    </target>
+
+    <!-- Set cached.sdk.needed if we need caches/sdk. -->
+    <condition property="cached.sdk.needed">
+        <and>
+            <not>
+                <isset property="jfx.full.forest"/>
+            </not>
+            <not>
+                <available file="${jfx.cached.sdk.dir}/${jfx.sdk.location.of.jfxmedia.jar}" type="file"/>
+            </not>
+        </and>
+    </condition>
+
+    <!-- Set cached.xmldocs.needed if we need caches/xmldocs. -->
+    <condition property="cached.xmldocs.needed">
+        <and>
+            <not>
+                <isset property="jfx.full.forest"/>
+            </not>
+            <not>
+                <available file="${jfx.cached.xmldocs.dir}" type="dir"/>
+            </not>
+        </and>
+    </condition>
+
+    <!-- See if hudson available. -->
+    <target name="-check-hudson">
+        <condition property="hudson.jfx.host.available">
+            <and>
+                <not>
+                    <isset property="jfx.open.only"/>
+                </not>
+                <isreachable host="${hudson.jfx.host}" timeout="10"/>
+            </and>
+        </condition>
+    </target>
+
+    <!-- Populate both caches if needed -->
+    <target name="update-cache-if-needed"
+            depends="update-cached-sdk-if-needed,
+                     update-cached-xmldocs-if-needed">
+    </target>
+
+    <!-- Update caches/sdk if needed (partial build and not existing). -->
+    <target name="update-cached-sdk-if-needed"
+            depends="-check-hudson"
+            if="cached.sdk.needed">
+        <antcall target="update-cached-sdk"/>
+    </target>
+
+     <!-- Update caches/xmldocs if needed (partial build and not existing). -->
+    <target name="update-cached-xmldocs-if-needed"
+            depends="-check-hudson"
+            if="cached.xmldocs.needed">
+        <antcall target="update-cached-xmldocs"/>
+    </target>
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-component-template.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-@COMPONENT@" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines targets for @COMPONENT@.
+
+        *** WARNING: THIS IS A GENERATED FILE. DO NOT EDIT ***
+
+    </description>
+
+    <!-- @COMPONENT@ -->
+    <target name="@COMPONENT@-clone"
+            unless="jfx.@COMPONENT@.repo.exists">
+        <do-clone component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-tip"
+            unless="jfx.repository.tip.@COMPONENT@"
+            if="jfx.@COMPONENT@.repo.exists">
+        <do-tip component="@COMPONENT@" property="jfx.repository.tip.@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-clean" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-clean" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-clean-sdk" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-clean-sdk" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-clean-deploy" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-clean-deploy" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-sdk" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-sdk" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-test" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-test" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-deploy" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-deploy" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-sdk-docs" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-sdk-docs" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-apps" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-apps" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-perf" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-perf" component="@COMPONENT@"/>
+    </target>
+    <target name="@COMPONENT@-jfx-full-test" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-full-test" component="@COMPONENT@"/>
+    </target>
+
+    <!-- Special targets unique to a single component, not all
+         components have to implement this target. -->
+    <target name="@COMPONENT@-jfx-sign-jars" if="jfx.@COMPONENT@.exists">
+        <do-component target="jfx-sign-jars" component="@COMPONENT@"/>
+    </target>
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-components.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-components" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+   
+        Defines component (sub repository) properties and macrodefs
+        for building the components and controlling which components get built.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build.xml file only.
+
+        The contract between the top repository and sub repositories:
+
+           jfx-init         - Initialize anything for a build
+           jfx-clean        - Clean yourself
+           jfx-sdk          - Build and add your files to ${jfx.sdk.dir}
+           jfx-sdk-clean    - Delete the files you added to ${jfx.sdk.dir}
+           jfx-deploy       - Build and add your files to ${jfx.deployed.dir}
+           jfx-deploy-clean - Delete the files you added to ${jfx.deployed.dir}
+           jfx-test         - Run your smoke tests on ${jfx.sdk.dir}
+           jfx-sdk-docs     - Generate and deliver sdk docs
+           jfx-perf         - Build performance tests and related code to ${jfx.perf.dir}
+    
+         Refer to the comments in this file with the pattern
+             "NOTE: (newcomponent)"
+         for what changes are needed to add a new component.
+
+    </description>
+
+    <!-- Run an ant target for a component. -->
+    <macrodef name="do-component">
+        <attribute name="component"/>
+        <attribute name="target"/>
+        <sequential>
+            <tstamp>
+                <format property="jfx.@{component}.@{target}.start.clock"
+                        pattern="HH:mm:ss"/>
+            </tstamp>
+            <tstamp>
+                <format property="jfx.@{component}.@{target}.start.time"
+                        pattern="MM/dd/yyyy HH:mm:ss"/>
+            </tstamp>
+            <echo level="info"
+                  message="################################################"/>
+            <echo level="info"
+                  message="# cd @{component} ; ant @{target} -> Start  Time: ${jfx.@{component}.@{target}.start.time}"/>
+            <!-- RUN separate ant file -->
+            <ant antfile="${basedir}/@{component}/build.xml"
+                 target="@{target}" inheritAll="false"/>
+            <tstamp>
+                <format property="jfx.@{component}.@{target}.finish.time"
+                        pattern="MM/dd/yyyy HH:mm:ss"/>
+            </tstamp>
+            <tstamp>
+                <format property="jfx.@{component}.@{target}.finish.clock"
+                        pattern="HH:mm:ss"/>
+            </tstamp>
+            <echo level="info"
+                  message="# cd @{component} ; ant @{target} -> Finish Time: ${jfx.@{component}.@{target}.finish.time}"/>
+            <echo level="info"
+                  message="# Timing: ${jfx.@{component}.@{target}.start.clock} -> ${jfx.@{component}.@{target}.finish.clock} (@{component} @{target})"/>
+            <echo level="info"
+                  message="################################################"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Clone a component repository. -->
+    <macrodef name="do-clone">
+        <attribute name="component"/>
+        <sequential>
+            <echo message="hg clone --pull ${hg.paths.default}/@{component} ./@{component}"/>
+            <exec executable="hg">
+                <arg value="clone"/>
+                <arg value="--pull"/>
+                <arg value="${hg.paths.default}/@{component}"/>
+                <arg value="./@{component}"/>
+            </exec>
+        </sequential>
+    </macrodef>
+
+     <!-- Find tip for a component repository. -->
+    <macrodef name="do-tip">
+        <attribute name="component"/>
+        <attribute name="property"/>
+        <sequential>
+            <exec executable="hg" outputproperty="@{property}" failifexecutionfails="false">
+                <arg value="tip"/>
+                <arg value="--repository"/>
+                <arg value="@{component}"/>
+                <arg value="--template"/>
+                <arg value="{node|short}"/>
+            </exec>
+        </sequential>
+    </macrodef>
+
+    <!-- Sets up properties for a component, a component xml file to
+         define the targets, AND imports that component xml file. -->
+    <macrodef name="do-setup-and-import-component">
+        <attribute name="component"/>
+        <sequential>
+            <condition property="jfx.@{component}.repo.exists">
+                <available file="${jfx.root.dir}/@{component}/.hg" type="dir"/>
+            </condition>
+            <condition property="jfx.@{component}.exists">
+                <available file="${jfx.root.dir}/@{component}/build.xml" type="file"/>
+            </condition>
+            <mkdir dir="${jfx.build.dir}/xml_generated"/>
+            <copy file="${jfx.root.build.src.dir}/build-component-template.xml"
+                  tofile="${jfx.build.dir}/xml_generated/build-@{component}.xml"/>
+            <replace file="${jfx.build.dir}/xml_generated/build-@{component}.xml"
+                     token="@COMPONENT@" value="@{component}"/>
+            <import file="${jfx.build.dir}/xml_generated/build-@{component}.xml"/>
+        </sequential>
+    </macrodef>
+
+    <!-- See what components we have and if it is a complete forest -->
+    <condition property="jfx.root.repo.exists">
+        <available file="${jfx.root.dir}/.hg" type="dir"/>
+    </condition>
+    
+    <!-- This defines all targets and properties for a component -->
+    <!--   NOTE: (newcomponent) Add line here for a new component. -->
+    <!--         Please keep in alphabetical order. -->
+    <do-setup-and-import-component component="apps"/>
+    <do-setup-and-import-component component="deploy"/>
+    <do-setup-and-import-component component="docs"/>
+    <do-setup-and-import-component component="glass"/>
+    <do-setup-and-import-component component="media"/>
+    <do-setup-and-import-component component="perf"/>
+    <do-setup-and-import-component component="rt"/>
+    <do-setup-and-import-component component="rt-closed"/>
+    <do-setup-and-import-component component="tests"/>
+    <do-setup-and-import-component component="webnode"/>
+
+    <!-- Do we have a full forest (determines if cached files used) -->
+    <!--   NOTE: (newcomponent) Add line here for a new component. -->
+    <!--         Please keep in alphabetical order. -->
+    <condition property="jfx.full.forest">
+        <and>
+            <isset property="jfx.apps.exists"/>
+            <isset property="jfx.deploy.exists"/>
+            <isset property="jfx.docs.exists"/>
+            <isset property="jfx.glass.exists"/>
+            <isset property="jfx.media.exists"/>
+            <!-- No build file in "rt" so just check repo -->
+            <isset property="jfx.rt.repo.exists"/>
+            <isset property="jfx.rt-closed.exists"/>
+            <isset property="jfx.tests.exists"/>
+            <isset property="jfx.webnode.exists"/>
+        </and>
+    </condition>
+
+    <!-- Check the "required" subset of repos for a developer build -->
+    <!--         Please keep in alphabetical order. -->
+    <condition property="jfx.dev.forest">
+        <and>
+            <isset property="jfx.apps.exists"/>
+            <isset property="jfx.deploy.exists"/>
+            <isset property="jfx.glass.exists"/>
+            <!-- No build file in "rt" so just check repo -->
+            <isset property="jfx.rt.repo.exists"/>
+            <isset property="jfx.rt-closed.exists"/>
+            <isset property="jfx.tests.exists"/>
+        </and>
+    </condition>
+
+    <!-- Since "rt" annd "rt-closed" are currently a matched pair, verify -->
+    <!-- that either both of them or neither of them exist -->
+    <condition property="jfx.rt.and.rt-closed.ok">
+        <or>
+            <and>
+                <isset property="jfx.rt.repo.exists"/>
+                <isset property="jfx.rt-closed.repo.exists"/>
+            </and>
+            <and>
+                <not>
+                    <isset property="jfx.rt.repo.exists"/>
+                </not>
+                <not>
+                    <isset property="jfx.rt-closed.repo.exists"/>
+                </not>
+            </and>
+        </or>
+    </condition>
+
+    <!-- Run an ant target for all components. -->
+    <macrodef name="do-all-components">
+        <attribute name="target"/>
+        <sequential>
+            <!-- NOTE: (newcomponent) Add line here for a new component. -->
+            <!--       This list is NOT in alphabetical order. -->
+            <!-- WARNING: Order of building is important here, be careful. -->
+            <antcall target="glass-@{target}"/>
+            <antcall target="media-@{target}"/>
+            <antcall target="rt-closed-@{target}"/>
+            <antcall target="webnode-@{target}"/>
+            <antcall target="deploy-@{target}"/>
+            <antcall target="docs-@{target}"/>
+            <antcall target="apps-@{target}"/>
+            <antcall target="tests-@{target}"/>
+            <echo level="info"
+                  message="Target @{target} completed for all components."/>
+        </sequential>
+    </macrodef>
+
+    <!-- Run an ant target for components up through rt-closed . -->
+    <macrodef name="do-subset-components">
+        <attribute name="target"/>
+        <sequential>
+            <!-- NOTE: (newcomponent) Add line here for a new component. -->
+            <!--       This list is NOT in alphabetical order. -->
+            <!-- WARNING: Order of building is important here, be careful. -->
+            <antcall target="glass-@{target}"/>
+            <antcall target="media-@{target}"/>
+            <antcall target="rt-closed-@{target}"/>
+            <echo level="info"
+               message="Target @{target} completed for subset of components."/>
+        </sequential>
+    </macrodef>
+
+    <!-- Forest clone. Clone any missing component repositories. -->
+    <!--   NOTE: (newcomponent) Add line here for a new component. -->
+    <!--         Please keep in alphabetical order. -->
+    <target name="clone-all-components"
+            depends="-hg-paths-default,
+                     apps-clone,
+                     deploy-clone,
+                     docs-clone,
+                     glass-clone,
+                     media-clone,
+                     rt-clone,
+                     rt-closed-clone,
+                     tests-clone,
+                     webnode-clone">
+    </target>
+
+    <!-- Target to verify all repos needed for a developer build -->
+
+    <target name="check-dev-forest" depends="-fail-if-not-dev-forest">
+    </target>
+
+    <target name="check-rt-repositories" depends="-fail-if-rt-mismatch">
+    </target>
+
+    <target name="-fail-if-rt-mismatch" unless="jfx.rt.and.rt-closed.ok">
+        <fail message="*** ERROR: both of rt and rt-closed must be present, or neither must be present"/>
+    </target>
+
+    <target name="-fail-if-not-dev-forest" unless="jfx.dev.forest">
+        <fail message="*** ERROR: some repositories needed for dev build are missing"/>
+    </target>
+
+    <!-- Get tips of all component repositories. -->
+    <!--   NOTE: (newcomponent) Add line here for a new component. -->
+    <!--         Please keep in alphabetical order. -->
+    <target name="tip-all-components"
+            depends="root-tip,
+                     apps-tip,
+                     deploy-tip,
+                     docs-tip,
+                     glass-tip,
+                     media-tip,
+                     rt-tip,
+                     rt-closed-tip,
+                     tests-tip,
+                     webnode-tip">
+        <echoproperties destfile="${jfx.repository.data}">
+            <propertyset>
+                <propertyref prefix="jfx.repository.tip."/>
+            </propertyset>
+        </echoproperties>
+    </target>
+
+    <!-- Define the hg.paths.default property, or path to parent. -->
+    <target name="-hg-paths-default">
+        <exec executable="hg" failonerror="true">
+            <arg value="paths"/>
+            <arg value="default"/>
+            <redirector outputproperty="hg.paths.default">
+                <outputfilterchain>
+                    <tokenfilter>
+                        <stringtokenizer/>
+                        <replaceregex pattern="(.+)/.*$" replace="\1"/>
+                    </tokenfilter>
+                </outputfilterchain>
+            </redirector>
+        </exec>
+    </target>
+
+    <!-- Targets for root. -->
+    <target name="root-tip"
+            unless="jfx.repository.tip.root" 
+            if="jfx.root.repo.exists">
+        <do-tip component="." property="jfx.repository.tip.root"/>
+    </target>
+
+    <!-- Targets to do the contract targets on all sub repositories or components. -->
+    <target name="do-all-clean">
+        <do-all-components target="jfx-clean"/>
+    </target>
+    <target name="do-all-clean-sdk">
+        <do-all-components target="jfx-clean-sdk"/>
+    </target>
+    <target name="do-all-clean-deploy">
+        <do-all-components target="jfx-clean-deploy"/>
+    </target>
+    <target name="do-all-sdk">
+        <do-all-components target="jfx-sdk"/>
+    </target>
+    <target name="do-subset-sdk">
+        <do-subset-components target="jfx-sdk"/>
+    </target>
+    <target name="do-all-test">
+        <do-all-components target="jfx-test"/>
+    </target>
+    <target name="do-all-deploy">
+        <do-all-components target="jfx-deploy"/>
+    </target>
+    <target name="do-all-sdk-docs">
+        <do-all-components target="jfx-sdk-docs"/>
+    </target>
+    <target name="do-all-apps">
+        <do-all-components target="jfx-apps"/>
+    </target>
+    <target name="do-all-perf">
+        <do-all-components target="jfx-perf"/>
+    </target>
+    <target name="do-all-full-test">
+        <do-all-components target="jfx-full-test"/>
+    </target>
+
+    <target name="deploy-imports" if="jfx.deploy.exists">
+        <do-component target="import" component="deploy"/>
+    </target>
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-copy.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-copy" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines targets to copy files into the SDK
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build.xml file only.
+
+    </description>
+
+    <target name="copy-sdk-files"
+            depends="-copy-platform-sdk-files">
+        <!-- platform-independent files go here -->
+    </target>
+
+    <target name="-copy-platform-sdk-files"
+            depends="-init-platform-defs,-copy-linux-sdk-files,-copy-macosx-sdk-files,-copy-windows-sdk-files">
+    </target>
+
+    <target name="-copy-linux-sdk-files" if="isLinux">
+    </target>
+
+    <target name="-copy-macosx-sdk-files" if="isMacOSX">
+    </target>
+
+    <target name="-copy-windows-sdk-files" if="isWindows">
+        <property name="msvcr" location="${windows.vs.MSVCDIR}/redist/${native.build.arch}/Microsoft.VC${windows.vs.VER}.CRT/msvcr${windows.vs.VER}.dll"/>
+        <copy failonerror="false" file="${msvcr}" todir="${jfx.sdk.desktop.dir}"/>
+    </target>
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-environment.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-environment" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Checks and prints the environment variables for JavaFX project.
+        Where necessary, environment variable settings or system file
+        locations may be placed into properties here.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build-defs.xml file.
+
+    </description>
+
+    <property environment="env"/>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Checks the environment variables. -->
+
+    <macrodef name="find-default-dir">
+        <attribute name="property"/>
+        <attribute name="evalue"/>
+        <attribute name="dvalue"/>
+        <sequential>
+            <condition property="@{property}" value="@{evalue}">
+                <available file="@{evalue}" type="dir"/>
+            </condition>
+            <condition property="@{property}" value="@{dvalue}">
+                <available file="@{dvalue}" type="dir"/>
+            </condition>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="find-default-val">
+        <attribute name="property"/>
+        <attribute name="var"/>
+        <attribute name="dvalue"/>
+        <sequential>
+            <condition property="@{property}" value="${env.@{var}}" else="@{dvalue}">
+                <isset property="env.@{var}"/>
+            </condition>
+        </sequential>
+    </macrodef>
+
+    <tstamp>
+        <format property="jfx.built.today"
+                pattern="yyyy/MM/dd HH:mm:ss"/>
+    </tstamp>
+
+    <find-default-dir property="dxsdk.path"
+                  evalue="${env.DXSDK_DIR}"
+                  dvalue="C:/DXSDK"/>
+    
+    <find-default-dir property="qtsdk.path"
+                  evalue="${env.QTSDK_DIR}"
+                  dvalue="C:/QTSDK"/>
+
+    <find-default-dir property="wmsdk.path"
+                  evalue="${env.WMSDK_DIR}"
+                  dvalue="C:/WMSDK/WMFSDK95"/>
+
+    <find-default-dir property="systemroot.path"
+                  evalue="${env.SystemRoot}"
+                  dvalue="C:/WINDOWS"/>
+
+    <condition property="hudson.current.build.url"
+               value="${env.HUDSON_URL}">
+        <isset property="env.HUDSON_URL"/>
+    </condition>
+
+    <find-default-val property="hudson.current.job.name"
+                  var="JOB_NAME"
+                  dvalue="not_hudson/label=${platform}"/>
+
+    <find-default-val property="hudson.current.build.number"
+                  var="BUILD_NUMBER"
+                  dvalue="0000"/>
+
+    <find-default-val property="hudson.current.build.id"
+                  var="BUILD_ID"
+                  dvalue="${jfx.built.today} (non-hudson build)"/>
+
+    <!-- The job.name looks like "somename/label=linux-i586" so extract the "somename" -->
+    <dirname property="hudson.current.job.name.tmp" file="${hudson.current.job.name}"/>
+    <basename property="hudson.current.job.basename" file="${hudson.current.job.name.tmp}"/>
+
+    <find-default-val property="jfx.promoted.build.number"
+                  var="NEXT_PROMOTED_BUILD_NUMBER"
+                  dvalue="00"/>
+
+    <property name="jfx.build.number"
+              value="${hudson.current.build.number}"/>
+    <property name="jfx.build.id"
+              value="${hudson.current.build.id}"/>
+    <property name="jfx.job.name"
+              value="${hudson.current.job.name}"/>
+    
+    <property name="jfx.timestamp.product"
+              value="Product: ${jfx.product.name}-${jfx.release.version}${jfx.release.milestone}"/>
+    <property name="jfx.timestamp.platform"
+              value="Platform: ${platform}"/>
+    <property name="jfx.timestamp.build.number"
+              value="Build-Number: ${jfx.build.number}"/>
+    <property name="jfx.timestamp.build.id"
+              value="Build-ID: ${jfx.build.id}"/>
+    <property name="jfx.timestamp.string"
+              value="${jfx.timestamp.product}${line.separator}${jfx.timestamp.platform}${line.separator}${jfx.timestamp.build.number}${line.separator}${jfx.timestamp.build.id}"/>
+
+    <!-- Get the hudson properties. -->
+
+    <property file="${jfx.root.dir}/hudson.properties"/>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Macrodefs -->
+
+    <!-- Print out an environment variable value -->
+    <macrodef name="print-env">
+        <attribute name="name"/>
+        <sequential>
+            <condition property="env.@{name}.value"
+                       value="${env.@{name}}" 
+                       else="">
+                <isset property="env.@{name}"/>
+            </condition>
+            <echo level="info"
+		  message="    @{name}=${env.@{name}.value}"/>
+        </sequential>
+    </macrodef>
+
+    <target name="-check-windows" if="isWindows">
+        <echo level="info"
+	      message="Windows Environment Variable Settings:"/>
+        <echo level="info"
+	      message="--------------------------------------"/>
+        <print-env name="JAVA_HOME"/>
+        <print-env name="PATH"/>
+        <print-env name="VS71COMNTOOLS"/>
+    </target>
+
+    <target name="-check-macosx" if="isMacOSX">
+        <echo level="info"
+	      message="MacOSX Environment Variable Settings:"/>
+        <echo level="info"
+	      message="-------------------------------------"/>
+        <print-env name="JAVA_HOME"/>
+        <print-env name="PATH"/>
+        <print-env name="LD_LIBRARY_PATH"/>
+        <print-env name="LD_LIBRARY_PATH32"/>
+        <print-env name="LD_LIBRARY_PATH64"/>
+    </target>
+
+    <target name="-check-solaris" if="isSolaris">
+        <echo level="info"
+	      message="Solaris Environment Variable Settings:"/>
+        <echo level="info"
+	      message="-------------------------------------"/>
+        <print-env name="JAVA_HOME"/>
+        <print-env name="PATH"/>
+        <print-env name="LD_LIBRARY_PATH"/>
+        <print-env name="LD_LIBRARY_PATH32"/>
+        <print-env name="LD_LIBRARY_PATH64"/>
+    </target>
+
+    <target name="-check-linux" if="isLinux">
+        <echo level="info"
+	      message="Linux Environment Variable Settings:"/>
+        <echo level="info"
+	      message="-----------------------------------"/>
+        <print-env name="JAVA_HOME"/>
+        <print-env name="PATH"/>
+        <print-env name="LD_LIBRARY_PATH"/>
+        <print-env name="LD_LIBRARY_PATH32"/>
+        <print-env name="LD_LIBRARY_PATH64"/>
+    </target>
+    
+    <property name="jfx.ant.version.needed" value="1.7.1"/>
+    
+    <target name="-check-ant">
+        <fail message="You need at least ant version ${jfx.ant.version.needed}">
+            <condition>
+                <not>
+                    <antversion atleast="${jfx.ant.version.needed}"/>
+                </not>
+            </condition>
+        </fail>
+    </target>
+
+    <target name="check-environment"
+            depends="-check-ant, 
+                     -check-windows,
+                     -check-macosx,
+                     -check-solaris,
+                     -check-linux">
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-importer.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,1358 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-importer" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Populate the import directory or make sure that imported components
+        are available. The import area or directory (import.dir) should be
+        populated once and then re-used over multiple builds.
+        Typically, the 'ant clean' target will not remove the import area, it
+        must be manually removed (ant tasks cannot remove it due to cpptasks).
+
+        All the imported files are freely and easily downloaded, however these
+        individual downloads have proven to be unreliable in total because
+        of all the websites that are expected to be up and running well.
+        Getting an initial fully populated import area by doing multiple
+        downloads may take multiple trys.
+
+        If a ../import.zip is available, that will be used to prime the import
+        area.
+
+        If the previous hudson build is available, the import.zip from that
+        build will be used to populate the entire import area.
+
+        If the property import.dir is explicitly set, then that import area
+        will be used but will be considered read-only.
+
+        In all cases, the validity of the import components will be checked.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build-defs.xml file.
+
+    </description>
+
+    <property name="import.platform" value="${platform}"/>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Populates the import.dir area with freely available files. -->
+
+    <!-- A global import.zip made available to populate the import area. -->
+    <property name="global.import.zip" location="${jfx.root.dir}/../import.zip"/>
+
+    <!-- The location of the import area in the current build area. -->
+    <property name="local.import.dir" location="${jfx.root.dir}/import"/>
+
+    <!-- A report file or log of the items inside the import area. -->
+    <property name="import.report" value="${local.import.dir}/Report.txt"/>
+    
+    <!-- If import.dir is set at this point, treat it as read-only. -->
+    <condition property="import.read-only">
+        <isset property="import.dir"/>
+    </condition>
+
+    <import file="${jfx.root.build.src.dir}/build-os-arch.xml"/>
+
+    <!-- Set import.dir to local area if it is not set. -->
+    <condition property="import.dir" value="${local.import.dir}">
+        <and>
+            <not>
+                <isset property="import.dir"/>
+            </not>
+        </and>
+    </condition>
+    
+    <!-- When can we use the global import.zip to populate import.dir. -->
+    <condition property="use.global.zip">
+        <and>
+            <not>
+                <isset property="import.read-only"/>
+            </not>
+            <available file="${global.import.zip}" type="file"/>
+        </and>
+    </condition>
+
+    <!-- When import.dir is completely empty, needs to be fully populated. -->
+    <condition property="local.import.dir.empty">
+        <and>
+            <not>
+                <isset property="import.read-only"/>
+            </not>
+            <not>
+                <available file="${local.import.dir}" type="dir"/>
+            </not>
+        </and>
+    </condition>
+    <condition property="use.allof.global.zip">
+        <and>
+            <isset property="local.import.dir.empty"/>
+            <isset property="use.global.zip"/>
+        </and>
+    </condition>
+
+    <!-- When should we use http downloads. -->
+    <condition property="use.http.get">
+        <and>
+            <not>
+                <isset property="import.read-only"/>
+            </not>
+            <not>
+                <isset property="use.global.zip"/>
+            </not>
+        </and>
+    </condition>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Macrodefs -->
+
+    <!-- Print out a property value -->
+    <macrodef name="print-prop">
+        <attribute name="name"/>
+        <sequential>
+            <condition property="@{name}.value" value="${@{name}}" else="">
+                <isset property="@{name}"/>
+            </condition>
+            <echo level="info"
+		  message="    @{name}: ${@{name}.value}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Set some basic properties for this import item -->
+    <macrodef name="import-set-properties">
+        <attribute name="description"/>
+        <attribute name="item"/>
+        <attribute name="version"/>
+        <attribute name="url"/>
+        <attribute name="basename"/>
+        <attribute name="platform"/>
+        <attribute name="includes"/>
+        <sequential>
+            <property name="import.@{item}.description"
+	              value="@{description}"/>
+            <property name="import.@{item}.version"
+	              value="@{version}"/>
+            <property name="import.@{item}.url"
+	              value="@{url}"/>
+            <property name="import.@{item}.basename"
+	              value="@{basename}"/>
+            <property name="import.@{item}.platform"
+	              value="@{platform}"/>
+            <property name="import.@{item}.includes"
+	              value="@{includes}"/>
+            <property name="import.@{item}.dir"
+                      location="${import.dir}/@{item}-@{version}/@{platform}"/>
+            <property name="import.@{item}.local.dir"
+                      location="${local.import.dir}/@{item}-@{version}/@{platform}"/>
+            <property name="import.@{item}.touchfile"
+                      location="${import.@{item}.local.dir}-installed"/>
+            <condition property="import.@{item}.installed">
+                <and>
+                    <available file="${import.@{item}.touchfile}" type="file"/>
+                    <available file="${import.@{item}.local.dir}" type="dir"/>
+                </and>
+            </condition>
+            <condition property="import.@{item}.use.http.get">
+                <and>
+                    <not>
+                        <isset property="import.read-only"/>
+                    </not>
+                    <not>
+                        <isset property="import.@{item}.installed"/>
+                    </not>
+                </and>
+            </condition>
+        </sequential>
+    </macrodef>
+
+    <!-- This file must exist after the import -->
+    <macrodef name="import-file-must-exist">
+        <attribute name="item"/>
+        <attribute name="property"/>
+        <sequential>
+            <do-file-check file="${@{property}}"/>
+            <echo level="info"
+		  message="File exists: ${@{property}}"/>
+        </sequential>
+    </macrodef>
+    
+    <!-- This class must exist in this classpath -->
+    <macrodef name="import-classname-must-exist">
+        <attribute name="item"/>
+        <attribute name="classname"/>
+        <attribute name="classpath"/>
+        <sequential>
+            <do-class-check classname="@{classname}" classpath="@{classpath}"/>
+            <echo level="info"
+		  message="Classname exists: @{classname}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Perform the download and add to the download report -->
+    <macrodef name="import-get">
+        <attribute name="item"/>
+        <attribute name="suffix"/>
+        <sequential>
+            <fail if="import.downloads.disabled"
+		  message="Downloads have been disabled"/>
+            <property name="import.@{item}.downloaded.file"
+                      location="${import.@{item}.local.dir}/${import.@{item}.basename}@{suffix}"/>
+            <delete dir="${import.@{item}.local.dir}" quiet="true"/>
+            <mkdir dir="${import.@{item}.local.dir}"/>
+            <echo level="info"
+		  message="DOWNLOAD WARNING: Getting @{item} from ${import.@{item}.url} (version ${import.@{item}.version})"/>
+            <delete file="${import.@{item}.downloaded.file}"      quiet="true"/>
+            <delete file="${import.@{item}.downloaded.file}.temp" quiet="true"/>
+            <get src="${import.@{item}.url}/${import.@{item}.basename}@{suffix}"
+                 dest="${import.@{item}.downloaded.file}.temp"/>
+            <move file="${import.@{item}.downloaded.file}.temp"
+                  tofile="${import.@{item}.downloaded.file}" verbose="true"/>
+            <import-file-must-exist item="@{item}"
+			                        property="import.@{item}.downloaded.file"/>
+            <echo message="${import.@{item}.version}"
+                  file="${import.@{item}.touchfile}"/>
+            <echo level="info"
+		  file="${import.report}" append="true">
+Import Item: @{item}
+Description: ${import.@{item}.description}
+    Version: ${import.@{item}.version} ${import.@{item}.platform}
+        Url: ${import.@{item}.url}
+            </echo>
+        </sequential>
+    </macrodef>
+    
+    <macrodef name="import-make-read-only">
+        <attribute name="dir"/>
+        <sequential>
+            <!-- Temporaily, leave as is
+	    <chmod dir="@{dir}"
+		   perm="a-w" type="both" includes="**/**"/>
+            <chmod dir="@{dir}" perm="a-w" type="dir"/>
+	    -->
+        </sequential>
+    </macrodef>
+    
+    <!-- Download a local copy of this item from the url (tar.bz2 bundle) -->
+    <macrodef name="download-url-bzip2">
+        <attribute name="item"/>
+        <sequential>
+            <import-get item="@{item}" suffix=".tar.bz2"/>
+            <exec dir="${import.@{item}.local.dir}" executable="tar" failonerror="true">
+                <arg value="-xjpf"/>
+                <arg value="${import.@{item}.downloaded.file}"/>
+            </exec>
+            <delete file="${import.@{item}.downloaded.file}"/>
+            <import-make-read-only dir="${import.@{item}.local.dir}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Download a local copy of this item from the url (tar.gz bundle) -->
+    <macrodef name="download-url-tgz">
+        <attribute name="item"/>
+        <sequential>
+            <import-get item="@{item}" suffix=".tar.gz"/>
+            <do-untar-bundle tar="${import.@{item}.downloaded.file}"
+                             dir="${import.@{item}.local.dir}"
+                             includes="${import.@{item}.includes}"/>
+            <delete file="${import.@{item}.downloaded.file}"/>
+            <import-make-read-only dir="${import.@{item}.local.dir}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Download a local copy of this item from the url (zip bundle) -->
+    <macrodef name="download-url-zip">
+        <attribute name="item"/>
+        <sequential>
+            <import-get item="@{item}" suffix=".zip"/>
+            <do-unzip-bundle zip="${import.@{item}.downloaded.file}"
+                             dir="${import.@{item}.local.dir}"
+                             includes="${import.@{item}.includes}"/>
+            <delete file="${import.@{item}.downloaded.file}"/>
+            <import-make-read-only dir="${import.@{item}.local.dir}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Download a local copy of this item from the url (jar file) -->
+    <macrodef name="download-url-jar">
+        <attribute name="item"/>
+        <sequential>
+            <import-get item="@{item}" suffix=".jar"/>
+            <import-make-read-only dir="${import.@{item}.local.dir}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Check the local copy or download -->
+    <macrodef name="import-check">
+        <attribute name="item"/>
+        <sequential>
+            <echo level="info"
+		  message="Checked imported @{item} version ${import.@{item}.version}"/>
+        </sequential>
+    </macrodef>
+
+    <!--- Import all the items for a specific platform -->
+    <macrodef name="import-platform">
+        <attribute name="platform"/>
+        <sequential>
+            <echo level="info" message="Importing for platform @{platform}"/>
+            <ant target="all-imports-platform-specific" inheritAll="false">
+                <property name="import.platform" value="@{platform}"/>
+            </ant>
+            <property name="import.platform.@{platform}.checked" value="true"/>
+        </sequential>
+    </macrodef>
+
+    <!-- Delete item -->
+    <macrodef name="import-delete">
+        <attribute name="item"/>
+        <attribute name="version"/>
+        <sequential>
+            <delete dir="${local.import.dir}/@{item}-@{version}"/>
+            <delete file="${local.import.dir}/@{item}-@{version}-installed"/>
+        </sequential>
+    </macrodef>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <!-- Import everything for all platforms -->
+    <!-- TODO: do we still need ppc binaries for JOGL? They aren't available for JOGL2 -->
+    <target name="all-imports"
+            depends="
+	        check-settings,
+                check-for-empty-import,
+		all-imports-generic,
+		all-imports-solaris-i586,
+		all-imports-solaris-amd64,
+		all-imports-linux-i586,
+		all-imports-linux-amd64,
+		all-imports-windows-i586,
+		all-imports-windows-amd64,
+		all-imports-macosx-universal,
+		all-imports-cleanup
+            ">
+        <echo level="info"
+	      message="Imported all files to ${local.import.dir} for all platforms"/>
+    </target>
+
+    <target name="all-imports-cleanup">
+	<import-delete 
+	    item="ant"              version="1.7.0"/>
+	<import-delete 
+	    item="ant"              version="1.7.1"/>
+	<import-delete 
+	    item="antlr"            version="3.1.2"/>
+	<import-delete 
+	    item="antlr301"         version="3.0.1"/>
+	<import-delete 
+	    item="gluegen"          version="1.0b06"/>
+	<import-delete 
+	    item="gluegen-natives"  version="1.0b06"/>
+	<import-delete 
+	    item="javacc"           version="4.1"/>
+	<import-delete 
+	    item="jogl"             version="1.1.1"/>
+	<import-delete 
+	    item="jogl-natives"     version="1.1.1"/>
+	<import-delete 
+	    item="jogl2"            version="2.0-pre-20090622"/>
+	<import-delete 
+	    item="jogl2"            version="2.0-pre-20090804"/>
+	<import-delete 
+	    item="jogl2"            version="2.0-pre-20090821"/>
+	<import-delete 
+	    item="retroweaver"      version="2.0.3"/>
+	<import-delete 
+	    item="svnstat"          version="1.0"/>
+	<import-delete 
+	    item="cpptasks"         version="1.0b5"/>
+	<import-delete 
+	    item="swing-layout"     version="1.0.3"/>
+	<import-delete 
+	    item="wysiwygdocbook"   version="1.02"/>
+	<import-delete 
+	    item="junit-dep"        version="4.4"/>
+	<import-delete 
+	    item="markymarker"      version="noversion"/>
+	<import-delete 
+            item="bitstream"        version="1.10"/>
+	<import-delete 
+	    item="webnode-deps-mac"      version="noversion"/>
+	<import-delete 
+	    item="webnode-deps-windows"  version="noversion"/>
+
+	<import-delete 
+            item="crosstools.intel-ce3100-x86-glibc" version="1.0"/>
+	<import-delete 
+            item="crossroots.intel-ce3100-x86-libs" version="1.0"/>
+
+	<import-delete 
+            item="crosstools.intel-ce3100-x86-glibc" version="13.5"/>
+	<import-delete 
+            item="crossroots.intel-ce3100-x86-libs" version="13.5"/>
+
+	<import-delete 
+            item="crosstools.intel-ce3100-x86-glibc" version="15.0_1.0"/>
+	<import-delete 
+            item="crossroots.intel-ce3100-x86-libs" version="15.0_1.0"/>
+
+	<import-delete 
+            item="crosstools.intel-ce3100-x86-glibc" version="16.0"/>
+	<import-delete 
+            item="crossroots.intel-ce3100-x86-libs" version="16.0"/>
+
+	<import-delete 
+            item="crosstools.lge-broadcom-mips-uclibc" version="1.0"/>
+	<import-delete 
+            item="crossroots.lge-broadcom-mips-libs" version="1.0"/>
+    </target>
+    
+    <target name="all-imports-this-platform"
+            depends="all-imports-platform-specific">
+    </target>
+    <target name="all-imports-solaris-sparc"
+            unless="import.platform.solaris-sparc.checked">
+        <import-platform platform="solaris-sparc"/>
+    </target>
+    <target name="all-imports-solaris-sparcv9"
+            unless="import.platform.solaris-sparcv9.checked">
+        <import-platform platform="solaris-sparcv9"/>
+    </target>
+    <target name="all-imports-solaris-i586"
+            unless="import.platform.solaris-i586.checked">
+        <import-platform platform="solaris-i586"/>
+    </target>
+    <target name="all-imports-solaris-amd64"
+            unless="import.platform.solaris-amd64.checked">
+        <import-platform platform="solaris-amd64"/>
+    </target>
+    <target name="all-imports-linux-i586"
+            unless="import.platform.linux-i586.checked">
+        <import-platform platform="linux-i586"/>
+    </target>
+    <target name="all-imports-linux-amd64"
+            unless="import.platform.linux-amd64.checked">
+        <import-platform platform="linux-amd64"/>
+    </target>
+    <target name="all-imports-windows-i586"
+            unless="import.platform.windows-i586.checked"
+            depends="import-webnode-deps">
+        <import-platform platform="windows-i586"/>
+    </target>
+    <target name="all-imports-windows-amd64"
+            unless="import.platform.windows-amd64.checked"
+            depends="import-webnode-deps">
+        <import-platform platform="windows-amd64"/>
+    </target>
+    <target name="all-imports-macosx-universal"
+            unless="import.platform.macosx-universal.checked"
+            depends="import-webnode-deps">
+        <import-platform platform="macosx-universal"/>
+    </target>
+    <target name="all-imports-macosx-ppc"
+            unless="import.platform.macosx-ppc.checked">
+        <import-platform platform="macosx-ppc"/>
+    </target>
+   
+    <target name="check-settings">
+        <echo level="info"
+	      message=""/>
+        <echo level="info"
+	      message="Property Settings:"/>
+        <echo level="info"
+	      message="------------------"/>
+        <print-prop name="platform.home"/>
+        <print-prop name="platform6u10.home"/>
+        <print-prop name="import.dir"/>
+        <print-prop name="export.dir"/>
+        <print-prop name="os_name"/>
+        <print-prop name="arch"/>
+        <print-prop name="os.name"/>
+        <print-prop name="os.version"/>
+        <print-prop name="os.arch"/>
+        <print-prop name="user.name"/>
+        <print-prop name="user.dir"/>
+        <print-prop name="user.home"/>
+        <print-prop name="java.home"/>
+        <print-prop name="java.version"/>
+        <print-prop name="java.vendor"/>
+        <print-prop name="java.vm.version"/>
+        <print-prop name="ant.home"/>
+        <print-prop name="ant.version"/>
+        <echo level="info"
+	      message=""/>
+        <fail unless="platform.home"
+	       message="You have to setup platform.home property to JDK 5+ for proper building. Example: ant -Dplatform.home=/usr/lib/java/jdk1.6.0_10"/>
+        <fail message="You need JDK 1.5 or higher to build JavaFX Player.">
+            <condition>
+                <not>
+                    <available classname="java.lang.Appendable"/>
+                </not>
+            </condition>
+        </fail>
+    </target>
+
+    <!-- Full global copy from directory or zip file. -->
+    <target name="check-for-empty-import"
+            depends="use-global-zip-import-if-available,
+                     use-hudson-zip-import-if-needed"/>
+    <target name="use-global-zip-import-if-available"
+            if="use.allof.global.zip">
+        <do-unzip-bundle zip="${global.import.zip}" dir="${local.import.dir}"/>
+    </target>
+    <target name="use-hudson-zip-import-if-needed"
+            if="local.import.dir.empty"
+            unless="use.allof.global.zip">
+        <condition property="use.hudson.zip">
+            <and>
+                <not>
+                    <isset property="jfx.open.only"/>
+                </not>
+                <isset property="local.import.dir.empty"/>
+                <isreachable host="${hudson.jfx.host}" timeout="10"/>
+            </and>
+        </condition>
+        <antcall target="use-hudson-zip-import"/>
+    </target>
+    <target name="use-hudson-zip-import" if="use.hudson.zip">
+        <do-get-previous-bundle name="import"
+            url="${hudson.jfx.import.url}" dir="${local.import.dir}"/>
+    </target>
+
+    <!-- Import everything that is generic. (same for all platforms) -->
+    <target name="all-imports-generic">
+        <!-- <parallel threadCount='2'> -->
+        <antcall target="import-ant-contrib"/>
+        <antcall target="import-antlr"/>
+        <antcall target="import-antlrworks"/>
+        <antcall target="import-antpack200"/>
+        <antcall target="import-asm"/>
+        <antcall target="import-cobertura"/>
+        <antcall target="import-docbook"/>
+        <antcall target="import-docbook-xml"/>
+        <antcall target="import-findbugs"/>
+        <antcall target="import-gluegen-src"/>
+        <antcall target="import-javacc"/>
+        <antcall target="import-junit"/>
+        <antcall target="import-resolver"/>
+        <antcall target="import-saxon"/>
+        <antcall target="import-xincluder"/>
+        <antcall target="import-lombok"/>
+        <antcall target="import-lombok-trunk"/>
+        <antcall target="import-lombok-sources"/>
+        <antcall target="import-ecj"/>
+        <antcall target="import-jdt.core"/>
+        <antcall target="import-mangosdk-spi"/>
+        <antcall target="import-checkstyle"/>
+        <antcall target="import-one-jar-ant-task"/>
+        <antcall target="import-physx"/>
+        <antcall target="import-javac"/>
+        <antcall target="import-gwt"/>
+        <antcall target="import-swt"/>
+        <antcall target="import-benchmarks"/>
+        <!-- </parallel> -->
+        <echo level="info"
+	      message="Imported all files to ${local.import.dir}"/>
+    </target>
+    
+    <!-- Import everything for a single platform (import.platform) -->
+    <target name="all-imports-platform-specific">
+        <echo level="info"
+	      message="Imported all files to ${local.import.dir}"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+   
+    <import-set-properties
+	description="Junit: Test Framework"
+	item="junit"
+	version="4.8.2"
+	url="http://jfx.us.oracle.com/imports"
+	basename="junit-4.8.2"
+	platform=""
+	includes="**"/>
+    <target name="import-get-junit"
+            if="import.junit.use.http.get"
+	        unless="import.junit.installed">
+        <download-url-jar item="junit"/>
+    </target>
+    <property name="import.junit.jar"
+	      location="${import.junit.dir}/${import.junit.basename}.jar"/>
+    <target name="import-junit"
+            depends="import-get-junit">
+        <import-file-must-exist item="junit"
+		                        property="import.junit.jar"/>
+        <import-check item="junit"/>
+    </target>
+    
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Antlr: Parser Generator"
+	item="antlr"
+	version="3.1.3"
+	url="http://www.antlr.org/download"
+	basename="antlr-3.1.3"
+	platform=""
+	includes="antlr-3.1.3/lib/*.jar"/>
+    <target name="import-get-antlr"
+            if="import.antlr.use.http.get"
+	        unless="import.antlr.installed">
+        <download-url-tgz item="antlr"/>
+    </target>
+    <property name="import.antlr.lib"
+	      location="${import.antlr.dir}/antlr-${import.antlr.version}/lib"/>
+    <property name="import.antlr.jar"
+	      location="${import.antlr.lib}/antlr-${import.antlr.version}.jar"/>
+    <property name="import.antlr277.jar"
+	      location="${import.antlr.lib}/antlr-2.7.7.jar"/>
+    <property name="import.antlr-runtime.jar"
+	      location="${import.antlr.lib}/antlr-runtime-${import.antlr.version}.jar"/>
+    <property name="import.antlr.stringtemplate.jar"
+	      location="${import.antlr.lib}/stringtemplate-3.2.jar"/>
+    <property name="import.antlr.classpath"
+	      value="${import.antlr.jar}:${import.antlr-runtime.jar}:${import.antlr.stringtemplate.jar}"/>
+    <target name="import-antlr"
+            depends="import-get-antlr">
+        <import-file-must-exist item="antlr"
+		    property="import.antlr.jar"/>
+        <import-file-must-exist item="antlr"
+		    property="import.antlr277.jar"/>
+        <import-file-must-exist item="antlr"
+		    property="import.antlr-runtime.jar"/>
+        <import-file-must-exist item="antlr"
+		    property="import.antlr.stringtemplate.jar"/>
+        <import-classname-must-exist item="antlr"
+		    classname="org.antlr.Tool"
+		    classpath="${import.antlr.jar}"/>
+        <import-check item="antlr"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Ant-contrib: Ant Building Help (ant-contrib)"
+	item="ant-contrib"
+	version="1.0b3"
+	url="http://downloads.sourceforge.net/ant-contrib"
+	basename="ant-contrib-1.0b3-bin"
+	platform=""
+	includes="**"/>
+    <target name="import-get-ant-contrib"
+            if="import.ant-contrib.use.http.get"
+	        unless="import.ant-contrib.installed">
+        <download-url-tgz item="ant-contrib"/>
+    </target>
+    <property name="import.ant-contrib.home"
+	      location="${import.ant-contrib.dir}/ant-contrib"/>
+    <property name="import.ant-contrib.jar"
+	      location="${import.ant-contrib.home}/ant-contrib-${import.ant-contrib.version}.jar"/>
+    <target name="import-ant-contrib"
+            depends="import-get-ant-contrib">
+        <import-file-must-exist item="ant-contrib"
+		    property="import.ant-contrib.jar"/>
+        <import-check item="ant-contrib"/>
+    </target>
+    
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="antpack200: Ant task for running pack200"
+	item="antpack200"
+	version="1.0beta"
+	url="https://deployment.dev.java.net/files/documents/3921/27491"
+	basename="deployment-ant-pack200-1.0beta"
+	platform=""
+	includes="**"/>
+    <target name="import-get-antpack200"
+            if="import.antpack200.use.http.get"
+	        unless="import.antpack200.installed">
+        <download-url-zip item="antpack200"/>
+    </target>
+    <property name="import.antpack200.jar"
+	      location="${import.antpack200.dir}/deployment-ant-pack200-1.0beta.jar"/>
+    <target name="import-antpack200"
+            depends="import-get-antpack200">
+        <import-file-must-exist item="antpack200"
+		    property="import.antpack200.jar"/>
+        <import-check item="antpack200"/>
+    </target>
+    
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Note: change the version, add the old to all-imports-cleanup -->
+
+    <import-set-properties
+	description="Docbook: ???"
+	item="docbook"
+	version="1.73.1"
+	url="http://downloads.sourceforge.net/docbook"
+	basename="docbook-xsl-1.73.1"
+	platform=""
+	includes="**"/>
+    <target name="import-get-docbook"
+            if="import.docbook.use.http.get"
+	        unless="import.docbook.installed">
+        <download-url-tgz item="docbook"/>
+    </target>
+    <property name="import.docbook.lib"
+	      location="${import.docbook.dir}/docbook-xsl-${import.docbook.version}/lib"/>
+    <property name="import.docbook.xsl"
+	      location="${import.docbook.lib}/lib.xsl"/>
+    <target name="import-docbook"
+            depends="import-get-docbook">
+        <import-file-must-exist item="docbook"
+		    property="import.docbook.xsl"/>
+        <import-check item="docbook"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Findbugs: Finds Java Bugs"
+	item="findbugs"
+	version="1.3.3"
+	url="http://prdownloads.sourceforge.net/findbugs"
+	basename="findbugs-1.3.3"
+	platform=""
+	includes="**"/>
+    <target name="import-get-findbugs"
+            if="import.findbugs.use.http.get"
+	        unless="import.findbugs.installed">
+        <download-url-tgz item="findbugs"/>
+    </target>
+    <property name="import.findbugs.home"
+	      location="${import.findbugs.dir}/findbugs-${import.findbugs.version}"/>
+    <property name="import.findbugs.lib"
+	      location="${import.findbugs.home}/lib"/>
+    <property name="import.findbugs.jar"
+	      location="${import.findbugs.lib}/findbugs.jar"/>
+    <target name="import-findbugs"
+            depends="import-get-findbugs">
+        <import-file-must-exist item="findbugs"
+		    property="import.findbugs.jar"/>
+        <import-classname-must-exist item="findbugs"
+		    classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
+		    classpath="${import.findbugs.jar}"/>
+        <import-check item="findbugs"/>
+    </target>
+    
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    
+    <import-set-properties
+	description="Docbook-xml: ???"
+	item="docbook-xml"
+	version="4.5"
+	url="http://www.docbook.org/xml/4.5"
+	basename="docbook-xml-4.5"
+	platform=""
+	includes="**"/>
+    <target name="import-get-docbook-xml"
+            if="import.docbook-xml.use.http.get"
+	        unless="import.docbook-xml.installed">
+        <download-url-zip item="docbook-xml"/>
+    </target>
+    <property name="import.docbook-xml.xml"
+	      location="${import.docbook-xml.dir}/catalog.xml"/>
+    <target name="import-docbook-xml"
+            depends="import-get-docbook-xml">
+        <import-file-must-exist item="docbook-xml"
+		    property="import.docbook-xml.xml"/>
+        <import-check item="docbook-xml"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Saxon: ???"
+	item="saxon"
+	version="6.5.5"
+	url="http://downloads.sourceforge.net/saxon"
+	basename="saxon6-5-5"
+	platform=""
+	includes="**.jar"/>
+    <target name="import-get-saxon"
+            if="import.saxon.use.http.get"
+	        unless="import.saxon.installed">
+        <download-url-zip item="saxon"/>
+    </target>
+    <property name="import.saxon.jar"
+	      location="${import.saxon.dir}/saxon.jar"/>
+    <target name="import-saxon"
+            depends="import-get-saxon">
+        <import-file-must-exist item="saxon"
+		    property="import.saxon.jar"/>
+        <import-check item="saxon"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Xincluder: ???"
+	item="xincluder"
+	version="1.0d11"
+	url="http://www.ibiblio.org/pub/languages/java/javafaq"
+	basename="xincluder-1.0d11"
+	platform=""
+	includes="**"/>
+    <target name="import-get-xincluder"
+            if="import.xincluder.use.http.get"
+	        unless="import.xincluder.installed">
+        <download-url-tgz item="xincluder"/>
+    </target>
+    <property name="import.xincluder.jar"
+	      location="${import.xincluder.dir}/xincluder/xincluder.jar"/>
+    <target name="import-xincluder"
+            depends="import-get-xincluder">
+        <import-file-must-exist item="xincluder"
+		    property="import.xincluder.jar"/>
+        <import-check item="xincluder"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="lombok"
+	item="lombok"
+	version="0.9.3"
+	url="http://jfx.us.oracle.com/imports"
+	basename="lombok-0.9.3"
+	platform=""
+	includes="**"/>
+    <target name="import-get-lombok"
+            if="import.lombok.use.http.get"
+	        unless="import.lombok.installed">
+        <download-url-jar item="lombok"/>
+    </target>
+    <property name="import.lombok.jar"
+	      location="${import.lombok.dir}/${import.lombok.basename}.jar"/>
+    <target name="import-lombok"
+            depends="import-get-lombok">
+        <import-file-must-exist item="lombok"
+		    property="import.lombok.jar"/>
+        <import-check item="lombok"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="lombok-trunk"
+	item="lombok-trunk"
+	version="0.9.4"
+	url="http://jfx.us.oracle.com/imports"
+	basename="lombok-0.9.4"
+	platform=""
+	includes="**"/>
+    <target name="import-get-lombok-trunk"
+            if="import.lombok-trunk.use.http.get"
+	        unless="import.lombok-trunk.installed">
+        <download-url-jar item="lombok-trunk"/>
+    </target>
+    <property name="import.lombok-trunk.jar"
+	      location="${import.lombok-trunk.dir}/${import.lombok-trunk.basename}.jar"/>
+    <target name="import-lombok-trunk"
+            depends="import-get-lombok-trunk">
+        <import-file-must-exist item="lombok-trunk"
+		    property="import.lombok-trunk.jar"/>
+        <import-check item="lombok-trunk"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="lombok-sources"
+	item="lombok-sources"
+	version="0.9.4"
+	url="http://jfx.us.oracle.com/imports"
+	basename="lombok-0.9.4-sources"
+	platform=""
+	includes="**"/>
+    <target name="import-get-lombok-sources"
+            if="import.lombok-sources.use.http.get"
+	        unless="import.lombok-sources.installed">
+        <download-url-jar item="lombok-sources"/>
+    </target>
+    <property name="import.lombok-sources.jar"
+	      location="${import.lombok-sources.dir}/${import.lombok-sources.basename}.jar"/>
+    <target name="import-lombok-sources"
+            depends="import-get-lombok-sources">
+        <import-file-must-exist item="lombok-sources"
+		    property="import.lombok-sources.jar"/>
+        <import-check item="lombok-sources"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="mangosdk-spi"
+	item="mangosdk-spi"
+	version="0.1"
+	url="http://jfx.us.oracle.com/imports"
+	basename="mangosdk-spi"
+	platform=""
+	includes="**"/>
+    <target name="import-get-mangosdk-spi"
+            if="import.mangosdk-spi.use.http.get"
+	        unless="import.mangosdk-spi.installed">
+        <download-url-jar item="mangosdk-spi"/>
+    </target>
+    <property name="import.mangosdk-spi.jar"
+	      location="${import.mangosdk-spi.dir}/${import.mangosdk-spi.basename}.jar"/>
+    <target name="import-mangosdk-spi"
+            depends="import-get-mangosdk-spi">
+        <import-file-must-exist item="mangosdk-spi"
+		    property="import.mangosdk-spi.jar"/>
+        <import-check item="mangosdk-spi"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="one-jar-ant-task"
+	item="one-jar-ant-task"
+	version="0.97.1x"
+	url="http://jfx.us.oracle.com/imports"
+	basename="one-jar-ant-task-0.97.1x"
+	platform=""
+	includes="**"/>
+    <target name="import-get-one-jar-ant-task"
+            if="import.one-jar-ant-task.use.http.get"
+	        unless="import.one-jar-ant-task.installed">
+        <download-url-jar item="one-jar-ant-task"/>
+    </target>
+    <property name="import.one-jar-ant-task.jar"
+	      location="${import.one-jar-ant-task.dir}/${import.one-jar-ant-task.basename}.jar"/>
+    <target name="import-one-jar-ant-task"
+            depends="import-get-one-jar-ant-task">
+        <import-file-must-exist item="one-jar-ant-task"
+		    property="import.one-jar-ant-task.jar"/>
+        <import-check item="one-jar-ant-task"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+        description="NVidia PhysX SDK"
+        item="nvidia-physx-sdk"
+        version="2.8.4"
+        url="http://jfx.us.oracle.com/imports"
+        basename="nvidia-physx-sdk-2.8.4-${os_name}-${arch}"
+        platform=""
+        includes="**"/>
+    <target name="import-get-nvidia-physx-sdk"
+            if="import.nvidia-physx-sdk.use.http.get"
+            unless="import.nvidia-physx-sdk.installed">
+        <download-url-zip item="nvidia-physx-sdk"/>
+    </target>
+    <property name="import.nvidia-physx-sdk.zip"
+              location="${import.nvidia-physx-sdk.dir}/nvidia-physx-sdk-2.8.4.zip"/>
+    <target name="import-nvidia-physx-sdk" depends="import-get-nvidia-physx-sdk">
+        <import-file-must-exist item="nvidia-physx-sdk" property="import.nvidia-physx-sdk.dir"/>
+        <import-check item="nvidia-physx-sdk"/>
+    </target>
+    <condition property="need.import.physx">
+        <or>
+            <equals arg1="${platform}" arg2="windows-i586"/>
+            <equals arg1="${platform}" arg2="windows-amd64"/>
+        </or>
+    </condition>
+    <target name="import-physx" if="need.import.physx">
+        <antcall target="import-nvidia-physx-sdk"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="ecj"
+	item="ecj"
+	version="3.6"
+	url="http://jfx.us.oracle.com/imports"
+	basename="ecj"
+	platform=""
+	includes="**"/>
+    <target name="import-get-ecj"
+            if="import.ecj.use.http.get"
+	        unless="import.ecj.installed">
+        <download-url-jar item="ecj"/>
+    </target>
+    <property name="import.ecj.jar"
+	      location="${import.ecj.dir}/${import.ecj.basename}.jar"/>
+    <target name="import-ecj"
+            depends="import-get-ecj">
+        <import-file-must-exist item="ecj"
+		    property="import.ecj.jar"/>
+        <import-check item="ecj"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="jdt.core"
+	item="jdt.core"
+	version="3.6"
+	url="http://jfx.us.oracle.com/imports"
+	basename="jdt.core"
+	platform=""
+	includes="**"/>
+    <target name="import-get-jdt.core"
+            if="import.jdt.core.use.http.get"
+	        unless="import.jdt.core.installed">
+        <download-url-jar item="jdt.core"/>
+    </target>
+    <property name="import.jdt.core.jar"
+	      location="${import.jdt.core.dir}/${import.jdt.core.basename}.jar"/>
+    <target name="import-jdt.core"
+            depends="import-get-jdt.core">
+        <import-file-must-exist item="jdt.core"
+		    property="import.jdt.core.jar"/>
+        <import-check item="jdt.core"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="checkstyle"
+	item="checkstyle"
+	version="5.1"
+	url="http://jfx.us.oracle.com/imports"
+	basename="checkstyle-5.1"
+	platform=""
+	includes="**"/>
+    <target name="import-get-checkstyle"
+            if="import.checkstyle.use.http.get"
+	        unless="import.checkstyle.installed">
+        <download-url-jar item="checkstyle"/>
+    </target>
+    <property name="import.checkstyle.jar"
+	      location="${import.checkstyle.dir}/${import.checkstyle.basename}.jar"/>
+    <target name="import-checkstyle"
+            depends="import-get-checkstyle">
+        <import-file-must-exist item="checkstyle"
+		    property="import.checkstyle.jar"/>
+        <import-check item="checkstyle"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="javac"
+	item="javac"
+	version="0.1"
+	url="http://jfx.us.oracle.com/imports"
+	basename="javac"
+	platform=""
+	includes="**"/>
+    <target name="import-get-javac"
+            if="import.javac.use.http.get"
+	        unless="import.javac.installed">
+        <download-url-jar item="javac"/>
+    </target>
+    <property name="import.javac.jar"
+	      location="${import.javac.dir}/${import.javac.basename}.jar"/>
+    <target name="import-javac"
+            depends="import-get-javac">
+        <import-file-must-exist item="javac"
+		    property="import.javac.jar"/>
+        <import-check item="javac"/>
+    </target>
+    
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="GWT SDK: Google Web Toolkit"
+	item="gwt"
+	version="2.1.0"
+	url="http://jfx.us.oracle.com/imports"
+	basename="gwt-2.1.0"
+	platform=""
+	includes="**"/>
+    <target name="import-get-gwt"
+            if="import.gwt.use.http.get"
+	        unless="import.gwt.installed">
+        <download-url-zip item="gwt"/>
+    </target>
+    <property name="import.gwt.zip"
+	      location="${import.gwt.dir}/gwt-2.1.0.zip"/>
+    <target name="import-gwt"
+            depends="import-get-gwt">
+        <import-file-must-exist item="gwt"
+		    property="import.gwt.dir"/>
+        <import-check item="gwt"/>
+    </target>
+
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+        description="SWT"
+        item="swt"
+        version="3.7.1"
+        url="http://jfx.us.oracle.com/imports"
+        basename="swt-3.7.1-${os_name}-${arch}"
+        platform=""
+        includes="**"/>
+    <target name="import-get-swt"
+            if="import.swt.use.http.get"
+            unless="import.swt.installed">
+        <download-url-zip item="swt"/>
+    </target>
+    <property name="import.swt.jar"
+              location="${import.swt.dir}/swt-debug.jar"/>
+    <target name="import-swt" depends="import-get-swt">
+        <import-file-must-exist item="swt" property="import.swt.dir"/>
+        <import-check item="swt"/>
+    </target>
+
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Antlrworks: IDE for Antlr?"
+	item="antlrworks"
+	version="1.3.1"
+	url="http://antlr.org/download"
+	basename="antlrworks-1.3.1"
+	platform=""
+	includes="**"/>
+    <target name="import-get-antlrworks"
+            if="import.antlrworks.use.http.get"
+	        unless="import.antlrworks.installed">
+        <download-url-jar item="antlrworks"/>
+    </target>
+    <property name="import.antlrworks.jar"
+	      location="${import.antlrworks.dir}/${import.antlrworks.basename}.jar"/>
+    <target name="import-antlrworks"
+            depends="import-get-antlrworks">
+        <import-file-must-exist item="antlrworks"
+		    property="import.antlrworks.jar"/>
+        <import-classname-must-exist item="antlrworks"
+		    classname="org.antlr.works.Console"
+		    classpath="${import.antlrworks.jar}"/>
+        <import-check item="antlrworks"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Asm: Java bytecode manipulation and analysis framework (BSD)"
+	item="asm"
+	version="3.1"
+	url="http://download.forge.objectweb.org/asm"
+	basename="asm-3.1-bin"
+	platform=""
+	includes="**"/>
+    <target name="import-get-asm"
+            if="import.asm.use.http.get"
+	        unless="import.asm.installed">
+        <download-url-zip item="asm"/>
+    </target>
+    <property name="import.asm.home"
+	      location="${import.asm.dir}/asm-${import.asm.version}"/>
+    <property name="import.asm.lib"
+	      location="${import.asm.home}/lib"/>
+    <property name="import.asm.jar"
+	      location="${import.asm.lib}/asm-${import.asm.version}.jar"/>
+    <property name="import.asm-all.jarname"
+	      value="asm-all-${import.asm.version}.jar"/>
+    <property name="import.asm-all.jar"
+	      location="${import.asm.lib}/all/${import.asm-all.jarname}"/>
+    <target name="import-asm"
+            depends="import-get-asm">
+        <import-file-must-exist item="asm"
+		    property="import.asm.jar"/>
+        <import-file-must-exist item="asm"
+		    property="import.asm-all.jar"/>
+        <import-check item="asm"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Cobertura: Code Test Coverage Analysis"
+	item="cobertura"
+	version="1.9.3"
+	url="http://downloads.sourceforge.net/cobertura"
+	basename="cobertura-1.9.3-bin"
+	platform=""
+	includes="**"/>
+    <target name="import-get-cobertura"
+            if="import.cobertura.use.http.get"
+	        unless="import.cobertura.installed">
+        <download-url-zip item="cobertura"/>
+    </target>
+    <property name="import.cobertura.home"
+	      location="${import.cobertura.dir}/cobertura-${import.cobertura.version}"/>
+    <property name="import.cobertura.jar"
+	      location="${import.cobertura.home}/cobertura.jar"/>
+    <property name="import.cobertura.asm.jar"
+	      location="${import.cobertura.home}/lib/asm-3.0.jar"/>
+    <property name="import.cobertura.asm-tree.jar"
+	      location="${import.cobertura.home}/lib/asm-tree-3.0.jar"/>
+    <property name="import.cobertura.jakarta-oro.jar"
+	      location="${import.cobertura.home}/lib/jakarta-oro-2.0.8.jar"/>
+    <property name="import.cobertura.log4j.jar"
+	      location="${import.cobertura.home}/lib/log4j-1.2.9.jar"/>
+    <target name="import-cobertura"
+            depends="import-get-cobertura">
+        <import-file-must-exist item="cobertura"
+		    property="import.cobertura.jar"/>
+        <import-file-must-exist item="cobertura"
+		    property="import.cobertura.asm.jar"/>
+        <import-file-must-exist item="cobertura"
+		    property="import.cobertura.asm-tree.jar"/>
+        <import-file-must-exist item="cobertura"
+		    property="import.cobertura.jakarta-oro.jar"/>
+        <import-file-must-exist item="cobertura"
+		    property="import.cobertura.log4j.jar"/>
+        <import-check item="cobertura"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Resolver: ???"
+	item="resolver"
+	version="1.2"
+	url="http://www.apache.org/dist/xml/commons"
+	basename="xml-commons-resolver-1.2"
+	platform=""
+	includes="**"/>
+    <target name="import-get-resolver"
+            if="import.resolver.use.http.get"
+	        unless="import.resolver.installed">
+        <download-url-zip item="resolver"/>
+    </target>
+    <property name="import.resolver.jar"
+	      location="${import.resolver.dir}/xml-commons-resolver-${import.resolver.version}/resolver.jar"/>
+    <target name="import-resolver"
+            depends="import-get-resolver">
+        <import-file-must-exist item="resolver"
+		    property="import.resolver.jar"/>
+        <import-check item="resolver"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Javacc: Javacc"
+	item="javacc"
+	version="4.2"
+        url="https://javacc.dev.java.net/files/documents/17/117793"
+	basename="javacc-4.2"
+	platform=""
+	includes="**"/>
+    <target name="import-get-javacc"
+            if="import.javacc.use.http.get"
+	        unless="import.javacc.installed">
+        <download-url-tgz item="javacc"/>
+    </target>
+    <property name="import.javacc.jar"
+	      location="${import.javacc.dir}/javacc-${import.javacc.version}/bin/lib/javacc.jar"/>
+    <target name="import-javacc"
+            depends="import-get-javacc">
+        <import-file-must-exist item="javacc"
+		    property="import.javacc.jar"/>
+        <import-check item="javacc"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+    description="Gluegen-src: Gluegen Source"
+    item="gluegen-src"
+    version="2.0-20091209"
+    url="http://download.java.net/media/javafx/gluegen/bundles"
+    basename="gluegen-src-${import.gluegen-src.version}"
+    platform=""
+    includes="**"/>
+    <target name="import-get-gluegen-src"
+            if="import.gluegen-src.use.http.get"
+            unless="import.gluegen-src.installed">
+        <download-url-zip item="gluegen-src"/>
+    </target>
+    <property name="import.gluegen-src.top.dir"
+            location="${import.gluegen-src.dir}/gluegen"/>
+    <property name="import.gluegen-src.build.xml"
+            location="${import.gluegen-src.top.dir}/make/build.xml"/>
+    <target name="import-gluegen-src"
+            depends="import-get-gluegen-src">
+        <import-file-must-exist item="gluegen-src"
+                  property="import.gluegen-src.build.xml"/>
+        <import-check item="gluegen-src"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="benchmarks"
+	item="benchmarks"
+	version="2.1.1"
+	url="http://jfx.us.oracle.com/imports"
+	basename="benchmarks-2.1.1"
+	platform=""
+	includes="**"/>
+    <target name="import-get-benchmarks"
+            if="import.benchmarks.use.http.get"
+	        unless="import.benchmarks.installed">
+        <download-url-jar item="benchmarks"/>
+    </target>
+    <property name="import.benchmarks.jar"
+	      location="${import.benchmarks.dir}/${import.benchmarks.basename}.jar"/>
+    <target name="import-benchmarks"
+            depends="import-get-benchmarks">
+        <import-file-must-exist item="benchmarks"
+		    property="import.benchmarks.jar"/>
+        <import-check item="benchmarks"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <import-set-properties
+	description="Webnode dependencies"
+	item="webnode-deps"
+	version="1.3"
+	url="http://jfx.us.oracle.com/imports"
+	basename="webnode-deps-1.3-${os_name}-${arch}"
+        platform=""
+	includes="**"/>
+    <target name="import-get-webnode-deps"
+            if="import.webnode-deps.use.http.get"
+            unless="import.webnode-deps.installed">
+        <download-url-zip item="webnode-deps"/>
+    </target>
+    <property name="import.webnode-deps.root"
+	      location="${import.webnode-deps.dir}/import"/>
+    <target name="import-webnode-deps" unless="isLinux">
+        <antcall target="import-get-webnode-deps"/>
+        <import-file-must-exist item="webnode-deps"
+                                property="import.webnode-deps.root"/>
+        <import-check item="webnode-deps"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+</project>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-inventory.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-inventory" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Contains the inventory checks for the JavaFX SDK builds.
+
+        NOTE: Not all files are checked, most are. Extra files are not errors.
+
+    </description>
+
+    <property name="jfx.sdk.inventory.ok"
+              value="${jfx.sdk.inventory.dir}/ok.log"/>
+    <property name="jfx.sdk.inventory.missing"
+              value="${jfx.sdk.inventory.dir}/missing.log"/>
+    <property name="jfx.deployed.inventory.ok"
+              value="${jfx.deployed.inventory.dir}/ok.log"/>
+    <property name="jfx.rtdeployed.inventory.ok"
+              value="${jfx.rtdeployed.inventory.dir}/ok.log"/>
+    <property name="jfx.deployed.inventory.missing"
+              value="${jfx.deployed.inventory.dir}/missing.log"/>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Macrodefs -->
+
+    <macrodef name="inventory-check">
+        <attribute name="category"/>
+        <attribute name="topdir"/>
+        <attribute name="subdir"/>
+        <attribute name="file"/>
+        <sequential>
+            <condition property="jfx.@{category}.inventory.error" value="true">
+                <not>
+                    <available file="@{topdir}/@{subdir}/@{file}" type="file"/>
+                </not>
+            </condition>
+            <condition property="jfx.@{category}.inventory.@{file}"
+                       value="${jfx.@{category}.inventory.ok}"
+                       else="${jfx.@{category}.inventory.missing}">
+                <available file="@{topdir}/@{subdir}/@{file}" type="file"/>
+            </condition>
+            <echo append="true" file="${jfx.@{category}.inventory.@{file}}"
+                  message="@{subdir}/@{file}${line.separator}"/>
+            <checksum file="${jfx.@{category}.inventory.@{file}}"
+                      property="jfx.@{category}.inventory.checksum.@{file}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="inventory-sdk-check">
+        <attribute name="dir"/>
+        <attribute name="file"/>
+        <sequential>
+            <inventory-check category="sdk"
+                             topdir="${jfx.sdk.dir}"
+                             subdir="@{dir}"
+                             file="@{file}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <target name="-inventory-sdk-init">
+        <delete dir="${jfx.sdk.inventory.dir}"/>
+        <mkdir dir="${jfx.sdk.inventory.dir}"/>
+    </target>
+
+    <target name="-inventory-sdk-generic">
+        <echo message="Checking generic sdk files."/>
+        <inventory-sdk-check dir="." file="src.zip"/>
+        <inventory-sdk-check dir="." file="timestamp"/>
+        <inventory-sdk-check dir="." file="COPYRIGHT.html"/>
+        <inventory-sdk-check dir="." file="README.html"/>
+        <inventory-sdk-check dir="." file="THIRDPARTYLICENSEREADME.txt"/>
+        <!-- Lots of files in docs/api, just check for summary pages: -->
+        <inventory-sdk-check dir="./docs/api"                             file="index.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.animation"            file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.animation.transition" file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.async"                file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.data.pull"            file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.data.xml"             file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.geometry"             file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.io.http"              file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.reflect"              file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene"                file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.control"        file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.effect"         file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.effect.light"   file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.image"          file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.input"          file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.layout"         file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.media"          file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.paint"          file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.shape"          file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.text"           file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.scene.transform"      file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.stage"                file="package-summary.html"/>
+        <inventory-sdk-check dir="./docs/api/javafx.util"                 file="package-summary.html"/>
+        <inventory-sdk-check dir="./build/lib"  file="javafx-runtime.properties"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="eula.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-runtime.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-anim.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-geom.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-sg-common.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-sg-swing.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-ui-common.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-ui-desktop.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-ui-swing.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-ui-controls.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafx-ui-charts.jar"/>
+        <!--
+            inventory-sdk-check dir="./build/lib/desktop" file="websvc.jar"/-->
+        <inventory-sdk-check dir="./build/lib/desktop" file="jfxmedia.jar"/>
+        <inventory-sdk-check dir="./build/lib/shared" file="asm-all-3.1.jar"/>
+        <!--
+            WE don't have javafxc anymore in javaport
+            inventory-sdk-check dir="./build/lib/shared" file="javafxc.jar"/
+        -->
+        <!--
+            UNCOMMENT when javadoc is reenabled
+            inventory-sdk-check dir="./build/lib/shared" file="javafxdoc.jar"/-->
+        <!--
+            inventory-sdk-check dir="./build/lib/shared" file="javafxrt.jar"/
+        -->
+        <inventory-sdk-check dir="./build/lib/desktop" file="javafxrt-main.jar"/>
+        <inventory-sdk-check dir="./build/lib/shared" file="toolchain.jar"/>
+    </target>
+
+    <target name="-inventory-sdk-unix" if="isUnix">
+        <echo message="Checking unix sdk files."/>
+        <inventory-sdk-check dir="./bin" file="javafx"/>
+        <inventory-sdk-check dir="./bin" file="javafxc"/>
+        <inventory-sdk-check dir="./bin" file="javafxdoc"/>
+        <inventory-sdk-check dir="./bin" file="javafxpackager"/>
+    </target>
+
+    <target name="-inventory-sdk-windows" if="isWindows">
+        <echo message="Checking windows sdk files."/>
+        <inventory-sdk-check dir="./bin" file="javafx.exe"/>
+        <inventory-sdk-check dir="./bin" file="javafxw.exe"/>
+        <inventory-sdk-check dir="./bin" file="javafxc.exe"/>
+        <inventory-sdk-check dir="./bin" file="javafxdoc.exe"/>
+        <inventory-sdk-check dir="./bin" file="javafxpackager.exe"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-d3d.dll"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-d3d.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-ogl.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-sse.dll"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-sse.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="prism-jogl-common.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="prism_jogl_gl2.dll"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="prism_nativewindow_jvm.dll"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="prism_nativewindow_util.dll"/>
+        <!-- TODO: re-enable this once the switch to VS 2010 is complete
+        <inventory-sdk-check dir="./build/lib/desktop" file="msvcr100.dll"/>
+        -->
+        <inventory-sdk-check dir="./build/lib/desktop" file="jfxmedia.dll"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="glib-lite.dll"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="gstreamer-lite.dll"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="fxplugins.dll"/>
+    </target>
+
+    <target name="-inventory-sdk-macosx" if="isMacOSX">
+        <echo message="Checking macosx sdk files."/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-j2d-jogl.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-ogl.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-sse.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="prism-jogl-common.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libjfxmedia.jnilib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="fxplugins.dylib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="fxmp3plugin.dylib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libglib-2.0.0.dylib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgmodule-2.0.0.dylib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgobject-2.0.0.dylib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgthread-2.0.0.dylib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgstreamer-lite.dylib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgstplugins-lite.dylib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libdecora-sse.jnilib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_jogl_gl2.jnilib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_nativewindow_jvm.jnilib"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_nativewindow_util.jnilib"/>
+    </target>
+
+    <target name="-inventory-sdk-solaris" if="isSolaris">
+        <echo message="Checking solaris sdk files."/>
+	<!-- TODO: uncomment and fix following when media is fixed for Solaris -->
+        <!--<inventory-sdk-check dir="./build/lib/desktop" file="libGStreamer.so"/>-->
+	<!-- TODO: uncomment the following when JOGL is enabled for Solaris -->
+	<!--
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-ogl.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="prism-jogl-common.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_jogl_gl2.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_nativewindow_jvm.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_nativewindow_util.so"/>
+        -->
+    </target>
+
+    <target name="-inventory-sdk-linux" if="isLinux">
+        <echo message="Checking linux sdk files."/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="decora-ogl.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="prism-jogl-common.jar"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_jogl_gl2.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_nativewindow_jvm.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libprism_nativewindow_util.so"/>
+        <!-- FIXME: uncomment JFXMedia/GStLite natives when linux build works
+        <inventory-sdk-check dir="./build/lib/desktop" file="libjfxmedia.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="fxplugins.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="fxmp3plugin.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libglib-2.0.0.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgmodule-2.0.0.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgobject-2.0.0.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgthread-2.0.0.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgstreamer-lite.so"/>
+        <inventory-sdk-check dir="./build/lib/desktop" file="libgstplugins-lite.so"/ -->
+    </target>
+
+    <target name="-inventory-sdk-check-missing" if="jfx.sdk.inventory.error">
+        <echo message="WARNING: Missing sdk files:"/>
+        <concat>
+            <file file="${jfx.sdk.inventory.missing}"/>
+        </concat>
+        <fail message="ERROR: Missing sdk files.">
+            <condition>
+                <isset property="jfx.sdk.inventory.error"/>
+            </condition>
+        </fail>
+    </target>
+
+    <target name="-inventory-sdk"
+            depends="-inventory-sdk-generic,
+                     -inventory-sdk-windows,
+                     -inventory-sdk-unix,
+                     -inventory-sdk-macosx,
+                     -inventory-sdk-solaris,
+                     -inventory-sdk-linux">
+    </target>
+
+    <target name="check-sdk-inventory"
+            depends="-inventory-sdk-init,
+                     -inventory-sdk,
+                     -inventory-sdk-check-missing">
+        <echoproperties destfile="${jfx.sdk.inventory.data}">
+            <propertyset>
+                <propertyref prefix="jfx.sdk.inventory.checksum."/>
+            </propertyset>
+        </echoproperties>
+    </target>
+
+    <target name="check-deployed-inventory">
+    </target>
+
+    <target name="check-rtdeployed-inventory">
+    </target>
+
+    <target name="check-inventory"
+            depends="check-sdk-inventory">
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-invoice.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-invoice" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+   
+        Creates an invoice.properties file to record the sdk contents and
+        version information about this particular build of the SDK.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build.xml file only.
+
+    </description>
+
+    <!-- Defines properties for invoice work. -->
+    <macrodef name="do-invoice-header">
+        <attribute name="file"/>
+        <attribute name="description"/>
+        <sequential>
+            <propertyfile file="@{file}" comment=" Invoice for @{description} ">
+                <entry  key="jfx.product.name" value="${jfx.product.name}"/>
+                <entry  key="jfx.build.date" type="date" value="now"/>
+                <entry  key="jfx.release.milestone" value="${jfx.release.milestone}"/>
+                <entry  key="jfx.release.name" value="${jfx.release.name}"/>
+                <entry  key="jfx.release.milestone" value="${jfx.release.milestone}"/>
+                <entry  key="jfx.release.version" value="${jfx.release.version}"/>
+                <entry  key="jfx.build.number" value="${jfx.build.number}"/>
+                <entry  key="jfx.build.id" value="${jfx.build.id}"/>
+                <entry  key="jfx.job.name" value="${jfx.job.name}"/>
+                <entry  key="jfx.release.build.user" value="${user.name}"/>
+            </propertyfile>
+        </sequential>
+    </macrodef>
+
+    <target name="-init-sdk-invoice">
+        <delete file="${jfx.sdk.invoice}"/>
+    </target>
+
+    <target name="-init-deployed-invoice">
+        <delete file="${jfx.deployed.invoice}"/>
+    </target>
+
+    <target name="-init-rtdeployed-invoice">
+        <delete file="${jfx.rtdeployed.invoice}"/>
+    </target>
+
+    <target name="add-sdk-invoice" depends="-init-sdk-invoice, tip-all-components">
+        <delete file="${jfx.sdk.invoice}.header"/>
+        <do-invoice-header
+            file="${jfx.sdk.invoice}.header"
+            description="${jfx.sdk.invoice.description}"/>
+        <concat destfile="${jfx.sdk.invoice}">
+            <fileset file="${jfx.sdk.invoice}.header"/>
+            <fileset file="${jfx.repository.data}"/>
+            <fileset file="${jfx.sdk.inventory.data}"/>
+        </concat>
+        <delete file="${jfx.sdk.invoice}.header"/>
+    </target>
+
+    <target name="add-deployed-invoice" depends="-init-deployed-invoice, tip-all-components">
+        <delete file="${jfx.deployed.invoice}.header"/>
+        <do-invoice-header
+            file="${jfx.deployed.invoice}.header"
+            description="${jfx.deployed.invoice.description}"/>
+        <concat destfile="${jfx.deployed.invoice}">
+            <fileset file="${jfx.deployed.invoice}.header"/>
+            <fileset file="${jfx.repository.data}"/>
+            <fileset file="${jfx.deployed.inventory.data}"/>
+        </concat>
+        <delete file="${jfx.deployed.invoice}.header"/>
+    </target>
+
+    <target name="add-rtdeployed-invoice" depends="-init-rtdeployed-invoice, tip-all-components">
+        <delete file="${jfx.rtdeployed.invoice}.header"/>
+        <do-invoice-header
+            file="${jfx.rtdeployed.invoice}.header"
+            description="${jfx.rtdeployed.invoice.description}"/>
+        <concat destfile="${jfx.rtdeployed.invoice}">
+            <fileset file="${jfx.rtdeployed.invoice}.header"/>
+            <fileset file="${jfx.repository.data}"/>
+            <fileset file="${jfx.rtdeployed.inventory.data}"/>
+        </concat>
+        <delete file="${jfx.rtdeployed.invoice}.header"/>
+    </target>
+
+    <target name="invoices" depends="add-sdk-invoice, add-deployed-invoice, add-rtdeployed-invoice"/>
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-jar-importer.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-jar-importer" basedir=".">
+
+<!--
+/*
+* Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*
+* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+* CA 95054 USA or visit www.sun.com if you need additional information or
+* have any questions.
+*/
+-->
+
+   <description>
+
+       Defines common properties and macros for getting special jar files
+       that are not freely or easily available from http: downloads.
+       See build-importer.xml for all other imported files.
+
+       In most cases, these files are available to download but either
+       involve a license acceptance step or are just too difficult to
+       automate their download.
+
+       *** Sub-repositories should NOT import this file. ***
+
+   </description>
+
+   <!-- The jar_import host or master location of these files. -->
+   <property name="jfx.jar_import.host" value="jfx.us.oracle.com"/>
+   <property name="jfx.jar_import.url" value="http://${jfx.jar_import.host}/closed_import"/>
+   <property name="jfx.global.jar_import.zip" value="${jfx.root.dir}/../jar_import.zip"/>
+
+   <!-- URL and destination names for all jar_import files. -->
+   <property name="jfx.plugin_exports.url" value="${jfx.jar_import.url}/plugin_exports.jar"/>
+   <property name="jfx.plugin_exports.jar" location="${jfx.jar_import.dir}/plugin_exports.jar"/>
+   <property name="jfx.jnlp.url" value="${jfx.jar_import.url}/jnlp.jar"/>
+   <property name="jfx.jnlp.jar" location="${jfx.jar_import.dir}/jnlp.jar"/>
+   <property name="jfx.amble-fonts.url" value="${jfx.jar_import.url}/amble-fonts.jar"/>
+   <property name="jfx.amble-fonts.jar" location="${jfx.jar_import.dir}/amble-fonts.jar"/>
+
+   <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+   <!-- Macrodefs -->
+   <macrodef name="jfx-jar-importer-set-exists">
+       <sequential>
+           <condition property="jfx.jnlp.jar.exists">
+               <available file="${jfx.jnlp.jar}" type="file"/>
+           </condition>
+           <condition property="jfx.plugin_exports.jar.exists">
+               <available file="${jfx.plugin_exports.jar}" type="file"/>
+           </condition>
+           <condition property="jfx.amble-fonts.jar.exists">
+               <available file="${jfx.amble-fonts.jar}" type="file"/>
+           </condition>
+           <!-- Do all jar_import files exist. -->
+           <condition property="jfx.all.jar_import.exists">
+               <and>
+                   <isset property="jfx.jnlp.jar.exists"/>
+                   <isset property="jfx.plugin_exports.jar.exists"/>
+                   <isset property="jfx.amble-fonts.jar.exists"/>
+               </and>
+           </condition>
+       </sequential>
+   </macrodef>
+
+   <macrodef name="jfx-jar-importer">
+       <attribute name="url"/>
+       <attribute name="file"/>
+       <sequential>
+           <delete file="@{file}"/>
+           <delete file="@{file}.temp"/>
+           <get src="@{url}" dest="@{file}.temp"/>
+           <move file="@{file}.temp" tofile="@{file}" verbose="true"/>
+           <delete file="@{file}.temp"/>
+       </sequential>
+   </macrodef>
+
+   <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+   <!-- Set exists properties. -->
+   <jfx-jar-importer-set-exists/>
+
+   <!-- Does the global jar_import.zip file exist, and should we use it. -->
+   <condition property="use.global.jar_import.zip">
+       <and>
+           <available file="${jfx.global.jar_import.zip}" type="file"/>
+           <not>
+               <isset property="jfx.all.jar_import.exists"/>
+           </not>
+       </and>
+   </condition>
+
+   <!-- We need to re-set these properties after exploding any jar_import.zip. -->
+   <target name="-set-exists">
+       <jfx-jar-importer-set-exists/>
+   </target>
+
+   <!-- Explode global jar_import.zip if needed and we have one. -->
+   <target name="-check-for-global-zip-jar-import"
+           if="use.global.jar_import.zip"
+           unless="jfx.all.jar_import.exists">
+       <do-unzip-bundle zip="${jfx.global.jar_import.zip}"
+                        dir="${jfx.jar_import.dir}"/>
+   </target>
+
+   <!-- Get and explode jar_import.zip from hudson if needed, should, and can. -->
+   <target name="-check-for-hudson-zip-jar-import"
+           if="use.hudson.jar_import.zip"
+           unless="jfx.all.jar_import.exists">
+       <do-get-previous-bundle name="jar_import"
+           url="${hudson.jfx.jar_import.url}" dir="${jfx.jar_import.dir}"/>
+   </target>
+
+   <!-- Check each individual file and download each separately. -->
+   <target name="-check-plugin-exports"
+           unless="jfx.plugin_exports.jar.exists"
+           if="use.jar_import.host">
+       <mkdir dir="${jfx.jar_import.dir}"/>
+       <jfx-jar-importer url="${jfx.plugin_exports.url}" file="${jfx.plugin_exports.jar}"/>
+   </target>
+   <target name="-check-jnlp"
+           unless="jfx.jnlp.jar.exists"
+           if="use.jar_import.host">
+       <mkdir dir="${jfx.jar_import.dir}"/>
+       <jfx-jar-importer url="${jfx.jnlp.url}" file="${jfx.jnlp.jar}"/>
+   </target>
+   <target name="-check-amble-fonts"
+           unless="jfx.amble-fonts.jar.exists"
+           if="use.jar_import.host">
+       <mkdir dir="${jfx.jar_import.dir}"/>
+       <jfx-jar-importer url="${jfx.amble-fonts.url}" file="${jfx.amble-fonts.jar}"/>
+   </target>
+
+   <!-- Warning when items missing in jar_import -->
+   <target name="-jar_import-report" unless="jfx.all.jar_import.exists">
+       <echo message="WARNING: Some or all of the jar_import files are not available."/>
+   </target>
+
+   <!-- Download or check jar imports. -->
+   <target name="-check-all-jar_imports"
+           depends="-check-plugin-exports,
+                    -check-jnlp,
+                    -check-amble-fonts,
+                    -jar_import-report"
+           unless="jfx.all.jar_import.exists">
+   </target>
+
+   <!-- Make sure we have all the jar_import files. -->
+   <target name="all-jar_imports"
+           depends="-check-for-global-zip-jar-import,-set-exists"
+           unless="jfx.all.jar_import.exists">
+               <!-- If we reached here, we need something still. -->
+       <condition property="use.hudson.jar_import.zip">
+           <and>
+               <not>
+                   <isset property="jfx.open.only"/>
+               </not>
+               <not>
+                   <isset property="jfx.all.jar_import.exists"/>
+               </not>
+               <isreachable host="${hudson.jfx.host}" timeout="10"/>
+           </and>
+       </condition>
+       <!-- Try hudson server. -->
+       <antcall target="-check-for-hudson-zip-jar-import"/>
+       <!-- Reset exists properties. -->
+       <jfx-jar-importer-set-exists/>
+       <!-- See if jar_import host should be used. -->
+       <condition property="use.jar_import.host">
+           <and>
+               <not>
+                   <isset property="jfx.open.only"/>
+               </not>
+               <not>
+                   <isset property="jfx.all.jar_import.exists"/>
+               </not>
+               <isreachable host="${jfx.jar_import.host}" timeout="10"/>
+           </and>
+       </condition>
+       <!-- Last attempt, or final check on each jar_import file. -->
+       <antcall target="-check-all-jar_imports"/>
+   </target>
+
+   <target name="clean-jar_import">
+       <delete dir="${jfx.jar_import.dir}"/>
+   </target>
+
+   <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-linux-defs.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-linux-defs" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines common properties and macrodefs that are specific to the
+        system being used and the various system installed tools on the
+        systems. Such as Visual Studio, GNU make, Mac XCode, C/C++ compilers,
+        etc.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build-defs.xml file.
+
+    </description>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <condition property="jfx.build.needs.gcc.compiler">
+        <or>
+            <available file="${jfx.root.dir}/media" type="dir"/>
+            <available file="${jfx.root.dir}/rt-closed" type="dir"/>
+        </or>
+    </condition>
+
+    <condition property="jfx.build.needs.make.utility">
+        <or>
+            <available file="${jfx.root.dir}/media" type="dir"/>
+            <available file="${jfx.root.dir}/rt-closed" type="dir"/>
+        </or>
+    </condition>
+
+    <property name="gcc.utility" value="gcc"/>
+    <property name="make.utility" value="make"/>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Macrodefs for system specific tools to be shared by everyone. -->
+
+    <macrodef name="do-gcc">
+        <!-- Does a GNU gcc compilation -->
+        <attribute name="dir"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <echo message="STARTING: DO-GCC dir @{dir}"/>
+            <echo message="cd @{dir} ; ${gcc.utility} @{options}"/>
+            <exec dir="@{dir}"
+                  executable="${gcc.utility}"
+                  failonerror="true">
+                <arg line="@{options}"/>
+            </exec>
+            <echo message="FINISHED: DO-GCC dir @{dir}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-make">
+        <!-- Does a Makefile build -->
+        <attribute name="dir"/>
+        <attribute name="target"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <echo message="STARTING: DO-MAKE dir @{dir}"/>
+            <echo message="cd @{dir} ; ${make.utility} @{target}"/>
+            <exec dir="@{dir}"
+                  executable="${make.utility}"
+                  failonerror="true">
+                <env key="JAVA_HOME"     value="${platform.home}"/>
+                <env key="JDK_HOME"      value="${platform.home}"/>
+                <arg line="@{options}"/>
+                <arg value="@{target}"/>
+            </exec>
+            <echo message="FINISHED: DO-MAKE dir @{dir}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <target name="needs-gcc"
+            if="jfx.build.needs.gcc.compiler"
+            unless="jfx.skip.platform.checks">
+        <do-gcc dir="." options="--version"/>
+    </target>
+
+    <target name="needs-make"
+            if="jfx.build.needs.make.utility"
+            unless="jfx.skip.platform.checks">
+        <do-make dir="." target="-version"/>
+    </target>
+
+    <target name="-init-platform-defs"
+            depends="needs-make,
+                     needs-gcc">
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-macosx-defs.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-macosx-defs" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines common properties and macrodefs that are specific to the
+        system being used and the various system installed tools on the
+        systems. Such as Visual Studio, GNU make, Mac XCode, C/C++ compilers,
+        etc.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build-defs.xml file.
+
+    </description>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <!-- Only certain repositories trigger a need for native compilation tools. -->
+    <condition property="jfx.build.needs.xcodebuild.utility">
+        <available file="${jfx.root.dir}/media" type="dir"/>
+    </condition>
+
+    <condition property="jfx.build.needs.gcc.compiler">
+        <or>
+            <available file="${jfx.root.dir}/media" type="dir"/>
+            <available file="${jfx.root.dir}/rt-closed" type="dir"/>
+        </or>
+    </condition>
+
+    <condition property="jfx.build.needs.make.utility">
+        <or>
+            <available file="${jfx.root.dir}/media" type="dir"/>
+            <available file="${jfx.root.dir}/rt-closed" type="dir"/>
+        </or>
+    </condition>
+
+    <property name="gcc.utility"        value="gcc"/>
+    <property name="make.utility"       value="make"/>
+    <property name="xcodebuild.utility" value="xcodebuild"/>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Macrodefs for system specific tools to be shared by everyone. -->
+
+    <macrodef name="do-gcc">
+        <!-- Does a GNU gcc compilation -->
+        <attribute name="dir"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <echo message="STARTING: DO-GCC dir @{dir}"/>
+            <echo message="cd @{dir} ; ${gcc.utility} @{options}"/>
+            <exec dir="@{dir}"
+                  executable="${gcc.utility}"
+                  failonerror="true">
+                <arg line="@{options}"/>
+            </exec>
+            <echo message="FINISHED: DO-GCC dir @{dir}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-make">
+        <!-- Does a Makefile build -->
+        <attribute name="dir"/>
+        <attribute name="target"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <echo message="STARTING: DO-MAKE dir @{dir}"/>
+            <echo message="cd @{dir} ; ${make.utility} @{target}"/>
+            <exec dir="@{dir}"
+                  executable="${make.utility}"
+                  failonerror="true">
+                <env key="JAVA_HOME"     value="${platform.home}"/>
+                <env key="JDK_HOME"      value="${platform.home}"/>
+                <arg line="@{options}"/>
+                <arg value="@{target}"/>
+            </exec>
+            <echo message="FINISHED: DO-MAKE dir @{dir}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-xcodebuild">
+        <!-- Does a Mac XCode project build -->
+        <attribute name="outdir"/>
+        <attribute name="srcdir"/>
+        <attribute name="target"/>
+        <attribute name="project"/>
+        <sequential>
+            <echo message="STARTING: DO-XCODEBUILD project @{project}"/>
+            <echo message="${xcodebuild.utility} -project @{project} -target @{target}"/>
+            <property name="xcode.outdir.path" location="@{outdir}"/>
+            <property name="xcode.build.jni.dir.path" location="${build.jni.dir}"/>
+            <exec dir="@{srcdir}"
+                  executable="${xcodebuild.utility}"
+                  failonerror="true">
+                <arg line="-project @{project}"/>
+                <arg line="-target @{target}"/>
+                <arg line="BUILT_PRODUCTS_DIR=${xcode.outdir.path}"/>
+                <arg line="OBJROOT=${xcode.outdir.path}"/>
+                <arg line="SYMROOT=${xcode.outdir.path}"/>
+                <arg line="DSTROOT=${xcode.outdir.path}"/>
+                <arg line="USER_HEADER_SEARCH_PATHS=${xcode.build.jni.dir.path}"/>
+            </exec>
+            <echo message="FINISHED: DO-XCODEBUILD project @{project}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <target name="needs-gcc"
+            if="jfx.build.needs.gcc.compiler"
+            unless="jfx.skip.platform.checks">
+        <do-gcc dir="." options="--version"/>
+    </target>
+
+    <target name="needs-make"
+            if="jfx.build.needs.make.utility"
+            unless="jfx.skip.platform.checks">
+        <do-make dir="." target="-version"/>
+    </target>
+
+    <target name="needs-xcodebuild"
+            if="jfx.build.needs.xcodebuild.utility"
+            unless="jfx.skip.platform.checks">
+        <echo message="Using ${xcodebuild.utility} to get version."/>
+        <exec executable="${xcodebuild.utility}" failonerror="true">
+            <arg value="-version"/>
+        </exec>
+    </target>
+
+    <target name="-init-platform-defs"
+            depends="needs-make,
+                     needs-gcc,
+                     needs-xcodebuild">
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-os-arch.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-os-arch" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines common OS and Architecture properties for the system being
+        used to do the builds.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build-defs.xml file.
+
+    </description>
+
+    <!--
+    properties:
+      isWindows, isLinux, isSolaris, isMacOSX
+      os_name: "windows", "linux", "solaris", "macos", "macosx"
+      arch: "sparc", "i586", "amd64", "sparcv9", etc.
+      platform (like windows-i586)
+    -->
+    
+    <!-- Basic OS conditions -->
+    <condition property="isWindows">
+        <os family="windows"/>
+    </condition>
+    <condition property="isLinux">
+        <os name="linux"/>
+    </condition>
+    <condition property="isSolaris">
+        <os name="SunOS"/>
+    </condition>
+    <condition property="isMacOSX">
+        <and>
+            <os family="mac"/>
+            <os family="unix"/>
+        </and>
+    </condition>
+    <condition property="isUnix">
+        <os family="unix"/>
+    </condition>
+   
+    <!-- Define os_name -->
+    <condition property="os_name" value="windows">
+        <os family="windows"/>
+    </condition>
+    <condition property="os_name" value="solaris">
+        <os name="SunOS"/>
+    </condition>
+    <condition property="os_name" value="linux">
+        <os name="linux"/>
+    </condition>
+    <condition property="os_name" value="macosx">
+        <and>
+            <os family="mac"/>
+            <os family="unix"/>
+        </and>
+    </condition>
+    <condition property="os_name" value="macos">
+        <and>
+            <os family="mac"/>
+            <not>
+                <os family="unix"/>
+            </not>
+        </and>
+    </condition>
+    
+    <!-- Define arch --> 
+    <condition property="arch" value="i586">
+        <or>
+            <os arch="x86"/>
+            <os arch="i586"/>
+            <os arch="i386"/>
+        </or>
+    </condition>
+    <condition property="arch" value="sparc">
+        <os arch="sparc"/>
+    </condition>
+    <condition property="arch" value="universal">
+        <isset property="isMacOSX"/>
+    </condition>
+    <condition property="arch" value="amd64">
+        <!-- TODO: detect X64 (64bit) capability on Solaris? -->
+        <or>
+            <os arch="amd64"/>
+            <os arch="x86_64"/>
+            <os arch="x64"/>
+            <os arch="em64t"/>
+            <os arch="8664"/>
+        </or>
+    </condition>
+    <condition property="arch" value="sparcv9">
+        <!-- TODO: detect sparcv9 (64bit) capability on Solaris? -->
+        <os arch="sparcv9"/>
+    </condition>
+
+    <condition property="native.build.arch" value="x64" else="x86">
+        <and>
+            <equals arg1="${arch}" arg2="amd64"/>
+            <equals arg1="${build.arch}" arg2="x64"/>
+        </and>
+    </condition>
+
+    <!-- Define platform -->
+    <condition property="platform" value="${os_name}-${arch}" else="${os_name}-universal">
+        <or>
+            <os family="windows"/>
+            <os name="linux"/>
+            <os name="SunOS"/>
+        </or>
+    </condition>
+
+    <!-- Define default platform home locations -->
+    <property name="tmp.jdk.home" location="${java.home}/.."/>
+    
+    <!-- Mac OS X 10.5+ has a tool to determine the JDK path, but fall back on java.home. -->
+    <exec osfamily="mac" executable="/usr/libexec/java_home" outputproperty="macosx.java_home.out" errorproperty="macosx.java_home.err" failonerror="false"/>
+    <condition property="mac.jdk.home" value="${macosx.java_home.out}" else="${java.home}">
+        <isset property="macosx.java_home.out"/>
+    </condition>
+    
+    <condition property="jdk.home" value="${tmp.jdk.home}" else="${mac.jdk.home}">
+        <not>
+            <isset property="isMacOSX"/>
+        </not>
+    </condition>
+    
+    <property name="platform.home" value="${jdk.home}"/>
+    <property name="platform6u10.home" value="${jdk.home}"/>
+    
+    <target name="-init-platform">
+        <fail unless="os_name">
+	    Could not detect platform family.
+        </fail>
+        <fail unless="arch">
+            Detecting ${os_name}: could not detect architecture."
+        </fail>
+        <fail unless="platform">
+            Detecting ${os_name}-${arch}: could not determine platform name."
+        </fail>
+        <echo message="OS name: ${os_name}"/>
+        <echo message="OS arch: ${arch}"/>
+        <echo message="Build arch: ${native.build.arch}"/>
+    </target>
+    
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-perf.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="PerfTasks" basedir="."
+         xmlns:fx="javafx:com.sun.javafx.tools.ant">
+    <description>
+        Build tasks related to performance testing
+    </description>
+    <import file="../build-defs.xml"/>
+
+    <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
+             uri="javafx:com.sun.javafx.tools.ant"
+             classpath="${jfx.sdk.anttask.jar}"/>
+
+    <condition property="isWindows">
+        <os family="windows"/>
+    </condition>
+
+    <!-- do not support web deployment on platforms other than windows -->
+    <target name="create-startup2-files" if="isWindows">
+       <antcall target="-do-startup2-files"/>
+    </target>
+
+    <!-- Target to create .html & .jnlp files for apps used by startup2
+         This target requires some props to be set: applet.width, applet.height,
+         applet.name, applet.jar, applet.mainclass -->
+    <target name="-do-startup2-files" depends="init" >
+        <!-- There seems to be a problem with passing an Application reference
+             between targets.  If changes are made to AppRefID, be sure to also
+             mirror the changes in the rebuild-jar target. -->
+        <fx:application id="AppRefID"
+                        name="${applet.name}"
+                        mainClass="${applet.mainclass}">
+            <htmlParam name="sun_perflog_fx_launchtime" escape="false"
+                       value="launchTime+''" />
+        </fx:application>
+
+        <!-- Note: this target only runs if startup.rebuildjar is set -->
+        <antcall target="rebuild-jar">
+                 <reference refId="AppRefID" />
+        </antcall>
+
+        <fx:deploy
+            embedJNLP="true"
+            includeDT="true"
+            placeholderId="place"
+            width="${applet.width}" height="${applet.height}"
+            outdir="${basedir}/${dist.dir}"
+            outfile="${applet.mainclass}">
+            <info title="${applet.mainclass}" vendor="${application.vendor}"/>
+            
+            <template file="${jfx.root.dir}/build-src/startup2_template.html"
+                    tofile="${basedir}/${dist.dir}/${applet.mainclass}.html"/>
+                    
+            <fx:application refId="AppRefID"/>
+            <platform javafx="2.0+">
+               <property name="jnlp.fx.perf" value="false"/>
+            </platform>
+
+            <fx:resources>
+                <fx:fileset dir="${basedir}/${dist.dir}"
+                            includes="${applet.jar}"/>
+            </fx:resources>
+        </fx:deploy>
+
+        <!-- replace startup2 tags in generated .html -->
+        <replace file="${basedir}/${dist.dir}/${applet.mainclass}.html"
+                 token="@@MainClassName@@" value="${applet.mainclass}"/>
+    </target>
+
+    <target name="rebuild-jar" if="startup.rebuildjar" >
+        <!-- fx:application copied from the create-startup2-files target.
+             This can be removed if passing an application ref id via antcall
+             gets fixed -->             
+        <fx:application id="AppRefID"
+                        name="${applet.name}"
+                        mainClass="${applet.mainclass}">
+            <htmlParam name="sun_perflog_fx_launchtime" escape="false" value="launchTime+''" />
+        </fx:application>
+
+        <delete file="${dist.jar}" />
+        
+        <fx:jar destfile="${dist.jar}">
+            <fx:application refId="AppRefID"/>
+            <fileset dir="${build.classes.dir}"/>
+            <manifest>
+              <attribute name="Implementation-Vendor" value="${application.vendor}"/>
+              <attribute name="Implementation-Title" value="${application.title}"/>
+              <attribute name="Implementation-Version" value="1.0"/>
+            </manifest>
+        </fx:jar>        
+    </target>
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-sdk-rt.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-sdk-rt" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines targets to build a runtime for the SDK. The runtime combines
+        various runtime and SDK jars into a single jar and copies all native
+        libraries to a single location for ease of use in IDEs.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build.xml file only.
+
+    </description>
+
+    <fileset dir="${jfx.sdk.lib.dir}" id="jfxrt.jars.id">
+        <include name="**/*.jar"/>
+        <exclude name="**/shared/*.jar"/>
+        <exclude name="**/${jfx.sdk.dev.jar.name}"/>
+    </fileset>
+
+    <fileset dir="${jfx.sdk.lib.dir}" id="jfxrt.properties.id">
+        <include name="**/*.properties"/>
+    </fileset>
+
+    <fileset dir="${jfx.sdk.lib.dir}" id="jfxrt.nativelibs.id">
+        <include name="**/*.dll"/>
+        <include name="**/*.jnilib"/>
+        <include name="**/*.dylib"/>
+        <include name="**/*.so"/>
+        <include name="**/*.txt"/>
+    </fileset>
+
+    <condition property="is.jfxrt.respin.needed">
+        <or>
+            <!-- Always rebuild jfxrt for now, since the date check is
+                 incomplete and will cause sdk/rt to fail to be updated -->
+            <istrue value="true"/>
+            <not>
+                <available file="${jfx.sdk.rt.jar}"/>
+            </not>
+            <not>
+                <uptodate targetfile="${jfx.sdk.rt.jar}">
+                    <srcfiles refid="jfxrt.jars.id"/>
+                </uptodate>
+            </not>
+            <not>
+                <uptodate targetfile="${jfx.sdk.rt.jar}">
+                    <srcfiles refid="jfxrt.properties.id"/>
+                </uptodate>
+            </not>
+            <not>
+                <uptodate targetfile="${jfx.sdk.rt.jar}">
+                    <srcfiles refid="jfxrt.nativelibs.id"/>
+                </uptodate>
+            </not>
+        </or>
+    </condition>
+
+    <target name="sdk-rt" if="is.jfxrt.respin.needed">
+    	<!-- fail fast on Windows if some process has the jar or one of the DLLs open -->
+        <delete dir="${jfx.sdk.rt.dir}"/>
+        <mkdir dir="${jfx.sdk.rt.lib.dir}"/>
+        <mkdir dir="${jfx.sdk.rt.bin.dir}"/>
+
+        <jar destfile="${jfx.sdk.rt.jar}" duplicate="preserve" compress="false" index="true">
+            <zipgroupfileset refid="jfxrt.jars.id"/>
+            <fileset refid="jfxrt.properties.id"/>
+        </jar>
+
+        <copy todir="${jfx.sdk.rt.bin.dir}" flatten="true">
+            <fileset refid="jfxrt.nativelibs.id"/>
+        </copy>
+    </target>
+
+    <target name="sdk-rt-clean">
+        <delete dir="${jfx.sdk.rt.dir}"/>
+    </target>
+
+    <target name="sdk-dev">
+        <pathconvert property="jfx.sdk.dev.jar.contents" refid="jfxrt.jars.id" pathsep=" " dirsep="/">
+            <!-- remove directory from each entry in fileset -->
+            <regexpmapper from=".*[/\\](.*\.jar)" to="\1"/>
+        </pathconvert>
+        <jar destfile="${jfx.sdk.dev.jar}" compress="false">
+                <manifest>
+                        <attribute name="Class-Path" value="${jfx.sdk.dev.jar.contents}"/>
+                </manifest>
+        </jar>
+    </target>
+
+    <target name="sdk-dev-clean">
+        <delete file="${jfx.sdk.dev.jar}"/>
+    </target>
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-solaris-defs.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-solaris-defs" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines common properties and macrodefs that are specific to the
+        system being used and the various system installed tools on the
+        systems. Such as Visual Studio, GNU make, Mac XCode, C/C++ compilers,
+        etc.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build-defs.xml file.
+
+    </description>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Only certain repositories trigger a need for native compilation tools. -->
+    <condition property="jfx.build.needs.gcc.compiler">
+        <or>
+            <available file="${jfx.root.dir}/media" type="dir"/>
+            <available file="${jfx.root.dir}/rt-closed" type="dir"/>
+        </or>
+    </condition>
+
+    <condition property="jfx.build.needs.make.utility">
+        <or>
+            <available file="${jfx.root.dir}/media" type="dir"/>
+            <available file="${jfx.root.dir}/rt-closed" type="dir"/>
+        </or>
+    </condition>
+
+    <property name="gcc.utility" value="gcc"/>
+
+    <condition property="make.utility" value="/usr/bin/gmake">
+        <available file="/usr/bin/gmake" type="file"/>
+    </condition>
+    <condition property="make.utility" value="/usr/sfw/bin/gmake">
+        <available file="/usr/sfw/bin/gmake" type="file"/>
+    </condition>
+    <condition property="make.utility" value="/opt/sfw/bin/gmake">
+        <available file="/opt/sfw/bin/gmake" type="file"/>
+    </condition>
+    <condition property="make.utility" value="gnumake">
+        <not>
+            <isset property="make.utility"/>
+        </not>
+    </condition>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Macrodefs for system specific tools to be shared by everyone. -->
+
+    <macrodef name="do-gcc">
+        <!-- Does a GNU gcc compilation -->
+        <attribute name="dir"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <echo message="STARTING: DO-GCC dir @{dir}"/>
+            <echo message="cd @{dir} ; ${gcc.utility} @{options}"/>
+            <exec dir="@{dir}"
+                  executable="${gcc.utility}"
+                  failonerror="true">
+                <arg line="@{options}"/>
+            </exec>
+            <echo message="FINISHED: DO-GCC dir @{dir}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-make">
+        <!-- Does a Makefile build -->
+        <attribute name="dir"/>
+        <attribute name="target"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <echo message="STARTING: DO-MAKE dir @{dir}"/>
+            <echo message="cd @{dir} ; ${make.utility} @{target}"/>
+            <exec dir="@{dir}"
+                  executable="${make.utility}"
+                  failonerror="true">
+                <env key="JAVA_HOME"     value="${platform.home}"/>
+                <env key="JDK_HOME"      value="${platform.home}"/>
+                <arg line="@{options}"/>
+                <arg value="@{target}"/>
+            </exec>
+            <echo message="FINISHED: DO-MAKE dir @{dir}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <target name="needs-gcc"
+            if="jfx.build.needs.gcc.compiler"
+            unless="jfx.skip.platform.checks">
+        <do-gcc dir="." options="--version"/>
+    </target>
+
+    <target name="needs-make"
+            if="jfx.build.needs.make.utility"
+            unless="jfx.skip.platform.checks">
+        <do-make dir="." target="-version"/>
+    </target>
+
+    <target name="-init-platform-defs"
+            depends="needs-make,
+                     needs-gcc">
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-windows-defs.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-windows-defs" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines common properties and macrodefs that are specific to the
+        system being used and the various system installed tools on the
+        systems. Such as Visual Studio, GNU make, Mac XCode, C/C++ compilers,
+        etc.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build-defs.xml file.
+
+    </description>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+    <!-- Only certain repositories trigger a need for native compilation tools. -->
+    <condition property="jfx.build.needs.visual.studio">
+        <or>
+            <available file="${jfx.root.dir}/media" type="dir"/>
+            <available file="${jfx.root.dir}/rt-closed" type="dir"/>
+            <available file="${jfx.root.dir}/deploy" type="dir"/>
+        </or>
+    </condition>
+
+    <!-- No longer used -->
+    <condition property="jfx.build.needs.gplusplus.compiler">
+        <istrue value="false"/>
+    </condition>
+
+    <condition property="jfx.build.needs.make.utility">
+        <or>
+            <available file="${jfx.root.dir}/rt-closed" type="dir"/>
+        </or>
+    </condition>
+
+    <property name="vs.property.generator"
+              location="${jfx.root.build.src.dir}/genVSproperties.bat"/>
+    <condition property="run.vs.property.generator">
+        <and>
+            <available file="${vs.property.generator}" type="file"/>
+            <isset property="jfx.build.needs.visual.studio"/>
+        </and>
+    </condition>
+
+    <!-- Our properties for the Visual Studio env variable values. -->
+    <property name="vs.properties"
+              location="${jfx.build.dir}/vs.properties"/>
+
+    <!-- Location of windows cmd utility. -->
+    <property name="cmd.utility" location="${systemroot.path}/System32/cmd.exe"/>
+    <!-- Macrodefs for system specific tools to be shared by everyone. -->
+
+    <macrodef name="get-cygwin-path">
+        <sequential>
+            <exec executable="cygpath" outputproperty="cygwin.path" failonerror="true">
+                <arg value="-m"/>
+                <arg value="-s"/>
+                <arg value="/"/>
+            </exec>
+            <property name="gplusplus3.utility" 
+                      location="${cygwin.path}/bin/g++-3.exe"/>
+            <condition property="gplusplus.utility" 
+                       value="${gplusplus3.utility}"
+                       else="${cygwin.path}/bin/g++.exe">
+                <available file="${gplusplus3.utility}" type="file"/>
+            </condition>
+            <property name="make.utility"      
+                      location="${cygwin.path}/bin/make.exe"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-cl">
+        <!-- Does a Visual Studio compilation -->
+        <attribute name="dir"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <property file="${vs.properties}"/>
+            <property name="cl.utility" location="${windows.vs.MSVCDIR}/bin/cl.exe"/>
+            <echo message="STARTING: cd @{dir} ; ${cmd.utility} /A /C ${cl.utility} @{options}"/>
+            <exec dir="@{dir}"
+                  executable="${cmd.utility}"
+                  failonerror="true">
+                <env key="VCINSTALLDIR"  value="${windows.vs.VCINSTALLDIR}"/>
+                <env key="VSINSTALLDIR"  value="${windows.vs.VSINSTALLDIR}"/>
+                <env key="DEVENVDIR"     value="${windows.vs.DEVENVDIR}"/>
+                <env key="MSVCDIR"       value="${windows.vs.MSVCDIR}"/>
+                <env key="INCLUDE"       value="${windows.vs.INCLUDE}"/>
+                <env key="LIB"           value="${windows.vs.LIB}"/>
+                <env key="LIBPATH"       value="${windows.vs.LIBPATH}"/>
+                <env key="PATH"          value="${platform.home}/bin;${windows.vs.PATH}"/>
+                <env key="CONF"          value="${build.conf}"/>
+                <env key="JAVA_HOME"     value="${platform.home}"/>
+                <env key="JDK_HOME"      value="${platform.home}"/>
+                <env key="WMSDK_DIR"     value="${wmsdk.path}"/>
+                <env key="DXSDK_DIR"     value="${dxsdk.path}"/>
+                <arg value="/A"/>
+                <arg value="/C"/>
+                <arg value="${cl.utility}"/>
+                <arg line="@{options}"/>
+            </exec>
+            <echo message="FINISHED: cd @{dir} ; ${cmd.utility} /A /C ${cl.utility} @{options}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-gplusplus">
+        <attribute name="dir"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <get-cygwin-path/>
+            <echo message="STARTING: DO-GCC dir @{dir}"/>
+            <echo message="cd @{dir} ; ${cmd.utility} /A /C ${gplusplus.utility} @{options}"/>
+            <exec dir="@{dir}"
+                  executable="${cmd.utility}"
+                  failonerror="true">
+                <arg value="/A"/>
+                <arg value="/C"/>
+                <arg value="${gplusplus.utility}"/>
+                <arg line="@{options}"/>
+            </exec>
+            <echo message="FINISHED: DO-GCC dir @{dir}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-make">
+        <!-- Does a Makefile build -->
+        <attribute name="dir"/>
+        <attribute name="target"/>
+        <attribute name="options" default=""/>
+        <sequential>
+            <get-cygwin-path/>
+            <property file="${vs.properties}"/>
+            <echo message="STARTING: DO-MAKE dir @{dir}"/>
+            <echo message="cd @{dir} ; ${cmd.utility} /A /C ${make.utility} @{options} @{target}"/>
+            <exec dir="@{dir}"
+                  executable="${cmd.utility}"
+                  failonerror="true">
+                <env key="VCINSTALLDIR"  value="${windows.vs.VCINSTALLDIR}"/>
+                <env key="VSINSTALLDIR"  value="${windows.vs.VSINSTALLDIR}"/>
+                <env key="DEVENVDIR"     value="${windows.vs.DEVENVDIR}"/>
+                <env key="MSVCDIR"       value="${windows.vs.MSVCDIR}"/>
+                <env key="INCLUDE"       value="${windows.vs.INCLUDE}"/>
+                <env key="LIB"           value="${windows.vs.LIB}"/>
+                <env key="LIBPATH"       value="${windows.vs.LIBPATH}"/>
+                <!-- <env key="PATH"          value="${windows.vs.PATH}"/> -->
+                <env key="CONF"          value="${build.conf}"/>
+                <env key="JAVA_HOME"     value="${platform.home}"/>
+                <env key="JDK_HOME"      value="${platform.home}"/>
+                <env key="WMSDK_DIR"     value="${wmsdk.path}"/>
+                <env key="DXSDK_DIR"     value="${dxsdk.path}"/>
+                <arg value="/A"/>
+                <arg value="/C"/>
+                <arg value="${make.utility}"/>
+                <arg line="@{options}"/>
+                <arg value="@{target}"/>
+            </exec>
+            <echo message="FINISHED: DO-MAKE dir @{dir}"/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="do-vs-build">
+        <!-- Does a Visual Studio project build -->
+        <attribute name="proj-dir"/>
+        <attribute name="build-type"/> <!-- "release" or "debug" -->
+        <attribute name="project"/>
+        <sequential>
+            <property file="${vs.properties}"/>
+            <property name="devenv.utility"  location="${windows.vs.DEVENVCMD}"/>
+            <echo message="STARTING: ${devenv.utility} @{proj-dir}"/>
+            <echo message="${devenv.utility} /build @{build-type} @{project}"/>
+            <exec executable="${devenv.utility}" failonerror="true"
+                  dir="@{proj-dir}">
+                <env key="VCINSTALLDIR"  value="${windows.vs.VCINSTALLDIR}"/>
+                <env key="VSINSTALLDIR"  value="${windows.vs.VSINSTALLDIR}"/>
+                <env key="DEVENVDIR"     value="${windows.vs.DEVENVDIR}"/>
+                <env key="MSVCDIR"       value="${windows.vs.MSVCDIR}"/>
+                <env key="INCLUDE"       value="${windows.vs.INCLUDE}"/>
+                <env key="LIB"           value="${windows.vs.LIB}"/>
+                <env key="LIBPATH"       value="${windows.vs.LIBPATH}"/>
+                <env key="PATH"          value="${platform.home}/bin;${windows.vs.PATH}"/>
+                <env key="CONF"          value="${build.conf}"/>
+                <env key="JAVA_HOME"     value="${platform.home}"/>
+                <env key="JDK_HOME"      value="${platform.home}"/>
+                <env key="WMSDK_DIR"     value="${wmsdk.path}"/>
+                <env key="DXSDK_DIR"     value="${dxsdk.path}"/>
+                <arg value="/build"/>
+                <arg value="@{build-type}"/>
+                <arg value="@{project}"/>
+            </exec>
+            <echo message="FINISHED: proj-dir @{proj-dir}"/>
+        </sequential>
+    </macrodef>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+    <target name="needs-cl"
+            if="jfx.build.needs.visual.studio"
+            unless="jfx.skip.platform.checks">
+        <property file="${vs.properties}"/>
+        <property name="cl.utility" location="${windows.vs.MSVCDIR}/bin/cl.exe"/>
+        <echo message="Using ${cl.utility}."/>
+        <do-file-check file="${cl.utility}"/>
+        <!-- VS2008 fails on the following call. Disable. -->
+        <!-- <do-cl dir="."/> -->
+    </target>
+
+    <target name="needs-devenv"
+            if="jfx.build.needs.visual.studio"
+            unless="jfx.skip.platform.checks">
+        <property file="${vs.properties}"/>
+        <property name="devenv.utility" location="${windows.vs.DEVENVCMD}"/>
+        <echo message="Using ${devenv.utility}."/>
+        <do-file-check file="${devenv.utility}"/>
+    </target>
+
+    <target name="needs-gplusplus"
+            if="jfx.build.needs.gplusplus.compiler"
+            unless="jfx.skip.platform.checks">
+        <get-cygwin-path/>
+        <echo message="Using ${gplusplus.utility}."/>
+        <do-file-check file="${gplusplus.utility}"/>
+    </target>
+
+    <target name="needs-make"
+            if="jfx.build.needs.make.utility"
+            unless="jfx.skip.platform.checks">
+        <get-cygwin-path/>
+        <echo message="Using ${make.utility}."/>
+        <do-file-check file="${make.utility}"/>
+        <do-make dir="." target="-version"/>
+    </target>
+
+    <!-- This target must be executed first to get windows.vs.* properties. -->
+    <target name="needs-vs-properties"
+            if="run.vs.property.generator">
+        <echo message="Using ${vs.property.generator} to get VS properties."/>
+        <condition property="vcvarsall.arch" value="amd64" else="x86">
+            <equals arg1="${native.build.arch}" arg2="x64"/>
+        </condition>
+        <condition property="setenv.arch" value="/x64" else="/x86">
+            <equals arg1="${native.build.arch}" arg2="x64"/>
+        </condition>
+        <condition property="build.conf" value="Debug" else="Release">
+            <equals arg1="${build.debug}" arg2="true"/>
+        </condition>
+        <mkdir dir="${jfx.build.dir}"/>
+        <exec dir="." executable="cmd" output="${vs.properties}">
+            <env key="WINSDKPATH" value="${winsdk.path}"/>
+            <env key="CONF" value="/${build.conf}"/>
+            <env key="VCARCH" value="${vcvarsall.arch}"/>
+            <env key="SDKARCH" value="${setenv.arch}"/>
+            <arg value="/q"/>
+            <arg value="/c"/>
+            <arg value="${vs.property.generator}"/>
+        </exec>
+        <replace file="${vs.properties}" token="\" value="/"/>
+        <replace file="${vs.properties}" token="/@@ENDOFLINE@@" value=""/>
+        <replace file="${vs.properties}" token="@@ENDOFLINE@@" value=""/>
+        <replace file="${vs.properties}" token="//" value="/"/>
+        <property file="${vs.properties}"/>
+        <property name="devenv.utility" location="${windows.vs.DEVENVCMD}"/>
+        <property name="cl.utility" location="${windows.vs.MSVCDIR}/bin/cl.exe"/>
+    </target>
+
+    <target name="-init-platform-defs"
+            depends="
+                needs-vs-properties,
+                needs-gplusplus,
+                needs-make,
+                needs-devenv,
+                needs-cl
+                ">
+        <do-file-check file="${cmd.utility}"/>
+    </target>
+
+    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/build-zips.xml	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-zips" basedir=".">
+
+<!--
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+-->
+
+    <description>
+
+        Defines targets to create developer zip bundles.
+
+        *** Sub-repositories should NOT import this file. ***
+
+        This file is imported by the build.xml file only.
+
+    </description>
+
+    <!-- The files to put into zip bundles. -->
+    <fileset dir="${jfx.sdk.dir}"
+             includes="**"
+             id="jfx.sdk.all.files"/>
+    <fileset dir="${jfx.public.sdk.dir}"
+             includes="**"
+             id="jfx.public.sdk.all.files"/>
+    <fileset dir="${jfx.docs.dir}"
+             includes="**"
+             id="jfx.docs.all.files"/>
+    <fileset dir="${jfx.xml.docs.dir}"
+             includes="**"
+             id="jfx.xml.docs.all.files"/>
+    <fileset dir="${jfx.apps.dir}"
+             includes="**"
+             id="jfx.apps.all.files"/>
+    <fileset dir="${jfx.public.samples.dir}/ga-samples"
+             includes="**"
+             id="jfx.public.samples.all.files"/>
+    <fileset dir="${jfx.perf.dir}"
+             includes="**"
+             id="jfx.perf.all.files"/>
+    <fileset dir="${jfx.deployed.dir}"
+             includes="**"
+             id="jfx.deployed.all.files"/>
+    <fileset dir="${jfx.rtdeployed.dir}"
+             includes="**"
+             id="jfx.rtdeployed.all.files"/>
+    <fileset dir="${import.dir}"
+             includes="**"
+             id="jfx.import.all.files"/>
+    <fileset dir="${jfx.jar_import.dir}"
+             includes="**"
+             id="jfx.jar_import.all.files"/>
+
+    <!-- Target to create destination directory for zip bundles. -->
+    <target name="-create-bundles-dir">
+        <mkdir dir="${jfx.bundles.release.dir}"/>
+    </target>
+
+    <!-- The sdk zip bundle -->
+    <target name="check-sdk-zip">
+        <uptodate property="jfx.sdk.is.unchanged"
+                  targetfile="${jfx.sdk.zip}">
+            <srcfiles refid="jfx.sdk.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-sdk"
+            unless="jfx.sdk.is.unchanged"
+            depends="-create-bundles-dir, check-sdk-zip">
+        <zip file="${jfx.sdk.zip}" >
+            <fileset refid="jfx.sdk.all.files" />
+        </zip>
+    </target>
+
+    <!-- The public sdk zip bundle -->
+    <target name="check-public-sdk-zip">
+        <uptodate property="jfx.public.sdk.is.unchanged"
+                  targetfile="${jfx.public.sdk.zip}">
+            <srcfiles refid="jfx.public.sdk.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-public-sdk"
+            unless="jfx.public.sdk.is.unchanged"
+            depends="-create-bundles-dir, check-public-sdk-zip">
+        <zip file="${jfx.public.sdk.zip}" >
+            <zipfileset refid="jfx.public.sdk.all.files"
+                        prefix="${jfx.install.dir}"/>
+        </zip>
+    </target>
+
+    <!-- The xml docs zip bundle -->
+    <target name="check-xml-docs-zip">
+        <uptodate property="jfx.xml.docs.is.unchanged"
+                  targetfile="${jfx.xml.docs.zip}">
+            <srcfiles refid="jfx.xml.docs.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-xml-docs"
+            unless="jfx.xml.docs.is.unchanged"
+            depends="-create-bundles-dir, check-xml-docs-zip">
+        <zip file="${jfx.xml.docs.zip}" >
+            <fileset refid="jfx.xml.docs.all.files" />
+        </zip>
+    </target>
+
+    <!-- The docs zip bundle -->
+    <target name="check-docs-zip">
+        <uptodate property="jfx.docs.is.unchanged"
+                  targetfile="${jfx.docs.zip}">
+            <srcfiles refid="jfx.docs.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-docs"
+            unless="jfx.docs.is.unchanged"
+            depends="-create-bundles-dir, check-docs-zip">
+        <zip file="${jfx.docs.zip}" >
+            <fileset refid="jfx.docs.all.files" />
+        </zip>
+    </target>
+
+    <!-- The apps zip bundle -->
+    <target name="check-apps-zip">
+        <uptodate property="jfx.apps.is.unchanged"
+                  targetfile="${jfx.apps.zip}">
+            <srcfiles refid="jfx.apps.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-apps"
+            unless="jfx.apps.is.unchanged"
+            depends="-create-bundles-dir, check-apps-zip">
+        <zip file="${jfx.apps.zip}" >
+            <fileset refid="jfx.apps.all.files" />
+        </zip>
+    </target>
+
+    <!-- The public samples zip bundle -->
+    <target name="check-public-samples-zip">
+        <uptodate property="jfx.public.samples.is.unchanged"
+                  targetfile="${jfx.public.samples.zip}">
+            <srcfiles refid="jfx.public.samples.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-public-samples"
+            unless="jfx.public.samples.is.unchanged"
+            depends="-create-bundles-dir, check-public-samples-zip">
+        <zip file="${jfx.public.samples.zip}" >
+            <zipfileset refid="jfx.public.samples.all.files"
+                        prefix="${jfx.samples.install.dir}"/>
+        </zip>
+    </target>
+
+    <!-- The perf zip bundle -->
+    <target name="check-perf-zip">
+        <uptodate property="jfx.perf.is.unchanged"
+                  targetfile="${jfx.perf.zip}">
+            <srcfiles refid="jfx.perf.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-perf"
+            unless="jfx.perf.is.unchanged"
+            depends="-create-bundles-dir, check-perf-zip">
+        <zip file="${jfx.perf.zip}" >
+            <fileset refid="jfx.perf.all.files" />
+        </zip>
+    </target>
+
+    <!-- The deployed zip bundle -->
+    <target name="check-deployed-zip">
+        <uptodate property="jfx.deployed.is.unchanged"
+                  targetfile="${jfx.deployed.zip}">
+            <srcfiles refid="jfx.deployed.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-deployed"
+            unless="jfx.deployed.is.unchanged"
+            depends="-create-bundles-dir, check-deployed-zip">
+        <zip file="${jfx.deployed.zip}" >
+            <fileset refid="jfx.deployed.all.files" />
+        </zip>
+    </target>
+
+    <!-- The rt-deployed zip bundle -->
+    <target name="check-rtdeployed-zip">
+        <uptodate property="jfx.rtdeployed.is.unchanged"
+                  targetfile="${jfx.rtdeployed.zip}">
+            <srcfiles refid="jfx.rtdeployed.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-rtdeployed"
+            unless="jfx.rtdeployed.is.unchanged"
+            depends="-create-bundles-dir, check-rtdeployed-zip">
+        <zip file="${jfx.rtdeployed.zip}" >
+            <fileset refid="jfx.rtdeployed.all.files" />
+        </zip>
+    </target>
+
+    <!-- The jar_import zip bundle -->
+    <target name="check-jar_import-zip">
+        <uptodate property="jfx.jar_import.is.unchanged"
+                  targetfile="${jfx.jar_import.zip}">
+            <srcfiles refid="jfx.jar_import.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-jar_import"
+            unless="jfx.jar_import.is.unchanged"
+            depends="-create-bundles-dir, check-jar_import-zip">
+        <zip file="${jfx.jar_import.zip}" >
+            <fileset refid="jfx.jar_import.all.files" />
+        </zip>
+    </target>
+
+    <!-- The import zip bundle -->
+    <target name="check-import-zip">
+        <uptodate property="jfx.import.is.unchanged"
+                  targetfile="${jfx.import.zip}">
+            <srcfiles refid="jfx.import.all.files"/>
+        </uptodate>
+    </target>
+    <target name="zip-import"
+            unless="jfx.import.is.unchanged"
+            depends="-create-bundles-dir,check-import-zip">
+        <zip file="${jfx.import.zip}" >
+            <fileset refid="jfx.import.all.files" />
+        </zip>
+    </target>
+
+    <!-- Create all zip bundles. -->
+<!-- TODO: re-enable these as needed
+    <target name="all-zips"
+            depends="zip-sdk,
+                     zip-public-sdk,
+                     zip-xml-docs,
+                     zip-docs,
+                     zip-apps,
+                     zip-public-samples,
+                     zip-perf,
+                     zip-deployed,
+                     zip-rtdeployed,
+                     zip-jar_import,
+                     zip-import"/>
+-->
+
+    <target name="all-zips"
+            depends="zip-sdk,
+                     zip-public-sdk,
+                     zip-apps,
+                     zip-public-samples,
+                     zip-jar_import,
+                     zip-import"/>
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/genVSproperties.bat	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,65 @@
+
+REM Windows bat file that runs vcvars32.bat for Visual Studio 2003
+REM   and echos out a property file with the values of the environment
+REM   variables we want, e.g. PATH, INCLUDE, LIB, and LIBPATH.
+
+REM Clean out the current settings
+set INCLUDE=
+set LIB=
+set LIBPATH=
+
+REM Run the vsvars32.bat file, sending it's output to neverland.
+set VSVER=100
+set VSVARSDIR=%VS100COMNTOOLS%
+if "%VSVARSDIR%"=="" set VSVER=71
+if "%VSVARSDIR%"=="" set VSVARSDIR=%VS71COMNTOOLS%
+if "%VSVARSDIR%"=="" set VSVER=80
+if "%VSVARSDIR%"=="" set VSVARSDIR=%VS80COMNTOOLS%
+if "%VSVARSDIR%"=="" set VSVER=90
+if "%VSVARSDIR%"=="" set VSVARSDIR=%VS90COMNTOOLS%
+
+REM We shouldn't depend on VSVARS32 as it's 32-bit only.
+REM   However, this var is still used somewhere in FX (e.g.
+REM   to build media), so we set it here.
+
+set VSVARS32=%VSVARSDIR%\vsvars32.bat
+call "%VSVARS32%" > NUL
+
+set VCVARSALL=%VCINSTALLDIR%\vcvarsall.bat
+call "%VCVARSALL%" %VCARCH% > NUL
+
+REM Some vars are reset by vcvarsall.bat, so save them here.
+set TEMPDEVENVDIR=%DEVENVDIR%
+set TEMPVCINSTALLDIR=%VCINSTALLDIR%
+set TEMPVSINSTALLDIR=%VSINSTALLDIR%
+if NOT "%WINSDKPATH%"=="" call "%WINSDKPATH%\Bin\SetEnv.Cmd" %SDKARCH% %CONF% > NUL
+set DEVENVDIR=%TEMPDEVENVDIR%
+set VSINSTALLDIR=%TEMPVSINSTALLDIR%
+set VCINSTALLDIR=%TEMPVCINSTALLDIR%
+
+REM Create some vars that are not set with VS Express 2008
+if "%MSVCDIR%"=="" set MSVCDIR=%VCINSTALLDIR%
+REM Try using exe, com might be hanging in ssh environment?
+REM     set DEVENVCMD=%DEVENVDIR%\devenv.exe
+set DEVENVCMD=%DEVENVDIR%\devenv.com
+
+REM Adjust for lack of devenv in express editions.  This needs more work.
+REM VCExpress is the correct executable, but cmd line is different...
+if not exist "%DEVENVCMD%" set DEVENVCMD=%DEVENVDIR%\VCExpress.exe
+
+REM Echo out a properties file
+echo ############################################################
+echo # DO NOT EDIT: This is a generated file.
+echo windows.vs.vsvars32.bat=%VSVARS32%@@ENDOFLINE@@
+echo windows.vs.DEVENVDIR=%DEVENVDIR%@@ENDOFLINE@@
+echo windows.vs.DEVENVCMD=%DEVENVCMD%@@ENDOFLINE@@
+echo windows.vs.VCINSTALLDIR=%VCINSTALLDIR%@@ENDOFLINE@@
+echo windows.vs.VSINSTALLDIR=%VSINSTALLDIR%@@ENDOFLINE@@
+echo windows.vs.MSVCDIR=%MSVCDIR%@@ENDOFLINE@@
+echo windows.vs.INCLUDE=%INCLUDE%@@ENDOFLINE@@
+echo windows.vs.LIB=%LIB%@@ENDOFLINE@@
+echo windows.vs.LIBPATH=%LIBPATH%@@ENDOFLINE@@
+echo windows.vs.PATH=%PATH%@@ENDOFLINE@@
+echo windows.vs.VER=%VSVER%@@ENDOFLINE@@
+echo ############################################################
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-src/startup2_template.html	Tue Dec 06 09:28:31 2011 -0800
@@ -0,0 +1,26 @@
+<html><head>
+  <SCRIPT src="#DT.SCRIPT.URL#"></SCRIPT>
+
+<!-- To use this template for your app:
+   - make sure applet placeholder (div id) match
+   - deploy app with -Djnlp.fx.perf=true jvm argument
+   - (optionally) add callbacks calling perfLog()
+-->
+<script>    
+  function embedAplication() {
+    var now = new Date();
+    var launchTime = now.getTime();
+    #DT.EMBED.CODE.DYNAMIC#
+  }
+  <!-- Embed FX application into web page once page is loaded -->
+  dtjava.addOnloadCallback(embedAplication);
+</script>
+  <title>applet_fx2_jpi - @@MainClassName@@ - Java FX 2.0 Plugin Startup benchmark</title>
+</head>
+<body>
+  <CENTER>
+    <p><B>applet_fx2_jpi - @@MainClassName@@ - Java FX 2.0 Plugin Startup Benchmark</B></p>
+  </CENTER>
+<!-- Applet will be inserted here -->
+<div id='place'></div>
+</body></html>