mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

abobrov
13.03.2009 5352fc24d9fc50336119d2c199b489f074f5948f
opendj-sdk/opends/build.xml
@@ -22,7 +22,7 @@
 ! CDDL HEADER END
 !
 !
 !      Copyright 2006-2008 Sun Microsystems, Inc.
 !      Copyright 2006-2009 Sun Microsystems, Inc.
 ! -->
<project name="Directory Server" basedir="." default="package">
@@ -41,6 +41,7 @@
  <property name="src.dir"          location="src/server"              />
  <property name="build.dir"        location="build"                   />
  <property name="classes.dir"      location="${build.dir}/classes"    />
  <property name="build.lib.dir"    location="${build.dir}/lib"        />
  <property name="lib.dir"          location="lib"                     />
  <property name="ext.dir"          location="ext"                     />
  <property name="package.dir"      location="${build.dir}/package"    />
@@ -161,6 +162,23 @@
  <property name="snmp.classes.dir"
            location="${classes.dir}/org/opends/server/snmp" />
  <!-- Condition properties for NDB Backend build. -->
  <condition property="ismysqldirpresent">
    <available file="${mysql.lib.dir}" type="dir" />
  </condition>
  <condition property="exclude.ndb.xml" value=""
             else="**/Ndb*">
             <available file="${mysql.lib.dir}" type="dir" />
  </condition>
  <condition property="exclude.ndb.src" value=""
             else="org/opends/server/backends/ndb/**,
                   org/opends/server/workflowelement/ndb/**">
             <available file="${mysql.lib.dir}" type="dir" />
  </condition>
  <!-- Property for excluding NDB Backend config. -->
  <property name="exclude.ndb.config" value="ndbconfig.ldif" />
  <!-- Create a package bundle containing the DSML library. -->
  <target name="dsml" depends="predsml,package"
       description="Build a Directory Server package bundle with DSML.">
@@ -288,8 +306,25 @@
    <genmsg sourceProps="${msg.prop.dir}/servicetag.properties"
            destJava="${msg.javagen.dir}/org/opends/messages/ServiceTagMessages.java">
    </genmsg>
    <antcall target="generatendbmessages" />
  </target>
  <!-- Generate NDB Backend messages if needed -->
  <target name="generatendbmessages" if="ismysqldirpresent">
    <typedef name="genmsg"
             classname="org.opends.build.tools.GenerateMessageFile" >
      <classpath>
        <fileset dir="${build.dir}/build-tools">
          <include name="*.jar" />
        </fileset>
      </classpath>
    </typedef>
    <genmsg sourceProps="${msg.prop.dir}/ndb.properties"
            destJava="${msg.javagen.dir}/org/opends/messages/NdbMessages.java">
    </genmsg>
  </target>
  <!-- Remove all dynamically-generated build files. -->
  <target name="clean" depends="init,cleanadmin,cleanmessages,cleansnmp"
@@ -575,9 +610,13 @@
       depends="init,checkjavaversion,dynamicconstants,generatemessages,compileadmin"
       description="Compile the Directory Server source files.">
    <mkdir dir="${classes.dir}" />
    <mkdir dir="${build.lib.dir}" />
    <!-- Copy NDB Backend dependencies if necessary -->
    <antcall target="copyndbdeps" />
    <javac srcdir="${src.dir}:${admin.src.dir}:${msg.src.dir}:${msg.javagen.dir}:${ads.src.dir}:${quicksetup.src.dir}:${guitools.src.dir}"
         destdir="${classes.dir}" debug="on" debuglevel="${build.debuglevel}"
         destdir="${classes.dir}" excludes="${exclude.ndb.src}" debug="on" debuglevel="${build.debuglevel}"
         source="1.5" target="1.5" deprecation="true" fork="true"
         memoryInitialSize="${MEM}" memoryMaximumSize="${MEM}">
      <compilerarg value="-Xlint:all" />
@@ -589,6 +628,9 @@
        <fileset dir="${build.dir}/build-tools">
          <include name="build-tools.jar" />
        </fileset>
        <fileset dir="${build.lib.dir}">
          <include name="*.jar" />
        </fileset>
      </classpath>
    </javac>
@@ -743,10 +785,13 @@
    <!-- Regenerate configuration files if necessary -->
    <antcall target="compileadmin" />
    <!-- Copy NDB Backend dependencies if necessary -->
    <antcall target="copyndbdeps" />
    <!-- Recreate the classes directory and recompile into it. -->
    <mkdir dir="${classes.dir}" />
    <javac srcdir="${src.dir}:${msg.src.dir}:${msg.javagen.dir}:${admin.src.dir}:${ads.src.dir}:${quicksetup.src.dir}:${guitools.src.dir}"
         destdir="${classes.dir}"
         destdir="${classes.dir}" excludes="${exclude.ndb.src}"
         debug="on" debuglevel="${build.debuglevel}" source="1.5" target="1.5"
         deprecation="true" fork="true" memoryInitialSize="${MEM}"
         memoryMaximumSize="${MEM}">
@@ -759,6 +804,9 @@
        <fileset dir="${build.dir}/build-tools">
          <include name="build-tools.jar" />
        </fileset>
        <fileset dir="${build.lib.dir}">
          <include name="*.jar" />
        </fileset>
      </classpath>
    </javac>
@@ -830,6 +878,11 @@
    <jar jarfile="${pdir}/lib/quicksetup.jar"
         basedir="${quicksetup.classes.dir}" compress="true" index="true" />
    <!-- Copy over external dependencies. -->
    <copy todir="${pdir}/lib">
      <fileset file="${build.lib.dir}/*.jar" />
    </copy>
    <!-- Regenerate example plugin. -->
    <antcall target="example-plugin" />
  </target>
@@ -965,11 +1018,13 @@
    <fixcrlf srcDir="${scripts.dir}" destDir="${pdir}/lib" includes="_client-script.bat,_server-script.bat,_mixed-script.bat,_script-util.bat,setcp.bat" eol="crlf" />
    <copy todir="${pdir}/config">
      <fileset file="${config.dir}/*" />
      <fileset file="${config.dir}/*" excludes="${exclude.ndb.config}" />
    </copy>
    <antcall target="package-snmp" />
    <antcall target="packagendb" />
    <copy file="${pdir}/config/config.ldif"
         tofile="${pdir}/config/upgrade/config.ldif.${REVISION_NUMBER}" />
@@ -1272,7 +1327,7 @@
        <dirset dir="${quicksetup.classes.dir}" />
      </classpath>
      <packageset dir="${src.dir}" />
      <packageset dir="${src.dir}" excludes="${exclude.ndb.src}" />
      <packageset dir="${admin.src.dir}" />
      <packageset dir="${ads.src.dir}" />
      <packageset dir="${dsml.src.dir}" />
@@ -1433,8 +1488,11 @@
    <echo message="Performing partial rebuild (OpenDS zip package found)"/>
    <mkdir dir="${classes.dir}" />
    <!-- Copy NDB Backend dependencies if necessary -->
    <antcall target="copyndbdeps" />
    <javac srcdir="${src.dir}:${admin.src.dir}:${msg.src.dir}:${msg.javagen.dir}:${ads.src.dir}:${quicksetup.src.dir}:${guitools.src.dir}"
        destdir="${classes.dir}" debug="on" debuglevel="${build.debuglevel}"
        destdir="${classes.dir}" excludes="${exclude.ndb.src}" debug="on" debuglevel="${build.debuglevel}"
        source="1.5" target="1.5" deprecation="true" fork="true"
        memoryInitialSize="${MEM}" memoryMaximumSize="${MEM}">
      <compilerarg value="-Xlint:all" />
@@ -1446,6 +1504,9 @@
        <fileset dir="${build.dir}/build-tools">
          <include name="build-tools.jar" />
        </fileset>
        <fileset dir="${build.lib.dir}">
          <include name="*.jar" />
        </fileset>
      </classpath>
    </javac>
@@ -2146,6 +2207,7 @@
      <arg value="-buildfile" />
      <arg value="${ant.file}" />
      <arg value="-quiet" />
      <arg value="-Dexclude.ndb.xml=${exclude.ndb.xml}" />
      <arg value="compileadminsubtask" />
      <env key="ANT_OPTS" value="-Xmx${MEM}" />
    </exec>
@@ -2155,7 +2217,8 @@
  <target name="compileadminsubtask">
    <!-- Generate introspection API for core administration components. -->
    <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml" style="${admin.rules.dir}/metaMO.xsl">
    <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
          excludes="${exclude.ndb.xml}" style="${admin.rules.dir}/metaMO.xsl">
      <regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/meta/\2CfgDefn.java" />
      <param name="base-dir" expression="${admin.defn.dir}" />
    </xslt>
@@ -2166,7 +2229,8 @@
    </xslt>
    <!-- Generate client API for core administration components. -->
    <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml" style="${admin.rules.dir}/clientMO.xsl">
    <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
          excludes="${exclude.ndb.xml}" style="${admin.rules.dir}/clientMO.xsl">
      <regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/client/\2CfgClient.java" />
      <param name="base-dir" expression="${admin.defn.dir}" />
    </xslt>
@@ -2177,7 +2241,8 @@
    </xslt>
    <!-- Generate server API for core administration components. -->
    <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml" style="${admin.rules.dir}/serverMO.xsl">
    <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
          excludes="${exclude.ndb.xml}" style="${admin.rules.dir}/serverMO.xsl">
      <regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/server/\2Cfg.java" />
      <param name="base-dir" expression="${admin.defn.dir}" />
    </xslt>
@@ -2189,19 +2254,22 @@
    <!-- Generate LDAP profile for core administration components. -->
    <mkdir dir="${classes.dir}" />
    <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/profiles/ldap" includes="**/*Configuration.xml" style="${admin.rules.dir}/ldapMOProfile.xsl">
    <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/profiles/ldap" includes="**/*Configuration.xml"
          excludes="${exclude.ndb.xml}" style="${admin.rules.dir}/ldapMOProfile.xsl">
      <regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/meta/\2CfgDefn.properties" />
      <param name="base-dir" expression="${admin.defn.dir}" />
    </xslt>
    <!-- Generate CLI profile for core administration components. -->
    <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/profiles/cli" includes="**/*Configuration.xml" style="${admin.rules.dir}/cliMOProfile.xsl">
    <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/profiles/cli" includes="**/*Configuration.xml"
          excludes="${exclude.ndb.xml}" style="${admin.rules.dir}/cliMOProfile.xsl">
      <regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/meta/\2CfgDefn.properties" />
      <param name="base-dir" expression="${admin.defn.dir}" />
    </xslt>
    <!-- Generate I18N messages for core administration components. -->
    <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/messages" includes="**/*Configuration.xml" style="${admin.rules.dir}/messagesMO.xsl">
    <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/messages" includes="**/*Configuration.xml"
          excludes="${exclude.ndb.xml}" style="${admin.rules.dir}/messagesMO.xsl">
      <regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/meta/\2CfgDefn.properties" />
      <param name="base-dir" expression="${admin.defn.dir}" />
    </xslt>
@@ -2209,7 +2277,8 @@
    <!-- Generate manifest file for core administration components. -->
    <tempfile property="admin.temp.dir" destDir="${build.dir}" prefix="tmp" />
    <mkdir dir="${admin.temp.dir}" />
    <xslt basedir="${admin.defn.dir}" destdir="${admin.temp.dir}" extension=".manifest" includes="**/*Configuration.xml" style="${admin.rules.dir}/manifestMO.xsl"/>
    <xslt basedir="${admin.defn.dir}" destdir="${admin.temp.dir}" extension=".manifest" includes="**/*Configuration.xml"
          excludes="${exclude.ndb.xml}" style="${admin.rules.dir}/manifestMO.xsl"/>
    <concat destfile="${classes.dir}/admin/core.manifest">
      <fileset dir="${admin.temp.dir}" includes="**/*.manifest" />
    </concat>
@@ -2437,4 +2506,26 @@
  <import file="build-svr4.xml"/>
  <!-- Copy NDB Backend dependencies to build lib directory -->
  <target name="copyndbdeps" if="ismysqldirpresent"
    description="Internal target to copy NDB Backend dependencies">
    <!-- Blanket copy of all jars found at mysql.lib location -->
    <copy todir="${build.lib.dir}">
      <fileset file="${mysql.lib.dir}/*.jar" />
    </copy>
  </target>
  <!-- Package NDB Backend with Directory Server distribution -->
  <target name="packagendb" if="ismysqldirpresent"
    description="Internal target to package NDB Backend dependencies">
    <echo message="Packaging with NDB Backend dependencies"/>
    <copy todir="${pdir}/lib">
      <fileset file="${mysql.lib.dir}/*.jar" />
    </copy>
    <!-- Concat NDB Backend config entry to default config -->
    <concat destfile="${pdir}/config/config.ldif" append="true">
        <filelist dir="${config.dir}" files="ndbconfig.ldif"/>
    </concat>
  </target>
</project>