516 lines
23 KiB
XML
516 lines
23 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<project name="Helma" default="usage" basedir=".">
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Initializes some variables -->
|
|
<!-- =================================================================== -->
|
|
<target name="init">
|
|
<property name="Name" value="helma"/>
|
|
<property name="year" value="1998-${year}"/>
|
|
<property name="version" value="1.6.0"/>
|
|
<property name="project" value="helma"/>
|
|
|
|
<property name="cvs.root.apps" value=":pserver:anonymous@adele.helma.at:/opt/cvs/apps"/>
|
|
<property name="cvs.root.helma" value=":pserver:anonymous@adele.helma.at:/opt/cvs/helma"/>
|
|
<property name="cvs.apps.tag" value="HEAD"/>
|
|
|
|
<property name="home.dir" value=".."/>
|
|
<property name="build.dir" value="${home.dir}/build"/>
|
|
<property name="build.src" value="${home.dir}/src"/>
|
|
<property name="build.lib" value="${home.dir}/lib"/>
|
|
<property name="build.classes" value="${home.dir}/classes"/>
|
|
<property name="build.docs" value="${home.dir}/docs"/>
|
|
<property name="build.javadocs" value="${home.dir}/docs/api"/>
|
|
|
|
<property name="build.work" value="${home.dir}/work"/>
|
|
<property name="build.dist" value="${home.dir}/dist"/>
|
|
|
|
<property name="jar.name" value="${project}"/>
|
|
<property name="package.name" value="${project}-${version}"/>
|
|
<property name="core.name" value="${project}-core-${version}"/>
|
|
|
|
<property name="debug" value="on"/>
|
|
<property name="optimize" value="on"/>
|
|
<property name="deprecation" value="off"/>
|
|
|
|
<property name="build.jsdocs" value="${home.dir}/docs/framework"/>
|
|
<property name="jsdoc" value="/usr/local/jsdoc/jsdoc.pl"/>
|
|
|
|
<path id="build.class.path">
|
|
<fileset dir="${home.dir}/lib">
|
|
<exclude name="**/helma*.jar" />
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
</path>
|
|
|
|
<tstamp/>
|
|
|
|
<filter token="year" value="${year}"/>
|
|
<filter token="version" value="${version}"/>
|
|
<filter token="date" value="${TODAY}"/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Help on usage -->
|
|
<!-- =================================================================== -->
|
|
<target name="help" depends="usage" />
|
|
<target name="usage">
|
|
<echo message=""/>
|
|
<echo message=""/>
|
|
<echo message="Helma build instructions"/>
|
|
<echo message="-------------------------------------------------------------"/>
|
|
<echo message=""/>
|
|
<echo message=" available targets are:"/>
|
|
<echo message=""/>
|
|
<echo message=" compile --> compiles the source code to ./classes"/>
|
|
<echo message=" jar --> generates the ./lib/helma-YYYYMMDD.jar file"/>
|
|
<echo message=" javadocs --> generates the API docs"/>
|
|
<echo message=" jsdocs --> generates the framework docs"/>
|
|
<!--<echo message=" docs -> tries to retrieve the HTML documentation "/> -->
|
|
<!--<echo message=" (may need proxy settings in startscript)"/> -->
|
|
<echo message=" package --> generates the distribution (zip and tar.gz)"/>
|
|
<echo message=" app [name] --> gets an application from the cvs and zips it"/>
|
|
<echo message=" module [name] --> gets a module from the cvs and zips it"/>
|
|
<echo message=" core --> generates core for production updates (zip and tar.gz)"/>
|
|
<echo message=""/>
|
|
<echo message=" usage --> provides help on using the build tool (default)"/>
|
|
<echo message=""/>
|
|
<echo message=" See comments inside the build.xml file for more details."/>
|
|
<echo message="-------------------------------------------------------------"/>
|
|
<echo message=""/>
|
|
<echo message=""/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Compiles the source directory -->
|
|
<!-- =================================================================== -->
|
|
<target name="compile" depends="init">
|
|
<mkdir dir="${build.classes}"/>
|
|
<!-- copy the imageio file -->
|
|
<copy file="${build.src}/META-INF/services/javax.imageio.spi.ImageWriterSpi"
|
|
todir="${build.classes}/META-INF/services"/>
|
|
<!-- copy helma db style sheet -->
|
|
<copy file="${build.src}/helma/objectmodel/dom/helma.xsl"
|
|
todir="${build.classes}/helma/objectmodel/dom" />
|
|
<!-- copy source files over to work directory -->
|
|
<delete dir="${build.work}/src" quiet="true"/>
|
|
<mkdir dir="${build.work}/src" />
|
|
<copy todir="${build.work}/src" overwrite="true">
|
|
<fileset dir="${build.src}" includes="**/*.java"/>
|
|
</copy>
|
|
<replace file="${build.work}/src/helma/main/Server.java"
|
|
token="__builddate__" value="${TODAY}"/>
|
|
<javac srcdir="${build.work}/src"
|
|
source="1.4"
|
|
target="1.4"
|
|
destdir="${build.classes}"
|
|
debug="${debug}"
|
|
deprecation="${deprecation}"
|
|
optimize="${optimize}"
|
|
includeAntRuntime="no">
|
|
<classpath refid="build.class.path" />
|
|
</javac>
|
|
<delete dir="${build.work}/src"/>
|
|
<rmic classname="helma.framework.core.RemoteApplication" base="${build.classes}"/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Creates a helma.jar file (snapshot) in the lib-directory -->
|
|
<!-- =================================================================== -->
|
|
<target name="jar" depends="compile">
|
|
<jar jarfile="${build.lib}/${jar.name}-${DSTAMP}.jar"
|
|
basedir="${build.classes}"
|
|
excludes="**/package.html,**/main/launcher/**"/>
|
|
<jar jarfile="${home.dir}/launcher.jar"
|
|
basedir="${build.classes}"
|
|
includes="**/main/launcher/**"
|
|
manifest="${build.src}/helma/main/launcher/manifest.txt"/>
|
|
<!-- Copy timestamped helma jar file to lib/helma.jar -->
|
|
<copy file="${build.lib}/${jar.name}-${DSTAMP}.jar"
|
|
tofile="${build.lib}/${jar.name}.jar"/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Creates the javadoc 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."
|
|
classpathref="build.class.path"
|
|
/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Create the jsdoc Framework documentation -->
|
|
<!-- =================================================================== -->
|
|
<target name="jsdocs" depends="init, package-modules">
|
|
<cvs cvsRoot="${cvs.root.apps}" command="export" tag="${cvs.apps.tag}" package="reference" dest="${build.work}" />
|
|
<mkdir dir="${build.jsdocs}"/>
|
|
<exec executable="${jsdoc}" dir="${build.work}" >
|
|
<arg value="-r"/>
|
|
<arg value="-d"/>
|
|
<arg value="${build.jsdocs}"/>
|
|
<arg value="--no-sources"/>
|
|
<arg value="--project-name"/>
|
|
<arg value="helma"/>
|
|
<arg value="--globals-name"/>
|
|
<arg value="global"/>
|
|
<arg value="--template-dir"/>
|
|
<arg value="${build.work}/reference/templates"/>
|
|
<arg value="--logo"/>
|
|
<arg value="${home.dir}/static/helma2.gif"/>
|
|
<arg value="${build.work}/reference/coreEnvironment" />
|
|
<arg value="${build.work}/reference/coreExtensions" />
|
|
<arg value="${build.work}/modules"/>
|
|
</exec>
|
|
<delete dir="${build.work}/reference" />
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Get the documentation (currently can fail due to request time-out -->
|
|
<!-- or missing support for proxies) -->
|
|
<!-- =================================================================== -->
|
|
<!-- <target name="docs" depends="init"> -->
|
|
<!-- <get src="http://www.helma.org/docs/reference/print" -->
|
|
<!-- dest="${build.docs}/reference.html" -->
|
|
<!-- ignoreerrors="true" -->
|
|
<!-- /> -->
|
|
<!-- </target> -->
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Builds and packages only the core for the deployment and updating -->
|
|
<!-- of production environments -->
|
|
<!-- =================================================================== -->
|
|
<target name="core" depends="init, jar">
|
|
<mkdir dir="${build.work}"/>
|
|
|
|
<!-- copy all libraries except helma-YYYYMMDD.jar -->
|
|
<copy todir="${build.work}/lib">
|
|
<fileset dir="${home.dir}/lib">
|
|
<exclude name="**/helma-*.jar" />
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- copy the launcher jar and start files-->
|
|
<copy file="${home.dir}/launcher.jar" todir="${build.work}/lib"/>
|
|
|
|
<!-- create lib/ext directory -->
|
|
<mkdir dir="${build.work}/lib/ext"/>
|
|
|
|
<!-- copy the license files -->
|
|
<copy todir="${build.work}/licenses">
|
|
<fileset dir="${home.dir}/licenses" excludes="**/CVS**"/>
|
|
</copy>
|
|
<copy file="${home.dir}/license.txt" todir="${build.work}/licenses"/>
|
|
|
|
<!-- zip up the whole thing -->
|
|
<antcall target="package-zip">
|
|
<param name="filename" value="${core.name}"/>
|
|
</antcall>
|
|
<antcall target="package-tgz">
|
|
<param name="filename" value="${core.name}"/>
|
|
</antcall>
|
|
|
|
<!-- clean up -->
|
|
<delete dir="${build.work}"/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Creates the full helma distribution -->
|
|
<!-- =================================================================== -->
|
|
<target name="package" depends="init">
|
|
<mkdir dir="${build.work}"/>
|
|
|
|
<!-- checkout the demo apps (and zip manage-app) -->
|
|
<antcall target="package-apps" />
|
|
|
|
<!-- checkout the helmaLib modules and add the zipped helmaTools -->
|
|
<antcall target="package-modules" />
|
|
|
|
<!-- create the main part of helma -->
|
|
<antcall target="package-raw">
|
|
<param name="distribution" value="main" />
|
|
</antcall>
|
|
|
|
<!-- generate the framework and modules documentation -->
|
|
<antcall target="jsdocs" />
|
|
|
|
<chmod perm="755">
|
|
<fileset dir="${build.work}">
|
|
<include name="start.sh"/>
|
|
</fileset>
|
|
</chmod>
|
|
|
|
<!-- zip up the whole thing -->
|
|
<antcall target="package-zip">
|
|
<param name="filename" value="${package.name}"/>
|
|
</antcall>
|
|
<antcall target="package-tgz">
|
|
<param name="filename" value="${package.name}"/>
|
|
</antcall>
|
|
|
|
<!-- make the src distributions -->
|
|
<antcall target="javadocs"/>
|
|
<antcall target="package-src-zip">
|
|
<param name="filename" value="${package.name}"/>
|
|
</antcall>
|
|
<antcall target="package-src-tgz">
|
|
<param name="filename" value="${package.name}"/>
|
|
</antcall>
|
|
|
|
<!-- clean up -->
|
|
<delete dir="${build.work}"/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Compile Helma and prepare the skeleton in a temporary directory. -->
|
|
<!-- Used by package . -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-raw" depends="init, jar">
|
|
|
|
<!-- copy the framework (apps.props, server.props, hop/db, hop/static) -->
|
|
<copy todir="${build.work}">
|
|
<fileset dir="${build.dir}/${distribution}" excludes="**/CVS**"/>
|
|
</copy>
|
|
|
|
<!-- copy the launcher jar and start files -->
|
|
<copy file="${home.dir}/launcher.jar" todir="${build.work}/"/>
|
|
<copy file="${home.dir}/start.sh" todir="${build.work}"/>
|
|
<copy file="${home.dir}/start.bat" todir="${build.work}"/>
|
|
|
|
<!-- copy README.txt -->
|
|
<copy file="${home.dir}/README.txt" todir="${build.work}/"/>
|
|
|
|
<!-- copy the whole docs-directory -->
|
|
<copy todir="${build.work}/docs">
|
|
<fileset dir="${build.docs}"/>
|
|
</copy>
|
|
|
|
<!-- copy all libraries except helma-YYYYMMDD.jar -->
|
|
<copy todir="${build.work}/lib">
|
|
<fileset dir="${home.dir}/lib">
|
|
<exclude name="**/helma-*.jar" />
|
|
<include name="**/*.jar" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- create lib/ext directory -->
|
|
<mkdir dir="${build.work}/lib/ext"/>
|
|
|
|
<!-- copy the license files -->
|
|
<copy todir="${build.work}/licenses">
|
|
<fileset dir="${home.dir}/licenses" excludes="**/CVS**"/>
|
|
</copy>
|
|
<copy file="${home.dir}/license.txt" todir="${build.work}/licenses"/>
|
|
|
|
<!-- copy the scripts directory -->
|
|
<copy todir="${build.work}/scripts">
|
|
<fileset dir="${home.dir}/scripts" excludes="**/CVS**"/>
|
|
</copy>
|
|
|
|
<!-- zip the sourcecode -->
|
|
<!-- mkdir dir="${build.work}/src"/>
|
|
<tar tarfile="${build.work}/src/helma-src.tar" basedir="${build.src}/">
|
|
<tarfileset dir="${build.src}">
|
|
<include name="${build.src}/**"/>
|
|
</tarfileset>
|
|
</tar>
|
|
<gzip zipfile="${build.work}/src/helma-src.tar.gz" src="${build.work}/src/helma-src.tar"/>
|
|
<delete file="${build.work}/src/helma-src.tar"/ -->
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Checkout demo apps, put them in work directory and zip manage app -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-apps" depends="init">
|
|
|
|
<mkdir dir="${build.work}/apps" />
|
|
|
|
<!-- get demo apps -->
|
|
<cvs cvsRoot="${cvs.root.apps}" command="export" tag="${cvs.apps.tag}" package="welcome" dest="${build.work}/apps" />
|
|
|
|
<antcall target="package-manage" />
|
|
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Checkout and zip manage application -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-manage" depends="init">
|
|
<cvs cvsRoot="${cvs.root.apps}" command="export" tag="${cvs.apps.tag}" package="manage" dest="${build.work}" />
|
|
<mkdir dir="${build.work}/apps/manage"/>
|
|
<zip zipfile="${build.work}/apps/manage/manage.zip" basedir="${build.work}/manage/" includes="**" excludes="**/properties,readme/**" />
|
|
<copy todir="${build.work}/apps/manage">
|
|
<fileset dir="${build.work}/manage" includes="app.properties,class.properties,readme.txt"/>
|
|
</copy>
|
|
<delete dir="${build.work}/manage" />
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Checkout modules, and include helmaTools -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-modules" depends="init">
|
|
<cvs cvsRoot="${cvs.root.apps}" command="export" tag="${cvs.apps.tag}" package="modules" dest="${build.work}" />
|
|
<antcall target="package-helmaTools" />
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Checkout and zip helmaTools -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-helmaTools" depends="init">
|
|
<cvs cvsRoot="${cvs.root.apps}" command="export" tag="${cvs.apps.tag}" package="helmaTools" dest="${build.work}" />
|
|
<mkdir dir="${build.work}/modules"/>
|
|
<zip zipfile="${build.work}/modules/helmaTools.zip" basedir="${build.work}/helmaTools/" includes="**" excludes="**/*.txt, **/*.html, **/*.bat, **/*.sh" />
|
|
<delete dir="${build.work}/helmaTools" />
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Packages the work directory with TAR-GZIP -->
|
|
<!-- needs parameter ${filename} for final dist-file -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-tgz" depends="init">
|
|
<mkdir dir="${build.dist}" />
|
|
<fixcrlf srcdir="${build.work}" eol="lf" eof="remove" includes="**/*.txt, **/*.properties, **/*.hac, **/*.js, **/*.skin" />
|
|
<tar tarfile="${build.dist}/${filename}.tar" basedir="${build.work}" excludes="**">
|
|
<tarfileset prefix="${filename}" dir="${build.work}" mode="755">
|
|
<include name="start.sh"/>
|
|
</tarfileset>
|
|
<tarfileset prefix="${filename}" dir="${build.work}">
|
|
<include name="**"/>
|
|
<exclude name="start.sh"/>
|
|
<exclude name="lib/jimi.jar"/>
|
|
<exclude name="lib/apache-dom.jar"/>
|
|
<exclude name="docs/api/**"/>
|
|
</tarfileset>
|
|
</tar>
|
|
<gzip zipfile="${build.dist}/${filename}.tar.gz" src="${build.dist}/${filename}.tar"/>
|
|
<delete file="${build.dist}/${filename}.tar"/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Packages the work directory with ZIP -->
|
|
<!-- needs parameter ${filename} for final dist-file -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-zip" depends="init">
|
|
<mkdir dir="${build.dist}" />
|
|
<fixcrlf srcdir="${build.work}" eol="crlf" includes="**/*.txt, **/*.properties, **/*.hac, **/*.js, **/*.skin, **/*.xml" />
|
|
<zip zipfile="${build.dist}/${filename}.zip">
|
|
<zipfileset dir="${build.work}" prefix="${filename}">
|
|
<include name="**"/>
|
|
<exclude name="start.sh"/>
|
|
<exclude name="lib/jimi.jar"/>
|
|
<exclude name="lib/apache-dom.jar"/>
|
|
<exclude name="docs/api/**"/>
|
|
</zipfileset>
|
|
</zip>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Packages Helma src and build directories with TAR-GZIP -->
|
|
<!-- needs parameter ${filename} for final dist-file -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-src-tgz" depends="init">
|
|
<mkdir dir="${build.dist}" />
|
|
<tar tarfile="${build.dist}/${filename}-src.tar">
|
|
<tarfileset prefix="${filename}" dir="${home.dir}">
|
|
<include name="src/**"/>
|
|
<include name="build/**"/>
|
|
<include name="docs/**"/>
|
|
<include name="licenses/**"/>
|
|
<include name="license.txt"/>
|
|
<include name="lib/jimi.jar"/>
|
|
<include name="lib/apache-dom.jar"/>
|
|
<exclude name="docs/modules/**"/>
|
|
</tarfileset>
|
|
</tar>
|
|
<gzip zipfile="${build.dist}/${filename}-src.tar.gz" src="${build.dist}/${filename}-src.tar"/>
|
|
<delete file="${build.dist}/${filename}-src.tar"/>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Packages Helma src and build directories with ZIP -->
|
|
<!-- needs parameter ${filename} for final dist-file -->
|
|
<!-- =================================================================== -->
|
|
<target name="package-src-zip" depends="init">
|
|
<mkdir dir="${build.dist}" />
|
|
<zip zipfile="${build.dist}/${filename}-src.zip">
|
|
<zipfileset dir="${home.dir}" prefix="${filename}">
|
|
<include name="src/**"/>
|
|
<include name="build/**"/>
|
|
<include name="docs/**"/>
|
|
<include name="licenses/**"/>
|
|
<include name="license.txt"/>
|
|
<include name="lib/jimi.jar"/>
|
|
<include name="lib/apache-dom.jar"/>
|
|
<exclude name="docs/modules/**"/>
|
|
</zipfileset>
|
|
</zip>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Gets an application from the cvs and zips/targzs it -->
|
|
<!-- =================================================================== -->
|
|
<target name="app" depends="init">
|
|
<mkdir dir="${build.dist}" />
|
|
<mkdir dir="${build.work}" />
|
|
|
|
<!-- to retrieve special versions of an application insert
|
|
additional attributes: tag="TAGNAME" or date="1972-09-24 20:05" -->
|
|
<cvs cvsRoot="${cvs.root.apps}" command="export" tag="${cvs.apps.tag}" package="${application}" dest="${build.work}" />
|
|
|
|
<fixcrlf srcdir="${build.work}" eol="crlf" eof="add" includes="**/*.txt, **/*.properties, **/*.hac, **/*.js, **/*.skin, **/*.xml" />
|
|
<zip zipfile="${build.dist}/${application}-${DSTAMP}.zip" basedir="${build.work}" includes="**"/>
|
|
|
|
<fixcrlf srcdir="${build.work}" eol="lf" eof="remove" includes="**/*.txt, **/*.properties, **/*.hac, **/*.js, **/*.skin" />
|
|
<tar tarfile="${build.dist}/${application}-${DSTAMP}.tar" basedir="${build.work}">
|
|
<tarfileset dir="${build.work}">
|
|
<include name="${build.work}/**"/>
|
|
</tarfileset>
|
|
</tar>
|
|
<gzip zipfile="${build.dist}/${application}-${DSTAMP}.tar.gz" src="${build.dist}/${application}-${DSTAMP}.tar" />
|
|
|
|
<delete file="${build.dist}/${application}-${DSTAMP}.tar" />
|
|
<delete dir="${build.work}" />
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Checkout and zip a module -->
|
|
<!-- =================================================================== -->
|
|
<target name="module" depends="init">
|
|
<cvs cvsRoot="${cvs.root.apps}" command="export" tag="${cvs.apps.tag}" package="${application}" dest="${build.work}" />
|
|
<mkdir dir="${build.work}/modules"/>
|
|
<zip zipfile="${build.work}/modules/${application}-${DSTAMP}.zip" basedir="${build.work}/${application}/" includes="**" excludes="**/*.txt, **/*.html, **/*.bat, **/*.sh" />
|
|
<delete dir="${build.work}/${application}" />
|
|
</target>
|
|
|
|
|
|
</project>
|