1 <project name="JNode" default="help" basedir=".">
3 <property name="root.dir" value="${basedir}/.."/>
5 <!-- if task is used from this -->
6 <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
7 <!-- before including jnode.xml, we must set this property -->
8 <condition property="memoryMaximumSize" value="1512m" else="768m">
11 <echo message="Setting memoryMaximumSize to ${memoryMaximumSize}"/>
13 <!-- Include antlib -->
14 <typedef file="${root.dir}/all/lib/jnode.xml"/>
16 <!-- JNode version -->
17 <property name="jnode-ver" value="0.2.9-dev"/>
19 <!-- Java target and source version -->
20 <property name="java.target" value="1.6"/>
21 <property name="java.source" value="1.6"/>
22 <property name="java.encoding" value="US-ASCII"/>
24 <property name="build.dir" value="${basedir}/build"/>
25 <property name="reports.dir" value="${build.dir}/reports"/>
26 <property name="cdroms.dir" value="${build.dir}/cdroms"/>
27 <property name="descriptors.dir" value="${build.dir}/descriptors"/>
28 <property name="plugins.dir" value="${build.dir}/plugins"/>
29 <property name="initjars.dir" value="${build.dir}/initjars"/>
30 <property name="save.dir" value="${basedir}/save"/>
31 <property name="backup.dir" value="${build.dir}/backup"/>
33 <property name="jnode-builder.jar" value="${build.dir}/descriptors/jnode-builder.jar"/>
34 <property name="jnode-configure.jar" value="${build.dir}/descriptors/jnode-configure.jar"/>
35 <property name="jnode-core.jar" value="${root.dir}/core/build/classes"/>
36 <property name="jnode-distr.jar" value="${root.dir}/distr/build/classes"/>
37 <property name="jnode-fs.jar" value="${root.dir}/fs/build/classes"/>
38 <property name="jnode-gui.jar" value="${root.dir}/gui/build/classes"/>
39 <property name="thinlet.jar" value="${root.dir}/gui/build/classes"/>
40 <property name="jnode-textui.jar" value="${root.dir}/textui/build/classes"/>
41 <property name="jnode-net.jar" value="${root.dir}/net/build/classes"/>
42 <property name="jnode-shell.jar" value="${root.dir}/shell/build/classes"/>
43 <property name="jnode-cli.jar" value="${root.dir}/cli/build/classes"/>
44 <property name="jnode-fonts.jar" value="${build.dir}/descriptors/jnode-fonts.jar"/>
45 <property name="jnode-images.jar" value="${build.dir}/descriptors/jnode-images.jar"/>
47 <property name="jnode-mmtk-genrc.jar" value="${root.dir}/core/build/classes-plan/org.jnode.vm.memmgr.mmtk.genrc"/>
48 <property name="jnode-mmtk-ms.jar" value="${root.dir}/core/build/classes-plan/org.jnode.vm.memmgr.mmtk.ms"/>
49 <property name="jnode-mmtk-nogc.jar" value="${root.dir}/core/build/classes-plan/org.jnode.vm.memmgr.mmtk.nogc"/>
51 <property name="classlib.jar" value="${root.dir}/all/lib/classlib.jar"/>
52 <property name="classlib-src.jar" value="${root.dir}/all/lib/classlib-src.jar"/>
53 <property name="ant.jar" value="${root.dir}/core/lib/ant.jar"/>
54 <property name="ant-launcher.jar" value="${root.dir}/core/lib/ant-launcher.jar"/>
55 <property name="commons-net.jar" value="${root.dir}/core/lib/commons-net-1.1.0.jar"/>
56 <property name="dnsjava.jar" value="${root.dir}/net/lib/dnsjava-1.6.6.jar"/>
57 <property name="jsch.jar" value="${root.dir}/net/lib/jsch-0.1.24.jar"/>
58 <property name="junit.jar" value="${root.dir}/core/lib/junit-4.5.jar"/>
59 <property name="mmtk.jar" value="${root.dir}/core/lib/mmtk/mmtk.jar"/>
60 <property name="mauve.jar" value="${root.dir}/core/lib/mauve.jar"/>
61 <property name="edtftpj.jar" value="${root.dir}/fs/lib/edtftpj-1.5.2.jar"/>
62 <property name="jcifs.jar" value="${root.dir}/fs/lib/jcifs-1.2.6.jar"/>
63 <property name="ejc.jar" value="${root.dir}/core/lib/ejc-3.1.1.jar"/>
64 <property name="oncrpc.jar" value="${root.dir}/net/lib/oncrpc.jar"/>
65 <property name="telnetd.jar" value="${root.dir}/distr/lib/telnetd.jar" />
66 <property name="commons-logging.jar" value="${root.dir}/distr/lib/commons-logging.jar" />
67 <property name="jawk.jar" value="${root.dir}/distr/lib/jawk-1.02.jar"/>
68 <property name="jetty.jar" value="${root.dir}/distr/lib/jetty-6.1.5.jar" />
69 <property name="jetty-util.jar" value="${root.dir}/distr/lib/jetty-util-6.1.5.jar" />
70 <property name="jsp.jar" value="${root.dir}/distr/lib/jsp-2.1.jar" />
71 <property name="jsp-api.jar" value="${root.dir}/distr/lib/jsp-api-2.1.jar" />
72 <property name="servlet.jar" value="${root.dir}/distr/lib/servlet-api-2.5-6.1.5.jar" />
73 <property name="derby.jar" value="${root.dir}/distr/lib/derby.jar" />
74 <property name="derbynet.jar" value="${root.dir}/distr/lib/derbynet.jar" />
75 <property name="derbytools.jar" value="${root.dir}/distr/lib/derbytools.jar" />
76 <property name="nanoxml-java.jar" value="${root.dir}/shell/lib/nanoxml-2.2.3.jar" />
78 <property name="iso9660.jar" value="${root.dir}/builder/lib/iso9660.jar" />
79 <property name="sabre.jar" value="${root.dir}/builder/lib/sabre.jar" />
81 <!-- libraries needed to run tests -->
82 <property name="jmock-cglib.jar" value="${root.dir}/core/lib/jmock-cglib-1.0.1.jar"/>
83 <property name="jmock.jar" value="${root.dir}/core/lib/jmock-1.0.1.jar"/>
84 <property name="cglib.jar" value="${root.dir}/core/lib/cglib-2.1.jar"/>
85 <property name="asm.jar" value="${root.dir}/core/lib/asm-1.5.3.jar"/>
86 <property name="asm-attrs.jar" value="${root.dir}/core/lib/asm-attrs-1.5.3.jar"/>
87 <property name="asm-util.jar" value="${root.dir}/core/lib/asm-util-1.5.3.jar"/>
89 <property name="log4j.jar" value="${root.dir}/core/lib/log4j-1.2.8.jar"/>
90 <property name="beanshell.jar" value="${root.dir}/shell/lib/bsh-2.0b5.jar"/>
91 <property name="js.jar" value="${root.dir}/shell/lib/rhino1.6r5-jsr223.jar"/>
93 <!-- libraries needed to check plugin dependencies -->
94 <property name="bcel-5.1.jar" value="${root.dir}/builder/lib/bcel-5.1.jar" />
96 <!-- libraries needed to check rules in source code -->
97 <property name="pmd.jar" value="${root.dir}/builder/lib/pmd/pmd-3.0.jar"/>
98 <property name="jaxen.jar" value="${root.dir}/builder/lib/pmd/jaxen-core-1.0-fcs.jar"/>
99 <property name="saxpath.jar" value="${root.dir}/builder/lib/pmd/saxpath-1.0-fcs.jar"/>
100 <property name="xerces.jar" value="${root.dir}/builder/lib/pmd/xercesImpl-2.6.2.jar"/>
101 <property name="xmlParserAPIs.jar" value="${root.dir}/builder/pmd/lib/xmlParserAPIs-2.6.2.jar"/>
103 <!-- lists of plugins to use while booting -->
104 <property name="default-plugin-list" value="${root.dir}/all/conf/default-plugin-list.xml"/>
105 <property name="full-plugin-list" value="${root.dir}/all/conf/full-plugin-list.xml"/>
106 <property name="install-plugin-list" value="${root.dir}/all/conf/install-plugin-list.xml"/>
107 <property name="system-plugin-list" value="${root.dir}/all/conf/system-plugin-list.xml"/>
108 <property name="sources.dist.tar.gz" value="${build.dir}/jnodesources-${jnode-ver}.tar.gz"/>
109 <property name="jnode-x86.iso" value="${cdroms.dir}/jnode-x86.iso"/>
110 <property name="jnode-x86-lite.iso" value="${cdroms.dir}/jnode-x86-lite.iso"/>
111 <property name="jnode-x86_64-lite.iso" value="${cdroms.dir}/jnode-x86_64-lite.iso"/>
114 <pathelement location="${classlib.jar}"/>
115 <pathelement location="${mmtk.jar}"/>
116 <pathelement location="${ant.jar}"/>
117 <pathelement location="${junit.jar}"/>
118 <pathelement location="${jmock.jar}"/>
119 <pathelement location="${jmock-cglib.jar}"/>
120 <pathelement location="${asm.jar}"/>
121 <pathelement location="${asm-attrs.jar}"/>
122 <pathelement location="${asm-util.jar}"/>
123 <pathelement location="${cglib.jar}"/>
124 <pathelement location="${log4j.jar}"/>
125 <pathelement location="${root.dir}/all/conf"/>
126 <pathelement location="${beanshell.jar}"/>
127 <pathelement location="${js.jar}"/>
128 <pathelement location="${oncrpc.jar}"/>
129 <pathelement location="${edtftpj.jar}"/>
130 <pathelement location="${jcifs.jar}"/>
131 <pathelement location="${commons-net.jar}"/>
132 <pathelement location="${dnsjava.jar}"/>
133 <pathelement location="${mauve.jar}"/>
134 <pathelement location="${derby.jar}"/>
135 <pathelement location="${derbynet.jar}"/>
136 <pathelement location="${derbytools.jar}"/>
137 <pathelement location="${iso9660.jar}"/>
138 <pathelement location="${sabre.jar}"/>
142 <pathelement location="${jnode-builder.jar}"/>
143 <pathelement location="${jnode-core.jar}"/>
144 <pathelement location="${jnode-distr.jar}"/>
145 <pathelement location="${jnode-fs.jar}"/>
146 <pathelement location="${jnode-shell.jar}"/>
147 <pathelement location="${jnode-net.jar}"/>
148 <pathelement location="${jnode-gui.jar}"/>
149 <pathelement location="${jnode-cli.jar}"/>
150 <pathelement location="${thinlet.jar}"/>
151 <pathelement location="${jnode-textui.jar}"/>
152 <pathelement location="${bcel-5.1.jar}"/>
157 <pathelement location="${root.dir}/core/build/classes"/>
158 <pathelement location="${root.dir}/distr/build/classes"/>
159 <pathelement location="${root.dir}/fs/build/classes"/>
160 <pathelement location="${root.dir}/shell/build/classes"/>
161 <pathelement location="${root.dir}/net/build/classes"/>
162 <pathelement location="${root.dir}/gui/build/classes"/>
163 <pathelement location="${root.dir}/cli/build/classes"/>
164 <pathelement location="${root.dir}/textui/build/classes"/>
165 <pathelement location="${root.dir}/shell/lib/nanoxml-2.2.3.jar"/>
170 <filterset id="descriptors-filter">
171 <filter token="PROVIDER" value="JNode.org"/>
172 <filter token="VERSION" value="${jnode-ver}"/>
175 <patternset id="exts">
176 <include name="**/*.dat"/>
177 <include name="**/*.ids"/>
178 <include name="**/*.properties"/>
179 <include name="**/*.xml"/>
182 <target name="prepare">
183 <fail message="Java Runtime version 1.6 needed. Your version is: ${java.runtime.version}">
186 <contains string="${java.runtime.version}" substring="1.6" casesensitive="false"/>
191 <!-- Initialize all project directories -->
192 <property file="${root.dir}/jnode.properties"/>
193 <!-- Set overwritable properties -->
194 <property name="jnode.memmgr.plugin.id" value="org.jnode.vm.memmgr.def"/>
195 <property name="compilerarg" value="-nowarn"/>
197 <!-- Derive properties -->
198 <property name="jnode-mmtk.jar" value="${root.dir}/core/build/classes-plan/${jnode.memmgr.plugin.id}"/>
200 <!-- Initialize timestamp -->
203 <property name="hotswap.class.tstamp.pattern" value="MM/dd/yyyy kk:mm:ss.SSS"/>
205 <format property="hotswap.class.tstamp" pattern="${hotswap.class.tstamp.pattern}" />
209 <!-- Update default excludes -->
210 <defaultexcludes add="**/_svn"/>
211 <defaultexcludes add="**/_svn/**"/>
213 <!-- Create basic build directories -->
214 <mkdir dir="${build.dir}"/>
215 <mkdir dir="${reports.dir}"/>
216 <mkdir dir="${save.dir}"/>
217 <mkdir dir="${cdroms.dir}"/>
218 <mkdir dir="${descriptors.dir}"/>
219 <mkdir dir="${plugins.dir}"/>
220 <mkdir dir="${initjars.dir}"/>
221 <property file="${root.dir}/all/lib/ftp.properties"/>
222 <!-- check for classlib update -->
226 <uptodate srcfile="${root.dir}/all/lib/ftp.properties" targetfile="${root.dir}/all/lib/classlib.pack.gz"/>
229 <uptodate srcfile="${root.dir}/all/lib/ftp.properties" targetfile="${root.dir}/all/lib/classlib-src.jar.bz2"/>
233 <!-- check if classlib update should be done locally or from the FTP server -->
235 <isset property="jnode.local.classlib"/>
237 <fail message="classlib is out of date, run copy or quickdeploy in classlib project">
241 <uptodate srcfile="${root.dir}/all/lib/ftp.properties"
242 targetfile="${root.dir}/all/lib/classlib.jar"/>
245 <uptodate srcfile="${root.dir}/all/lib/ftp.properties"
246 targetfile="${root.dir}/all/lib/classlib-src.jar"/>
253 <!-- classlib update from the FTP server -->
254 <delete file="${root.dir}/all/lib/classlib.pack.gz"/>
255 <delete file="${root.dir}/all/lib/classlib-src.jar.bz2"/>
256 <get src="${classlib.url}/classlib.pack.gz" dest="${root.dir}/all/lib/classlib.pack.gz"/>
257 <get src="${classlib.url}/classlib-src.jar.bz2" dest="${root.dir}/all/lib/classlib-src.jar.bz2"/>
258 <!-- verify checksum for downloaded files -->
261 <checksum algorithm="MD5" file="${root.dir}/all/lib/classlib.pack.gz" property="${classlib.md5}"/>
264 <delete file="${root.dir}/all/lib/classlib.pack.gz"/>
265 <fail message="checksum failed for classlib.pack.gz"/>
270 <checksum algorithm="MD5" file="${root.dir}/all/lib/classlib-src.jar.bz2" property="${classlib-src.md5}"/>
273 <delete file="${root.dir}/all/lib/classlib-src.jar.bz2"/>
274 <fail message="checksum failed for classlib-src.jar.bz2"/>
284 <available file="${classlib.jar}" />
286 <uptodate srcfile="${classlib.jar}" targetfile="${root.dir}/all/lib/classlib.pack.gz"/>
289 <delete file="${classlib.jar}"/>
290 <echo message="Creating ${classlib.jar}"/>
291 <exec executable="unpack200">
292 <arg file="${root.dir}/all/lib/classlib.pack.gz"/>
293 <arg file="${classlib.jar}"/>
300 <available file="${classlib-src.jar}" />
302 <uptodate srcfile="${classlib-src.jar}" targetfile="${root.dir}/all/lib/classlib-src.jar.bz2"/>
305 <delete file="${classlib-src.jar}"/>
306 <echo message="Creating ${classlib-src.jar}"/>
307 <bunzip2 src="${root.dir}/all/lib/classlib-src.jar.bz2" dest="${classlib-src.jar}"/>
310 <property name="classlib.stamp" value="${root.dir}/all/build/classlib.stamp" />
313 <!-- Call the assemble target of all subprojects -->
314 <target name="assemble-projects" depends="prepare">
315 <!-- pre compile tasks needed for compilation -->
316 <ant target="pre-compile" dir="${root.dir}/builder" inheritall="on" inheritrefs="on" />
317 <jnode.antall target="assemble"/>
320 <!-- Assemble all plugins -->
321 <target name="assemble-plugins" depends="assemble-projects,openjdk-annotate">
322 <!-- Now assemble all plugins -->
323 <taskdef name="plugin" classname="org.jnode.build.PluginTask" classpathref="cp-jnode"/>
327 <available file="${classlib.stamp}" />
329 <uptodate srcfile="${classlib.stamp}" targetfile="${classlib.jar}"/>
332 <!-- Now assemble all plugins -->
333 <plugin todir="${plugins.dir}" tmpdir="${build.dir}/tmp/plugins" pluginDir="${descriptors.dir}">
334 <packager userApplicationsDir="${user.applications.dir}" pathRefId="cp"/>
336 <libalias name="jnode-core.jar" alias="${jnode-core.jar}"/>
337 <libalias name="jnode-distr.jar" alias="${jnode-distr.jar}"/>
338 <libalias name="jnode-fs.jar" alias="${jnode-fs.jar}"/>
339 <libalias name="jnode-gui.jar" alias="${jnode-gui.jar}"/>
340 <libalias name="jnode-textui.jar" alias="${jnode-textui.jar}"/>
341 <libalias name="jnode-net.jar" alias="${jnode-net.jar}"/>
342 <libalias name="jnode-shell.jar" alias="${jnode-shell.jar}"/>
344 <libalias name="jnode-mmtk-genrc.jar" alias="${jnode-mmtk-genrc.jar}"/>
345 <libalias name="jnode-mmtk-ms.jar" alias="${jnode-mmtk-ms.jar}"/>
346 <libalias name="jnode-mmtk-nogc.jar" alias="${jnode-mmtk-nogc.jar}"/>
348 <libalias name="mmtk.jar" alias="${mmtk.jar}"/>
350 <libalias name="commons-net-1.1.0.jar" alias="${commons-net.jar}"/>
351 <libalias name="dnsjava-1.6.6.jar" alias="${dnsjava.jar}"/>
352 <libalias name="jsch-0.1.24.jar" alias="${jsch.jar}"/>
353 <libalias name="log4j.jar" alias="${log4j.jar}"/>
354 <libalias name="beanshell.jar" alias="${beanshell.jar}"/>
355 <libalias name="nanoxml-java.jar" alias="${nanoxml-java.jar}"/>
356 <libalias name="js.jar" alias="${js.jar}"/>
357 <libalias name="thinlet.jar" alias="${thinlet.jar}"/>
359 <libalias name="junit.jar" alias="${junit.jar}"/>
360 <libalias name="jmock-1.0.1.jar" alias="${jmock.jar}"/>
361 <libalias name="jmock-cglib-1.0.1.jar" alias="${jmock-cglib.jar}"/>
362 <libalias name="asm.jar" alias="${asm.jar}"/>
363 <libalias name="asm-attrs.jar" alias="${asm-attrs.jar}"/>
364 <libalias name="asm-util.jar" alias="${asm-util.jar}"/>
365 <libalias name="cglib.jar" alias="${cglib.jar}"/>
366 <libalias name="mauve.jar" alias="${mauve.jar}"/>
368 <libalias name="ant.jar" alias="${ant.jar}"/>
369 <libalias name="ant-launcher.jar" alias="${ant-launcher.jar}"/>
370 <libalias name="edtftpj.jar" alias="${edtftpj.jar}"/>
371 <libalias name="jcifs.jar" alias="${jcifs.jar}"/>
372 <libalias name="ejc.jar" alias="${ejc.jar}"/>
373 <libalias name="oncrpc.jar" alias="${oncrpc.jar}"/>
374 <libalias name="telnetd.jar" alias="${telnetd.jar}"/>
375 <libalias name="commons-logging.jar" alias="${commons-logging.jar}"/>
376 <libalias name="jawk.jar" alias="${jawk.jar}"/>
377 <libalias name="jetty.jar" alias="${jetty.jar}"/>
378 <libalias name="jetty-util.jar" alias="${jetty-util.jar}"/>
379 <libalias name="jsp.jar" alias="${jsp.jar}"/>
380 <libalias name="jsp-api.jar" alias="${jsp-api.jar}"/>
381 <libalias name="servlet.jar" alias="${servlet.jar}"/>
382 <libalias name="derby.jar" alias="${derby.jar}"/>
383 <libalias name="derbynet.jar" alias="${derbynet.jar}"/>
384 <libalias name="derbytools.jar" alias="${derbytools.jar}"/>
385 <libalias name="classlib.jar" alias="${classlib.jar}"/>
387 <descriptors dir="${descriptors.dir}/">
388 <include name="org.classpath.core.xml"/>
389 <include name="org.classpath.ext.awt.xml"/>
390 <include name="org.classpath.ext.corba.xml"/>
391 <include name="org.classpath.ext.core.xml"/>
392 <include name="org.classpath.ext.imageio.xml"/>
393 <include name="org.classpath.ext.jdwp.xml"/>
394 <include name="org.classpath.ext.management.xml"/>
395 <include name="org.classpath.ext.print.xml"/>
396 <include name="org.classpath.ext.security.xml"/>
397 <include name="org.classpath.ext.sql.xml"/>
398 <include name="org.classpath.ext.xml"/>
399 <include name="org.classpath.ext.xml.ws.tools.xml"/>
400 <include name="org.classpath.ext.xml.ws.xml"/>
401 <include name="org.classpath.ext.xml.xml"/>
402 <include name="org.classpath.tools.xml"/>
403 <include name="com.sun.tools.javac.xml"/>
404 <include name="com.sun.tools.jdi.xml"/>
405 <include name="javax.ext.tools.xml"/>
406 <include name="sun.tools.xml"/>
410 <touch file="${classlib.stamp}"/>
414 <plugin todir="${plugins.dir}" tmpdir="${build.dir}/tmp/plugins" pluginDir="${descriptors.dir}">
415 <packager userApplicationsDir="${user.applications.dir}" pathRefId="cp"/>
417 <libalias name="jnode-core.jar" alias="${jnode-core.jar}"/>
418 <libalias name="jnode-distr.jar" alias="${jnode-distr.jar}"/>
419 <libalias name="jnode-fs.jar" alias="${jnode-fs.jar}"/>
420 <libalias name="jnode-gui.jar" alias="${jnode-gui.jar}"/>
421 <libalias name="jnode-textui.jar" alias="${jnode-textui.jar}"/>
422 <libalias name="jnode-net.jar" alias="${jnode-net.jar}"/>
423 <libalias name="jnode-shell.jar" alias="${jnode-shell.jar}"/>
424 <libalias name="jnode-cli.jar" alias="${jnode-cli.jar}"/>
426 <libalias name="jnode-mmtk-genrc.jar" alias="${jnode-mmtk-genrc.jar}"/>
427 <libalias name="jnode-mmtk-ms.jar" alias="${jnode-mmtk-ms.jar}"/>
428 <libalias name="jnode-mmtk-nogc.jar" alias="${jnode-mmtk-nogc.jar}"/>
430 <libalias name="mmtk.jar" alias="${mmtk.jar}"/>
432 <libalias name="commons-net-1.1.0.jar" alias="${commons-net.jar}"/>
433 <libalias name="dnsjava-1.6.6.jar" alias="${dnsjava.jar}"/>
434 <libalias name="jsch-0.1.24.jar" alias="${jsch.jar}"/>
435 <libalias name="log4j.jar" alias="${log4j.jar}"/>
436 <libalias name="beanshell.jar" alias="${beanshell.jar}"/>
437 <libalias name="nanoxml-java.jar" alias="${nanoxml-java.jar}"/>
438 <libalias name="js.jar" alias="${js.jar}"/>
439 <libalias name="thinlet.jar" alias="${thinlet.jar}"/>
441 <libalias name="junit.jar" alias="${junit.jar}"/>
442 <libalias name="jmock-1.0.1.jar" alias="${jmock.jar}"/>
443 <libalias name="jmock-cglib-1.0.1.jar" alias="${jmock-cglib.jar}"/>
444 <libalias name="asm.jar" alias="${asm.jar}"/>
445 <libalias name="asm-attrs.jar" alias="${asm-attrs.jar}"/>
446 <libalias name="asm-util.jar" alias="${asm-util.jar}"/>
447 <libalias name="cglib.jar" alias="${cglib.jar}"/>
448 <libalias name="mauve.jar" alias="${mauve.jar}"/>
450 <libalias name="ant.jar" alias="${ant.jar}"/>
451 <libalias name="ant-launcher.jar" alias="${ant-launcher.jar}"/>
452 <libalias name="edtftpj.jar" alias="${edtftpj.jar}"/>
453 <libalias name="jcifs.jar" alias="${jcifs.jar}"/>
454 <libalias name="ejc.jar" alias="${ejc.jar}"/>
455 <libalias name="oncrpc.jar" alias="${oncrpc.jar}"/>
456 <libalias name="telnetd.jar" alias="${telnetd.jar}"/>
457 <libalias name="commons-logging.jar" alias="${commons-logging.jar}"/>
458 <libalias name="jawk.jar" alias="${jawk.jar}"/>
459 <libalias name="jetty.jar" alias="${jetty.jar}"/>
460 <libalias name="jetty-util.jar" alias="${jetty-util.jar}"/>
461 <libalias name="jsp.jar" alias="${jsp.jar}"/>
462 <libalias name="jsp-api.jar" alias="${jsp-api.jar}"/>
463 <libalias name="servlet.jar" alias="${servlet.jar}"/>
464 <libalias name="derby.jar" alias="${derby.jar}"/>
465 <libalias name="derbynet.jar" alias="${derbynet.jar}"/>
466 <libalias name="derbytools.jar" alias="${derbytools.jar}"/>
468 <descriptors dir="${descriptors.dir}/">
469 <include name="*.xml"/>
470 <exclude name="*plugin-list.xml"/>
471 <exclude name="com.sun.tools.javac.xml"/>
472 <exclude name="com.sun.tools.jdi.xml"/>
473 <exclude name="javax.ext.tools.xml"/>
474 <exclude name="sun.tools.xml"/>
475 <exclude name="org.classpath.core.xml"/>
476 <exclude name="org.classpath.core.xml"/>
477 <exclude name="org.classpath.ext.awt.xml"/>
478 <exclude name="org.classpath.ext.corba.xml"/>
479 <exclude name="org.classpath.ext.core.xml"/>
480 <exclude name="org.classpath.ext.imageio.xml"/>
481 <exclude name="org.classpath.ext.jdwp.xml"/>
482 <exclude name="org.classpath.ext.management.xml"/>
483 <exclude name="org.classpath.ext.print.xml"/>
484 <exclude name="org.classpath.ext.security.xml"/>
485 <exclude name="org.classpath.ext.sql.xml"/>
486 <exclude name="org.classpath.ext.xml"/>
487 <exclude name="org.classpath.ext.xml.ws.tools.xml"/>
488 <exclude name="org.classpath.ext.xml.ws.xml"/>
489 <exclude name="org.classpath.ext.xml.xml"/>
490 <exclude name="org.classpath.tools.xml"/>
495 <!-- Assemble all default initjars -->
496 <target name="assemble-default-initjars" depends="assemble-plugins" unless="no.default.initjars">
497 <!-- Build all default initjar's -->
498 <taskdef name="initjars" classname="org.jnode.build.InitJarsBuilder" classpathref="cp-jnode"/>
499 <initjars destdir="${initjars.dir}"
500 pluginDir="${plugins.dir}"
501 systemPluginList="${root.dir}/all/conf/system-plugin-list.xml">
502 <insert userApplicationsDir="${user.applications.dir}"/>
504 <fileset dir="${root.dir}/all/conf">
505 <exclude name="system-plugin-list.xml"/>
506 <include name="*plugin-list.xml"/>
511 <!-- Assemble all custom initjars -->
512 <target name="assemble-custom-initjars" depends="assemble-plugins" if="custom.plugin-list.dir">
513 <!-- Build all custom initjar's -->
514 <taskdef name="initjars" classname="org.jnode.build.InitJarsBuilder" classpathref="cp-jnode"/>
515 <initjars destdir="${initjars.dir}"
516 pluginDir="${plugins.dir}"
517 systemPluginList="${root.dir}/all/conf/system-plugin-list.xml">
518 <fileset dir="${custom.plugin-list.dir}">
519 <include name="*plugin-list.xml"/>
524 <!-- Assemble all subprojects, plugins and initjars -->
525 <target name="assemble" depends="assemble-default-initjars, assemble-custom-initjars">
528 <!-- Give help on possible targets -->
529 <target name="help" description="help on the important targets">
531 Welcome to the JNode build system.
533 You can use this build system to perform various tasks,
534 by specifying one or more targets on the command line.
535 See the list below for an explanation of all targets.
537 x86 Build the JNode bootable image for the X86 32-bit
539 x86_64 Build the JNode bootable image for the X86 64-bit
540 architecture (AMD64).
542 cd-x86 Build the JNode bootable CD-ROM for the X86
543 architecture 32 and 64-bit. The CD-ROM also
544 contains the JNode sources.
545 cd-x86-lite Build the JNode bootable CD-ROM for the X86
547 cd-x86_64-lite Build the JNode bootable CD-ROM for the X86
550 create-patch Create a patch file containing the differences
551 between the local sources and the cvs HEAD
554 boot-files-winNT Build the JNode boot files for windows NT/2K/XP
555 used together with NTLDR
557 encoding-test Verify the file encoding of all java source
559 encoding-fix Correct the file encoding of all java source
562 javadoc Generate documentation of all java source files.
563 javadoc-small Generate documentation of the basic JNode api's.
565 check-plugins Run tests to check plugin dependencies.
567 clean Remove all intermediate build results.
571 <!-- Macro used to call the x86 build script -->
572 <macrodef name="x86-build">
573 <attribute name="bits"/>
574 <attribute name="target" default="all"/>
576 <ant antfile="build-x86.xml" inheritall="on" inheritrefs="on" target="@{target}">
577 <property name="jnode.bits" value="@{bits}"/>
582 <!-- Create the X86 32-bit boot image -->
583 <target name="x86" depends="assemble">
584 <x86-build bits="32"/>
587 <!-- Create the X86 64-bit boot image-->
588 <target name="x86_64" depends="assemble">
589 <x86-build bits="64"/>
592 <!-- Create the JOP boot image -->
593 <target name="jop" depends="assemble">
594 <ant antfile="build-jop.xml" inheritall="on" inheritrefs="on"/>
597 <!-- Build the boot files for windows NT/2K/XP (with NTLDR) -->
598 <target name="boot-files-winNT" depends="assemble">
599 <x86-build bits="32" target="boot-files-winNT"/>
602 <!-- Create a bootable CDROM image containing all x86 bootable images and the sources -->
603 <target name="cd-x86" depends="assemble" description="create a bootable JNode CD image with sources included">
604 <tar destfile="${sources.dist.tar.gz}" compression="gzip" basedir="${root.dir}" excludes="*/build/**"/>
605 <x86-build bits="32" target="java-image"/>
606 <!-- TODO enable this when 64 bit support is working -->
607 <!--x86-build bits="64" target="java-image"/-->
608 <property name="jnode.bits" value="32" />
609 <ant antfile="build-x86.xml" inheritall="true" inheritrefs="true" target="cdrom"/>
612 <!-- Create a bootable CDROM image for x86 32-bits -->
613 <target name="cd-x86-lite" depends="assemble" description="create a bootable JNode CD image">
614 <x86-build bits="32" target="java-image"/>
615 <property name="jnode.bits" value="32" />
616 <ant antfile="build-x86.xml" inheritall="true" inheritrefs="true" target="cdrom-lite"/>
619 <!-- Create a bootable CDROM image for x86 64-bits -->
620 <target name="cd-x86_64-lite" depends="assemble">
621 <x86-build bits="64" target="java-image"/>
622 <property name="jnode.bits" value="64" />
623 <ant antfile="build-x86.xml" inheritall="true" inheritrefs="true" target="cdrom_64-lite"/>
626 <!-- Upload a distribution -->
627 <target name="upload">
628 <property name="upload.dir" value="${build.dir}/upload"/>
629 <mkdir dir="${upload.dir}"/>
630 <gzip src="${jnode-x86.iso}" destfile="${upload.dir}/jnode-x86-${jnode-ver}.iso.gz"/>
631 <copy todir="${upload.dir}" file="${sources.dist.tar.gz}"/>
632 <checksum algorithm="MD5" forceoverwrite="true">
633 <fileset dir="${upload.dir}">
634 <include name="jnode-x86-${jnode-ver}.iso.gz" />
635 <include name="jnodesources-${jnode-ver}.tar.gz" />
638 <echo message="FTP upload disabled. Uploadables are in: ${upload.dir}"/>
640 TODO find a way to automatically upload the files
641 jsch based scp with sftp fails with an error to sourceforge
642 FTP uploads are abandone by sourceforge
643 <ftp server="upload.sourceforge.net" remotedir="incoming" passive="yes" newer="yes" verbose="yes" userid="anonymous" password="${user.name}@users.sourceforge.net">
644 <fileset dir="${upload.dir}"/>
649 <!-- Save virtualization etc state across 'clean' -->
651 <copy file="${cdroms.dir}/JNode.nvram" todir="${save.dir}" failonerror="no"/>
654 <!-- Clean everything files -->
655 <target name="clean" depends="save" description="clean the complete build output">
656 <jnode.antall target="clean"/>
657 <delete dir="${build.dir}" quiet="on"/>
660 <path id="cp-javadoc">
662 <pathelement location="${bcel-5.1.jar}"/>
663 <pathelement location="${nanoxml-java.jar}"/>
666 <!-- Generate only the basic api javadoc files -->
667 <target name="javadoc-small" description="generate documentation of the basic JNode APIs">
668 <jnode.javadoc destdir="${build.dir}/javadoc/small">
670 <pathelement location="${root.dir}/core/src/classlib"/>
671 <pathelement location="${root.dir}/core/src/classpath/ext"/>
672 <pathelement location="${root.dir}/core/src/classpath/vm"/>
673 <pathelement location="${root.dir}/core/src/openjdk/vm"/>
674 <pathelement location="${root.dir}/core/src/endorsed/nanoxml"/>
675 <pathelement location="${root.dir}/core/src/core"/>
676 <pathelement location="${root.dir}/core/src/vmmagic"/>
677 <pathelement location="${root.dir}/core/src/driver"/>
678 <pathelement location="${root.dir}/all/lib/classlib-src.jar"/>
680 <package name="org.jnode.driver"/>
681 <package name="org.jnode.naming"/>
682 <package name="org.jnode.plugin"/>
683 <package name="org.jnode.system"/>
684 <bootclasspath refid="cp-javadoc"/>
688 <!-- Generate only the MMTk api javadoc files -->
689 <target name="javadoc-mmtk">
690 <jnode.javadoc destdir="${build.dir}/javadoc/mmtk">
692 <pathelement location="${root.dir}/core/src/classlib"/>
693 <pathelement location="${root.dir}/core/src/vmmagic"/>
694 <pathelement location="${root.dir}/core/src/mmtk-vm"/>
695 <pathelement location="${root.dir}/core/src/core"/>
696 <pathelement location="${root.dir}/core/src/classpath/ext"/>
697 <pathelement location="${root.dir}/core/src/classpath/vm"/>
698 <pathelement location="${root.dir}/core/src/openjdk/vm"/>
699 <pathelement location="${root.dir}/core/src/endorsed/nanoxml"/>
700 <pathelement location="${root.dir}/all/lib/classlib-src.jar"/>
702 <package name="org.mmtk.*"/>
703 <package name="org.jnode.vm.memmgr.mmtk.*"/>
704 <package name="org.vmmagic.*"/>
705 <classpath refid="cp-javadoc"/>
709 <!-- Generate all javadoc files -->
710 <target name="javadoc" description="generate documentation of all java source files">
711 <jnode.javadoc destdir="${build.dir}/javadoc/full">
713 <pathelement location="${root.dir}/builder/src/builder"/>
714 <pathelement location="${root.dir}/builder/src/configure"/>
715 <pathelement location="${root.dir}/cli/src/commands"/>
716 <pathelement location="${root.dir}/core/src/classlib"/>
717 <pathelement location="${root.dir}/core/src/classpath/ext"/>
718 <pathelement location="${root.dir}/core/src/classpath/vm"/>
719 <pathelement location="${root.dir}/core/src/openjdk/vm"/>
720 <pathelement location="${root.dir}/core/src/core"/>
721 <pathelement location="${root.dir}/core/src/driver"/>
722 <pathelement location="${root.dir}/core/src/mmtk-vm"/>
723 <pathelement location="${root.dir}/core/src/endorsed/nanoxml"/>
724 <pathelement location="${root.dir}/core/src/test"/>
725 <pathelement location="${root.dir}/core/src/vmmagic"/>
726 <pathelement location="${root.dir}/distr/src/install"/>
727 <pathelement location="${root.dir}/fs/src/fs"/>
728 <pathelement location="${root.dir}/fs/src/fs"/>
729 <pathelement location="${root.dir}/fs/src/driver"/>
730 <pathelement location="${root.dir}/gui/src/awt"/>
731 <pathelement location="${root.dir}/gui/src/driver"/>
732 <pathelement location="${root.dir}/gui/src/desktop"/>
733 <pathelement location="${root.dir}/gui/src/font"/>
734 <pathelement location="${root.dir}/gui/src/thinlet"/>
735 <pathelement location="${root.dir}/net/src/net"/>
736 <pathelement location="${root.dir}/net/src/driver"/>
737 <pathelement location="${root.dir}/shell/src/shell"/>
739 <package name="org.jnode.*"/>
740 <package name="org.mmtk.*"/>
741 <package name="org.vmmagic.*"/>
742 <bootclasspath refid="cp-javadoc"/>
746 <!-- Backup CVS files -->
747 <!-- TODO create replacement SVN task
748 <target name="backup">
749 <mkdir dir="${backup.dir}"/>
751 <format property="date" pattern="dd-MM-yyyy"/>
753 <get src="http://cvs.sourceforge.net/cvstarballs/jnode-cvsroot.tar.bz2" dest="${backup.dir}/jnode-cvsroot-${date}.tar.bz2" usetimestamp="true" verbose="true"/>
757 <!-- Compare classpath version of jnode with real classpath version -->
758 <target name="cp-compare" depends="assemble">
759 <taskdef name="cp-compare" classname="org.jnode.ant.taskdefs.classpath.CompareTask" classpathref="cp-jnode"/>
761 <patternset id="cp-includes-pattern">
762 <include name="**/*.java"/>
763 <include name="**/*.properties"/>
764 <include name="**/package.html"/>
767 <patternset id="cp-sources-pattern">
768 <exclude name="compat/**/*"/>
769 <exclude name="examples/**/*"/>
770 <exclude name="external/**/*"/>
771 <exclude name="tools/**/*"/>
772 <exclude name="gnu/classpath/tools/javah/**/*"/>
773 <exclude name="gnu/java/awt/peer/gtk/**/*"/>
774 <exclude name="gnu/java/awt/peer/qt/**/*"/>
775 <exclude name="gnu/java/awt/peer/x/**/*"/>
776 <exclude name="gnu/java/awt/dnd/peer/gtk/**/*"/>
777 <exclude name="gnu/java/net/local/**/*"/>
778 <exclude name="gnu/javax/sound/midi/alsa/**/*"/>
779 <exclude name="gnu/javax/sound/midi/dssi/**/*"/>
780 <exclude name="gnu/javax/swing/plaf/gtk/**/*"/>
781 <exclude name="gnu/test/**/*"/>
782 <exclude name="gnu/xml/libxmlj/**/*"/>
783 <exclude name="resource/**/*"/>
784 <exclude name="test/**/*"/>
785 <exclude name="testsuite/**/*"/>
786 <exclude name="vm/reference/**/*"/>
789 <delete dir="${build.dir}/classpath-compare"/>
790 <cp-compare destdir="${build.dir}/classpath-compare" type="classpath">
792 <fileset dir="${root.dir}/core/src/classpath/gnu">
793 <patternset refid="cp-includes-pattern"/>
795 <fileset dir="${root.dir}/core/src/classpath/java">
796 <patternset refid="cp-includes-pattern"/>
798 <fileset dir="${root.dir}/core/src/classpath/javax">
799 <patternset refid="cp-includes-pattern"/>
801 <fileset dir="${root.dir}/core/src/classpath/tools">
802 <patternset refid="cp-includes-pattern"/>
804 <fileset dir="${root.dir}/core/src/classpath/sun">
805 <patternset refid="cp-includes-pattern"/>
809 <fileset dir="${root.dir}/core/src/classpath/vm">
810 <patternset refid="cp-includes-pattern"/>
814 <fileset dir="${root.dir}/../classpath">
815 <patternset refid="cp-includes-pattern"/>
816 <patternset refid="cp-sources-pattern"/>
818 <fileset dir="${root.dir}/../classpath/external/jsr166">
819 <patternset refid="cp-includes-pattern"/>
820 <patternset refid="cp-sources-pattern"/>
822 <fileset dir="${root.dir}/../classpath/resource">
823 <patternset refid="cp-includes-pattern"/>
825 <fileset dir="${root.dir}/../classpath/external/w3c_dom">
826 <patternset refid="cp-includes-pattern"/>
828 <fileset dir="${root.dir}/../classpath/external/relaxngDatatype">
829 <patternset refid="cp-includes-pattern"/>
831 <fileset dir="${root.dir}/../classpath/external/sax">
832 <patternset refid="cp-includes-pattern"/>
834 <fileset dir="${root.dir}/../classpath/tools">
835 <patternset refid="cp-includes-pattern"/>
836 <patternset refid="cp-sources-pattern"/>
838 <fileset dir="${root.dir}/../classpath/tools/external/asm">
839 <patternset refid="cp-includes-pattern"/>
840 <patternset refid="cp-sources-pattern"/>
846 <!-- Compare classpath version of jnode with real classpath version -->
847 <target name="header-fix" depends="assemble">
848 <!-- todo clean up the excludes -->
849 <taskdef name="header" classname="org.jnode.ant.taskdefs.HeaderTask" classpathref="cp-jnode"/>
851 <header update="on" headerFile="${root.dir}/all/template/header.txt">
852 <fileset dir="${root.dir}/builder/src/builder" includes="**/*.java"/>
853 <fileset dir="${root.dir}/cli/src/commands" includes="**/*.java"/>
854 <fileset dir="${root.dir}/core/src/classpath/ext" includes="**/*.java"/>
855 <fileset dir="${root.dir}/core/src/classpath/vm" includes="**/*.java"
856 excludes="gnu/classpath/jdwp/VMFrame.java,
857 gnu/classpath/jdwp/VMIdManager.java,
858 gnu/classpath/jdwp/VMMethod.java,
859 gnu/classpath/jdwp/VMVirtualMachine.java,
860 gnu/classpath/VMStackWalker.java,
861 gnu/java/lang/VMInstrumentationImpl.java,
862 gnu/java/nio/VMChannel.java,
863 java/lang/Thread.java,
864 java/lang/VMProcess.java,
865 java/lang/VMSystem.java"/>
866 <fileset dir="${root.dir}/core/src/openjdk/vm" includes="**/*.java" excludes="java/lang/NativeStrictMath.java"/>
867 <fileset dir="${root.dir}/core/src/core" includes="**/*.java" excludes="org/jnode/imageio/jpeg/JPEGDecoder"/>
868 <fileset dir="${root.dir}/core/src/mmtk-vm" includes="**/*.java" excludes="org/mmtk/vm/**/*.java"/>
869 <fileset dir="${root.dir}/core/src/driver" includes="**/*.java"/>
870 <fileset dir="${root.dir}/core/src/test" includes="**/*.java" excludes="org/jnode/test/mauve/**/*.java,org/jtestserver/**/*.java"/>
871 <fileset dir="${root.dir}/distr/src/install" includes="**/*.java"/>
872 <fileset dir="${root.dir}/distr/src/apps" includes="**/*.java"/>
873 <fileset dir="${root.dir}/distr/src/emu" includes="**/*.java"/>
874 <fileset dir="${root.dir}/distr/src/test" includes="**/*.java"/>
875 <fileset dir="${root.dir}/fs/src/fs" includes="**/*.java"/>
876 <fileset dir="${root.dir}/fs/src/driver" includes="**/*.java"/>
877 <fileset dir="${root.dir}/fs/src/test" includes="**/*.java"/>
878 <fileset dir="${root.dir}/gui/src/awt" includes="**/*.java" excludes="org/jnode/awt/font/bdf/**/*.java"/>
879 <fileset dir="${root.dir}/gui/src/desktop" includes="**/*.java"/>
880 <fileset dir="${root.dir}/gui/src/driver" includes="**/*.java"/>
881 <fileset dir="${root.dir}/gui/src/test" includes="**/*.java"/>
882 <fileset dir="${root.dir}/net/src/net" includes="**/*.java"/>
883 <fileset dir="${root.dir}/net/src/driver" includes="**/*.java"/>
884 <fileset dir="${root.dir}/net/src/test" includes="**/*.java"/>
885 <fileset dir="${root.dir}/shell/src/emu" includes="**/*.java"/>
886 <fileset dir="${root.dir}/shell/src/shell" includes="**/*.java"/>
887 <fileset dir="${root.dir}/shell/src/test" includes="**/*.java"/>
891 <target name="check-debugger-properties" depends="prepare">
892 <fail message="Please set jnode.debugger.host property in jnode.properties." unless="jnode.debugger.host"/>
893 <fail message="Please set jnode.debugger.port property in jnode.properties." unless="jnode.debugger.port"/>
896 <target name="hotswap" depends="check-debugger-properties,assemble-projects" description="hotswap the modified classes">
897 <taskdef name="hotswap" classname="org.jnode.ant.taskdefs.Hotswap" classpathref="cp-jnode" />
898 <hotswap verbose="true" host="${jnode.debugger.host}" port="${jnode.debugger.port}">
899 <fileset dir="../core/build/classes/" includes="**/*.class">
900 <date datetime="${hotswap.class.tstamp}" pattern="MM/dd/yyyy kk:mm:ss" when="after" granularity="0"/>
902 <fileset dir="../distr/build/classes/" includes="**/*.class">
903 <date datetime="${hotswap.class.tstamp}" pattern="MM/dd/yyyy kk:mm:ss" when="after" granularity="0"/>
905 <fileset dir="../fs/build/classes/" includes="**/*.class">
906 <date datetime="${hotswap.class.tstamp}" pattern="MM/dd/yyyy kk:mm:ss" when="after" granularity="0"/>
908 <fileset dir="../gui/build/classes/" includes="**/*.class">
909 <date datetime="${hotswap.class.tstamp}" pattern="MM/dd/yyyy kk:mm:ss" when="after" granularity="0"/>
911 <fileset dir="../net/build/classes/" includes="**/*.class">
912 <date datetime="${hotswap.class.tstamp}" pattern="MM/dd/yyyy kk:mm:ss" when="after" granularity="0"/>
914 <fileset dir="../shell/build/classes/" includes="**/*.class">
915 <date datetime="${hotswap.class.tstamp}" pattern="MM/dd/yyyy kk:mm:ss" when="after" granularity="0"/>
917 <fileset dir="../textui/build/classes/" includes="**/*.class">
918 <date datetime="${hotswap.class.tstamp}" pattern="MM/dd/yyyy kk:mm:ss" when="after" granularity="0"/>
923 <target name="oj-compare" depends="assemble">
924 <taskdef name="cp-compare" classname="org.jnode.ant.taskdefs.classpath.CompareTask" classpathref="cp-jnode"/>
926 <patternset id="cp-includes-pattern">
927 <include name="**/*.java"/>
928 <include name="**/*.properties"/>
929 <include name="**/package.html"/>
932 <patternset id="cp-sources-pattern">
933 <exclude name="com/sun/demo/**/*"/>
934 <exclude name="com/sun/tools/hat/**/*"/>
935 <exclude name="com/sun/tools/example/**/*"/>
936 <exclude name="com/sun/tools/javah/**/*"/>
937 <exclude name="com/sun/tools/internal/txw2/**/*"/>
938 <exclude name="sun/jvmstat/**/*"/>
939 <exclude name="sun/tools/attach/**/*"/>
940 <exclude name="sun/tools/jinfo/**/*"/>
941 <exclude name="sun/tools/jps/**/*"/>
942 <exclude name="sun/tools/jmap/**/*"/>
943 <exclude name="sun/tools/jstack/**/*"/>
944 <exclude name="sun/tools/jstat/**/*"/>
945 <exclude name="sun/tools/jstatd/**/*"/>
946 <exclude name="sun/tools/jconsole/**/*"/>
949 <delete dir="${build.dir}/openjdk-compare"/>
950 <cp-compare destdir="${build.dir}/openjdk-compare" type="openjdk">
952 <fileset dir="${root.dir}/core/src/openjdk/com">
953 <patternset refid="cp-includes-pattern"/>
955 <fileset dir="${root.dir}/core/src/openjdk/java">
956 <patternset refid="cp-includes-pattern"/>
958 <fileset dir="${root.dir}/core/src/openjdk/javax">
959 <patternset refid="cp-includes-pattern"/>
962 <fileset dir="${root.dir}/core/src/openjdk/org">
963 <patternset refid="cp-includes-pattern"/>
966 <fileset dir="${root.dir}/core/src/openjdk/sun">
967 <patternset refid="cp-includes-pattern"/>
969 <fileset dir="${root.dir}/core/src/openjdk/jaxws">
970 <patternset refid="cp-includes-pattern"/>
972 <fileset dir="${root.dir}/core/src/openjdk/langtools">
973 <patternset refid="cp-includes-pattern"/>
975 <fileset dir="${root.dir}/core/src/openjdk/corba">
976 <patternset refid="cp-includes-pattern"/>
980 <fileset dir="${root.dir}/core/src/openjdk/vm">
981 <patternset refid="cp-includes-pattern"/>
985 <fileset dir="${root.dir}/../openjdk/jdk/src/share/classes/">
986 <patternset refid="cp-includes-pattern"/>
987 <patternset refid="cp-sources-pattern"/>
989 <fileset dir="${root.dir}/../openjdk/corba/src/share/classes/">
990 <patternset refid="cp-includes-pattern"/>
991 <patternset refid="cp-sources-pattern"/>
993 <fileset dir="${root.dir}/../openjdk/jaxp/src/share/classes/">
994 <patternset refid="cp-includes-pattern"/>
995 <patternset refid="cp-sources-pattern"/>
997 <fileset dir="${root.dir}/../openjdk/jaxws/src/share/classes/">
998 <patternset refid="cp-includes-pattern"/>
999 <patternset refid="cp-sources-pattern"/>
1001 <fileset dir="${root.dir}/../openjdk/langtools/src/share/classes/">
1002 <patternset refid="cp-includes-pattern"/>
1003 <patternset refid="cp-sources-pattern"/>
1009 <target name="openjdk-annotate" depends="assemble-projects">
1010 <taskdef name="oj-annotate" classname="org.jnode.ant.taskdefs.AnnotateTask"
1011 classpathref="cp-jnode"/>
1013 <oj-annotate annotationFile="${root.dir}/all/conf/openjdk-annotations.properties"
1014 buildStartTime="${hotswap.class.tstamp}"
1015 pattern="${hotswap.class.tstamp.pattern}"
1018 basedir="${root.dir}/core/build/classes"/>
1021 <!-- check that all native methods are properly implemented for JNode -->
1022 <target name="native-method-check" depends="assemble-projects">
1023 <echo message="native-method-check"/>
1024 <taskdef name="native-check" classname="org.jnode.ant.taskdefs.NativeCheckTask"
1025 classpathref="cp-jnode"/>
1027 <native-check trace="false" failonerror="false">
1028 <fileset dir="${root.dir}/core/build/classes">
1029 <patternset includes="**/*.class"/>
1034 <!-- Run all tests -->
1035 <target name="tests" depends="assemble">
1036 <ant target="tests" dir="${root.dir}/fs" inheritall="on" inheritrefs="on"/>
1039 <!-- Check the encoding of all files -->
1040 <target name="encoding-test" depends="assemble">
1041 <taskdef name="n2a" classname="org.jnode.ant.taskdefs.Native2AsciiTask" classpathref="cp-jnode"/>
1044 <fileset dir="${root.dir}" includes="**/*.java"/>
1048 <!-- Check and fix the encoding of all files -->
1049 <target name="encoding-fix" depends="assemble">
1050 <taskdef name="n2a" classname="org.jnode.ant.taskdefs.Native2AsciiTask" classpathref="cp-jnode"/>
1053 <fileset dir="${root.dir}" includes="**/*.java"/>
1057 <!-- check plugin dependencies -->
1058 <target name="check-plugins" depends="assemble-plugins">
1059 <!-- Check all plugins -->
1060 <taskdef name="checkDeps" classname="org.jnode.build.dependencies.BCELDependencyChecker"
1061 classpathref="cp-jnode" />
1063 TODO: remove duplicate classes from mmtk related plugins and enable their checking.
1066 <plugins dir="${plugins.dir}/">
1067 <include name="*.jar" />
1068 <exclude name="*mmtk*.jar" />
1071 <descriptors dir="${descriptors.dir}/">
1072 <include name="*.xml" />
1073 <exclude name="*plugin-list.xml" />
1074 <exclude name="*mmtk*.xml" />
1079 <!-- Define the task that check the rules -->
1080 <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
1081 classpathref="cp-jnode">
1083 <pathelement location="${pmd.jar}"/>
1084 <pathelement location="${jaxen.jar}"/>
1085 <pathelement location="${saxpath.jar}"/>
1086 <pathelement location="${xerces.jar}"/>
1087 <pathelement location="${xmlParserAPIs.jar}"/>
1092 <!-- Macro used to check that the rules are applied in the source code -->
1093 <macrodef name="checkProjectRules">
1094 <attribute name="projectName"/>
1095 <attribute name="webSrcUrl"/>
1096 <attribute name="projectSrc"/>
1098 <property name="nbFailures" value="0"/>
1099 <echo message="Scanning @{projectName}."/>
1100 <property name="tmp" value="../@{projectSrc}"/>
1101 <pmd failuresPropertyName="nbFailures">
1102 <formatter type="html" toFile="${reports.dir}/pmd_report-@{projectName}.html"/>
1104 <ruleset>rulesets/favorites.xml</ruleset>
1105 <ruleset>rulesets/basic.xml</ruleset>
1107 <fileset dir="../@{projectSrc}" includes="**/*.java"/>
1109 <echo message="There was ${nbFailures} failures in @{projectName}."/>
1113 <target name="checkJNodeRules" depends="prepare">
1115 <checkProjectRules projectName="distr" webSrcUrl="distr" projectSrc="distr"/>
1116 <checkProjectRules projectName="JNode-Builder" webSrcUrl="builder" projectSrc="builder"/>
1117 <checkProjectRules projectName="JNode-Core" webSrcUrl="core" projectSrc="core"/>
1118 <checkProjectRules projectName="JNode-FS" webSrcUrl="fs" projectSrc="fs"/>
1119 <checkProjectRules projectName="JNode-GUI" webSrcUrl="gui" projectSrc="gui"/>
1120 <checkProjectRules projectName="JNode-Net" webSrcUrl="net" projectSrc="net"/>
1121 <checkProjectRules projectName="JNode-Shell" webSrcUrl="shell" projectSrc="shell"/>
1122 <checkProjectRules projectName="JNode-TestUI" webSrcUrl="textui" projectSrc="textui"/>
1126 <!-- Document all plugins -->
1127 <target name="document-plugins" depends="assemble-projects">
1128 <taskdef name="plugindocumentation" classname="org.jnode.build.documentation.PluginDocumentationTask" classpathref="cp-jnode"/>
1130 <plugindocumentation
1131 destdir="${reports.dir}/plugins"
1132 pluginDir="${descriptors.dir}"
1133 tree="${jnode.plugin.doc.tree}">
1134 <descriptors dir="${descriptors.dir}/">
1135 <include name="*.xml"/>
1136 <exclude name="*plugin-list.xml"/>
1138 </plugindocumentation>
1142 <target name="checkstyle" description="check the mandatory code conventions">
1143 <taskdef resource="checkstyletask.properties" classpath="../core/lib/checkstyle-all-4.4.jar"/>
1144 <checkstyle config="jnode_checks.xml">
1145 <fileset dir="../builder/src/builder" includes="**/*.java"/>
1146 <fileset dir="../builder/src/configure" includes="**/*.java"/>
1147 <fileset dir="../cli/src/commands" includes="**/*.java"/>
1148 <fileset dir="../core/src/core" includes="**/*.java"/>
1149 <fileset dir="../core/src/driver" includes="**/*.java"/>
1150 <fileset dir="../core/src/test" includes="**/*.java"/>
1151 <fileset dir="../distr/src/apps" includes="**/*.java"/>
1152 <fileset dir="../distr/src/emu" includes="**/*.java"/>
1153 <fileset dir="../distr/src/install" includes="**/*.java"/>
1154 <fileset dir="../distr/src/test" includes="**/*.java"/>
1155 <fileset dir="../fs/src/fs" includes="**/*.java"/>
1156 <fileset dir="../fs/src/driver" includes="**/*.java"/>
1157 <fileset dir="../fs/src/test" includes="**/*.java"/>
1158 <fileset dir="../gui/src/test" includes="**/*.java"/>
1159 <fileset dir="../gui/src/desktop" includes="**/*.java"/>
1160 <fileset dir="../gui/src/driver" includes="**/*.java"/>
1161 <fileset dir="../gui/src/awt" includes="**/*.java"/>
1162 <fileset dir="../net/src/net" includes="**/*.java"/>
1163 <fileset dir="../net/src/driver" includes="**/*.java"/>
1164 <fileset dir="../net/src/test" includes="**/*.java"/>
1165 <fileset dir="../shell/src/test" includes="**/*.java"/>
1166 <fileset dir="../shell/src/shell" includes="**/*.java"/>
1170 <target name="checkstyle-new" description="check the recommanded code conventions">
1171 <taskdef resource="checkstyletask.properties" classpath="../core/lib/checkstyle-all-4.4.jar"/>
1172 <checkstyle config="new_checks.xml">
1174 <fileset dir="../builder/src/builder" includes="**/*.java"/>
1175 <fileset dir="../builder/src/configure" includes="**/*.java"/>
1176 <fileset dir="../core/src/core" includes="**/*.java"/>
1177 <fileset dir="../core/src/driver" includes="**/*.java"/>
1178 <fileset dir="../core/src/test" includes="**/*.java"/>
1180 <fileset dir="../distr/src/apps" includes="**/*.java"/>
1181 <fileset dir="../distr/src/emu" includes="**/*.java"/>
1182 <fileset dir="../distr/src/install" includes="**/*.java"/>
1183 <fileset dir="../distr/src/test" includes="**/*.java"/>
1185 <fileset dir="../fs/src/fs" includes="**/*.java"/>
1186 <fileset dir="../fs/src/driver" includes="**/*.java"/>
1187 <fileset dir="../fs/src/test" includes="**/*.java"/>
1188 <fileset dir="../gui/src/test" includes="**/*.java"/>
1189 <fileset dir="../gui/src/desktop" includes="**/*.java"/>
1190 <fileset dir="../gui/src/driver" includes="**/*.java"/>
1191 <fileset dir="../gui/src/awt" includes="**/*.java"/>
1192 <fileset dir="../net/src/net" includes="**/*.java"/>
1193 <fileset dir="../net/src/driver" includes="**/*.java"/>
1194 <fileset dir="../net/src/test" includes="**/*.java"/>
1195 <fileset dir="../shell/src/test" includes="**/*.java"/>
1196 <fileset dir="../shell/src/shell" includes="**/*.java"/>
1201 <target name="findbugs" depends="assemble-plugins">
1202 <taskdef name="findbugs" classpath="../core/lib/findbugs/lib/findbugs-ant.jar"
1203 classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
1204 <findbugs home="../core/lib/findbugs/" output="html" outputFile="./build/findbugs.html" >
1206 <pathelement location="./build/plugins/rt_${jnode-ver}.jar" />
1207 <pathelement location="./build/plugins/org.classpath.ext.core_${jnode-ver}.jar" />
1208 <pathelement location="./build/plugins/nanoxml_1.4.jar" />
1209 <pathelement location="${nanoxml-java.jar}" />
1210 <pathelement location="${log4j.jar}" />
1213 <pathelement path="../core/src/core/"/>
1215 <class location="./build/plugins/org.jnode.vm_${jnode-ver}.jar"/>
1216 <class location="./build/plugins/org.jnode.vm.core_${jnode-ver}.jar"/>
1217 <class location="./build/plugins/org.jnode.vm.memmgr.def_${jnode-ver}.jar"/>
1218 <class location="./build/plugins/org.jnode.driver_${jnode-ver}.jar"/>
1219 <class location="./build/plugins/org.jnode.runtime_${jnode-ver}.jar"/>
1220 <class location="./build/plugins/org.jnode.runtime.core_${jnode-ver}.jar"/>
1221 <class location="./build/plugins/org.jnode.util_${jnode-ver}.jar"/>
1222 <class location="./build/plugins/org.jnode.work_${jnode-ver}.jar"/>
1223 <class location="./build/plugins/org.jnode.security_${jnode-ver}.jar"/>
1227 <!-- Create a patch -->
1228 <!-- TODO create replacement SVN task
1229 <target name="create-patch">
1230 <property name="patch.file" value="${root.dir}/patch.txt"/>
1231 <echo>Creating patch in ${patch.file}</echo>
1232 <cvs output="${patch.file}" dest="${root.dir}">
1234 <argument line="-q diff -u -N"/>