root/trunk/build.xml

Revision 3237 (checked in by douglm, 2 years ago)

bwtools now detached

Line 
1 <?xml version="1.0"?>
2
3 <!-- This is the ant build file for the bedework uber project.
4
5      Authors: Mike Douglass   douglm @ rpi.edu
6 -->
7
8 <project name="bedework.build" default="init" basedir=".">
9   <property environment="env"/>
10
11   <!-- This affects some of the build process in the projects -->
12   <property name="org.bedework.quickstart.build" value="true" />
13
14   <!-- this project -->
15   <property name="org.bedework.project.bedework"
16             location="${basedir}" />
17
18     <property name="org.bedework.libcache.dir"
19               location="${org.bedework.project.bedework}/libcache"/>
20
21   <!-- Where we put other projects -->
22   <property name="org.bedework.projects"
23             location="${org.bedework.project.bedework}/projects" />
24
25   <property name="org.bedework.project.access"
26             location="${org.bedework.projects}/access" />
27
28   <property name="org.bedework.project.caldav"
29             location="${org.bedework.projects}/caldav" />
30
31   <property name="org.bedework.project.caldavimpl"
32             location="${org.bedework.projects}/caldavimpl" />
33
34   <property name="org.bedework.project.calendarapi"
35             location="${org.bedework.projects}/calendarapi" />
36
37   <property name="org.bedework.project.davutil"
38             location="${org.bedework.projects}/davutil" />
39
40   <property name="org.bedework.project.dumprestore"
41             location="${org.bedework.projects}/dumprestore" />
42
43   <property name="org.bedework.project.indexer"
44             location="${org.bedework.projects}/indexer" />
45
46   <property name="org.bedework.project.rpiutil"
47             location="${org.bedework.projects}/rpiutil" />
48
49   <property name="org.bedework.project.webapps"
50             location="${org.bedework.projects}/webapps" />
51
52   <property name="org.bedework.project.webdav"
53             location="${org.bedework.projects}/webdav" />
54
55   <property name="build.dir" location="${org.bedework.project.bedework}/build"/>
56  
57   <property name="buildsh" location="${build.dir}/buildsh.xml"/>
58   <property name="buildwar" location="${build.dir}/buildwar.xml"/>
59
60   <!-- ========================= deployutil ================================ -->
61
62   <property name="org.bedework.default.lib"
63             location="${org.bedework.project.bedework}/lib" />
64
65   <property name="bw.project.home" location="${org.bedework.project.bedework}"/>
66
67   <property file="${bw.project.home}/build.properties" />
68
69   <property name="project.version" value="${org.bedework.version}"/>
70
71   <property name="org.bedework.deployutil.jar"
72             location="${org.bedework.project.bedework}/bin/${org.bedework.deployutil.jar.name}-${project.version}.jar" />
73
74   <ant antfile="${org.bedework.project.bedework}/deployutil/build.xml" inheritrefs="true"
75          target="build" />
76  
77   <copy todir="${build.dir}" file="${org.bedework.deployutil.jar}" />
78  
79   <import file="${build.dir}/buildTools/deftasks.xml"/>
80
81   <deftasks/>
82  
83   <var name="org.bedework.jars.built" value="0" />
84   <var name="org.bedework.jars.checked" value="0" />
85
86   <import file="${build.dir}/buildfilters.xml" />
87   <import file="${build.dir}/loadDeployConfig.xml"/>
88   <import file="${build.dir}/dirTools.xml"/>
89
90   <target name="README" depends="init"
91           description="Describe targets and their usage">
92     <loadfile property="org.bedework.README"
93               srcFile="${org.bedework.project.bedework}/docs/README"/>
94     <echo level="info" message="${org.bedework.README}" />
95   </target>
96
97   <target name="usage" depends="init"
98           description="Describe targets and their usage">
99     <loadfile property="org.bedework.README"
100               srcFile="${org.bedework.project.bedework}/docs/README"/>
101     <echo level="info" message="${org.bedework.README}" />
102   </target>
103
104   <target name="init" >
105     <echo level="info" message="Load user properties from ${org.bedework.user.build.properties}" />
106
107     <!-- Load user property definition overrides -->
108     <property file="${org.bedework.user.build.properties}" />
109
110     <!-- ===============================================================
111               Default properties.
112          =============================================================== -->
113
114     <property name="project.name" value="${org.bedework.package.name}"/>
115
116     <property name="dist.home" location="${bw.project.home}/dist"/>
117     <property name="lib.dir" location="${bw.project.home}/lib"/>
118     <property name="resources.dir" location="${bw.project.home}/resources"/>
119     <property name="bin.home" location="${bw.project.home}/bin"/>
120    
121     <property name="org.bedework.build.caldav" value="yes" />
122
123     <condition property="org.bedework.qs.build.caldav">
124       <equals arg1="yes" arg2="${org.bedework.build.caldav}"/>
125     </condition>
126
127     <mkdir dir="${dist.home}" />
128
129     <mkdir dir="${bin.home}" />
130
131     <property name="org.bedework.empty.dir"
132               location="${dist.home}/empty-dir" />
133     <mkdir dir="${org.bedework.empty.dir}" />
134
135     <fileset id="empty.fileset" dir="${org.bedework.empty.dir}"
136              excludes="*" />
137
138     <!-- ==================== Subcomponent Compilation Classpath ====================
139
140     <path id="compile.classpath">
141       <fileset dir="${lib.dir}">
142          <include name="*.jar"/>
143       </fileset>
144       <fileset dir="${dist.home}">
145          <include name="*.jar"/>
146       </fileset>
147     </path>
148 -->
149     <!-- ===============================================================
150               Locations and jar files built by this project.
151          =============================================================== -->
152
153     <property name="org.bedework.temp.dir"
154               location="${dist.home}/temp" />
155
156     <property name="org.bedework.ear.properties.dir"
157               location="${org.bedework.temp.dir}/ear-properties" />
158
159     <property name="org.bedework.config.base"
160               location="${org.bedework.project.bedework}/config" />
161
162     <property name="org.bedework.default.lib"
163               location="${org.bedework.project.bedework}/lib" />
164
165     <property name="org.bedework.deployment.base"
166               location="${org.bedework.project.bedework}/deployment" />
167
168     <property name="org.bedework.build.jar"
169               location="${bin.home}/${org.bedework.build.jar.name}-${project.version}.jar" />
170
171     <property name="org.bedework.deployutil.jar"
172               location="${bin.home}/${org.bedework.deployutil.jar.name}-${project.version}.jar" />
173   </target>
174
175   <target name="init.build" depends="init">
176     <mkdir dir="${dist.home}" />
177
178     <mkdir dir="${bin.home}" />
179
180     <mkdir dir="${org.bedework.empty.dir}" />
181   </target>
182
183   <!-- =================================================================
184        "build" and "clean" targets for the project
185        ================================================================= -->
186
187   <target name="build" depends="init.build,build.deployutil,build.rpiutil,
188                                 build.access,build.davutil,
189                                 build.webdav,build.caldav,
190                                 build.calendarapi,
191                                 build.caldavimpl,
192                                 build.webapps,build.indexer,
193                                 build.dumprestore"
194           description="builds the project">
195   </target>
196
197   <target name="build.deployutil" depends="init"
198           description="builds the deployutil component">
199     <ant antfile="${org.bedework.project.bedework}/deployutil/build.xml" inheritrefs="true"
200            target="build" />
201    
202     <copy todir="${build.dir}" file="${org.bedework.deployutil.jar}" />
203   </target>
204
205   <target name="clean" depends="init,clean.rpiutil,
206                                 clean.access,clean.davutil,
207                                 clean.calendarapi,
208                                 clean.webdav,clean.caldav,
209                                 clean.caldavimpl,
210                                 clean.webapps,clean.indexer,
211                                 clean.dumprestore"
212           description="Remove all generated files.">
213     <delete dir="${dist.home}" />
214     <delete dir="${bin.home}" />
215   </target>
216
217   <target name="quickstart-clean" depends="init,clean.rpiutil,
218                                            clean.access,clean.davutil,
219                                            clean.calendarapi,
220                                            clean.webdav,clean.caldav,
221                                            clean.caldavimpl,
222                                            clean.webapps,clean.indexer,
223                                                clean.dumprestore"
224           description="partial clean up for quickstart.">
225     <delete dir="${bin.home}" />
226     <delete dir="${org.bedework.temp.dir}" />
227     <delete dir="${org.bedework.empty.dir}" />
228     <delete dir="${bw.project.home}/libcache"/>
229     <delete dir="${bw.project.home}/applib"/>
230
231     <delete>
232       <fileset dir="${dist.home}" includes="*.war"/>
233     </delete>
234   </target>
235
236   <target name="clean.build" depends="clean, build"
237           description="cleans then builds the project"/>
238
239   <!-- =================================================================
240        The "deploy" and "deploy.all" target builds and deploys the applications
241        ================================================================= -->
242
243   <target name="deploy.debug" depends="build"
244           description="builds and deploys the applications">
245     <ant antfile="${org.bedework.project.bedework}/deployment/build.xml" inheritrefs="true"
246          target="deploy"  >
247       <property name="app.debug.val" value="9" />
248     </ant>
249   </target>
250
251   <target name="deploy" depends="build"
252           description="builds and deploys the applications">
253     <ant antfile="${org.bedework.project.bedework}/deployment/build.xml" inheritrefs="true"
254          target="deploy" />
255   </target>
256
257   <!-- =================================================================
258        The "clean.deploy" target cleans, builds and deploys the applications
259        ================================================================= -->
260
261   <target name="clean.deploy" depends="clean,deploy" />
262
263   <target name="clean.deploy.debug" depends="clean,deploy.debug" />
264
265   <!-- =================================================================
266        The "build.configured" target builds configured applications
267        ================================================================= -->
268
269   <target name="build.configured" depends="build"
270           description="Build configured applications" >
271     <ant antfile="${org.bedework.project.bedework}/deployment/build.xml" inheritrefs="true"
272          target="build.configured"  >
273       <property name="app.debug.val" value="9" />
274     </ant>
275   </target>
276
277   <target name="build.configured.debug" depends="build"
278           description="Build configured applications" >
279     <ant antfile="${org.bedework.project.bedework}/deployment}/build.xml" inheritrefs="true"
280          target="build.configured" />
281   </target>
282
283   <target name="clean.build.configured" depends="clean,build.configured" />
284
285   <target name="clean.build.configured.debug" depends="clean,build.configured.debug"/>
286
287   <!-- ======================== javadoc target =======================
288        We build these and copy in turn into the main bedework docs directory.
289
290        The org.bedework.projectdocs.home property allows each project to
291        locate the previously built javadocs so they can link to it.
292
293        We also assume access to the java api docs.
294        ================================================================= -->
295
296   <target name="javadoc" depends="init" description="Generate javadoc">
297     <property name="docs.home" location="${bw.project.home}/docs"/>
298     <property name="org.bedework.projectdocs.home" location="${docs.home}/projectdocs"/>
299     <delete dir="${org.bedework.projectdocs.home}" />
300     <mkdir dir="${org.bedework.projectdocs.home}" />
301
302     <ant antfile="${org.bedework.project.rpiutil}/build.xml" inheritall="false"
303          target="javadoc" >
304       <property name="destdir"
305                 location="${org.bedework.projectdocs.home}/rpiutil/api" />
306     </ant>
307
308     <ant antfile="${org.bedework.project.access}/build.xml" inheritall="false"
309          target="javadoc" >
310       <property name="destdir"
311                 location="${org.bedework.projectdocs.home}/access/api" />
312     </ant>
313
314     <ant antfile="${org.bedework.project.davutil}/build.xml" inheritall="false"
315          target="javadoc" >
316       <property name="destdir"
317                 location="${org.bedework.projectdocs.home}/davutil/api" />
318     </ant>
319
320     <ant antfile="${org.bedework.project.calendarapi}/build.xml" inheritall="false"
321          target="javadoc" >
322       <property name="destdir"
323                 location="${org.bedework.projectdocs.home}/calendarapi/api" />
324     </ant>
325
326     <ant antfile="${org.bedework.project.dumprestore}/build.xml" inheritall="false"
327          target="javadoc" >
328       <property name="destdir"
329                 location="${org.bedework.projectdocs.home}/dumprestore/api" />
330     </ant>
331
332     <ant antfile="${org.bedework.project.webdav}/build.xml" inheritall="false"
333          target="javadoc" >
334       <property name="destdir"
335                 location="${org.bedework.projectdocs.home}/webdav/api" />
336     </ant>
337
338     <ant antfile="${org.bedework.project.caldav}/build.xml" inheritall="false"
339          target="javadoc" >
340       <property name="destdir"
341                 location="${org.bedework.projectdocs.home}/caldav/api" />
342     </ant>
343
344     <ant antfile="${org.bedework.project.caldavimpl}/build.xml" inheritall="false"
345          target="javadoc" >
346       <property name="destdir"
347                 location="${org.bedework.projectdocs.home}/caldavimpl/api" />
348     </ant>
349
350     <ant antfile="${org.bedework.project.indexer}/build.xml" inheritall="false"
351          target="javadoc" >
352       <property name="destdir"
353                 location="${org.bedework.projectdocs.home}/indexer/api" />
354     </ant>
355
356     <ant antfile="${org.bedework.project.webapps}/build.xml" inheritall="false"
357          target="javadoc" >
358       <property name="destdir"
359                 location="${org.bedework.projectdocs.home}/webapps/api" />
360     </ant>
361   </target>
362
363   <!-- =================================================================
364        Targets to build sub-projects.
365        ================================================================= -->
366
367   <!-- .................................................................
368                           access
369        .................................................................. -->
370   <target name="build.access" depends="init"
371           description="builds the access project">
372     <ant antfile="${org.bedework.project.access}/build.xml" inheritall="false"
373            target="build-all" >
374       <property name="org.bedework.libcache.dir"
375                 location="${org.bedework.project.bedework}/libcache"/>
376     </ant>
377   </target>
378
379   <target name="clean.access" depends="init"
380           description="cleans the access project">
381     <ant antfile="${org.bedework.project.access}/build.xml" inheritall="false"
382            target="deep-clean" />
383   </target>
384
385   <target name="clean.build.access" depends="clean.access,build.access"
386           description="builds the access project"/>
387
388   <!-- .................................................................
389                           caldav
390        .................................................................. -->
391   <target name="build.caldav" depends="init"
392           description="builds the caldav project">
393     <ant antfile="${org.bedework.project.caldav}/build.xml" inheritall="false"
394        target="build-all"  >
395       <property name="org.bedework.libcache.dir"
396                 location="${org.bedework.project.bedework}/libcache"/>
397     </ant>
398   </target>
399
400   <target name="clean.caldav" depends="init"
401           description="clean the caldav project">
402     <ant antfile="${org.bedework.project.caldav}/build.xml" inheritall="false"
403          target="deep-clean" />
404   </target>
405
406   <target name="clean.build.caldav" depends="clean.caldav,build.caldav"
407           description="clean builds the caldav project"/>
408
409   <!-- .................................................................
410                           caldavimpl
411        .................................................................. -->
412   <target name="build.caldavimpl" depends="init"
413           description="builds the caldavimpl project">
414     <ant antfile="${org.bedework.project.caldavimpl}/build.xml" inheritall="false"
415        target="build-all"  >
416       <property name="org.bedework.libcache.dir"
417                 location="${org.bedework.project.bedework}/libcache"/>
418     </ant>
419   </target>
420
421   <target name="clean.caldavimpl" depends="init"
422           description="clean the caldavimpl project">
423     <ant antfile="${org.bedework.project.caldavimpl}/build.xml" inheritall="false"
424          target="deep-clean" />
425   </target>
426
427   <target name="clean.build.caldavimpl" depends="clean.caldav,build.caldav"
428           description="clean builds the caldavimpl project"/>
429
430   <!-- .................................................................
431                           calendarapi
432        .................................................................. -->
433   <target name="build.calendarapi" depends="init"
434           description="builds the calendar project">
435     <ant antfile="${org.bedework.project.calendarapi}/build.xml" inheritall="false"
436            target="build-all"  >
437       <property name="org.bedework.libcache.dir"
438                 location="${org.bedework.project.bedework}/libcache"/>
439     </ant>
440   </target>
441
442   <target name="clean.calendarapi" depends="init"
443           description="clean the calendar project">
444     <ant antfile="${org.bedework.project.calendarapi}/build.xml" inheritall="false"
445            target="deep-clean" />
446   </target>
447
448   <target name="clean.build.calendarapi" depends="clean.calendarapi,build.calendarapi"
449           description="clean builds the calendarapi project"/>
450
451   <!-- .................................................................
452                           davutil
453        .................................................................. -->
454   <target name="build.davutil" depends="init"
455           description="builds the davutil project">
456     <ant antfile="${org.bedework.project.davutil}/build.xml" inheritall="false"
457            target="build-all"  >
458       <property name="org.bedework.libcache.dir"
459                 location="${org.bedework.project.bedework}/libcache"/>
460     </ant>
461   </target>
462
463   <target name="clean.davutil" depends="init"
464           description="cleans the davutil project">
465     <ant antfile="${org.bedework.project.davutil}/build.xml" inheritall="false"
466            target="deep-clean" />
467   </target>
468
469   <target name="clean.build.davutil" depends="clean.davutil,build.davutil"
470           description="clean builds the davutil project"/>
471
472   <!-- .................................................................
473                           dumprestore
474        .................................................................. -->
475   <target name="build.dumprestore" depends="init"
476           description="builds the dumprestore project">
477     <ant antfile="${org.bedework.project.dumprestore}/build.xml" inheritall="false"
478            target="build-all"  >
479       <property name="org.bedework.libcache.dir"
480                 location="${org.bedework.project.bedework}/libcache"/>
481     </ant>
482   </target>
483
484   <target name="clean.dumprestore" depends="init"
485           description="clean the dumprestore project">
486     <ant antfile="${org.bedework.project.dumprestore}/build.xml" inheritall="false"
487            target="deep-clean" />
488   </target>
489
490   <target name="clean.build.dumprestore" depends="clean.dumprestore,build.dumprestore"
491           description="builds the dumprestore project"/>
492
493   <!-- .................................................................
494                           indexer
495        .................................................................. -->
496   <target name="build.indexer" depends="init"
497           description="builds the indexer project">
498     <ant antfile="${org.bedework.project.indexer}/build.xml" inheritall="false"
499            target="build-all"  >
500       <property name="org.bedework.libcache.dir"
501                 location="${org.bedework.project.bedework}/libcache"/>
502     </ant>
503   </target>
504
505   <target name="clean.indexer" depends="init"
506           description="clean the indexer project">
507     <ant antfile="${org.bedework.project.indexer}/build.xml" inheritall="false"
508            target="deep-clean" />
509   </target>
510
511   <target name="clean.build.indexer" depends="clean.indexer,build.indexer"
512           description="builds the indexer project"/>
513
514   <!-- .................................................................
515                           rpiutil
516        .................................................................. -->
517   <target name="build.rpiutil" depends="init"
518           description="builds the rpiutil project">
519     <ant antfile="${org.bedework.project.rpiutil}/build.xml" inheritall="false"
520            target="build-all"  >
521       <property name="org.bedework.libcache.dir"
522                 location="${org.bedework.project.bedework}/libcache"/>
523     </ant>
524   </target>
525
526   <target name="clean.rpiutil" depends="init"
527           description="cleans the rpiutil project">
528     <ant antfile="${org.bedework.project.rpiutil}/build.xml" inheritall="false"
529            target="deep-clean" />
530   </target>
531
532   <target name="clean.build.rpiutil" depends="clean.rpiutil,build.rpiutil"
533           description="builds the rpiutil project"/>
534
535   <!-- .................................................................
536                           webapps
537        .................................................................. -->
538   <target name="build.webapps" depends="init"
539           description="builds the webapps project">
540     <ant antfile="${org.bedework.project.webapps}/build.xml" inheritall="false"
541            target="build-all"  >
542       <property name="org.bedework.libcache.dir"
543                 location="${org.bedework.project.bedework}/libcache"/>
544     </ant>
545   </target>
546
547   <target name="clean.webapps" depends="init"
548           description="clean the webapps project">
549     <ant antfile="${org.bedework.project.webapps}/build.xml" inheritall="false"
550            target="deep-clean" />
551   </target>
552
553   <target name="clean.build.webapps" depends="clean.webapps,build.webapps"
554           description="builds the webapps project"/>
555
556   <!-- .................................................................
557                           webdav
558        .................................................................. -->
559   <target name="build.webdav" depends="init"
560           description="builds the webdav project">
561     <ant antfile="${org.bedework.project.webdav}/build.xml" inheritall="false"
562          target="build-all"  >
563       <property name="org.bedework.libcache.dir"
564                 location="${org.bedework.project.bedework}/libcache"/>
565     </ant>
566   </target>
567
568   <target name="clean.webdav" depends="init"
569           description="cleans the webdav project">
570     <ant antfile="${org.bedework.project.webdav}/build.xml" inheritall="false"
571          target="deep-clean" />
572   </target>
573
574   <target name="clean.build.webdav" depends="clean.webdav,build.webdav"
575           description="builds the webdav project"/>
576
577   <!-- =================================================================
578        Targets to build sub-components of this project.
579        ================================================================= -->
580
581   <target name="build.build" depends="init"
582           description="builds the java build configuration component">
583     <ant antfile="${org.bedework.project.bedework}/build/build.xml" inheritrefs="true"
584            target="build" >
585       <property name="build.jar.file" location="${org.bedework.build.jar}" />
586     </ant>
587   </target>
588
589   <!-- Rebuild the http test suite only -->
590   <target name="httptest" depends="init"
591           description="Run httptest suite" >
592     <input message="httptest may destroy this calendar db. Proceed with test"
593            validargs="y,n"
594            addproperty="do.httptest" />
595     <condition property="do.abort">
596       <equals arg1="n" arg2="${do.httptest}"/>
597     </condition>
598     <fail if="do.abort">httptest aborted by user.</fail>
599
600     <ant antfile="${calendar.build.file}" inheritrefs="true"
601            target="bld.httptest" />
602
603     <ant antfile="${calendar.build.file}" inheritrefs="true"
604            target="run.httptest" />
605   </target>
606 </project>
Note: See TracBrowser for help on using the browser.