From 47f1794d87c3bf3a71b316d57a4e3a8331b10abf Mon Sep 17 00:00:00 2001
From: davidely <davidely@localhost>
Date: Tue, 11 Sep 2007 05:28:08 +0000
Subject: [PATCH] As a way to speed up an incremental build, I've updated the compileadmin target to only generate the config java source if the definition files have changed.

---
 opends/build.xml |   25 +++++++++++++++++++++++--
 1 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/opends/build.xml b/opends/build.xml
index d3af905..aaf1a13 100644
--- a/opends/build.xml
+++ b/opends/build.xml
@@ -134,6 +134,7 @@
   <property name="admin.defn.dir"  location="src/admin/defn" />
   <property name="admin.src.dir"   location="src/admin/generated" />
   <property name="admin.rules.dir" location="resource/admin" />
+  <property name="admin.gen.marker" location="${admin.src.dir}/.generated-successfully-marker" />
 
   <!-- Properties for generating messages. -->
   <property name="msg.prop.dir"    location="src/messages/messages" />
@@ -1722,7 +1723,9 @@
 
 
   <!-- Code generation for core administration components. -->
-  <target name="compileadmin" depends="validateadmin" description="Code generation for configuration Object.">
+  <target name="compileadmin" depends="checkadminuptodate,validateadmin" 
+       description="Code generation for configuration Object." 
+       unless="generatedAdmin.upToDate">
     <!-- The XSLT task creates a lot of noise.
          I can't find any other way to shut it up. -->
 
@@ -1742,6 +1745,11 @@
       <arg value="-quiet" />
       <arg value="compileadminsubtask" />
     </exec>
+   
+    <!-- Keeps track of the last time that we successfully generated 
+         the admin files so we only have to do it again if any of the
+         source files are out of date. -->
+    <touch file="${admin.gen.marker}" />
   </target>
 
 
@@ -1818,8 +1826,21 @@
     </delete>
   </target>
 
+  
+  <!-- Keeps track of the last time that we successfully generated 
+       the admin files so we only have to do it again if any of the
+       source files are out of date. -->
+  <target name="checkadminuptodate">
+    <uptodate property="generatedAdmin.upToDate">
+      <srcfiles dir="${admin.defn.dir}" includes="**/*.xml" />
+      <mapper type="merge" to="${admin.gen.marker}"/>
+    </uptodate>     
+  </target>
+
   <!-- Validate core administration component XML definition files. -->
-  <target name="validateadmin" description="Validate core administration component XML definition files.">
+  <target name="validateadmin" depends="checkadminuptodate" 
+    description="Validate core administration component XML definition files."
+    unless="generatedAdmin.upToDate">
     <schemavalidate>
       <fileset dir="${admin.defn.dir}" includes="**/*.xml" />
       <schema namespace="http://www.opends.org/admin" file="${admin.rules.dir}/admin.xsd"/>

--
Gitblit v1.10.0