Newer
Older
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="all" name="i2p">

jrandom
committed
<target name="all" >
<echo message="Useful targets: " />
<echo message=" build: build existing code into ./build/, but dont clean" />
<echo message=" javadoc: generate javadoc for the entire project into ./build/javadoc" />
<echo message=" clean: clean up the ./build/ dir" />
<echo message=" distclean: clean up all derived files" />

jrandom
committed
<echo message=" dist: distclean, then build and javadoc (including the web app and associated libs)" />
<echo message=" prepGUI: pull the LGPL and APL code for JFreeChart that we use in the GUIs" />
<echo message=" buildGUI: build the heartbeat and netmonitor GUIs (must have run prepGUI already)" />

jrandom
committed
<echo message=" buildWEB: build the router console web application" />
<echo message=" pkg: make the tarball and installer jar (depends upon preppkg)" />
<echo message=" pkgclean: delete the ./pkg-temp/ dir, tarball and installer jar" />
<echo message=" preppkg: gather built files for tarball and installer (depends upon prepWEB)" />
<echo message=" tarball: tar the built files and compress with bz2 (depends upon preppkg)" />
<echo message=" installer: build the GUI installer (depends upon preppkg)" />
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<target name="dist" depends="distclean, build, buildWEB, javadoc">
<delete dir="build/lib" />
<delete dir="build/webapps" />
<mkdir dir="build/lib" />
<copy file="core/java/build/i2p.jar" todir="build/lib" />
<copy file="router/java/build/router.jar" todir="build/lib" />
<copy file="apps/ministreaming/java/build/mstreaming.jar" todir="build/lib" />
<copy file="apps/i2ptunnel/java/build/i2ptunnel.jar" todir="build/lib" />
<copy file="apps/sam/java/build/sam.jar" todir="build/lib" />
<copy file="apps/heartbeat/java/build/heartbeat.jar" todir="build/lib" />
<copy file="apps/netmonitor/java/build/netmonitor.jar" todir="build/lib" />
<copy file="installer/java/build/fetchseeds.jar" todir="build/lib" />
<tar compression="bzip2" destfile="build/lib.tar.bz2">
<tarfileset dir="build" includes="lib/*" />
</tar>
<delete dir="build/lib" />
<delete dir="build/webapps" />
<mkdir dir="build/lib" />
<mkdir dir="build/webapps" />
<copy file="apps/i2ptunnel/java/build/i2ptunnel.war" todir="build/webapps" />
<copy file="apps/routerconsole/java/build/routerconsole.war" todir="build/webapps" />
<copy file="apps/routerconsole/java/build/routerconsole.jar" todir="build/lib" />
<tar compression="bzip2" destfile="build/webapps.tar.bz2">
<tarfileset dir="build" includes="lib/* webapps/*" />
</tar>
<delete dir="build/lib" />
<delete dir="build/webapps" />
<mkdir dir="build/lib" />
<copy file="apps/jetty/jettylib/org.mortbay.jetty.jar" todir="build/lib" />
<copy file="apps/jetty/jettylib/org.mortbay.jetty-jdk1.2.jar" todir="build/lib" />
<copy file="apps/jetty/jettylib/ant.jar" todir="build/lib" />
<copy file="apps/jetty/jettylib/jasper-compiler.jar" todir="build/lib" />
<copy file="apps/jetty/jettylib/jasper-runtime.jar" todir="build/lib" />
<copy file="apps/jetty/jettylib/jnet.jar" todir="build/lib" />
<copy file="apps/jetty/jettylib/xercesImpl.jar" todir="build/lib" />
<copy file="apps/jetty/jettylib/xml-apis.jar" todir="build/lib" />
<copy file="apps/jetty/jettylib/javax.servlet.jar" todir="build/lib" />
<tar compression="bzip2" destfile="build/weblib.tar.bz2">
<tarfileset dir="build" includes="lib/*" />
</tar>
</target>

jrandom
committed
<target name="build" depends="builddep, jar, buildWEB" />

jrandom
committed
<target name="buildclean" depends="distclean, build" />
<!-- build *everything* here, but only once -->
<ant dir="core/java/" target="jar" />
<ant dir="router/java/" target="jar" />
<ant dir="apps/ministreaming/java/" target="jar" />
<ant dir="apps/i2ptunnel/java/" target="jar" />
<ant dir="apps/sam/java/" target="jar" />
<ant dir="apps/heartbeat/java/" target="jar" />
<ant dir="apps/netmonitor/java/" target="jar" />

jrandom
committed
<ant dir="apps/routerconsole/java/" target="jar" />
</target>
<target name="compile" />
<target name="jar" depends="compile" >
<copy file="core/java/build/i2p.jar" todir="build/" />
<copy file="router/java/build/router.jar" todir="build/" />
<copy file="apps/ministreaming/java/build/mstreaming.jar" todir="build/" />
<copy file="apps/i2ptunnel/java/build/i2ptunnel.jar" todir="build/" />
<copy file="apps/i2ptunnel/java/build/i2ptunnel.war" todir="build/" />
<copy file="apps/sam/java/build/sam.jar" todir="build/" />
<copy file="apps/heartbeat/java/build/heartbeat.jar" todir="build/" />
<copy file="apps/netmonitor/java/build/netmonitor.jar" todir="build/" />
<copy file="installer/java/build/install.jar" todir="build/" />
<copy file="installer/java/build/guiinstall.jar" todir="build/" />
<copy file="installer/java/build/fetchseeds.jar" todir="build/" />
<copy file="installer/lib/jbigi/jbigi.jar" todir="build" />
</target>
<target name="javadoc">
<mkdir dir="./build" />
<mkdir dir="./build/javadoc" />
<javadoc

jrandom
committed
sourcepath="core/java/src:core/java/test:router/java/src:router/java/test:apps/ministreaming/java/src:apps/i2ptunnel/java/src:apps/httptunnel/java/src:apps/routerconsole/java/src"
classpath="apps/jetty/jettylib/org.mortbay.jetty.jar"
destdir="./build/javadoc"
packagenames="*"
use="true"
splitindex="true"
windowtitle="I2P" />
</target>

jrandom
committed
<target name="clean" depends="pkgclean" >
<delete dir="./build" />
</target>
<target name="distclean" depends="clean">
<ant dir="core/java/" target="distclean" />
<ant dir="router/java/" target="distclean" />
<ant dir="apps/ministreaming/java/" target="distclean" />
<ant dir="apps/i2ptunnel/java/" target="distclean" />
<ant dir="apps/sam/java/" target="distclean" />
<ant dir="apps/heartbeat/java/" target="distclean" />
<ant dir="apps/netmonitor/java/" target="distclean" />

jrandom
committed
<ant dir="apps/routerconsole/java/" target="distclean" />
<ant dir="installer/java/" target="distclean" />
<delete>
<fileset dir="." includes="**/*.class" />
<fileset dir="." includes="**/*.java~" />
</delete>
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<target name="distGUI" depends="clean, buildGUI">
<mkdir dir="build/lib" />
<copy file="apps/jfreechart/jfreechart-0.9.17/jfreechart-0.9.17.jar" todir="build/lib" />
<copy file="apps/jfreechart/jfreechart-0.9.17/lib/log4j-1.2.8.jar" todir="build/lib" />
<copy file="apps/jfreechart/jfreechart-0.9.17/lib/jcommon-0.9.2.jar" todir="build/lib" />
<copy file="apps/jfreechart/GUI-licenses.txt" todir="build/" />
<copy file="apps/netmonitor/java/build/netviewer.jar" todir="build/lib" />
<copy file="apps/heartbeat/java/build/heartbeatGUI.jar" todir="build/lib" />
<zip destfile="build/gui.zip" basedir="build/" includes="GUI-licenses.txt lib/*.jar" />
</target>
<target name="prepGUI">
<echo message="The code being fetched comes from http://www.jfree.org/jfreechart/" />
<echo message="It includes code licensed under the LGPL and the APL - please see" />
<echo message="the JFreeChart site (or the info downloaded) for source and details" />
<ant dir="apps/jfreechart/" target="fetchJfreechart" />
<ant dir="apps/jfreechart/" target="build" />
</target>
<target name="buildGUI">
<echo message="Building the GUIs for the heartbeat and netmonitor apps, which depend upon" />
<echo message="the JFreeChart and related packages. The following will fail if you haven't" />
<echo message="already run 'ant prepGUI' to fetch the LGPL/APL'ed code" />
<ant dir="apps/heartbeat/java" target="buildGUI" />
<ant dir="apps/netmonitor/java" target="buildGUI" />
<copy file="apps/jfreechart/jfreechart-0.9.17/jfreechart-0.9.17.jar" todir="build/" />
<copy file="apps/jfreechart/jfreechart-0.9.17/lib/log4j-1.2.8.jar" todir="build/" />
<copy file="apps/jfreechart/jfreechart-0.9.17/lib/jcommon-0.9.2.jar" todir="build/" />
<copy file="apps/jfreechart/GUI-licenses.txt" todir="build/" />
<copy file="apps/netmonitor/java/build/netviewer.jar" todir="build/" />
<copy file="apps/heartbeat/java/build/heartbeatGUI.jar" todir="build/" />
<echo message="GUIs created. You will need the following files to run them: " />
<echo message="jfreechart-0.9.17.jar log4j-1.2.8.jar jcommon-0.9.2.jar" />
<echo message="To run the netmonitor GUI: java -cp jfreechart-0.9.17.jar:log4j-1.2.8.jar:jcommon-0.9.2.jar -jar netviewer.jar" />
<echo message="To run the heartbeat GUI: java -cp jfreechart-0.9.17.jar:log4j-1.2.8.jar:jcommon-0.9.2.jar -jar heartbeatGUI.jar" />
</target>

jrandom
committed
<target name="prepWEB">
<ant dir="apps/jetty" target="fetchJettylib" />
</target>

jrandom
committed
<target name="buildWEB" depends="prepWEB" >
<available property="jettylib.available" file="apps/jetty/jettylib" />
<ant target="doBuildWEB" />
</target>
<target name="doBuildWEB" if="jettylib.available">

jrandom
committed
<ant dir="apps/routerconsole/java" target="build" />
<copy file="apps/routerconsole/java/build/routerconsole.jar" todir="build/" />
<copy file="apps/routerconsole/java/build/routerconsole.war" todir="build/" />

jrandom
committed
<copy file="apps/jetty/jettylib/org.mortbay.jetty.jar" todir="build/" />
<copy file="apps/jetty/jettylib/org.mortbay.jetty-jdk1.2.jar" todir="build/" />
<copy file="apps/jetty/jettylib/ant.jar" todir="build/" />
<copy file="apps/jetty/jettylib/jasper-compiler.jar" todir="build/" />
<copy file="apps/jetty/jettylib/jasper-runtime.jar" todir="build/" />
<copy file="apps/jetty/jettylib/jnet.jar" todir="build/" />
<copy file="apps/jetty/jettylib/xercesImpl.jar" todir="build/" />
<copy file="apps/jetty/jettylib/xml-apis.jar" todir="build/" />
<copy file="apps/jetty/jettylib/javax.servlet.jar" todir="build/" />
<echo message="You will need the org.*, ant.jar, jasper-*.jar, jnet.jar, xercesImpl.jar, xml-apis.jar, " />
<echo message="and routerconsole.jar in your router's classpath. In addition, you will need to place the " />
<echo message="routerconsole.war file under your i2p install dir as webapps/routerconsole.war and will want " />
<echo message="to add the RouterConsoleRunner to the router's clientApp list (it must be in the router's JVM)" />

jrandom
committed
</target>
<target name="pkg" depends="tarball, installer" />
<target name="pkgclean">
<delete dir="pkg-temp" />
<delete>
<fileset dir="." includes="i2p.tar.bz2 install.jar" />
</delete>
</target>
<target name="preppkg" depends="build, buildWEB">
<copy file="build/ant.jar" todir="pkg-temp/lib/" />
<copy file="build/heartbeat.jar" todir="pkg-temp/lib/" />
<copy file="build/i2p.jar" todir="pkg-temp/lib/" />
<copy file="build/i2ptunnel.jar" todir="pkg-temp/lib/" />
<copy file="build/jasper-compiler.jar" todir="pkg-temp/lib/" />
<copy file="build/jasper-runtime.jar" todir="pkg-temp/lib/" />
<copy file="build/javax.servlet.jar" todir="pkg-temp/lib/" />
<copy file="build/jnet.jar" todir="pkg-temp/lib/" />
<copy file="build/mstreaming.jar" todir="pkg-temp/lib/" />
<copy file="build/netmonitor.jar" todir="pkg-temp/lib/" />
<copy file="build/org.mortbay.jetty-jdk1.2.jar" todir="pkg-temp/lib/" />
<copy file="build/org.mortbay.jetty.jar" todir="pkg-temp/lib/" />
<copy file="build/router.jar" todir="pkg-temp/lib/" />
<copy file="build/routerconsole.jar" todir="pkg-temp/lib/" />
<copy file="build/sam.jar" todir="pkg-temp/lib/" />
<copy file="build/xercesImpl.jar" todir="pkg-temp/lib/" />
<copy file="build/xml-apis.jar" todir="pkg-temp/lib/" />
<copy file="build/jbigi.jar" todir="pkg-temp/lib" />
<copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" />
<copy file="build/routerconsole.war" todir="pkg-temp/webapps/" />
<copy file="hosts.txt" todir="pkg-temp/" />

jrandom
committed
<copy file="installer/resources/i2ptunnel.config" todir="pkg-temp/" />
<copy file="installer/resources/clients.config" todir="pkg-temp/" />
<copy file="readme.txt" todir="pkg-temp/" />
</target>
<target name="tarball" depends="preppkg">
<tar compression="bzip2" destfile="i2p.tar.bz2">
<tarfileset dir="pkg-temp" includes="**/*" prefix="i2p" />
</tar>
</target>
<taskdef name="izpack" classpath="${basedir}/installer/lib/izpack/standalone-compiler.jar" classname="com.izforge.izpack.ant.IzPackTask" />
<target name="installer" depends="preppkg">
<izpack input="${basedir}/installer/install.xml" output="${basedir}/install.jar" installerType="standard" basedir="${basedir}" />
</target>