"build package" now works in helma/work-directory only. added targets "build snapshot" and "build snapshotcompile" to build helma.jar added target "build helmadocs" to download documentation from helma.org.
293 lines
14 KiB
XML
293 lines
14 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- ======================================================================= -->
|
|
<!-- Hop build file -->
|
|
<!-- ======================================================================= -->
|
|
<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/hop"/>
|
|
<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}"/>
|
|
|
|
<!-- JDK1.1 collections support -->
|
|
<property name="coll.import" value="com.sun.java.util.collections"/>
|
|
<available classname="${coll.import}.Collection" property="coll.present"/>
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Copies the source code to the build directory and does filtering -->
|
|
<!-- =================================================================== -->
|
|
<target name="checkout" depends="init">
|
|
<mkdir dir="${build.src}"/>
|
|
<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/hopblog" 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>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Does replacement on files for dealing with collections. -->
|
|
<!-- XXX The efficiency could be improved here; all replacements should -->
|
|
<!-- XXX happen during one read/write phase and only for files that have -->
|
|
<!-- XXX changed. -->
|
|
<!-- =================================================================== -->
|
|
<target name="collections" if="coll.present" depends="init">
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.Collection" value="${coll.import}.Collection"/>
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.Map" value="${coll.import}.Map"/>
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.HashMap" value="${coll.import}.HashMap"/>
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.List" value="${coll.import}.List"/>
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.LinkedList" value="${coll.import}.LinkedList"/>
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.ArrayList" value="${coll.import}.ArrayList"/>
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.Set" value="${coll.import}.Set"/>
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.HashSet" value="${coll.import}.HashSet"/>
|
|
<replace dir="${build.src}/helma" includes="**"
|
|
token="java.util.Iterator" value="${coll.import}.Iterator"/>
|
|
<!-- The following replace handles the "import java.util.*" case by -->
|
|
<!-- adding an "import com.sun.java.util.collections.*" after it. -->
|
|
<!-- BTW, \u000a is the Unicode escape for a new line. (jhunter) -->
|
|
<replace dir="${build.src}/helma/framework/core" includes="**"
|
|
token="java.util.*"
|
|
value="java.util.*;\u000aimport ${coll.import}.*"/>
|
|
<replace dir="${build.src}/helma/objectmodel" includes="**"
|
|
token="java.util.*"
|
|
value="java.util.*;\u000aimport ${coll.import}.*"/>
|
|
</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 -->
|
|
<!-- =================================================================== -->
|
|
<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, checkout, jar, javadocs, helmadocs">
|
|
<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}/docs">
|
|
<fileset dir="${build.docs}"/>
|
|
</copy>
|
|
|
|
<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"/>
|
|
</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>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Packages the distribution with ZIP -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-zip" depends="package">
|
|
<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="package">
|
|
<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}"
|
|
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>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- These are just some tests -->
|
|
<!-- =================================================================== -->
|
|
<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>
|
|
|
|
</project>
|