<!-- Copyright (C) 2001 Nicolas Fortescue. This software is distributed under the Artistic License. See artistic.html or artistic.txt which came with this distribution. --> <project name="jfun" default="build" basedir="."> <!-- enviroment variables --> <property environment="env" /> <!-- files --> <!-- directories --> <property name="src.dir" value="src" /> <property name="build.dir" value="build" /> <property name="test.dir" value="test" /> <property name="test.lib.dir" value="lib"/> <property name="test.src.dir" value="${test.dir}/src" /> <property name="test.build.dir" value="${test.dir}/build" /> <!-- paths --> <path id="main.compile.classpath"> <pathelement path="${java.class.path}"/> <pathelement location="${build.dir}"/> </path> <path id="test.compile.classpath"> <pathelement path="${test.src.dir}"/> <pathelement path="${java.class.path}"/> <pathelement location="${test.lib.dir}/junit.jar"/> <pathelement location="${build.dir}"/> <pathelement path="${ant.home}/lib/clover.jar"/> </path> <path id="test.run.classpath"> <path refid="test.compile.classpath"/> <pathelement location="${test.build.dir}"/> </path> <!-- build task --> <target name="build" depends="build_dir"> <javac srcdir="${src.dir}" destdir="${build.dir}" deprecation="on" debug="on" classpathref="main.compile.classpath"/> <echo message="message : all java source file compiled successful at ${TSTAMP} in ${TODAY} "/> </target> <target name="buildlib" depends="build"> <mkdir dir="bin"/> <jar destfile="bin/jfunutil.jar" basedir="build" includes="**"/> <copy file="bin/jfunutil.jar" todir="c:/ajoo/neptune/lib"/> </target> <target name="util.build" depends="build_dir"> <javac srcdir="${src.dir}" includes="jfun/util/**/*.java" destdir="${build.dir}" deprecation="on" debug="on" classpathref="main.compile.classpath"/> <echo message="message : util java source file compiled successful at ${TSTAMP} in ${TODAY} "/> </target> <target name="yield.build" depends="build_dir"> <javac srcdir="${src.dir}" includes="jfun/util/yield/**/*.java" destdir="${build.dir}" deprecation="on" debug="on" classpathref="main.compile.classpath"/> <echo message="message : yield java source file compiled successful at ${TSTAMP} in ${TODAY} "/> </target> <target name="buildtest" depends="build, test_build_dir"> <javac srcdir="${test.src.dir}" destdir="${test.build.dir}" deprecation="on" debug="on" classpathref="test.compile.classpath"/> <echo message="message : all java source file compiled successful at ${TSTAMP} in ${TODAY} "/> </target> <target name="test1" depends="buildtest"> <java dir="." classname="tests.jfun.Test1" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="test2" depends="buildtest"> <java dir="." classname="tests.jfun.Test2" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testColoring" depends="buildtest"> <mkdir dir="test/output"/> <java dir="." classname="tests.jfun.parsec.TestColoring" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testConfiguration" depends="buildtest"> <java dir="." classname="tests.jfun.jaskell.TestConfiguration" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testDict" depends="buildtest"> <java dir="." classname="tests.jfun.TestDict" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testExpr" depends="buildtest"> <java dir="." classname="tests.jfun.jaskell.TestExpr" fork="yes"> <classpath refid="test.run.classpath"/> <jvmarg value="-Djava.security.policy=test/test.policy"/> </java> </target> <target name="testJaskellParsec" depends="buildtest"> <java dir="." classname="tests.jfun.jaskell.JaskellParsecTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testJaskellConversion" depends="buildtest"> <java dir="." classname="tests.jfun.jaskell.JaskellConversionTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testJaskell" depends="buildtest"> <java dir="." classname="tests.jfun.jaskell.JaskellTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testJaskellMonad" depends="buildtest"> <java dir="." classname="tests.jfun.jaskell.TestMonad" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testLexer" depends="buildtest"> <java dir="." classname="tests.jfun.parsec.TestLexer" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testParser" depends="buildtest"> <java dir="." classname="tests.jfun.parsec.TestParser" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testRfc822" depends="buildtest"> <java dir="." classname="tests.jfun.parsec.TestRfc822" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="testSqlParser" depends="buildtest"> <java dir="." classname="tests.jfun.parsec.TestSqlParser" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="yan.test" depends="buildtest"> <java dir="." classname="tests.jfun.yan.TestComponent" fork="yes"> <classpath refid="test.run.classpath"/> </java> <java dir="." classname="tests.jfun.yan.SingletonProxyContainerTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> <java dir="." classname="tests.jfun.yan.ChildContainerTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> <java dir="." classname="tests.jfun.yan.ProxyContainerTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> <java dir="." classname="tests.jfun.yan.SetterInjectionComponentAdapterTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> <java dir="." classname="tests.jfun.yan.TestDefaultContainer" fork="yes"> <classpath refid="test.run.classpath"/> </java> <java dir="." classname="tests.jfun.yan.SingletonContainerTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> <java dir="." classname="tests.jfun.yan.ComponentTransformerTestCase" fork="yes"> <classpath refid="test.run.classpath"/> </java> <java dir="." classname="tests.jfun.yan.TestManualContainer" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="yan.config.test" depends="buildtest"> <java dir="." classname="tests.jfun.yan.TestYanConfig" fork="yes"> <classpath refid="test.run.classpath"/> </java> </target> <target name="parsec.test" depends="testColoring,testLexer,testParser,testRfc822,testSqlParser"/> <target name="jaskell.test" depends="testConfiguration,testJaskellMonad,testJaskellParsec, testJaskellConversion,testJaskell,testExpr"/> <target name="all.test" depends="buildtest, testDict, parsec.test, jaskell.test, yan.test, yan.config.test"> <!-- <junit dir="." printsummary="yes" fork="yes"> <classpath> <pathelement location="${tests.run.classpath}"/> </classpath> <formatter type="plain"/> <test name="tests.jfun.Test1"/> <test name="tests.jfun.Test2"/> <test name="tests.jfun.Test3"/> <test name="tests.jfun.Test4"/> </junit> --> </target> <target name="clean"> <delete dir="${build.dir}"/> <delete dir="${test.build.dir}"/> </target> <target name="yan.dist.prepare"> <delete dir="dist/yan"/> <mkdir dir="dist"/> <mkdir dir="dist/yan"/> </target> <target name="parsec.dist.prepare"> <delete dir="dist/parsec"/> <mkdir dir="dist"/> <mkdir dir="dist/parsec"/> </target> <target name="jaskell.dist.prepare"> <delete dir="dist/jaskell"/> <mkdir dir="dist"/> <mkdir dir="dist/jaskell"/> </target> <target name="util.dist.prepare"> <delete dir="dist/util"/> <mkdir dir="dist"/> <mkdir dir="dist/util"/> </target> <target name="yield.dist.prepare"> <delete dir="dist/yield"/> <mkdir dir="dist"/> <mkdir dir="dist/yield"/> </target> <target name="arc.prepare"> <mkdir dir="archive"/> <mkdir dir="archive/parsec"/> </target> <target name="arc" depends="arc.prepare"> <tstamp> <format property="date.time" pattern="yyyy-MM-dd-hh-mm-ss"/> </tstamp> <jar destfile="archive/v${date.time}.jar" basedir="." includes="build.xml, libs/**/*.*, src/**/*.java, src/**/*.html, test/src/**/*.java, log/*.log" /> </target> <!-- builds the pizza_ant.jar and automagically copies it to the ant --> <!-- lib directory. Not for everyone, but convenient for some --> <!-- make the build directory --> <target name="build_dir"> <mkdir dir="${build.dir}"/> </target> <!-- make the tests build directory --> <target name="test_build_dir"> <mkdir dir="${test.build.dir}"/> </target> <target name="jaskell.doc"> <javadoc destdir="docs/jaskell/api" access="protected" use="true" notree="false" nonavbar="false" noindex="false" splitindex="true" author="true" version="true" nodeprecatedlist="false" nodeprecated="false" packagenames="jfun.jaskell.function,jfun.util.dict,jfun.jaskell.*" excludepackagenames="jfun.jaskell.util" sourcefiles="src/jfun/util/Pair.java,src/jfun/util/Sizeable.java,src/jfun/util/List.java" sourcepath="src;test/src" classpath="test/build;lib/junit.jar" doctitle="Jaskell API Documentation"/> </target> <target name="yan.doc"> <javadoc destdir="docs/yan/api" access="protected" use="true" notree="false" nonavbar="false" noindex="false" splitindex="true" author="true" version="true" nodeprecatedlist="false" nodeprecated="false" packagenames="jfun.yan, jfun.yan.containers,jfun.yan.etc,jfun.yan.lifecycle, jfun.yan.monad" sourcepath="src;test/src" classpath="test/build;lib/junit.jar" doctitle="Jaskell API Documentation"/> </target> <target name="parsec.doc"> <javadoc destdir="docs/parsec/api" access="protected" use="true" notree="false" nonavbar="false" noindex="false" splitindex="true" author="true" version="true" nodeprecatedlist="false" nodeprecated="false" packagenames="jfun.parsec.tokens,jfun.parsec,jfun.parsec.pattern" sourcepath="src;test/src" classpath="test/build;lib/junit.jar" doctitle="Java Higher-order Parser Combinator API Documentation"/> </target> <target name="util.doc"> <javadoc destdir="docs/util/api" access="protected" use="true" notree="false" nonavbar="false" noindex="false" splitindex="true" author="true" version="true" nodeprecatedlist="false" nodeprecated="false" packagenames="jfun.util.*" sourcepath="src;test/src" classpath="test/build;lib/junit.jar" doctitle="Common utility classes for jfun project"/> </target> <target name="yield.doc"> <javadoc destdir="docs/yield/api" access="protected" use="true" notree="false" nonavbar="false" noindex="false" splitindex="true" author="true" version="true" nodeprecatedlist="false" nodeprecated="false" packagenames="jfun.util.yield.*" sourcepath="src;test/src" classpath="test/build;lib/junit.jar" doctitle="Iterator Framework using yield"/> </target> <target name="util.dist" depends="util.dist.prepare, util.build"> <jar destfile="dist/util/util_src.zip" includes="build.xml, src/jfun/util/**/*.java, src/jfun/util/**/*.html, LICENSE.txt" basedir="."/> <zip destfile="dist/util/util_doc.zip" basedir="." includes="docs/util/api/**/*.*,docs/util/*.*"/> <jar destfile="dist/util/jfun_commons.jar" basedir="build" includes="jfun/util/**/*.class"/> <zip destfile="dist/util/util.zip" basedir="dist/util" includes="util_src.zip, util_doc.zip, jfun_commons.jar"/> </target> <target name="yield.dist" depends="yield.dist.prepare, yield.build"> <jar destfile="dist/yield/yield_src.zip" includes="LICENSE.TXT, build.xml, src/jfun/util/yield/**/*.java, src/jfun/util/yield/**/*.html, LICENSE.txt" basedir="."/> <zip destfile="dist/yield/yield_doc.zip" basedir="." includes="docs/yield/api/**/*.*,docs/yield/*.*"/> <zip destfile="dist/yield/yield.zip" basedir="dist/yield" includes="yield_src.zip, yield_doc.zip"/> </target> <target name="yan.dist" depends="yan.dist.prepare"> <zip destfile="dist/yan/yan_src.zip" includes="build.xml, src/jfun/yan/**/*.java, src/jfun/yan/**/*.html, LICENSE.txt, lib/**/*.*, test/src/tests/jfun/utils/**/*.java, test/src/tests/jfun/models/*.java, src/jfun/util/StringUtils.java, src/jfun/util/ArrayAsList.java, src/jfun/util/Misc.java, src/jfun/util/beans/**/*.*, src/jfun/util/Serializable*.java, test/src/tests/jfun/yan/**/*.*" excludes="src/jfun/yan/conf/**/*.*, test/src/tests/jfun/yan/TestYanConfig.java" basedir="."/> <zip destfile="dist/yan/yan_doc.zip" basedir="." includes="docs/yan/api/**/*.*,docs/yan/*.*"/> <zip destfile="dist/yan/yan.zip" basedir="dist/yan" includes="yan_src.zip, yan_doc.zip"/> </target> <target name="parsec.dist" depends="parsec.dist.prepare"> <zip destfile="dist/parsec/parsec_src.zip" includes="build.xml, src/jfun/parsec/**/*.java, src/jfun/parsec/**/*.html, src/jfun/util/Unit.java, src/jfun/util/*.html, LICENSE.txt, src/jfun/util/StringUtils.java,src/jfun/util/ArrayAsList.java, lib/**/*.*, test/src/tests/jfun/utils/**/*.java, test/src/tests/jfun/models/*.java, src/jfun/util/Serializable*.java, test/sql/*.sql, test/*.txt, test/src/tests/jfun/parsec/**/*.java" excludes="src/jfun/parsec/List2Array.*" basedir="."/> <zip destfile="dist/parsec/parsec_doc.zip" basedir="." includes="docs/parsec/api/**/*.*"/> <zip destfile="dist/parsec/parsec.zip" basedir="dist/parsec" includes="parsec_src.zip, parsec_doc.zip"/> </target> <target name="jaskell.dist" depends="jaskell.dist.prepare"> <zip destfile="dist/jaskell/jaskell_src.zip" includes="build.xml, src/jfun/parsec/**/*.java, LICENSE.txt, src/jfun/parsec/**/*.html, src/jfun/util/*.java, src/jfun/util/*.html, src/jfun/jaskell/**/*.java,src/jfun/jaskell/**/*.html, src/jfun/util/beans/**/*.java,src/jfun/util/beans/**/*.html, src/jfun/util/dict/**/*.java,src/jfun/util/dict/**/*.html, src/jfun/util/Serializable*.java, libs/**/*.*, lib/**/*.*, test/src/tests/jfun/utils/**/*.java, test/src/tests/jfun/models/*.java, test/src/tests/jfun/jaskell/**/*.java, test/**/*.jsl, test/**/*.policy" basedir="."/> <zip destfile="dist/jaskell/jaskell_doc.zip" basedir="." includes="docs/jaskell/**/*.*"/> <zip destfile="dist/jaskell/jaskell.zip" basedir="dist/jaskell" includes="jaskell_src.zip, jaskell_doc.zip"/> </target> <target name="buildjslc" depends="build"> <jar destfile="dist/jaskell/jslc.jar" basedir="build" includes="jfun/jaskell/**/*.class, jfun/util/**/*.class, jfun/parsec/*.class, jfun/parsec/pattern/**/*.class, jfun/parsec/tokens/**/*.class" manifest="src/jslc.mf" /> <delete dir="dist/jaskell/libs"/> <copy todir="dist/jaskell/libs"> <fileset dir="libs"/> </copy> </target> <taskdef resource="clovertasks"/> <target name="with.clover"> <clover-setup initString="clover/coverage.db"/> </target> <target name="clover.html" depends="with.clover"> <clover-report> <current outfile="clover_html"> <format type="html"/> </current> </clover-report> </target> <target name="clover.clean" depends="clean"> <clover-clean initString="clover/coverage.db" keepdb="false"/> </target> </project>