added installer target to ant build file
[iDMC.git] / build.xml
blob35b4853a8c3e7fde8ca6daef1039a4bfc0f012e7
1 <?xml version="1.0"?>
3 <!-- -->
4 <!--  Ant file for dmcDue -->
5 <!--  Written by Daniele Pizzoni <auouo@tin.it> - 2003 -->
6 <!--  Modified by Antonio, Fabio Di Narzo <antonio.fabio@gmail.com> - 2006,2007 -->
7 <!-- -->
9 <project name="dmcDue" default="jar" basedir=".">
11 <!--            -->
12 <!-- properties -->
13 <!--            -->
15     <property name="name"    value="iDmc"/>
16     <property name="version" value="2.0.7"/>
17     <property name="libVersion" value="0.7.0"/>
19     <!-- directories -->
20     <property name="src.java"  value="src/java"/>
21     <property name="build"     value="build"/>
22     <property name="dist"      value="dist"/>
23     <property name="dist-win"  value="dist-win"/>
24     <property name="javadoc"   value="javadoc"/>
25     <property name="doc"    value="doc"/>
26     <property name="models"    value="models"/>
28     <!-- external sources -->
29     <property name="idmclib.src"    location="../idmclib-${libVersion}-Source/build/jidmc"/>
30     <property name="jcommon.src"    location="../jcommon-0.9.3/src"/>
31     <property name="jfreechart.src" location="../jfreechart-0.9.18/src"/>
32     <property name="forms.src"      location="../forms-1.0.3/src/jforms"/>
33     <property name="log4j.src"      location="../logging-log4j-1.2.14/src/java"/>
35     <!-- files -->
36     <property name="idmclib.lib.unix" value="${idmclib.src}/jidmclib.so"/>
37     <property name="idmclib.lib.win" value="${idmclib.src}/jidmclib.dll"/>
38     <property name="jar_file"      value="${basedir}/${name}.jar"/>
40     <!-- installer resources -->
41     <property name="installer.dir" value="installer"/>
42     <property name="izpack.dir" value="/opt/IzPack"/>
43     <taskdef name="izpack" classpath="${izpack.dir}/lib/compiler.jar" 
44       classname="com.izforge.izpack.ant.IzPackTask"/>
46 <!--              -->
47 <!-- work targets -->
48 <!--              -->
50     <!--      -->
51     <!-- init -->
52     <!--      -->
53     <target name="init" depends="version">
54             <tstamp/>
55         <mkdir dir="${build}"/>
56     </target>
58         
59     <!--     -->
60     <!-- all -->
61     <!--     -->
62     <target name="all"
63                 description="compiles and creates all the archives (source and binary)"
64                 depends="all-linux, all-win"/>
66     <!--           -->
67     <!-- all-linux -->
68     <!--           -->
69     <target name="all-linux"
70                 description="compiles and creates all the bonary archives"
71                 depends="tar-dist, zip-dist, tar-src, zip-src"/>
74     <!--         -->
75     <!-- all-win -->
76     <!--         -->
77     <target name="all-win"
78                 description="compiles and creates all the bonary archives"
79                 depends="zip-dist-win, zip-src"/>
81     <!--         -->
82     <!-- run     -->
83     <!--         -->
84     <target name="run-linux" description="run the application" depends="dist">
85         <java jar="${jar_file}" fork="true" dir="${dist}" classpath="${dist}" spawn="true"/>
86     </target>
87     <target name="run-windows" description="run the application" depends="dist-win">
88         <java jar="${jar_file}" fork="true" dir="${dist-win}" spawn="true"/>
89     </target>
91     <!--         -->
92     <!-- compile -->
93     <!--         -->
94     <target name="compile"
95                 depends="init, version"
96                 description="compile the java sources in the 'build' directory">
98         <!-- they say fork resolves some problems on Windows -->
99         <javac
100             srcdir="${src.java}"
101             destdir="${build}"
102             deprecation="yes"
103             failonerror="no"
104             fork="true"
105             target="1.4"
106             source="1.4"
107                 debug="yes"
108         >
109             <exclude name="**/junit/*"/>
110             <exclude name="**/*Test*"/>
111             
112             <sourcepath>
113                 <dirset dir="${idmclib.src}"/>
114                 <dirset dir="${jcommon.src}"/>
115                 <dirset dir="${jfreechart.src}"/>
116                 <dirset dir="${forms.src}"/>
117                 <dirset dir="${log4j.src}"/>
118             </sourcepath>
119         </javac>
120                 <!-- files used by reflection -->
121             <javac
122                 srcdir="${jcommon.src}"
123             destdir="${build}"
124             deprecation="yes"
125             failonerror="no"
126             fork="true" 
127             target="1.4"
128             source="1.4"
129             >
130                 <include name="org/jfree/resources/JCommonResources.java"/>
131                 <include name="org/jfree/ui/about/resources/AboutResources.java"/>
132         </javac>
134         <javac
135                 srcdir="${jfreechart.src}"
136             destdir="${build}"
137             deprecation="yes"
138             failonerror="no"
139             fork="true" 
140             target="1.4"
141             source="1.4"
142         >
143                 <include name="org/jfree/chart/resources/JFreeChartResources.java"/>
144                 <include name="org/jfree/resources/JCommonResources.java"/>
145         </javac>
147         <!-- copy the localization bundles -->
148         <copy todir="${build}">
149                 <fileset dir="${jcommon.src}">
150                         <include name="**/LocalizationBundle.properties"/>
151                 </fileset>
152                 <fileset dir="${jfreechart.src}">
153                         <include name="**/LocalizationBundle.properties"/>
154                 </fileset>
155         </copy>
157     </target>
158     
159     <target name="version">
160         <copy file="${basedir}/Version.template"
161             tofile="${basedir}/${src.java}/org/tsho/dmc2/Version.java">
162           <filterchain>
163               <replacetokens begintoken=" " endtoken=" ">
164                   <token key="versionAnchor" value="&quot;${version}&quot;" />
165               </replacetokens>
166           </filterchain>
167         </copy>
168     </target>
171     <!--     -->
172     <!-- jar -->
173     <!--     -->
174     <target name="jar"
175             depends="compile"
176             description="create the jarfile in the base directory">
177         <jar jarfile="${jar_file}"
178              basedir="${build}"
179              index="yes"
180              manifest="${src.java}/org/tsho/dmc2/dmc2.manifest">
181         </jar>
182     </target>
185     <!--                                    -->
186     <!-- dist target for non-win32 platforms-->
187     <!--                                    -->
188     <target name="dist"
189             depends="jar"
190             description="populate the linux distribuition directory">
191                         
192         <copy failonerror="true"
193             file="${idmclib.lib.unix}/"
194             todir="${dist}"
195           overwrite="yes"/>
197         <copy failonerror="true"
198               file="${jar_file}/"
199               tofile="${dist}/${name}-${version}.jar"
200               overwrite="yes"/>
202         <copy failonerror="true"
203               file="${basedir}/README"
204               todir="${dist}"
205               overwrite="yes"/>
207         <copy failonerror="true"
208               file="${basedir}/NEWS"
209               todir="${dist}"
210               overwrite="yes"/>
212         <copy failonerror="true"
213               file="${basedir}/COPYING"
214               todir="${dist}"
215               overwrite="yes"/>
216         
217         <copy failonerror="true"
218               file="${basedir}/logo_new.jpg"
219               todir="${dist}"
220               overwrite="yes"/>
222         <mkdir dir="${dist}/doc"/>
223         <fixcrlf srcdir="${doc}"
224                 destdir="${dist}/doc"
225                 eol="lf"
226                 eof="remove"
227         />
230         <mkdir dir="${dist}/models"/>
232         <fixcrlf srcdir="${models}"
233                  destdir="${dist}/models"
234                  eol="lf"
235                  eof="remove"
236         />
238         <fixcrlf srcdir="${dist}"
239                  eol="lf"
240                  eof="remove"
241                  includes="README"
242         />
244         <fixcrlf srcdir="${dist}"
245                  eol="lf"
246                  eof="remove"
247                  includes="COPYING"
248         />
249     </target>
251     <target name="dist-win"
252             depends="jar"
253             description="populate the windows distribuition directory">
254                         
255         <copy failonerror="true"
256             file="${idmclib.lib.win}"
257             todir="${dist-win}"
258         overwrite="yes"/>
260         <copy failonerror="true"
261               file="${jar_file}/"
262               tofile="${dist-win}/${name}-${version}.jar"
263               overwrite="yes"/>
265         <copy failonerror="true"
266               file="${basedir}/README"
267               todir="${dist-win}"
268               overwrite="yes"/>
270         <copy failonerror="true"
271               file="${basedir}/NEWS"
272               todir="${dist-win}"
273               overwrite="yes"/>
274         
275         <copy failonerror="true"
276               file="${basedir}/COPYING"
277               todir="${dist-win}"
278               overwrite="yes"/>
280         <copy failonerror="true"
281               file="${basedir}/logo_new.jpg"
282               todir="${dist-win}"
283               overwrite="yes"/>         
285         <mkdir dir="${dist-win}/doc"/>
286         <fixcrlf srcdir="${doc}"
287                  destdir="${dist-win}/doc"
288                  eol="crlf"
289                  eof="remove"
290         />
292         <mkdir dir="${dist-win}/models"/>
294         <fixcrlf srcdir="${models}"
295                  destdir="${dist-win}/models"
296                  eol="crlf"
297                  eof="remove"
298         />
300         <fixcrlf srcdir="${dist-win}"
301                  eol="crlf"
302                  includes="README"
303         />
304         <fixcrlf srcdir="${dist-win}"
305                  eol="crlf"
306                  includes="COPYING"
307         />
308     </target>
309     
310     <!--         -->
311     <!-- javadoc -->
312     <!--         -->
313     <target name="javadoc">
314         <delete dir="${javadoc}" />
315         <mkdir dir="${javadoc}" />
317         <javadoc sourcepath="."
318                  classpath="."
319                 destdir="${javadoc}"
320                 doctitle="Dynamical Model Cruncher 2 (version ${version})">
321             <packageset dir="${src.java}" defaultexcludes="no"/>
322         </javadoc>
324     </target>
327 <!--               -->
328 <!-- clean targets -->
329 <!--               -->
332     <!--           -->
333     <!-- clean-all -->
334     <!--           -->
335     <target name="clean-all"
336                 depends="clean-build, clean-dist, clean-javadoc, clean-archives"
337                 description="clean-build, clean-dist, clean-javadoc, clean-archives"/>
340     <!--             -->
341     <!-- clean-build -->
342     <!--             -->
343     <target name="clean-build"
344                 description="remove the build directory">
345         <delete dir="${build}"/>
346         <delete file="${src.java}/org/tsho/dmc2/Version.java"/>
347     </target>
349     <!--            -->
350     <!-- clean-dist -->
351     <!--            -->
352     <target name="clean-dist"
353                 description="remove the distribution directory">
354         <delete dir="${dist}"/>
355         <delete dir="${dist-win}"/>
356     </target>
359     <!--               -->
360     <!-- clean-javadoc -->
361     <!--               -->
362     <target name="clean-javadoc" 
363                 description="remove the javadoc directory" >
364         <delete dir="${javadoc}"/>
365     </target>
367     <!--                -->
368     <!-- clean-archives -->
369     <!--                -->
370     <target name="clean-archives"
371                 description="remove the archives (*.bz2, *.zip)" >
372         <delete>
373                 <fileset dir="${basedir}" includes="*.bz2"/>
374                 <fileset dir="${basedir}" includes="*.zip"/>
375                 <fileset dir="${basedir}" includes="*.jar"/>
376                 <fileset dir="${basedir}" includes="*.exe"/>
377         </delete>
378     </target>
381     <!--             -->
382     <!-- clean-stale -->
383     <!--             -->
384     <target name="clean-stale"
385                 description="clean up stale .class files in src" >
386             <delete>
387                 <fileset dir="${src.java}" includes="**/*.class"/>
388             </delete>
389     </target>  
392 <!--                 -->
393 <!-- archive targets -->
394 <!--                 -->
396     <!-- sources patternset -->
397     <patternset id="sources">
398         <exclude name="**/*.aux"/>
399         <exclude name="**/*.dvi"/>
400         <exclude name="**/*.log"/>
401         <exclude name="doc/snapshots/"/>
402         <exclude name="build-eclipse/"/>
403         <exclude name="${javadoc}/"/>
404         <exclude name="${build}/"/>
405         <exclude name="${dist}/"/>
406         <exclude name="${dist-win}/"/>
407         <exclude name="**/.*"/>
408         <exclude name="**/*.class"/>
409         <exclude name="**/*.o"/>
410         <exclude name="**/*.d"/>
411         <exclude name="**/*.so"/>
412         <exclude name="**/*.dll"/>
413         <exclude name="**/*.jar"/>
414         <exclude name="**/*.tar*"/>
415         <exclude name="**/*.zip"/>
416         <exclude name="**/*.exe"/>
417     </patternset>
420     <!--         -->
421     <!-- tar-src -->
422     <!--         -->
423     <target name="tar-src" 
424                 description="create the source tar archive">
426         <property name="prefix" value="${name}-${version}"/>
428         <tar destfile="${name}-${version}-src.tar.bz2"
429              compression="bzip2">
431         <tarfileset dir="${basedir}" prefix="${prefix}">
432             <patternset refid="sources"/>
433         </tarfileset>
435         </tar>
437     </target>  
440     <!--          -->
441     <!-- tar-dist -->
442     <!--          -->
443     <target name="tar-dist" 
444             depends="dist"
445             description="create the distribution tar archive">
447         <property name="prefix" value="${name}-${version}"/>
449         <tar destfile="${name}-${version}-bin.tar.bz2"
450              compression="bzip2">
452         <tarfileset dir="${dist}" prefix="${prefix}"/>
454         </tar>
456     </target>  
459     <!--         -->
460     <!-- zip-src -->
461     <!--         -->
462     <target name="zip-src" 
463             description="create the source zip archive">
465         <zip destfile="${name}-${version}-src.zip">
467             <zipfileset dir="${basedir}"
468                         prefix="${name}-${version}">
469                 <patternset refid="sources"/>
470             </zipfileset>
472         </zip>
474     </target> 
477     <!--                -->
478     <!-- zip-dist       -->
479     <!--                -->
480     <target name="zip-dist"
481             description="create the linux distribution zip archive"
482             depends="dist">
484         <zip destfile="${name}-${version}-linux.zip">
485             <zipfileset dir="${dist}"
486                         prefix="${name}-${version}"
487             />
488         </zip>
490     </target>  
493     <!--              -->
494     <!-- zip-dist-win -->
495     <!--              -->
496     <target name="zip-dist-win"
497             description="create the windows distribution zip archive"
498             depends="dist-win">
500         <zip destfile="${name}-${version}-win.zip">
501             <zipfileset dir="${dist-win}"
502                         prefix="${name}-${version}"
503             />
504         </zip>
506     </target>  
509     <!--                     -->
510     <!-- cross-win-installer -->
511     <!--                     -->
512     <target name="cross-win-installer"
513             description="create the windows installer package from linux with wine"
514             depends="dist-win">
516         <copy failonerror="true"
517               file="${basedir}/misc/dmcDue.nsi"
518               todir="${dist-win}"
519               overwrite="yes"/>
521         <exec os="Linux"
522               dir="dist-win"
523               executable="wine">
525               <arg value="/opt/NSIS-2.0/makensis.exe"/>
526               <arg value="dmcDue.nsi"/>
527         </exec>
529         <move failonerror="true"
530               todir="${basedir}"
531               overwrite="yes">
533             <fileset dir="${dist-win}">
534                 <include name="**/*.exe"/>
535             </fileset>
536         </move>
537      </target>  
538      
539     <!--                     -->
540     <!-- linux-win installer -->
541     <!--                     -->
542     <target name="linux-win-installer"
543             description="create the linux-windows installer package from linux with IzPack"
544             depends="dist">
545         <izpack input="${installer.dir}/install.xml" output="${installer.dir}/${name}-${version}-install.jar"
546             installerType="standard" basedir="${installer.dir}" izPackDir="${izpack.dir}/"/>
547     </target>
549 </project>