001 <?xml version="1.0"?>
002
003 <!--
004 Atlantis+GraXML 3D build howto:
005 1) libgraxml3d directory - all GraXML jar files (inc. GraXMLBridge.jar)
006 http://cern.ch/hrivnac/Activities/Packages/WebStart/GraXML/\
007 jars/GraXMLBridge.jar (referenced only from interactions/ASelection)
008 other libraries (full distribution):
009 http://cern.ch/hrivnac/Activities/Packages/GraXMLBridge-dist.tar.gz
010 2) ant -DtargetDir=run all3d (Atlantis+GraXML build in run directory)
011 (can run atlantis start script which sets also LD_LIBRARY_PATH)
012 3) ant -DtargetDir=run webstart3d (Atlantis+GraXML build for WebStart)
013 runnable via atlantis3d.jnlp
014
015
016 Atlantis via Java WebStart
017 1) ant -DtargetDir=for_webstart webstart
018 2) copy "for_webstart" directory to the website, webstart directory
019
020 similarly with webstart3d ...
021
022 -->
023
024
025 <!-- basedir attribute to be adjusted - target build directory - - - - - -->
026 <project name="Atlantis" default="usage" basedir="..">
027
028 <!-- begin properties - - - - - - - - - - - - - - - - - - - - - - - - -->
029 <!-- read in overriden properties from ant.properties file - - - - - -->
030 <property file="ant.properties"/>
031 <property name="appName" value="Atlantis"/>
032
033 <!-- password for webstart certificate - certificate is created in
034 webstart target, used to sign *.jar files and erased afterwards -->
035 <property name="password" value="webstart_certificate_atlantis_password"/>
036
037
038 <!-- everything for GraXML 3D - jar files in libgraxml3d directory -->
039 <property name="libgraxml3d.src" value="libgraxml3d"/>
040
041
042 <property name="classpath.mf"
043 value="help/help.jar
044 lib/jh.jar
045 lib/Jama.jar
046 lib/xercesImpl.jar
047 lib/xml-apis.jar
048 lib/commons-cli-1.0.jar
049 lib/xmlrpc-client-3.1.jar
050 lib/xmlrpc-common-3.1.jar
051 lib/ws-commons-util-1.0.2.jar
052 lib/wired-base-4.0.beta.3-SNAPSHOT.jar
053 lib/jas-aida-dev.jar
054 lib/jas-aida.jar
055 lib/jas-freehep-base.jar
056 lib/jas-freehep-hep.jar
057 lib/jas-jas-plotter.jar
058 lib/jas-jel.jar
059 lib/jas-JMinuit.jar
060 lib/ostermillerutils_1_05_00.jar
061 lib/jogl.jar
062 lib/log4j-1.2.15.jar"/>
063
064 <property name="graxml3dclasspath.mf"
065 value="lib/xercesImpl.jar
066 libgraxml3d/bool.jar
067 libgraxml3d/bsh-2.0b1.jar
068 libgraxml3d/colt.jar
069 libgraxml3d/cx3djava100a.jar
070 libgraxml3d/freehep-hep3d.jar
071 libgraxml3d/freehep-j3d.jar
072 libgraxml3d/GraXML.jar
073 libgraxml3d/GraXMLBridge.jar
074 libgraxml3d/j3dcore.jar
075 libgraxml3d/j3dutils.jar
076 libgraxml3d/JiveEvent.jar
077 libgraxml3d/JiveGeometry.jar
078 libgraxml3d/AGDD.jar
079 libgraxml3d/GDML.jar
080 libgraxml3d/jlfgr.jar
081 libgraxml3d/log4j-1.2.8.jar
082 libgraxml3d/vecmath.jar
083 libgraxml3d/jaxb-api.jar
084 libgraxml3d/jaxb-impl.jar
085 libgraxml3d/jaxb-xjc.jar
086 libgraxml3d/jaxp-api.jar
087 libgraxml3d/jsr173_1.0_api.jar
088 libgraxml3d/activation.jar"/>
089
090
091 <!-- directories - - - - - - - - - - - - - - - - - - - - - - - - - - -->
092 <property name="src.src" value="src"/>
093 <property name="lib.src" value="lib"/>
094 <!-- runtime directories and files -->
095 <property name="conf" value="configuration"/>
096 <property name="events" value="events"/>
097 <property name="geom" value="geometry"/>
098 <property name="help" value="help"/>
099 <property name="img" value="img"/>
100 <property name="share" value="share"/>
101
102 <property name="conf.src" value="${conf}"/>
103 <property name="events.src" value="${events}"/>
104 <property name="geom.src" value="${geom}"/>
105 <property name="help.src" value="${help}"/>
106 <property name="img.src" value="${img}"/>
107 <property name="share.src" value="${share}"/>
108
109 <property name="conf.run" value="${targetDir}/${conf}"/>
110 <property name="events.run" value="${targetDir}/${events}"/>
111 <property name="geom.run" value="${targetDir}/${geom}"/>
112 <property name="help.run" value="${targetDir}/${help}"/>
113 <property name="img.run" value="${targetDir}/${img}"/>
114 <property name="share.run" value="${targetDir}/${share}"/>
115
116 <property name="class.run" value="${targetDir}/classes"/>
117 <property name="lib.run" value="${targetDir}/lib"/>
118
119 <!-- Atlantis - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
120 <property name="atlantis.jar" value="${targetDir}/atlantis.jar"/>
121 <property name="atlantis.main.class" value="atlantis.Atlantis"/>
122
123
124
125
126 <!-- =============================================================== -->
127
128 <!-- targets begin - - - - - - - - - - - - - - - - - - - - - - - - - -->
129
130 <!-- preinit target - - - - - - - - - - - - - - - - - - - - - - - - - -->
131 <target name="preinit" description="Test if targetDir argument is set">
132 <fail unless="targetDir">
133 targetDir variable must be set - try: ant usage
134 example: ant -DtargetDir="test" all
135 </fail>
136 <echo>Atlantis build will be made into ${targetDir} directory</echo>
137 </target>
138
139
140 <!-- init target - - - - - - - - - - - - - - - - - - - - - - - - - - -->
141 <target name="init" depends="preinit"
142 description="Makes required directories, copies libs">
143 <mkdir dir="${lib.run}"/>
144 <copy todir="${lib.run}">
145 <fileset dir="${lib.src}"/>
146 </copy>
147
148 <mkdir dir="${conf.run}"/>
149 <copy todir="${conf.run}">
150 <fileset dir="${conf.src}"/>
151 </copy>
152
153 <mkdir dir="${events.run}"/>
154 <copy todir="${events.run}">
155 <fileset dir="${events.src}"/>
156 </copy>
157
158 <mkdir dir="${geom.run}"/>
159 <copy todir="${geom.run}">
160 <fileset dir="${geom.src}"/>
161 </copy>
162
163 <mkdir dir="${help.run}"/>
164 <copy todir="${help.run}">
165 <fileset dir="${help.src}">
166 <include name="help.jar"/>
167 </fileset>
168 </copy>
169
170 <mkdir dir="${img.run}"/>
171 <copy todir="${img.run}">
172 <fileset dir="${img.src}"/>
173 </copy>
174
175 <mkdir dir="${share.run}"/>
176 <copy todir="${share.run}">
177 <fileset dir="${share.src}"/>
178 </copy>
179 </target>
180
181
182
183 <!-- compile target (compile without GraXML 3D support) - - - - - -->
184 <target name="compile" depends="preinit"
185 description="Compiles all source files">
186
187 <mkdir dir="${class.run}"/>
188
189 <javac srcdir="${src.src}" destdir="${class.run}" deprecation="on">
190 <!-- <compilerarg value="-Xlint:unchecked"/> -->
191 <include name="**/*.java"/>
192 <classpath>
193 <fileset dir="${lib.run}">
194 <include name="**/*.jar"/>
195 </fileset>
196 </classpath>
197 </javac>
198 </target>
199
200
201
202 <!-- compile3d target (compile with GraXML 3D support) - - - - - - -->
203 <target name="compile3d" depends="preinit"
204 description="Compiles all source files with GraXML 3D support">
205
206 <mkdir dir="${class.run}"/>
207
208 <javac srcdir="${src.src}" destdir="${class.run}" deprecation="on">
209 <!-- <compilerarg value="-Xlint:unchecked"/> -->
210 <include name="**/*.java"/>
211 <classpath>
212 <fileset dir="${lib.run}">
213 <include name="**/*.jar"/>
214 </fileset>
215 <fileset dir="${libgraxml3d.src}">
216 <include name="**/*.jar"/>
217 </fileset>
218 </classpath>
219 </javac>
220 </target>
221
222
223
224 <!-- all target - - - - - - - - - - - - - - - - - - - - - - - - - - -->
225 <target name="all" depends="preinit, init, compile, jar, clean"
226 description="Copy runtime files, build and clean up"/>
227
228
229
230 <!-- all3d target - - - - - - - - - - - - - - - - - - - - - - - - - - -->
231 <target name="all3d" depends="preinit, init, compile3d, jar, clean"
232 description="Copy runtime files, build and clean up">
233
234 <echo>
235 all GraXML 3D libraries must be present in the ${libgraxml3d.src}
236 directory
237 </echo>
238
239 <mkdir dir="${targetDir}/${libgraxml3d.src}"/>
240 <copy todir="${targetDir}/${libgraxml3d.src}">
241 <fileset dir="${libgraxml3d.src}"/>
242 </copy>
243
244 <!-- copy start file -->
245 <copy file="${share.src}/atlantis3d" todir="${targetDir}"/>
246
247 </target>
248
249
250
251 <!-- jar target - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
252 <target name="jar" description="Create all jar files for deployment">
253
254 <!-- jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
255 <jar destfile="${atlantis.jar}">
256 <fileset dir="${class.run}">
257 <include name="*/*.class"/>
258 <include name="*/*/*.class"/>
259 <include name="*/*/*/*.class"/>
260 </fileset>
261 <manifest>
262 <attribute name="Built-By" value="${user.name}"/>
263 <attribute name="Main-Class" value="${atlantis.main.class}"/>
264 <attribute name="Class-Path"
265 value="${classpath.mf} ${graxml3dclasspath.mf}"/>
266 <attribute name="Implementation-Title" value="Atlantis"/>
267 </manifest>
268 </jar>
269 </target>
270
271
272
273 <!-- jar-atlantis target - - - - - - - - - - - - - - - - - - - - - - -->
274 <target name="jar-atlantis" depends="preinit, compile, jar, clean"
275 description="Create jar file of Atlantis">
276 </target>
277
278
279 <!-- webstartcommon target - - - - - - - - - - - - - - - - - - - - -->
280 <target name="webstartcommon">
281
282 <jar destfile="${atlantis.jar}">
283 <fileset dir="${class.run}">
284 <include name="*/*.class"/>
285 <include name="*/*/*.class"/>
286 <include name="*/*/*/*.class"/>
287 </fileset>
288
289 <fileset dir="${targetDir}">
290 <exclude name="classes/*"/>
291 <exclude name="lib/*"/>
292 <exclude name="help/*"/>
293 <include name="*/*"/>
294 </fileset>
295
296 <manifest>
297 <attribute name="Built-By" value="${user.name}"/>
298 <attribute name="Main-Class" value="${atlantis.main.class}"/>
299 <attribute name="Class-Path" value="${classpath.mf}"/>
300 <attribute name="Implementation-Title" value="Atlantis"/>
301 </manifest>
302 </jar>
303
304
305 <!-- clean up, leave only lib/*.jar, help/*.jar, atlantis.jar -->
306 <delete dir="${conf.run}"/>
307 <delete dir="${events.run}"/>
308 <delete dir="${geom.run}"/>
309 <delete dir="${img.run}"/>
310 <delete dir="${share.run}"/>
311
312 <antcall target="clean"/>
313 <antcall target="webstartjarsigner"/>
314 </target>
315
316
317 <!-- webstart - distribution via webstart (lib/*.jar, help/*.jar and
318 atlantis.jar (includes all data files) -->
319 <target name="webstart" depends="preinit, init, compile"
320 description="atlantis distribution for Java WebStart">
321
322 <antcall target="webstartcommon"/>
323
324 <!-- copy webstart .jnlp files -->
325 <copy file="${share.src}/javahelp.jnlp" todir="${targetDir}"/>
326 <copy file="${share.src}/atlantis.jnlp" todir="${targetDir}"/>
327
328 </target>
329
330
331
332 <!-- webstart3d - distribution of Atlantis with 3D (from GraXML)
333 capability via webstart (lib/*.jar, help/*.jar and
334 atlantis.jar (includes all data files) -->
335 <target name="webstart3d" depends="preinit, init, compile"
336 description="atlantis distribution for Java WebStart with 3D">
337
338 <!-- compile is called as the last dependency target, GraXML is
339 called via reflection via WebStart, thus there is no compile
340 time dependency (.jnlp files are different to non-3D webstart)
341 -->
342
343 <antcall target="webstartcommon"/>
344
345 <!-- copy webstart .jnlp files -->
346 <copy file="${share.src}/javahelp.jnlp" todir="${targetDir}"/>
347 <copy file="${share.src}/atlantis3d.jnlp" todir="${targetDir}"/>
348
349 </target>
350
351
352
353 <!-- webstartjarsigner target - - - - - - - - - - - - - - - - - - - -->
354 <target name="webstartjarsigner" description="Sign all jar files">
355 <delete file="${targetDir}/keystore"/>
356 <exec executable="${java.home}/bin/keytool">
357 <arg line="-genkey -dname 'cn=Atlantis team' -alias Atlantis
358 -keypass ${password} -keystore ${targetDir}/keystore
359 -storepass ${password} -validity 180"/>
360 </exec>
361 <signjar alias="Atlantis"
362 keystore="${targetDir}/keystore"
363 keypass="${password}"
364 storepass="${password}">
365
366 <fileset file="${lib.run}/*.jar">
367 <!-- JavaHelp, signed by Sun, can't be signed twice -->
368 <exclude name="jh.jar"/>
369 </fileset>
370 <fileset file="${help.run}/*.jar"/>
371 <fileset file="${atlantis.jar}"/>
372 </signjar>
373 <delete file="${targetDir}/keystore"/>
374 </target>
375
376
377
378 <!-- updateconfigurations target - - - - - - - - - - - - - - - - - - -->
379 <!-- update special configurations - jython script performs update of
380 all special / customised configurations shipped with atlantis -->
381 <target name="updateconfigs" depends="preinit, init, compile, jar"
382 description="Update / synchronise customised configuration files">
383 <echo>Requires jython available in PATH, otherwise fails.</echo>
384 <exec executable="jython" failonerror="true">
385 <!-- arguments to specify atlantis distribution directory
386 and where the configuration files for updating are
387 located -->
388 <arg line="share/configupdater.py --atlantis ${targetDir}
389 --update ${conf.src}"/>
390 </exec>
391 <echo>Deleting build directory ${targetDir}, calling delete ...
392 </echo>
393 <delete dir="${targetDir}"/>
394 </target>
395
396
397
398 <!-- clean target - - - - - - - - - - - - - - - - - - - - - - - - - -->
399 <target name="clean" description="Erase *.class generated files">
400 <delete dir="${class.run}"/>
401 </target>
402
403
404
405 <!-- usage target - - - - - - - - - - - - - - - - - - - - - - - - - - -->
406 <target name="usage" description="Prints usage hint">
407 <echo level="info" message="Usage:"/>
408 <echo>targetDir - directory to build atlantis distribution in</echo>
409 <echo>ant -DtargetDir=[target directory] [all|jar|webstart]</echo>
410 <echo>ant -DtargetDir=[target directory] [all3d|webstart3d]</echo>
411 <echo>ant -DtargetDir=[target directory] [updateconfigs]</echo>
412 </target>
413
414
415
416 <!-- help target - - - - - - - - - - - - - - - - - - - - - - - - - - -->
417 <target name="help" depends="usage" description="Prints usage hint"/>
418
419 </project>
Due to the LXR bug, the updates fail sometimes to remove references to deleted files. The Saturday's full rebuilds fix these problems |
This page was automatically generated by the
LXR engine.
|
|