- <?xml version="1.0"?>
-
- <!--
- ==============================================================================
-
- Ant build file
-
- Authors:
- Peter Donald <peter@apache.org>
-
- Legal:
- Copyright (c) 2000 The Apache Software Foundation. All Rights Reserved.
-
- ==============================================================================
- -->
-
- <project default="main" basedir=".">
-
- <!--
- Give user a chance to override without editing this file
- (and without typing -D each time he compiles it)
- -->
- <property file=".ant.properties"/>
- <property file="${user.home}/.ant.properties"/>
-
- <property name="name" value="myrmidon"/>
- <property name="Name" value="Myrmidon"/>
- <property name="version" value="0.01"/>
- <property name="year" value="2000-2001"/>
-
- <!--
- these are here only for those who use jikes compiler. For other
- developers this part makes no difference.
- -->
- <property name="build.compiler" value="jikes"/>
- <property name="build.compiler.emacs" value="on"/>
- <property name="build.compiler.pedantic" value="true"/>
- <property name="build.compiler.depend" value="true"/>
- <property name="build.compiler.fulldepend" value="true"/>
-
- <property name="debug" value="on"/>
- <property name="optimize" value="off"/>
- <property name="deprecation" value="on"/>
-
- <property name="build.dir" value="build"/>
- <property name="build.lib" value="${build.dir}/lib"/>
- <property name="build.src" value="${build.dir}/src"/>
- <property name="build.classes" value="${build.dir}/classes"/>
-
- <property name="src.base" value="src"/>
- <property name="manifest.dir" value="${src.base}/manifest"/>
- <property name="java.dir" value="${src.base}/java"/>
- <property name="script.dir" value="${src.base}/script"/>
- <property name="lib.dir" value="lib"/>
-
- <property name="dist.name" value="${Name}-${version}"/>
- <property name="dist.dir" value="dist"/>
- <property name="dist.bin" value="${dist.dir}/bin"/>
- <property name="dist.lib" value="${dist.dir}/lib"/>
- <property name="dist.ext" value="${dist.dir}/ext"/>
-
- <property name="constants.file" value="org/apache/myrmidon/Constants.java"/>
-
- <path id="project.class.path">
- <pathelement path="${java.class.path}" />
- <fileset dir="${lib.dir}">
- <include name="*.jar" />
- </fileset>
- <pathelement path="${build.classes}" />
- </path>
-
- <!-- Main target -->
- <target name="main" depends="dist" />
-
- <!-- lets see what is available -->
- <target name="check_for_optional_packages">
- <available property="jdk1.2+" classname="java.lang.ThreadLocal" />
- <available property="jdk1.3+" classname="java.lang.StrictMath" />
- <available property="jdk1.4+" classname="java.lang.CharSequence" />
- <available property="bsf.present"
- classname="com.ibm.bsf.BSFManager"
- classpathref="project.class.path" />
- <available property="netrexx.present"
- classname="netrexx.lang.Rexx"
- classpathref="project.class.path" />
- <available property="trax.present"
- classname="javax.xml.transform.Transformer"
- classpathref="project.class.path" />
- <available property="xslp.present"
- classname="com.kvisco.xsl.XSLProcessor"
- classpathref="project.class.path" />
- <available property="xalan.present"
- classname="org.apache.xalan.xslt.XSLTProcessorFactory"
- classpathref="project.class.path" />
- <available property="xalan2.present"
- classname="org.apache.xalan.transformer.TransformerImpl"
- classpathref="project.class.path" />
- <available property="ejb.ejbc.present"
- classname="weblogic.ejbc"
- classpathref="project.class.path" />
- <available property="ejb.DDCreator.present"
- classname="weblogic.ejb.utils.DDCreator"
- classpathref="project.class.path" />
- <available property="ejb.wls.present"
- classname="weblogic.Server"
- classpathref="project.class.path" />
- <available property="junit.present"
- classname="junit.framework.TestCase"
- classpathref="project.class.path" />
- <available property="netcomp.present"
- classname="com.oroinc.net.ftp.FTPClient"
- classpathref="project.class.path" />
- <available property="starteam.present"
- classname="com.starbase.util.Platform"
- classpathref="project.class.path" />
- <available property="antlr.present"
- classname="antlr.Tool"
- classpathref="project.class.path"/>
- <available property="vaj.present"
- classname="com.ibm.ivj.util.base.Workspace"
- classpathref="project.class.path"/>
- <available property="stylebook.present"
- classname="org.apache.stylebook.Engine"
- classpathref="project.class.path"/>
- <available property="jakarta.regexp.present"
- classname="org.apache.regexp.RE"
- classpathref="project.class.path"/>
- <available property="jakarta.oro.present"
- classname="org.apache.oro.text.regex.Perl5Matcher"
- classpathref="project.class.path" />
- <available property="jmf.present"
- classname="javax.sound.sampled.Clip"
- classpathref="project.class.path"/>
- <available property="icontract.present"
- classname="com.reliablesystems.iContract.IContracted"
- classpathref="project.class.path"/>
- <available property="jdepend.present"
- classname="jdepend.framework.JDepend"
- classpathref="project.class.path"/>
- <available property="log4j.present"
- classname="org.apache.log4j.Category"
- classpathref="project.class.path"/>
- <!-- this is just a way to check for a TraX implementation -->
- <available property="trax.impl.present"
- resource="META-INF/services/javax.xml.transform.TransformerFactory"
- classpathref="project.class.path"/>
- <available property="xalan.envcheck"
- classname="org.apache.xalan.xslt.EnvironmentCheck"
- classpathref="project.class.path" />
-
- <available property="servlet.present"
- classname="javax.servlet.Servlet"
- classpathref="project.class.path"/>
-
- <available property="adaptx.present"
- classname="org.exolab.adaptx.xslt.XSLTProcessor"
- classpathref="project.class.path" />
- <available property="xerces.present"
- classname="org.apache.xerces.parsers.SAXParser"
- classpathref="project.class.path" />
- <available property="bcel.present"
- classname="org.apache.bcel.Constants"
- classpathref="project.class.path" />
-
- <condition property="javamail.complete">
- <and>
- <available classname="javax.activation.DataHandler"
- classpathref="project.class.path"/>
- <available classname="javax.mail.Transport"
- classpathref="project.class.path"/>
- </and>
- </condition>
-
- </target>
-
-
- <!-- Compiles the source code -->
- <target name="compile" depends="check_for_optional_packages">
-
- <tstamp/>
- <mkdir dir="${build.src}"/>
- <copy file="${java.dir}/${constants.file}" tofile="${build.src}/${constants.file}"/>
- <replace file="${build.src}/${constants.file}" token="@@VERSION@@" value="${version}" />
- <replace file="${build.src}/${constants.file}" token="@@DATE@@" value="${TODAY}" />
-
- <property name="ant.package" value="org/apache/tools/ant"/>
- <property name="antlib.package" value="org/apache/antlib"/>
- <property name="optional.package" value="${ant.package}/taskdefs/optional"/>
- <property name="optional.type.package" value="${ant.package}/types/optional"/>
- <property name="util.package" value="${ant.package}/util"/>
- <property name="regexp.package" value="${util.package}/regexp"/>
-
- <mkdir dir="${build.classes}"/>
- <javac srcdir="src/main"
- destdir="${build.classes}"
- debug="${debug}"
- optimize="${optimize}"
- deprecation="${deprecation}">
- <classpath refid="project.class.path"/>
- <!--
- <exclude name="${constants.file}"/>
- <src path="${build.src}" />
- -->
- <src path="${java.dir}" />
- <include name="**/*.java"/>
-
- <!-- the idea classes are too tightly coupled to ant1 and
- will need a complete rewrite so we will exclude them for
- the moment -->
- <exclude name="${optional.package}/ide/*.java" />
-
- <exclude name="${regexp.package}/JakartaRegexp*.java"
- unless="jakarta.regexp.present" />
- <exclude name="${regexp.package}/JakartaOro*.java"
- unless="jakarta.oro.present" />
- <exclude name="${regexp.package}/Jdk14Regexp*.java"
- unless="jdk1.4+" />
- <exclude name="${ant.package}/AntSecurityManager.java"
- unless="jdk1.2+" />
- <exclude name="${ant.package}/listener/Log4jListener.java"
- unless="log4j.present" />
-
- <exclude name="${optional.package}/IContract.java" unless="icontract.present" />
- <exclude name="${optional.package}/Script.java" unless="bsf.present" />
- <exclude name="${optional.package}/StyleBook.java" unless="stylebook.present" />
- <exclude name="${optional.package}/NetRexxC.java" unless="netrexx.present" />
- <exclude name="${antlib.package}/xml/TraXLiaison.java" unless="trax.present" />
- <exclude name="${antlib.package}/xml/XalanLiaison.java" unless="xalan.present" />
- <exclude name="${optional.package}/ejb/Ejbc*.java" unless="ejb.ejbc.present" />
- <exclude name="${optional.package}/ejb/DDCreator*.java" unless="ejb.DDCreator.present" />
- <exclude name="${optional.package}/ejb/WLRun.java" unless="ejb.wls.present" />
- <exclude name="${optional.package}/ejb/WLStop.java" unless="ejb.wls.present" />
- <exclude name="${optional.package}/ejb/EjbJar.java" unless="ejbjar.support" />
- <exclude name="${optional.package}/ejb/*DeploymentTool.java" unless="ejbjar.support" />
- <exclude name="${optional.package}/ejb/IPlanet*.java" unless="ejbjar.support" />
- <exclude name="${optional.package}/Javah.java" unless="jdk1.2+" />
- <exclude name="${optional.package}/junit/*" unless="junit.present" />
- <exclude name="${optional.package}/net/**.java" unless="netcomp.present" />
- <exclude name="${optional.package}/scm/AntStarTeam*.java" unless="starteam.present" />
- <exclude name="${optional.package}/ANTLR.java" unless="antlr.present" />
- <exclude name="${optional.package}/ide/VAJ*.java" unless="vaj.present" />
- <exclude name="${optional.package}/ide/VAJ*Servlet.java"
- unless="servlet.present" />
- <exclude name="${optional.package}/perforce/*.java" unless="jakarta.oro.present" />
- <exclude name="${optional.package}/sound/*.java" unless="jmf.present" />
- <exclude name="${optional.package}/junit/XMLResultAggregator.java"
- unless="trax.present" />
- <exclude name="${optional.package}/junit/AggregateTransformer.java"
- unless="trax.present" />
- <exclude name="${optional.package}/junit/XMLResultAggregator.java"
- unless="xalan2.present" />
- <exclude name="${optional.package}/junit/AggregateTransformer.java"
- unless="xalan2.present" />
- <exclude name="${optional.package}/junit/XalanExecutor.java"
- unless="xalan2.present" />
- <exclude name="${optional.package}/junit/Xalan2Executor.java"
- unless="xalan2.present" />
- <exclude name="${optional.package}/junit/Xalan1Executor.java"
- unless="xalan.present" />
- <exclude name="${optional.package}/jdepend/*" unless="jdepend.present" />
- <exclude name="${optional.package}/sitraka/**" unless="some.regexp.support"/>
- <exclude name="${optional.package}/metamata/MAudit*" unless="jakarta.oro.present"/>
- <exclude name="${optional.package}/metamata/MMetrics*"
- unless="trax.present"/>
- <exclude name="${optional.package}/metamata/**" unless="jdk1.2+" />
- <exclude name="${optional.package}/ManifestFile.java"
- unless="jdk1.2+" />
- <exclude name="${optional.type.package}/depend/*.java"
- unless="bcel.present" />
- <exclude name="${util.package}/depend/*.java"
- unless="bcel.present" />
- <exclude name="${optional.type.package}/depend/*.java"
- unless="jdk1.2+" />
- <exclude name="${util.package}/depend/*.java"
- unless="jdk1.2+" />
- </javac>
-
-
- <copy todir="${build.classes}">
- <fileset dir="${java.dir}">
- <include name="**/*.properties"/>
- </fileset>
- </copy>
-
- </target>
-
- <!-- Creates the jars file -->
- <target name="jars" depends="compile">
-
- <mkdir dir="${build.lib}"/>
-
- <jar jarfile="${build.lib}/myrmidon-launcher.jar"
- basedir="${build.classes}"
- manifest="${manifest.dir}/myrmidon-launcher.mf">
- <include name="org/apache/myrmidon/launcher/*" />
- </jar>
-
- <jar jarfile="${build.lib}/myrmidon-api.jar"
- basedir="${build.classes}"
- manifest="${manifest.dir}/myrmidon-api.mf">
- <include name="org/apache/myrmidon/api/*" />
- <include name="org/apache/myrmidon/aspects/*" />
- <include name="org/apache/myrmidon/converter/*" />
- <include name="org/apache/myrmidon/interfaces/**" />
- <include name="org/apache/myrmidon/listeners/*" />
- <include name="org/apache/myrmidon/framework/**" />
- <include name="org/apache/aut/**" />
- <include name="org/apache/tools/**" />
- <!-- <include name="org/apache/myrmidon/*" />
- <include name="org/apache/myrmidon/components/**"/>
- <include name="org/apache/myrmidon/frontends/*" /> -->
-
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-roles.xml">
- <include name="builtin-ant-roles.xml"/>
- </zipfileset>
-
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
- <include name="builtin-ant-descriptor.xml"/>
- </zipfileset>
- </jar>
-
- <!--
- <jar jarfile="${build.lib}/myrmidon-framework.jar"
- basedir="${build.classes}"
- manifest="${manifest.dir}/myrmidon-framework.mf">
- <include name="org/apache/myrmidon/framework/**" />
-
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-roles.xml">
- <include name="builtin-ant-roles.xml"/>
- </zipfileset>
-
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
- <include name="builtin-ant-descriptor.xml"/>
- </zipfileset>
- </jar>
- -->
- <jar jarfile="${build.lib}/myrmidon-container.jar"
- basedir="${build.classes}"
- manifest="${manifest.dir}/myrmidon-container.mf">
- <include name="org/apache/myrmidon/components/**" />
- <include name="org/apache/myrmidon/frontends/*" />
- <include name="org/apache/myrmidon/*" />
- </jar>
-
- <jar jarfile="${build.lib}/core.atl" basedir="${build.classes}">
- <include name="org/apache/antlib/core/**" />
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
- <include name="core-ant-descriptor.xml"/>
- </zipfileset>
- </jar>
-
- <jar jarfile="${build.lib}/cvslib.atl" basedir="${build.classes}">
- <include name="org/apache/antlib/cvslib/**" />
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
- <include name="cvslib-ant-descriptor.xml"/>
- </zipfileset>
- </jar>
-
- <jar jarfile="${build.lib}/nativelib.atl" basedir="${build.classes}">
- <include name="org/apache/antlib/nativelib/**" />
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
- <include name="nativelib-ant-descriptor.xml"/>
- </zipfileset>
- </jar>
-
- <jar jarfile="${build.lib}/selftest.atl"
- basedir="${build.classes}"
- manifest="${manifest.dir}/selftest.mf">
- <include name="org/apache/antlib/selftest/**" />
- <exclude name="org/apache/antlib/selftest/extension1/**" />
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
- <include name="selftest-ant-descriptor.xml"/>
- </zipfileset>
- </jar>
-
- <jar jarfile="${build.lib}/selftest-extension1.jar"
- basedir="${build.classes}"
- manifest="${manifest.dir}/selftest-extension1.mf">
- <include name="org/apache/antlib/selftest/extension1/**" />
- </jar>
-
- <jar jarfile="${build.lib}/runtime.atl" basedir="${build.classes}">
- <include name="org/apache/antlib/runtime/**"/>
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
- <include name="runtime-ant-descriptor.xml"/>
- </zipfileset>
- </jar>
-
- <!--
- <jar jarfile="${build.lib}/ant1.atl" basedir="${build.classes}">
- <include name="org/apache/antlib/ant1/**"/>
- <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
- <include name="ant1-ant-descriptor.xml"/>
- </zipfileset>
- </jar>
- -->
-
- </target>
-
- <target name="xdoclet">
- <path id="xdoclet.classpath">
- <pathelement location="lib/xdoclet.jar"/>
- <pathelement location="lib/log4j-core.jar"/>
- <path refid="project.class.path"/>
- </path>
- <taskdef name="xdoclet"
- classname="xdoclet.DocletTask"
- classpath="lib/xdoclet.jar"/>
- <xdoclet sourcepath="${java.dir}"
- destdir="${build.dir}"
- classpathref="xdoclet.classpath">
- <fileset dir="${java.dir}">
- <include name="**/*.java" />
- </fileset>
- <template templateFile="${manifest.dir}/core-ant-descriptor.template"
- destinationfile="core-ant-descriptor.xml"/>
- <template templateFile="${manifest.dir}/builtin-ant-roles.template"
- destinationfile="builtin-ant-roles.xml"/>
- </xdoclet>
- </target>
-
- <!-- Creates the distribution -->
- <target name="dist" depends="jars">
-
- <mkdir dir="${dist.bin}"/>
- <mkdir dir="${dist.lib}"/>
- <mkdir dir="${dist.ext}"/>
-
- <copy file="${build.lib}/myrmidon-launcher.jar" tofile="${dist.bin}/myrmidon-launcher.jar" />
- <copy file="${build.lib}/myrmidon-container.jar" tofile="${dist.bin}/lib/myrmidon-container.jar" />
-
- <copy todir="${dist.lib}">
- <fileset dir="${build.lib}">
- <exclude name="selftest.atl"/>
- <exclude name="myrmidon-container.jar"/>
- <exclude name="myrmidon-launcher.jar"/>
- </fileset>
- </copy>
-
- <copy todir="${dist.ext}">
- <fileset dir="${build.lib}">
- <include name="selftest.atl"/>
- <include name="selftest-extension1.jar"/>
- </fileset>
- </copy>
-
- <copy todir="${dist.lib}">
- <fileset dir="${lib.dir}">
- <exclude name="ant.jar"/>
- </fileset>
- </copy>
-
- <copy todir="${dist.bin}">
- <fileset dir="${script.dir}"/>
- </copy>
-
- <chmod dir="${dist.dir}" perm="go-rwx" />
- <chmod file="${dist.bin}/ant" perm="u+x"/>
- <fixcrlf srcdir="${dist.bin}" cr="add" includes="**/*.bat" />
- <fixcrlf srcdir="${dist.bin}" cr="remove" includes="**/*.sh" />
- <fixcrlf srcdir="${dist.bin}" cr="remove" includes="ant" />
-
- </target>
-
- <!-- Cleans up build and distribution directories -->
- <target name="clean">
- <delete dir="${build.dir}"/>
- <delete dir="${dist.dir}" failonerror="false"/>
- <delete>
- <fileset dir="." includes="**/*~" defaultexcludes="no"/>
- </delete>
- </target>
-
- <target name="rebuild">
- <antcall target="clean"/>
- <antcall target="main"/>
- </target>
-
- </project>
|