| [29] | 1 | <project name="weka" default="compile" basedir="."> | 
|---|
 | 2 | <!--  | 
|---|
 | 3 |   =========================================================================== | 
|---|
 | 4 |    Ant build file for weka. Tested with ant 1.6.5 and Junit 3.8.2. Requires | 
|---|
 | 5 |    JavaMail and the java activation framework for mailing unit test results. | 
|---|
 | 6 |  | 
|---|
 | 7 |    Type ant -projecthelp for targets and descriptions. | 
|---|
 | 8 |    Assumes weka and tests (if unit testing) are in the same directory. | 
|---|
 | 9 |    Build file can reside and be executed from either inside weka or the | 
|---|
 | 10 |    directory containing weka. | 
|---|
 | 11 |  | 
|---|
 | 12 |    $Revision: 5694 $ | 
|---|
 | 13 |   =========================================================================== | 
|---|
 | 14 | --> | 
|---|
 | 15 |  | 
|---|
 | 16 |   <!-- set global properties for this build --> | 
|---|
 | 17 |   <property name="src" value="src/main/java"/> | 
|---|
 | 18 |   <property name="src-test" value="src/test/java"/> | 
|---|
 | 19 |   <property name="lib" value="lib" /> | 
|---|
 | 20 |   <property name="regression_tests_root" value="src/test/resources/wekarefs"/> | 
|---|
 | 21 |   <property name="build" value="build"/> | 
|---|
 | 22 |   <property name="dist"  value="dist"/> | 
|---|
 | 23 |   <property name="doc"  value="doc"/> | 
|---|
 | 24 |   <property name="reports"  value="reports"/> | 
|---|
 | 25 |   <property name="javac_max_memory" value="256m"/> | 
|---|
 | 26 |   <property name="run_tests_fail" value="true"/> | 
|---|
 | 27 |   <property name="headless" value="false"/> | 
|---|
 | 28 |   <property name="macdistrib" value="osx-distrib"/> | 
|---|
 | 29 |   <property name="debug" value="on" /> | 
|---|
 | 30 |  | 
|---|
 | 31 |   <target name="init_all"> | 
|---|
 | 32 |     <!-- Create the time stamp --> | 
|---|
 | 33 |     <tstamp/> | 
|---|
 | 34 |   </target> | 
|---|
 | 35 |  | 
|---|
 | 36 |    <!-- general classpath definition, incl. CLASSPATH env. variable, | 
|---|
 | 37 |    // but jars in lib directory have precedence over the CLASSPATH variable --> | 
|---|
 | 38 |   <path id="project.class.path"> | 
|---|
 | 39 |     <fileset dir="${lib}"> | 
|---|
 | 40 |       <include name="*.jar"/> | 
|---|
 | 41 |       <include name="*.zip"/> | 
|---|
 | 42 |     </fileset> | 
|---|
 | 43 |     <pathelement location="${build}/classes"/> | 
|---|
 | 44 |     <pathelement location="${build}/testcases"/> | 
|---|
 | 45 |     <pathelement path="${java.class.path}" /> | 
|---|
 | 46 |   </path> | 
|---|
 | 47 |  | 
|---|
 | 48 | <!--  | 
|---|
 | 49 |  ============================================================================ | 
|---|
 | 50 |  Compilation and documentation making stuff | 
|---|
 | 51 |  ============================================================================ | 
|---|
 | 52 | --> | 
|---|
 | 53 |  | 
|---|
 | 54 |   <target name="init_compile" depends="init_all"> | 
|---|
 | 55 |     <!-- Create the build directory structure used by compile --> | 
|---|
 | 56 |     <mkdir dir="${build}/classes"/> | 
|---|
 | 57 |   </target> | 
|---|
 | 58 |  | 
|---|
 | 59 |   <!-- Compile the java code from ${src}/weka into ${build}/classes --> | 
|---|
 | 60 |   <target name="compile" depends="init_compile"  | 
|---|
 | 61 |    description="Compile weka and deposit class files in build/classes"> | 
|---|
 | 62 |     <javac srcdir="${src}"  | 
|---|
 | 63 |       fork="yes" memoryMaximumSize="${javac_max_memory}" | 
|---|
 | 64 |       destdir="${build}/classes" | 
|---|
 | 65 |       optimize="${optimization}" | 
|---|
 | 66 |       debug="${debug}" | 
|---|
 | 67 |       deprecation="${deprecation}" | 
|---|
 | 68 |       source="1.6" target="1.6"> | 
|---|
 | 69 |  | 
|---|
 | 70 |       <classpath refid="project.class.path" />  | 
|---|
 | 71 |     </javac> | 
|---|
 | 72 |     <copy todir="${build}/classes" > | 
|---|
 | 73 |        <fileset dir="${src}"> | 
|---|
 | 74 |          <include name="weka/**/*.excludes"/> | 
|---|
 | 75 |          <include name="weka/**/*.gif"/> | 
|---|
 | 76 |          <include name="weka/**/*.png"/> | 
|---|
 | 77 |          <include name="weka/**/*.jpeg"/> | 
|---|
 | 78 |          <include name="weka/**/*.jpg"/> | 
|---|
 | 79 |          <include name="weka/**/*.props"/> | 
|---|
 | 80 |          <include name="weka/**/*.txt"/> | 
|---|
 | 81 |          <include name="weka/**/*.xml"/> | 
|---|
 | 82 |          <include name="weka/**/DatabaseUtils.props.*"/> | 
|---|
 | 83 |          <include name="weka/gui/beans/README*"/> | 
|---|
 | 84 |          <include name="**/*.cup"/> | 
|---|
 | 85 |          <include name="**/*.flex"/> | 
|---|
 | 86 |          <include name="**/*.jflex"/> | 
|---|
 | 87 |          <include name="**/*.properties"/> | 
|---|
 | 88 |          <include name="**/*.default"/> | 
|---|
 | 89 |        </fileset> | 
|---|
 | 90 |     </copy> | 
|---|
 | 91 |     <rmic base="${build}/classes" | 
|---|
 | 92 |        classname="weka.experiment.RemoteEngine"/> | 
|---|
 | 93 |     <unzip src="${lib}/java-cup.jar" dest="${build}/classes"> | 
|---|
 | 94 |       <patternset> | 
|---|
 | 95 |         <include name="java_cup/runtime/**/*"/> | 
|---|
 | 96 |       </patternset> | 
|---|
 | 97 |     </unzip> | 
|---|
 | 98 |   </target> | 
|---|
 | 99 |  | 
|---|
 | 100 |   <!-- Make the javadocs --> | 
|---|
 | 101 |   <target name="docs"  | 
|---|
 | 102 |           depends="init_all"  | 
|---|
 | 103 |           description="Make javadocs into ./doc"> | 
|---|
 | 104 |     <mkdir dir="${doc}"/> | 
|---|
 | 105 |     <javadoc sourcepath="${src}"  | 
|---|
 | 106 |              classpathref="project.class.path" | 
|---|
 | 107 |              destdir="${doc}"  | 
|---|
 | 108 |              packagenames="weka.*" | 
|---|
 | 109 |              Author="yes"  | 
|---|
 | 110 |              Public="yes"  | 
|---|
 | 111 |              maxmemory="256m"/> | 
|---|
 | 112 |      | 
|---|
 | 113 |     <!-- insert the links to our homepage and documentation.html --> | 
|---|
 | 114 |     <replace dir="${doc}"  | 
|---|
 | 115 |              token=""help-doc.html""  | 
|---|
 | 116 |              value=""../documentation.html" target="_blank""> | 
|---|
 | 117 |       <include name="**/*.html"/> | 
|---|
 | 118 |     </replace> | 
|---|
 | 119 |        | 
|---|
 | 120 |     <replace dir="${doc}"  | 
|---|
 | 121 |              token="Help</B></FONT></A>&nbsp;</TD>"  | 
|---|
 | 122 |              value="Help</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="http://www.cs.waikato.ac.nz/ml/weka/" target="_blank"><FONT CLASS="NavBarFont1"><B>Weka's home</B></FONT></A>&nbsp;</TD>"> | 
|---|
 | 123 |       <include name="**/*.html"/> | 
|---|
 | 124 |     </replace> | 
|---|
 | 125 |   </target>  | 
|---|
 | 126 |  | 
|---|
 | 127 |  | 
|---|
 | 128 | <!-- | 
|---|
 | 129 |   =========================================================================== | 
|---|
 | 130 |   Unit testing stuff | 
|---|
 | 131 |   =========================================================================== | 
|---|
 | 132 | --> | 
|---|
 | 133 | <!-- Junit testing initialization --> | 
|---|
 | 134 |   <target name="init_tests" depends="init_all"> | 
|---|
 | 135 |     <available property="junit.present" classname="junit.framework.TestCase"/> | 
|---|
 | 136 |     <!-- Create the build directory structure used by compile --> | 
|---|
 | 137 |     <mkdir dir="${build}/testcases"/> | 
|---|
 | 138 |     <mkdir dir="${reports}"/> | 
|---|
 | 139 |   </target> | 
|---|
 | 140 |  | 
|---|
 | 141 |   <!-- compile the testcases --> | 
|---|
 | 142 |   <target name="compile_tests" depends="init_tests, compile"  | 
|---|
 | 143 |    description="Compile unit tests into build/testcases"> | 
|---|
 | 144 |      <javac srcdir="${src-test}"  | 
|---|
 | 145 |        fork="yes" memoryMaximumSize="${javac_max_memory}" | 
|---|
 | 146 |             destdir="${build}/testcases" | 
|---|
 | 147 |             optimize="${optimization}" | 
|---|
 | 148 |             debug="${debug}" | 
|---|
 | 149 |             deprecation="${deprecation}" | 
|---|
 | 150 |             source="1.5" target="1.5"> | 
|---|
 | 151 |        <classpath refid="project.class.path" />  | 
|---|
 | 152 |      </javac> | 
|---|
 | 153 |      <copy todir="${build}/testcases" > | 
|---|
 | 154 |        <fileset dir="${src-test}"> | 
|---|
 | 155 |           <include name="**/*.arff"/> | 
|---|
 | 156 |           <include name="**/*.cost"/> | 
|---|
 | 157 |           <include name="**/*.xml"/> | 
|---|
 | 158 |           <include name="**/*.matrix"/> | 
|---|
 | 159 |        </fileset> | 
|---|
 | 160 |      </copy> | 
|---|
 | 161 |   </target> | 
|---|
 | 162 |  | 
|---|
 | 163 |   <!-- Put everything in ${build}/testcases into the weka-tests.jar file --> | 
|---|
 | 164 |   <target name="jar_tests" depends="compile_tests, init_dist" | 
|---|
 | 165 |    description="Creates a jar file with the test cases in ./dist"> | 
|---|
 | 166 |     <jar jarfile="${dist}/weka-tests.jar"  | 
|---|
 | 167 |       basedir="${build}/testcases"> | 
|---|
 | 168 |     </jar> | 
|---|
 | 169 |   </target> | 
|---|
 | 170 |  | 
|---|
 | 171 |   <!-- Run the test cases via junit's testrunner class. | 
|---|
 | 172 |    This is a faster, simpler option than running the junit task --> | 
|---|
 | 173 |   <target name="run_tests" depends="compile_tests"  | 
|---|
 | 174 |    description="Execute unit tests (fast)"> | 
|---|
 | 175 |      <java fork="yes" dir="." | 
|---|
 | 176 |       classname="junit.textui.TestRunner" | 
|---|
 | 177 |       taskname="junit" failonerror="${run_tests_fail}"> | 
|---|
 | 178 |          <arg value="weka.AllTests"/> | 
|---|
 | 179 |          <classpath refid="project.class.path" />  | 
|---|
 | 180 |          <jvmarg value="-Djava.awt.headless=${headless}"/>  | 
|---|
 | 181 |          <jvmarg value="-Dweka.test.Regression.root=${regression_tests_root}"/> | 
|---|
 | 182 |      </java> | 
|---|
 | 183 |   </target> | 
|---|
 | 184 |  | 
|---|
 | 185 | <!-- Run the test cases and produce an html summary (in ${reports}--> | 
|---|
 | 186 |   <target name="junit" depends="compile_tests"  | 
|---|
 | 187 |    description="Execute unit tests and produce html summary (in ./reports)"> | 
|---|
 | 188 |      <junit fork="yes" dir="."> | 
|---|
 | 189 |        <jvmarg value="-Djava.awt.headless=${headless}"/>  | 
|---|
 | 190 |        <jvmarg value="-Dweka.test.Regression.root=${regression_tests_root}"/> | 
|---|
 | 191 |         <formatter type="xml"/> | 
|---|
 | 192 |         <classpath refid="project.class.path" />  | 
|---|
 | 193 |          <batchtest todir="${reports}"> | 
|---|
 | 194 |             <fileset dir="${build}/testcases"> | 
|---|
 | 195 |                <include name="**/*Test.class"/> | 
|---|
 | 196 |                <exclude name="**/AllTests.class"/> | 
|---|
 | 197 |             </fileset> | 
|---|
 | 198 |          </batchtest> | 
|---|
 | 199 |      </junit> | 
|---|
 | 200 |  | 
|---|
 | 201 |      <junitreport todir="${reports}"> | 
|---|
 | 202 |         <fileset dir="${reports}"> | 
|---|
 | 203 |            <include name="TEST-*.xml"/> | 
|---|
 | 204 |         </fileset> | 
|---|
 | 205 |         <report format="noframes" todir="${reports}"/> | 
|---|
 | 206 |      </junitreport> | 
|---|
 | 207 |   </target> | 
|---|
 | 208 |  | 
|---|
 | 209 |  | 
|---|
 | 210 | <!-- | 
|---|
 | 211 |   =========================================================================== | 
|---|
 | 212 |   Release making stuff | 
|---|
 | 213 |   =========================================================================== | 
|---|
 | 214 | --> | 
|---|
 | 215 |  | 
|---|
 | 216 |   <target name = "init_dist" depends="init_all"> | 
|---|
 | 217 |     <!-- Create the distribution directory --> | 
|---|
 | 218 |     <mkdir dir="${dist}"/> | 
|---|
 | 219 |   </target> | 
|---|
 | 220 |  | 
|---|
 | 221 |   <!-- Put everything in ${build}/classes into the weka.jar file --> | 
|---|
 | 222 |   <target name="exejar" depends="compile, init_dist" | 
|---|
 | 223 |    description="Create an executable jar file in ./dist"> | 
|---|
 | 224 |     <jar jarfile="${dist}/weka.jar"  | 
|---|
 | 225 |       basedir="${build}/classes"> | 
|---|
 | 226 |      <manifest> | 
|---|
 | 227 |        <attribute name="Main-Class" value="weka.gui.GUIChooser"/> | 
|---|
 | 228 |      </manifest> | 
|---|
 | 229 |     </jar> | 
|---|
 | 230 |   </target> | 
|---|
 | 231 |  | 
|---|
 | 232 |   <!-- Put all .java, and .props files into ${dist}/weka-src.jar--> | 
|---|
 | 233 |   <target name="srcjar" depends="init_dist, init_all" | 
|---|
 | 234 |    description="Create a jar file containing weka source in ./dist">   | 
|---|
 | 235 |     <!-- jar up the source --> | 
|---|
 | 236 |     <jar jarfile="${dist}/weka-src.jar"  | 
|---|
 | 237 |       basedir="."> | 
|---|
 | 238 |       <include name="*.xml"/> | 
|---|
 | 239 |       <include name="src/**/*.excludes"/> | 
|---|
 | 240 |       <include name="src/**/*.gif"/> | 
|---|
 | 241 |       <include name="src/**/*.java"/> | 
|---|
 | 242 |       <include name="src/**/*.jpeg"/> | 
|---|
 | 243 |       <include name="src/**/*.jpg"/> | 
|---|
 | 244 |       <include name="src/**/*.props"/> | 
|---|
 | 245 |       <include name="src/**/*.txt"/> | 
|---|
 | 246 |       <include name="src/**/*.xml"/> | 
|---|
 | 247 |       <include name="src/**/DatabaseUtils.props.*"/> | 
|---|
 | 248 |       <include name="src/**/weka/gui/beans/README*"/> | 
|---|
 | 249 |       <include name="src/**/*.cup"/> | 
|---|
 | 250 |       <include name="src/**/*.flex"/> | 
|---|
 | 251 |       <include name="src/**/*.jflex"/> | 
|---|
 | 252 |       <include name="src/**/*.properties"/> | 
|---|
 | 253 |       <include name="src/**/*.default"/> | 
|---|
 | 254 |       <include name="src/**/*.cost"/> | 
|---|
 | 255 |       <include name="src/**/*.arff"/> | 
|---|
 | 256 |       <include name="src/**/*.matrix"/> | 
|---|
 | 257 |       <include name="lib/**/*.jar"/> | 
|---|
 | 258 |     </jar> | 
|---|
 | 259 |   </target> | 
|---|
 | 260 |  | 
|---|
 | 261 |   <!-- make a jar file containing just the stuff needed for running a remote experiment server --> | 
|---|
 | 262 |   <target name="remotejar" depends="compile, init_dist" | 
|---|
 | 263 |    description="Create a jar file containing classes for remote experiments in ./dist"> | 
|---|
 | 264 |      <jar jarfile="${dist}/remoteEngine.jar" | 
|---|
 | 265 |       basedir="${build}/classes" | 
|---|
 | 266 |       includes="weka/experiment/*_*.class,weka/experiment/RemoteEngine*.class,weka/experiment/Compute.class,weka/experiment/Task.class,weka/experiment/TaskStatusInfo.class,weka/core/Queue*.class,weka/core/RevisionHandler.class,weka/core/Utils.class,weka/core/RevisionUtils.class"/> | 
|---|
 | 267 |      <copy todir="${dist}" > | 
|---|
 | 268 |        <fileset dir="${src}/weka/experiment"> | 
|---|
 | 269 |           <include name="remote.policy"/> | 
|---|
 | 270 |           <include name="remote.policy.example"/> | 
|---|
 | 271 |        </fileset> | 
|---|
 | 272 |     </copy> | 
|---|
 | 273 |     <jar jarfile="${dist}/remoteExperimentServer.jar" | 
|---|
 | 274 |      basedir="${dist}" | 
|---|
 | 275 |      includes="remoteEngine.jar,remote.policy,remote.policy.example"/> | 
|---|
 | 276 |      <delete file="${dist}/remoteEngine.jar"/> | 
|---|
 | 277 |      <delete file="${dist}/remote.policy"/> | 
|---|
 | 278 |      <delete file="${dist}/remote.policy.example"/> | 
|---|
 | 279 |    </target> | 
|---|
 | 280 |  | 
|---|
 | 281 |   <!-- Writes $release version number to weka/core/version.txt -->     | 
|---|
 | 282 |   <target name="set_version"> | 
|---|
 | 283 |     <echo message="${release}" file="${src}/weka/core/version.txt"/> | 
|---|
 | 284 |     <echo message="${release}" file="${build}/classes/weka/core/version.txt"/> | 
|---|
 | 285 |   </target> | 
|---|
 | 286 |  | 
|---|
 | 287 |   <!-- Make a release --> | 
|---|
 | 288 |   <target name="release" depends="run_tests, release_sub_tasks" | 
|---|
 | 289 |    description="Make a release in ${release}. Run with -Drelease=<number of release (eg. 3-4-1)>."> | 
|---|
 | 290 |   </target> | 
|---|
 | 291 |  | 
|---|
 | 292 |   <target name="release_no_junit" depends="compile, release_sub_tasks" | 
|---|
 | 293 |    description="Make a release in ${release} without running junit tests. Run with -Drelease=<number of release (eg. 3-4-1)>."> | 
|---|
 | 294 |   </target> | 
|---|
 | 295 |  | 
|---|
 | 296 |   <target name="release_sub_tasks" depends="set_version, exejar, remotejar, srcjar, docs, changelog"> | 
|---|
 | 297 |     <!-- copy the docs to dist/docs --> | 
|---|
 | 298 |  | 
|---|
 | 299 |     <copy todir="weka-${release}/weka-${release}/doc" > | 
|---|
 | 300 |        <fileset dir="${doc}"/> | 
|---|
 | 301 |     </copy> | 
|---|
 | 302 |     <copy todir="weka-${release}/weka-${release}"> | 
|---|
 | 303 |        <fileset dir="${dist}"/> | 
|---|
 | 304 |     </copy> | 
|---|
 | 305 |     <copy todir="weka-${release}/weka-${release}/changelogs"> | 
|---|
 | 306 |        <fileset dir="../wekadocs/changelogs"/> | 
|---|
 | 307 |     </copy> | 
|---|
 | 308 |     <copy todir="weka-${release}/weka-${release}/data"> | 
|---|
 | 309 |        <fileset dir="../wekadocs/data"/> | 
|---|
 | 310 |     </copy> | 
|---|
 | 311 |     <copy todir="weka-${release}/weka-${release}"> | 
|---|
 | 312 |       <fileset dir="../wekadocs"> | 
|---|
 | 313 |         <include name="*.pdf"/> | 
|---|
 | 314 |       </fileset> | 
|---|
 | 315 |     </copy> | 
|---|
 | 316 |     <copy todir="weka-${release}/weka-${release}"> | 
|---|
 | 317 |        <fileset dir="../wekadocs"> | 
|---|
 | 318 |          <include name="README*"/> | 
|---|
 | 319 |          <include name="COPYING"/> | 
|---|
 | 320 |          <include name="documentation.*"/> | 
|---|
 | 321 |          <include name="weka.gif"/> | 
|---|
 | 322 |          <include name="weka.ico"/> | 
|---|
 | 323 |        </fileset> | 
|---|
 | 324 |     </copy> | 
|---|
 | 325 |     <zip destfile="weka-${release}.zip"  | 
|---|
 | 326 |      basedir="weka-${release}"/> | 
|---|
 | 327 |   </target> | 
|---|
 | 328 |  | 
|---|
 | 329 |   <!-- Make a Max OSX application (NOTE: assumes that release/release_no_junit or something that calls | 
|---|
 | 330 |        release has been run first!!!). Also requires Ant version 1.7.0 or higher --> | 
|---|
 | 331 |   <target name="osx_application" description="Make an OS X application. Run with -Drelease=<number of release (eg. 3-4-1)>. Assumes a release target has been run first!"> | 
|---|
 | 332 |     <mkdir dir="${macdistrib}"/> | 
|---|
 | 333 |     <mkdir dir="${macdistrib}/weka-${release}"/> | 
|---|
 | 334 |     <copy todir="${macdistrib}/weka-${release}"> | 
|---|
 | 335 |       <fileset dir="weka-${release}/weka-${release}"/> | 
|---|
 | 336 |     </copy> | 
|---|
 | 337 |     <taskdef name="jarbundler"  | 
|---|
 | 338 |              classname="net.sourceforge.jarbundler.JarBundler" /> | 
|---|
 | 339 |     <jarbundler dir="${macdistrib}" | 
|---|
 | 340 |                 name="weka-${release}" | 
|---|
 | 341 |                 mainclass="weka.gui.GUIChooser" | 
|---|
 | 342 |                 icon="${src}/weka/gui/weka_icon.icns" | 
|---|
 | 343 |                 version="${release}" | 
|---|
 | 344 |                 verbose="true" | 
|---|
 | 345 |                 VMOptions="-Xmx256M" | 
|---|
 | 346 |                 shortname="Weka" | 
|---|
 | 347 |                 arguments="" | 
|---|
 | 348 |                 workingdirectory="$APP_PACKAGE/Contents/Resources" | 
|---|
 | 349 |                 jvmversion="1.5+"> | 
|---|
 | 350 |       <javaproperty name="java.library.path" value="$APP_PACKAGE/Contents/Resources"/> | 
|---|
 | 351 |       <jarfileset dir="weka-${release}/weka-${release}"> | 
|---|
 | 352 |         <include name="weka.jar"/> | 
|---|
 | 353 |       </jarfileset> | 
|---|
 | 354 |     </jarbundler> | 
|---|
 | 355 |  | 
|---|
 | 356 |     <!-- Make a .dmg disk image --> | 
|---|
 | 357 |     <exec executable="/usr/bin/hdiutil" os="Mac OS X"> | 
|---|
 | 358 |       <arg value="create"/> | 
|---|
 | 359 |       <arg value="-srcfolder"/> | 
|---|
 | 360 |       <arg value="${macdistrib}"/> | 
|---|
 | 361 |       <arg value="-volname"/> | 
|---|
 | 362 |       <arg value="weka-${release}"/> | 
|---|
 | 363 |       <arg value="-ov"/> | 
|---|
 | 364 |       <arg value="${macdistrib}/weka-${release}.dmg"/> | 
|---|
 | 365 |     </exec> | 
|---|
 | 366 |   </target> | 
|---|
 | 367 |  | 
|---|
 | 368 | <!-- New subversion stuff --> | 
|---|
 | 369 |  <target name="svnCheckout" description="Checkout from subversion. Run with -Dsvn_username=username -Dsvn_password=password -Dweka_branch=<branch name (e.g. trunk, branches/book2ndEd-branch)>."> | 
|---|
 | 370 |     <property name="source-root" value="."/> | 
|---|
 | 371 |     <property name="repository.URL" value="https://svn.scms.waikato.ac.nz/svn/weka"/> | 
|---|
 | 372 |     <java classname="org.tmatesoft.svn.cli.SVN" | 
|---|
 | 373 |        dir="${source-root}/" fork="true"> | 
|---|
 | 374 |       <arg value="co"/> | 
|---|
 | 375 |       <arg value="--username"/> | 
|---|
 | 376 |       <arg value="${svn_username}"/> | 
|---|
 | 377 |       <arg value="--password"/> | 
|---|
 | 378 |       <arg value="${svn_password}"/> | 
|---|
 | 379 |       <arg value="${repository.URL}/${weka_branch}/weka"/> | 
|---|
 | 380 |       <classpath> | 
|---|
 | 381 |         <pathelement location="${ant.home}/lib/svnkit.jar" /> | 
|---|
 | 382 |         <pathelement location="${ant.home}/lib/svnkit-cli.jar" /> | 
|---|
 | 383 |       </classpath> | 
|---|
 | 384 |     </java> | 
|---|
 | 385 |     <java classname="org.tmatesoft.svn.cli.SVN" | 
|---|
 | 386 |        dir="${source-root}/" fork="true"> | 
|---|
 | 387 |       <arg value="co"/> | 
|---|
 | 388 |       <arg value="--username"/> | 
|---|
 | 389 |       <arg value="${svn_username}"/> | 
|---|
 | 390 |       <arg value="--password"/> | 
|---|
 | 391 |       <arg value="${svn_password}"/> | 
|---|
 | 392 |       <arg value="${repository.URL}/${weka_branch}/wekadocs"/> | 
|---|
 | 393 |       <classpath> | 
|---|
 | 394 |         <pathelement location="${ant.home}/lib/svnkit.jar" /> | 
|---|
 | 395 |         <pathelement location="${ant.home}/lib/svnkit-cli.jar" /> | 
|---|
 | 396 |       </classpath> | 
|---|
 | 397 |     </java> | 
|---|
 | 398 |     <java classname="org.tmatesoft.svn.cli.SVN" | 
|---|
 | 399 |        dir="${source-root}/" fork="true"> | 
|---|
 | 400 |       <arg value="co"/> | 
|---|
 | 401 |       <arg value="--username"/> | 
|---|
 | 402 |       <arg value="${svn_username}"/> | 
|---|
 | 403 |       <arg value="--password"/> | 
|---|
 | 404 |       <arg value="${svn_password}"/> | 
|---|
 | 405 |       <arg value="${repository.URL}/${weka_branch}/installer"/> | 
|---|
 | 406 |       <classpath> | 
|---|
 | 407 |         <pathelement location="${ant.home}/lib/svnkit.jar" /> | 
|---|
 | 408 |         <pathelement location="${ant.home}/lib/svnkit-cli.jar" /> | 
|---|
 | 409 |       </classpath> | 
|---|
 | 410 |     </java> | 
|---|
 | 411 |   </target> | 
|---|
 | 412 |  | 
|---|
 | 413 |    <target name="changelog" | 
|---|
 | 414 |     description="Create a changelog file for a release of Weka. Run with -Dsvn_username=username -Dsvn_password=password -Drelease=<number of release (eg. 3-4-1)>, -Ddate_range=<date range for changes (eg. {2008-07-16}:{2008-09-29})>, -Dweka_branch=<branch name (e.g. trunk, branches/book2ndEd-branch)>."> | 
|---|
 | 415 |     <property name="repository.URL" value="https://svn.scms.waikato.ac.nz/svn/weka"/> | 
|---|
 | 416 |     <java classname="org.tmatesoft.svn.cli.SVN" fork="true" | 
|---|
 | 417 |           output="../wekadocs/changelogs/CHANGELOG-${release}"> | 
|---|
 | 418 |       <arg value="log"/> | 
|---|
 | 419 |       <arg value="--username"/> | 
|---|
 | 420 |       <arg value="${svn_username}"/> | 
|---|
 | 421 |       <arg value="--password"/> | 
|---|
 | 422 |       <arg value="${svn_password}"/> | 
|---|
 | 423 |       <arg value="-r"/> | 
|---|
 | 424 |       <arg value="${date_range}"/> | 
|---|
 | 425 |       <arg value="-v"/> | 
|---|
 | 426 |       <arg value="${repository.URL}/${weka_branch}/weka/src/main/java/weka"/> | 
|---|
 | 427 |       <classpath> | 
|---|
 | 428 |         <pathelement location="${ant.home}/lib/svnkit.jar" /> | 
|---|
 | 429 |         <pathelement location="${ant.home}/lib/svnkit-cli.jar" /> | 
|---|
 | 430 |       </classpath> | 
|---|
 | 431 |     </java> | 
|---|
 | 432 |   </target> | 
|---|
 | 433 |  | 
|---|
 | 434 |   <!-- This target is used for an automated nightly/weekly build job --> | 
|---|
 | 435 |   <target name="nightly_build" | 
|---|
 | 436 |           depends="init_tests" | 
|---|
 | 437 |           description="Does a svn checkout, builds, runs unit tests, and mails the output to mail recipients (run ant with -Dsvn_username=username -Dsvn_password=password -Dweka_branch=branch -Dmail_recipients=<email,email,...> -Dmail_sender=email -Dmail_smtp_host=smtp-server)"> | 
|---|
 | 438 |  | 
|---|
 | 439 |      <!-- run the build process --> | 
|---|
 | 440 |      <ant antfile="${ant.file}" target="svnCheckout" output="${reports}/nightly_build-init.txt"> | 
|---|
 | 441 |        <property name="mail_smtp_host" value="${mail_smtp_host}"/> | 
|---|
 | 442 |        <property name="mail_sender" value="${mail_sender}"/> | 
|---|
 | 443 |        <property name="mail_recipients" value="${mail_recipients}"/> | 
|---|
 | 444 |        <property name="svn_username" value="${svn_username}"/> | 
|---|
 | 445 |        <property name="svn_password" value="${svn_password}"/> | 
|---|
 | 446 |        <property name="weka_branch" value="${weka_branch}"/> | 
|---|
 | 447 |      </ant> | 
|---|
 | 448 |  | 
|---|
 | 449 |      <ant antfile="${ant.file}" dir="weka" target="run_tests" output="../${reports}/nightly_build-results.txt"> | 
|---|
 | 450 |        <property name="mail_smtp_host" value="${mail_smtp_host}"/> | 
|---|
 | 451 |        <property name="mail_sender" value="${mail_sender}"/> | 
|---|
 | 452 |        <property name="mail_recipients" value="${mail_recipients}"/> | 
|---|
 | 453 |        <property name="run_tests_fail" value="false"/> | 
|---|
 | 454 |        <property name="headless" value="${headless}"/> | 
|---|
 | 455 |      </ant> | 
|---|
 | 456 |  | 
|---|
 | 457 |      <!-- mail the results --> | 
|---|
 | 458 |      <mail messageMimeType="text/html" | 
|---|
 | 459 |                tolist="${mail_recipients}" | 
|---|
 | 460 |                mailhost="${mail_smtp_host}" | 
|---|
 | 461 |                subject="nightly build results (${weka_branch}): ${TODAY}" | 
|---|
 | 462 |                from="${mail_sender}"> | 
|---|
 | 463 |        <fileset dir="${reports}"> | 
|---|
 | 464 |          <include name="nightly_build*.*"/> | 
|---|
 | 465 |        </fileset> | 
|---|
 | 466 |      </mail> | 
|---|
 | 467 |   </target> | 
|---|
 | 468 |  | 
|---|
 | 469 |  | 
|---|
 | 470 | <!-- Clean --> | 
|---|
 | 471 |   <target name="clean" depends="init_all" | 
|---|
 | 472 |    description="Removes the build, dist and reports directories"> | 
|---|
 | 473 |     <!-- Delete the ${build} and ${dist} directory trees --> | 
|---|
 | 474 |     <delete dir="${build}"/> | 
|---|
 | 475 |     <delete dir="${dist}"/> | 
|---|
 | 476 |     <delete dir="${reports}"/> | 
|---|
 | 477 |   </target> | 
|---|
 | 478 |  | 
|---|
 | 479 |   <target name="superclean" depends="clean" | 
|---|
 | 480 |    description="Clean plus removes source trees! and doc directories"> | 
|---|
 | 481 |   <!-- WARNING, this deletes the source and doc directories --> | 
|---|
 | 482 |     <delete dir="${src}"/> | 
|---|
 | 483 |     <delete dir="${doc}"/> | 
|---|
 | 484 |   </target> | 
|---|
 | 485 | </project> | 
|---|