blob: 993a0e1f53e20459f09687fd36cf6005d7e36c28 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<project default="jar" name="commons-jelly-build-all" basedir=".">
<property name="libdir" value="target/lib"/>
<!--
Documentation:
call "clean jar" to build Jelly and each taglib from scratch,
or "clean jar-<tagName>" if you want to build a particular
taglib.
If you don't call clean first, you can get a false positive;
if the "depends" of a jar-* task is incomplete, the build might
pull in an older jar.
Also, will copy all built jars into each successive build, so
it's possible for a tag to build successfully without declaring
all its dependencies, if its dependencies happen to have been built
first. This is bad, but it keeps the script simple
WRITTEN FOR SIMPLICITY, NOT ENFORCING STRICTNESS.
when adding tags to the build, add them to the
"subant" and "subexec" target,
add a jar-<tagName> target, and add that target as a dependency
of the "jar" target. (Yes, that's a lot of places.)
-->
<!--
target that can be used via antcall task
to call a single target on all jelly build.xml scripts
-->
<target name="subant">
<ant dir="." target="${sub.target}"/>
<ant dir="jelly-tags/ant" target="${sub.target}"/>
<ant dir="jelly-tags/antlr" target="${sub.target}"/>
<ant dir="jelly-tags/avalon" target="${sub.target}"/>
<ant dir="jelly-tags/bean" target="${sub.target}"/>
<ant dir="jelly-tags/beanshell" target="${sub.target}"/>
<ant dir="jelly-tags/betwixt" target="${sub.target}"/>
<ant dir="jelly-tags/bsf" target="${sub.target}"/>
<ant dir="jelly-tags/email" target="${sub.target}"/>
<ant dir="jelly-tags/fmt" target="${sub.target}"/>
<ant dir="jelly-tags/html" target="${sub.target}"/>
<ant dir="jelly-tags/http" target="${sub.target}"/>
<ant dir="jelly-tags/interaction" target="${sub.target}"/>
<ant dir="jelly-tags/jetty" target="${sub.target}"/>
<ant dir="jelly-tags/jms" target="${sub.target}"/>
<ant dir="jelly-tags/jsl" target="${sub.target}"/>
<ant dir="jelly-tags/junit" target="${sub.target}"/>
<ant dir="jelly-tags/log" target="${sub.target}"/>
<ant dir="jelly-tags/ojb" target="${sub.target}"/>
<ant dir="jelly-tags/quartz" target="${sub.target}"/>
<ant dir="jelly-tags/soap" target="${sub.target}"/>
<ant dir="jelly-tags/sql" target="${sub.target}"/>
<ant dir="jelly-tags/swing" target="${sub.target}"/>
<ant dir="jelly-tags/swt" target="${sub.target}"/>
<ant dir="jelly-tags/threads" target="${sub.target}"/>
<ant dir="jelly-tags/util" target="${sub.target}"/>
<ant dir="jelly-tags/validate" target="${sub.target}"/>
<ant dir="jelly-tags/velocity" target="${sub.target}"/>
<ant dir="jelly-tags/xml" target="${sub.target}"/>
<ant dir="jelly-tags/xmlunit" target="${sub.target}"/>
</target>
<target name="subexec">
<exec dir="." command="${sub.command}"/>
<exec dir="jelly-tags/ant" command="${sub.command}"/>
<exec dir="jelly-tags/antlr" command="${sub.command}"/>
<exec dir="jelly-tags/avalon" command="${sub.command}"/>
<exec dir="jelly-tags/bean" command="${sub.command}"/>
<exec dir="jelly-tags/beanshell" command="${sub.command}"/>
<exec dir="jelly-tags/betwixt" command="${sub.command}"/>
<exec dir="jelly-tags/bsf" command="${sub.command}"/>
<exec dir="jelly-tags/email" command="${sub.command}"/>
<exec dir="jelly-tags/fmt" command="${sub.command}"/>
<exec dir="jelly-tags/html" command="${sub.command}"/>
<exec dir="jelly-tags/http" command="${sub.command}"/>
<exec dir="jelly-tags/interaction" command="${sub.command}"/>
<exec dir="jelly-tags/jetty" command="${sub.command}"/>
<exec dir="jelly-tags/jms" command="${sub.command}"/>
<exec dir="jelly-tags/jsl" command="${sub.command}"/>
<exec dir="jelly-tags/junit" command="${sub.command}"/>
<exec dir="jelly-tags/log" command="${sub.command}"/>
<exec dir="jelly-tags/ojb" command="${sub.command}"/>
<exec dir="jelly-tags/quartz" command="${sub.command}"/>
<exec dir="jelly-tags/soap" command="${sub.command}"/>
<exec dir="jelly-tags/sql" command="${sub.command}"/>
<exec dir="jelly-tags/swing" command="${sub.command}"/>
<exec dir="jelly-tags/swt" command="${sub.command}"/>
<exec dir="jelly-tags/threads" command="${sub.command}"/>
<exec dir="jelly-tags/util" command="${sub.command}"/>
<exec dir="jelly-tags/validate" command="${sub.command}"/>
<exec dir="jelly-tags/velocity" command="${sub.command}"/>
<exec dir="jelly-tags/xml" command="${sub.command}"/>
<exec dir="jelly-tags/xmlunit" command="${sub.command}"/>
</target>
<target name="clean">
<antcall target="subant">
<param name="sub.target" value="clean"/>
</antcall>
</target>
<!--
clean out all jelly-related builds without
deleting existing target/lib directories,
not quite as safe as a clean build but much faster
than reloading all the "target/lib" directories
-->
<target name="clean-skiplib">
<delete>
<fileset dir="." >
<include name="**/target/**"/>
<exclude name="**/target/lib/*"/>
</fileset>
</delete>
</target>
<target name="ant">
<antcall target="subexec">
<param name="sub.command" value="maven.bat ant"/>
</antcall>
</target>
<!--
putting jar-http last, because it currently fails
putting jetty last, seems to have an undeclared
dependency on a java extension "javax/net/SocketFactory"
-->
<target name="jar"
depends="jar-jelly,jar-ant,jar-antlr,jar-avalon,jar-bean,jar-beanshell,
jar-betwixt,jar-bsf,jar-email,jar-fmt,
jar-http,jar-interaction,jar-jms,jar-jsl,
jar-junit,jar-log,jar-ojb,jar-quartz,jar-soap,jar-sql,
jar-swing,jar-swt,jar-threads,jar-util,jar-validate,
jar-velocity,jar-xml,jar-xmlunit,jar-html,jar-jetty"/>
<target name="jar-jelly">
<echo message="Building Jelly..."/>
<ant dir="." target="jar"/>
</target>
<target name="jar-ant" depends="jar-jelly,jar-util,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="ant"/>
</antcall>
</target>
<target name="jar-antlr" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="antlr"/>
</antcall>
</target>
<target name="jar-avalon" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="avalon"/>
</antcall>
</target>
<target name="jar-bean" depends="jar-jelly,jar-junit,jar-log">
<antcall target="taglib-template">
<param name="sub.taglib" value="bean"/>
</antcall>
</target>
<target name="jar-beanshell" depends="jar-jelly,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="beanshell"/>
</antcall>
</target>
<target name="jar-betwixt" depends="jar-jelly,jar-junit,jar-log">
<antcall target="taglib-template">
<param name="sub.taglib" value="betwixt"/>
</antcall>
</target>
<target name="jar-bsf" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="bsf"/>
</antcall>
</target>
<target name="jar-email" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="email"/>
</antcall>
</target>
<target name="jar-fmt" depends="jar-jelly,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="fmt"/>
</antcall>
</target>
<target name="jar-html" depends="jar-jelly,jar-xml">
<antcall target="taglib-template">
<param name="sub.taglib" value="html"/>
</antcall>
</target>
<target name="jar-http" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="http"/>
</antcall>
</target>
<target name="jar-interaction" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="interaction"/>
</antcall>
</target>
<target name="jar-jetty" depends="jar-jelly,jar-http">
<antcall target="taglib-template">
<param name="sub.taglib" value="jetty"/>
</antcall>
</target>
<target name="jar-jms" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="jms"/>
</antcall>
</target>
<target name="jar-jsl" depends="jar-jelly,jar-xml,jar-ant,jar-log,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="jsl"/>
</antcall>
</target>
<target name="jar-junit" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="junit"/>
</antcall>
</target>
<target name="jar-log" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="log"/>
</antcall>
</target>
<target name="jar-ojb" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="ojb"/>
</antcall>
</target>
<target name="jar-quartz" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="quartz"/>
</antcall>
</target>
<target name="jar-soap" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="soap"/>
</antcall>
</target>
<target name="jar-sql" depends="jar-jelly,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="sql"/>
</antcall>
</target>
<target name="jar-swing" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="swing"/>
</antcall>
</target>
<target name="jar-swt" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="swt"/>
</antcall>
</target>
<target name="jar-threads" depends="jar-jelly,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="threads"/>
</antcall>
</target>
<target name="jar-util" depends="jar-jelly,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="util"/>
</antcall>
</target>
<target name="jar-validate" depends="jar-jelly,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="validate"/>
</antcall>
</target>
<target name="jar-velocity" depends="jar-jelly">
<antcall target="taglib-template">
<param name="sub.taglib" value="velocity"/>
</antcall>
</target>
<target name="jar-xml" depends="jar-jelly,jar-junit">
<antcall target="taglib-template">
<param name="sub.taglib" value="xml"/>
</antcall>
</target>
<target name="jar-xmlunit" depends="jar-jelly,jar-xml">
<antcall target="taglib-template">
<param name="sub.taglib" value="xmlunit"/>
</antcall>
</target>
<!-- don't call directly, called inside jar-* tasks -->
<target name="taglib-template">
<echo message="Building &quot;${sub.taglib}&quot; taglib..."/>
<!-- maven-generated ant scripts freak out when this
directory is missing -->
<mkdir dir="jelly-tags/${sub.taglib}/src/test"/>
<antcall target="prepare-taglib-deps">
<param name="sub.taglib" value="${sub.taglib}"/>
</antcall>
<!-- copy in other Jelly taglib dependencies -->
<antcall target="get-ext-taglibs">
<param name="sub.taglib" value="${sub.taglib}"/>
</antcall>
<antcall target="build-taglib">
<param name="sub.taglib" value="${sub.taglib}"/>
</antcall>
</target>
<!--
don't call directly, called inside jar-* tasks
if you set the noget property, the jars will
not be checked against the server
-->
<target name="prepare-taglib-deps">
<ant dir="jelly-tags/${sub.taglib}" target="get-deps"/>
<delete>
<fileset dir="jelly-tags/${sub.taglib}/${libdir}" includes="commons-jelly-*"/>
</delete>
<copy todir="jelly-tags/${sub.taglib}/${libdir}">
<fileset dir="target" includes="commons-jelly-*.jar"/>
</copy>
</target>
<!-- don't call directly, called inside jar-* tasks -->
<target name="get-ext-taglibs">
<copy todir="jelly-tags/${sub.taglib}/${libdir}" flatten="true">
<fileset dir="." includes="jelly-tags/*/target/commons-jelly-*.jar"/>
</copy>
</target>
<!-- don't call directly, called inside jar-* tasks -->
<target name="build-taglib">
<ant dir="jelly-tags/${sub.taglib}" target="jar">
<property name="noget" value="true"/>
</ant>
</target>
</project>