356 lines
18 KiB
XML
356 lines
18 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- ======================================================================= -->
|
|
<!-- Hop build file for building with ant -->
|
|
<!-- ======================================================================= -->
|
|
<!-- -->
|
|
<!-- Usage: -->
|
|
<!-- ant [-buildfile build.xml] target -->
|
|
<!-- -->
|
|
<!-- Available targets: -->
|
|
<!-- checkout copies helma source code from cvs -->
|
|
<!-- fullcheckout copies helma source code and applications from cvs -->
|
|
<!-- compile compiles helma source code to java classes -->
|
|
<!-- jar compiles helma source code to java archives -->
|
|
<!-- javadocs creates api documentation for helma java classes -->
|
|
<!-- helmadocs fetches printable user reference for helma -->
|
|
<!-- package creates directory with compiled helma and apps -->
|
|
<!-- fullpackage creates directory with compiled helma, docs and apps -->
|
|
<!-- package-zip creates zipped file of fullpackage -->
|
|
<!-- package-tgz creates tared and gzipped file of fullpackage -->
|
|
<!-- package-all creates fullpackage, package-zip and package-tgz -->
|
|
<!-- snapshotcompile compiles current helma snapshot to java classes -->
|
|
<!-- snapshot compiles current helma snapshot to java archive -->
|
|
<!-- app-package creates a zipped file of an application from cvs -->
|
|
<!-- antclick creates package incl. helma, Antville and manage app -->
|
|
<!-- cleanup removes temporary directories -->
|
|
<!-- fullcleanup removes all directories created by ant -->
|
|
|
|
<project name="Hop" default="main" basedir=".">
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Initializes some variables -->
|
|
<!-- =================================================================== -->
|
|
<target name="init">
|
|
<property name="Name" value="helma"/>
|
|
<property name="year" value="1998-2002"/>
|
|
<property name="version" value="1.2pre3"/>
|
|
<property name="project" value="helma"/>
|
|
<property name="build.compiler" value="classic"/>
|
|
|
|
<property name="home.dir" value=".."/>
|
|
|
|
<!-- values for building a snapshot -->
|
|
<property name="snapshot.src" value="${home.dir}/src"/>
|
|
<property name="snapshot.classes" value="${home.dir}/classes"/>
|
|
<property name="snapshot.lib" value="${home.dir}/lib"/>
|
|
|
|
<!-- values for building the distribution -->
|
|
<property name="build.work" value="${home.dir}/work"/>
|
|
<property name="build.checkout" value="${build.work}/checkout"/>
|
|
<property name="build.src" value="${build.checkout}/hop"/>
|
|
<property name="build.lib" value="${build.checkout}/hopbuild/lib"/>
|
|
<property name="build.classes" value="${build.work}/classes"/>
|
|
<property name="build.docs" value="${build.work}/docs"/>
|
|
<property name="build.javadocs" value="${build.docs}/api"/>
|
|
<property name="final.name" value="${project}-${version}"/>
|
|
<property name="final.dir" value="${build.work}/${final.name}"/>
|
|
|
|
<property name="cvs.root" value=":pserver:anonymous@coletta.helma.at:/opt/cvs"/>
|
|
<property name="jar.name" value="helma"/>
|
|
<property name="debug" value="off"/>
|
|
<property name="optimize" value="on"/>
|
|
<property name="deprecation" value="off"/>
|
|
|
|
<tstamp/>
|
|
|
|
<filter token="year" value="${year}"/>
|
|
<filter token="version" value="${version}"/>
|
|
<filter token="date" value="${TODAY}"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Copies the source code to the src directroy -->
|
|
<!-- =================================================================== -->
|
|
<target name="checkout" depends="init">
|
|
<mkdir dir="${snapshot.src}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="hop" dest="${snapshot.src}"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Copies the everything from cvs that's needed to build a full -->
|
|
<!-- helma distribution -->
|
|
<!-- =================================================================== -->
|
|
<target name="fullcheckout" depends="init">
|
|
<mkdir dir="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="hop" dest="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="hopbuild" dest="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="apps/base" dest="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="apps/himp" dest="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="apps/bloggerapi" dest="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="apps/lillebror" dest="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="apps/manage" dest="${build.checkout}"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Compiles the source directory -->
|
|
<!-- =================================================================== -->
|
|
<target name="compile" depends="init">
|
|
<mkdir dir="${build.classes}"/>
|
|
<javac srcdir="${build.src}"
|
|
destdir="${build.classes}"
|
|
debug="${debug}"
|
|
deprecation="${deprecation}"
|
|
optimize="${optimize}">
|
|
<classpath>
|
|
<fileset dir="${build.lib}">
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
<pathelement path="${classpath}" />
|
|
</classpath>
|
|
</javac>
|
|
<rmic classname="helma.framework.core.Application" base="${build.classes}"/>
|
|
<rmic classname="helma.image.Server" base="${build.classes}"/>
|
|
<rmic classname="helma.image.RemoteImage" base="${build.classes}"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Creates a .jar file -->
|
|
<!-- =================================================================== -->
|
|
<target name="jar" depends="compile">
|
|
<jar jarfile="${build.work}/${jar.name}-${DSTAMP}.jar"
|
|
basedir="${build.classes}"
|
|
excludes="**/package.html"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Creates the API documentation -->
|
|
<!-- =================================================================== -->
|
|
<target name="javadocs" depends="init">
|
|
<mkdir dir="${build.javadocs}"/>
|
|
<javadoc packagenames="helma.*"
|
|
sourcepath="${build.src}"
|
|
destdir="${build.javadocs}"
|
|
author="false"
|
|
private="false"
|
|
version="false"
|
|
windowtitle="${Name} ${version} API"
|
|
doctitle="${Name} ${version} API"
|
|
bottom="Copyright © ${year} Helma.org. All Rights Reserved.">
|
|
<classpath>
|
|
<fileset dir="${build.lib}">
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
<pathelement path="${classpath}" />
|
|
</classpath>
|
|
</javadoc>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Get the documentation (currently fails due to request time-out) -->
|
|
<!-- =================================================================== -->
|
|
<target name="helmadocs" depends="init">
|
|
<get src="http://www.helma.org/docs/reference/print"
|
|
dest="${build.docs}/reference.html"
|
|
ignoreerrors="true"
|
|
/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Package -->
|
|
<!-- =================================================================== -->
|
|
<target name="package" depends="init, fullcheckout, jar">
|
|
<mkdir dir="${final.dir}"/>
|
|
|
|
<mkdir dir="${final.dir}/src/hop"/>
|
|
<copy todir="${final.dir}/src/hop">
|
|
<fileset dir="${build.checkout}/hop" />
|
|
</copy>
|
|
|
|
<copy todir="${final.dir}/build">
|
|
<fileset dir="${build.checkout}/hopbuild/build"/>
|
|
</copy>
|
|
<chmod file="${final.dir}/build/build.sh" perm="755"/>
|
|
|
|
<copy todir="${final.dir}/lib">
|
|
<fileset dir="${build.checkout}/hopbuild/lib"/>
|
|
</copy>
|
|
|
|
<copy file="${build.work}/${jar.name}-${DSTAMP}.jar" tofile="${final.dir}/lib/helma.jar"/>
|
|
|
|
<copy todir="${final.dir}">
|
|
<fileset dir="${build.checkout}/hopbuild/skeleton" excludes="**/CVS,extras/**"/>
|
|
</copy>
|
|
<chmod file="${final.dir}/hop.sh" perm="755"/>
|
|
|
|
<copy todir="${final.dir}/apps">
|
|
<fileset dir="${build.checkout}/apps" excludes="**/CVS,manage/**"/>
|
|
</copy>
|
|
|
|
<mkdir dir="${final.dir}/apps/manage"/>
|
|
<zip zipfile="${final.dir}/apps/manage/manage.zip" basedir="${build.checkout}/apps/manage/" includes="**" excludes="**/properties,readme/**" />
|
|
<copy todir="${final.dir}/apps/manage">
|
|
<fileset dir="${build.checkout}/apps/manage" includes="app.properties,class.properties,readme.txt"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Full Package (includes documentation) -->
|
|
<!-- =================================================================== -->
|
|
<target name="fullpackage" depends="package, javadocs">
|
|
<copy todir="${final.dir}/docs">
|
|
<fileset dir="${build.docs}"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Packages the distribution with ZIP -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-zip" depends="fullpackage">
|
|
<zip zipfile="${home.dir}/${Name}-${version}.zip" basedir="${build.work}" includes="**/${final.name}/**"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Packages the distribution with TAR-GZIP -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-tgz" depends="fullpackage">
|
|
<tar tarfile="${build.work}/${Name}-${version}.tar" basedir="${build.work}/${final.name}" excludes="**">
|
|
<tarfileset dir="${build.work}" mode="755">
|
|
<include name="${final.name}/hop.sh"/>
|
|
<include name="${final.name}/build/build.sh"/>
|
|
</tarfileset>
|
|
<tarfileset dir="${build.work}">
|
|
<include name="${final.name}/**"/>
|
|
<exclude name="${final.name}/hop.sh"/>
|
|
<exclude name="${final.name}/build/build.sh"/>
|
|
</tarfileset>
|
|
</tar>
|
|
<gzip zipfile="${home.dir}/${Name}-${version}.tar.gz" src="${build.work}/${Name}-${version}.tar"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Packages the distribution with ZIP and TAR-GZIP -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-all" depends="package-zip, package-tgz">
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Compiles the source directory for a snapshot -->
|
|
<!-- =================================================================== -->
|
|
<target name="snapshotcompile" depends="init">
|
|
<mkdir dir="${snapshot.classes}"/>
|
|
<javac srcdir="${snapshot.src}/hop"
|
|
destdir="${snapshot.classes}"
|
|
debug="${debug}"
|
|
deprecation="${deprecation}"
|
|
optimize="${optimize}">
|
|
<classpath>
|
|
<fileset dir="${snapshot.lib}">
|
|
<include name="**/*.jar" />
|
|
<exclude name="**/helma*.jar" />
|
|
</fileset>
|
|
<pathelement path="${classpath}" />
|
|
</classpath>
|
|
</javac>
|
|
<rmic classname="helma.framework.core.Application" base="${snapshot.classes}"/>
|
|
<rmic classname="helma.image.Server" base="${snapshot.classes}"/>
|
|
<rmic classname="helma.image.RemoteImage" base="${snapshot.classes}"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Creates a .jar file for a snapshot -->
|
|
<!-- =================================================================== -->
|
|
<target name="snapshot" depends="snapshotcompile">
|
|
<jar jarfile="${snapshot.lib}/${jar.name}-${DSTAMP}.jar"
|
|
basedir="${snapshot.classes}"
|
|
excludes="**/package.html"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Checks out and zips an application defined by -Dapplication=appName -->
|
|
<!-- e.g. ant [-buildfile build.xml] -Dapplication=helmaorg -->
|
|
<!-- =================================================================== -->
|
|
<target name="app-package" depends="init">
|
|
<mkdir dir="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="apps/${application}" dest="${build.checkout}"/>
|
|
<zip zipfile="../${application}.zip" basedir="${build.checkout}/apps/${application}/" includes="**"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Make Antclick package (helma plus Antville and manage apps) -->
|
|
<!-- =================================================================== -->
|
|
<target name="antclick" depends="package">
|
|
<property name="antclick.dir" value="${build.work}/antclick"/>
|
|
<mkdir dir="${antclick.dir}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="apps/antville" dest="${build.checkout}"/>
|
|
<copy todir="${antclick.dir}/">
|
|
<fileset dir="${final.dir}" includes="db.properties,server.properties,*.txt,lib/**,db/antville.*"/>
|
|
</copy>
|
|
<copy todir="${antclick.dir}/apps/">
|
|
<fileset dir="${build.checkout}/apps" excludes="antville/images.zip,antville/*.sql,antville/db.properties" includes="antville/**"/>
|
|
</copy>
|
|
<copy todir="${antclick.dir}/apps/">
|
|
<fileset dir="${final.dir}/apps" includes="manage/**"/>
|
|
</copy>
|
|
<copy todir="${antclick.dir}/">
|
|
<fileset dir="${build.checkout}/hopbuild/skeleton/extras" includes="apps.properties,hop.bat,hop.sh"/>
|
|
</copy>
|
|
<copy todir="${antclick.dir}/lib/">
|
|
<fileset dir="${build.checkout}/hopbuild/skeleton/extras" includes="hsqldb-1.7RC5Pre2-patched.jar"/>
|
|
</copy>
|
|
<mkdir dir="${antclick.dir}/static/antville"/>
|
|
<unzip src="${build.checkout}/apps/antville/images.zip" dest="${antclick.dir}/static/antville">
|
|
<patternset>
|
|
<include name="**"/>
|
|
</patternset>
|
|
</unzip>
|
|
<copy todir="${antclick.dir}/apps/antville/">
|
|
<fileset dir="${build.checkout}/hopbuild/skeleton/extras" includes="db.properties"/>
|
|
</copy>
|
|
<chmod file="${antclick.dir}/hop.sh" perm="755"/>
|
|
<zip zipfile="../antclick.zip" basedir="${build.work}/" includes="antclick/**"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Remove temporary directories -->
|
|
<!-- =================================================================== -->
|
|
<target name="cleanup" depends="init">
|
|
<delete dir="${build.classes}"/>
|
|
<delete dir="${final.dir}"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Remove all directories created by ant -->
|
|
<!-- =================================================================== -->
|
|
<target name="fullcleanup" depends="init">
|
|
<delete dir="${build.work}"/>
|
|
<delete dir="${snapshot.src}"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- These are just some test targets -->
|
|
<!-- =================================================================== -->
|
|
<target name="ftp-test" depends="">
|
|
<ftp server="piefke.helma.at"
|
|
userid="anonymous"
|
|
password="tobi@helma.at">
|
|
<fileset dir="${home.dir}">
|
|
<include name="${Name}-${version}.zip,${Name}-${version}.tar.gz"/>
|
|
</fileset>
|
|
</ftp>
|
|
</target>
|
|
|
|
<target name="test1" depends="init">
|
|
<mkdir dir="${build.checkout}"/>
|
|
<cvs cvsRoot="${cvs.root}" package="apps/manage" dest="${build.checkout}"/>
|
|
<zip zipfile="../manage.zip" basedir="${build.checkout}/apps/manage/" includes="**"/>
|
|
</target>
|
|
|
|
<target name="test2" depends="init">
|
|
<property name="antclick.dir" value="${build.work}/antclick"/>
|
|
<copy todir="${antclick.dir}/apps/antville/">
|
|
<fileset dir="${build.checkout}/hopbuild/skeleton/extras" includes="db.properties"/>
|
|
</copy>
|
|
</target>
|
|
|
|
</project>
|