blob: f5b7df5052212620e8bd0cb4616c535ade27ed24 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<project name="JDBM" default="all" basedir="..">
<target name="init">
<property name="project" value="jdbm" />
<property name="source" value="./src" />
<property name="main" value="${source}/main" />
<property name="etc" value="${source}/etc" />
<property name="build" value="build" />
<property name="classes" value="${build}/classes" />
<property name="test-classes" value="${build}/test-classes" />
<property name="dist" value="dist" />
<property name="lib" value="lib" />
<property name="doc" value="${source}/doc" />
<property name="schema" value="${source}/schema" />
<property name="test" value="${build}/test" />
<property name="classpath" value="${classpath}:${classes}" />
<property name="build.compiler" value="modern" />
<property name="deprecation" value="true" />
<property file="VERSION" />
<property name="version" value="unspecified" description="default value; should never happen"/>
<property name="archive" value="${project}-${version}" />
</target>
<!-- Display all the targets -->
<target name="targets">
<echo message=""/>
<echo message="ANT build for ${project} ${version}"/>
<echo message=""/>
<echo message="The following targets are available:"/>
<echo message=" targets Lists the build targets"/>
<echo message=" clean Cleans the build and distribution directories"/>
<echo message=" all Cleans and builds all the packages and examples"/>
<echo message=" release Cleans and builds all the release packages"/>
<echo message=" (JAR, source, doc, tarball) in the dist directory"/>
<echo message=" main Builds the main packages (including debugging info)"/>
<echo message=" examples Builds the example packages (including debugging info)"/>
<echo message=" tests Builds the test packages (including debugging info)"/>
<echo message=" tests.run Runs unit tests" />
<echo message=" jar Builds the binary JAR in the dist directory"/>
<echo message=" doc Builds the documentation"/>
<echo message=" api Builds the API JavaDocs"/>
<echo message=" javadoc Builds the full JavaDocs"/>
<echo message=" source Builds the source tarball in the dist directory"/>
<echo message=" tarball Builds the binary distribution in the dist directory"/>
<echo message=" cvs Update the sources from the CVS"/>
<echo message=""/>
</target>
<!-- Prepare target directories -->
<target name="prepare" depends="init">
<mkdir dir="${build}"/>
<mkdir dir="${classes}"/>
<mkdir dir="${dist}"/>
<mkdir dir="${test}"/>
</target>
<!-- Kill all the directories created in prepare -->
<target name="clean" depends="init">
<delete dir="${test}"/>
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
<!-- Build all the sources with debug and deprecation -->
<target name="main" depends="prepare">
<javac srcdir="${main}" destdir="${classes}" excludes="**/package.html"
classpath="${classpath}" debug="on" deprecation="${deprecation}" source="1.3" target="1.3"/>
</target>
<!-- Same as main, but also cleans and additional targets -->
<target name="all" depends="clean,main,examples,jar"/>
<!-- Run the unit tests -->
<target name="tests.run" depends="tests">
<!-- showoutput 'yes' to allow outputting debug msgs... -->
<junit fork="no" printsummary="yes" haltonfailure="no"
showoutput="yes">
<batchtest fork="no" todir="${test}">
<fileset dir="${test-classes}">
<include name="**/Test*.class"/>
</fileset>
</batchtest>
<formatter type="xml" />
<classpath>
<pathelement path="${classes}" />
<pathelement path="${test-classes}" />
</classpath>
</junit>
<junitreport todir="${build}/test">
<fileset dir="${build}/test">
<include name="TEST-*.xml" />
</fileset>
<report todir="${build}/test" />
</junitreport>
</target>
<!-- Build the example packages -->
<target name="examples" depends="main">
<mkdir dir="${build}/examples" />
<javac srcdir="${source}/examples" destdir="${build}/examples"
classpath="${classpath}" debug="on" deprecation="${deprecation}" />
</target>
<!-- Build the test packages -->
<target name="tests" depends="main">
<mkdir dir="${test-classes}" />
<javac srcdir="${source}/tests" destdir="${test-classes}"
classpath="${classpath}" debug="on" deprecation="${deprecation}" />
</target>
<!-- Build the JAR file using main -->
<target name="jar" depends="main">
<delete file="${dist}/${archive}.jar" />
<copy file="${etc}/MANIFEST.MF" tofile="${classes}/MANIFEST.MF" />
<replace file="${classes}/MANIFEST.MF" token="$$VERSION$$" value="${version}" />
<copy todir="${classes}">
<fileset dir="." includes="LICENSE.txt,CHANGES.txt,README.txt" />
</copy>
<jar jarfile="${dist}/${archive}.jar" basedir="${classes}"
manifest="${classes}/MANIFEST.MF" includes="LICENSE.txt,README.txt,CHANGES.txt,jdbm/**" />
</target>
<!-- Build the full JavaDocs -->
<target name="javadoc" depends="prepare">
<mkdir dir="${build}/doc" />
<mkdir dir="${build}/doc/javadoc" />
<property name="copyright"
value="Cees de Groot (C) 2000-2001. All rights reserved http://jdbm.sourceforge.net" />
<javadoc sourcepath="${main}" destdir="${build}/doc/javadoc"
doctitle="JDBM JavaDoc" windowtitle="JDBM JavaDoc" bottom="${copyright}"
package="true" author="true" version="true" noindex="true"
packagenames="jdbm.*">
<link href="http://java.sun.com/products/jdk/1.2/docs/api"/>
<link href="http://www.junit.org/junit/javadoc/3.8"/>
</javadoc>
</target>
<!-- Build the API JavaDocs -->
<target name="api" depends="prepare">
<mkdir dir="${build}/doc" />
<mkdir dir="${build}/doc/api" />
<property name="copyright"
value="Cees de Groot (C) 2000. All rights reserved http://jdbm.sourceforge.net" />
<javadoc sourcepath="${main}" destdir="${build}/doc/api"
doctitle="JDBM JavaDoc" windowtitle="JDBM JavaDoc" bottom="${copyright}"
public="true" author="true"
packagenames="jdbm.*">
<link href="http://java.sun.com/products/jdk/1.2/docs/api"/>
</javadoc>
</target>
<!-- Build the docs, API and full JavaDocs, doc archives -->
<!-- Note CdG: Removed doc dependency, we don't have it yet... -->
<target name="docs" depends="api,javadoc">
<zip zipfile="${dist}/${archive}-doc.zip" basedir="${build}" includes="doc/**" />
<tar tarfile="${dist}/${archive}-doc.tar" basedir="${build}" includes="doc/**" />
<gzip src="${dist}/${archive}-doc.tar" zipfile="${dist}/${archive}-doc.tgz" />
<delete file="${dist}/${archive}-doc.tar" />
</target>
<!-- Build the source distribution -->
<target name="source" depends="prepare">
<delete file="${dist}/${archive}-src.tgz" />
<delete file="${dist}/${archive}-src.zip" />
<delete dir="${build}/${archive}" />
<mkdir dir="${build}/${archive}" />
<mkdir dir="${build}/${archive}/src" />
<copy todir="${build}/${archive}/src">
<fileset dir="${source}"/>
</copy>
<mkdir dir="${build}/${archive}/lib" />
<copy todir="${build}/${archive}/lib">
<fileset dir="${lib}"/>
</copy>
<copy todir="${build}/${archive}">
<fileset dir="${source}" includes="*.sh,*.bat"/>
</copy>
<tar includes="${archive}/**" basedir="${build}"
tarfile="${dist}/${archive}-src.tar" />
<gzip src="${dist}/${archive}-src.tar" zipfile="${dist}/${archive}-src.tgz"/>
<delete file="${dist}/${archive}-src.tar" />
<zip zipfile="${dist}/${archive}-src.zip" basedir="${build}"
includes="${archive}/**" />
</target>
<!-- Build a full release including JAR, zip/tarball, source and documentation -->
<target name="release" depends="clean,jar,source,docs,tarball">
</target>
<!-- Build the tarball including JAR and all dependent packages -->
<target name="tarball" depends="prepare,jar,docs">
<delete file="${dist}/${archive}.tgz" />
<delete file="${dist}/${archive}.zip" />
<delete dir="${build}/${archive}" />
<mkdir dir="${build}/${archive}" />
<copy todir="${build}/${archive}">
<fileset dir="." includes="README.txt,LICENSE.txt,CHANGES.txt" />
</copy>
<copy todir="${build}/${archive}/lib">
<fileset dir="${dist}" includes="${archive}.jar" />
</copy>
<copy todir="${build}/${archive}/doc">
<fileset dir="${build}/doc/api" includes="**"/>
</copy>
<copy todir="${build}/${archive}">
<fileset dir="${source}" includes="examples/**"/>
</copy>
<tar tarfile="${dist}/${archive}.tar" basedir="${build}"
includes="${archive}/**" excludes="${archive}/*.tar,${archive}/*.zip" />
<gzip src="${dist}/${archive}.tar" zipfile="${dist}/${archive}.tgz" />
<delete file="${dist}/${archive}.tar" />
<zip zipfile="${dist}/${archive}.zip" basedir="${build}"
includes="${archive}/**" excludes="${archive}/*.tar,${archive}/*.tgz" />
</target>
<!-- Update the sources from the CVS -->
<target name="cvs" depends="clean">
<cvs cvsRoot=":pserver:anoncvs@cvs.jdbm.sourceforge.net:/cvs/${project}"
dest="." package="${project}" />
</target>
</project>