fixed removal of .git directory in sources patternset
[iDMC.git] / build.xml
blobedf69ff7b08ceffdccdc89e9f81465d300b33b8f
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=".git/**"/>
409         <exclude name="**/*.class"/>
410         <exclude name="**/*.o"/>
411         <exclude name="**/*.d"/>
412         <exclude name="**/*.so"/>
413         <exclude name="**/*.dll"/>
414         <exclude name="**/*.jar"/>
415         <exclude name="**/*.tar*"/>
416         <exclude name="**/*.zip"/>
417         <exclude name="**/*.exe"/>
418     </patternset>
421     <!--         -->
422     <!-- tar-src -->
423     <!--         -->
424     <target name="tar-src" 
425                 description="create the source tar archive">
427         <property name="prefix" value="${name}-${version}"/>
429         <tar destfile="${name}-${version}-src.tar.bz2"
430              compression="bzip2">
432         <tarfileset dir="${basedir}" prefix="${prefix}">
433             <patternset refid="sources"/>
434         </tarfileset>
436         </tar>
438     </target>  
441     <!--          -->
442     <!-- tar-dist -->
443     <!--          -->
444     <target name="tar-dist" 
445             depends="dist"
446             description="create the distribution tar archive">
448         <property name="prefix" value="${name}-${version}"/>
450         <tar destfile="${name}-${version}-bin.tar.bz2"
451              compression="bzip2">
453         <tarfileset dir="${dist}" prefix="${prefix}"/>
455         </tar>
457     </target>  
460     <!--         -->
461     <!-- zip-src -->
462     <!--         -->
463     <target name="zip-src" 
464             description="create the source zip archive">
466         <zip destfile="${name}-${version}-src.zip">
468             <zipfileset dir="${basedir}"
469                         prefix="${name}-${version}">
470                 <patternset refid="sources"/>
471             </zipfileset>
473         </zip>
475     </target> 
478     <!--                -->
479     <!-- zip-dist       -->
480     <!--                -->
481     <target name="zip-dist"
482             description="create the linux distribution zip archive"
483             depends="dist">
485         <zip destfile="${name}-${version}-linux.zip">
486             <zipfileset dir="${dist}"
487                         prefix="${name}-${version}"
488             />
489         </zip>
491     </target>  
494     <!--              -->
495     <!-- zip-dist-win -->
496     <!--              -->
497     <target name="zip-dist-win"
498             description="create the windows distribution zip archive"
499             depends="dist-win">
501         <zip destfile="${name}-${version}-win.zip">
502             <zipfileset dir="${dist-win}"
503                         prefix="${name}-${version}"
504             />
505         </zip>
507     </target>  
510     <!--                     -->
511     <!-- cross-win-installer -->
512     <!--                     -->
513     <target name="cross-win-installer"
514             description="create the windows installer package from linux with wine"
515             depends="dist-win">
517         <copy failonerror="true"
518               file="${basedir}/misc/dmcDue.nsi"
519               todir="${dist-win}"
520               overwrite="yes"/>
522         <exec os="Linux"
523               dir="dist-win"
524               executable="wine">
526               <arg value="/opt/NSIS-2.0/makensis.exe"/>
527               <arg value="dmcDue.nsi"/>
528         </exec>
530         <move failonerror="true"
531               todir="${basedir}"
532               overwrite="yes">
534             <fileset dir="${dist-win}">
535                 <include name="**/*.exe"/>
536             </fileset>
537         </move>
538      </target>  
539      
540     <!--                     -->
541     <!-- linux-win installer -->
542     <!--                     -->
543     <target name="linux-win-installer"
544             description="create the linux-windows installer package from linux with IzPack"
545             depends="dist">
546         <izpack input="${installer.dir}/install.xml" output="${installer.dir}/${name}-${version}-install.jar"
547             installerType="standard" basedir="${installer.dir}" izPackDir="${izpack.dir}/"/>
548     </target>
550 </project>