zzz
[Bob.git] / build.xml
blob9eaef3b951f1a37f7be66d806ae0dd205b859ef9
1 \r
2 <project name="bob" default="usage" basedir=".">\r
3         \r
4         \r
5         <!-- <property name="build.sysclasspath" value="last" /> \r
6         -->\r
7         <property name="ant.build.javac.target" value="1.5" /> \r
8         \r
9         \r
10         \r
11     <path id="bob.classpath" >\r
12                 \r
13                 <fileset dir="${java.home}/lib" >\r
14                     <include name="*.jar"/>\r
15                 </fileset>\r
16                 <pathelement path="templates/" />\r
17         <pathelement path="build/bootstrap" />\r
18         <pathelement path="build/src" />\r
19                 <pathelement path="build/gen" />\r
20                 <pathelement path="build/test" />\r
21                 <pathelement path="templates/" />\r
22         <pathelement path="test/xml/" />\r
23                 <pathelement path="lib/" />\r
24         <pathelement path="." />\r
25                 <fileset dir="lib/">\r
26                     <include name="*.jar" />\r
27                         <include name="*.properties" />\r
28                 </fileset>\r
29                 \r
30     </path>\r
31         \r
32         \r
33     <path id="run.classpath" >\r
34                 \r
35                 <!--\r
36                 <pathelement path="build/bob.jar" />\r
37                 <pathelement path="bob.jar" />\r
38                 -->\r
39                 <pathelement path="templates" />\r
40                 <pathelement path="build/src" />\r
41                 <pathelement path="build/gen" />\r
42                 <pathelement path="lib" />\r
43                 <fileset dir="lib">\r
44                     <include name="*.jar" />\r
45                         <include name="*.properties" />\r
46                 </fileset>\r
47                 <fileset dir="${java.home}/lib" >\r
48                     <include name="*.jar"/>\r
49                 </fileset>\r
50     </path>\r
51     \r
52         \r
53     <target name="usage">\r
54                 \r
55                 <echo message="BOBJava build targets..."/>\r
56                 \r
57                 <echo message=""/>\r
58                 <echo message="init"/>\r
59                 <echo message="clean"/>\r
60                 \r
61                 <echo message=""/>\r
62                 <echo message="bootstrap-src"/>\r
63                 <echo message="bootstrap-gen"/>\r
64                 <echo message="bootstrap-compile"/>\r
65                 \r
66                 <echo message=""/>\r
67                 <echo message="compile-src"/>\r
68                 <echo message="compile-tests"/>\r
69                 <echo message="compile-all"/>\r
70                 <echo message="compile-gen"/>\r
71                 \r
72                 <echo message=""/>\r
73                 <echo message="release"/>\r
74                 <echo message="run-gen"/>\r
75         <echo message="run-cc"/>\r
76         <echo message="run-docs"/>\r
77                 <echo message="run-gendocs"/>\r
78                 <echo message="run-tests"/>\r
79                 <echo message="run-test"/>\r
80     </target>\r
82     \r
83     <!-- =============================== -->\r
84     <!-- TASK DEFINITIONS               -->\r
85     <!-- =============================== -->\r
86     <taskdef name="if" classpathref="bob.classpath" classname="ise.antelope.tasks.IfTask"/>\r
87         <taskdef name="sablecc" classpathref="bob.classpath" classname="org.sablecc.ant.taskdef.Sablecc"/>\r
88         \r
89     \r
90     <!-- =============================== -->\r
91     <!-- INITIALIZE THE BUILD PROCESS    -->\r
92     <!-- =============================== -->\r
93     <target name="init" >\r
94                 <loadproperties srcFile="build.properties" />\r
95         <mkdir dir="gen"/>\r
96     </target>\r
97         \r
98         \r
99     <!-- =============================== -->\r
100     <!-- CLEAN OUT THE BUILD FILES       -->\r
101     <!-- =============================== -->\r
102     <target name="clean">\r
103                 <delete dir="build" />\r
104                 <delete dir="gen" />\r
105                 <delete dir="bootstrap" />\r
106     </target>\r
109     <!-- =============================== -->\r
110     <!-- COMPILE targets                 -->\r
111     <!-- =============================== -->\r
112     <target name="compile-all" depends="init,compile-src,compile-tests"/>\r
115     <!-- <target name="bootstrap-src" depends="bootstrap-gen">\r
116                 \r
117                 <echo message="BOOTSTRAPPING SOURCE..."/>\r
118                 <mkdir dir="${dir.build}/src"/>\r
119                 <javac srcdir="${dir.src}" \r
120                         destdir="${dir.build}/src" \r
121                         classpathref="bob.classpath" \r
122                         fork="yes" \r
123                         deprecation="on" >\r
124                     <!- <exclude name="com/interrupt/bob/core/**"/>\r
125                     ->\r
126                 </javac>\r
127         \r
128         </target>\r
129         -->\r
130         \r
131     <target name="bootstrap-gen" depends="init">\r
132                 \r
133         \r
134                 <echo message="BOOTSTRAP COMPILING 'Main'..."/>\r
135                 <mkdir dir="${dir.build}/src"/>\r
136         <javac srcdir="${dir.src}" \r
137                         destdir="${dir.build}/src" \r
138                         classpathref="bob.classpath" \r
139                         fork="yes" \r
140                         deprecation="on" \r
141                 nowarn="on" >\r
142                 </javac>\r
143                 \r
144         <echo message="" />\r
145         <echo message="" />\r
146         <echo message="BOOTSTRAP GENERATING 'Bob' Core..."/>\r
147                 <java classname="com.interrupt.bob.Main" classpathref="bob.classpath" fork="yes" > \r
148                         \r
149                         <arg line="-gen ${dir.bootstrap} -base . -end .xml -def ${bootstrap.files} -sys ${bootstrap.files}" /> \r
150                 </java>\r
151         \r
152     </target>\r
153         \r
154         <target name="bootstrap-compile" depends="bootstrap-gen">\r
155                         \r
156                 <echo message="COMPILING BOOTSTRAP SOURCE"/>\r
157                 <mkdir dir="${dir.build}/bootstrap" />\r
158                 <javac srcdir="${dir.bootstrap}" destdir="${dir.build}/bootstrap" debug="true" \r
159                     classpathref="bob.classpath" fork="yes" deprecation="on" nowarn="on" />\r
160                 \r
161     </target>\r
162         \r
163         \r
164     <target name="compile-src" depends="bootstrap-compile">\r
165                 \r
166                 <echo message="COMPILING JAVA SOURCE"/>\r
167                 <!--<mkdir dir="${dir.build}/src"/>\r
168                 -->\r
169                 <javac srcdir="${dir.src}/" destdir="${dir.build}/src" debug="true" \r
170                     classpathref="bob.classpath" fork="yes" deprecation="on" nowarn="on" />\r
171                 \r
172     </target>\r
173         \r
174     \r
175     <target name="compile-tests" depends="init,compile-src,compile-gen">\r
176                 \r
177                 <echo message="COMPILING JAVA TESTS"/>\r
178                 <mkdir dir="${dir.build}/test"/>\r
179                 <javac srcdir="${dir.test.src}" destdir="${dir.build}/test" \r
180                     classpathref="bob.classpath" fork="yes" deprecation="on" nowarn="on" />\r
181     </target>\r
182     \r
183     \r
184     <target name="compile-gen" depends="init, run-gen, run-cc">\r
185                 \r
186                 <echo message="COMPILING GEN SOURCE"/>\r
187                 <mkdir dir="${dir.build}/gen"/>\r
188                 <javac srcdir="gen" destdir="${dir.build}/gen" \r
189                     classpathref="bob.classpath" fork="yes" deprecation="on" nowarn="on" />\r
190         <copy todir="${dir.build}/gen">\r
191             <fileset dir="gen" includes="**/*.dat"/>\r
192         </copy>\r
193                 \r
194     </target>\r
197     <!-- =============================== -->\r
198     <!-- RELEASE                        -->\r
199     <!-- =============================== -->\r
200     <target name="release" depends="compile-gen, compile-src" >\r
201         <jar destfile="${dir.build}/bob.jar" includes="velocity.properties">\r
202                 \r
203             <fileset dir="${dir.build}/gen">\r
204                         <include name="com/interrupt/bob/core/**/*.class"/>\r
205                         <include name="com/interrupt/bob/handler/**/*.class"/>\r
206                         \r
207                 </fileset>\r
208             <fileset dir="${dir.build}/src"/>\r
209             <fileset file="lib/velocity.properties" />\r
210             <fileset dir="templates/" />\r
211         </jar>\r
212     </target>\r
213     \r
214     \r
215     <!-- =============================== -->\r
216     <!-- RUN TARGETS                    -->\r
217     <!-- =============================== -->\r
218         <target name="predicate-run" >\r
219                 \r
220                 <available file="gen/" property="genExists" />\r
221                 <if name="genExists">\r
222                     <else>\r
223                                 <mkdir dir="gen" />\r
224                     </else>\r
225                 </if>\r
226         </target>\r
227         \r
228         <target name="run-cc" depends="init, predicate-run"> \r
229                 \r
230                 <available file="gen/com/interrupt/cc/xpath" property="ccExists" />\r
231                 <if name="ccExists">\r
232                     <else>\r
233                         <sablecc src="cc" outputdirectory="gen" includes="*.sablecc" />\r
234                     </else>\r
235                 </if>\r
236         </target>\r
237         \r
238         <target name="run-gen" depends="init, predicate-run" >\r
239                 \r
240                 <available file="gen/com/interrupt/bob" property="bobExists" />\r
241                 <if name="bobExists">\r
242                         <else>\r
243                                 <java classname="com.interrupt.bob.Main" classpathref="bob.classpath" fork="yes" >\r
244                                         <arg line="-gen ${gen.dir} -base . -end .xml -def ${all.files} -sys ${all.files}" />\r
245                                 </java>\r
246                 </else>\r
247                 </if>\r
248     </target>\r
249     \r
250     <target name="run-docs" depends="compile-gen" >\r
251                 \r
252                 <javadoc destdir="doc/api" \r
253                     windowtitle="BOB API" \r
254                     sourcepath="src/:gen/"\r
255                     classpathref="bob.classpath" >\r
256         \r
257                     <package name="com.interrupt.bob" />\r
258                     <package name="com.interrupt.bob.base" />\r
259                     <package name="com.interrupt.bob.generator" />\r
260                     <package name="com.interrupt.bob.handler" />\r
261                     <package name="com.interrupt.bob.processor" />\r
262                     <package name="com.interrupt.bob.util" />\r
263                     <package name="com.interrupt.callback" />\r
264                 </javadoc>\r
265     </target>\r
266     \r
267     <target name="run-gendocs" depends="run-gen" >\r
268                 \r
269                 <javadoc destdir="${gen.dir}/doc" \r
270                     windowtitle="Generated API" \r
271                     packagenames="${gen.packages}"\r
272                     sourcepath="${gen.dir}"\r
273                     classpathref="bob.classpath" >\r
274                 </javadoc>\r
275     </target>\r
276     \r
277     \r
278     <target name="run-tests" depends="compile-tests" >\r
279                 \r
280                 <echo message="RUNNING UNIT TESTS in directory:  ${dir.test.src}"/>\r
281                 <java classname="junit.textui.TestRunner" classpathref="bob.classpath" fork="yes" >\r
282                         <arg line="-Dbob.base=. -Dbob.end=.xml -Dbob.def=${all.files}" />\r
283                     <arg value="com.interrupt.bob.AllTests" />\r
284                 </java>\r
285     </target>\r
287     <target name="run-test" depends="compile-tests" >\r
288                 \r
289                 <echo message="RUNNING a single UNIT TEST in directory:  ${dir.test.src}"/>\r
290                 <java classname="junit.textui.TestRunner" classpathref="bob.classpath" fork="yes" >\r
291                         <arg line="-Dbob.base=. -Dbob.end=.xml -Dbob.def=${all.files}" />\r
292                     <arg value="com.interrupt.bob.TestBob" />\r
293                 </java>\r
294     </target>\r
295         \r
296         <target name='run-class' depends="init" > \r
297                 \r
298                 <java classname="com.interrupt.bob.base.Bob" classpathref="bob.classpath" fork="yes" >\r
299                         <arg line="-Dbob.base=. -Dbob.end=.xml -Dbob.def=${all.files}" />\r
300                         \r
301                 </java>\r
302                 \r
303         </target> \r
304         \r
305 </project>\r