diff --git a/releng.wtpbuilder/scripts/build/buildutilitiesp2.xml b/releng.wtpbuilder/scripts/build/buildutilitiesp2.xml
index f56186575d6403fc3ed746f2b7d66c037de010e0..4cbdf358beb1fd36c7b97143b1f06960a0005d96 100644
--- a/releng.wtpbuilder/scripts/build/buildutilitiesp2.xml
+++ b/releng.wtpbuilder/scripts/build/buildutilitiesp2.xml
@@ -4,70 +4,7 @@
     default="nodefault"
     basedir=".">
 
-    <!-- = = = 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"/>
-
-    <!-- = = = end standard properties pattern = = = -->
 
-
-    <!-- if not otherwise set, use these default properties -->
-    <property
-        name="debugOptimization"
-        value="false"/>
-    <!--
-        We should not always normalize ("-repack") jars by default,
-        since in production we sign the jars (which does the -repack for
-        us) and not in production we don't really care so why spend the
-        extra time. For jars which are not supposed to be normalized,
-        such as pre-existing jars, they need to be added to the
-        pack.properties file (see the updatePackProperties task). Note:
-        signing does the -repack when we sign. This can be over-ridden
-        by the caller setting normalize to true, but there are know
-        known cases where we want to normalize (and eventually pack) the
-        jar files but not sign them.
-    -->
-    <property
-        name="normalizeJarFiles"
-        value="false"/>
-    <!--
-        we'll currently pack jar files, just as part of "debugging" to
-        help sanity check all is working as expected. Eventually we may
-        want to provide some service there jar files in the bundles
-        directory are packed ... but, there's no known use-case for this
-        so far
-    -->
-    <property
-        name="packJarFiles"
-        value="false"/>
-    <!--
-        Let tmp site be global. Note: we use this odd
-        "tmpsite-archiveName-temp" to make sure unique directories,
-        since in some cases these directories can not be deleted from
-        ant, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=142926,
-        and since directory names ending in .zip are misinterpreted by
-        jarProcessor, see
-        https://bugs.eclipse.org/bugs/show_bug.cgi?id=143385 But, its
-        handy to do as unique directories anyway, since if a larger
-        process calls this mulitiple times, on different zips, and if
-        debugging is turnned on, then all the tmpsite directories are
-        left on disk for post-build inspection.
-    -->
-    <property
-        name="tmpsite"
-        value="${buildDirectory}/tmpsite-${archiveName}-temp"/>
     <target
         name="conditionAndSignJars"
         depends="init"
@@ -78,7 +15,9 @@
             p2.build.repo, but update content and artifacts files remove
             temp file
         -->
-        <echo level="debug" message="p2.build.repo: ${p2.build.repo}"/>
+        <echo
+            level="debug"
+            message="p2.build.repo: ${p2.build.repo}"/>
         <zip destfile="${buildDirectory}/${buildLabel}/temp-${buildLabel}-${component}.zip">
             <zipfileset
                 dir="${buildDirectory}/${buildLabel}/buildrepository/${component}/"
@@ -91,7 +30,9 @@
             comment out the following delete statement, when debugging,
             to see original zip files, before updatePackProperties ran
         -->
-        <delete quiet="true" file="${buildDirectory}/${buildLabel}/temp-${buildLabel}-${component}.zip.bak"/>
+        <delete
+            quiet="true"
+            file="${buildDirectory}/${buildLabel}/temp-${buildLabel}-${component}.zip.bak"/>
         <!--
             ==================================================================================
             sign the jars in archive file
@@ -121,7 +62,9 @@
             remove our temp zip file. Can comment out the delete
             statement, when testing or debugging.
         -->
-        <delete quiet="true" file="${buildDirectory}/${buildLabel}/temp-${buildLabel}-${component}.zip"/>
+        <delete
+            quiet="true"
+            file="${buildDirectory}/${buildLabel}/temp-${buildLabel}-${component}.zip"/>
     </target>
     <target
         name="finishPackages"
@@ -177,7 +120,8 @@
     -->
     <target
         name="init"
-        depends="check.sign">
+        depends="standardInit,check.sign"
+        unless="buildutilities.initialized">
         <condition
             property="verboseIfDebug"
             value="-verbose"
@@ -246,13 +190,102 @@
         </condition>
 
         <!-- echo important values, so it's documneted in build logs -->
-        <echo level="debug"  message="doPack: ${doPack}"/>
-        <echo level="debug" message="packJarFiles: ${packJarFiles}"/>
-        <echo level="debug" message="normalizeJarFiles: ${normalizeJarFiles}"/>
-        <echo level="debug" message="doSign: ${doSign}"/>
-        <echo level="debug" message="doNormalize: ${doNormalize}"/>
+        <echo
+            level="debug"
+            message="doPack: ${doPack}"/>
+        <echo
+            level="debug"
+            message="packJarFiles: ${packJarFiles}"/>
+        <echo
+            level="debug"
+            message="normalizeJarFiles: ${normalizeJarFiles}"/>
+        <echo
+            level="debug"
+            message="doNormalize: ${doNormalize}"/>
+        <property
+            name="buildutilities.initialized"
+            value="true"/>
+
+    </target>
+
+
+    <target
+        name="standardInit"
+        unless="standardInitialized">
+    
+    <!-- = = = 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"/>
+
+     <!-- = = = end standard properties pattern = = = -->
+
+
+     <!-- if not otherwise set, use these default properties -->
+        <property
+            name="debugOptimization"
+            value="false"/>
+     <!--
+         We should not always normalize ("-repack") jars by default,
+         since in production we sign the jars (which does the -repack for
+         us) and not in production we don't really care so why spend the
+         extra time. For jars which are not supposed to be normalized,
+         such as pre-existing jars, they need to be added to the
+         pack.properties file (see the updatePackProperties task). Note:
+         signing does the -repack when we sign. This can be over-ridden
+         by the caller setting normalize to true, but there are know
+         known cases where we want to normalize (and eventually pack) the
+         jar files but not sign them.
+     -->
+        <property
+            name="normalizeJarFiles"
+            value="false"/>
+     <!--
+         we'll currently pack jar files, just as part of "debugging" to
+         help sanity check all is working as expected. Eventually we may
+         want to provide some service there jar files in the bundles
+         directory are packed ... but, there's no known use-case for this
+         so far
+     -->
+        <property
+            name="packJarFiles"
+            value="false"/>
+     <!--
+         Let tmp site be global. Note: we use this odd
+         "tmpsite-archiveName-temp" to make sure unique directories,
+         since in some cases these directories can not be deleted from
+         ant, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=142926,
+         and since directory names ending in .zip are misinterpreted by
+         jarProcessor, see
+         https://bugs.eclipse.org/bugs/show_bug.cgi?id=143385 But, its
+         handy to do as unique directories anyway, since if a larger
+         process calls this mulitiple times, on different zips, and if
+         debugging is turnned on, then all the tmpsite directories are
+         left on disk for post-build inspection.
+     -->
+        <property
+            name="tmpsite"
+            value="${buildDirectory}/tmpsite-${archiveName}-temp"/>
+
+        <property
+            name="standardInitialized"
+            value="true"/>
+
+
 
     </target>
+    
     <!--
         always make copy, since normally either normalized, or signed
         (and normalized) TODO: (minor) tiny improvement in efficiency
@@ -289,10 +322,18 @@
             fileext=".sha1"
             algorithm="SHA1"/>
     </target>
-    <target name="check.sign">
-        <echo level="debug" message="sign: ${sign}"/>
-        <echo level="debug" message="env skip jar signing: ${env.SKIP_JAR_SIGNING}"/>
-        <echo level="debug"  message="skip jar signing: ${SKIP_JAR_SIGNING}"/>
+    <target
+        name="check.sign"
+        unless="check.sign.initialized">
+        <echo
+            level="debug"
+            message="sign: ${sign}"/>
+        <echo
+            level="debug"
+            message="env skip jar signing: ${env.SKIP_JAR_SIGNING}"/>
+        <echo
+            level="debug"
+            message="skip jar signing: ${SKIP_JAR_SIGNING}"/>
         <condition property="doSign">
             <and>
                 <equals
@@ -316,7 +357,12 @@
                 </not>
             </and>
         </condition>
-        <echo level="debug" message="doSign: ${doSign}"/>
+        <echo
+            level="info"
+            message="doSign: ${doSign}"/>
+        <property
+            name="check.sign.initialized"
+            value="true"/>
     </target>
     <target
         name="createTraditionalZipFiles"
@@ -353,7 +399,9 @@
                 value="${ziparchiveName}"/>
         </antcall>
 
-        <delete quiet="true" dir="${temprunnabledir}"/>
+        <delete
+            quiet="true"
+            dir="${temprunnabledir}"/>
 
     </target>
     <target name="nodefault">