From 612d06bd53aa517bed4ad9cf8f1ec9894f8baa66 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sun, 28 Nov 2010 03:56:56 +0000 Subject: [PATCH] * Build: Move all dependencies to top-level build.xml, so each sub-build.xml is only executed once (true DAG) --- apps/i2psnark/java/build.xml | 4 +- apps/i2ptunnel/java/build.xml | 4 +- apps/ministreaming/java/build.xml | 4 +- apps/routerconsole/java/build.xml | 12 +---- apps/sam/java/build.xml | 10 +--- apps/streaming/java/build.xml | 7 +-- apps/susimail/build.xml | 2 +- apps/systray/java/build.xml | 5 +- build.xml | 77 +++++++++++++++++++++++++------ router/java/build.xml | 4 +- 10 files changed, 72 insertions(+), 57 deletions(-) diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml index 4d7fbbe94..90f5cd6fe 100644 --- a/apps/i2psnark/java/build.xml +++ b/apps/i2psnark/java/build.xml @@ -3,9 +3,7 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar, war" /> <target name="builddep"> - <ant dir="../../jetty/" target="build" /> - <ant dir="../../streaming/java/" target="build" /> - <!-- streaming will build ministreaming and core --> + <!-- run from top level build.xml to get dependencies built --> </target> <condition property="depend.available"> <typefound name="depend" /> diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml index b17e8d9f3..f50fadd3e 100644 --- a/apps/i2ptunnel/java/build.xml +++ b/apps/i2ptunnel/java/build.xml @@ -3,9 +3,7 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar, war" /> <target name="builddep"> - <ant dir="../../ministreaming/java/" target="build" /> - <ant dir="../../jetty/" target="build" /> - <!-- ministreaming will build core --> + <!-- run from top level build.xml to get dependencies built --> </target> <condition property="depend.available"> <typefound name="depend" /> diff --git a/apps/ministreaming/java/build.xml b/apps/ministreaming/java/build.xml index ca0889042..c22676d26 100644 --- a/apps/ministreaming/java/build.xml +++ b/apps/ministreaming/java/build.xml @@ -3,7 +3,7 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar" /> <target name="builddep"> - <ant dir="../../../core/java/" target="build" /> + <!-- run from top level build.xml to get dependencies built --> </target> <condition property="depend.available"> <typefound name="depend" /> @@ -45,9 +45,7 @@ <delete dir="./build" /> </target> <target name="cleandep" depends="clean"> - <ant dir="../../../core/java/" target="cleandep" /> </target> <target name="distclean" depends="clean"> - <ant dir="../../../core/java/" target="distclean" /> </target> </project> diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml index 8b08c0de8..d544e59ac 100644 --- a/apps/routerconsole/java/build.xml +++ b/apps/routerconsole/java/build.xml @@ -3,12 +3,10 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar" /> <target name="builddep"> - <ant dir="../../../router/java/" target="build" /> - <ant dir="../../systray/java/" target="build" /> - <!-- router will build core --> + <!-- run from top level build.xml to get dependencies built --> </target> <target name="prepare"> - <ant dir="../../jetty/" target="build" /> + <!-- run from top level build.xml to get dependencies built --> </target> <condition property="depend.available"> <typefound name="depend" /> @@ -235,13 +233,7 @@ <delete file="../jsp/web-out.xml" /> </target> <target name="cleandep" depends="clean"> - <!-- router will clean core --> - <ant dir="../../../router/java/" target="cleandep" /> - <ant dir="../../systray/java/" target="cleandep" /> </target> <target name="distclean" depends="clean"> - <!-- router will clean core --> - <ant dir="../../../router/java/" target="distclean" /> - <ant dir="../../systray/java/" target="distclean" /> </target> </project> diff --git a/apps/sam/java/build.xml b/apps/sam/java/build.xml index 6a987b341..57aeff994 100644 --- a/apps/sam/java/build.xml +++ b/apps/sam/java/build.xml @@ -3,9 +3,7 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar" /> <target name="builddep"> - <ant dir="../../ministreaming/java/" target="build" /> - <ant dir="../../streaming/java/" target="build" /> - <!-- ministreaming will build core --> + <!-- run from top level build.xml to get dependencies built --> </target> <condition property="depend.available"> <typefound name="depend" /> @@ -69,13 +67,7 @@ <delete dir="./build" /> </target> <target name="cleandep" depends="clean"> - <!-- ministreaming will clean core --> - <ant dir="../../ministreaming/java/" target="distclean" /> - <ant dir="../../streaming/java/" target="distclean" /> </target> <target name="distclean" depends="clean"> - <!-- ministreaming will clean core --> - <ant dir="../../ministreaming/java/" target="distclean" /> - <ant dir="../../streaming/java/" target="distclean" /> </target> </project> diff --git a/apps/streaming/java/build.xml b/apps/streaming/java/build.xml index 7740a6022..dff6fbf1d 100644 --- a/apps/streaming/java/build.xml +++ b/apps/streaming/java/build.xml @@ -3,8 +3,7 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar" /> <target name="builddep"> - <ant dir="../../ministreaming/java/" target="build" /> - <!-- ministreaming will build core --> + <!-- run from top level build.xml to get dependencies built --> </target> <condition property="depend.available"> <typefound name="depend" /> @@ -62,11 +61,7 @@ <delete dir="./build" /> </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> diff --git a/apps/susimail/build.xml b/apps/susimail/build.xml index fb4371614..9ab38ce42 100644 --- a/apps/susimail/build.xml +++ b/apps/susimail/build.xml @@ -3,7 +3,7 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar" /> <target name="builddep"> - <ant dir="../jetty/" target="build" /> + <!-- run from top level build.xml to get dependencies built --> </target> <property name="javac.compilerargs" value="" /> <target name="compile"> diff --git a/apps/systray/java/build.xml b/apps/systray/java/build.xml index 1597f20b3..9d48f902c 100644 --- a/apps/systray/java/build.xml +++ b/apps/systray/java/build.xml @@ -3,7 +3,7 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar" /> <target name="builddep"> - <ant dir="../../../core/java/" target="build" /> + <!-- run from top level build.xml to get dependencies built --> </target> <property name="javac.compilerargs" value="" /> <target name="compile"> @@ -55,10 +55,7 @@ <delete dir="./build" /> </target> <target name="cleandep" depends="clean"> - <!-- router will clean core --> - <ant dir="../../../core/java/" target="cleandep" /> </target> <target name="distclean" depends="clean"> - <ant dir="../../../core/java/" target="distclean" /> </target> </project> diff --git a/build.xml b/build.xml index de3525191..f0c1c4973 100644 --- a/build.xml +++ b/build.xml @@ -62,33 +62,79 @@ <target name="build2" depends="builddep, jar, buildWEB" /> <target name="buildSmall" depends="builddepSmall, jarSmall, buildWEB" /> <target name="buildclean" depends="distclean, build" /> - <target name="builddep" depends="builddepSmall"> - <!-- build *everything* here, but only once --> + + <target name="builddep" depends="builddepSmall, buildBOB, buildSAM, buildSusiMail, buildSusiDNS, buildI2PSnark" /> + + <target name="builddepSmall" depends="buildrouter, buildSystray, buildRouterConsole, buildStreaming, buildI2PTunnel, buildAddressbook" /> + + <!-- start of buildX, one for each sub-build.xml. + Do not put ant tasks in the sub-build.xmls anymore, + so the build will go faster. + --> + + <!-- TODO remove I2PTunnel dependency in BOB --> + <target name="buildBOB" depends="buildStreaming, buildI2PTunnel" > <ant dir="apps/BOB/" target="jar" /> + </target> + + <target name="buildSAM" depends="buildStreaming" > <ant dir="apps/sam/java/" target="jar" /> + </target> + + <target name="buildSusiMail" depends="buildCore, buildJetty" > <ant dir="apps/susimail/" target="war" /> + </target> + + <target name="buildSusiDNS" depends="buildCore, buildJetty" > <ant dir="apps/susidns/src" target="all" /> + </target> + + <target name="buildI2PSnark" depends="buildStreaming, buildJetty" > <ant dir="apps/i2psnark/java/" target="war" /> </target> - <target name="builddepSmall"> - <ant dir="core/java/" target="jar" /> - <ant dir="router/java/" target="jar" /> - <ant dir="apps/systray/java/" target="jar" /> + + <target name="buildAddressbook" depends="buildCore, buildJetty" > + <ant dir="apps/addressbook/" target="war" /> + </target> + + <target name="buildI2PTunnel" depends="buildStreaming, buildJetty" > + <ant dir="apps/i2ptunnel/java/" target="build" /> + </target> + + <target name="buildRouterConsole" depends="buildrouter, buildSystray, buildJetty" > <ant dir="apps/routerconsole/java/" target="jar" /> - <ant dir="apps/ministreaming/java/" target="jar" /> + </target> + + <target name="buildJetty" > + <ant dir="apps/jetty" target="build" /> + </target> + + <target name="buildSystray" depends="buildCore" > + <ant dir="apps/systray/java/" target="jar" /> + </target> + + <target name="buildStreaming" depends="buildMinistreaming" > <ant dir="apps/streaming/java/" target="jar" /> - <ant dir="apps/i2ptunnel/java/" target="build" /> - <ant dir="apps/addressbook/" target="war" /> </target> - <target name="buildrouter"> - <ant dir="core/java/" target="jar" /> + + <target name="buildMinistreaming" depends="buildCore" > + <ant dir="apps/ministreaming/java/" target="jar" /> + </target> + + <target name="buildRouter" depends="buildrouter" /> + <target name="buildrouter" depends="buildCore" > <ant dir="router/java/" target="jar" /> - <copy file="core/java/build/i2p.jar" todir="build/" /> <copy file="router/java/build/router.jar" todir="build/" /> </target> - <target name="buildWEB"> - <ant dir="apps/jetty" target="ensureJettylib" /> - <ant dir="apps/routerconsole/java" target="build" /> + + <target name="buildCore" > + <ant dir="core/java/" target="jar" /> + <copy file="core/java/build/i2p.jar" todir="build/" /> + </target> + + <!-- end of sub-build.xml targets --> + + <target name="buildWEB" depends="buildRouterConsole" > <copy file="apps/routerconsole/java/build/routerconsole.jar" todir="build/" /> <copy file="apps/routerconsole/java/build/routerconsole.war" todir="build/" /> <copy file="apps/jetty/jettylib/org.mortbay.jetty.jar" todir="build/" /> @@ -98,6 +144,7 @@ <copy file="apps/jetty/jettylib/commons-el.jar" todir="build/" /> <copy file="apps/jetty/jettylib/javax.servlet.jar" todir="build/" /> </target> + <target name="buildexe"> <condition property="noExe"> <os arch="x86_64" /> diff --git a/router/java/build.xml b/router/java/build.xml index efb0b3091..69f6b4109 100644 --- a/router/java/build.xml +++ b/router/java/build.xml @@ -3,7 +3,7 @@ <target name="all" depends="clean, build" /> <target name="build" depends="builddep, jar" /> <target name="builddep"> - <ant dir="../../core/java/" target="build" /> + <!-- run from top level build.xml to get dependencies built --> </target> <target name="builddeptest"> <ant dir="../../core/java/" target="jarTest" /> @@ -131,9 +131,7 @@ <delete dir="./build" /> </target> <target name="cleandep" depends="clean"> - <ant dir="../../core/java/" target="cleandep" /> </target> <target name="distclean" depends="clean"> - <ant dir="../../core/java/" target="distclean" /> </target> </project> -- GitLab