<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="all" name="i2ptunnel">
    <target name="all" depends="clean, build" />
    <target name="build" depends="builddep, jar" />
    <target name="builddep">
        <ant dir="../../ministreaming/java/" target="build" />
        <ant dir="../../jetty/" target="build" />
	<!-- ministreaming will build core -->
    </target>
    <target name="depend">
        <depend
            cache="../../../build"
            srcdir="./src" 
            destdir="./build/obj" >
            <!-- Depend on classes instead of jars where available -->
            <classpath>
                <pathelement location="../../../core/java/build/obj" />
                <pathelement location="../../ministreaming/java/build/obj" />
            </classpath>
        </depend>
    </target>
    <target name="compile" depends="depend">
        <mkdir dir="./build" />
        <mkdir dir="./build/obj" />
        <javac 
            srcdir="./src" 
            debug="true" deprecation="on" source="1.5" target="1.5" 
            destdir="./build/obj" 
            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" />
    </target>
    <target name="jar" depends="builddep, compile">
        <jar destfile="./build/i2ptunnel.jar" basedir="./build/obj" includes="**/*.class">
            <manifest>
                <attribute name="Main-Class" value="net.i2p.i2ptunnel.I2PTunnel" />
                <attribute name="Class-Path" value="i2p.jar mstreaming.jar" />
            </manifest>
        </jar>
        <ant target="war" />
    </target>
    <target name="war" depends="precompilejsp"> 
        <war destfile="build/i2ptunnel.war" webxml="../jsp/web-out.xml"
             basedir="../jsp/" excludes="web.xml, *.java, *.jsp">
        </war>
    </target>
    <target name="precompilejsp" unless="precompilejsp.uptodate">
        <delete dir="../jsp/WEB-INF/" />
        <delete file="../jsp/web-fragment.xml" />
        <delete file="../jsp/web-out.xml" />
        <mkdir dir="../jsp/WEB-INF/" />
        <mkdir dir="../jsp/WEB-INF/classes" />
        <!-- there are various jspc ant tasks, but they all seem a bit flakey -->
        <java classname="org.apache.jasper.JspC" fork="true" >
            <classpath>
                <pathelement location="../../jetty/jettylib/jasper-compiler.jar" />
                <pathelement location="../../jetty/jettylib/jasper-runtime.jar" />
                <pathelement location="../../jetty/jettylib/javax.servlet.jar" />
                <pathelement location="../../jetty/jettylib/commons-logging.jar" />
                <pathelement location="../../jetty/jettylib/commons-el.jar" />
                <pathelement location="../../jetty/jettylib/ant.jar" />
                <pathelement location="build/i2ptunnel.jar" />
            </classpath>
            <arg value="-d" />
            <arg value="../jsp/WEB-INF/classes" />
            <arg value="-p" />
            <arg value="net.i2p.i2ptunnel.jsp" />
            <arg value="-webinc" />
            <arg value="../jsp/web-fragment.xml" />
            <arg value="-webapp" />
            <arg value="../jsp/" />
        </java>
        <javac debug="true" deprecation="on" source="1.5" target="1.5" 
               destdir="../jsp/WEB-INF/classes/" srcdir="../jsp/WEB-INF/classes" includes="**/*.java">
            <classpath>
                <pathelement location="../../jetty/jettylib/jasper-runtime.jar" />
                <pathelement location="../../jetty/jettylib/javax.servlet.jar" />
                <pathelement location="../../jetty/jettylib/commons-logging.jar" />
                <pathelement location="../../jetty/jettylib/commons-el.jar" />
                <pathelement location="build/i2ptunnel.jar" />
            </classpath>
        </javac>
        <copy file="../jsp/web.xml" tofile="../jsp/web-out.xml" />
        <loadfile property="jspc.web.fragment" srcfile="../jsp/web-fragment.xml" />
        <replace file="../jsp/web-out.xml">
            <replacefilter token="&lt;!-- precompiled servlets --&gt;" value="${jspc.web.fragment}" />
        </replace>
    </target>

    <uptodate property="precompilejsp.uptodate" targetfile="../jsp/web-out.xml">
        <srcfiles dir= "../jsp" includes="*.jsp, *.html, web.xml"/>
    </uptodate>

    <target name="javadoc">
        <mkdir dir="./build" />
        <mkdir dir="./build/javadoc" />
        <javadoc 
            sourcepath="./src:../../../core/java/src:../../ministreaming/java/src" destdir="./build/javadoc" 
            packagenames="*" 
            use="true" 
            splitindex="true" 
            windowtitle="I2PTunnel" />
    </target>
    <target name="clean">
        <delete dir="./build" />
        <delete dir="../jsp/WEB-INF/" />
        <delete file="../jsp/web-fragment.xml" />
        <delete file="../jsp/web-out.xml" />
    </target>
    <target name="cleandep" depends="clean">
	<!-- ministreaming will clean core -->
        <ant dir="../../ministreaming/java/" target="distclean" />
    </target>
    <target name="distclean" depends="clean">
	<!-- ministreaming will clean core -->
        <ant dir="../../ministreaming/java/" target="distclean" />
    </target>
</project>