Selaa lähdekoodia

Implemented the "dist" target. The target builds a distribution package.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/zookeeper/trunk@670946 13f79535-47bb-0310-9956-ffa450edef68
Andrew Kornev 17 vuotta sitten
vanhempi
commit
3c67b6c6dd
1 muutettua tiedostoa jossa 89 lisäystä ja 15 poistoa
  1. 89 15
      zookeeper/build.xml

+ 89 - 15
zookeeper/build.xml

@@ -2,12 +2,21 @@
 
     <property name="Name" value="ZooKeeper" />
     <property name="name" value="zookeeper" />
-    <property name="version" value="1.2.0" />
-    <property name="year" value="2008" />
+    
+    <property name="version" value="2.2.0" />
+    <property name="revision.dir" value="${basedir}/.revision" />
+    <property name="revision.properties" value="revision.properties" />
+    <property file="${basedir}/java/${revision.properties}" />
+    
+    <!-- Target JDK version to build for. Certain zookeeper features -->
+    <!-- (for example, JMX) are only supported on JDK 1.6            -->
+    <property name="target.jdk" value="${ant.java.version}" />
 
     <property name="src.dir" value="${basedir}/java/src" />
+    <property name="jmx.src.dir" value="${basedir}/java/jmx" />
     <property name="lib.dir" value="${basedir}/java/lib" />
     <property name="build.dir" value="${basedir}/build" />
+    <property name="distribution" value="${basedir}/distribution" />
     <property name="src_generated.dir" value="${basedir}/java/generated" />
     <property name="csrc_generated.dir" value="${basedir}/c/generated" />
     <property name="build.classes" value="${build.dir}/classes" />
@@ -26,7 +35,7 @@
     <property name="config.dir" value="${basedir}/test/config" />
     <property name="test.junit.maxmem" value="512m" />
     <property name="conf.dir" value="${basedir}/conf"/>
-    <property name="javadoc.link.java" value="http://java.sun.com/j2se/1.5/docs/api/" />
+    <property name="javadoc.link.java" value="http://java.sun.com/j2se/${target.jdk}/docs/api/" />
     <property name="javadoc.packages" value="com.yahoo.*" />
     <property name="build.docs" value="${build.dir}/docs" />
     <property name="build.javadoc" value="${build.docs}/api" />
@@ -48,12 +57,19 @@
         <mkdir dir="${build.classes}" />
         <tstamp>
             <format property="build.time" pattern="MM/dd/yyyy HH:mm zz" timezone="GMT"/>
+            <format property="year" pattern="yyyy" timezone="GMT"/>
         </tstamp>
+        <condition property="extra.src.dir" value="${jmx.src.dir}" else="">
+            <and>
+                <equals arg1="${target.jdk}" arg2="1.6"/>
+                <available file="${jmx.src.dir}" type="dir"/>
+            </and>
+        </condition>
     </target>
     
     <target name="jute" depends="init">
-        <javac srcdir="${src.dir}" destdir="${build.classes}" target="1.5" 
-            source="1.5" includes="com/yahoo/jute/**" debug="on" />
+        <javac srcdir="${src.dir}" destdir="${build.classes}" target="${target.jdk}" 
+            includes="com/yahoo/jute/**" debug="on" />
     </target>
 
     <target name="compile_jute_uptodate">
@@ -87,16 +103,23 @@
     </target>
 
     <target name="ver-gen" depends="init">
-        <javac srcdir="${src.dir}" destdir="${build.classes}" target="1.5" 
-            source="1.5" includes="com/yahoo/zookeeper/version/util/**" debug="on" />
+        <javac srcdir="${src.dir}" destdir="${build.classes}" target="${target.jdk}" 
+            includes="com/yahoo/zookeeper/version/util/**" debug="on" />
     </target>
     
-    <target name="version-info" depends="ver-gen">
-        <mkdir dir="${src_generated.dir}" />
+    <target name="svn-revision" unless="lastRevision">
         <svn>
-            <status path="${src.dir}" lastChangedRevisionProperty="lastRevision" />
+            <status path="${basedir}/java" lastChangedRevisionProperty="lastRevision" />
         </svn>
-        <java classname="com.yahoo.zookeeper.version.util.VerGen" fork="true" dir="${src_generated.dir}">
+        <mkdir dir="${revision.dir}" />
+        <echo file="${revision.dir}/${revision.properties}" 
+            message="lastRevision=${lastRevision}" />
+    </target>
+    
+    <target name="version-info" depends="ver-gen,svn-revision">
+        <mkdir dir="${src_generated.dir}" />
+        <java classname="com.yahoo.zookeeper.version.util.VerGen" fork="true" 
+                dir="${src_generated.dir}">
             <arg value="${version}" />
             <arg value="${lastRevision}" />
             <arg value="${build.time}" />
@@ -107,11 +130,14 @@
     </target>
     
     <target name="build-generated" depends="compile_jute,version-info" >
-        <javac srcdir="${src_generated.dir}" destdir="${build.classes}" target="1.5" source="1.5" debug="on" />
+        <javac srcdir="${src_generated.dir}" destdir="${build.classes}" 
+            target="${target.jdk}" debug="on" />
     </target>
     
     <target name="compile" depends="build-generated">
-        <javac srcdir="${src.dir}" destdir="${build.classes}" target="1.5" source="1.5" debug="on">
+        <javac destdir="${build.classes}" target="${target.jdk}" debug="on">
+            <src path="${src.dir}"/>
+            <src path="${extra.src.dir}"/>
             <classpath>
                 <fileset dir="${build.classes}" />
                 <pathelement path="${lib.dir}/log4j-1.2.15.jar" />
@@ -119,6 +145,8 @@
         </javac>
         <copy todir="${build.classes}">
             <fileset dir="${src.dir}"/>
+            <fileset dir="${extra.src.dir}"/>
+            <fileset dir="${src_generated.dir}"/>
         </copy>
     </target>
 
@@ -136,7 +164,7 @@
     <target name="compile-test" depends="jar,test-classpath">
       <mkdir dir="${build.testclasses}"/>
       <javac srcdir="${test.src.dir}" destdir="${build.testclasses}"
-             target="1.5" source="1.5" debug="on">
+             target="${target.jdk}" debug="on">
         <classpath refid="test.classpath"/>
       </javac>
     </target>
@@ -167,7 +195,7 @@
         <exec executable="hostname" outputproperty="host.name"/>
         <jar jarfile="${jar.name}"> 
             <fileset file="LICENSE" />
-            <fileset dir="${build.classes}"/>
+            <fileset dir="${build.classes}" excludes="**/.generated"/>
             <fileset file="${conf.dir}/log4j.properties"/> 
             <manifest>
                 <attribute name="Main-Class" value="com.yahoo.zookeeper.server.quorum.QuorumPeer" />
@@ -187,6 +215,47 @@
         </antcall>
     </target>
     
+    <!-- ====================================================== -->
+    <!-- Build all distribution tar files                       -->
+    <!-- ====================================================== -->
+    <available file="c/Makefile" property="Makefile.present"/>
+    
+    <target name="c-dist">
+        <fail unless="Makefile.present" 
+            message="Please run 'autoreconf -if &amp;&amp; ./configure' in the c/ directory to generate a Makefile."/>
+        <exec dir="c" executable="make" failonerror="true">
+            <arg value="VERSION=${version}"/>
+            <arg value="dist"/>
+        </exec>
+        <mkdir dir="${distribution}"/>
+        <copy file="c/c-client-src-${version}.tar.gz" todir="${distribution}" />
+    </target>
+    
+    <target name="dist" depends="release">
+        <mkdir dir="${distribution}"/>
+        <tar destfile="${distribution}/java-src-${version}.tar.gz" compression="gzip">
+            <tarfileset dir="java" includes="src/**,jmx/**,lib/**,ChangeLog" 
+                prefix="zookeeper/java"/>
+            <tarfileset dir="test" includes="com/**,config/**" 
+                prefix="zookeeper/test"/>
+            <tarfileset dir="${basedir}" 
+                includes="zookeeper.jute,build.xml,conf/*,bin/*,README,LICENSE" 
+                prefix="zookeeper"/>
+            <tarfileset dir="${revision.dir}" prefix="zookeeper/java"/>
+        </tar>
+        <tar destfile="${distribution}/java-bin-${version}.tar.gz" compression="gzip">
+            <tarfileset file="zookeeper-${version}.jar" prefix="zookeeper/lib"/>
+            <tarfileset dir="java/lib" includes="log4j*" 
+                prefix="zookeeper/lib"/>
+            <tarfileset dir="${basedir}" includes="conf/*,bin/*,README,LICENSE" 
+                prefix="zookeeper"/>
+        </tar>
+        <antcall target="c-dist"/>
+        <tar destfile="zookeeper-${version}.tar.gz" compression="gzip">
+            <tarfileset dir="${distribution}"/>
+        </tar>
+    </target>
+    
     <!-- ====================================================== -->
     <!-- Clean.  Delete the build files, and their directories  -->
     <!-- ====================================================== -->
@@ -195,6 +264,11 @@
         <delete dir="${src_generated.dir}" />
         <delete dir="${csrc_generated.dir}" />
         <delete file="${jar.name}" />
+        <delete dir="${distribution}"/>
+        <delete dir="${revision.dir}"/>
+        <delete>
+            <fileset dir="${basedir}" includes="*.jar,*.tar.gz"/>
+        </delete>
     </target>
 
     <!-- ====================================================== -->