re-write for less variables
diff --git a/releng.control/checkout.xml b/releng.control/checkout.xml
index 9705f3e..bf1f296 100644
--- a/releng.control/checkout.xml
+++ b/releng.control/checkout.xml
@@ -1,81 +1,151 @@
-<project default="all">
+<project name="checkout" default="checkout" basedir=".">
 
-	<!-- requires following to be passed in
-		buildType
-		build.home (env.BUILD_HOME)
-		codir
-		mapVersionTag
-	 -->
+    <!-- = = = standard properties pattern = = = -->
+    <!-- 
+    	Note to be cross-platform, "environment variables" are only appropriate for 
+        some variables, e.g. ones we set, since properties are case sensitive, even if 
+        the environment variables on your operating system are not, e.g. it will 
+        be ${env.Path} not ${env.PATH} on Windows -->
+    <property environment="env" />
+     
+    <!-- 
+    	Let users override standard properties, if desired.
+    	If directory, file, or some properties do not exist,  
+    	then standard properties will be used.
+     -->
+    <property file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />
 
-	<property file="checkout.properties" />
+    <!-- load standard properties for production environment -->
+    <property file="${env.STANDARD_PROPERTIES_DIR}/${ant.project.name}.properties" />
+    <!-- = = = end standard properties pattern = = = -->
+
+
+    <property name="codir"
+              value="${env.BUILD_HOME}/build-node/checkout/${checkoutprojectname}" />
 
 
 
-	<target name="all">
-		<antcall target="${buildType}" />
-	</target>
+	<echo message="checkoutprojectname: ${checkoutprojectname}" />
+    <target name="checkout" if="${checkoutprojectname}">
+        <!-- we always check and init the builder -->
+        <antcall target="getwtpbuilder" />
+        <!-- and projects can do more if needed. -->
+        <antcall target="${checkoutprojectname}" />
+    </target>
 
-	<target name="N">
+    <target name="wtp-R2.0-N">
 
-		<antcall target="initBuilders"/>
-		<cvs quiet="true" cvsRoot="${mapCvsRoot}" package="${wst}" dest="${codir}" />
-		<cvs quiet="true" cvsRoot="${mapCvsRoot}" package="${jst}" dest="${codir}" />
-		<antcall target="getwtpbuilder" />
+        <!-- 
+        	do not need, since we do nightly builds "on demand" only
+            <cvs quiet="true" cvsRoot="${mapCvsRoot}" package="${wst}" dest="${codir}" />
+            <cvs quiet="true" cvsRoot="${mapCvsRoot}" package="${jst}" dest="${codir}" />
+        -->
 
-	</target>
+    </target>
 
-	<target name="S">
-		<antcall target="initBuilders"/>
-		<antcall target="getwtpbuilder" />
-	</target>
+    <target name="wtp-R2.0-S">
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="releng-jsf"
+             dest="${codir}"
+             tag="HEAD" />
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="releng.dali"
+             dest="${codir}"
+             tag="HEAD" />
+    </target>
 
-	<target name="I">
-		<antcall target="initBuilders"/>
-		<antcall target="getwtpbuilder" />
-	</target>
+    <target name="wtp-R2.0-I">
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="releng-jsf"
+             dest="${codir}"
+             tag="HEAD" />
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="releng.dali"
+             dest="${codir}"
+             tag="HEAD" />
+    </target>
 
-	<target name="M">
-		<antcall target="initBuilders"/>
-		<antcall target="getwtpbuilder" />
-	</target>
-    
-	<target name="P">
-		<antcall target="initBuilders"/>
-		<antcall target="getwtpbuilder" />
-	</target>
-	<target name="R">
-		<antcall target="initBuilders"/>
-		<antcall target="getwtpbuilder" />
-	</target>
-	
-	
+    <target name="wtp-R2.0-R">
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="releng-jsf"
+             dest="${codir}"
+             tag="HEAD" />
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="releng.dali"
+             dest="${codir}"
+             tag="HEAD" />
+    </target>
+
+    <target name="wtp-R1.5-M">
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="${releng}"
+             dest="${codir}"
+             tag="R1_5_maintenance" />
+    </target>
+
+    <target name="wtp-patches-P">
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="${releng}"
+             dest="${codir}"
+             tag="R1_5_maintenance_patches" />
+    </target>
+
+    <target name="wtp-thirdparty-R2.0-T">
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="releng-thirdparty"
+             dest="${codir}"
+             tag="HEAD" />
+    </target>
 
 
-	<target name="getwtpbuilder" depends="check.clean" if="doClean">
-		<property file="${codir}/releng/maps/build.cfg" />
-		<delete dir="${codir}/releng.wtpbuilder" failonerror="false" />
-		<echo message="Version tag for ${releng.wtpbuilder} is: ${wtpBuilderVersion}" />
-		<cvs quiet="true" cvsRoot="${mapCvsRoot}" package="${releng.wtpbuilder}" dest="${codir}" tag="${wtpBuilderVersion}" />
-
-	</target>
 
 
-	<target name="check.clean">
-		<condition property="doClean">
-			<equals arg1="${checkout.wtpbuilder.clean}" arg2="true" />
-		</condition>
-	</target>
+    <!-- 
+        The order of execution of these three worker targets
+        is critical, check.clean, initBuilders, and 
+        then getwtpbuilder.
+    -->
+    <target name="getwtpbuilder"
+            depends="check.clean,initBuilders"
+            if="doClean">
+        <!-- This is a special property file, that contains (only) the 
+        value of wtpBuilderVersion. Then, that version of the builder 
+        is fetched to control the rest of the build -->
+        <property file="${codir}/${releng}/maps/build.cfg" />
+        <delete dir="${codir}/releng.wtpbuilder"
+                failonerror="false" />
+        <echo message="Version tag for ${releng.builder} is: ${wtpBuilderVersion}" />
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="${releng.builder}"
+             dest="${codir}"
+             tag="${wtpBuilderVersion}" />
+    </target>
 
-	<target name="initBuilders">
-		<echo message="Version tag for ${releng}: ${mapVersionTag}" />
-		<cvs quiet="true" cvsRoot="${mapCvsRoot}" package="${releng}" dest="${codir}" tag="${mapVersionTag}" />
+    <target name="check.clean">
+        <condition property="doClean">
+            <equals arg1="${checkout.wtpbuilder.clean}"
+                    arg2="true" />
+        </condition>
+    </target>
 
-<!--		<delete dir="${codir}/releng.control/workspace" failonerror="false" /> -->
-		<!-- issue, we should probably not always use 'head' ... perhaps eliminate altogether 
-		     and just check out when ever server is (re) started? -->
-<!--		<cvs quiet="true" cvsRoot="${mapCvsRoot}" package="${releng.control}" dest="${codir}" tag="HEAD" />
--->
-	</target>
+    <target name="initBuilders" if="doClean">
+        <echo message="Version tag for ${releng}: ${mapVersionTag}" />
+        <cvs quiet="true"
+             cvsRoot="${mapCvsRoot}"
+             package="${releng}"
+             dest="${codir}"
+             tag="${mapVersionTag}" />
+    </target>
 
 
 </project>