| <!-- |
| |
| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| --> |
| <project name="common" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> |
| <property name="version" value="0.1-dev" /> |
| <tstamp> |
| <format property="year" pattern="yyyy"/> |
| <format property="DSTAMP" pattern="yyyy-MM-dd"/> |
| <format property="TSTAMP" pattern="HH:mm:ss"/> |
| <!-- datetime format that is safe to treat as part of a dotted version --> |
| <format property="dateversion" pattern="yyyy.MM.dd.HH.mm.ss" /> |
| </tstamp> |
| <!-- Java Version we are compatible with --> |
| <property name="java.compat.version" value="6" /> |
| |
| <!-- Mahout Implementation Version --> |
| <!-- |
| This can be any string value that does not include spaces |
| This will be used when creating build artifact file names. |
| |
| By default, this should be set to "X.Y.N-dev" where X.Y.N is |
| "1 greater" then the last version released (on this branch). |
| |
| NOTE: WHEN DOING A RELEASE CHANGE THE SPECVERSION TOO! |
| |
| --> |
| <property name="version" value="0.1-dev" /> |
| <!-- Mahout Specification Version --> |
| <!-- |
| This will be used in the Manifest file, and therefore must |
| match the pattern "digit+{.digit+}*" |
| |
| By default, this should be set to "X.Y.M.${dateversion}" |
| where X.Y.M is the last version released (on this branch). |
| --> |
| <property name="specversion" value="0.1.${dateversion}" /> |
| |
| <!-- Type of checksum to compute for distribution files --> |
| <property name="checksum.algorithm" value="md5" /> |
| |
| <!-- Destination for compiled classes and binaries --> |
| <property name="dest" value="build" /> |
| |
| <!-- Destination for distribution files (demo WAR, src distro, etc.) --> |
| <property name="dist" value="dist" /> |
| |
| <property name="memory" value="256m"/> |
| |
| |
| <dirname file="${ant.file.common}" property="common.dir"/> |
| |
| <property name="shared-lib" value="${common.dir}/lib" /> |
| |
| <!-- Javadoc properties --> |
| <property name="javadoc.years" value="2008 - ${year}" /> |
| <property name="build.docs" value="${dest}/docs"/> |
| <property name="build.javadoc" value="${build.docs}/api"/> |
| <property name="javadoc.access" value="protected"/> |
| <property name="javadoc.link.java" |
| value="http://java.sun.com/javase/6/docs/api/"/> |
| <property name="javadoc.link.junit" |
| value="http://junit.sourceforge.net/javadoc/"/> |
| <property name="javadoc.link.lucene" |
| value="http://lucene.apache.org/java/docs/api/"/> |
| <property name="javadoc.packages" value="org.apache.mahout.*"/> |
| |
| <!-- JUnit --> |
| <property name="junit.output.dir" location="${dest}/test-results"/> |
| <property name="junit.reports" location="${dest}/test-results/reports"/> |
| <property name="junit.includes" value="**/Test*.java,**/*Test.java"/> |
| <property name="tests.verbose" value="false"/> |
| <property name="junit.jar" value="junit-3.8.2.jar"/> |
| <property name="junit-location.jar" value="${shared-lib}/${junit.jar}"/> |
| |
| <path id="junit-path"> |
| <pathelement location="${junit-location.jar}"/> |
| </path> |
| |
| <!-- Macro for compilation --> |
| <macrodef name="mahout-javac"> |
| <attribute name="destdir" /> |
| <attribute name="classpathref" /> |
| <element name="nested" optional="true" implicit="true" /> |
| <sequential> |
| <mkdir dir="@{destdir}" /> |
| <javac destdir="@{destdir}" |
| target="${java.compat.version}" |
| source="${java.compat.version}" |
| debug="on" |
| encoding="utf8" |
| sourcepath="" |
| classpathref="@{classpathref}"> |
| <compilerarg value="-Xlint:all,-serial"/> |
| <nested /> |
| </javac> |
| </sequential> |
| </macrodef> |
| |
| <!-- Macro for building Jars --> |
| <macrodef name="mahout-jar"> |
| <attribute name="destfile" /> |
| <attribute name="basedir" /> |
| <attribute name="includes" default="org/apache/**" /> |
| <attribute name="manifest" default="${dest}/META-INF/MANIFEST.MF" /> |
| <element name="nested" optional="true" implicit="true" /> |
| <sequential> |
| <jar destfile="@{destfile}" |
| basedir="@{basedir}" |
| includes="@{includes}" |
| filesetmanifest="skip" |
| manifest="@{manifest}"> |
| <metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/> |
| <nested /> |
| </jar> |
| </sequential> |
| </macrodef> |
| |
| <!-- Macro for building checksum files |
| This is only needed until the "format" option is supported |
| by ant's built in checksum task |
| --> |
| <macrodef name="mahout-checksum"> |
| <attribute name="file"/> |
| <!-- NOTE: we use the value of @{file} in the names any properties |
| set because macro's don't have variables, and otherwise we |
| wouldn't be able to checksum more then one file per build |
| --> |
| <sequential> |
| <checksum file="@{file}" |
| property="@{file}.sum" |
| algorithm="${checksum.algorithm}" /> |
| <basename file="@{file}" property="@{file}.base" /> |
| <concat destfile="@{file}.${checksum.algorithm}" |
| force="yes" |
| append="false" |
| fixlastline="yes"> |
| <header trimleading="yes">${@{file}.sum} </header> |
| <!-- empty fileset to trick concat --> |
| <fileset dir="." excludes="**" /> |
| <footer trimleading="yes">${@{file}.base} |
| </footer> |
| </concat> |
| </sequential> |
| </macrodef> |
| |
| <target name="make-manifest" > |
| <!-- If possible, include the svnversion --> |
| <exec dir="." executable="svnversion" outputproperty="svnversion" failifexecutionfails="false"> |
| <arg line="."/> |
| </exec> |
| |
| <!-- no description, don't advertise --> |
| <mkdir dir="${dest}/META-INF/" /> |
| <manifest mode="replace" file="${dest}/META-INF/MANIFEST.MF"> |
| <!-- |
| http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#JAR%20Manifest |
| http://java.sun.com/j2se/1.5.0/docs/guide/versioning/spec/versioning2.html |
| http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Package.html |
| http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/package-summary.html |
| http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html |
| --> |
| <!-- Don't set 'Manifest-Version' it identifies the version of the |
| manifest file format, and should allways be 1.0 (the default) |
| |
| Don't set 'Created-by' attribute, it's purpose is |
| to identify the version of java used to build the jar, |
| which ant will do by default. |
| |
| Ant will happily override these with bogus strings if you |
| tell it to, so don't. |
| |
| NOTE: we don't use section info because all of our manifest data |
| applies to the entire jar/war ... no package specific info. |
| --> |
| <attribute name="Extension-Name" |
| value="org.apache.mahout"/> |
| <attribute name="Specification-Title" |
| value="Apache Mahout Machine Learning"/> |
| <!-- spec version must match "digit+{.digit+}*" --> |
| <attribute name="Specification-Version" |
| value="${specversion}"/> |
| <attribute name="Specification-Vendor" |
| value="The Apache Software Foundation"/> |
| <attribute name="Implementation-Title" |
| value="org.apache.mahout"/> |
| <!-- impl version can be any string --> |
| <attribute name="Implementation-Version" |
| value="${version} ${svnversion} - ${user.name} - ${DSTAMP} ${TSTAMP}"/> |
| <attribute name="Implementation-Vendor" |
| value="The Apache Software Foundation"/> |
| <attribute name="X-Compile-Source-JDK" |
| value="${java.compat.version}"/> |
| <attribute name="X-Compile-Target-JDK" |
| value="${java.compat.version}"/> |
| </manifest> |
| </target> |
| |
| </project> |